]> git.t-rg.ws Git - slackbuilds.git/commitdiff
shadowsocks-rust: switched to offline building
authorfsLeg <fsleg@t-rg.ws>
Sun, 8 Dec 2024 18:36:39 +0000 (21:36 +0300)
committerfsLeg <fsleg@t-rg.ws>
Sun, 8 Dec 2024 18:36:39 +0000 (21:36 +0300)
shadowsocks-rust/shadowsocks-rust.SlackBuild
shadowsocks-rust/shadowsocks-rust.info

index 9b302137a942025283f900d8b4f87516f6a4bd94..5dbcfd6339a28220de263c3fbcfe8073c20121bd 100755 (executable)
@@ -3,6 +3,8 @@
 # Slackware build script for shadowsocks-rust
 
 # Copyright 2022-2024 Vladislav 'fsLeg' Borisov, Moscow, Russia
+# Parts with Cargo's offline building were taken from alacritty.SlackBuild
+# by Andrew Clemons, Tokyo Japan
 # All rights reserved.
 #
 # Redistribution and use of this script, with or without modification, is
@@ -36,6 +38,12 @@ if [ -z "$ARCH" ]; then
     arm*) ARCH=arm ;;
        *) ARCH=$( uname -m ) ;;
   esac
+
+  if [ "$ARCH" = "i586" ]; then
+    if rustc -Vv | grep host | grep i686 > /dev/null ; then
+      ARCH=i686
+    fi
+  fi
 fi
 
 # If the variable PRINT_PACKAGE_NAME is set, then this script will report what
@@ -59,6 +67,9 @@ elif [ "$ARCH" = "i686" ]; then
 elif [ "$ARCH" = "x86_64" ]; then
   SLKCFLAGS="-O2 -fPIC"
   LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "aarch64" ]; then
+  SLKCFLAGS="-O2 -fPIC"
+  LIBDIRSUFFIX="64"
 else
   SLKCFLAGS="-O2"
   LIBDIRSUFFIX=""
@@ -79,6 +90,63 @@ elif [ -f $CWD/v$VERSION.tar.gz ]; then
 fi
 
 cd $PRGNAM-$VERSION
+
+# build offline
+# configuration tells cargo to use the configured directory
+# for dependencies instead of downloading from crates.io
+mkdir .cargo
+cat << EOF >> .cargo/config.toml
+[source.crates-io]
+registry = 'https://github.com/rust-lang/crates.io-index'
+replace-with = 'vendored-sources'
+
+[source.vendored-sources]
+directory = '$(pwd)/vendor'
+EOF
+
+# deps and versions come from Cargo.lock
+mkdir vendor
+(
+  cd vendor
+
+  grep -h -A 4 "\[\[package\]\]" \
+      $(find "../" -maxdepth 1 -mindepth 1 -name Cargo.lock | tr '\n' ' ') | \
+      sed 's/[[:space:]]*=[[:space:]]*/=/g;s/^--//;s/^\[\[/--\n[[/' | \
+      awk 'BEGIN { RS = "--\n" ; FS="\n" } { print $2, $3, $4, $5 }' | \
+      sed 's/"//g;s/name=//;s/ version=/=/' | \
+      grep " source=" | \
+      sed 's/ dependencies=.*$//' | \
+      sed 's/ source=[^ ]*//' | \
+      sed 's/ checksum=/=/' | \
+      sort -u | \
+      while read -r dep ; do
+
+    cksum="$(printf "%s\n" "$dep" | cut -d= -f3)"
+    ver="$(printf "%s\n" "$dep" | cut -d= -f2)"
+    dep="$(printf "%s\n" "$dep" | cut -d= -f1)"
+
+    tar xvf $CWD/$dep-$ver.crate
+
+    touch $dep-$ver/.cargo-ok
+
+    # generate checksum
+    {
+      printf "{\n"
+      printf '    "files": {\n'
+
+      (
+        cd $dep-$ver
+        find . -type f -print0 | xargs -0 sha256sum | sed -n '/\.cargo-checksum\.json/!p' | sed 's/\.\///;s/^\([^ ]*\)[[:space:]][[:space:]]*\(.*\)$/"\2":"\1",/'
+      ) | sed '$ s/,$//'
+
+      printf "    },\n"
+      printf '    "package": "%s"'  "$cksum"
+
+      printf "}\n"
+    } > $dep-$ver/.cargo-checksum.json
+  done
+)
+
 chown -R root:root .
 find -L . \
  \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
@@ -98,8 +166,8 @@ fi
 CFLAGS="$SLKCFLAGS" \
 CXXFLAGS="$SLKCFLAGS" \
 RUSTFLAGS="-C target-cpu=native" \
-CARGO_HOME="$TMP/$PRGNAM-$VERSION" \
-cargo build --release
+CARGO_HOME=".cargo" \
+cargo build --offline --release 
 make install DESTDIR=$PKG TARGET=release PREFIX=/usr/bin
 
 # Strip binaries and libraries
index 2d706e03c7a86230586ec1cd66f7e8b005d4873b..feb8aa274902013e8f01d7c98ea0a1f957552ebe 100644 (file)
@@ -1,8 +1,922 @@
 PRGNAM="shadowsocks-rust"
 VERSION="1.21.2"
 HOMEPAGE="https://github.com/shadowsocks/shadowsocks-rust"
-DOWNLOAD="https://github.com/shadowsocks/shadowsocks-rust/archive/v1.21.2/shadowsocks-rust-1.21.2.tar.gz"
-MD5SUM="0360ef67392ffbaa38ea53c76f323cd5"
+DOWNLOAD="https://github.com/shadowsocks/shadowsocks-rust/archive/v1.21.2/shadowsocks-rust-1.21.2.tar.gz \
+          https://static.crates.io/crates/addr2line/addr2line-0.24.2.crate \
+          https://static.crates.io/crates/adler2/adler2-2.0.0.crate \
+          https://static.crates.io/crates/aead/aead-0.5.2.crate \
+          https://static.crates.io/crates/aes/aes-0.8.4.crate \
+          https://static.crates.io/crates/aes-gcm/aes-gcm-0.10.3.crate \
+          https://static.crates.io/crates/aes-gcm-siv/aes-gcm-siv-0.11.1.crate \
+          https://static.crates.io/crates/ahash/ahash-0.8.11.crate \
+          https://static.crates.io/crates/aho-corasick/aho-corasick-1.1.3.crate \
+          https://static.crates.io/crates/alloc-no-stdlib/alloc-no-stdlib-2.0.4.crate \
+          https://static.crates.io/crates/alloc-stdlib/alloc-stdlib-0.2.2.crate \
+          https://static.crates.io/crates/android-tzdata/android-tzdata-0.1.1.crate \
+          https://static.crates.io/crates/android_system_properties/android_system_properties-0.1.5.crate \
+          https://static.crates.io/crates/anstream/anstream-0.6.15.crate \
+          https://static.crates.io/crates/anstyle/anstyle-1.0.8.crate \
+          https://static.crates.io/crates/anstyle-parse/anstyle-parse-0.2.5.crate \
+          https://static.crates.io/crates/anstyle-query/anstyle-query-1.1.1.crate \
+          https://static.crates.io/crates/anstyle-wincon/anstyle-wincon-3.0.4.crate \
+          https://static.crates.io/crates/anyhow/anyhow-1.0.91.crate \
+          https://static.crates.io/crates/arc-swap/arc-swap-1.7.1.crate \
+          https://static.crates.io/crates/arrayref/arrayref-0.3.9.crate \
+          https://static.crates.io/crates/arrayvec/arrayvec-0.7.6.crate \
+          https://static.crates.io/crates/async-channel/async-channel-2.3.1.crate \
+          https://static.crates.io/crates/async-task/async-task-4.7.1.crate \
+          https://static.crates.io/crates/async-trait/async-trait-0.1.83.crate \
+          https://static.crates.io/crates/atomic-waker/atomic-waker-1.1.2.crate \
+          https://static.crates.io/crates/autocfg/autocfg-1.4.0.crate \
+          https://static.crates.io/crates/backtrace/backtrace-0.3.74.crate \
+          https://static.crates.io/crates/base16ct/base16ct-0.2.0.crate \
+          https://static.crates.io/crates/base64/base64-0.13.1.crate \
+          https://static.crates.io/crates/base64/base64-0.21.7.crate \
+          https://static.crates.io/crates/base64/base64-0.22.1.crate \
+          https://static.crates.io/crates/base64ct/base64ct-1.6.0.crate \
+          https://static.crates.io/crates/bit-vec/bit-vec-0.7.0.crate \
+          https://static.crates.io/crates/bitflags/bitflags-1.3.2.crate \
+          https://static.crates.io/crates/bitflags/bitflags-2.6.0.crate \
+          https://static.crates.io/crates/bitvec/bitvec-1.0.1.crate \
+          https://static.crates.io/crates/blake3/blake3-1.5.4.crate \
+          https://static.crates.io/crates/block-buffer/block-buffer-0.10.4.crate \
+          https://static.crates.io/crates/blocking/blocking-1.6.1.crate \
+          https://static.crates.io/crates/bloomfilter/bloomfilter-1.0.14.crate \
+          https://static.crates.io/crates/brotli/brotli-7.0.0.crate \
+          https://static.crates.io/crates/brotli-decompressor/brotli-decompressor-4.0.1.crate \
+          https://static.crates.io/crates/bson/bson-2.13.0.crate \
+          https://static.crates.io/crates/build-time/build-time-0.1.3.crate \
+          https://static.crates.io/crates/bumpalo/bumpalo-3.16.0.crate \
+          https://static.crates.io/crates/byte_string/byte_string-1.0.0.crate \
+          https://static.crates.io/crates/byteorder/byteorder-1.5.0.crate \
+          https://static.crates.io/crates/bytes/bytes-1.8.0.crate \
+          https://static.crates.io/crates/c2rust-bitfields/c2rust-bitfields-0.19.0.crate \
+          https://static.crates.io/crates/c2rust-bitfields-derive/c2rust-bitfields-derive-0.19.0.crate \
+          https://static.crates.io/crates/camellia/camellia-0.1.0.crate \
+          https://static.crates.io/crates/cc/cc-1.1.31.crate \
+          https://static.crates.io/crates/ccm/ccm-0.5.0.crate \
+          https://static.crates.io/crates/cfg-if/cfg-if-1.0.0.crate \
+          https://static.crates.io/crates/cfg_aliases/cfg_aliases-0.2.1.crate \
+          https://static.crates.io/crates/chacha20/chacha20-0.9.1.crate \
+          https://static.crates.io/crates/chacha20poly1305/chacha20poly1305-0.10.1.crate \
+          https://static.crates.io/crates/chrono/chrono-0.4.38.crate \
+          https://static.crates.io/crates/cipher/cipher-0.4.4.crate \
+          https://static.crates.io/crates/clap/clap-4.5.20.crate \
+          https://static.crates.io/crates/clap_builder/clap_builder-4.5.20.crate \
+          https://static.crates.io/crates/clap_lex/clap_lex-0.7.2.crate \
+          https://static.crates.io/crates/cmake/cmake-0.1.51.crate \
+          https://static.crates.io/crates/colorchoice/colorchoice-1.0.2.crate \
+          https://static.crates.io/crates/concurrent-queue/concurrent-queue-2.5.0.crate \
+          https://static.crates.io/crates/const-oid/const-oid-0.9.6.crate \
+          https://static.crates.io/crates/constant_time_eq/constant_time_eq-0.3.1.crate \
+          https://static.crates.io/crates/core-foundation/core-foundation-0.9.4.crate \
+          https://static.crates.io/crates/core-foundation-sys/core-foundation-sys-0.8.7.crate \
+          https://static.crates.io/crates/cpufeatures/cpufeatures-0.2.14.crate \
+          https://static.crates.io/crates/crc32fast/crc32fast-1.4.2.crate \
+          https://static.crates.io/crates/crossbeam-channel/crossbeam-channel-0.5.13.crate \
+          https://static.crates.io/crates/crossbeam-epoch/crossbeam-epoch-0.9.18.crate \
+          https://static.crates.io/crates/crossbeam-utils/crossbeam-utils-0.8.20.crate \
+          https://static.crates.io/crates/crypto-bigint/crypto-bigint-0.5.5.crate \
+          https://static.crates.io/crates/crypto-common/crypto-common-0.1.6.crate \
+          https://static.crates.io/crates/ctr/ctr-0.9.2.crate \
+          https://static.crates.io/crates/daemonize/daemonize-0.5.0.crate \
+          https://static.crates.io/crates/data-encoding/data-encoding-2.6.0.crate \
+          https://static.crates.io/crates/defmt/defmt-0.3.8.crate \
+          https://static.crates.io/crates/defmt-macros/defmt-macros-0.3.9.crate \
+          https://static.crates.io/crates/defmt-parser/defmt-parser-0.3.4.crate \
+          https://static.crates.io/crates/der/der-0.7.9.crate \
+          https://static.crates.io/crates/deranged/deranged-0.3.11.crate \
+          https://static.crates.io/crates/derivative/derivative-2.2.0.crate \
+          https://static.crates.io/crates/destructure_traitobject/destructure_traitobject-0.2.0.crate \
+          https://static.crates.io/crates/digest/digest-0.10.7.crate \
+          https://static.crates.io/crates/directories/directories-5.0.1.crate \
+          https://static.crates.io/crates/dirs-sys/dirs-sys-0.4.1.crate \
+          https://static.crates.io/crates/displaydoc/displaydoc-0.2.5.crate \
+          https://static.crates.io/crates/ecdsa/ecdsa-0.16.9.crate \
+          https://static.crates.io/crates/ed25519/ed25519-2.2.3.crate \
+          https://static.crates.io/crates/elliptic-curve/elliptic-curve-0.13.8.crate \
+          https://static.crates.io/crates/encoding_rs/encoding_rs-0.8.35.crate \
+          https://static.crates.io/crates/enum-as-inner/enum-as-inner-0.6.1.crate \
+          https://static.crates.io/crates/env_filter/env_filter-0.1.2.crate \
+          https://static.crates.io/crates/env_logger/env_logger-0.11.5.crate \
+          https://static.crates.io/crates/equivalent/equivalent-1.0.1.crate \
+          https://static.crates.io/crates/errno/errno-0.3.9.crate \
+          https://static.crates.io/crates/etherparse/etherparse-0.16.0.crate \
+          https://static.crates.io/crates/event-listener/event-listener-5.3.1.crate \
+          https://static.crates.io/crates/event-listener-strategy/event-listener-strategy-0.5.2.crate \
+          https://static.crates.io/crates/fastrand/fastrand-1.9.0.crate \
+          https://static.crates.io/crates/fastrand/fastrand-2.1.1.crate \
+          https://static.crates.io/crates/ff/ff-0.13.0.crate \
+          https://static.crates.io/crates/filetime/filetime-0.2.25.crate \
+          https://static.crates.io/crates/flate2/flate2-1.0.34.crate \
+          https://static.crates.io/crates/fnv/fnv-1.0.7.crate \
+          https://static.crates.io/crates/foreign-types/foreign-types-0.3.2.crate \
+          https://static.crates.io/crates/foreign-types-shared/foreign-types-shared-0.1.1.crate \
+          https://static.crates.io/crates/form_urlencoded/form_urlencoded-1.2.1.crate \
+          https://static.crates.io/crates/fs2/fs2-0.4.3.crate \
+          https://static.crates.io/crates/fsevent-sys/fsevent-sys-4.1.0.crate \
+          https://static.crates.io/crates/funty/funty-2.0.0.crate \
+          https://static.crates.io/crates/futures/futures-0.3.31.crate \
+          https://static.crates.io/crates/futures-channel/futures-channel-0.3.31.crate \
+          https://static.crates.io/crates/futures-core/futures-core-0.3.31.crate \
+          https://static.crates.io/crates/futures-executor/futures-executor-0.3.31.crate \
+          https://static.crates.io/crates/futures-io/futures-io-0.3.31.crate \
+          https://static.crates.io/crates/futures-lite/futures-lite-2.3.0.crate \
+          https://static.crates.io/crates/futures-macro/futures-macro-0.3.31.crate \
+          https://static.crates.io/crates/futures-sink/futures-sink-0.3.31.crate \
+          https://static.crates.io/crates/futures-task/futures-task-0.3.31.crate \
+          https://static.crates.io/crates/futures-util/futures-util-0.3.31.crate \
+          https://static.crates.io/crates/fxhash/fxhash-0.2.1.crate \
+          https://static.crates.io/crates/generic-array/generic-array-0.14.7.crate \
+          https://static.crates.io/crates/getrandom/getrandom-0.2.15.crate \
+          https://static.crates.io/crates/ghash/ghash-0.5.1.crate \
+          https://static.crates.io/crates/gimli/gimli-0.31.1.crate \
+          https://static.crates.io/crates/group/group-0.13.0.crate \
+          https://static.crates.io/crates/h2/h2-0.3.26.crate \
+          https://static.crates.io/crates/h2/h2-0.4.6.crate \
+          https://static.crates.io/crates/h3/h3-0.0.2.crate \
+          https://static.crates.io/crates/h3-quinn/h3-quinn-0.0.3.crate \
+          https://static.crates.io/crates/hash32/hash32-0.3.1.crate \
+          https://static.crates.io/crates/hashbrown/hashbrown-0.15.0.crate \
+          https://static.crates.io/crates/heapless/heapless-0.8.0.crate \
+          https://static.crates.io/crates/heck/heck-0.5.0.crate \
+          https://static.crates.io/crates/hermit-abi/hermit-abi-0.3.9.crate \
+          https://static.crates.io/crates/hex/hex-0.4.3.crate \
+          https://static.crates.io/crates/hickory-proto/hickory-proto-0.24.1.crate \
+          https://static.crates.io/crates/hickory-resolver/hickory-resolver-0.24.1.crate \
+          https://static.crates.io/crates/hkdf/hkdf-0.12.4.crate \
+          https://static.crates.io/crates/hmac/hmac-0.12.1.crate \
+          https://static.crates.io/crates/hostname/hostname-0.3.1.crate \
+          https://static.crates.io/crates/http/http-0.2.12.crate \
+          https://static.crates.io/crates/http/http-1.1.0.crate \
+          https://static.crates.io/crates/http-body/http-body-1.0.1.crate \
+          https://static.crates.io/crates/http-body-util/http-body-util-0.1.2.crate \
+          https://static.crates.io/crates/httparse/httparse-1.9.5.crate \
+          https://static.crates.io/crates/httpdate/httpdate-1.0.3.crate \
+          https://static.crates.io/crates/humantime/humantime-2.1.0.crate \
+          https://static.crates.io/crates/hyper/hyper-1.5.0.crate \
+          https://static.crates.io/crates/hyper-rustls/hyper-rustls-0.27.3.crate \
+          https://static.crates.io/crates/hyper-tls/hyper-tls-0.6.0.crate \
+          https://static.crates.io/crates/hyper-util/hyper-util-0.1.9.crate \
+          https://static.crates.io/crates/iana-time-zone/iana-time-zone-0.1.61.crate \
+          https://static.crates.io/crates/iana-time-zone-haiku/iana-time-zone-haiku-0.1.2.crate \
+          https://static.crates.io/crates/icu_collections/icu_collections-1.5.0.crate \
+          https://static.crates.io/crates/icu_locid/icu_locid-1.5.0.crate \
+          https://static.crates.io/crates/icu_locid_transform/icu_locid_transform-1.5.0.crate \
+          https://static.crates.io/crates/icu_locid_transform_data/icu_locid_transform_data-1.5.0.crate \
+          https://static.crates.io/crates/icu_normalizer/icu_normalizer-1.5.0.crate \
+          https://static.crates.io/crates/icu_normalizer_data/icu_normalizer_data-1.5.0.crate \
+          https://static.crates.io/crates/icu_properties/icu_properties-1.5.1.crate \
+          https://static.crates.io/crates/icu_properties_data/icu_properties_data-1.5.0.crate \
+          https://static.crates.io/crates/icu_provider/icu_provider-1.5.0.crate \
+          https://static.crates.io/crates/icu_provider_macros/icu_provider_macros-1.5.0.crate \
+          https://static.crates.io/crates/idna/idna-0.4.0.crate \
+          https://static.crates.io/crates/idna/idna-0.5.0.crate \
+          https://static.crates.io/crates/idna/idna-1.0.2.crate \
+          https://static.crates.io/crates/indexmap/indexmap-2.6.0.crate \
+          https://static.crates.io/crates/inotify/inotify-0.9.6.crate \
+          https://static.crates.io/crates/inotify-sys/inotify-sys-0.1.5.crate \
+          https://static.crates.io/crates/inout/inout-0.1.3.crate \
+          https://static.crates.io/crates/instant/instant-0.1.13.crate \
+          https://static.crates.io/crates/ipconfig/ipconfig-0.3.2.crate \
+          https://static.crates.io/crates/ipnet/ipnet-2.10.1.crate \
+          https://static.crates.io/crates/iprange/iprange-0.6.7.crate \
+          https://static.crates.io/crates/is_terminal_polyfill/is_terminal_polyfill-1.70.1.crate \
+          https://static.crates.io/crates/itoa/itoa-1.0.11.crate \
+          https://static.crates.io/crates/jemalloc-sys/jemalloc-sys-0.5.4+5.3.0-patched.crate \
+          https://static.crates.io/crates/jemallocator/jemallocator-0.5.4.crate \
+          https://static.crates.io/crates/jobserver/jobserver-0.1.32.crate \
+          https://static.crates.io/crates/js-sys/js-sys-0.3.72.crate \
+          https://static.crates.io/crates/json5/json5-0.4.1.crate \
+          https://static.crates.io/crates/kqueue/kqueue-1.0.8.crate \
+          https://static.crates.io/crates/kqueue-sys/kqueue-sys-1.0.4.crate \
+          https://static.crates.io/crates/lazy_static/lazy_static-1.5.0.crate \
+          https://static.crates.io/crates/libc/libc-0.2.161.crate \
+          https://static.crates.io/crates/libloading/libloading-0.8.5.crate \
+          https://static.crates.io/crates/libmimalloc-sys/libmimalloc-sys-0.1.39.crate \
+          https://static.crates.io/crates/libredox/libredox-0.1.3.crate \
+          https://static.crates.io/crates/linked-hash-map/linked-hash-map-0.5.6.crate \
+          https://static.crates.io/crates/linux-raw-sys/linux-raw-sys-0.4.14.crate \
+          https://static.crates.io/crates/litemap/litemap-0.7.3.crate \
+          https://static.crates.io/crates/lock_api/lock_api-0.4.12.crate \
+          https://static.crates.io/crates/log/log-0.4.22.crate \
+          https://static.crates.io/crates/log-mdc/log-mdc-0.1.0.crate \
+          https://static.crates.io/crates/log4rs/log4rs-1.3.0.crate \
+          https://static.crates.io/crates/lru-cache/lru-cache-0.1.2.crate \
+          https://static.crates.io/crates/lru_time_cache/lru_time_cache-0.11.11.crate \
+          https://static.crates.io/crates/managed/managed-0.8.0.crate \
+          https://static.crates.io/crates/match_cfg/match_cfg-0.1.0.crate \
+          https://static.crates.io/crates/matchers/matchers-0.1.0.crate \
+          https://static.crates.io/crates/md-5/md-5-0.10.6.crate \
+          https://static.crates.io/crates/memchr/memchr-2.7.4.crate \
+          https://static.crates.io/crates/mimalloc/mimalloc-0.1.43.crate \
+          https://static.crates.io/crates/mime/mime-0.3.17.crate \
+          https://static.crates.io/crates/miniz_oxide/miniz_oxide-0.8.0.crate \
+          https://static.crates.io/crates/mio/mio-0.8.11.crate \
+          https://static.crates.io/crates/mio/mio-1.0.2.crate \
+          https://static.crates.io/crates/native-tls/native-tls-0.2.12.crate \
+          https://static.crates.io/crates/nix/nix-0.29.0.crate \
+          https://static.crates.io/crates/notify/notify-6.1.1.crate \
+          https://static.crates.io/crates/nu-ansi-term/nu-ansi-term-0.46.0.crate \
+          https://static.crates.io/crates/num-conv/num-conv-0.1.0.crate \
+          https://static.crates.io/crates/num-traits/num-traits-0.2.19.crate \
+          https://static.crates.io/crates/num_threads/num_threads-0.1.7.crate \
+          https://static.crates.io/crates/object/object-0.36.5.crate \
+          https://static.crates.io/crates/once_cell/once_cell-1.20.2.crate \
+          https://static.crates.io/crates/opaque-debug/opaque-debug-0.3.1.crate \
+          https://static.crates.io/crates/openssl/openssl-0.10.68.crate \
+          https://static.crates.io/crates/openssl-macros/openssl-macros-0.1.1.crate \
+          https://static.crates.io/crates/openssl-probe/openssl-probe-0.1.5.crate \
+          https://static.crates.io/crates/openssl-src/openssl-src-300.4.0+3.4.0.crate \
+          https://static.crates.io/crates/openssl-sys/openssl-sys-0.9.104.crate \
+          https://static.crates.io/crates/option-ext/option-ext-0.2.0.crate \
+          https://static.crates.io/crates/ordered-float/ordered-float-2.10.1.crate \
+          https://static.crates.io/crates/overload/overload-0.1.1.crate \
+          https://static.crates.io/crates/p256/p256-0.13.2.crate \
+          https://static.crates.io/crates/p384/p384-0.13.0.crate \
+          https://static.crates.io/crates/parking/parking-2.2.1.crate \
+          https://static.crates.io/crates/parking_lot/parking_lot-0.11.2.crate \
+          https://static.crates.io/crates/parking_lot/parking_lot-0.12.3.crate \
+          https://static.crates.io/crates/parking_lot_core/parking_lot_core-0.8.6.crate \
+          https://static.crates.io/crates/parking_lot_core/parking_lot_core-0.9.10.crate \
+          https://static.crates.io/crates/percent-encoding/percent-encoding-2.3.1.crate \
+          https://static.crates.io/crates/pest/pest-2.7.14.crate \
+          https://static.crates.io/crates/pest_derive/pest_derive-2.7.14.crate \
+          https://static.crates.io/crates/pest_generator/pest_generator-2.7.14.crate \
+          https://static.crates.io/crates/pest_meta/pest_meta-2.7.14.crate \
+          https://static.crates.io/crates/pin-project/pin-project-1.1.7.crate \
+          https://static.crates.io/crates/pin-project-internal/pin-project-internal-1.1.7.crate \
+          https://static.crates.io/crates/pin-project-lite/pin-project-lite-0.2.15.crate \
+          https://static.crates.io/crates/pin-utils/pin-utils-0.1.0.crate \
+          https://static.crates.io/crates/piper/piper-0.2.4.crate \
+          https://static.crates.io/crates/pkcs8/pkcs8-0.10.2.crate \
+          https://static.crates.io/crates/pkg-config/pkg-config-0.3.31.crate \
+          https://static.crates.io/crates/poly1305/poly1305-0.8.0.crate \
+          https://static.crates.io/crates/polyval/polyval-0.6.2.crate \
+          https://static.crates.io/crates/powerfmt/powerfmt-0.2.0.crate \
+          https://static.crates.io/crates/ppv-lite86/ppv-lite86-0.2.20.crate \
+          https://static.crates.io/crates/primeorder/primeorder-0.13.6.crate \
+          https://static.crates.io/crates/proc-macro-error/proc-macro-error-1.0.4.crate \
+          https://static.crates.io/crates/proc-macro-error-attr/proc-macro-error-attr-1.0.4.crate \
+          https://static.crates.io/crates/proc-macro2/proc-macro2-1.0.89.crate \
+          https://static.crates.io/crates/qrcode/qrcode-0.14.1.crate \
+          https://static.crates.io/crates/quick-error/quick-error-1.2.3.crate \
+          https://static.crates.io/crates/quinn/quinn-0.10.2.crate \
+          https://static.crates.io/crates/quinn/quinn-0.11.5.crate \
+          https://static.crates.io/crates/quinn-proto/quinn-proto-0.10.6.crate \
+          https://static.crates.io/crates/quinn-proto/quinn-proto-0.11.8.crate \
+          https://static.crates.io/crates/quinn-udp/quinn-udp-0.4.1.crate \
+          https://static.crates.io/crates/quinn-udp/quinn-udp-0.5.5.crate \
+          https://static.crates.io/crates/quote/quote-1.0.37.crate \
+          https://static.crates.io/crates/radium/radium-0.7.0.crate \
+          https://static.crates.io/crates/rand/rand-0.8.5.crate \
+          https://static.crates.io/crates/rand_chacha/rand_chacha-0.3.1.crate \
+          https://static.crates.io/crates/rand_core/rand_core-0.6.4.crate \
+          https://static.crates.io/crates/redox_syscall/redox_syscall-0.2.16.crate \
+          https://static.crates.io/crates/redox_syscall/redox_syscall-0.5.7.crate \
+          https://static.crates.io/crates/redox_users/redox_users-0.4.6.crate \
+          https://static.crates.io/crates/regex/regex-1.11.1.crate \
+          https://static.crates.io/crates/regex-automata/regex-automata-0.1.10.crate \
+          https://static.crates.io/crates/regex-automata/regex-automata-0.4.8.crate \
+          https://static.crates.io/crates/regex-syntax/regex-syntax-0.6.29.crate \
+          https://static.crates.io/crates/regex-syntax/regex-syntax-0.8.5.crate \
+          https://static.crates.io/crates/reqwest/reqwest-0.12.8.crate \
+          https://static.crates.io/crates/resolv-conf/resolv-conf-0.7.0.crate \
+          https://static.crates.io/crates/ring/ring-0.16.20.crate \
+          https://static.crates.io/crates/ring/ring-0.17.8.crate \
+          https://static.crates.io/crates/ring-compat/ring-compat-0.8.0.crate \
+          https://static.crates.io/crates/rpassword/rpassword-7.3.1.crate \
+          https://static.crates.io/crates/rpmalloc/rpmalloc-0.2.2.crate \
+          https://static.crates.io/crates/rpmalloc-sys/rpmalloc-sys-0.2.3+b097fd0.crate \
+          https://static.crates.io/crates/rtoolbox/rtoolbox-0.0.2.crate \
+          https://static.crates.io/crates/rustc-demangle/rustc-demangle-0.1.24.crate \
+          https://static.crates.io/crates/rustc-hash/rustc-hash-1.1.0.crate \
+          https://static.crates.io/crates/rustc-hash/rustc-hash-2.0.0.crate \
+          https://static.crates.io/crates/rustix/rustix-0.38.37.crate \
+          https://static.crates.io/crates/rustls/rustls-0.21.12.crate \
+          https://static.crates.io/crates/rustls/rustls-0.23.15.crate \
+          https://static.crates.io/crates/rustls-native-certs/rustls-native-certs-0.6.3.crate \
+          https://static.crates.io/crates/rustls-native-certs/rustls-native-certs-0.8.0.crate \
+          https://static.crates.io/crates/rustls-pemfile/rustls-pemfile-1.0.4.crate \
+          https://static.crates.io/crates/rustls-pemfile/rustls-pemfile-2.2.0.crate \
+          https://static.crates.io/crates/rustls-pki-types/rustls-pki-types-1.10.0.crate \
+          https://static.crates.io/crates/rustls-webpki/rustls-webpki-0.101.7.crate \
+          https://static.crates.io/crates/rustls-webpki/rustls-webpki-0.102.8.crate \
+          https://static.crates.io/crates/ryu/ryu-1.0.18.crate \
+          https://static.crates.io/crates/same-file/same-file-1.0.6.crate \
+          https://static.crates.io/crates/schannel/schannel-0.1.26.crate \
+          https://static.crates.io/crates/scopeguard/scopeguard-1.2.0.crate \
+          https://static.crates.io/crates/sct/sct-0.7.1.crate \
+          https://static.crates.io/crates/sec1/sec1-0.7.3.crate \
+          https://static.crates.io/crates/security-framework/security-framework-2.11.1.crate \
+          https://static.crates.io/crates/security-framework-sys/security-framework-sys-2.12.0.crate \
+          https://static.crates.io/crates/sendfd/sendfd-0.4.3.crate \
+          https://static.crates.io/crates/serde/serde-1.0.213.crate \
+          https://static.crates.io/crates/serde-value/serde-value-0.7.0.crate \
+          https://static.crates.io/crates/serde_bytes/serde_bytes-0.11.15.crate \
+          https://static.crates.io/crates/serde_derive/serde_derive-1.0.213.crate \
+          https://static.crates.io/crates/serde_json/serde_json-1.0.132.crate \
+          https://static.crates.io/crates/serde_urlencoded/serde_urlencoded-0.7.1.crate \
+          https://static.crates.io/crates/serde_yaml/serde_yaml-0.9.34+deprecated.crate \
+          https://static.crates.io/crates/sha1/sha1-0.10.6.crate \
+          https://static.crates.io/crates/sha2/sha2-0.10.8.crate \
+          https://static.crates.io/crates/shadowsocks/shadowsocks-1.21.0.crate \
+          https://static.crates.io/crates/shadowsocks-crypto/shadowsocks-crypto-0.5.5.crate \
+          https://static.crates.io/crates/shadowsocks-rust/shadowsocks-rust-1.21.2.crate \
+          https://static.crates.io/crates/shadowsocks-service/shadowsocks-service-1.21.2.crate \
+          https://static.crates.io/crates/sharded-slab/sharded-slab-0.1.7.crate \
+          https://static.crates.io/crates/shlex/shlex-1.3.0.crate \
+          https://static.crates.io/crates/signal-hook-registry/signal-hook-registry-1.4.2.crate \
+          https://static.crates.io/crates/signature/signature-2.2.0.crate \
+          https://static.crates.io/crates/siphasher/siphasher-1.0.1.crate \
+          https://static.crates.io/crates/slab/slab-0.4.9.crate \
+          https://static.crates.io/crates/sled/sled-0.34.7.crate \
+          https://static.crates.io/crates/sm4/sm4-0.5.1.crate \
+          https://static.crates.io/crates/smallvec/smallvec-1.13.2.crate \
+          https://static.crates.io/crates/smoltcp/smoltcp-0.11.0.crate \
+          https://static.crates.io/crates/snmalloc-rs/snmalloc-rs-0.3.6.crate \
+          https://static.crates.io/crates/snmalloc-sys/snmalloc-sys-0.3.6.crate \
+          https://static.crates.io/crates/socket2/socket2-0.5.7.crate \
+          https://static.crates.io/crates/spin/spin-0.5.2.crate \
+          https://static.crates.io/crates/spin/spin-0.9.8.crate \
+          https://static.crates.io/crates/spki/spki-0.7.3.crate \
+          https://static.crates.io/crates/stable_deref_trait/stable_deref_trait-1.2.0.crate \
+          https://static.crates.io/crates/strsim/strsim-0.11.1.crate \
+          https://static.crates.io/crates/subtle/subtle-2.6.1.crate \
+          https://static.crates.io/crates/syn/syn-1.0.109.crate \
+          https://static.crates.io/crates/syn/syn-2.0.85.crate \
+          https://static.crates.io/crates/sync_wrapper/sync_wrapper-1.0.1.crate \
+          https://static.crates.io/crates/synstructure/synstructure-0.13.1.crate \
+          https://static.crates.io/crates/sysexits/sysexits-0.8.2.crate \
+          https://static.crates.io/crates/system-configuration/system-configuration-0.6.1.crate \
+          https://static.crates.io/crates/system-configuration-sys/system-configuration-sys-0.6.0.crate \
+          https://static.crates.io/crates/tap/tap-1.0.1.crate \
+          https://static.crates.io/crates/tcmalloc/tcmalloc-0.3.0.crate \
+          https://static.crates.io/crates/tcmalloc-sys/tcmalloc-sys-0.3.0.crate \
+          https://static.crates.io/crates/tempfile/tempfile-3.13.0.crate \
+          https://static.crates.io/crates/terminal_size/terminal_size-0.4.0.crate \
+          https://static.crates.io/crates/thiserror/thiserror-1.0.65.crate \
+          https://static.crates.io/crates/thiserror-impl/thiserror-impl-1.0.65.crate \
+          https://static.crates.io/crates/thread-id/thread-id-4.2.2.crate \
+          https://static.crates.io/crates/thread_local/thread_local-1.1.8.crate \
+          https://static.crates.io/crates/time/time-0.3.36.crate \
+          https://static.crates.io/crates/time-core/time-core-0.1.2.crate \
+          https://static.crates.io/crates/time-macros/time-macros-0.2.18.crate \
+          https://static.crates.io/crates/tinystr/tinystr-0.7.6.crate \
+          https://static.crates.io/crates/tinyvec/tinyvec-1.8.0.crate \
+          https://static.crates.io/crates/tinyvec_macros/tinyvec_macros-0.1.1.crate \
+          https://static.crates.io/crates/tokio/tokio-1.41.0.crate \
+          https://static.crates.io/crates/tokio-macros/tokio-macros-2.4.0.crate \
+          https://static.crates.io/crates/tokio-native-tls/tokio-native-tls-0.3.1.crate \
+          https://static.crates.io/crates/tokio-rustls/tokio-rustls-0.24.1.crate \
+          https://static.crates.io/crates/tokio-rustls/tokio-rustls-0.26.0.crate \
+          https://static.crates.io/crates/tokio-tfo/tokio-tfo-0.3.1.crate \
+          https://static.crates.io/crates/tokio-util/tokio-util-0.7.12.crate \
+          https://static.crates.io/crates/tower-service/tower-service-0.3.3.crate \
+          https://static.crates.io/crates/tracing/tracing-0.1.40.crate \
+          https://static.crates.io/crates/tracing-attributes/tracing-attributes-0.1.27.crate \
+          https://static.crates.io/crates/tracing-core/tracing-core-0.1.32.crate \
+          https://static.crates.io/crates/tracing-log/tracing-log-0.2.0.crate \
+          https://static.crates.io/crates/tracing-subscriber/tracing-subscriber-0.3.18.crate \
+          https://static.crates.io/crates/try-lock/try-lock-0.2.5.crate \
+          https://static.crates.io/crates/tun2/tun2-3.1.8.crate \
+          https://static.crates.io/crates/typemap-ors/typemap-ors-1.0.0.crate \
+          https://static.crates.io/crates/typenum/typenum-1.17.0.crate \
+          https://static.crates.io/crates/ucd-trie/ucd-trie-0.1.7.crate \
+          https://static.crates.io/crates/unicode-bidi/unicode-bidi-0.3.17.crate \
+          https://static.crates.io/crates/unicode-ident/unicode-ident-1.0.13.crate \
+          https://static.crates.io/crates/unicode-normalization/unicode-normalization-0.1.24.crate \
+          https://static.crates.io/crates/universal-hash/universal-hash-0.5.1.crate \
+          https://static.crates.io/crates/unsafe-any-ors/unsafe-any-ors-1.0.0.crate \
+          https://static.crates.io/crates/unsafe-libyaml/unsafe-libyaml-0.2.11.crate \
+          https://static.crates.io/crates/untrusted/untrusted-0.7.1.crate \
+          https://static.crates.io/crates/untrusted/untrusted-0.9.0.crate \
+          https://static.crates.io/crates/url/url-2.5.2.crate \
+          https://static.crates.io/crates/utf16_iter/utf16_iter-1.0.5.crate \
+          https://static.crates.io/crates/utf8_iter/utf8_iter-1.0.4.crate \
+          https://static.crates.io/crates/utf8parse/utf8parse-0.2.2.crate \
+          https://static.crates.io/crates/uuid/uuid-1.11.0.crate \
+          https://static.crates.io/crates/valuable/valuable-0.1.0.crate \
+          https://static.crates.io/crates/vcpkg/vcpkg-0.2.15.crate \
+          https://static.crates.io/crates/version_check/version_check-0.9.5.crate \
+          https://static.crates.io/crates/walkdir/walkdir-2.5.0.crate \
+          https://static.crates.io/crates/want/want-0.3.1.crate \
+          https://static.crates.io/crates/wasi/wasi-0.11.0+wasi-snapshot-preview1.crate \
+          https://static.crates.io/crates/wasm-bindgen/wasm-bindgen-0.2.95.crate \
+          https://static.crates.io/crates/wasm-bindgen-backend/wasm-bindgen-backend-0.2.95.crate \
+          https://static.crates.io/crates/wasm-bindgen-futures/wasm-bindgen-futures-0.4.45.crate \
+          https://static.crates.io/crates/wasm-bindgen-macro/wasm-bindgen-macro-0.2.95.crate \
+          https://static.crates.io/crates/wasm-bindgen-macro-support/wasm-bindgen-macro-support-0.2.95.crate \
+          https://static.crates.io/crates/wasm-bindgen-shared/wasm-bindgen-shared-0.2.95.crate \
+          https://static.crates.io/crates/web-sys/web-sys-0.3.72.crate \
+          https://static.crates.io/crates/webpki-roots/webpki-roots-0.25.4.crate \
+          https://static.crates.io/crates/webpki-roots/webpki-roots-0.26.6.crate \
+          https://static.crates.io/crates/widestring/widestring-1.1.0.crate \
+          https://static.crates.io/crates/winapi/winapi-0.3.9.crate \
+          https://static.crates.io/crates/winapi-i686-pc-windows-gnu/winapi-i686-pc-windows-gnu-0.4.0.crate \
+          https://static.crates.io/crates/winapi-util/winapi-util-0.1.9.crate \
+          https://static.crates.io/crates/winapi-x86_64-pc-windows-gnu/winapi-x86_64-pc-windows-gnu-0.4.0.crate \
+          https://static.crates.io/crates/windows-core/windows-core-0.52.0.crate \
+          https://static.crates.io/crates/windows-registry/windows-registry-0.2.0.crate \
+          https://static.crates.io/crates/windows-result/windows-result-0.2.0.crate \
+          https://static.crates.io/crates/windows-service/windows-service-0.7.0.crate \
+          https://static.crates.io/crates/windows-strings/windows-strings-0.1.0.crate \
+          https://static.crates.io/crates/windows-sys/windows-sys-0.48.0.crate \
+          https://static.crates.io/crates/windows-sys/windows-sys-0.52.0.crate \
+          https://static.crates.io/crates/windows-sys/windows-sys-0.59.0.crate \
+          https://static.crates.io/crates/windows-targets/windows-targets-0.48.5.crate \
+          https://static.crates.io/crates/windows-targets/windows-targets-0.52.6.crate \
+          https://static.crates.io/crates/windows_aarch64_gnullvm/windows_aarch64_gnullvm-0.48.5.crate \
+          https://static.crates.io/crates/windows_aarch64_gnullvm/windows_aarch64_gnullvm-0.52.6.crate \
+          https://static.crates.io/crates/windows_aarch64_msvc/windows_aarch64_msvc-0.48.5.crate \
+          https://static.crates.io/crates/windows_aarch64_msvc/windows_aarch64_msvc-0.52.6.crate \
+          https://static.crates.io/crates/windows_i686_gnu/windows_i686_gnu-0.48.5.crate \
+          https://static.crates.io/crates/windows_i686_gnu/windows_i686_gnu-0.52.6.crate \
+          https://static.crates.io/crates/windows_i686_gnullvm/windows_i686_gnullvm-0.52.6.crate \
+          https://static.crates.io/crates/windows_i686_msvc/windows_i686_msvc-0.48.5.crate \
+          https://static.crates.io/crates/windows_i686_msvc/windows_i686_msvc-0.52.6.crate \
+          https://static.crates.io/crates/windows_x86_64_gnu/windows_x86_64_gnu-0.48.5.crate \
+          https://static.crates.io/crates/windows_x86_64_gnu/windows_x86_64_gnu-0.52.6.crate \
+          https://static.crates.io/crates/windows_x86_64_gnullvm/windows_x86_64_gnullvm-0.48.5.crate \
+          https://static.crates.io/crates/windows_x86_64_gnullvm/windows_x86_64_gnullvm-0.52.6.crate \
+          https://static.crates.io/crates/windows_x86_64_msvc/windows_x86_64_msvc-0.48.5.crate \
+          https://static.crates.io/crates/windows_x86_64_msvc/windows_x86_64_msvc-0.52.6.crate \
+          https://static.crates.io/crates/winreg/winreg-0.50.0.crate \
+          https://static.crates.io/crates/wintun-bindings/wintun-bindings-0.7.16.crate \
+          https://static.crates.io/crates/write16/write16-1.0.0.crate \
+          https://static.crates.io/crates/writeable/writeable-0.5.5.crate \
+          https://static.crates.io/crates/wyz/wyz-0.5.1.crate \
+          https://static.crates.io/crates/xdg/xdg-2.5.2.crate \
+          https://static.crates.io/crates/yoke/yoke-0.7.4.crate \
+          https://static.crates.io/crates/yoke-derive/yoke-derive-0.7.4.crate \
+          https://static.crates.io/crates/zerocopy/zerocopy-0.7.35.crate \
+          https://static.crates.io/crates/zerocopy-derive/zerocopy-derive-0.7.35.crate \
+          https://static.crates.io/crates/zerofrom/zerofrom-0.1.4.crate \
+          https://static.crates.io/crates/zerofrom-derive/zerofrom-derive-0.1.4.crate \
+          https://static.crates.io/crates/zeroize/zeroize-1.8.1.crate \
+          https://static.crates.io/crates/zerovec/zerovec-0.10.4.crate \
+          https://static.crates.io/crates/zerovec-derive/zerovec-derive-0.10.3.crate \
+          https://static.crates.io/crates/zstd/zstd-0.13.2.crate \
+          https://static.crates.io/crates/zstd-safe/zstd-safe-7.2.1.crate \
+          https://static.crates.io/crates/zstd-sys/zstd-sys-2.0.13+zstd.1.5.6.crate"
+MD5SUM="0360ef67392ffbaa38ea53c76f323cd5 \
+        fd1d0d5b3ecdfb40979711421742ddf5 \
+        579e59ba996675f454d456471924ea9d \
+        65d4788e15f2bbf808d0229ba84e7641 \
+        bcd3b8d466e8187ed4bd4655b34b6285 \
+        a9d6416ce6e1c6b70a7c176802411b8b \
+        b7abc7df261ece859d3d1ffb5931ebe0 \
+        adbb51e40b28255c49b2ad1d956eff19 \
+        03b2d126766ed746706241b4c7487654 \
+        be8e23ff8eb9120d87149284985b1aff \
+        116ec82c7f23492ad641f3c7f37d40bc \
+        e0a03581a6aea080315323651f272d65 \
+        bf23cd323c33a8c283c41bb9b79e4ce4 \
+        64c9c06c903f9515ece3705342362a9e \
+        3d57cfa9d3c706404483c80170e1f7f9 \
+        e2c3ead6439544dad05a90db9f59cbdd \
+        1eace5e9ecd352f139eef4c16e2c1660 \
+        27ebd71018dd6d909d4332d755908610 \
+        61d0c4e7ea085ead2d1cd45a150bf8c1 \
+        a5f88692dcd3b16eed2f184509dce05b \
+        7d0eee1c60dce32fb616e46829b973f6 \
+        3ce13f8504b72552464acf5c8a29fe72 \
+        622685d20c830a270f0af9f0cd383559 \
+        e09416c884027b94479fc254f8d2388e \
+        118e580e29ead42b43eb3dd9eaabac90 \
+        6a44afda654777d2930b93366bdfc7f3 \
+        9e038efbd61e6d7cbc54983abc5b3948 \
+        68a9f9dcd62800564d5daf5c2f36accd \
+        5a1ece5125e266d39693587725f0270d \
+        3d192a852cb456a965c5d64db624c915 \
+        5a5f45206802441161524e1be576da1f \
+        20084c4c04bcc06fd3d7ff662deca706 \
+        bd4c0e123b65937461c135ff7030a44e \
+        15a10dcf2e8e45db4a8dab45e98716c5 \
+        a295edb6953237ebbdfa8e731229f9a3 \
+        a765e0d59ae689aa9eb9722c6553e499 \
+        771aa8bb6e0811a97971fceecabb3245 \
+        4c0d5c6311a2bd14de6d258c124790fd \
+        023b03cf9968b29253a5dfe62051008d \
+        bba35eca663d82c5a9cec2e6a43aeef5 \
+        fb80776f2c033e0f1d3204cddb1589b0 \
+        3b3ab495ee2cbc766bbbd6e1f8bcd3a1 \
+        a5a887fd0ddca918e4aaed1212cbb1f9 \
+        82ede22773a8b9d096a3615ffc39f4bc \
+        39334361b6b6cd138aff231f28ef482e \
+        a3c12a0b2ddb55ec1b245f9950e7bdf1 \
+        1b7a56716d7d6e74e34b138ce2e52494 \
+        45339d90b2b3a4f123af5ec459954102 \
+        2c7311e2ee17f6ba8d3efef8959e0729 \
+        4245fb1bb16eb191e79e1050262f6361 \
+        dc2cf6afc37a7d23a18ed7dd0ee34500 \
+        57fcb3dee32f0032742e389cebdc5523 \
+        403d14ce33a4844289a6619f872377a8 \
+        baf819db7d1740098f1f004cc1bad442 \
+        74634128440dbc3766bda76fdf0aaa05 \
+        f5215c4283a1984b95043a7185245e00 \
+        8209bcb742808b59b79e3c8ced7074d5 \
+        20cd0fc6f8ca1fbe5c34e0c031de7278 \
+        a84898c2e50fd6cfe7d068a1d6d4b5fe \
+        ef4cc5591659a050ca0de3363b6ab353 \
+        d6044fe752d3ccace43e140ca392619a \
+        4806e67dba23889af14bbc7e0eaf4710 \
+        8a3db8ec4d6912594fb2599bf2d6feba \
+        685c4f668742d629459b7ca109bce2ca \
+        83b095b5e7b8eed0c1e550128b940cc6 \
+        d1f70680f36b13b74bab20250fb2f26f \
+        6ed0aab506ad1ec23e34c6aec4efd1d7 \
+        a420be1752eb4ac451ef963031b2332e \
+        4d7e3bc6c42f8a875a87246ed14d9948 \
+        c5229cfccb6a1598e74a837dbc9e2797 \
+        fbcefb1444d037650c4b2c85a1b2365f \
+        f816d75ddc8831b6a300a739ddae267b \
+        442a035d4bebfb01fde2e9299563f73d \
+        44505199ec0964feb5488051b4ac92d5 \
+        c9a5747e504d7f3dadc1fc563ae3d6f3 \
+        d2695f81f5e7b7a44da337b59c56b363 \
+        89e88633cab0e4b6f3d3878b84dffe8b \
+        99fbf6fa951e7abc4f9e3acece16948a \
+        c925e19b9b4a7a63a992092401cad749 \
+        26ee9e33b6eadfd3166cdc94d48c7dfe \
+        13798079499cb6133110d7467256f957 \
+        27673ae84b44c9e263fb0c834cebf9d9 \
+        d6bdcc11507063ae2becf3d66303fe33 \
+        dde85204706c20baed5d666258a08b74 \
+        d022bc79e1931c2bd4ebbe65cf3d2309 \
+        59978ef7bcea7bc55e24d06a2d32a32c \
+        63f8544fb2518586f92d8369a7878f54 \
+        3d62bfbbe08bdcee55fcb8cda85554d9 \
+        b3b1534addd3e670061631ac00fd3d7d \
+        6681f2b2a1b8854ec13b1d35edc6fdc3 \
+        145b7bd67e6356f3510a7d8fa9bb7926 \
+        3ce1c12d6f46952c4a394c8c3bb9437e \
+        7f8c8d34d343803f8bd66bd39bbdb700 \
+        ffc9c1ed3a5f35182084b40ff2ff6111 \
+        916cd597e92b97a987a1a8f8f2d40805 \
+        b6df1fcdd7634aa9d3b84bbe107ea76d \
+        13d8839131bf2392e53e01449ee2dd3f \
+        ceeb73ceadea87eaec5261dc3fbed216 \
+        bdf329a72ecd0605c296f25e53136706 \
+        bcd5fd8c2b279da10b5a4d7b67eb555e \
+        3fe3758f3c607fd4d3ec6beeb895d568 \
+        1e40728df271c6a0b69f134b9ea5db35 \
+        f7e39a817594c22ef2609187c43dff9c \
+        06e723078de46119c270eea21ec4344e \
+        3ef10447881b00471497237c64f44ac2 \
+        108d90c246e09f46087613284e8651e7 \
+        707c14d536067554f7fe03a8529cf426 \
+        742a88021c584b492e70b5e44e3c4480 \
+        8dab3b3ec00dc56cffde0b0c410d47b5 \
+        78c898fdaa3968e23904bf8538c4a271 \
+        667e86b8b8d96ab4e9605627ce7dcc9a \
+        c3e51926c9853b714191ef1bec90e2ce \
+        29d2e692b75cceb9a2b2766408a307b7 \
+        724696d583d5c24321c62a5e443d241f \
+        6c162f039387980e6b6c4fecf8be744d \
+        17d69a1f0242b43b66a0e9a1887a73f4 \
+        a086623c9c2f91f23ae5afee7129c943 \
+        9a91b575ff300519839e2e765c124427 \
+        6b8cf12fc0d02dbc2eb906b5cf74f8c1 \
+        118c724fa4cfcc59ef1bcaa438d997b2 \
+        f0af2a791144dfe21d284bcc00f7fa38 \
+        e597e8c43837b595ee5922b605dec5b4 \
+        b6667c48b9fc2e1cdae5697a19a021e1 \
+        591cbad56682180a4160a8feedc6c468 \
+        f63e8b6601cfe5fe91cb977b3bacd1a2 \
+        3903eb92a9ffd398f49c39b8df8e3987 \
+        64a6d8fe0c9a450bcefa41894e17d7ac \
+        3c67481b4433a3219846e41d09aaeaa9 \
+        b7728d1164716d5a52fa858dd6022314 \
+        af0a19b2d65a8a745d733aef0337fb02 \
+        974e766c6583278ac82a83632b75b65e \
+        a85d6948bf96a59b7d47b5902a4a69a2 \
+        b96f3c88d4f1bd0d4b38c03bb4d9c56b \
+        36fa6f68f0f5889e6935b018e3810165 \
+        0a34678f27463b0207cd75cc62b93e4d \
+        302cd0fb3cf96dfb6f67c7c096ffdd44 \
+        2b4d71ae58908d5d3c650ce37b3dc179 \
+        e42194e3cfdfdb40e8b2dec80ab3172b \
+        ce5935e8063a452913a61e5405b33cb9 \
+        4daeb6abd6951210bed659c3c1ea01b4 \
+        1d3e530a3410fc95a6987d70f84a6332 \
+        aec62a7f60962111cb9e0d71b37df442 \
+        1216fcf80c899c240f9651242edc2d35 \
+        8cd6f472d6904b0c507a456dddb68eb6 \
+        4e0c068ba38fa8e0aa6c46bce5e9d2ab \
+        d15066ccf2d33bbd8afdb9036ba47da5 \
+        fb46b88c5cbf8bfe28124af1794f3934 \
+        ac93fe50bd04f323645dfa04955aa298 \
+        9f891783a0726303d8827598b7f4dcbe \
+        ff4d5f0e7155017add510cdfa1689737 \
+        07a0c4cd63df81c92cbe37421fbffc33 \
+        580b311bafe0447ebc9ca2e646d9b0e7 \
+        c01022fe0357c10ca1d48b16187f81bd \
+        cbd47487d2201904dbfa7fc44aaf5592 \
+        170e6f70f5ade6a031d44a74f3f6c2f7 \
+        f654fdede1434dc135c78e50a1233e25 \
+        0a125dc4dee016c9005c0416856935b7 \
+        64230e60ed58b0e7a52dfa572b4c4abc \
+        87b1b7cb12ef4dfe842c212b98263048 \
+        a3fdef868df4241e048e44bd24009fbf \
+        a1d857a2bddf43a7ed8cfa8e7f473144 \
+        76eae866746161f902ad17df8c2b531d \
+        eaa2187c67e0a1fe6e9b005df2ed41fd \
+        db851dc7d7e14003f2c61321c144ef9e \
+        8741f695aa6d4cb0d1c9a611b77ecd8d \
+        5bd071fb3c895011b47f6fc628b09ccf \
+        13f5363ddfff39b9c255f8febb8f376c \
+        8aa5f281d832ffeda9df689de8bf795e \
+        3d76b70f45ed54a041eead03741f7bda \
+        6099af3f71f8900bbb9bd06d84655495 \
+        b5305bde14813da51d536a9df564db69 \
+        669afd1a3c154ca49312f2278c8e53da \
+        cd182d7763de81a8c5ee3d271a4fb31e \
+        1c69490f9cefc24e2119217039c61dda \
+        639af0cca65c012e6a028acfb657e417 \
+        5f3fd38b7aefc1ca48efe279994953f8 \
+        43aa79b89b15111c5ea9314737302826 \
+        7e4f7f4cd0619460abf9ff779ef6c0a4 \
+        d44c67c1f623a3431c77a8d29d14af3a \
+        07efcd723be16ec74a0d06016bcc5019 \
+        83cd180e6991b62b1cc6d646bf4d0284 \
+        5d87e8530342ef2a980b1c96dafd27f0 \
+        8a1180efc4ebeaecbf8e8e094bcb2659 \
+        77b8d4657c9c6ff1050c760a3c868a30 \
+        371fb71b0651ef8bf26e827ec21b1f76 \
+        0092bfe46748ded52c1b63a7cf667a9a \
+        acce388c35f19cef73cba1eb1d1d7fb2 \
+        e646c59e9a7da5308afd8e43149bcfef \
+        8234d20b9a5ea5e7087bb5ddb414011c \
+        bb0c20f6e3faaa647d9c463c5501a8e0 \
+        02d069e240feaeb08ae4d2e090a5d1aa \
+        497cb030511762f0e30f395fb9c092ec \
+        7349c0f096b81696926a56bfa0f6bf8f \
+        b928626f9e8328e4085fc27cfc640c19 \
+        ef352de59e1b26277213640319c87e88 \
+        6d16890925497732bdbedd7636c9546f \
+        490363d567422baac783b6b51a889137 \
+        eb44c81f81e4aecdbdbafeac9c0fdcab \
+        efeb260cf6b2a13607ee12321e39cc8d \
+        e4e6a8d283b03107a3781b7868efab56 \
+        12c9516116bd0aafbe651b79183322ee \
+        bdd33c313f7f9408bfef10e67921f93e \
+        86dfaeacc362691d56070fa93532c63c \
+        5df5b0d4f05f53ebac1da4be61661bf6 \
+        ccc5ff9ff4a431e36c0b6dd9f640ab58 \
+        29614f150859d094548bed37e78f586b \
+        e595ddf1b635868eb7e2f237f71aeb21 \
+        c0aab5e6eaaa6a2f3c7ed44f123d1c7d \
+        5ced2912817c3e628be53905c75b2ae0 \
+        dfdf2484a5545f51cf6b1f5f23b9f92e \
+        7c3a27860a0082241f5c9a069e431fba \
+        13f47025d308bc16d26a9bc3334f3bbe \
+        608381b826ce567c0774506bf6d016a6 \
+        a53c561dda35f36427cdc1c254eab50f \
+        ed4e44c8eeb59ccf02891681bd0a5f2d \
+        1be22bdbd81580965933512a89c00e25 \
+        a56461a712a83abc691cf473d1835228 \
+        5b5de6cffe4726037a5ec6d6931c80f3 \
+        e092b3abcc54806f2a35889d725bf95f \
+        4578b5cccbe636b7e5becdf5543b3802 \
+        c34a4cc09b18124bae1e1c6e5dcbdda0 \
+        2b55f4f5a83a6ed664ff5b60aff9bfb4 \
+        af58dda7d5f0917aae30cf3f5fffdadf \
+        513851486fe21348ce3e5428e8d7808c \
+        28d34115cfbbe0e8f80333591f2cdd84 \
+        907244c0d3791f3f981c7cc8e4cad0a3 \
+        5d9f43942ae82a2b79fef51e875deff9 \
+        4c18f7576b04986cfd0e7e7182d6cac8 \
+        130db480add7c9dccf7c13aa9ca71c82 \
+        71624c8a64c75744a95f02a09614f220 \
+        03a7ad2814bd9dd34e0acec8ca4f855e \
+        21e37cc7ae05126e472caa5b5beb317a \
+        9822018c3ee7133a6f093f679d639da2 \
+        c98fa41bae9a9421fcf24801356ef5a8 \
+        12e4ba5909e1f30b9142932571eaa4da \
+        c63cc43554a8abcf7b1166626f0e3736 \
+        b1713fb3ae03d434680cff5fb4c14144 \
+        fe316e1d51e3dff1e0455d0142dd37e4 \
+        0ba30a94d7b8865c23e86d4d64e5b91e \
+        0ebbeef40db2450247bda0494ac22de3 \
+        7c43b92180cb72fbff1ca7c81670bc13 \
+        db4fe8a40c19ebea08a54f2a39203947 \
+        3a0636a2d80f258196b0ceaade1eff06 \
+        f0f9d5e853f9ab24956049f287235541 \
+        09941b7c21e65e4c305d287a92a0f406 \
+        33d81093e4a1abbd77e3fd858c2d1783 \
+        07c75fec267864bcbb800ca7709ceae2 \
+        053ad54a4fa64ed603bb44453dbe652c \
+        54148ff5f2a4a6f4f1e857b0bf854bf0 \
+        e7462bc76b29e8a0bb662e334f07c862 \
+        c225bd1638bcbfa7c80a8dce818f12a2 \
+        44550665c8f0a8826e05c080f4b21519 \
+        30eb4de1c1a3bd214d7649b891abf444 \
+        60ddef23e68d8cbb9f9f33b747fe1734 \
+        d226e4317502fe822b21daeda4d7488c \
+        6a32bab57772c3a1146d599b65ffb0cb \
+        7d76a523677de261dda1b65d29a93c4e \
+        ec19efca1997391d3062428a8bf76885 \
+        8f36487758a47c6b37d883e30be9edc6 \
+        3181dca31efe33cbed29a45d0ec67848 \
+        d08febd574f60bee30aebef3b333928d \
+        cdfc316a709e1aac44f30ae2f914e589 \
+        f0cd7649458c98b1433ae65d4fc27ee2 \
+        efbbb04551b8953c586f5e9cb93a65c7 \
+        08eedc853b3a9c2916a1beda0b54a66c \
+        ddecc8a0713c7c34795281fbc0bc0ba0 \
+        ec5466d73ce9285f92a1458cdc1b4046 \
+        c3d0791d7f9cb5103c004856e165fe0b \
+        ee7a5f842c39bc47c474196e83b0df5f \
+        e30085994bbeb4b7f4895d48216d5476 \
+        a1626b8f4d165b1b60d960862eba4cf0 \
+        16111f31a29feae4ce4a324b83dc0189 \
+        c49fe494d29a0ba9f8009a437676881f \
+        bee355e36a71b94ea45eedcd3d054ae1 \
+        83ecafda24e071eea2198d9b440739ce \
+        95f4b6766a27d814b4e54d1ccb3b7fc9 \
+        025d53770fd76f151532a2dbfdcc63a4 \
+        f2303650593b13e30a85e39d8c79c961 \
+        45c2ac064f6aedb1944b989742218e26 \
+        8e7b37a10f73bc7925c3be057549b33f \
+        89c25e01f6bc91d965f1684d049b6ded \
+        17462a66e5dda514a57afefa0295d8f0 \
+        2a22c24f8afff411e1cbe0e6c0d79e7f \
+        fd3f494e5175fcb7c33094ebca6f71c8 \
+        3794bb5da875c43ea9b6a3b28c16c135 \
+        fb4a81bac8afa84ce8ca8e0dad4b7dc4 \
+        e87dc9c6c42066d16b8997e95761b18d \
+        42be3bf379173990f8233d93256c1a6d \
+        b400c455aaf7d3e6a216261f07c4bc93 \
+        7b1261ea730a9314bc9bcdf4a379bf98 \
+        f46223d81e992d816b96529bab93a8c5 \
+        6bb54e2ed8584e03a7bd2a688a601406 \
+        fecd60334b6816d05cb484f7c34f9da0 \
+        1a1e1791798dabcaf476f7d50156ec90 \
+        084b7be564e38bc109b9b70631e1784e \
+        dcdabe55db9042a2683dd1e00fb3b292 \
+        64f80235e287a272c4f841791884a1de \
+        4b24bd32a2a5d6b5a23a75811e4a0748 \
+        43d0e66a2079edb4651efe1cc38d243c \
+        9a668fb72cd7aeefb4e48fc37bdc0a4e \
+        852208752cf7c6a48a6f4a8ea92239eb \
+        56de037d755aeb0b45169991f9567cd7 \
+        2d8d8b377d144f5e32b4f65a69eb0b24 \
+        04c1a84d92f8010aa9bd92ede701ef67 \
+        f1358be8c98b98837cbd2cf51e75f8b3 \
+        c5a05bb3260e6a4b5d61cf78618f6021 \
+        46e0a2b34b2a6108cad9e2b1da756cab \
+        3b3ebed978a7c19de258926438888de5 \
+        f69b2d34467409e0d3becd860e97c292 \
+        0cb4d7ed84d1bb59e27f82785e896a16 \
+        a044398f1daf8af1c9e1d435e95e8f1d \
+        eeda11db8ced625011d8b88d36765321 \
+        5eb2114b0aadaed0fac90ffd61fc2047 \
+        28b2acc71f1bac1387830946693e9690 \
+        ed5500d1b2bc659dc929f41d3d38415c \
+        47151b766b6b73e638fabe6fae7b723d \
+        39e3168b0ff2d77bcca05882310b2a06 \
+        d7602381c0bc21d10603cc940a837b06 \
+        289b776935f2184c6ba2974877285013 \
+        d8f8afb169fe1d8e464a271fd02a1be4 \
+        cbac6a37ea78204d483d4d224de6ab90 \
+        b72a97d898d0df4d078419d1cda9a936 \
+        9f908ee8b2b1ed9847a7bc7da3231a9c \
+        96261f3cee18842060fd64d618e056d8 \
+        6c623a8eed8450399ec323a72e96855c \
+        a77d5770902a4260009320daafd1fff2 \
+        a5f10909341dab15fcdee74b0409ec69 \
+        ca8d3b0dc2184709ad94f8724cd1dd4f \
+        5d8c25fc51ffebca67935516c2325860 \
+        557d38e1fe2dc08facd40c7514a60fd2 \
+        07d7a47efedfec689e9393805276bb2a \
+        50d5a501f911bb592f0dce2d052c2aa8 \
+        691983b169dc4186306f76547885ab98 \
+        dcbf6e386df8f9ea40a6e794df3b32f9 \
+        04e10cfa37987a31b6853cadaa687d66 \
+        746d5deb23a67c019e5b2381d76d4afa \
+        422ea23fbfe5bff61f519d960647ebf8 \
+        ae0a9c293bf6cb72cd62d6b9486356c0 \
+        ae35a16ea73fc405f1cf50fa35b70ddd \
+        5988bad1543264a9f48b542192e7de9a \
+        fbe5da24bd1beef6125107ee41118187 \
+        611730d5a0344bd87742297274631890 \
+        64d9f46e9ba78f68c30c486be3d8b7df \
+        134d1e26ab8fd65af776b3633c79508a \
+        a8f34ece1f4db030b0b651ab77229bb0 \
+        9b28f25fbaa21872ffe3de6c522071bd \
+        58ece350e2de7dc9268bc74743375b4f \
+        3061e8e265587d90d322831236132f2a \
+        0f4f309e7a04d48b38c5d07e8138ef0e \
+        fdd7cefe256b6bcbbc2ba2344e773496 \
+        cb54472d1fe079980c0cc68b94ba7c8f \
+        78506d4d74fb1bc90e1df90e009a221c \
+        24231564a1386eef7c67e2f1bd7479ae \
+        b30704d6896d28f33fb6f02253b5719c \
+        97c23d1e9b57a514e657f00769e04b5b \
+        ef24c364952100de381975debc8a98ea \
+        9f87cf01244c099637c643c6a31a8386 \
+        6739d2c377b9e20af9a23022e362aa33 \
+        19e6e4e45004e2b023e49e37c34b4e31 \
+        7818a75208424a6d05d1d868559f0adf \
+        cbfa351bd29e3779266c82b3996fc9ab \
+        6e593895d17d3b0b70d90138fd43b827 \
+        9de7b54918f327a684ef664a4fae3f5a \
+        c678a7da0ee4b850ebde0474144a0415 \
+        0401469b6f31f4346cdfd9e55e318bb3 \
+        daa11fbc0b4fffdb277888294c6ed7be \
+        9e2f7831d5c7d8bd2f430984e47c3065 \
+        ba33dce68cff6856b109a88219627dc3 \
+        a73e52175230d3d554ec4215d198b5de \
+        d08bf4293ff6191a72a650ba4ba3c36c \
+        8309c0dfcffcdaad0d7921a008ad458d \
+        efdf8f6fcb26ffb336db4d4437c6d537 \
+        0a906c03436ec2dcc4c311c21fee0da2 \
+        9dd610282e23bbd40016697350c1babb \
+        a6655e5e9845cb569991e87b5b38a1fc \
+        beede1fdd5ce9840d395abc905d8ab3e \
+        7e2eeef14bb62adaf15f1e921538adaa \
+        6f09120aa341d58ea072539176058a00 \
+        a3c0370bdf2793a09f23684f5b662659 \
+        f216862865bdcb333ebe53db9db9e6fa \
+        6ebb8deee5a5a0d1c26b20eeee1926b3 \
+        61e33ccf8e6431a1234897698d177033 \
+        0d8c8185b5ced274098729521a5a11dd \
+        7692382986a2373fe5b5574ffe03e927 \
+        ffd4e6af580c4c4183723e1a858551dd \
+        161cc60e750d6829434734ccecc44c64 \
+        86c708d28206bdeb4d63d379d832251e \
+        a8c6d404eec9e0efc975e65312b76228 \
+        240cfb5665ad3457b28bcdc139393e6d \
+        674e5a6b49cf5e0ebb1d6cc85f6ec786 \
+        8a83a7122dc03fdd42e5ba67680e5300 \
+        223c59f6c140e81fb734f455df3b538d \
+        04ee294e8d343a73ef89ed6f07acd9b1 \
+        470f527a51d3921895bd2583fce8d9c4 \
+        93ca04fa211c66d41b66ce793b7ca105 \
+        4efc6e7a118524cecefa0023a18accf7 \
+        e900a384ac7dbb320fe6a7279fbfef89 \
+        f9880f1c33a7bc7b0e6e086b504bf38f \
+        f38b27b8c9625110a51293658f1cc014 \
+        4daa973c57624dc3d88eaa49dd86d3e1 \
+        e972ea58ec203bfa6c79c1207852298b \
+        b7a2d07762488b3ae07cb7b06df0dda8 \
+        0513ca405a7d6264a26fbd623dac2a38 \
+        b5fa012c3d3bde0487e26a2fe8267a4c \
+        850e363c346ecb4b51e3219fa59e0f67 \
+        ae2a18c76deecadb53c7f4aa4a7fb6c4 \
+        fc478ebfdaa1b11f2738822b73a0b8ac \
+        dfe04a01a84c2e213401d87d1b2819c1 \
+        7198f477e642b5dc850d79193fa86b6c \
+        af42acbb7000d5b8468fca4c76466472 \
+        f40013c24943b651746cf5da5b881c22 \
+        0498c4a11448bfc35dc7bb2caa64c753 \
+        db96b50050277bf05a3c68534bbb9586 \
+        e908e1808f2a480449f8d86281ae24ef \
+        09de9d01e7331ff3da11f58be8bef0df \
+        6fea8456dac26da1a185af6b0318dce1 \
+        289310cc0a3881cfc3bb10062f916d8e \
+        bec88d1b4f607b8ec490a6653b335e63 \
+        710911910a331a36b72b5af8f26c7808 \
+        65d11d829b1d9b7a174b7a6f2616a261 \
+        f2797ade0e36f1e5d6be9d11b5076582 \
+        2376de634160158ece40c4bc2ab3eb41 \
+        73b177d6d000daaa8f05790414a887a3 \
+        24c64817e85ef77765ed0f26c31c9b4c \
+        9e876a38acd8262d97e9302ecb4e0f72 \
+        dae6d89034a6988042fd8be4cf5e037d \
+        8c8adde50f0a531c407c5b68ab928f0b \
+        de2839e16d9d7a9fd1c397da62f62b4a \
+        233b17dfcf7e49ac791eef30b7f406e3 \
+        e0c35ffb8cfdb74a39bf799811f79304 \
+        7cb99b00381f697eaf8a322ed3b8205c \
+        1baf62319b533f3d996993b82305e547 \
+        d990172b607020701f9e84ca8e1c043c \
+        311ded6588844e072d3fb953a8f994da \
+        0a68848588e847ceccf504891584d00b \
+        3f265cbde7668f38c1229043475470a9 \
+        45b469ad607b912256b7c80141fa2d17 \
+        4e50e886c72204c268c15a3230001d71 \
+        7799baff9a5664205d9110a2624e8989 \
+        b95760e9133ba1bb456d0f0cef74c9a4 \
+        f7ee9de65306cc4e1f8ce02790ca089e \
+        3337b2254af01ac6bfa0f37a77bdbadb \
+        d35e6e01813d7989bae0f1b30163858a \
+        7dcbc69fc640a9d311102b36db4550c9 \
+        589309abba88dd6e8099a95640457f7d \
+        1613d0f9e24d4b05e81748ea1f355f6c \
+        7076ad4722e6404174503929ddb3f2a5 \
+        1c1063f284529ff09b3fc56446e56056 \
+        74ea77ca2056e0f68d6aa6f341c5ee3b \
+        8b9abf87faaabfcedea7b9ac6381752d \
+        6f3202026e3082b225268cd7b4c7c4fb \
+        0cf1a2af03bc26ac92480500663670f7 \
+        fc484f491cd0c91e5d7343776e055a77 \
+        9f91863a5386e15032f83278785b9122 \
+        69164390cb1498845fcb02f961b5f794 \
+        c548d89d967d0bb679133b47eb00898c \
+        763350615652d5139e06c4275d0a6c47 \
+        93275f638d756d14dbc7b0569f7f46e4"
 DOWNLOAD_x86_64=""
 MD5SUM_x86_64=""
 REQUIRES="rust-opt"