Compare commits

..

No commits in common. "master" and "2014-06-25-Release" have entirely different histories.

2524 changed files with 114917 additions and 532202 deletions

View file

@ -1,19 +0,0 @@
from archlinux:latest
RUN pacman --sync --refresh --sysupgrade --needed --noconfirm \
base-devel \
ccache \
cmake \
git \
gtest \
mariadb-libs \
ninja \
protobuf \
qt6-base \
qt6-imageformats \
qt6-multimedia \
qt6-svg \
qt6-tools \
qt6-translations \
qt6-websockets \
&& pacman --sync --clean --clean --noconfirm

View file

@ -1,26 +0,0 @@
FROM debian:11
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
build-essential \
ccache \
clang-format \
cmake \
file \
g++ \
git \
liblzma-dev \
libmariadb-dev-compat \
libprotobuf-dev \
libqt5multimedia5-plugins \
libqt5sql5-mysql \
libqt5svg5-dev \
libqt5websockets5-dev \
ninja-build \
protobuf-compiler \
qt5-image-formats-plugins \
qtmultimedia5-dev \
qttools5-dev \
qttools5-dev-tools \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

View file

@ -1,28 +0,0 @@
FROM debian:12
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
build-essential \
ccache \
clang-format \
cmake \
file \
g++ \
git \
libgl-dev \
liblzma-dev \
libmariadb-dev-compat \
libprotobuf-dev \
libqt6multimedia6 \
libqt6sql6-mysql \
ninja-build \
protobuf-compiler \
qt6-image-formats-plugins \
qt6-l10n-tools \
qt6-multimedia-dev \
qt6-svg-dev \
qt6-tools-dev \
qt6-tools-dev-tools \
qt6-websockets-dev \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

View file

@ -1,29 +0,0 @@
FROM debian:13
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
build-essential \
ca-certificates \
ccache \
clang-format \
cmake \
file \
g++ \
git \
libgl-dev \
liblzma-dev \
libmariadb-dev-compat \
libprotobuf-dev \
libqt6multimedia6 \
libqt6sql6-mysql \
ninja-build \
protobuf-compiler \
qt6-image-formats-plugins \
qt6-l10n-tools \
qt6-multimedia-dev \
qt6-svg-dev \
qt6-tools-dev \
qt6-tools-dev-tools \
qt6-websockets-dev \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

View file

@ -1,16 +0,0 @@
FROM fedora:42
RUN dnf install -y \
ccache \
cmake \
gcc-c++ \
git \
mariadb-devel \
ninja-build \
protobuf-devel \
qt6-{qttools,qtsvg,qtmultimedia,qtwebsockets}-devel \
qt6-qtimageformats \
rpm-build \
xz-devel \
zlib-devel \
&& dnf clean all

View file

@ -1,16 +0,0 @@
FROM fedora:43
RUN dnf install -y \
ccache \
cmake \
gcc-c++ \
git \
mariadb-devel \
ninja-build \
protobuf-devel \
qt6-{qttools,qtsvg,qtmultimedia,qtwebsockets}-devel \
qt6-qtimageformats \
rpm-build \
xz-devel \
zlib-devel \
&& dnf clean all

View file

@ -1,21 +0,0 @@
FROM debian:11
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
build-essential \
ccache \
clang-format \
cmake \
file \
g++ \
git \
libmariadb-dev-compat \
libprotobuf-dev \
libqt5sql5-mysql \
libqt5websockets5-dev \
ninja-build \
protobuf-compiler \
qttools5-dev \
qttools5-dev-tools \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

View file

@ -1,26 +0,0 @@
FROM ubuntu:22.04
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
build-essential \
ccache \
clang-format \
cmake \
file \
g++ \
git \
liblzma-dev \
libmariadb-dev-compat \
libprotobuf-dev \
libqt5multimedia5-plugins \
libqt5sql5-mysql \
libqt5svg5-dev \
libqt5websockets5-dev \
ninja-build \
protobuf-compiler \
qt5-image-formats-plugins \
qtmultimedia5-dev \
qttools5-dev \
qttools5-dev-tools \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

View file

@ -1,28 +0,0 @@
FROM ubuntu:24.04
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
build-essential \
ccache \
clang-format \
cmake \
file \
g++ \
git \
libgl-dev \
liblzma-dev \
libmariadb-dev-compat \
libprotobuf-dev \
libqt6multimedia6 \
libqt6sql6-mysql \
ninja-build \
protobuf-compiler \
qt6-image-formats-plugins \
qt6-l10n-tools \
qt6-multimedia-dev \
qt6-svg-dev \
qt6-tools-dev \
qt6-tools-dev-tools \
qt6-websockets-dev \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

View file

@ -1,29 +0,0 @@
FROM ubuntu:26.04
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
build-essential \
ca-certificates \
ccache \
clang-format \
cmake \
file \
g++ \
git \
libgl-dev \
liblzma-dev \
libmariadb-dev-compat \
libprotobuf-dev \
libqt6multimedia6 \
libqt6sql6-mysql \
ninja-build \
protobuf-compiler \
qt6-image-formats-plugins \
qt6-l10n-tools \
qt6-multimedia-dev \
qt6-svg-dev \
qt6-tools-dev \
qt6-tools-dev-tools \
qt6-websockets-dev \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

View file

@ -1,322 +0,0 @@
#!/bin/bash
# This script is to be used by the ci environment from the project root directory, do not use it from somewhere else.
# Compiles cockatrice inside of a ci environment
# --install runs make install
# --package [<package type>] runs make package, optionally force the type
# --suffix <suffix> renames package with this suffix, requires arg
# --server compiles servatrice
# --test runs tests
# --debug or --release sets the build type ie CMAKE_BUILD_TYPE
# --ccache [<size>] uses ccache and shows stats, optionally provide size
# --evict-ccache <age> runs ccache eviction based on given age after build
# --dir <dir> sets the name of the build dir, default is "build"
# --cmake-generator <generator> sets CMAKE_GENERATOR as used by cmake
# --target-macos-version <version> sets the min os version - only used for macOS builds
# uses env: BUILDTYPE MAKE_INSTALL MAKE_PACKAGE PACKAGE_TYPE PACKAGE_SUFFIX MAKE_SERVER MAKE_NO_CLIENT MAKE_TEST USE_CCACHE CCACHE_SIZE CCACHE_EVICTION_AGE BUILD_DIR CMAKE_GENERATOR TARGET_MACOS_VERSION
# (correspond to args: --debug/--release --install --package <package type> --suffix <suffix> --server --test --ccache <ccache_size> --dir <dir>)
# exitcode: 1 for failure, 3 for invalid arguments
# Read arguments
while [[ $# != 0 ]]; do
case "$1" in
'--')
shift
;;
'--install')
MAKE_INSTALL=1
shift
;;
'--package')
MAKE_PACKAGE=1
shift
if [[ $# != 0 && ${1:0:1} != - ]]; then
PACKAGE_TYPE="$1"
shift
fi
;;
'--suffix')
shift
if [[ $# == 0 ]]; then
echo "::error file=$0::--suffix expects an argument"
exit 3
fi
PACKAGE_SUFFIX="$1"
shift
;;
'--server')
MAKE_SERVER=1
shift
;;
'--no-client')
MAKE_NO_CLIENT=1
shift
;;
'--test')
MAKE_TEST=1
shift
;;
'--debug')
BUILDTYPE="Debug"
shift
;;
'--release')
BUILDTYPE="Release"
shift
;;
'--ccache')
USE_CCACHE=1
shift
if [[ $# != 0 && ${1:0:1} != - ]]; then
CCACHE_SIZE="$1"
shift
fi
;;
'--evict-ccache')
shift
if [[ $# == 0 ]]; then
echo "::error file=$0::--evict-ccache expects an argument"
exit 3
fi
CCACHE_EVICTION_AGE=$1
shift
;;
'--vcpkg')
USE_VCPKG=1
shift
;;
'--dir')
shift
if [[ $# == 0 ]]; then
echo "::error file=$0::--dir expects an argument"
exit 3
fi
BUILD_DIR="$1"
shift
;;
'--cmake-generator')
shift
if [[ $# == 0 ]]; then
echo "::error file=$0::--cmake-generator expects an argument"
exit 3
fi
export CMAKE_GENERATOR=$1
shift
;;
'--target-macos-version')
shift
if [[ $# == 0 ]]; then
echo "::error file=$0::--target-macos-version expects an argument"
exit 3
fi
TARGET_MACOS_VERSION="$1"
shift
;;
*)
echo "::error file=$0::unrecognized option: $1"
exit 3
;;
esac
done
set -e
# Setup
./servatrice/check_schema_version.sh
if [[ ! $BUILDTYPE ]]; then
BUILDTYPE=Release
fi
if [[ ! $BUILD_DIR ]]; then
BUILD_DIR="build"
fi
mkdir -p "$BUILD_DIR"
cd "$BUILD_DIR"
# Set minimum CMake Version
export CMAKE_POLICY_VERSION_MINIMUM=3.10
# Add cmake flags
flags=("-DCMAKE_BUILD_TYPE=$BUILDTYPE")
if [[ $MAKE_SERVER ]]; then
flags+=("-DWITH_SERVER=1")
fi
if [[ $MAKE_NO_CLIENT ]]; then
flags+=("-DWITH_CLIENT=0" "-DWITH_ORACLE=0")
fi
if [[ $MAKE_TEST ]]; then
flags+=("-DTEST=1")
fi
if [[ $USE_CCACHE ]]; then
flags+=("-DUSE_CCACHE=1")
if [[ $CCACHE_SIZE ]]; then
# note, this setting persists after running the script
ccache --max-size "$CCACHE_SIZE"
fi
fi
if [[ $PACKAGE_TYPE ]]; then
flags+=("-DCPACK_GENERATOR=$PACKAGE_TYPE")
fi
if [[ $USE_VCPKG ]]; then
flags+=("-DUSE_VCPKG=1")
fi
# Add cmake --build flags
buildflags=(--config "$BUILDTYPE")
function ccachestatsverbose() {
# note, verbose only works on newer ccache, discard the error
local got
if got="$(ccache --show-stats --verbose 2>/dev/null)"; then
echo "$got"
else
ccache --show-stats
fi
}
# Compile
if [[ $RUNNER_OS == macOS ]]; then
# QTDIR is needed for macOS since we actually only use the cached thin Qt binaries instead of the install-qt-action,
# which sets a few environment variables
if QTDIR=$(find "$GITHUB_WORKSPACE/Qt" -depth -maxdepth 2 -name macos -type d -print -quit); then
echo "found QTDIR at $QTDIR"
else
echo "could not find QTDIR!"
exit 2
fi
# the qtdir is located at Qt/[qtversion]/macos
# we use find to get the first subfolder with the name "macos"
# this works independent of the qt version as there should be only one version installed on the runner at a time
export QTDIR
if [[ $TARGET_MACOS_VERSION ]]; then
# CMAKE_OSX_DEPLOYMENT_TARGET is a vanilla cmake flag needed to compile to target macOS version
flags+=("-DCMAKE_OSX_DEPLOYMENT_TARGET=$TARGET_MACOS_VERSION")
# vcpkg dependencies need a vcpkg triplet file to compile to the target macOS version
# an easy way is to copy the x64-osx.cmake file and modify it
triplets_dir="/tmp/cmake/triplets"
triplet_version="custom-triplet"
triplet_file="$triplets_dir/$triplet_version.cmake"
arch=$(uname -m)
if [[ $arch == x86_64 ]]; then
arch="x64"
fi
mkdir -p "$triplets_dir"
cp "../vcpkg/triplets/$arch-osx.cmake" "$triplet_file"
echo "set(VCPKG_CMAKE_SYSTEM_VERSION $TARGET_MACOS_VERSION)" >>"$triplet_file"
echo "set(VCPKG_OSX_DEPLOYMENT_TARGET $TARGET_MACOS_VERSION)" >>"$triplet_file"
flags+=("-DVCPKG_OVERLAY_TRIPLETS=$triplets_dir")
flags+=("-DVCPKG_HOST_TRIPLET=$triplet_version")
flags+=("-DVCPKG_TARGET_TRIPLET=$triplet_version")
echo "::group::Generated triplet $triplet_file"
cat "$triplet_file"
echo "::endgroup::"
fi
echo "::group::Signing Certificate"
if [[ -n "$MACOS_CERTIFICATE_NAME" ]]; then
echo "$MACOS_CERTIFICATE" | base64 --decode >"certificate.p12"
security create-keychain -p "$MACOS_CI_KEYCHAIN_PWD" build.keychain
security default-keychain -s build.keychain
security set-keychain-settings -t 3600 -l build.keychain
security unlock-keychain -p "$MACOS_CI_KEYCHAIN_PWD" build.keychain
security import certificate.p12 -k build.keychain -P "$MACOS_CERTIFICATE_PWD" -T /usr/bin/codesign
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k "$MACOS_CI_KEYCHAIN_PWD" build.keychain
echo "macOS signing certificate successfully imported and keychain configured."
else
echo "No signing certificate configured. Skipping set up of keychain in macOS environment."
fi
echo "::endgroup::"
if [[ $MAKE_PACKAGE ]]; then
# Workaround https://github.com/actions/runner-images/issues/7522
# have hdiutil repeat the command 10 times in hope of success
hdiutil_script="/tmp/hdiutil.sh"
# shellcheck disable=SC2016
echo '#!/bin/bash
i=0
while ! hdiutil "$@"; do
if (( ++i >= 10 )); then
echo "Error: hdiutil failed $i times!" >&2
break
fi
sleep 1
done' >"$hdiutil_script"
chmod +x "$hdiutil_script"
flags+=(-DCPACK_COMMAND_HDIUTIL="$hdiutil_script")
fi
elif [[ $RUNNER_OS == Windows ]]; then
# Enable MTT, see https://devblogs.microsoft.com/cppblog/improved-parallelism-in-msbuild/
# and https://devblogs.microsoft.com/cppblog/cpp-build-throughput-investigation-and-tune-up/#multitooltask-mtt
buildflags+=(-- -p:UseMultiToolTask=true -p:EnableClServerMode=true)
fi
if [[ $USE_CCACHE ]]; then
echo "::group::Show ccache stats"
ccachestatsverbose
echo "::endgroup::"
fi
echo "::group::Configure cmake"
cmake --version
echo "Running cmake with flags: ${flags[*]}"
cmake .. "${flags[@]}"
echo "::endgroup::"
echo "::group::Build project"
echo "Running cmake --build with flags: ${buildflags[*]}"
cmake --build . "${buildflags[@]}"
echo "::endgroup::"
if [[ $USE_CCACHE ]]; then
if [[ $CCACHE_EVICTION_AGE ]]; then
echo "::group::evict ccache files older than $CCACHE_EVICTION_AGE"
ccache --evict-older-than "$CCACHE_EVICTION_AGE"
echo "::endgroup::"
fi
echo "::group::Show ccache stats again"
ccachestatsverbose
echo "::endgroup::"
elif [[ $CCACHE_EVICTION_AGE ]]; then
echo "::error file=$0::ccache eviction is enabled while ccache is disabled!"
fi
if [[ $RUNNER_OS == macOS ]]; then
echo "::group::Inspect Mach-O binaries"
for app in cockatrice oracle servatrice; do
binary="$GITHUB_WORKSPACE/build/$app/$app.app/Contents/MacOS/$app"
echo "Inspecting $app..."
vtool -show-build "$binary"
file "$binary"
lipo -info "$binary"
echo ""
done
echo "::endgroup::"
fi
if [[ $MAKE_TEST ]]; then
echo "::group::Run tests"
ctest -C "$BUILDTYPE" --output-on-failure
echo "::endgroup::"
fi
if [[ $MAKE_INSTALL ]]; then
echo "::group::Install"
cmake --build . --target install --config "$BUILDTYPE"
echo "::endgroup::"
fi
if [[ $MAKE_PACKAGE ]]; then
echo "::group::Create package"
cmake --build . --target package --config "$BUILDTYPE"
echo "::endgroup::"
if [[ $PACKAGE_SUFFIX ]]; then
echo "::group::Update package name"
cd ..
BUILD_DIR="$BUILD_DIR" .ci/name_build.sh "$PACKAGE_SUFFIX"
echo "::endgroup::"
fi
fi

View file

@ -1,188 +0,0 @@
#!/bin/bash
# This script is to be used by the ci environment from the project root directory, do not use it from somewhere else.
# Creates or loads docker images to use in compilation, creates RUN function to start compilation on the docker image.
#
# usage: source <script> <name> [--get] [--build] [--save] [--interactive] [--set-cache <location>]
# <name> sets the name of the docker image, these correspond to directories in .ci
# --get loads the image from a previously saved image cache, will build if no image is found
# --build builds the image from the Dockerfile in .ci/$NAME
# --save stores the image, if an image was loaded it will not be stored
# --interactive immediately starts the image interactively for debugging
# --set-cache <location> sets the location to cache the image or for ccache
#
# requires: docker
# uses env: NAME CACHE BUILD GET SAVE INTERACTIVE
# (correspond to args: <name> --set-cache <cache> --build --get --save --interactive)
# sets env: RUN CCACHE_DIR IMAGE_NAME RUN_ARGS RUN_OPTS BUILD_SCRIPT
# exitcode: 1 for failure, 2 for missing dockerfile, 3 for invalid arguments
#
# exported RUN function will run the BUILD_SCRIPT inside of the docker container.
# note that the docker container will not inherit any environment variables!
#
# usage: RUN [arguments for build script]
# roughly equivalent to `docker run $IMAGE_NAME bash $BUILD_SCRIPT $@`
# uses env: CCACHE_DIR IMAGE_NAME RUN_ARGS RUN_OPTS BUILD_SCRIPT
# exitcode: 3 for invalid arguments, returns the returncode of docker run
export BUILD_SCRIPT=".ci/compile.sh"
project_name="cockatrice"
save_extension=".tar.gz"
image_cache="image"
ccache_cache=".ccache"
# Read arguments
while [[ $# != 0 ]]; do
case "$1" in
'--build')
BUILD=1
shift
;;
'--get')
GET=1
shift
;;
'--interactive')
INTERACTIVE=1
shift
;;
'--save')
SAVE=1
shift
;;
'--set-cache')
shift
if [[ $# == 0 ]]; then
echo "--set-cache expects an argument" >&2
exit 3
fi
CACHE=$1
shift
if ! [[ -d $CACHE ]]; then
echo "could not find cache path: $CACHE" >&2
return 3
fi
;;
*)
if [[ ${1:0:1} == - ]]; then
echo "unrecognized option: $1"
return 3
fi
NAME="$1"
shift
;;
esac
done
# Setup
if ! [[ $NAME ]]; then
echo "no build name given" >&2
return 3
fi
export IMAGE_NAME="${project_name,,}_${NAME,,}" # lower case
docker_dir=".ci/$NAME"
if ! [[ -r $docker_dir/Dockerfile ]]; then
echo "could not find Dockerfile in $docker_dir" >&2
return 2 # even if the image is cached, we do not want to run if there is no way to build this image
fi
if ! [[ $CACHE ]]; then
echo "cache dir is not set!" >&2
CACHE="$(mktemp -d)"
echo "set cache dir to $CACHE" >&2
fi
if ! [[ -d $CACHE ]]; then
echo "could not find cache dir: $CACHE" >&2
mkdir -p "$CACHE"
unset GET # the dir is empty
fi
if [[ $GET || $SAVE ]]; then
img_dir="$CACHE/$image_cache"
img_save="$img_dir/$IMAGE_NAME$save_extension"
if ! [[ -d $img_dir ]]; then
echo "could not find image dir: $img_dir" >&2
mkdir -p "$img_dir"
fi
fi
export CCACHE_DIR="$CACHE/$ccache_cache"
if ! [[ -d $CCACHE_DIR ]]; then
echo "could not find ccache dir: $CCACHE_DIR" >&2
mkdir -p "$CCACHE_DIR"
fi
# Get the docker image from previously stored save
if [[ $GET ]]; then
if [[ $img_save ]] && docker load --input "$img_save"; then
echo "loaded image"
docker images
unset BUILD # do not overwrite the loaded image with build
unset SAVE # do not overwrite the stored image with the same image
if [[ $(find "$CCACHE_DIR" -type f -print -quit) ]]; then # check contents of ccache
echo "setting ccache to readonly"
export RUN_ARGS="$RUN_ARGS -e CCACHE_READONLY=1 -e CCACHE_NOSTATS=1" # do not overwrite ccache
else
echo "ccache is empty: $(find "$CCACHE_DIR")" >&2
fi
else
echo "could not load cached image, building instead" >&2
BUILD=1
fi
fi
# Build the docker image from dockerfile
if [[ $BUILD ]]; then
if docker build --tag "$IMAGE_NAME" "$docker_dir"; then
echo "built image"
docker images
else
echo "could not build image $IMAGE_NAME" >&2
return 1
fi
fi
# Save docker image to cache (compressed)
if [[ $SAVE ]]; then
if [[ $img_save ]] && docker save --output "$img_save" "$IMAGE_NAME"; then
echo "saved image to: $img_save"
else
echo "could not save image $IMAGE_NAME" >&2
fi
fi
# Set compile function, runs the compile script on the image, passes arguments to the script
# shellcheck disable=2120
function RUN ()
{
echo "running image:"
if [[ $(docker images) =~ $IMAGE_NAME ]]; then
local args=(--mount "type=bind,source=$PWD,target=/src")
args+=(--workdir "/src")
args+=(--user "$(id -u):$(id -g)")
if [[ $CCACHE_DIR ]]; then
args+=(--mount "type=bind,source=$CCACHE_DIR,target=/.ccache")
args+=(--env "CCACHE_DIR=/.ccache")
fi
if [[ $GITHUB_OUTPUT ]]; then
args+=(--mount "type=bind,source=$GITHUB_OUTPUT,target=/gh_output")
args+=(--env "GITHUB_OUTPUT=/gh_output")
fi
# shellcheck disable=2086
docker run "${args[@]}" $RUN_ARGS "$IMAGE_NAME" bash "$BUILD_SCRIPT" $RUN_OPTS "$@"
return $?
else
echo "could not find docker image: $IMAGE_NAME" >&2
return 3
fi
}
# for debugging, start the docker image interactively instead of building
# starts immediately, does not require sourcing or RUN
if [[ $INTERACTIVE ]]; then
export BUILD_SCRIPT="-i"
export RUN_ARGS="$RUN_ARGS -it"
# shellcheck disable=2119
RUN
fi

View file

@ -1,79 +0,0 @@
#!/bin/bash
# fetch master branch
git fetch origin master
# unshallow if needed
echo "Finding merge base"
if ! git merge-base origin/master HEAD; then
echo "Could not find merge base, unshallowing repo"
git fetch --unshallow
fi
# Check formatting using format.sh
echo "Checking your code using format.sh..."
diff="$(./format.sh --diff --cmake --shell --print-version --branch origin/master)"
err=$?
sep="
----------
"
used_version="${diff%%"$sep"*}"
diff="${diff#*"$sep"}"
changes_to_make="${diff%%"$sep"*}"
files_to_edit="${diff#*"$sep"}"
case $err in
1)
cat <<EOM
***********************************************************
*** ***
*** Your code does not comply with our style guide. ***
*** ***
*** Please correct it or run the "format.sh" script. ***
*** Then commit and push those changes to this branch. ***
*** Check our CONTRIBUTING.md file for more details. ***
*** ***
*** Thank you ❤️ ***
*** ***
***********************************************************
Used version:
$used_version
Affected files:
$files_to_edit
The following changes should be made:
$changes_to_make
Exiting...
EOM
exit 2
;;
0)
cat <<EOM
***********************************************************
*** ***
*** Your code complies with our style guide! ***
*** ***
*** Awesome 👍 ***
*** ***
***********************************************************
Used version:
$used_version
Exiting...
EOM
exit 0
;;
*)
echo "Something went wrong in our formatting checks: format.sh returned $err" >&2
;;
esac

View file

@ -1,17 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<false/>
<key>com.apple.security.cs.disable-library-validation</key>
<true/>
<key>com.apple.security.cs.disable-executable-page-protection</key>
<true/>
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<true/>
</dict>
</plist>

View file

@ -1,49 +0,0 @@
#!/bin/bash
# used by the ci to rename build artifacts
# renames the file to [original name][SUFFIX].[original extension]
# where SUFFIX is either available in the environment or as the first arg
# expected to be run in the build directory unless BUILD_DIR is set
# adds output to GITHUB_OUTPUT
builddir="${BUILD_DIR:=.}"
findrx="Cockatrice-*.*"
if [[ $1 ]]; then
SUFFIX="$1"
fi
# check env
if [[ ! $SUFFIX ]]; then
echo "::error file=$0::SUFFIX is missing"
exit 2
fi
set -e
# find file
found="$(find "$builddir" -maxdepth 1 -type f -name "$findrx" -print -quit)"
path="${found%/*}" # remove all including first "/" from right side
file="${found##*/}" # remove all including last "/" from left side
if [[ ! $file ]]; then
echo "::error file=$0::could not find package"
exit 1
fi
oldpwd="$PWD"
if ! cd "$path"; then
echo "::error file=$0::could not get file path"
exit 1
fi
# set filename
name="${file%.*}" # remove all including first "." from right side
new_name="$name$SUFFIX"
extension="${file##*.}" # remove all including last "." from left side
filename="$new_name.$extension"
echo "renaming '$file' to '$filename'"
mv "$file" "$filename"
cd "$oldpwd"
relative_path="$path/$filename"
ls -l "$relative_path"
echo "path=$relative_path" >>"$GITHUB_OUTPUT"
echo "name=$new_name" >>"$GITHUB_OUTPUT"
echo "fullname=$filename" >>"$GITHUB_OUTPUT"

View file

@ -1,113 +0,0 @@
#!/bin/bash
# sets the properties of ci releases
# this doesn't have to be 100% foolproof
# the releases are first made as drafts and will be vetted by a human
# it just has to provide a template
# this requires the repo to be unshallowed
# adds output to GITHUB_OUTPUT
template_path=".ci/release_template.md"
body_path="/tmp/release.md"
beta_regex='beta'
name_regex='set\(GIT_TAG_RELEASENAME "([[:print:]]+)")'
whitespace='^\s*$'
if [[ $1 ]]; then
TAG="$1"
fi
# check env
if [[ ! $TAG ]]; then
echo "::error file=$0::TAG is missing"
exit 2
fi
# create title
if [[ $TAG =~ $beta_regex ]]; then
echo "is_beta=yes" >>"$GITHUB_OUTPUT"
title="$TAG"
echo "creating beta release '$title'"
elif [[ ! $(cat CMakeLists.txt) =~ $name_regex ]]; then
echo "::error file=$0::could not find releasename in CMakeLists.txt"
exit 1
else
echo "is_beta=no" >>"$GITHUB_OUTPUT"
name="${BASH_REMATCH[1]}"
version="${TAG##*-}"
title="Cockatrice $version: $name"
no_beta=1
echo "friendly_name=$name" >>"$GITHUB_OUTPUT"
echo "creating full release '$title'"
fi
echo "title=$title" >>"$GITHUB_OUTPUT"
# add release notes template
if [[ $no_beta ]]; then
body="$(cat "$template_path")"
if [[ ! $body ]]; then
echo "::warning file=$0::could not find release template"
fi
body="${body//--REPLACE-WITH-RELEASE-TITLE--/$title}"
else
body="--REPLACE-WITH-COMMIT-COUNT-- commits have been included over the previous --REPLACE-WITH-PREVIOUS-RELEASE-TYPE--
<details>
<summary><b>show changes</b></summary>
--REPLACE-WITH-GENERATED-LIST--
</details>"
fi
# add git log to release notes
all_tags="
$(git tag)" # tags are ordered alphabetically
before="${all_tags%%
"$TAG"*}" # strip line with current tag an all lines after it
# note the extra newlines are needed to always have a last line
if [[ $all_tags == "$before" ]]; then
echo "::warning file=$0::could not find current tag"
else
while
previous="${before##*
}" # get the last line
# skip this tag if this is a full release and it's a beta or if empty
[[ $no_beta && $previous =~ $beta_regex || ! $previous ]]
do
beta_list+=" $previous" # add to list of skipped betas
next_before="${before%
*}" # strip the last line
if [[ $next_before == "$before" ]]; then
unset previous
break
fi
before="$next_before"
done
if [[ $previous ]]; then
if generated_list="$(git log "$previous..$TAG" --pretty="- %s")"; then
count="$(git rev-list --count "$previous..$TAG")"
[[ $previous =~ $beta_regex ]] && previousreleasetype="beta release" || previousreleasetype="full release"
echo "adding list of commits to release notes:"
echo "'$previous' to '$TAG' ($count commits)"
# --> is the markdown comment escape sequence, emojis are way better
generated_list="${generated_list//-->/→}"
body="${body//--REPLACE-WITH-GENERATED-LIST--/$generated_list}"
body="${body//--REPLACE-WITH-COMMIT-COUNT--/$count}"
body="${body//--REPLACE-WITH-PREVIOUS-RELEASE-TAG--/$previous}"
body="${body//--REPLACE-WITH-PREVIOUS-RELEASE-TYPE--/$previousreleasetype}"
if [[ $beta_list =~ $whitespace ]]; then
beta_list="-n there are no betas to delete!"
else
echo "the following betas should be deleted after publishing:"
echo "$beta_list"
fi
body="${body//--REPLACE-WITH-BETA-LIST--/$beta_list}"
else
echo "::warning file=$0::failed to produce git log"
fi
else
echo "::warning file=$0::could not find previous tag"
fi
fi
# write to file
echo "body_path=$body_path" >>"$GITHUB_OUTPUT"
echo "$body" >"$body_path"

View file

@ -1,104 +0,0 @@
<!-- this template comes from .ci/release_template.md -->
<!-- Don't forget to delete the previous betas after publishing this!
git push -d origin --REPLACE-WITH-BETA-LIST--
-->
<!-- This list of binaries should be updated every time the CI is changed to include all targets -->
<pre>
Available pre-compiled binaries for installation:
<b>Windows</b>
<kbd>Windows 10+</kbd>
<b>macOS</b>
<kbd>macOS 15+</kbd> <sub><i>Sequoia</i></sub> <sub>Apple M</sub>
<kbd>macOS 14+</kbd> <sub><i>Sonoma</i></sub> <sub>Apple M</sub>
<kbd>macOS 13+</kbd> <sub><i>Ventura</i></sub> <sub>Intel</sub>
<b>Linux</b>
<kbd>Ubuntu 26.04 LTS</kbd> <sub><i>Resolute Racoon</i></sub>
<kbd>Ubuntu 24.04 LTS</kbd> <sub><i>Noble Numbat</i></sub>
<kbd>Ubuntu 22.04 LTS</kbd> <sub><i>Jammy Jellyfish</i></sub>
<kbd>Debian 13</kbd> <sub><i>Trixie</i></sub>
<kbd>Debian 12</kbd> <sub><i>Bookworm</i></sub>
<kbd>Debian 11</kbd> <sub><i>Bullseye</i></sub>
<kbd>Fedora 43</kbd>
<kbd>Fedora 42</kbd>
<sub>We are also packaged in <kbd>Arch Linux</kbd>'s <a href="https://archlinux.org/packages/extra/x86_64/cockatrice">official extra repository</a>, courtesy of @FFY00.</sub>
<sub>General Linux support is available via a <kbd>flatpak</kbd> package at <a href="https://flathub.org/apps/io.github.Cockatrice.cockatrice">Flathub</a>!</sub>
<sub>We provide a <kbd>Docker</kbd> image for "Servatrice" in <a href="https://github.com/Cockatrice/Cockatrice/pkgs/container/servatrice">GHCR</a>. You can docker pull it or use our Docker Compose files!</sub>
</pre>
## General Notes
We're pleased to announce the newest official release: <kbd>--REPLACE-WITH-RELEASE-TITLE--</kbd>
We hope you enjoy the changes made! All improvements with their corresponding tickets since the last version of Cockatrice are listed in the changelog below.
If you ever encounter a bug, have a suggestion or idea, or feel a need for a developer to look into something, please feel free to [open a ticket](https://github.com/Cockatrice/Cockatrice/issues). ([How to create a Ticket for Cockatrice](https://github.com/Cockatrice/Cockatrice/wiki/How-to-Create-a-GitHub-Ticket-Regarding-Cockatrice))
For basic information related to the app and getting started, please take a look at our official site: **https://cockatrice.github.io**
If you'd like to help and contribute to Cockatrice in any way, check out our [README](https://github.com/Cockatrice/Cockatrice#contribute).
We're always available to answer questions you may have on how the program works and how you can provide a meaningful contribution.
## Upgrading Cockatrice
<!-- this optional section puts a warning banner for problems with updating
> [!IMPORTANT]
> **With this release, we no longer provide a ready-to-install binary for:**
> --DEPRECATED-OS-HERE--
-->
Run the internal software updater: <kbd>Help → Check for Client Updates</kbd>
Don't forget to update your card database right after! (<kbd>Help → Check for Card Updates...</kbd>)
## Changelog
<!--
This list is generated and should be moved to their respective header and
possibly edited a little.
Append PR numbers of fixups to their main PR to keep the list coherent.
Put the quantity of remaining PR's below the highlights section.
Remove empty headers when done.
--REPLACE-WITH-GENERATED-LIST--
-->
<!-- Highlights of the release -->
### 🔖 Highlights:
### ✨ New Features:
### 🐛 Fixed Bugs / Resolved Issues:
<!-- Complete list of changes (foldable) -->
<details>
<summary>
<b>Show all changes</b> (--REPLACE-WITH-COMMIT-COUNT-- commits)
</summary>
### User Interface
### Under the Hood
### Oracle
### Servatrice
### Webatrice
</details>
## Translations
- **Thanks for over 300 people contributing to 20+ different languages up to now!**
- Without the help of the community we couldn't offer that great language support... keep up the good work!
- It's actually very easy to join and help for yourself - find out more here:
- [Help us Translate Cockatrice into your native language!](https://github.com/Cockatrice/Cockatrice/wiki/Translation-FAQ)
## Special Thanks
<!-- Personalise this a bit! -->
It's amazing that so many people contribute their time, knowledge, code, testing and more to the project.
We'd like to thank the entire Cockatrice community for their efforts! 🙏
<!-- We'd like to especially recognize @ZeldaZach, --ADD-CONTRIBUTORS-HERE-- for their help in preparing so many amazing new features for the user base. -->

View file

@ -1,49 +0,0 @@
#!/bin/bash
# This script is used to resolve the latest patch version of Qt using aqtinstall.
# It interprets wildcards to get the latest patch version. E.g. "6.6.*" -> "6.6.3".
# This script is meant to be used by the ci enironment.
# It uses the runner's GITHUB_OUTPUT env variable.
# Usage example: .ci/resolve_latest_aqt_qt_version.sh "6.6.*"
qt_spec=$1
if [[ ! $qt_spec ]]; then
echo "usage: $0 [version]"
exit 2
fi
# If version is already specific (no wildcard), use it as-is
if [[ $qt_spec != *"*" ]]; then
echo "version $qt_spec is already resolved"
echo "version=$qt_spec" >> "$GITHUB_OUTPUT"
exit 0
fi
if ! hash aqt; then
echo "aqt could not be found, has aqtinstall been installed?"
exit 2
fi
# Resolve latest patch
if [[ $RUNNER_OS == macOS ]]; then
if ! qt_resolved=$(aqt list-qt mac desktop --spec "$qt_spec" --latest-version); then
exit 1
fi
elif [[ $RUNNER_OS == Windows ]]; then
if ! qt_resolved=$(aqt list-qt windows desktop --spec "$qt_spec" --latest-version); then
exit 1
fi
else
echo "aqt command for $RUNNER_OS not defined."
exit 1
fi
echo "resolved $qt_spec to $qt_resolved"
if [[ ! $qt_resolved ]]; then
echo "Error: Could not resolve Qt version for $qt_spec"
exit 1
fi
echo "version=$qt_resolved" >> "$GITHUB_OUTPUT"

View file

@ -1,25 +0,0 @@
#!/bin/bash
# The macos binaries from aqt are fat (universal), so we thin them to the target architecture to reduce the size of
# the packages and caches using lipo.
# This script is meant to be used by the ci enironment on macos runners only.
# It uses the runner's GITHUB_WORKSPACE env variable.
arch=$(uname -m)
nproc=$(sysctl -n hw.ncpu)
function thin() {
local libfile=$1
if [[ $(file -b --mime-type "$libfile") == application/x-mach-binary* ]]; then
echo "Processing $libfile"
lipo "$libfile" -thin "$arch" -output "$libfile"
fi
return 0
}
export -f thin # export to allow use in xargs
export arch
set -eo pipefail
echo "::group::Thinning Qt libraries to $arch using $nproc cores"
find "$GITHUB_WORKSPACE/Qt" -type f -print0 | xargs -0 -n1 -P"$nproc" -I{} bash -c "thin '{}'"
echo "::endgroup::"

View file

@ -1,58 +0,0 @@
#!/bin/bash
# ci script to update translation files
# usage:
# $0 cockatrice/cockatrice_en@source.ts cockatrice/src common
# or
# FILE="cockatrice/cockatrice_en@source.ts"
# DIRS="cockatrice/src common"
# $0
# note: directories can't contain spaces
# check parameters
if [[ ! $FILE ]]; then
FILE="$1"
shift
fi
if [[ ! $FILE ]]; then
echo "no output file selected" >&2
exit 2;
fi
if [[ ! $DIRS ]]; then
DIRS="$*"
fi
if [[ ! $DIRS ]]; then
echo "no source directories selected to translate" >&2
exit 2;
fi
if [[ ! -e $FILE ]]; then
echo "output file does not exist at: $FILE" >&2
exit 3;
fi
# print version
if ! lupdate -version; then
echo "failed to run lupdate" >&2
exit 4;
fi
# run lupdate, duplicating the output in stderr and saving it
# for convenience we ignore that $DIRS will be split on spaces
# shellcheck disable=SC2086
if ! got="$(lupdate $DIRS -ts "$FILE" | tee /dev/stderr)"; then
echo "failed to update $FILE with $DIRS" >&2
exit 4;
fi
# trim output
# the line we are interested in is:
# Found xxx source text(s) (x new and xxx already existing)
output="${got##* source text(s) (}" # get stuff in between brackets
output="${output%%)*}" # trim everything after first )
if [[ $output == "$got" ]]; then
echo "could not parse generated output" >&2
exit 4;
fi
# write output to ci environment file
echo "output=$output" >> "$GITHUB_OUTPUT"

View file

@ -1,14 +0,0 @@
Updated source strings for translations:
- {{ .cockatrice_output }} (Cockatrice)
- {{ .oracle_output }} (Oracle)
<br>
Last changes are based on commit {{ .commit }}.
---
*This PR is automatically generated and updated by the workflow at `.github/workflows/translations-push.yml`. Review [action runs][2].*<br>
*After merging, all changes to the source language are available for translation at [Transifex][1] shortly.*
[1]: https://explore.transifex.com/cockatrice/cockatrice/
[2]: https://github.com/Cockatrice/Cockatrice/actions/workflows/translations-push.yml?query=branch%3Amaster

View file

@ -1,34 +0,0 @@
IndentWidth: 4
AccessModifierOffset: -4
ColumnLimit: 120
---
Language: Cpp
BreakBeforeBraces: Custom
BraceWrapping:
AfterClass: true
AfterControlStatement: false
AfterEnum: true
AfterFunction: true
AfterNamespace: true
AfterStruct: true
AfterUnion: true
BeforeCatch: false
BeforeElse: false
IndentBraces: false
SplitEmptyFunction: true
SplitEmptyRecord: true
SplitEmptyNamespace: true
AllowShortFunctionsOnASingleLine: None
BinPackParameters: false
AllowAllParametersOfDeclarationOnNextLine: false
IndentCaseLabels: true
PointerAlignment: Right
SortIncludes: true
IncludeBlocks: Regroup
StatementAttributeLikeMacros: [emit]
# requires clang-format 16
# RemoveSemicolon: true
---
Language: Proto
AllowShortFunctionsOnASingleLine: None
SpacesInContainerLiterals: false

View file

@ -1,109 +0,0 @@
{
"format": {
"_help_line_width": [
"How wide to allow formatted cmake files"
],
"line_width": 120,
"_help_tab_size": [
"How many spaces to tab for indent"
],
"tab_size": 2,
"_help_max_subgroups_hwrap": [
"If an argument group contains more than this many sub-groups",
"(parg or kwarg groups) then force it to a vertical layout."
],
"max_subgroups_hwrap": 2,
"_help_max_pargs_hwrap": [
"If a positional argument group contains more than this many",
"arguments, then force it to a vertical layout."
],
"max_pargs_hwrap": 6,
"_help_max_rows_cmdline": [
"If a cmdline positional group consumes more than this many",
"lines without nesting, then invalidate the layout (and nest)"
],
"max_rows_cmdline": 5,
"_help_separate_ctrl_name_with_space": [
"If true, separate flow control names from their parentheses",
"with a space"
],
"separate_ctrl_name_with_space": false,
"_help_separate_fn_name_with_space": [
"If true, separate function names from parentheses with a",
"space"
],
"separate_fn_name_with_space": false,
"_help_dangle_parens": [
"If a statement is wrapped to more than one line, than dangle",
"the closing parenthesis on its own line."
],
"dangle_parens": true,
"_help_dangle_align": [
"If the trailing parenthesis must be 'dangled' on its on",
"line, then align it to this reference: `prefix`: the start",
"of the statement, `prefix-indent`: the start of the",
"statement, plus one indentation level, `child`: align to",
"the column of the arguments"
],
"dangle_align": "prefix",
"_help_min_prefix_chars": [
"If the statement spelling length (including space and",
"parenthesis) is smaller than this amount, then force reject",
"nested layouts."
],
"min_prefix_chars": 4,
"_help_max_prefix_chars": [
"If the statement spelling length (including space and",
"parenthesis) is larger than the tab width by more than this",
"amount, then force reject un-nested layouts."
],
"max_prefix_chars": 10,
"_help_max_lines_hwrap": [
"If a candidate layout is wrapped horizontally but it exceeds",
"this many lines, then reject the layout."
],
"max_lines_hwrap": 2,
"_help_line_ending": [
"What style line endings to use in the output."
],
"line_ending": "auto",
"_help_command_case": [
"Format command names consistently as 'lower' or 'upper' case"
],
"command_case": "lower",
"_help_keyword_case": [
"Format keywords consistently as 'lower' or 'upper' case"
],
"keyword_case": "upper",
"_help_always_wrap": [
"A list of command names which should always be wrapped"
],
"always_wrap": [],
"_help_enable_sort": [
"If true, the argument lists which are known to be sortable",
"will be sorted lexicographically"
],
"enable_sort": true,
"_help_autosort": [
"If true, the parsers may infer whether or not an argument",
"list is sortable (without annotation)."
],
"autosort": true,
"_help_require_valid_layout": [
"By default, if cmake-format cannot successfully fit",
"everything into the desired line-width it will apply the",
"last, most aggressive attempt that it made. If this flag is",
"True, however, cmake-format will print error, exit with non-",
"zero status code, and write-out nothing"
],
"require_valid_layout": false,
"_help_layout_passes": [
"A dictionary mapping layout nodes to a list of wrap",
"decisions. See the documentation for more information."
],
"layout_passes": {}
},
"markup": {
"enable_markup": false
}
}

View file

@ -1,5 +0,0 @@
---
exclude_paths:
- '**/translations/*.ts'
# codacy config documentation: https://support.codacy.com/hc/en-us/articles/115002130625-Codacy-Configuration-File

View file

@ -1,8 +0,0 @@
.git/
build/
.github/
.tx/
cockatrice/
doc/
oracle/
Dockerfile

View file

@ -1,499 +0,0 @@
<!--! @page contributing Contributing -->
&nbsp; [Introduction](#contributing-to-cockatrice) | [Code Style Guide](
#code-style-guide) | [Translations](#translations) | [Release Management](
#release-management)
----
<br>
# Contributing to Cockatrice #
First off, thanks for taking the time and considering to lend a helping hand to our project! 🎉 ❤ ️✨
> [!NOTE]
> The following is a set of guidelines for contributing to Cockatrice.
> These are mostly guidelines, not rules. Use your best judgment, and feel free to
> propose changes to this document in a pull request.
>
> [![Discord](
> https://img.shields.io/discord/314987288398659595?label=Discord&logo=discord&logoColor=white)](
> https://discord.gg/3Z9yzmA)
> If you'd like to ask questions, get advice, or just want to say "Hi",
> the Cockatrice Development Team uses [Discord](https://discord.gg/ZASRzKu)
> for communications and you can reach out in the `#dev` channel.
# Recommended Setups #
For those developers on **Linux** or **macOS** environment, many of our
developers like working with a nifty program called [CLion](
https://www.jetbrains.com/clion/). The program is a great asset and one of the
best tools you'll find on these systems.
Developers on **Windows** systems tend to find [Visual Studio](
https://www.visualstudio.com/) the best tool for the job.
But you're welcomed to use any IDE you enjoy most of course!
# Code Style Guide #
### Formatting and continuous integration (CI) ###
We use a separate job on the CI to check your code for formatting issues. If
your pull request failed the test, you can check the output on the checks tab.
It's the first job called "linter", you can click the "Check code formatting"
step to see the output of the test.
The message will look like this:
```
***********************************************************
*** ***
*** Your code does not comply with our style guide. ***
*** ***
*** Please correct it or run the "format.sh" script. ***
*** Then commit and push those changes to this branch. ***
*** Check our CONTRIBUTING.md file for more details. ***
*** ***
*** Thank you ❤️ ***
*** ***
***********************************************************
```
The CONTRIBUTING.md file mentioned in that message is the file you are
currently reading. Please see [this section](#formatting) below for full
information on our formatting guidelines.
### Compatibility ###
Cockatrice is currently compiled on all platforms using <kbd>C++20</kbd>.
You'll notice <kbd>C++03</kbd> code throughout the codebase. Please feel free
to help convert it over!
For consistency, we use Qt data structures where possible. For example,
`QString` over `std::string` and `QList` over `std::vector`.
Do not use old C style casts in new code, instead use a [`static_cast<>`](
https://en.cppreference.com/w/cpp/language/static_cast)
or other appropriate conversion.
### Formatting ###
The handy tool `clang-format` can format your code for you, it is available for
almost any environment. A special [`.clang-format`](
https://github.com/Cockatrice/Cockatrice/blob/master/.clang-format) configuration file is
included in the project and is used to format your code.
We've also included a bash script, `format.sh`, that will use clang-format to
format all files in your PR in one go. Use `./format.sh --help` to show a full
help page.
To run clang-format on a single source file simply use the command
`clang-format -i <filename>` to format it in place. (Some systems install
clang-format with a specific version number appended,
`find /usr/bin -name clang-format*` should find it for you)
See the [clang-format documentation](
https://clang.llvm.org/docs/ClangFormat.html) for more information about the tool.
#### Header Files ####
Use header files with the extension `.h` and source files with the extension
`.cpp`.
Use header guards in the form of `FILE_NAME_H`.
Simple functions, such as getters, may be written inline in the header file,
but other functions should be written in the source file.
Group project includes first, followed by library includes. All in alphabetic order.
Like this:
```c++
// Good
#include "card.h"
#include "deck.h"
#include <QList>
#include <QString>
// Bad
#include <QList>
#include "card.h"
#include <QString>
#include "deck.h"
// Bad
#include "card.h"
#include "deck.h"
#include <QString>
#include <QList>
```
#### Naming ####
Use `UpperCamelCase` for classes, structs, enums, etc. and `lowerCamelCase` for
function and variable names.
Don't use [Hungarian Notation](
https://en.wikipedia.org/wiki/Hungarian_notation).
Member variables aren't decorated in any way. Don't prefix or suffix them with
underscores, etc.
Use a separate line for each declaration, don't use a single line like this
`int one = 1, two = 2` and instead split them into two lines.
For arguments to constructors which have the same names as member variables,
prefix those arguments with underscores:
```c++
MyClass::MyClass(int _myData) : myData(_myData)
{
}
```
Pointers and references should be denoted with the `*` or `&` going with the
variable name:
```c++
// Good
Foo *foo1 = new Foo;
Foo &foo2 = *foo1;
// Bad
Bar* bar1 = new Bar;
Bar& bar2 = *bar1;
```
Use `nullptr` instead of `NULL` (or `0`) for null pointers.
If you find any usage of the old keywords, we encourage you to fix it.
#### Braces ####
Braces should go on their own line except for control statements, the use of
braces around single line statements is preferred.
See the following example:
```c++
int main()
{ // function or class: own line
if (someCondition) { // control statement: same line
doSomething(); // single line statement, braces preferred
} else if (someOtherCondition1) { // else goes on the same line as a closing brace
for (int i = 0; i < 100; i++) {
doSomethingElse();
}
} else {
while (someOtherCondition2) {
doSomethingElse();
}
}
}
```
#### Indentation and Spacing ####
Always indent using 4 spaces, do not use tabs. Opening and closing braces
should be on the same indentation layer, member access specifiers in classes or
structs should not be indented.
All operators and braces should be separated by spaces, do not add a space next
to the inside of a brace.
If multiple lines of code that follow eachother have single line comments
behind them, place all of them on the same indentation level. This indentation
level should be equal to the longest line of code for each of these comments,
without added spacing.
#### Lines ####
Do not leave trailing whitespace on any line. Most IDEs check for this
nowadays and clean it up for you.
Lines should be 120 characters or less. Please break up lines that are too long
into smaller parts, for example at spaces or after opening a brace.
### Memory Management ###
New code should be written using references over pointers and stack allocation
over heap allocation wherever possible.
```c++
// Good: uses stack allocation and references
void showCard(const Card &card);
int main()
{
Card card;
showCard(card);
}
// Bad: relies on manual memory management and doesn't give us much
// null-safety.
void showCard(const Card *card);
int main()
{
Card *card = new Card;
showCard(card);
delete card;
}
```
(Remember to pass by `const` reference wherever possible, to avoid accidentally
mutating objects.)
When pointers can't be avoided, try to use a smart pointer of some sort, such
as `QScopedPointer`, or, less preferably, `QSharedPointer`.
### Database Migrations ###
The servatrice database's schema can be found at `servatrice/servatrice.sql`.
Everytime the schema gets modified, some other steps are due:
1. Increment the value of `cockatrice_schema_version` in `servatrice.sql`;
2. Increment the value of `DATABASE_SCHEMA_VERSION` in
`servatrice_database_interface.h` accordingly;
3. Create a new migration file inside the `servatrice/migrations` directory
named after the new schema version.
4. Run the `servatrice/check_schema_version.sh` script to ensure everything is
fine.
The migration file should include the sql statements needed to migrate the
database schema and data from the previous to the new version, and an
additional statement that updates `cockatrice_schema_version` to the correct
value.
Ensure that the migration produces the expected effects; e.g. if you add a
new column, make sure the migration places it in the same order as
servatrice.sql.
### Protocol Buffer ###
Cockatrice and Servatrice exchange data using binary messages. The syntax of
these messages is defined in the `proto` files in the `common/pb` folder. These
files define the way data contained in each message is serialized using
Google's [protocol buffers](https://developers.google.com/protocol-buffers/).
Any change to the `proto` files should be taken with caution and tested
intensively before being merged, because a change to the protocol could make
new clients incompatible to the old server and vice versa.
You can find more information on how we use Protobuf on [our wiki!](
https://github.com/Cockatrice/Cockatrice/wiki/Client-server-protocol)
# Reviewing Pull Requests #
After you have finished your changes to the project you should put them on a
separate branch of your fork on GitHub and open a [pull request](
https://docs.github.com/en/free-pro-team@latest/desktop/contributing-and-collaborating-using-github-desktop/creating-an-issue-or-pull-request
).
Your code will then be automatically compiled by GitHub actions for Linux and
macOS, and by Appveyor for Windows. Additionally GitHub will perform a [Linting
check](#formatting-and-continuous-integration-ci). If any issues come up you
can check their status at the bottom of the pull request page, click on details
to go to the CI website and see the different build logs.
If your pull request passes our tests and has no merge conflicts, it will be
reviewed by our team members. You can then address any requested changes. When
all changes have been approved your pull request will be squashed into a single
commit and merged into the master branch by a team member. Your change will then
be included in the next release 👍
# Translations #
Basic workflow for translations:
1. Developer adds a `tr("foo")` string in the code;
2. CI updates the `*_en@source.ts files` regularly and creates a PR automatically;
3. Maintainer verifies and merges the change;
4. Transifex picks up the new files from GitHub automatically;
5. Translators translate the new untranslated strings on Transifex;
6. Before a release, a maintainer fetches the newest translations from Transifex.
### Using Translations (for developers) ###
All user interface strings inside Cockatrice's source code must be written
in English (US).
Translations to other languages are managed using [Transifex](
https://transifex.com/cockatrice/cockatrice/).
Adding a new string for translation is as easy as adding the string in the
`tr("")` function, the string will be picked up as translatable automatically
and translated as needed.
For example, setting the text of a label in the way that the string
`"My name is:"` can be translated:
```c++
nameLabel.setText(tr("My name is:"));
```
To translate a string that would have plural forms you can add the amount to
the tr() call, also you can add an extra string as a hint for translators:
```c++
QString message = tr("Everyone draws %n cards", "english hint for translators", amount);
```
See [Qt's wiki on translations](
https://doc.qt.io/qt-5/i18n-source-translation.html#handling-plurals)
If you're about to propose a change that adds or modifies any translatable
string in the code, you don't need to take care of adding the new strings to
the translation files.<br>
We have an automated process to update our language source files on a schedule
and provide the translators on Transifex with the new contents.<br>
Maintainers can also manually trigger this workflow on demand via GitHub Actions.
### Maintaining Translations (for maintainers) ###
When new translatable strings have been added to the code, a maintainer has to
make them available to translators on Transifex.
To help with that, we have an automated CI workflow, that regularly looks at the
code in the master branch, extracts all strings and updates dedicated source string
files with any changes. These updates are not commited right away, the CI creates a
PR for reviewing instead.<br>
After approval, our translation tool automatically picks the changes up and deploys
them to our translators. Be mindful when merging only a few changes!
Once a release is planned, or when a lot of strings have been added or changed, a
maintainer can manually trigger a CI run to extract all strings on demand.
<details>
<summary><b>Manually trigger CI run (Workflow Dispatch)</b></summary>
Maintainers can always request the CI to run on demand if it's required.
Go to the `Actions` tab and select our dedicated translation workflow:
https://github.com/Cockatrice/Cockatrice/actions/workflows/translations.yml
You see a "This workflow has a workflow_dispatch event trigger." hint at the top of
the list.<br>
Select `Run workflow` on the right and trigger a run from master branch.
The CI will now check for changed strings and create a PR if there are any updates.
</details>
<details>
<summary><b>Manually update source strings locally</b></summary>
To update the english source files for translation, re-run cmake enabling the appropriate
parameter and then run make:
```sh
cd cockatrice/build
cmake .. -DUPDATE_TRANSLATIONS=ON
make
```
If the parameter has been enabled correctly, when running "make" you should see
a line similar to this one (the numbers may vary):
```sh
[ 76%] Generating ../../cockatrice/translations/cockatrice_en@source.ts
Updating '../../cockatrice/translations/cockatrice_en@source.ts'...
Found 857 source text(s) (8 new and 849 already existing)
```
You should then notice that the following files have uncommitted changes:
cockatrice/translations/cockatrice_en@source.ts
oracle/translations/oracle_en@source.ts
It is recommended to disable the parameter afterwards using:
```sh
cmake .. -DUPDATE_TRANSLATIONS=OFF
```
Now you are ready to commit your changes and open a PR.
</details>
Once the changes get merged, Transifex will pick up the modified files
automatically (checked every few hours) and update the web editor where
translators will be able to translate the new strings right in the browser.
### Releasing Translations (for maintainers) ###
Before publishing a new release, a maintainer should fetch the most up to date
translations from Transifex and commit them into the Cockatrice source code.
We utilize the official GitHub integration to push all languages that are 100%
translated from Transifex to our GitHub repo automatically.
On top, it runs on a quarterly schedule to update changes for incomplete languages.
A synchronisation/update can also be triggered manually from the Transifex web interface
and a translation treshold can be set.
As an alternative, you can install the [Transifex CLI](https://developers.transifex.com/docs/cli).
You'll then be able to use a git-like cli command to push and pull translations
from Transifex to the source code and vice versa.
### Adding Translations (for translators) ###
As a translator, you can help to translate new strings on [Transifex](
https://www.transifex.com/projects/p/cockatrice/) to your native language.
Please have a look at the specific [FAQ for translators](
https://github.com/Cockatrice/Cockatrice/wiki/Translation-FAQ).
# Release Management #
### Publishing A New Release ###
We use [GitHub Releases](https://github.com/Cockatrice/Cockatrice/releases) to
publish new stable versions and beta releases.
Whenever a git tag is pushed to the repository, GitHub will create a draft
release and upload binaries from our CI automatically.
To create a tag, simply do the following:
```bash
git checkout master
git remote update -p
git pull
git tag $TAG_NAME
git push $UPSTREAM $TAG_NAME
```
You should define the variables as such:
- `$UPSTREAM`: the remote for `git@github.com:Cockatrice/Cockatrice.git`
- `$TAG_NAME` should be formatted as:
- `YYYY-MM-DD-Release-MAJ.MIN.PATCH` for **stable releases**
- `YYYY-MM-DD-Development-MAJ.MIN.PATCH-beta.X` for **beta releases**<br>
With <kbd>MAJ</kbd>.<kbd>MIN</kbd>.<kbd>PATCH</kbd> being the NEXT release version!
This will cause a tagged release to be established on the GitHub repository,
with the binaries being added to the release whenever they are done building in CI.
The release is initially a draft, where the release notes can be edited and after
all is checked and ready, it can be published as GitHub release.
If you use a SemVer tag including "beta", the release that will be created at
GitHub will be marked as a "Pre-release" automatically.
The target of the `.../latest` URL will not be changed in that case, it always
points to the latest stable release and not pre-releases/betas.
If you accidentally push a tag incorrectly (the tag is outdated, you didn't
pull in the latest branch accidentally, you named the tag wrong, etc.) you can
revoke the tag by doing the following:
```bash
git push --delete upstream $TAG_NAME
git tag -d $TAG_NAME
```
You can also do this on GitHub.
> [!NOTE]
> If you want to push a new release to replace it immediately with the same
> name you have to delete the automatically created release first!
In the first lines of [CMakeLists.txt](
https://github.com/Cockatrice/Cockatrice/blob/master/CMakeLists.txt)
there's an hardcoded version number and pretty name used when compiling from
master or custom (not tagged) versions.
While on tagged versions these numbers are overridden by the version numbers
coming from the tag title, it's good practice to increment the ones at CMake
after every full release to stress that master is ahead of the last stable
release.
The preferred flow of operation is:
- Just before a release, make sure the version number in CMakeLists.txt is set
to the same release version you are about to tag.
- This is also the time to change the pretty name in CMakeLists.txt called
`GIT_TAG_RELEASENAME` and commit and push these changes.
- Tag the release following the previously described syntax in order to get it
correctly built and deployed by CI.
- Wait for the configuration step to create the release and update the patch
notes.
- Check on the GitHub Actions page for build progress which should be the top
listed [here](
https://github.com/Cockatrice/Cockatrice/actions?query=event%3Apush+-branch%3Amaster
).
- When the build has been completed, you can verify if all uploaded files on the
draft release are included and hit the publish button.
- After the release is complete, update the CMake version number again to the
next targeted beta version, typically increasing `PROJECT_VERSION_PATCH` by
one.
When releasing a new stable version, all previous beta releases (and tags)
should be deleted as well.
This can be done the same way as revoking tags, mentioned above.

12
.github/FUNDING.yml vendored
View file

@ -1,12 +0,0 @@
# These are supported funding model platforms
github: [ZeldaZach]
patreon: mtgjson
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: ["paypal.me/zachhalpern"]

View file

@ -1,44 +0,0 @@
---
name: "🐛 Bug Report"
about: Report an issue encountered while using Cockatrice
title: ''
type: 'Bug'
labels: ''
assignees: ''
---
<!-- READ THIS BEFORE POSTING
In Cockatrice, go to "Help" → "View Debug Log" and copy all information displayed at the
top (above the separation line "----"), to below "System Information" section in this ticket!
If you can't start Cockatrice to access these details, make
sure to post your OS and the file name of the setup binary instead.
-->
**System Information:**
<!-- Read the hint above on where to find the important information to provide here! -->
<details><summary>Debug Log:</summary>
<!--
In Cockatrice, go to "Help" → "View Debug Log", click the "Copy to clickboard" button and paste the output here.
-->
</details>
_______________________________________________________________________________________
<!-- Explain your issue in detail here! Please attach screenshots if possible. -->
_______________________________________________________________________________________
<!-- Describe the sequence of actions needed to experience the bug. -->
**Steps to reproduce:**
- Do A
- Do B
- Do C ...

View file

@ -1,12 +0,0 @@
blank_issues_enabled: false
contact_links:
- name: 💬 Discord Community (Get help with server issues, e.g. Login)
url: https://discord.com/invite/3Z9yzmA
about: Need help with using the client? Want to find some games? Try the Discord server!
- name: 🌐 Translations (Help improve the localization of the app)
url: https://explore.transifex.com/cockatrice/cockatrice/
# it is not possible to add a link to the wiki to this description
about: For more information and guidance check our Translation FAQ on our wiki!
- name: 📖 Code Documentation
url: https://cockatrice.github.io/docs/
about: Helpful source focusing on developers, but there are also references for users!

View file

@ -1,24 +0,0 @@
---
name: "💡 Feature Request"
about: Request a new feature for Cockatrice
title: ''
type: 'Feature'
labels: ''
assignees: ''
---
<!--
Please search the issue tracker for similar issues before posting!
If your request is related to another request (but not the same!) list it here
-->
**Similar Requests**
<!-- Describe your feature idea here in detail -->
**Description of New Feature**
<!-- If your feature requires some context, provide it here -->
**Additional Context**

View file

@ -1,12 +0,0 @@
## Related Ticket(s)
- Fixes #IssueNumber
## Short roundup of the initial problem
## What will change with this Pull Request?
- this
- and this
## Screenshots
<!-- simply drag & drop image files directly into this description! -->

View file

@ -1,51 +0,0 @@
# Configuration options: https://docs.github.com/en/github/administering-a-repository/configuration-options-for-dependency-updates
version: 2
updates:
# Enable version updates for git submodules
# If SemVer is used, updates will happen to new releases only (not HEAD)
# https://github.com/dependabot/dependabot-core/issues/1639
# https://github.com/dependabot/dependabot-core/issues/2192
- package-ecosystem: "gitsubmodule"
# Look for `.gitmodules` in the `root` directory
directory: "/"
ignore:
# Ignore updates for vcpkg (Bump to latest tag not working (no SemVer used) & macOS Intel triplet broken with newer releases)
- dependency-name: "vcpkg"
# Check for updates once a month
schedule:
interval: "monthly"
# Limit the amout of open PR's (default = 5, disabled = 0, security updates are not impacted)
open-pull-requests-limit: 2
# # Enable version updates for Docker
# Not yet possible to bump from one LTS version to the next and skip others, see:
# https://github.com/dependabot/dependabot-core/issues/2247
# - package-ecosystem: "docker"
# # Look for a `Dockerfile` in the `root` directory
# directory: "/"
# # Check for updates once a week
# schedule:
# interval: "weekly"
# # Limit the amout of open PR's (default = 5, disabled = 0, security updates are not impacted)
# open-pull-requests-limit: 1
# Enable version updates for GitHub Actions
- package-ecosystem: "github-actions"
# Directory must be set to "/" to check for workflow files in .github/workflows
directory: "/"
# Check for updates to GitHub Actions once a week
schedule:
interval: "weekly"
# Limit the amout of open PR's (default = 5, disabled = 0, security updates are not impacted)
open-pull-requests-limit: 2
# # Enable version updates for npm
# - package-ecosystem: "npm"
# # Look for `package.json` and `lock` files in the `webclient` subdirectory
# directory: "/webclient"
# # Check the npm registry for updates once a week
# schedule:
# interval: "weekly"
# # Limit the amout of open PR's (default = 5, disabled = 0, security updates are not impacted)
# open-pull-requests-limit: 5

View file

@ -1,576 +0,0 @@
name: Build Desktop
permissions:
contents: write
id-token: write
attestations: write
actions: write # needed for ccache action to be able to delete gha caches
on:
push:
branches:
- master
paths:
- '*/**' # matches all files not in root
- '!**.md'
- '!.github/**'
- '!.husky/**'
- '!.tx/**'
- '!doc/**'
- '!webclient/**'
- '.github/workflows/desktop-build.yml'
- 'CMakeLists.txt'
- 'vcpkg.json'
- 'vcpkg'
tags:
- '*'
pull_request:
paths:
- '*/**' # matches all files not in root
- '!**.md'
- '!.github/**'
- '!.husky/**'
- '!.tx/**'
- '!doc/**'
- '!webclient/**'
- '.github/workflows/desktop-build.yml'
- 'CMakeLists.txt'
- 'vcpkg.json'
- 'vcpkg'
# Cancel earlier, unfinished runs of this workflow on the same branch (unless on release)
concurrency:
group: "${{ github.workflow }} @ ${{ github.ref_name }}"
cancel-in-progress: ${{ github.ref_type != 'tag' }}
jobs:
configure:
name: Configure
runs-on: ubuntu-slim
outputs:
tag: ${{steps.configure.outputs.tag}}
sha: ${{steps.configure.outputs.sha}}
steps:
- name: Configure
id: configure
shell: bash
run: |
tag_regex='^refs/tags/'
if [[ $GITHUB_EVENT_NAME == pull-request ]]; then # pull request
sha="${{github.event.pull_request.head.sha}}"
elif [[ $GITHUB_REF =~ $tag_regex ]]; then # release
sha="$GITHUB_SHA"
tag="${GITHUB_REF/refs\/tags\//}"
echo "tag=$tag" >>"$GITHUB_OUTPUT"
else # push to branch
sha="$GITHUB_SHA"
fi
echo "sha=$sha" >>"$GITHUB_OUTPUT"
- name: Checkout
if: steps.configure.outputs.tag != null
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Prepare release parameters
id: prepare
if: steps.configure.outputs.tag != null
shell: bash
env:
TAG: ${{steps.configure.outputs.tag}}
run: .ci/prep_release.sh
- name: Create release
if: steps.configure.outputs.tag != null
id: create_release
shell: bash
env:
GH_TOKEN: ${{github.token}}
tag_name: ${{steps.configure.outputs.tag}}
target: ${{steps.configure.outputs.sha}}
release_name: ${{steps.prepare.outputs.title}}
body_path: ${{steps.prepare.outputs.body_path}}
prerelease: ${{steps.prepare.outputs.is_beta}}
run: |
if [[ $prerelease == yes ]]; then
args="--prerelease"
fi
gh release create "$tag_name" --draft --verify-tag $args \
--target "$target" --title "$release_name" \
--notes-file "$body_path"
build-linux:
strategy:
fail-fast: false
matrix:
# These names correspond to the files in ".ci/$distro$version"
include:
- distro: Arch
package: skip # We are packaged in Arch already
allow-failure: yes
- distro: Debian
version: 11
package: DEB
- distro: Servatrice_Debian
version: 11
package: DEB
test: skip
server_only: yes
- distro: Debian
version: 12
package: DEB
test: skip # Running tests on all distros is superfluous
- distro: Debian
version: 13
package: DEB
- distro: Fedora
version: 42
package: RPM
test: skip # Running tests on all distros is superfluous
- distro: Fedora
version: 43
package: RPM
- distro: Ubuntu
version: 22.04
package: DEB
test: skip # Running tests on all distros is superfluous
- distro: Ubuntu
version: 24.04
package: DEB
- distro: Ubuntu
version: 26.04
package: DEB
name: ${{matrix.distro}} ${{matrix.version}}
needs: configure
runs-on: ubuntu-latest
continue-on-error: ${{matrix.allow-failure == 'yes'}}
timeout-minutes: 70
env:
NAME: ${{matrix.distro}}${{matrix.version}}
CACHE: ${{github.workspace}}/.cache/${{matrix.distro}}${{matrix.version}} # directory for caching docker image and ccache
# Cache size over the entire repo is 10Gi:
# https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#usage-limits-and-eviction-policy
CCACHE_SIZE: 550M
CCACHE_EVICTION_AGE: 7d
CMAKE_GENERATOR: 'Ninja'
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Restore compiler cache (ccache)
id: ccache_restore
uses: actions/cache/restore@v5
env:
BRANCH_NAME: ${{ github.head_ref || github.ref_name }}
with:
path: ${{env.CACHE}}
key: ccache-${{matrix.distro}}${{matrix.version}}-${{env.BRANCH_NAME}}
restore-keys: ccache-${{matrix.distro}}${{matrix.version}}-
- name: Build ${{matrix.distro}} ${{matrix.version}} Docker image
shell: bash
run: source .ci/docker.sh --build
- name: Build debug and test
if: matrix.test != 'skip'
shell: bash
run: |
source .ci/docker.sh
RUN --server --debug --test --ccache "$CCACHE_SIZE" \
--cmake-generator "$CMAKE_GENERATOR"
- name: Build release package
id: build
if: matrix.package != 'skip'
shell: bash
env:
SUFFIX: '-${{matrix.distro}}${{matrix.version}}'
package: '${{matrix.package}}'
server_only: '${{matrix.server_only}}'
run: |
source .ci/docker.sh
args=()
if [[ $server_only == yes ]]; then
args+=(--no-client)
fi
if [[ $GITHUB_REF == "refs/heads/master" ]]; then
args+=(--evict-ccache "$CCACHE_EVICTION_AGE")
fi
args+=(--ccache "$CCACHE_SIZE")
args+=(--cmake-generator "$CMAKE_GENERATOR")
args+=(--suffix "$SUFFIX")
RUN --server --release --package "$package" "${args[@]}"
# Delete used cache to emulate a ccache update. See https://github.com/actions/cache/issues/342
- name: Delete remote compiler cache (ccache)
if: github.ref == 'refs/heads/master' && steps.ccache_restore.outputs.cache-hit
continue-on-error: true
env:
GH_TOKEN: ${{ github.token }}
run: |
if gh cache delete --repo ${{ github.repository }} ${{ steps.ccache_restore.outputs.cache-primary-key }}; then
echo "Cache deleted successfully"
fi
- name: Save updated compiler cache (ccache)
if: github.ref == 'refs/heads/master'
uses: actions/cache/save@v5
with:
path: ${{env.CACHE}}
key: ${{ steps.ccache_restore.outputs.cache-primary-key }}
- name: Upload artifact
id: upload_artifact
if: matrix.package != 'skip'
uses: actions/upload-artifact@v7
with:
path: ${{steps.build.outputs.path}}
archive: false
if-no-files-found: error
- name: Upload to release
id: upload_release
if: matrix.package != 'skip' && needs.configure.outputs.tag != null
shell: bash
env:
GH_TOKEN: ${{github.token}}
tag_name: ${{needs.configure.outputs.tag}}
asset_name: ${{steps.build.outputs.fullname}}
asset_path: ${{steps.build.outputs.path}}
run: gh release upload "$tag_name" "$asset_path#$asset_name"
- name: Attest binary provenance
id: attestation
if: steps.upload_release.outcome == 'success'
uses: actions/attest@v4
with:
subject-path: ${{steps.build.outputs.path}}
show-summary: false
- name: Verify binary attestation
if: steps.attestation.outcome == 'success'
shell: bash
env:
GH_TOKEN: ${{github.token}}
run: gh attestation verify ${{steps.build.outputs.path}} --repo Cockatrice/Cockatrice
build-vcpkg:
strategy:
fail-fast: false
matrix:
include:
- os: macOS
target: 13
runner: macos-15-intel
soc: Intel
xcode: "16.4"
type: Release
override_target: 13
make_package: 1
package_suffix: "-macOS13_Intel"
qt_version: 6.11.*
qt_arch: clang_64
qt_modules: qtimageformats qtmultimedia qtwebsockets
cmake_generator: Ninja
use_ccache: 1
ccache_eviction_age: 7d
- os: macOS
target: 14
runner: macos-14
soc: Apple
xcode: "15.4"
type: Release
make_package: 1
package_suffix: "-macOS14"
qt_version: 6.11.*
qt_arch: clang_64
qt_modules: qtimageformats qtmultimedia qtwebsockets
cmake_generator: Ninja
use_ccache: 1
ccache_eviction_age: 7d
- os: macOS
target: 15
runner: macos-15
soc: Apple
xcode: "16.4"
type: Release
make_package: 1
package_suffix: "-macOS15"
qt_version: 6.11.*
qt_arch: clang_64
qt_modules: qtimageformats qtmultimedia qtwebsockets
cmake_generator: Ninja
use_ccache: 1
ccache_eviction_age: 7d
- os: macOS
target: 15
runner: macos-15
soc: Apple
xcode: "16.4"
type: Debug
qt_version: 6.11.*
qt_arch: clang_64
qt_modules: qtimageformats qtmultimedia qtwebsockets
cmake_generator: Ninja
use_ccache: 1
ccache_eviction_age: 7d
- os: Windows
target: 10
runner: windows-2025
type: Release
make_package: 1
package_suffix: "-Win10"
qt_version: 6.11.*
qt_arch: win64_msvc2022_64
qt_modules: qtimageformats qtmultimedia qtwebsockets
cmake_generator: "Visual Studio 17 2022"
cmake_generator_platform: x64
name: ${{matrix.os}} ${{matrix.target}}${{ matrix.soc == 'Intel' && ' Intel' || '' }}${{ matrix.type == 'Debug' && ' Debug' || '' }}
needs: configure
runs-on: ${{matrix.runner}}
timeout-minutes: 100
env:
CCACHE_DIR: ${{github.workspace}}/.cache/
# Cache size over the entire repo is 10Gi:
# https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#usage-limits-and-eviction-policy
CCACHE_SIZE: 550M
steps:
- name: Checkout
uses: actions/checkout@v6
with:
submodules: recursive
- name: Add msbuild to PATH
if: matrix.os == 'Windows'
id: add-msbuild
uses: microsoft/setup-msbuild@v3
with:
msbuild-architecture: x64
- name: Setup ccache
if: matrix.use_ccache == 1 && matrix.os == 'macOS'
run: brew install ccache
- name: Restore compiler cache (ccache)
if: matrix.use_ccache == 1
id: ccache_restore
uses: actions/cache/restore@v5
env:
BRANCH_NAME: ${{ github.head_ref || github.ref_name }}
with:
path: ${{env.CCACHE_DIR}}
key: ccache-${{matrix.runner}}-${{matrix.soc}}-${{matrix.type}}-${{env.BRANCH_NAME}}
restore-keys: ccache-${{matrix.runner}}-${{matrix.soc}}-${{matrix.type}}-
- name: Install aqtinstall
run: pipx install aqtinstall
# Resolve given wildcard versions (e.g. Qt 6.6.*) to latest version via aqtinstall to avoid stale caches on new releases
- name: Resolve latest Qt patch version
id: resolve_qt_version
shell: bash
run: .ci/resolve_latest_aqt_qt_version.sh "${{matrix.qt_version}}"
- name: Restore thin Qt ${{ steps.resolve_qt_version.outputs.version }} libraries (${{ matrix.soc }} macOS)
if: matrix.os == 'macOS'
id: restore_qt
uses: actions/cache/restore@v5
with:
path: ${{ github.workspace }}/Qt
key: thin-qt-macos-${{ matrix.soc }}-${{ steps.resolve_qt_version.outputs.version }}
# Using jurplel/install-qt-action to install Qt without using brew
# qt build using vcpkg either just fails or takes too long to build
- name: Install fat Qt ${{ steps.resolve_qt_version.outputs.version }} (${{ matrix.soc }} macOS)
if: matrix.os == 'macOS' && steps.restore_qt.outputs.cache-hit != 'true'
uses: jurplel/install-qt-action@v4
with:
version: ${{ steps.resolve_qt_version.outputs.version }}
arch: ${{matrix.qt_arch}}
modules: ${{matrix.qt_modules}}
cache: false
dir: ${{github.workspace}}
- name: Thin Qt libraries (${{ matrix.soc }} macOS)
if: matrix.os == 'macOS' && steps.restore_qt.outputs.cache-hit != 'true'
run: .ci/thin_macos_qtlib.sh
- name: Cache thin Qt libraries (${{ matrix.soc }} macOS)
if: matrix.os == 'macOS' && steps.restore_qt.outputs.cache-hit != 'true'
uses: actions/cache/save@v5
with:
path: ${{ github.workspace }}/Qt
key: thin-qt-macos-${{ matrix.soc }}-${{ steps.resolve_qt_version.outputs.version }}
- name: Install Qt ${{matrix.qt_version}} (Windows)
if: matrix.os == 'Windows'
uses: jurplel/install-qt-action@v4
with:
# qt 6.11.0 only works with aqtinstall directly from git until aqtinstall 3.4 is released
aqtsource: git+https://github.com/miurahr/aqtinstall.git
version: ${{ steps.resolve_qt_version.outputs.version }}
arch: ${{matrix.qt_arch}}
modules: ${{matrix.qt_modules}}
cache: true
- name: Install NSIS
if: matrix.os == 'Windows'
shell: bash
run: choco install nsis
- name: Setup vcpkg cache
id: vcpkg-cache
uses: TAServers/vcpkg-cache@v3
with:
token: ${{ secrets.GITHUB_TOKEN }}
# uses environment variables, see compile.sh for more details
- name: Build Cockatrice
id: build
shell: bash
env:
BUILDTYPE: '${{matrix.type}}'
MAKE_PACKAGE: '${{matrix.make_package}}'
PACKAGE_SUFFIX: '${{matrix.package_suffix}}'
CMAKE_GENERATOR: ${{matrix.cmake_generator}}
CMAKE_GENERATOR_PLATFORM: ${{matrix.cmake_generator_platform}}
USE_CCACHE: ${{matrix.use_ccache}}
VCPKG_DISABLE_METRICS: 1
VCPKG_BINARY_SOURCES: 'clear;files,${{ steps.vcpkg-cache.outputs.path }},readwrite'
# macOS-specific environment variables, will be ignored on Windows
MACOS_CERTIFICATE: ${{ secrets.PROD_MACOS_CERTIFICATE }}
MACOS_CERTIFICATE_PWD: ${{ secrets.PROD_MACOS_CERTIFICATE_PWD }}
MACOS_CERTIFICATE_NAME: ${{ secrets.PROD_MACOS_CERTIFICATE_NAME }}
MACOS_CI_KEYCHAIN_PWD: ${{ secrets.PROD_MACOS_CI_KEYCHAIN_PWD }}
DEVELOPER_DIR: '/Applications/Xcode_${{matrix.xcode}}.app/Contents/Developer'
TARGET_MACOS_VERSION: ${{ matrix.override_target }}
CCACHE_EVICTION_AGE: ${{ matrix.ccache_eviction_age }}
run: .ci/compile.sh --server --test --vcpkg
# Delete used cache to emulate a ccache update. See https://github.com/actions/cache/issues/342
- name: Delete remote compiler cache (ccache)
if: github.ref == 'refs/heads/master' && matrix.use_ccache == 1 && steps.ccache_restore.outputs.cache-hit
continue-on-error: true
env:
GH_TOKEN: ${{ github.token }}
run: |
if gh cache delete --repo ${{ github.repository }} ${{ steps.ccache_restore.outputs.cache-primary-key }}; then
echo "Cache deleted successfully"
fi
- name: Save updated compiler cache (ccache)
if: github.ref == 'refs/heads/master' && matrix.use_ccache == 1
uses: actions/cache/save@v5
with:
path: ${{env.CCACHE_DIR}}
key: ${{ steps.ccache_restore.outputs.cache-primary-key }}
- name: Sign app bundle
if: matrix.os == 'macOS' && matrix.make_package && needs.configure.outputs.tag != null
id: sign_macos
env:
MACOS_CERTIFICATE_NAME: ${{ secrets.PROD_MACOS_CERTIFICATE_NAME }}
MACOS_CI_KEYCHAIN_PWD: ${{ secrets.PROD_MACOS_CI_KEYCHAIN_PWD }}
run: |
if [[ -n "$MACOS_CERTIFICATE_NAME" ]]
then
security unlock-keychain -p "$MACOS_CI_KEYCHAIN_PWD" build.keychain
/usr/bin/codesign --sign="$MACOS_CERTIFICATE_NAME" --entitlements=".ci/macos.entitlements" --options=runtime --force --deep --timestamp --verbose ${{steps.build.outputs.path}}
fi
- name: Notarize app bundle
if: steps.sign_macos.outcome == 'success'
env:
MACOS_NOTARIZATION_APPLE_ID: ${{ secrets.PROD_MACOS_NOTARIZATION_APPLE_ID }}
MACOS_NOTARIZATION_TEAM_ID: ${{ secrets.PROD_MACOS_NOTARIZATION_TEAM_ID }}
MACOS_NOTARIZATION_PWD: ${{ secrets.PROD_MACOS_NOTARIZATION_PWD }}
run: |
if [[ -n "$MACOS_NOTARIZATION_APPLE_ID" ]]
then
# Store the notarization credentials so that we can prevent a UI password dialog from blocking the CI
echo "Create keychain profile"
xcrun notarytool store-credentials "notarytool-profile" --apple-id "$MACOS_NOTARIZATION_APPLE_ID" --team-id "$MACOS_NOTARIZATION_TEAM_ID" --password "$MACOS_NOTARIZATION_PWD"
# We can't notarize an app bundle directly, but we need to compress it as an archive.
# Therefore, we create a zip file containing our app bundle, so that we can send it to the
# notarization service
echo "Creating temp notarization archive"
ditto -c -k --keepParent ${{steps.build.outputs.path}} "notarization.zip"
# Here we send the notarization request to the Apple's Notarization service, waiting for the result.
# This typically takes a few seconds inside a CI environment, but it might take more depending on the App
# characteristics. Visit the Notarization docs for more information and strategies on how to optimize it if
# you're curious
echo "Notarize app"
xcrun notarytool submit "notarization.zip" --keychain-profile "notarytool-profile" --wait
# Finally, we need to "attach the staple" to our executable, which will allow our app to be
# validated by macOS even when an internet connection is not available.
echo "Attach staple"
xcrun stapler staple ${{steps.build.outputs.path}}
fi
- name: Upload artifact
if: matrix.make_package
id: upload_artifact
uses: actions/upload-artifact@v7
with:
path: ${{steps.build.outputs.path}}
archive: false
if-no-files-found: error
- name: Upload PDBs (Program Databases)
if: matrix.os == 'Windows' && github.ref_type != 'tag'
uses: actions/upload-artifact@v7
with:
name: ${{steps.build.outputs.name}}-PDBs
path: |
build/cockatrice/Release/*.pdb
build/oracle/Release/*.pdb
build/servatrice/Release/*.pdb
if-no-files-found: error
- name: Upload to release
if: needs.configure.outputs.tag != null && matrix.make_package == '1'
id: upload_release
shell: bash
env:
GH_TOKEN: ${{github.token}}
tag_name: ${{needs.configure.outputs.tag}}
asset_name: ${{steps.build.outputs.fullname}}
asset_path: ${{steps.build.outputs.path}}
run: gh release upload "$tag_name" "$asset_path#$asset_name"
- name: Attest binary provenance
if: steps.upload_release.outcome == 'success'
id: attestation
uses: actions/attest@v4
with:
subject-path: ${{steps.build.outputs.path}}
show-summary: false
- name: Verify binary attestation
if: steps.attestation.outcome == 'success'
shell: bash
env:
GH_TOKEN: ${{github.token}}
run: gh attestation verify ${{steps.build.outputs.path}} --repo Cockatrice/Cockatrice

View file

@ -1,39 +0,0 @@
name: Code Style (C++)
on:
# push trigger not needed for linting, we do not allow direct pushes to master
pull_request:
paths:
- '*/**' # matches all files not in root
- '!**.md'
- '!.ci/**'
- '!.github/**'
- '!.husky/**'
- '!.tx/**'
- '!doc/**'
- '!webclient/**'
- '.ci/lint_cpp.sh'
- '.github/workflows/desktop-lint.yml'
- '.clang-format'
- '.cmake-format.json'
- 'format.sh'
jobs:
format:
runs-on: ubuntu-slim
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 20 # should be enough to find merge base
- name: Install dependencies
shell: bash
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends clang-format cmake-format shellcheck
- name: Check code formatting
shell: bash
run: ./.ci/lint_cpp.sh

View file

@ -1,72 +0,0 @@
name: Build Docker Image
on:
push:
tags:
- '*Release*'
branches:
- master
pull_request:
branches:
- master
paths:
- '.github/workflows/docker-release.yml'
- 'Dockerfile'
# Cancel earlier, unfinished runs of this workflow on the same branch (unless on release)
concurrency:
group: "${{ github.workflow }} @ ${{ github.ref_name }}"
cancel-in-progress: ${{ github.ref_type != 'tag' }}
jobs:
docker:
name: amd64 & arm64
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Docker metadata
id: metadata
uses: docker/metadata-action@v6
with:
images: |
ghcr.io/cockatrice/servatrice
labels: |
org.opencontainers.image.title=Servatrice
org.opencontainers.image.url=https://cockatrice.github.io/
org.opencontainers.image.description=Server for Cockatrice, a cross-platform virtual tabletop for multiplayer card games
annotations: |
org.opencontainers.image.title=Servatrice
org.opencontainers.image.url=https://cockatrice.github.io/
org.opencontainers.image.description=Server for Cockatrice, a cross-platform virtual tabletop for multiplayer card games
- name: Set up QEMU
uses: docker/setup-qemu-action@v4
- name: Set up Docker buildx
uses: docker/setup-buildx-action@v4
- name: Login to GitHub Container Registry
if: github.ref_type == 'tag'
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ github.token }}
- name: Build and push Docker image
uses: docker/build-push-action@v7
with:
context: .
platforms: linux/amd64,linux/arm64
push: ${{ github.ref_type == 'tag' }}
tags: ${{ steps.metadata.outputs.tags }}
labels: ${{ steps.metadata.outputs.labels }}
annotations: ${{ steps.metadata.outputs.annotations }}
cache-from: type=gha,scope=servatrice
cache-to: type=gha,mode=max,scope=servatrice

View file

@ -1,63 +0,0 @@
name: Generate Docs
on:
push:
tags:
- '*' # Only re-generate docs when a new tagged version is pushed
pull_request:
paths:
- 'doc/doxygen/**'
- '.github/workflows/documentation-build.yml'
- 'Doxyfile'
workflow_dispatch:
env:
COCKATRICE_REF: ${{ github.ref_name }} # Tag name if the commit is tagged, otherwise branch name
jobs:
docs:
name: Doxygen
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
with:
submodules: recursive
- name: Install Graphviz
run: |
sudo apt-get install -y graphviz
dot -V
- name: Install Doxygen
uses: ssciwr/doxygen-install@v2
with:
version: "1.14.0"
- name: Update Doxygen Configuration
run: |
git diff Doxyfile
doxygen -u Doxyfile
if git diff --quiet Doxyfile; then
echo "::notice::No config changes in Doxyfile detected."
else
echo "::error::Config changes in Doxyfile detected! Please update the file by running 'doxygen -u Doxyfile'."
echo ""
git diff --color=always Doxyfile
exit 1
fi
- name: Generate Documentation
if: always()
run: doxygen Doxyfile
- name: Deploy to cockatrice.github.io
if: github.event_name != 'pull_request'
uses: peaceiris/actions-gh-pages@v4
with:
deploy_key: ${{ secrets.DOCS_DEPLOY_KEY }}
external_repository: Cockatrice/cockatrice.github.io
publish_branch: master
publish_dir: ./docs/html
destination_dir: docs # Docs will live under https://cockatrice.github.io/docs/

View file

@ -1,73 +0,0 @@
name: Update Translations
on:
workflow_dispatch:
schedule:
# runs in the middle of each month starting a quarter (UTC) = two weeks after new strings are built
- cron: '0 0 15 1,4,7,10 *'
pull_request:
paths:
- '.tx/**'
- '.github/workflows/translations-pull.yml'
jobs:
translations:
# Do not run the scheduled workflow on forks
if: github.event_name != 'schedule' || github.repository_owner == 'Cockatrice'
name: Pull languages
runs-on: ubuntu-slim
steps:
- name: Checkout repo
uses: actions/checkout@v6
- name: Pull translated strings from Transifex
uses: transifex/cli-action@v2
with:
# used config file: https://github.com/Cockatrice/Cockatrice/blob/master/.tx/config
# https://github.com/transifex/cli#pulling-files-from-transifex
token: ${{ secrets.TX_TOKEN }}
args: pull --force --all
- name: Create pull request
if: github.event_name != 'pull_request'
id: create_pr
uses: peter-evans/create-pull-request@v8
with:
add-paths: |
cockatrice/translations/*.ts
oracle/translations/*.ts
webclient/public/locales/*/translation.json
commit-message: Update translation files
# author is the owner of the commit
author: github-actions <github-actions@github.com>
branch: ci-update_translations
delete-branch: true
title: 'Update translations'
body: |
Pulled all translated strings from [Transifex][1].
---
*This PR is automatically generated and updated by the workflow at `.github/workflows/translations-pull.yml`. Review [action runs][2].*<br>
*After merging, all new languages and translations are available in the next build.*
[1]: https://explore.transifex.com/cockatrice/cockatrice/
[2]: https://github.com/Cockatrice/Cockatrice/actions/workflows/translations-pull.yml?query=branch%3Amaster
labels: |
CI
Translation
draft: false
- name: PR Status
if: github.event_name != 'pull_request'
shell: bash
env:
STATUS: ${{ steps.create_pr.outputs.pull-request-operation }}
run: |
if [[ "$STATUS" == "none" ]]; then
echo "PR #${{ steps.create_pr.outputs.pull-request-number }} unchanged!" >> $GITHUB_STEP_SUMMARY
else
echo "PR #${{ steps.create_pr.outputs.pull-request-number }} $STATUS!" >> $GITHUB_STEP_SUMMARY
fi
echo "URL: ${{ steps.create_pr.outputs.pull-request-url }}" >> $GITHUB_STEP_SUMMARY

View file

@ -1,88 +0,0 @@
name: Update Translation Source
on:
workflow_dispatch:
schedule:
# runs at the start of each quarter (UTC)
- cron: '0 0 1 1,4,7,10 *'
pull_request:
paths:
- '.ci/update_translation_source_strings.sh'
- '.github/workflows/translations-push.yml'
jobs:
translations:
# Do not run the scheduled workflow on forks
if: github.event_name != 'schedule' || github.repository_owner == 'Cockatrice'
name: Push strings
runs-on: ubuntu-slim
steps:
- name: Checkout repo
uses: actions/checkout@v6
- name: Install lupdate
shell: bash
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends qttools5-dev-tools
- name: Update Cockatrice translation source
id: cockatrice
shell: bash
run: |
FILE="cockatrice/cockatrice_en@source.ts"
export DIRS="cockatrice/src $(find . -maxdepth 1 -type d -name 'libcockatrice_*')"
FILE="$FILE" DIRS="$DIRS" .ci/update_translation_source_strings.sh
- name: Update Oracle translation source
id: oracle
shell: bash
env:
FILE: 'oracle/oracle_en@source.ts'
DIRS: 'oracle/src'
run: .ci/update_translation_source_strings.sh
- name: Render template
id: template
uses: chuhlomin/render-template/binary@v1
with:
template: .ci/update_translation_source_strings_template.md
vars: |
cockatrice_output: ${{ steps.cockatrice.outputs.output }}
oracle_output: ${{ steps.oracle.outputs.output }}
commit: ${{ github.sha }}
- name: Create pull request
if: github.event_name != 'pull_request'
id: create_pr
uses: peter-evans/create-pull-request@v8
with:
add-paths: |
cockatrice/cockatrice_en@source.ts
oracle/oracle_en@source.ts
commit-message: Update translation source strings
# author is the owner of the commit
author: github-actions <github-actions@github.com>
branch: ci-update_translation_source
delete-branch: true
title: 'Update source strings'
body: ${{ steps.template.outputs.result }}
labels: |
CI
Translation
draft: false
- name: PR Status
if: github.event_name != 'pull_request'
shell: bash
env:
STATUS: ${{ steps.create_pr.outputs.pull-request-operation }}
run: |
if [[ "$STATUS" == "none" ]]; then
echo "PR #${{ steps.create_pr.outputs.pull-request-number }} unchanged!" >> $GITHUB_STEP_SUMMARY
else
echo "PR #${{ steps.create_pr.outputs.pull-request-number }} $STATUS!" >> $GITHUB_STEP_SUMMARY
fi
echo "URL: ${{ steps.create_pr.outputs.pull-request-url }}" >> $GITHUB_STEP_SUMMARY

View file

@ -1,54 +0,0 @@
name: Build Web
on:
push:
branches:
- master
paths:
- '.husky/**'
- 'webclient/**'
- '!**.md'
- '.github/workflows/web-build.yml'
pull_request:
paths:
- '.husky/**'
- 'webclient/**'
- '!**.md'
- '.github/workflows/web-build.yml'
jobs:
build-web:
name: React (Node ${{matrix.node_version}})
runs-on: ubuntu-latest
defaults:
run:
working-directory: webclient
strategy:
fail-fast: false
matrix:
node_version:
- 16
- lts/*
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: ${{matrix.node_version}}
cache: 'npm'
cache-dependency-path: 'webclient/package-lock.json'
- name: Install dependencies
run: npm clean-install
- name: Build app
run: npm run build
- name: Test app
run: npm run test

View file

@ -1,33 +0,0 @@
name: Code Style (TypeScript)
on:
# push trigger not needed for linting, we do not allow direct pushes to master
pull_request:
paths:
- 'webclient/**'
- '!**.md'
- '.github/workflows/web-lint.yml'
jobs:
ESLint:
runs-on: ubuntu-slim
defaults:
run:
working-directory: webclient
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup Node.js
uses: actions/setup-node@v6
with:
cache: 'npm'
cache-dependency-path: 'webclient/package-lock.json'
- name: Install ESLint
run: npm clean-install --ignore-scripts
- name: Run ESLint
run: npm run lint

13
.gitignore vendored
View file

@ -2,16 +2,3 @@ tags
build*
*.qm
.directory
mysql.cnf
.DS_Store
.idea/
*.aps
cmake-build*
preferences
compile_commands.json
.vs/
.vscode/
.cache
.gdb_history
cockatrice/resources/config/qtlogging.ini
docs/

6
.gitmodules vendored
View file

@ -1,6 +0,0 @@
[submodule "vcpkg"]
path = vcpkg
url = https://github.com/microsoft/vcpkg.git
[submodule "doxygen-awesome-css"]
path = doc/doxygen/theme
url = https://github.com/jothepro/doxygen-awesome-css.git

View file

@ -1,7 +0,0 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
cd webclient
npm run translate
git add src/i18n-default.json

10
.travis.yml Normal file
View file

@ -0,0 +1,10 @@
language: cpp
os:
- linux
- osx
compiler:
- gcc
- clang
script: mkdir build && cd build && cmake .. && make
install: ./travis-dependencies.sh
cache: apt

View file

@ -1,26 +0,0 @@
[main]
host = https://app.transifex.com
[o:cockatrice:p:cockatrice:r:cockatrice-cockatrice-en-source-ts--master]
resource_name = Cockatrice
source_lang = en
source_file = cockatrice/cockatrice_en@source.ts
file_filter = cockatrice/translations/cockatrice_<lang>.ts
type = QT
minimum_perc = 10
[o:cockatrice:p:cockatrice:r:oracle-oracle-en-source-ts--master]
resource_name = Oracle
source_lang = en
source_file = oracle/oracle_en@source.ts
file_filter = oracle/translations/oracle_<lang>.ts
type = QT
minimum_perc = 10
[o:cockatrice:p:cockatrice:r:webclient-src-i18n-default-json--master]
resource_name = Webclient
source_lang = en
source_file = webclient/src/i18n-default.json
file_filter = webclient/public/locales/<lang>/translation.json
type = KEYVALUEJSON
minimum_perc = 10

View file

@ -5,368 +5,139 @@
# This file sets all the variables shared between the projects
# like the installation path, compilation flags etc..
# cmake 3.16 is required if using qt6
cmake_minimum_required(VERSION 3.10)
cmake_minimum_required(VERSION 2.6)
# Early detect ccache
option(USE_CCACHE "Cache the build results with ccache" ON)
# Treat warnings as errors (Debug builds only)
option(WARNING_AS_ERROR "Treat warnings as errors in debug builds" ON)
# Check for translation updates
option(UPDATE_TRANSLATIONS "Update translations on compile" OFF)
# Compile servatrice
option(WITH_SERVER "build servatrice" OFF)
# Compile cockatrice
option(WITH_CLIENT "build cockatrice" ON)
# Compile oracle
option(WITH_ORACLE "build oracle" ON)
# Compile tests
option(TEST "build tests" OFF)
# Use vcpkg regardless of OS
option(USE_VCPKG "Use vcpkg regardless of OS" OFF)
set(PROJECT_NAME "Cockatrice")
set(PROJECT_VERSION_MAJOR 0)
set(PROJECT_VERSION_MINOR 0)
set(PROJECT_VERSION_PATCH 1)
set(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH} )
# Default to "Release" build type
# Defualt to "Release" build type
# User-provided value for CMAKE_BUILD_TYPE must be checked before the PROJECT() call
if(DEFINED CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE
${CMAKE_BUILD_TYPE}
CACHE STRING "Type of build"
)
else()
set(CMAKE_BUILD_TYPE
Release
CACHE STRING "Type of build"
)
endif()
if(USE_CCACHE)
find_program(CCACHE_PROGRAM ccache)
if(CCACHE_PROGRAM)
# Support Unix Makefiles and Ninja
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}")
message(STATUS "Found CCache ${CCACHE_PROGRAM}")
endif()
endif()
if(WIN32 OR USE_VCPKG)
# Use vcpkg toolchain on Windows (and on macOS in CI)
set(CMAKE_TOOLCHAIN_FILE
${CMAKE_CURRENT_SOURCE_DIR}/vcpkg/scripts/buildsystems/vcpkg.cmake
CACHE STRING "Vcpkg toolchain file"
)
# Qt path set by user or env var
if(QTDIR
OR DEFINED ENV{QTDIR}
OR DEFINED ENV{QTDIR32}
OR DEFINED ENV{QTDIR64}
)
else()
set(QTDIR
""
CACHE PATH "Path to Qt (e.g. C:/Qt/5.7/msvc2015_64)"
)
message(
WARNING "QTDIR variable is missing. Please set this variable to specify path to Qt (e.g. C:/Qt/5.7/msvc2015_64)"
)
endif()
endif()
IF(DEFINED CMAKE_BUILD_TYPE)
SET(CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE} CACHE STRING "Type of build")
ELSE()
SET(CMAKE_BUILD_TYPE Release CACHE STRING "Type of build")
ENDIF()
# A project name is needed for CPack
# Version can be overriden by git tags, see cmake/getversion.cmake
project("Cockatrice" VERSION 3.0.0)
# Set release name if not provided via env/cmake var
if(NOT DEFINED GIT_TAG_RELEASENAME)
set(GIT_TAG_RELEASENAME "Graduation Day")
endif()
# Use c++20 for all targets
set(CMAKE_CXX_STANDARD
20
CACHE STRING "C++ ISO Standard"
)
set(CMAKE_CXX_STANDARD_REQUIRED True)
PROJECT("${PROJECT_NAME}")
# Set conventional loops
set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
# Search path for cmake modules
set(COCKATRICE_CMAKE_PATH "${PROJECT_SOURCE_DIR}/cmake")
list(INSERT CMAKE_MODULE_PATH 0 "${COCKATRICE_CMAKE_PATH}")
include(getversion)
# Create a header and a cpp file containing the version hash
include(createversionfile)
# Define a proper install path
if(UNIX)
if(APPLE)
# macOS
# Due to the special bundle structure ignore
# the prefix eventually set by the user.
set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/release)
# Force ccache usage if available
get_property(RULE_LAUNCH_COMPILE GLOBAL PROPERTY RULE_LAUNCH_COMPILE)
if(RULE_LAUNCH_COMPILE)
message(STATUS "Force enabling CCache usage under macOS")
# Set up wrapper scripts
configure_file("${COCKATRICE_CMAKE_PATH}/launch-c.in" launch-c)
configure_file("${COCKATRICE_CMAKE_PATH}/launch-cxx.in" launch-cxx)
execute_process(COMMAND chmod a+rx "${CMAKE_BINARY_DIR}/launch-c" "${CMAKE_BINARY_DIR}/launch-cxx")
# Set Xcode project attributes to route compilation through our scripts
set(CMAKE_XCODE_ATTRIBUTE_CC "${CMAKE_BINARY_DIR}/launch-c")
set(CMAKE_XCODE_ATTRIBUTE_CXX "${CMAKE_BINARY_DIR}/launch-cxx")
set(CMAKE_XCODE_ATTRIBUTE_LD "${CMAKE_BINARY_DIR}/launch-c")
set(CMAKE_XCODE_ATTRIBUTE_LDPLUSPLUS "${CMAKE_BINARY_DIR}/launch-cxx")
if(APPLE)
# MacOS X
# Due to the special bundle structure ignore
# the prefix eventually set by the user.
set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/release)
else()
# Linux / BSD
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
#fix package build
if(PREFIX)
set(CMAKE_INSTALL_PREFIX ${PREFIX})
else()
set(CMAKE_INSTALL_PREFIX /usr/local)
endif()
endif()
endif()
else()
# Linux / BSD
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
#fix package build
if(PREFIX)
set(CMAKE_INSTALL_PREFIX ${PREFIX})
else()
set(CMAKE_INSTALL_PREFIX /usr/local)
endif()
endif()
endif()
elseif(WIN32)
set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/rundir/${CMAKE_BUILD_TYPE})
set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/release)
endif()
# Define proper compilation flags
if(MSVC)
# Disable Warning C4251, C++20 compatibility, Multi-threaded Builds, Warn Detection, Unwind Semantics, Debug Symbols
set(CMAKE_CXX_FLAGS "/wd4251 /Zc:__cplusplus /std:c++20 /permissive- /W4 /MP /EHsc /Zi")
# Visual Studio: Maximum Optimization, Multi-threaded DLL
set(CMAKE_CXX_FLAGS_RELEASE "/Ox /MD")
# Visual Studio: No Optimization, Multi-threaded Debug DLL
set(CMAKE_CXX_FLAGS_DEBUG "/Od /MDd")
# Generate PDB, even when in release (So developers can better analyze crash logs)
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF")
add_compile_definitions(_SILENCE_STDEXT_ARR_ITERS_DEPRECATION_WARNING)
elseif(CMAKE_COMPILER_IS_GNUCXX)
# linux/gcc, bsd/gcc, windows/mingw
include(CheckCXXCompilerFlag)
set(CMAKE_CXX_FLAGS_RELEASE "-s -O2")
if(WARNING_AS_ERROR)
set(CMAKE_CXX_FLAGS_DEBUG "-ggdb -O0 -Wall -Wextra -Werror")
else()
set(CMAKE_CXX_FLAGS_DEBUG "-ggdb -O0 -Wall -Wextra")
endif()
if(APPLE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++20")
endif()
set(ADDITIONAL_DEBUG_FLAGS
-Wcast-align
-Wmissing-declarations
-Wno-long-long
-Wno-error=extra
-Wno-error=delete-non-virtual-dtor
-Wno-error=sign-compare
-Wno-error=missing-declarations
)
foreach(FLAG ${ADDITIONAL_DEBUG_FLAGS})
check_cxx_compiler_flag("${FLAG}" CXX_HAS_WARNING_${FLAG})
if(CXX_HAS_WARNING_${FLAG})
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${FLAG}")
endif()
endforeach()
else()
# other: osx/llvm, bsd/llvm
set(CMAKE_CXX_FLAGS_RELEASE "-O2")
if(WARNING_AS_ERROR)
set(CMAKE_CXX_FLAGS_DEBUG "-g -O0 -Wall -Wextra -Werror -Wno-unused-parameter")
else()
set(CMAKE_CXX_FLAGS_DEBUG "-g -O0 -Wall -Wextra")
endif()
endif()
IF(MSVC)
# Visual Studio:
# Maximum optimization
set(CMAKE_CXX_FLAGS_RELEASE "/Ox")
# Generate complete debugging information
#set(CMAKE_CXX_FLAGS_DEBUG "/Zi")
ELSEIF (CMAKE_COMPILER_IS_GNUCXX)
# linux/gcc, bsd/gcc, windows/mingw
set(CMAKE_CXX_FLAGS_RELEASE "-s -O2")
set(CMAKE_CXX_FLAGS_DEBUG "-ggdb -O0")
ELSE()
# other: osx/llvm, bsd/llvm
set(CMAKE_CXX_FLAGS_RELEASE "-O2")
set(CMAKE_CXX_FLAGS_DEBUG "-g -O0")
ENDIF()
# GNU systems need to define the Mersenne exponent for the RNG to compile w/o warning
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
add_definitions("-DSFMT_MEXP=19937")
endif()
IF(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
ADD_DEFINITIONS("-DSFMT_MEXP=19937")
ENDIF()
find_package(Threads REQUIRED)
# Determine 32 or 64 bit build
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(_lib_suffix 64)
else()
set(_lib_suffix 32)
endif()
if(DEFINED QTDIR${_lib_suffix})
list(APPEND CMAKE_PREFIX_PATH "${QTDIR${_lib_suffix}}")
elseif(DEFINED QTDIR)
list(APPEND CMAKE_PREFIX_PATH "${QTDIR}")
elseif(DEFINED ENV{QTDIR${_lib_suffix}})
list(APPEND CMAKE_PREFIX_PATH "$ENV{QTDIR${_lib_suffix}}")
elseif(DEFINED ENV{QTDIR})
list(APPEND CMAKE_PREFIX_PATH "$ENV{QTDIR}")
endif()
message(STATUS "Update Translations: ${UPDATE_TRANSLATIONS}")
include(FindQtRuntime)
#Find Qt4 and enable the needed features
FIND_PACKAGE(Qt4 REQUIRED)
set(CMAKE_AUTOMOC TRUE)
# Find other needed libraries
find_package(Protobuf CONFIG)
if(NOT Protobuf_FOUND)
find_package(Protobuf REQUIRED)
endif()
if(${Protobuf_VERSION} VERSION_LESS "3.21.0.0" AND NOT EXISTS "${Protobuf_PROTOC_EXECUTABLE}")
message(FATAL_ERROR "No protoc command found!")
endif()
#Find OpenSSL
if(WIN32)
find_package(OpenSSL REQUIRED)
if(OPENSSL_FOUND)
include_directories(${OPENSSL_INCLUDE_DIRS})
else()
message(
WARNING
"Could not find OpenSSL runtime libraries. They are not required for compiling, but needs to be available at runtime."
)
endif()
endif()
#Find VCredist
if(MSVC)
find_package(VCredistRuntime)
endif()
FIND_PACKAGE(Protobuf REQUIRED)
# Package builder
set(CPACK_PACKAGE_CONTACT "Zach Halpern <zach@cockatrice.us>")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${PROJECT_NAME}")
set(CPACK_PACKAGE_CONTACT "Daenyth+github@gmail.com")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY ${PROJECT_NAME})
set(CPACK_PACKAGE_VENDOR "Cockatrice Development Team")
set(CPACK_PACKAGE_DESCRIPTION
"Cockatrice is an open-source, multiplatform application for playing tabletop card games over a network. The program's server design prevents users from manipulating the game for unfair advantage. The client also provides a single-player mode, which allows users to brew while offline."
)
set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE")
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.md")
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING")
set(CPACK_PACKAGE_VERSION_MAJOR "${PROJECT_VERSION_MAJOR}")
set(CPACK_PACKAGE_VERSION_MINOR "${PROJECT_VERSION_MINOR}")
set(CPACK_PACKAGE_VERSION_PATCH "${PROJECT_VERSION_PATCH}")
set(CPACK_PACKAGE_FILE_NAME "${PROJECT_VERSION_FILENAME}")
if(UNIX)
if(APPLE)
set(CPACK_GENERATOR DragNDrop ${CPACK_GENERATOR})
set(CPACK_GENERATOR "DragNDrop")
set(CPACK_DMG_FORMAT "UDBZ")
set(CPACK_DMG_VOLUME_NAME "${PROJECT_NAME}")
set(CPACK_SYSTEM_NAME "OSX")
set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/cockatrice/resources/appicon.icns")
set(CPACK_DMG_DS_STORE_SETUP_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/cmake/CMakeDMGSetup.script")
set(CPACK_DMG_BACKGROUND_IMAGE "${CMAKE_CURRENT_SOURCE_DIR}/cmake/dmgBackground.tif")
set(CPACK_PRE_BUILD_SCRIPTS "${CMAKE_CURRENT_SOURCE_DIR}/cmake/SignMacApplications.cmake")
else()
# linux
if(CPACK_GENERATOR STREQUAL "RPM")
set(CPACK_RPM_PACKAGE_LICENSE "GPLv2")
set(CPACK_RPM_MAIN_COMPONENT "cockatrice")
if(Qt6_FOUND)
set(CPACK_RPM_PACKAGE_REQUIRES "protobuf, qt6-qttools, qt6-qtsvg, qt6-qtmultimedia, qt6-qtimageformats")
elseif(Qt5_FOUND)
set(CPACK_RPM_PACKAGE_REQUIRES "protobuf, qt5-qttools, qt5-qtsvg, qt5-qtmultimedia")
endif()
set(CPACK_RPM_PACKAGE_GROUP "Amusements/Games")
set(CPACK_RPM_PACKAGE_URL "http://github.com/Cockatrice/Cockatrice")
# stop directories from making package conflicts
set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION
/usr/share/applications
/usr/share/icons
/usr/share/icons/hicolor
/usr/share/icons/hicolor/48x48
/usr/share/icons/hicolor/48x48/apps
/usr/share/icons/hicolor/scalable
/usr/share/icons/hicolor/scalable/apps
)
if(APPLE)
set(CPACK_GENERATOR DragNDrop ${CPACK_GENERATOR})
set(CPACK_GENERATOR "DragNDrop")
set(CPACK_DMG_FORMAT "UDBZ")
set(CPACK_DMG_VOLUME_NAME "${PROJECT_NAME}")
set(CPACK_SYSTEM_NAME "OSX")
set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${PROJECT_VERSION}")
set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/cockatrice/resources/appicon.icns")
else()
set(CPACK_GENERATOR DEB)
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
set(CPACK_DEBIAN_PACKAGE_SECTION "games")
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "http://github.com/Cockatrice/Cockatrice")
if(Qt6_FOUND)
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libqt6multimedia6, libqt6svg6, qt6-qpa-plugins, qt6-image-formats-plugins")
set(CPACK_DEBIAN_PACKAGE_RECOMMENDS "libqt6sql6-mysql") # for connecting servatrice to a mysql db
elseif(Qt5_FOUND)
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libqt5multimedia5-plugins, libqt5svg5")
endif()
# linux
set(CPACK_GENERATOR DEB ${CPACK_GENERATOR})
set(CPACK_PACKAGE_INSTALL_DIRECTORY "${PROJECT_NAME}/${PROJECT_VERSION}")
set(CPACK_STRIP_FILES "bin/${PROJECT_NAME}")
set(CPACK_SOURCE_STRIP_FILES "")
endif()
endif()
elseif(WIN32)
set(CPACK_GENERATOR NSIS ${CPACK_GENERATOR})
if("${CMAKE_GENERATOR_PLATFORM}" MATCHES "(x64)")
set(TRICE_IS_64_BIT 1)
else()
set(TRICE_IS_64_BIT 0)
endif()
# Configure file with custom definitions for NSIS.
configure_file("${COCKATRICE_CMAKE_PATH}/NSIS.definitions.nsh.in" "${PROJECT_BINARY_DIR}/NSIS.definitions.nsh")
# include vcredist into the package; NSIS will take care of running it
if(VCREDISTRUNTIME_FOUND)
install(FILES "${VCREDISTRUNTIME_FILE}" DESTINATION ./)
endif()
set(CPACK_GENERATOR NSIS ${CPACK_GENERATOR})
set(CPACK_PACKAGE_INSTALL_DIRECTORY "${PROJECT_NAME}\\\\${PROJECT_VERSION}")
set(CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\${PROJECT_NAME}.exe")
set(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY} ${PROJECT_NAME}")
set(CPACK_NSIS_HELP_LINK "https://github.com/Daenyth/Cockatrice")
set(CPACK_NSIS_URL_INFO_ABOUT "https://github.com/Daenyth/Cockatrice")
set(CPACK_NSIS_CONTACT "Daenyth+github@gmail.com")
set(CPACK_NSIS_MODIFY_PATH ON)
endif()
include(CPack)
add_subdirectory(${CMAKE_SOURCE_DIR}/libcockatrice_interfaces ${CMAKE_BINARY_DIR}/libcockatrice_interfaces)
add_subdirectory(${CMAKE_SOURCE_DIR}/libcockatrice_protocol ${CMAKE_BINARY_DIR}/libcockatrice_protocol)
if(WITH_CLIENT
OR WITH_SERVER
OR WITH_ORACLE
)
add_subdirectory(${CMAKE_SOURCE_DIR}/libcockatrice_network ${CMAKE_BINARY_DIR}/libcockatrice_network)
endif()
add_subdirectory(${CMAKE_SOURCE_DIR}/libcockatrice_deck_list ${CMAKE_BINARY_DIR}/libcockatrice_deck_list)
add_subdirectory(${CMAKE_SOURCE_DIR}/libcockatrice_rng ${CMAKE_BINARY_DIR}/libcockatrice_rng)
add_subdirectory(${CMAKE_SOURCE_DIR}/libcockatrice_card ${CMAKE_BINARY_DIR}/libcockatrice_card)
add_subdirectory(${CMAKE_SOURCE_DIR}/libcockatrice_utility ${CMAKE_BINARY_DIR}/libcockatrice_utility)
if(WITH_ORACLE OR WITH_CLIENT)
add_subdirectory(${CMAKE_SOURCE_DIR}/libcockatrice_settings ${CMAKE_BINARY_DIR}/libcockatrice_settings)
add_subdirectory(${CMAKE_SOURCE_DIR}/libcockatrice_models ${CMAKE_BINARY_DIR}/libcockatrice_models)
add_subdirectory(${CMAKE_SOURCE_DIR}/libcockatrice_filters ${CMAKE_BINARY_DIR}/libcockatrice_filters)
endif()
# Compile servatrice (default off)
option(WITH_SERVER "build servatrice" OFF)
add_subdirectory(common)
if(WITH_SERVER)
add_subdirectory(servatrice)
set(CPACK_INSTALL_CMAKE_PROJECTS "Servatrice;Servatrice;ALL;/" ${CPACK_INSTALL_CMAKE_PROJECTS})
add_subdirectory(servatrice)
SET(CPACK_INSTALL_CMAKE_PROJECTS "servatrice;servatrice;ALL;/" ${CPACK_INSTALL_CMAKE_PROJECTS})
endif()
# Compile cockatrice (default on)
option(WITH_CLIENT "build cockatrice" ON)
if(WITH_CLIENT)
add_subdirectory(cockatrice)
set(CPACK_INSTALL_CMAKE_PROJECTS "Cockatrice;Cockatrice;ALL;/" ${CPACK_INSTALL_CMAKE_PROJECTS})
add_subdirectory(cockatrice)
add_subdirectory(sounds)
add_subdirectory(zonebg)
SET(CPACK_INSTALL_CMAKE_PROJECTS "cockatrice;cockatrice;ALL;/" ${CPACK_INSTALL_CMAKE_PROJECTS})
endif()
# Compile oracle (default on)
option(WITH_ORACLE "build oracle" ON)
if(WITH_ORACLE)
add_subdirectory(oracle)
set(CPACK_INSTALL_CMAKE_PROJECTS "Oracle;Oracle;ALL;/" ${CPACK_INSTALL_CMAKE_PROJECTS})
endif()
if(TEST)
include(CTest)
add_subdirectory(tests)
endif()
if(Qt6_FOUND AND Qt6_VERSION_MINOR GREATER_EQUAL 3)
# Qt6.3+ requires project finalization to support translations
qt6_finalize_project()
add_subdirectory(oracle)
SET(CPACK_INSTALL_CMAKE_PROJECTS "release/oracle.app;oracle;ALL;/" ${CPACK_INSTALL_CMAKE_PROJECTS})
endif()

View file

@ -2,7 +2,7 @@
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
<https://fsf.org/>
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@ -304,7 +304,8 @@ the "copyright" line and a pointer to where the full notice is found.
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, see <https://www.gnu.org/licenses/>.
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
@ -328,8 +329,8 @@ necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Moe Ghoul>, 1 April 1989
Moe Ghoul, President of Vice
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may

View file

@ -1,44 +0,0 @@
# -------- Build Stage --------
FROM ubuntu:24.04 AS build
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
cmake \
file \
g++ \
git \
libmariadb-dev-compat \
libprotobuf-dev \
libqt6sql6-mysql \
qt6-websockets-dev \
protobuf-compiler \
qt6-tools-dev \
qt6-tools-dev-tools
WORKDIR /src
COPY . .
RUN mkdir build && cd build && \
cmake .. -DWITH_SERVER=1 -DWITH_CLIENT=0 -DWITH_ORACLE=0 && \
make -j$(nproc) && \
make install
# -------- Runtime Stage (clean) --------
FROM ubuntu:24.04
RUN apt-get update && apt-get install -y --no-install-recommends \
libprotobuf32t64 \
libqt6sql6-mysql \
libqt6websockets6 \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Only copy installed binaries, not source
COPY --from=build /usr/local /usr/local
WORKDIR /home/servatrice
EXPOSE 4748
ENTRYPOINT [ "servatrice", "--log-to-console" ]

2966
Doxyfile

File diff suppressed because it is too large Load diff

189
README.md
View file

@ -1,180 +1,43 @@
<p align='center'><img src=https://cloud.githubusercontent.com/assets/9874850/7516775/b00b8e36-f4d1-11e4-8da4-3df294d01f86.png></p>
---
<p align='center'>
<a href="#cockatrice"><b>Cockatrice</b></a> <b>|</b>
<a href="#download-">Download</a> <b>|</b>
<a href="#related-repositories">Related</a> <b>|</b>
<a href="#community-resources-">Community</a> <b>|</b>
<a href="#contribute">Contribute</a> <b>|</b>
<a href="#build---">Build</a> <b>|</b>
<a href="#run">Run</a>
</p>
---
<br><pre><p align='center'>
<b>To get started with Cockatrice &#8674; [view our webpage](https://cockatrice.github.io/)</b><br>
<b>To get support, or suggest changes to the app &#8674; [file an issue](https://github.com/Cockatrice/Cockatrice/issues) ([How?](https://github.com/Cockatrice/Cockatrice/wiki/How-to-Create-a-GitHub-Ticket-Regarding-Cockatrice))</b>
<b>To help with development &#8674; learn [how to contribute](#contribute-)</b>
</pre><p><br>
# Cockatrice
Cockatrice is an open-source, multiplatform application for playing tabletop card games over a network. The program's server design prevents users from manipulating the game for unfair advantage. The client also provides a single-player mode, which allows users to brew while offline.<br><br>
This project uses <kbd>C++</kbd> and the <kbd>Qt</kbd> libraries.<br>
First work on a webclient with <kbd>Typescript</kbd> was started as well.<br>
[![Build Status](https://travis-ci.org/Daenyth/Cockatrice.svg?branch=master)](https://travis-ci.org/Daenyth/Cockatrice)
Cockatrice is an open-source multiplatform software for playing card games,
such as Magic: The Gathering, over a network. It is fully client-server based
to prevent any kind of cheating, though it supports single-player games without
a network interface as well. Both client and server are written in Qt 4.
# Download [![Cockatrice Eternal Download Count](https://img.shields.io/github/downloads/cockatrice/cockatrice/total.svg)](https://tooomm.github.io/github-release-stats/?username=Cockatrice&repository=Cockatrice&search=0)
# License
Downloads are available for **stable releases** and the current **beta version** in development.
There is no strict release schedule for either of them.
<br><pre>
Latest <kbd>stable</kbd> release:
[![Download Stable Release](https://img.shields.io/github/release/cockatrice/cockatrice.svg?label=version&colorB=0d7ebf "Download Latest Stable Release")](https://github.com/cockatrice/cockatrice/releases/latest) ![](https://img.shields.io/github/release-date/Cockatrice/Cockatrice.svg?label=released&colorB=0d7ebf "Release Date") [![](https://img.shields.io/github/downloads/cockatrice/cockatrice/latest/total.svg?label=downloads&colorB=0d7ebf "Number of Downloads")](https://tooomm.github.io/github-release-stats/?username=Cockatrice&repository=Cockatrice&search=0)
</pre><pre>
Latest <kbd>beta</kbd> version:
[![Download Beta Release](https://img.shields.io/github/release/cockatrice/cockatrice/all.svg?label=version&colorB=f37f40 "Download Latest Beta Release")](https://github.com/cockatrice/cockatrice/releases) ![](https://img.shields.io/github/release-date-pre/Cockatrice/Cockatrice.svg?label=released&colorB=f37f40 "Release Date") [![](https://img.shields.io/github/downloads-pre/cockatrice/cockatrice/latest/total.svg?label=downloads&colorB=f37f40 "Number of Downloads")](https://tooomm.github.io/github-release-stats/?username=Cockatrice&repository=Cockatrice&search=0) [![](https://img.shields.io/github/commits-since/Cockatrice/Cockatrice/latest.svg?label=changes&colorB=f37f40 "Changes over Stable Release")](https://github.com/Cockatrice/Cockatrice/pulls?q=is%3Apr+is%3Aclosed)
<sub><i>While incorporating the latest fixes and features, beta builds may not be stable or contain new bugs!</i></sub>
<sub><b><i>Please report any findings and open new issues when testing them!</i></b></sub>
</pre>
Cockatrice is free software, licensed under the GPLv2; see COPYING for details.
# Related Repositories
# Building
- [Magic-Token](https://github.com/Cockatrice/Magic-Token): File with MtG token data for use in Cockatrice
- [Magic-Spoiler](https://github.com/Cockatrice/Magic-Spoiler): Code to generate MtG spoiler data from [MTGJSON](https://github.com/mtgjson/mtgjson) for use in Cockatrice
- [cockatrice.github.io](https://github.com/Cockatrice/cockatrice.github.io): Code of the official Cockatrice webpage
- [io.github.Cockatrice.cockatrice](https://github.com/flathub/io.github.Cockatrice.cockatrice): Configuration of our Linux `flatpak` package hosted at [Flathub](https://flathub.org/en/apps/io.github.Cockatrice.cockatrice)
Dependencies:
- [Qt](http://qt-project.org/)
- [protobuf](http://code.google.com/p/protobuf/)
- [CMake](http://www.cmake.org/)
# Community Resources [![Discord](https://img.shields.io/discord/314987288398659595?label=Discord&logo=discord&logoColor=white)](https://discord.gg/3Z9yzmA)
The server requires an additional dependency:
Join our [Discord community](https://discord.gg/3Z9yzmA) to connect with other project contributors (`#dev` channel) or fellow users of the app. Come here to talk about the application, features, or just to hang out.
- [Official Website](https://cockatrice.github.io)
- [Official Wiki](https://github.com/Cockatrice/Cockatrice/wiki)
- [Official Discord](https://discord.gg/3Z9yzmA)
- [reddit r/Cockatrice](https://reddit.com/r/cockatrice)
- [libgcrypt](http://www.gnu.org/software/libgcrypt/)
> [!IMPORTANT]
> For support regarding specific servers, please contact that server's admin/mods and use their dedicated communication channels rather than contacting the team building the software.
To compile:
# Contribute
<p>
<a href="#code">Code</a> <b>|</b>
<a href="#documentation-">Documentation</a> <b>|</b>
<a href="#translation-">Translation</a>
</p>
#### Repository Activity
![Cockatrice Repo Analytics](https://repobeats.axiom.co/api/embed/c7cec938789a5bbaeb4182a028b4dbb96db8f181.svg "Cockatrice Repo Analytics by Repobeats")
<details>
<summary><b>Kudos to all our amazing contributors ❤️</b></summary>
<br>
<a href="https://github.com/Cockatrice/Cockatrice/graphs/contributors">
<img src="https://contrib.rocks/image?repo=Cockatrice/Cockatrice" />
</a><br>
<sub><i>Made with <a href="https://contrib.rocks">contrib.rocks</a></i></sub>
</details>
### Code
To contribute code to the project, please review our [guidelines](https://github.com/Cockatrice/Cockatrice/blob/master/.github/CONTRIBUTING.md) first.<br>
We maintain two tags for contributors to easier find issues to potentially work on:
- [![Good first issue](https://img.shields.io/github/issues/cockatrice/cockatrice/Good%20First%20Issue)](https://github.com/Cockatrice/Cockatrice/issues?utf8=%E2%9C%93&q=is%3Aopen%20is%3Aissue%20label%3A%22Good%20first%20issue%22%20)<br>
Issues tagged in this way provide a simple way to get started. They don't require much experience to be worked on.
- [![Help wanted](https://img.shields.io/github/issues/cockatrice/cockatrice/Help%20Wanted)](https://github.com/Cockatrice/Cockatrice/issues?utf8=%E2%9C%93&q=is%3Aopen%20is%3Aissue%20label%3A%22Help%20Wanted%22%20)<br>
This tag is used for issues that we are looking for somebody to pick up. Often this is for feature suggestions we support, but don't have the time to work on ourselves.
For both tags, we're willing to provide help to contributors in showing them where and how they can make changes, as well as code reviews for submitted changes.<br>
We'll happily advice on how best to implement a feature, or we can show you where the codebase is doing something similar before you get too far along - put a note on an issue you want to discuss more on!
You can also have a look at our `Todo List` in our [Code Documentation](https://cockatrice.github.io/docs) or search the repo for [`\todo` comments](https://github.com/search?q=repo%3ACockatrice%2FCockatrice%20%5Ctodo&type=code).
### Documentation [![CI Docs](https://github.com/Cockatrice/Cockatrice/actions/workflows/documentation-build.yml/badge.svg?event=push)](https://github.com/Cockatrice/Cockatrice/actions/workflows/documentation-build.yml?query=event%3Apush)
There are various places where useful information for different needs are maintained:
- [Official Code Documentation](https://cockatrice.github.io/docs/)
- [Official Wiki](https://github.com/Cockatrice/Cockatrice/wiki) `Community supported`
- [Official Webpage](https://cockatrice.github.io/)
- [Official README](https://github.com/Cockatrice/Cockatrice/blob/master/README.md) `This file`
Cockatrice tries to use the [Google Developer Documentation Style Guide](https://developers.google.com/style/) to ensure consistent documentation. We encourage you to improve the documentation by suggesting edits based on this guide.
### Translation [![Transifex Project](https://img.shields.io/badge/translate-on%20transifex-brightgreen)](https://explore.transifex.com/cockatrice/cockatrice/)
Cockatrice uses Transifex to manage translations. You can help us bring <kbd>Cockatrice</kbd>, <kbd>Oracle</kbd> and <kbd>Webatrice</kbd> to your language and just adjust single wordings right from within your browser by visiting our [Transifex project page](https://explore.transifex.com/cockatrice/cockatrice/).<br>
Check out our [Translator FAQ](https://github.com/Cockatrice/Cockatrice/wiki/Translation-FAQ) for more information about getting involved, and join a group of hundreds of others!<br>
# Build [![CI Desktop](https://github.com/Cockatrice/Cockatrice/actions/workflows/desktop-build.yml/badge.svg?branch=master&event=push)](https://github.com/Cockatrice/Cockatrice/actions/workflows/desktop-build.yml?query=branch%3Amaster+event%3Apush) [![CI Docker](https://github.com/Cockatrice/Cockatrice/actions/workflows/docker-release.yml/badge.svg?branch=master&event=push)](https://github.com/Cockatrice/Cockatrice/actions/workflows/docker-release.yml?query=branch%3Amaster+event%3Apush) [![CI Web](https://github.com/Cockatrice/Cockatrice/actions/workflows/web-build.yml/badge.svg?branch=master&event=push)](https://github.com/Cockatrice/Cockatrice/actions/workflows/web-build.yml?query=branch%3Amaster+event%3Apush)
Dependencies: *(for minimum versions search our [CMake file](https://github.com/Cockatrice/Cockatrice/blob/master/CMakeLists.txt))*
- [Qt](https://www.qt.io/developers/)
- [protobuf](https://github.com/protocolbuffers/protobuf)
- [CMake](https://www.cmake.org/)
Oracle can *optionally* use some packages to load compressed card files:
- [xz](https://tukaani.org/xz/)
- [zlib](https://www.zlib.net/)
<br>
**Basic compilation steps:**
```bash
mkdir build
cd build
cmake ..
make
```
You can then
- Create a Cockatrice installation inside the `release` folder:
```bash
mkdir build
cd build
cmake ..
make
make install
```
- Or make an installation package specific to your system:
```bash
make package
```
> [!NOTE]
> Detailed compiling instructions can be found in the Cockatrice wiki at [Compiling Cockatrice](https://github.com/Cockatrice/Cockatrice/wiki/Compiling-Cockatrice)
The following flags can be passed to `cmake`:
<br>
- `-DWITH_SERVER=1` build the server
- `-DWITHOUT_CLIENT=1` do not build the client
The following flags (with their non-default values) can be passed to `cmake`:
| Flag | Description |
| --- | --- |
| `-DWITH_SERVER=1` | Build <kbd>Servatrice</kbd> server |
| `-DWITH_CLIENT=0` | Don't build <kbd>Cockatrice</kbd> client |
| `-DWITH_ORACLE=0` | Don't build <kbd>Oracle</kbd> card database tool |
| `-DCMAKE_BUILD_TYPE=Debug` | Compile in debug mode<br> Enables extra logging output, debug symbols, and much more verbose compiler warnings |
| `-DWARNING_AS_ERROR=0` | Don't treat compilation warnings as errors in debug mode |
| `-DUPDATE_TRANSLATIONS=1` | Configure `make` to update the translation .ts files for new strings in the source code<br> **Note:** `make clean` will remove the .ts files |
| `-DTEST=1` | Enable regression tests<br> **Note:** `make test` to run tests, *googletest* will be downloaded if not available |
| `-DFORCE_USE_QT5=1` | Skip looking for Qt6 before trying to find Qt5 |
# Running
# Run
<kbd>Cockatrice</kbd> is the game client<br>
<kbd>Oracle</kbd> fetches card data<br>
<kbd>Servatrice</kbd> is the server<br>
#### Docker
You can build an image & deploy a <kbd>Servatrice</kbd> (Cockatrice server) container using [Docker](https://www.docker.com/resources/what-container/) and our Dockerfile yourself.<br>
For more details, look into our wiki section on [Setting up Servatrice](https://github.com/Cockatrice/Cockatrice/wiki/Setting-up-Servatrice#using-docker).<br>
You'll also find more hints on our **pre-build image** there, or the **docker-compose** file which will configure and run both a MySQL server and Servatrice.
# License [![GPLv2 License](https://img.shields.io/github/license/Cockatrice/Cockatrice.svg)](https://github.com/Cockatrice/Cockatrice/blob/master/LICENSE)
Cockatrice is free software, licensed under the [GPLv2](https://github.com/Cockatrice/Cockatrice/blob/master/LICENSE).
`oracle` fetches card data
`cockatrice` is the game client
`servatrice` is the server

57
TODO.md Normal file
View file

@ -0,0 +1,57 @@
#TODOs
This is an unordered list of possible todo items for Cockatrice.
Note that "improve" and "write" always also means: "document and comment"
##Docs
* Improve README.md, it is very minimalistic and technical
##Improve packaging:
* Add SSL libraries to Windows build to support https links in oracle.exe
* Improve nsis file git hash extraction, it only works if the build directory is cleared as version_string.cpp does not seem to get updated by git pull/cmake
* Fix prepareMacRelease.sh to use default installation paths for Qt and protobuf
* Add Mac compile+package howto to the documentation
* Create script/... for creating Linux packages (deb, rpm, ebuild, ...) or at least an official tarball/git tags; package maintainers dislike using git snapshots so much that they rather ignore software without stable tarballs.
* Move everything package related into one directory
##Scripts
* Write example init script for servatrice.
##Webinterface
* Write a default cgi webinterface in some language for the servatrice database. Keep it simple and think about SQL-injections and other security risks - especially if you do it in PHP :-P
##Improve usermanual:
* Improve Layout, Text, Screenshots; nearly everything is still quick n dirty copy and paste.
* Add missing TODOs
* Translate the Documentation
* Include faq.txt and shortcuts.txt in usermanual, then remove them.
* Rename the picture filenames to something more meaningful.
* Create an index, lists of tables/figures/...
## Storage
* Find a better place for sets.xml than doc.
##Create developer documentation:
* Create developer manual
* Add comments to code
* Describe which components exist and how they work and interact
* Describe the *.proto files
* Comment and document servatrice.sql
* Document everything!1!!
* Coding guidelines
##Else
* Update SFMT library (http://www.math.sci.hiroshima-u.ac.jp/~m-mat@math.sci.hiroshima-u.ac.jp/MT/SFMT/) in common/sfmt and adapt common/rng_sfmt.cpp
* Prepare to update to Qt5, as Qt4 will die some day. See http://qt-project.org/wiki/Transition_from_Qt_4.x_to_Qt5 for relevant information.
* Move hardcoded URLs (especially from oracle and cockatrice) into a config file.
* Update the oracle to find all MtG extensions by itself, why the need for sets.xml when the oracle could ask the Gatherer or magiccards.info directly for this information?
* Update the oracle with some intelligence or improve it otherwise to deal with changes from the Gatherer.
* Remove cockatrice/resources/mtgforum.png as it is unused. Find other dead files or dead references to websites and files in the program code and documentation.
* Search git log for useful information/problems/bugs/...

View file

@ -1,54 +0,0 @@
on run argv
set image_name to item 1 of argv
tell application "Finder"
tell disk image_name
-- wait for the image to finish mounting
set open_attempts to 0
repeat while open_attempts < 4
try
open
delay 1
set open_attempts to 5
close
on error errStr number errorNumber
set open_attempts to open_attempts + 1
delay 10
end try
end repeat
delay 5
-- open the image the first time and save a DS_Store with just
-- background and icon setup
open
set current view of container window to icon view
set theViewOptions to the icon view options of container window
set background picture of theViewOptions to file ".background:background.tif"
set arrangement of theViewOptions to not arranged
set icon size of theViewOptions to 128
delay 5
close
-- next setup the position of the app and Applications symlink
-- plus hide all the window decoration
open
update without registering applications
tell container window
set sidebar width to 0
set statusbar visible to false
set toolbar visible to false
set the bounds to { 400, 100, 1400, 922 }
set position of item "Cockatrice.app" to { 139, 214 }
set position of item "Oracle.app" to { 139, 414 }
set position of item "Servatrice.app" to { 139, 614 }
set position of item "Applications" to { 861, 414 }
end tell
update without registering applications
delay 5
close
end tell
delay 1
end tell
end run

View file

@ -1,18 +0,0 @@
# Find the LibExecinfo library - FreeBSD only
find_path(LIBEXECINFO_INCLUDE_DIR execinfo.h)
find_library(LIBEXECINFO_LIBRARY NAMES execinfo)
if(LIBEXECINFO_INCLUDE_DIR AND LIBEXECINFO_LIBRARY)
set(LIBEXECINFO_FOUND TRUE)
endif()
if(LIBEXECINFO_FOUND)
if(NOT LIBEXECINFO_FIND_QUIETLY)
message(STATUS "Found LibExecinfo: ${EXECINFO_LIBRARY}")
endif()
else()
if(LIBEXECINFO_FIND_REQUIRED)
message(FATAL_ERROR "Could not find LibExecinfo")
endif()
endif()

View file

@ -1,118 +0,0 @@
# Find a compatible Qt version
# Inputs: WITH_SERVER, WITH_CLIENT, WITH_ORACLE, FORCE_USE_QT5
# Optional Input: QT6_DIR -- Hint as to where Qt6 lives on the system
# Optional Input: QT5_DIR -- Hint as to where Qt5 lives on the system
# Output: COCKATRICE_QT_VERSION_NAME -- Example values: Qt5, Qt6
# Output: SERVATRICE_QT_MODULES
# Output: COCKATRICE_QT_MODULES
# Output: ORACLE_QT_MODULES
# Output: TEST_QT_MODULES
set(REQUIRED_QT_COMPONENTS Core)
if(WITH_SERVER)
set(_SERVATRICE_NEEDED Network Sql WebSockets)
endif()
if(WITH_CLIENT)
set(_COCKATRICE_NEEDED
Concurrent
Gui
Multimedia
Network
PrintSupport
Svg
WebSockets
Widgets
Xml
)
endif()
if(WITH_ORACLE)
set(_ORACLE_NEEDED Concurrent Network Svg Widgets)
endif()
if(TEST)
# Union of Qt modules required across all test targets (independent of application targets).
# When adding a new test that needs additional Qt modules, add them here rather than in the test's CMakeLists.txt.
set(_TEST_NEEDED Concurrent Network Svg Widgets)
endif()
set(REQUIRED_QT_COMPONENTS ${REQUIRED_QT_COMPONENTS} ${_SERVATRICE_NEEDED} ${_COCKATRICE_NEEDED} ${_ORACLE_NEEDED}
${_TEST_NEEDED}
)
list(REMOVE_DUPLICATES REQUIRED_QT_COMPONENTS)
if(NOT FORCE_USE_QT5)
# Linguist is now a component in Qt6 instead of an external package
find_package(
Qt6 6.4.2
COMPONENTS ${REQUIRED_QT_COMPONENTS} Linguist
QUIET HINTS ${Qt6_DIR}
)
endif()
if(Qt6_FOUND)
set(COCKATRICE_QT_VERSION_NAME Qt6)
list(FIND Qt6LinguistTools_TARGETS Qt6::lrelease QT6_LRELEASE_INDEX)
if(QT6_LRELEASE_INDEX EQUAL -1)
message(WARNING "Qt6 lrelease not found.")
endif()
list(FIND Qt6LinguistTools_TARGETS Qt6::lupdate QT6_LUPDATE_INDEX)
if(QT6_LUPDATE_INDEX EQUAL -1)
message(WARNING "Qt6 lupdate not found.")
endif()
else()
find_package(
Qt5 5.15.2
COMPONENTS ${REQUIRED_QT_COMPONENTS}
QUIET HINTS ${Qt5_DIR}
)
if(Qt5_FOUND)
set(COCKATRICE_QT_VERSION_NAME Qt5)
else()
message(FATAL_ERROR "No suitable version of Qt was found")
endif()
# Qt5 Linguist is in a separate package
find_package(Qt5LinguistTools QUIET)
if(Qt5LinguistTools_FOUND)
if(NOT Qt5_LRELEASE_EXECUTABLE)
message(WARNING "Qt5 lrelease not found.")
endif()
if(NOT Qt5_LUPDATE_EXECUTABLE)
message(WARNING "Qt5 lupdate not found.")
endif()
else()
message(WARNING "Linguist Tools not found, cannot handle translations")
endif()
endif()
if(Qt5_POSITION_INDEPENDENT_CODE OR Qt6_FOUND)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
endif()
# Establish Qt Plugins directory & Library directories
get_target_property(QT_LIBRARY_DIR ${COCKATRICE_QT_VERSION_NAME}::Core LOCATION)
get_filename_component(QT_LIBRARY_DIR ${QT_LIBRARY_DIR} DIRECTORY)
if(Qt6_FOUND)
get_filename_component(QT_PLUGINS_DIR "${Qt6Core_DIR}/../../../${QT6_INSTALL_PLUGINS}" ABSOLUTE)
get_filename_component(QT_LIBRARY_DIR "${QT_LIBRARY_DIR}/../../.." ABSOLUTE)
if(UNIX AND APPLE)
# Mac needs a bit more help finding all necessary components
list(APPEND QT_LIBRARY_DIR "/usr/local/lib")
endif()
elseif(Qt5_FOUND)
get_filename_component(QT_PLUGINS_DIR "${Qt5Core_DIR}/../../../plugins" ABSOLUTE)
get_filename_component(QT_LIBRARY_DIR "${QT_LIBRARY_DIR}/.." ABSOLUTE)
endif()
message(DEBUG "QT_PLUGINS_DIR = ${QT_PLUGINS_DIR}")
message(DEBUG "QT_LIBRARY_DIR = ${QT_LIBRARY_DIR}")
# Establish exports
string(REGEX REPLACE "([^;]+)" "${COCKATRICE_QT_VERSION_NAME}::\\1" SERVATRICE_QT_MODULES "${_SERVATRICE_NEEDED}")
string(REGEX REPLACE "([^;]+)" "${COCKATRICE_QT_VERSION_NAME}::\\1" COCKATRICE_QT_MODULES "${_COCKATRICE_NEEDED}")
string(REGEX REPLACE "([^;]+)" "${COCKATRICE_QT_VERSION_NAME}::\\1" ORACLE_QT_MODULES "${_ORACLE_NEEDED}")
string(REGEX REPLACE "([^;]+)" "${COCKATRICE_QT_VERSION_NAME}::\\1" TEST_QT_MODULES "${_TEST_NEEDED}")
# Core-only export (useful for headless libs)
set(QT_CORE_MODULE "${COCKATRICE_QT_VERSION_NAME}::Core")
message(STATUS "Found Qt ${${COCKATRICE_QT_VERSION_NAME}_VERSION} at: ${${COCKATRICE_QT_VERSION_NAME}_DIR}")

View file

@ -1,42 +0,0 @@
# Find the MS Visual Studio VC redistributable package
if(WIN32)
set(VCREDISTRUNTIME_FOUND "NO")
if(CMAKE_SIZEOF_VOID_P EQUAL 8) # 64-bit
set(REDIST_ARCH x64)
else()
set(REDIST_ARCH x86)
endif()
# VS 2017 uses vcredist_ARCH.exe, VS 2022 uses vc_redist.ARCH.exe
set(REDIST_FILE_NAMES vcredist_${REDIST_ARCH}.exe vcredist.${REDIST_ARCH}.exe vc_redist.${REDIST_ARCH}.exe)
set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP TRUE)
include(InstallRequiredSystemLibraries)
# Check if the list contains minimum one element, to get the path from
list(LENGTH CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS libsCount)
if(libsCount GREATER 0)
list(GET CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS 0 _path)
get_filename_component(_path ${_path} DIRECTORY)
get_filename_component(_path ${_path}/../../ ABSOLUTE)
foreach(redist_file ${REDIST_FILE_NAMES})
if(EXISTS "${_path}/${redist_file}")
set(VCREDISTRUNTIME_FOUND "YES")
set(VCREDISTRUNTIME_FILE ${_path}/${redist_file})
break()
endif()
endforeach()
endif()
if(VCREDISTRUNTIME_FOUND)
message(STATUS "Found VCredist ${VCREDISTRUNTIME_FILE}")
else()
message(
WARNING "Could not find VCredist package. It's not required for compiling, but needs to be available at runtime."
)
endif()
endif()

View file

@ -1,38 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>${MACOSX_BUNDLE_EXECUTABLE_NAME}</string>
<key>CFBundleGetInfoString</key>
<string>${MACOSX_BUNDLE_INFO_STRING}</string>
<key>CFBundleIconFile</key>
<string>${MACOSX_BUNDLE_ICON_FILE}</string>
<key>CFBundleIdentifier</key>
<string>${MACOSX_BUNDLE_GUI_IDENTIFIER}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleLongVersionString</key>
<string>${MACOSX_BUNDLE_LONG_VERSION_STRING}</string>
<key>CFBundleName</key>
<string>${MACOSX_BUNDLE_BUNDLE_NAME}</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>${MACOSX_BUNDLE_SHORT_VERSION_STRING}</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>${MACOSX_BUNDLE_BUNDLE_VERSION}</string>
<key>CSResourcesFileMapped</key>
<true/>
<key>LSRequiresCarbon</key>
<true/>
<key>NSHumanReadableCopyright</key>
<string>${MACOSX_BUNDLE_COPYRIGHT}</string>
<key>NSHighResolutionCapable</key>
<true/>
</dict>
</plist>

View file

@ -1,2 +0,0 @@
!define NSIS_SOURCE_PATH "@PROJECT_SOURCE_DIR@"
!define NSIS_IS_64_BIT @TRICE_IS_64_BIT@

View file

@ -1,426 +0,0 @@
!include ..\..\..\NSIS.definitions.nsh
Name "@CPACK_PACKAGE_NAME@"
BrandingText "@CPACK_PACKAGE_FILE_NAME@"
OutFile "@CPACK_TOPLEVEL_DIRECTORY@/@CPACK_OUTPUT_FILE_NAME@"
!define INST_DIR "@CPACK_TEMPORARY_DIRECTORY@"
RequestExecutionlevel admin
SetCompressor LZMA
Var NormalDestDir
Var PortableDestDir
Var PortableMode
Var ReinstallMode
!include LogicLib.nsh
!include FileFunc.nsh
!include MUI2.nsh
!include x64.nsh
!define MUI_ABORTWARNING
!define MUI_WELCOMEFINISHPAGE_BITMAP "${NSIS_SOURCE_PATH}\cmake\leftimage.bmp"
!define MUI_UNWELCOMEFINISHPAGE_BITMAP "${NSIS_SOURCE_PATH}\cmake\leftimage.bmp"
!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_BITMAP "${NSIS_SOURCE_PATH}\cmake\headerimage.bmp"
!define MUI_HEADERIMAGE_UNBITMAP "${NSIS_SOURCE_PATH}\cmake\headerimage.bmp"
!define MUI_WELCOMEPAGE_TEXT "This wizard will guide you through the installation of Cockatrice.$\r$\n$\r$\nClick Next to continue."
!define MUI_FINISHPAGE_RUN "$INSTDIR/cockatrice.exe"
!define MUI_FINISHPAGE_RUN_TEXT "Run 'Cockatrice' now"
!define MUI_ICON "${NSIS_SOURCE_PATH}\cockatrice\resources\appicon.ico"
!define MUI_PAGE_CUSTOMFUNCTION_PRE SkipIfReinstall
!insertmacro MUI_PAGE_WELCOME
!define MUI_PAGE_CUSTOMFUNCTION_PRE SkipIfReinstall
!insertmacro MUI_PAGE_LICENSE "${NSIS_SOURCE_PATH}\LICENSE"
Page Custom PortableModePageCreate PortableModePageLeave
!define MUI_PAGE_CUSTOMFUNCTION_PRE componentsPagePre
!insertmacro MUI_PAGE_COMPONENTS
!define MUI_PAGE_CUSTOMFUNCTION_PRE SkipIfReinstall
!insertmacro MUI_PAGE_DIRECTORY
!define MUI_PAGE_CUSTOMFUNCTION_PRE SkipIfReinstall
!insertmacro MUI_PAGE_INSTFILES
!define MUI_PAGE_CUSTOMFUNCTION_PRE SkipIfReinstall
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_COMPONENTS
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_UNPAGE_FINISH
!insertmacro MUI_LANGUAGE English
Function .onInit
${If} ${NSIS_IS_64_BIT} == 1 #NSIS 64bit
${IfNot} ${RunningX64}
MessageBox MB_OK|MB_ICONSTOP "This version of Cockatrice requires a 64-bit Windows system."
Abort
${EndIf}
StrCpy $NormalDestDir "$ProgramFiles64\Cockatrice"
SetRegView 64
${Else} #NSIS 32bit
${If} ${RunningX64}
MessageBox MB_OK|MB_ICONEXCLAMATION \
"You are about to install a 32-bit version of Cockatrice on a 64-bit Windows system.$\n\
We advise you to use the correct 64-bit installer instead to get around potential issues.$\n$\n\
Download from our webpage: https://cockatrice.github.io"
${EndIf}
StrCpy $NormalDestDir "$ProgramFiles\Cockatrice"
${EndIf}
StrCpy $PortableDestDir "$Desktop\CockatricePortable"
${GetParameters} $9
ClearErrors
${GetOptions} $9 "/?" $8
${IfNot} ${Errors}
MessageBox MB_ICONINFORMATION|MB_SETFOREGROUND "\
/PORTABLE : Install in portable mode$\n\
/S : Silent install$\n\
/R : Silent upgrade$\n\
/D=%directory% : Specify destination directory$\n"
Quit
${EndIf}
ClearErrors
${GetOptions} $9 "/PORTABLE" $8
${IfNot} ${Errors}
StrCpy $PortableMode 1
StrCpy $0 $PortableDestDir
${Else}
StrCpy $PortableMode 0
StrCpy $0 $NormalDestDir
${If} ${Silent}
Call RequireAdmin
${EndIf}
${EndIf}
ClearErrors
${GetOptions} $9 "/R" $8
${IfNot} ${Errors}
StrCpy $ReinstallMode 1
SetSilent silent
SetAutoClose true
${Else}
StrCpy $ReinstallMode 0
${EndIf}
${If} $InstDir == ""
; User did not use /D to specify a directory,
; we need to set a default based on the install mode
StrCpy $InstDir $0
${EndIf}
Call SetModeDestinationFromInstdir
; --- Detect portable install when using /R ---
${If} $ReinstallMode = 1
IfFileExists "$InstDir\portable.dat" 0 not_portable
StrCpy $PortableMode 1
Goto portable_done
not_portable:
StrCpy $PortableMode 0
portable_done:
${EndIf}
${If} $ReinstallMode = 1
Call AutoUninstallIfNeeded
${EndIf}
FunctionEnd
Function un.onInit
${If} ${NSIS_IS_64_BIT} == 1
SetRegView 64
${EndIf}
FunctionEnd
Function RequireAdmin
UserInfo::GetAccountType
Pop $8
${If} $8 != "admin"
MessageBox MB_ICONSTOP "You need administrator rights to install Cockatrice"
SetErrorLevel 740 ;ERROR_ELEVATION_REQUIRED
Abort
${EndIf}
FunctionEnd
Function SetModeDestinationFromInstdir
${If} $PortableMode = 0
StrCpy $NormalDestDir $InstDir
${Else}
StrCpy $PortableDestDir $InstDir
${EndIf}
FunctionEnd
Function SkipIfReinstall
${If} $ReinstallMode = 1
Abort
${EndIf}
FunctionEnd
Function AutoUninstallIfNeeded
SetShellVarContext all
; --- 32-bit uninstall ---
SetRegView 32
ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "QuietUninstallString"
StrCmp $R0 "" done32
DetailPrint "Removing previous version (32-bit)..."
ExecWait '$R0'
done32:
; --- 64-bit uninstall ---
${If} ${RunningX64}
SetRegView 64
ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "QuietUninstallString"
StrCmp $R0 "" done64
DetailPrint "Removing previous version (64-bit)..."
ExecWait '$R0'
done64:
${EndIf}
FunctionEnd
Function PortableModePageCreate
${If} $ReinstallMode = 1
Abort
${EndIf}
Call SetModeDestinationFromInstdir ; If the user clicks BACK on the directory page we will remember their mode specific directory
!insertmacro MUI_HEADER_TEXT "Install Mode" "Choose how you want to install Cockatrice."
nsDialogs::Create 1018
Pop $0
${NSD_CreateLabel} 0 10u 100% 24u "Select install mode:"
Pop $0
${NSD_CreateRadioButton} 30u 50u -30u 8u "Normal installation"
Pop $1
${NSD_CreateRadioButton} 30u 70u -30u 8u "Portable mode (all files in a single folder)"
Pop $2
${If} $PortableMode = 0
SendMessage $1 ${BM_SETCHECK} ${BST_CHECKED} 0
${Else}
SendMessage $2 ${BM_SETCHECK} ${BST_CHECKED} 0
${EndIf}
nsDialogs::Show
FunctionEnd
Function PortableModePageLeave
${NSD_GetState} $1 $0
${If} $0 <> ${BST_UNCHECKED}
StrCpy $PortableMode 0
StrCpy $InstDir $NormalDestDir
Call RequireAdmin
${Else}
StrCpy $PortableMode 1
StrCpy $InstDir $PortableDestDir
${EndIf}
FunctionEnd
Function componentsPagePre
${If} $ReinstallMode = 1
Return
${EndIf}
${If} $PortableMode = 0
SetShellVarContext all
# uninstall 32bit version
SetRegView 32
ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "UninstallString"
StrCmp $R0 "" done32
${If} $ReinstallMode = 0
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION "A previous version of Cockatrice must be uninstalled before installing the new one." IDOK uninst32
Abort
${Else}
Goto uninst32
${EndIf}
uninst32:
ClearErrors
ExecWait "$R0"
done32:
# uninstall 64bit version
${If} ${NSIS_IS_64_BIT} == 1
SetRegView 64
ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "UninstallString"
StrCmp $R0 "" done64
${If} $ReinstallMode = 0
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION "A previous version of Cockatrice must be uninstalled before installing the new one." IDOK uninst64
Abort
${Else}
Goto uninst64
${EndIf}
uninst64:
ClearErrors
ExecWait "$R0"
done64:
${EndIf}
${Else}
Abort
${EndIf}
FunctionEnd
Section "Application" SecApplication
SetShellVarContext all
SetOutPath "$INSTDIR"
${If} $PortableMode = 1
${AndIf} ${FileExists} "$INSTDIR\portable.dat"
; upgrade portable mode
RMDir /r "$INSTDIR\plugins"
RMDir /r "$INSTDIR\sounds"
RMDir /r "$INSTDIR\themes"
RMDir /r "$INSTDIR\translations"
Delete "$INSTDIR\uninstall.exe"
Delete "$INSTDIR\cockatrice.exe"
Delete "$INSTDIR\oracle.exe"
Delete "$INSTDIR\servatrice.exe"
Delete "$INSTDIR\Qt*.dll"
Delete "$INSTDIR\libmysql.dll"
Delete "$INSTDIR\icu*.dll"
Delete "$INSTDIR\libeay32.dll"
Delete "$INSTDIR\ssleay32.dll"
Delete "$INSTDIR\qt.conf"
Delete "$INSTDIR\qdebug.txt"
Delete "$INSTDIR\servatrice.sql"
Delete "$INSTDIR\servatrice.ini.example"
Delete "$INSTDIR\zlib*.dll"
RMDir "$INSTDIR"
${EndIf}
@CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS@
@CPACK_NSIS_FULL_INSTALL@
${If} $PortableMode = 0
WriteUninstaller "$INSTDIR\uninstall.exe"
${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2
IntFmt $0 "0x%08X" $0
; Enable Windows User-Mode Dumps
; https://learn.microsoft.com/en-us/windows/win32/wer/collecting-user-mode-dumps
WriteRegExpandStr HKLM "Software\Microsoft\Windows\Windows Error Reporting\LocalDumps\cockatrice.exe" "DumpFolder" "%LOCALAPPDATA%\CrashDumps\Cockatrice"
WriteRegDWORD HKLM "Software\Microsoft\Windows\Windows Error Reporting\LocalDumps\cockatrice.exe" "DumpCount" "5"
WriteRegDWORD HKLM "Software\Microsoft\Windows\Windows Error Reporting\LocalDumps\cockatrice.exe" "DumpType" "2"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "DisplayIcon" "$INSTDIR\cockatrice.exe"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "DisplayName" "Cockatrice"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "DisplayVersion" "@CPACK_PACKAGE_VERSION_MAJOR@.@CPACK_PACKAGE_VERSION_MINOR@.@CPACK_PACKAGE_VERSION_PATCH@"
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "EstimatedSize" "$0"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "InstallLocation" "$INSTDIR"
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "NoModify" "1"
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "NoRepair" "1"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "Publisher" "Cockatrice team"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "UninstallString" "$\"$INSTDIR\uninstall.exe$\""
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "VersionMajor" "@CPACK_PACKAGE_VERSION_MAJOR@"
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice" "VersionMinor" "@CPACK_PACKAGE_VERSION_MINOR@"
IfFileExists "$INSTDIR\vc_redist.x86.exe" VcRedist86Exists PastVcRedist86Check
VcRedist86Exists:
ExecWait '"$INSTDIR\vc_redist.x86.exe" /passive /norestart'
DetailPrint "Wait to ensure unlock of vc_redist file after installation..."
Sleep 3000
Delete "$INSTDIR\vc_redist.x86.exe"
PastVcRedist86Check:
IfFileExists "$INSTDIR\vc_redist.x64.exe" VcRedist64Exists PastVcRedist64Check
VcRedist64Exists:
ExecWait '"$INSTDIR\vc_redist.x64.exe" /passive /norestart'
DetailPrint "Sleep to ensure unlock of vc_redist file after installation..."
Sleep 3000
Delete "$INSTDIR\vc_redist.x64.exe"
PastVcRedist64Check:
${Else}
; Create the file the application uses to detect portable mode
FileOpen $0 "$INSTDIR\portable.dat" w
FileWrite $0 "PORTABLE"
FileClose $0
${EndIf}
${If} $ReinstallMode = 1
IfFileExists "$INSTDIR\cockatrice.exe" 0 +2
Exec '"$INSTDIR\cockatrice.exe"'
${EndIf}
SectionEnd
Section "Start menu item" SecStartMenu
${If} $PortableMode = 0
SetShellVarContext all
createDirectory "$SMPROGRAMS\Cockatrice"
createShortCut "$SMPROGRAMS\Cockatrice\Cockatrice.lnk" "$INSTDIR\cockatrice.exe"
createShortCut "$SMPROGRAMS\Cockatrice\Oracle.lnk" "$INSTDIR\oracle.exe"
createShortCut "$SMPROGRAMS\Cockatrice\Servatrice.lnk" "$INSTDIR\servatrice.exe"
${EndIf}
SectionEnd
Section "un.Application" UnSecApplication
SetShellVarContext all
RMDir /r "$INSTDIR\plugins"
RMDir /r "$INSTDIR\sounds"
RMDir /r "$INSTDIR\themes"
RMDir /r "$INSTDIR\translations"
Delete "$INSTDIR\*.exe"
Delete "$INSTDIR\*.dll"
Delete "$INSTDIR\qt.conf"
Delete "$INSTDIR\qdebug.txt"
Delete "$INSTDIR\servatrice.sql"
Delete "$INSTDIR\servatrice.ini.example"
RMDir "$INSTDIR"
RMDir "$SMPROGRAMS\Cockatrice"
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cockatrice"
SectionEnd
; unselected because it is /o
Section /o "un.Configurations, decks, cards, pics" UnSecConfiguration
SetShellVarContext current
DeleteRegKey HKCU "Software\Cockatrice"
RMDir /r "$LOCALAPPDATA\Cockatrice"
SectionEnd
LangString DESC_SecApplication ${LANG_ENGLISH} "Cockatrice program files"
LangString DESC_SecStartMenu ${LANG_ENGLISH} "Create start menu items for Cockatrice and Oracle."
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${SecApplication} $(DESC_SecApplication)
!insertmacro MUI_DESCRIPTION_TEXT ${SecStartMenu} $(DESC_SecStartMenu)
!insertmacro MUI_FUNCTION_DESCRIPTION_END
LangString DESC_UnSecApplication ${LANG_ENGLISH} "Cockatrice program files and start menu items"
LangString DESC_UnSecConfiguration ${LANG_ENGLISH} "Configurations, decks, card database, pictures"
!insertmacro MUI_UNFUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${UnSecApplication} $(DESC_UnSecApplication)
!insertmacro MUI_DESCRIPTION_TEXT ${UnSecConfiguration} $(DESC_UnSecConfiguration)
!insertmacro MUI_UNFUNCTION_DESCRIPTION_END

View file

@ -1,27 +0,0 @@
# This script re-signs all apps after CPack packages them. This is necessary because CPack modifies
# the library references used by Cockatrice to App relative paths, invalidating the code signature.
string(LENGTH "$ENV{MACOS_CERTIFICATE_NAME}" MACOS_CERTIFICATE_NAME_LEN)
if(APPLE AND MACOS_CERTIFICATE_NAME_LEN GREATER 0)
set(APPLICATIONS "cockatrice" "servatrice" "oracle")
foreach(app_name IN LISTS APPLICATIONS)
set(FULL_APP_PATH "${CPACK_TEMPORARY_INSTALL_DIRECTORY}/${app_name}.app")
message(STATUS "Signing Interior Dynamically Loaded Libraries for ${app_name}.app")
execute_process(COMMAND "find" "${FULL_APP_PATH}" "-name" "*.dylib" OUTPUT_VARIABLE INTERIOR_DLLS)
string(REPLACE "\n" ";" INTERIOR_DLLS_LIST ${INTERIOR_DLLS})
foreach(INTERIOR_DLL IN LISTS INTERIOR_DLLS_LIST)
execute_process(
COMMAND "codesign" "--sign" "$ENV{MACOS_CERTIFICATE_NAME}" "--entitlements" "../.ci/macos.entitlements"
"--options" "runtime" "--force" "--deep" "--timestamp" "--verbose" "${INTERIOR_DLL}"
)
endforeach()
message(STATUS "Signing Exterior Applications ${app_name}.app")
execute_process(
COMMAND "codesign" "--sign" "$ENV{MACOS_CERTIFICATE_NAME}" "--entitlements" "../.ci/macos.entitlements"
"--options" "runtime" "--force" "--deep" "--timestamp" "--verbose" "${FULL_APP_PATH}"
)
endforeach()
endif()

View file

@ -1,24 +0,0 @@
set(VERSION_STRING_CPP "${PROJECT_BINARY_DIR}/version_string.cpp")
set(VERSION_STRING_H "${PROJECT_BINARY_DIR}/version_string.h")
include_directories(${PROJECT_BINARY_DIR})
set(hstring
"extern const char *VERSION_STRING\;
extern const char *VERSION_COMMIT\;
extern const char *VERSION_DATE\;\n"
)
set(cppstring
"const char *VERSION_STRING = \"${PROJECT_VERSION_FRIENDLY}\"\;
const char *VERSION_COMMIT = \"${GIT_COMMIT_ID}\"\;
const char *VERSION_DATE = \"${GIT_COMMIT_DATE_FRIENDLY}\"\;\n"
)
file(WRITE ${PROJECT_BINARY_DIR}/version_string.cpp.txt ${cppstring})
file(WRITE ${PROJECT_BINARY_DIR}/version_string.h.txt ${hstring})
execute_process(
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PROJECT_BINARY_DIR}/version_string.h.txt ${VERSION_STRING_H}
)
execute_process(
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PROJECT_BINARY_DIR}/version_string.cpp.txt ${VERSION_STRING_CPP}
)

Binary file not shown.

View file

@ -1,222 +0,0 @@
# HELPER FUNCTIONS
function(get_commit_id)
# get last commit hash
execute_process(
COMMAND ${GIT_EXECUTABLE} log -1 --abbrev=7 --date=short "--pretty=%h"
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
RESULT_VARIABLE res_var
OUTPUT_VARIABLE GIT_COM_ID
)
if(NOT ${res_var} EQUAL 0)
message(WARNING "Git failed (not a repo, or no tags). Build will not contain git revision info.")
return()
endif()
string(REPLACE "\n" "" GIT_COM_ID "${GIT_COM_ID}")
set(GIT_COMMIT_ID
"${GIT_COM_ID}"
PARENT_SCOPE
)
set(PROJECT_VERSION_LABEL
"custom-${GIT_COM_ID}"
PARENT_SCOPE
)
endfunction()
function(get_commit_date)
# get last commit date
execute_process(
COMMAND ${GIT_EXECUTABLE} log -1 --date=short "--pretty=%cd"
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
RESULT_VARIABLE res_var
OUTPUT_VARIABLE GIT_COM_DATE
)
if(NOT ${res_var} EQUAL 0)
message(WARNING "Git failed (not a repo, or no tags). Build will not contain git revision info.")
return()
endif()
string(REPLACE "\n" "" GIT_COM_DATE "${GIT_COM_DATE}")
set(GIT_COMMIT_DATE_FRIENDLY
"${GIT_COM_DATE}"
PARENT_SCOPE
)
string(REPLACE "-" "" GIT_COM_DATE "${GIT_COM_DATE}")
set(GIT_COMMIT_DATE
"${GIT_COM_DATE}"
PARENT_SCOPE
)
endfunction()
function(get_tag_name commit)
if(${commit} STREQUAL "unknown")
return()
endif()
execute_process(
COMMAND ${GIT_EXECUTABLE} describe --exact-match --tags ${commit}
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
RESULT_VARIABLE res_var
OUTPUT_VARIABLE GIT_TAG
ERROR_VARIABLE GIT_TAG_ERR
)
if((NOT ${res_var} EQUAL 0) OR (${GIT_TAG_ERR} MATCHES "fatal: no tag exactly matches.*"))
message(STATUS "Commit is not a release or prerelease (no git tag found)")
return()
endif()
string(REPLACE "\n" "" GIT_TAG "${GIT_TAG}")
message(STATUS "Commit is a release or prerelease, git tag: ${GIT_TAG}")
# Extract information from tag:
# YYYY-MM-DD-Release-MAJ.MIN.PATCH
# YYYY-MM-DD-Development-MAJ.MIN.PATCH-beta.X
string(REPLACE "-" ";" GIT_TAG_EXPLODED "${GIT_TAG}")
string(REPLACE "." ";" GIT_TAG_EXPLODED "${GIT_TAG_EXPLODED}")
# Sanity checks: length
list(LENGTH GIT_TAG_EXPLODED GIT_TAG_LISTCOUNT)
if(${GIT_TAG_LISTCOUNT} LESS 7 OR ${GIT_TAG_LISTCOUNT} GREATER 9)
message(WARNING "Invalid tag format, got ${GIT_TAG_LISTCOUNT} tokens")
return()
endif()
# Year
list(GET GIT_TAG_EXPLODED 0 GIT_TAG_YEAR)
if(${GIT_TAG_YEAR} LESS 2017 OR ${GIT_TAG_LISTCOUNT} GREATER 2100)
message(WARNING "Invalid tag year ${GIT_TAG_YEAR}")
return()
endif()
# Month
list(GET GIT_TAG_EXPLODED 1 GIT_TAG_MONTH)
if(${GIT_TAG_MONTH} LESS 1 OR ${GIT_TAG_MONTH} GREATER 12)
message(WARNING "Invalid tag month ${GIT_TAG_MONTH}")
return()
endif()
# Day
list(GET GIT_TAG_EXPLODED 2 GIT_TAG_DAY)
if(${GIT_TAG_DAY} LESS 1 OR ${GIT_TAG_DAY} GREATER 31)
message(WARNING "Invalid tag day ${GIT_TAG_DAY}")
return()
endif()
# Type
list(GET GIT_TAG_EXPLODED 3 GIT_TAG_TYPE)
if(NOT (${GIT_TAG_TYPE} STREQUAL "Release" OR ${GIT_TAG_TYPE} STREQUAL "Development"))
message(WARNING "Invalid tag type ${GIT_TAG_TYPE}")
return()
endif()
# Major
list(GET GIT_TAG_EXPLODED 4 GIT_TAG_MAJOR)
if(${GIT_TAG_MAJOR} LESS 0 OR ${GIT_TAG_MAJOR} GREATER 99)
message(WARNING "Invalid tag major version ${GIT_TAG_MAJOR}")
return()
endif()
# Minor
list(GET GIT_TAG_EXPLODED 5 GIT_TAG_MINOR)
if(${GIT_TAG_MINOR} LESS 0 OR ${GIT_TAG_MINOR} GREATER 99)
message(WARNING "Invalid tag minor version ${GIT_TAG_MINOR}")
return()
endif()
# Patch
list(GET GIT_TAG_EXPLODED 6 GIT_TAG_PATCH)
if(${GIT_TAG_PATCH} LESS 0 OR ${GIT_TAG_PATCH} GREATER 99)
message(WARNING "Invalid tag patch version ${GIT_TAG_PATCH}")
return()
endif()
# Label
# 7 = Stable release
# 8 = Dev release, first beta so only "beta" attached
# 9 = Dev release, subsequent beta so "beta.N" attached (N>=2)
if(${GIT_TAG_LISTCOUNT} EQUAL 8)
list(GET GIT_TAG_EXPLODED 7 GIT_TAG_LABEL)
elseif(${GIT_TAG_LISTCOUNT} EQUAL 9)
list(GET GIT_TAG_EXPLODED 7 GIT_TAG_LABEL)
list(GET GIT_TAG_EXPLODED 8 GIT_TAG_LABEL_NUM)
set(GIT_TAG_LABEL ${GIT_TAG_LABEL} ${GIT_TAG_LABEL_NUM})
string(REPLACE ";" "." GIT_TAG_LABEL "${GIT_TAG_LABEL}")
else()
set(GIT_TAG_LABEL "")
endif()
# Override hardcoded version with the informations from the tag
set(PROJECT_VERSION_MAJOR
${GIT_TAG_MAJOR}
PARENT_SCOPE
)
set(PROJECT_VERSION_MINOR
${GIT_TAG_MINOR}
PARENT_SCOPE
)
set(PROJECT_VERSION_PATCH
${GIT_TAG_PATCH}
PARENT_SCOPE
)
set(PROJECT_VERSION_LABEL
${GIT_TAG_LABEL}
PARENT_SCOPE
)
if(${GIT_TAG_TYPE} STREQUAL "Development")
set(PROJECT_VERSION_LABEL
${GIT_TAG_LABEL}
PARENT_SCOPE
)
elseif(${GIT_TAG_TYPE} STREQUAL "Release")
set(PROJECT_VERSION_LABEL
""
PARENT_SCOPE
)
# set release name from env var
set(PROJECT_VERSION_RELEASENAME
"${GIT_TAG_RELEASENAME}"
PARENT_SCOPE
)
endif()
endfunction()
# START OF MAIN
# fallback defaults
set(GIT_COMMIT_ID "unknown")
set(GIT_COMMIT_DATE "")
set(GIT_COMMIT_DATE_FRIENDLY "")
set(PROJECT_VERSION_LABEL "")
set(PROJECT_VERSION_RELEASENAME "")
find_package(Git)
if(GIT_FOUND)
get_commit_id()
get_commit_date()
get_tag_name(${GIT_COMMIT_ID})
else()
message(WARNING "Git not found. Build will not contain git revision info.")
endif()
set(PROJECT_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
if(PROJECT_VERSION_LABEL)
set(PROJECT_VERSION "${PROJECT_VERSION}-${PROJECT_VERSION_LABEL}")
endif()
set(PROJECT_VERSION_FRIENDLY "${PROJECT_VERSION} (${GIT_COMMIT_DATE_FRIENDLY})")
# Format: <program name>[-ReleaseName]-MAJ.MIN.PATCH[-prerelease_label]
set(PROJECT_VERSION_FILENAME "${PROJECT_NAME}")
if(PROJECT_VERSION_RELEASENAME)
set(PROJECT_VERSION_FILENAME "${PROJECT_VERSION_FILENAME}-${PROJECT_VERSION_RELEASENAME}")
endif()
set(PROJECT_VERSION_FILENAME "${PROJECT_VERSION_FILENAME}-${PROJECT_VERSION}")
message(STATUS "Project version: ${PROJECT_VERSION}")
message(STATUS "Friendly project version: ${PROJECT_VERSION_FRIENDLY}")
message(STATUS "Project version filename: ${PROJECT_VERSION_FILENAME}")

View file

@ -1,15 +0,0 @@
cmake_minimum_required(VERSION 3.2)
project(gtest-download LANGUAGES NONE)
include(ExternalProject)
ExternalProject_Add(googletest
URL https://github.com/google/googletest/archive/release-1.11.0.zip
URL_HASH SHA1=9ffb7b5923f4a8fcdabf2f42c6540cce299f44c0
SOURCE_DIR "${CMAKE_BINARY_DIR}/gtest-src"
BINARY_DIR "${CMAKE_BINARY_DIR}/gtest-build"
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
TEST_COMMAND ""
)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

View file

@ -1,3 +0,0 @@
#!/bin/sh
export CCACHE_CPP2=true
exec "${RULE_LAUNCH_COMPILE}" "${CMAKE_C_COMPILER}" "$@"

View file

@ -1,3 +0,0 @@
#!/bin/sh
export CCACHE_CPP2=true
exec "${RULE_LAUNCH_COMPILE}" "${CMAKE_CXX_COMPILER}" "$@"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 KiB

View file

@ -2,629 +2,216 @@
#
# provides the cockatrice binary
project(Cockatrice VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
PROJECT(cockatrice)
set(cockatrice_SOURCES
${VERSION_STRING_CPP}
# sort by alphabetical order, so that there is no debate about where to add new sources to the list
src/client/network/update/client/update_downloader.cpp
src/client/network/interfaces/deck_stats_interface.cpp
src/client/network/interfaces/tapped_out_interface.cpp
src/client/network/parsers/deck_link_to_api_transformer.cpp
src/client/network/update/client/client_update_checker.cpp
src/client/network/update/client/release_channel.cpp
src/client/network/update/card_spoiler/spoiler_background_updater.cpp
src/client/sound_engine.cpp
src/client/settings/cache_settings.cpp
src/client/settings/card_counter_settings.cpp
src/client/settings/shortcut_treeview.cpp
src/client/settings/shortcuts_settings.cpp
src/interface/deck_loader/card_node_function.cpp
src/interface/deck_loader/deck_file_format.cpp
src/interface/deck_loader/deck_loader.cpp
src/interface/deck_loader/loaded_deck.cpp
src/interface/widgets/dialogs/dlg_connect.cpp
src/interface/widgets/dialogs/dlg_convert_deck_to_cod_format.cpp
src/interface/widgets/dialogs/dlg_create_game.cpp
src/interface/widgets/dialogs/dlg_default_tags_editor.cpp
src/interface/widgets/dialogs/dlg_edit_avatar.cpp
src/interface/widgets/dialogs/dlg_edit_password.cpp
src/interface/widgets/dialogs/dlg_edit_tokens.cpp
src/interface/widgets/dialogs/dlg_edit_user.cpp
src/interface/widgets/dialogs/dlg_filter_games.cpp
src/interface/widgets/dialogs/dlg_forgot_password_challenge.cpp
src/interface/widgets/dialogs/dlg_forgot_password_request.cpp
src/interface/widgets/dialogs/dlg_forgot_password_reset.cpp
src/interface/widgets/dialogs/dlg_load_deck.cpp
src/interface/widgets/dialogs/dlg_load_deck_from_clipboard.cpp
src/interface/widgets/dialogs/dlg_load_deck_from_website.cpp
src/interface/widgets/dialogs/dlg_load_remote_deck.cpp
src/interface/widgets/dialogs/dlg_local_game_options.cpp
src/interface/widgets/dialogs/dlg_manage_sets.cpp
src/interface/widgets/dialogs/dlg_register.cpp
src/interface/widgets/dialogs/dlg_select_set_for_cards.cpp
src/interface/widgets/dialogs/dlg_settings.cpp
src/interface/widgets/dialogs/dlg_startup_card_check.cpp
src/interface/widgets/dialogs/dlg_tip_of_the_day.cpp
src/interface/widgets/dialogs/dlg_update.cpp
src/interface/widgets/dialogs/dlg_view_log.cpp
src/interface/widgets/dialogs/override_printing_warning.cpp
src/interface/widgets/dialogs/tip_of_the_day.cpp
src/filters/deck_filter_string.cpp
src/filters/filter_builder.cpp
src/filters/filter_tree_model.cpp
src/filters/syntax_help.cpp
src/game/abstract_game.cpp
src/game/board/abstract_card_drag_item.cpp
src/game/board/abstract_card_item.cpp
src/game/board/abstract_counter.cpp
src/game/board/arrow_item.cpp
src/game/board/arrow_target.cpp
src/game/board/card_drag_item.cpp
src/game/board/card_item.cpp
src/game/board/card_list.cpp
src/game/board/counter_general.cpp
src/game/board/translate_counter_name.cpp
src/game/deckview/deck_view.cpp
src/game/deckview/deck_view_container.cpp
src/game/deckview/tabbed_deck_view_container.cpp
src/game/dialogs/dlg_create_token.cpp
src/game/dialogs/dlg_move_top_cards_until.cpp
src/game/dialogs/dlg_roll_dice.cpp
src/game/game.cpp
src/game/game_event_handler.cpp
src/game/game_meta_info.cpp
src/game/game_scene.cpp
src/game/game_state.cpp
src/game/game_view.cpp
src/game/hand_counter.cpp
src/game/log/message_log_widget.cpp
src/game/phase.cpp
src/game/phases_toolbar.cpp
src/game/player/menu/card_menu.cpp
src/game/player/menu/custom_zone_menu.cpp
src/game/player/menu/grave_menu.cpp
src/game/player/menu/hand_menu.cpp
src/game/player/menu/library_menu.cpp
src/game/player/menu/move_menu.cpp
src/game/player/menu/player_menu.cpp
src/game/player/menu/pt_menu.cpp
src/game/player/menu/rfg_menu.cpp
src/game/player/menu/say_menu.cpp
src/game/player/menu/sideboard_menu.cpp
src/game/player/menu/utility_menu.cpp
src/game/player/player.cpp
src/game/player/player_actions.cpp
src/game/player/player_area.cpp
src/game/player/player_event_handler.cpp
src/game/player/player_graphics_item.cpp
src/game/player/player_info.cpp
src/game/player/player_list_widget.cpp
src/game/player/player_manager.cpp
src/game/player/player_target.cpp
src/game/replay.cpp
src/game/zones/card_zone.cpp
src/game/zones/hand_zone.cpp
src/game/zones/logic/card_zone_logic.cpp
src/game/zones/logic/hand_zone_logic.cpp
src/game/zones/logic/pile_zone_logic.cpp
src/game/zones/logic/stack_zone_logic.cpp
src/game/zones/logic/table_zone_logic.cpp
src/game/zones/logic/view_zone_logic.cpp
src/game/zones/pile_zone.cpp
src/game/zones/select_zone.cpp
src/game/zones/stack_zone.cpp
src/game/zones/table_zone.cpp
src/game/zones/view_zone.cpp
src/game/zones/view_zone_widget.cpp
src/game_graphics/board/abstract_graphics_item.cpp
src/interface/card_picture_loader/card_picture_loader.cpp
src/interface/card_picture_loader/card_picture_loader_local.cpp
src/interface/card_picture_loader/card_picture_loader_request_status_display_widget.cpp
src/interface/card_picture_loader/card_picture_loader_status_bar.cpp
src/interface/card_picture_loader/card_picture_loader_worker.cpp
src/interface/card_picture_loader/card_picture_loader_worker_work.cpp
src/interface/card_picture_loader/card_picture_to_load.cpp
src/interface/layouts/flow_layout.cpp
src/interface/layouts/overlap_layout.cpp
src/interface/widgets/utility/line_edit_completer.cpp
src/interface/pixel_map_generator.cpp
src/interface/theme_manager.cpp
src/interface/widgets/cards/additional_info/color_identity_widget.cpp
src/interface/widgets/cards/additional_info/mana_cost_widget.cpp
src/interface/widgets/cards/additional_info/mana_symbol_widget.cpp
src/interface/widgets/cards/card_group_display_widgets/card_group_display_widget.cpp
src/interface/widgets/cards/card_group_display_widgets/flat_card_group_display_widget.cpp
src/interface/widgets/cards/card_group_display_widgets/overlapped_card_group_display_widget.cpp
src/interface/widgets/cards/card_info_display_widget.cpp
src/interface/widgets/cards/card_info_frame_widget.cpp
src/interface/widgets/cards/card_info_picture_art_crop_widget.cpp
src/interface/widgets/cards/card_info_picture_enlarged_widget.cpp
src/interface/widgets/cards/card_info_picture_widget.cpp
src/interface/widgets/cards/card_info_picture_with_text_overlay_widget.cpp
src/interface/widgets/cards/card_info_text_widget.cpp
src/interface/widgets/cards/card_size_widget.cpp
src/interface/widgets/cards/deck_card_zone_display_widget.cpp
src/interface/widgets/cards/deck_preview_card_picture_widget.cpp
src/interface/widgets/deck_analytics/abstract_analytics_panel_widget.cpp
src/interface/widgets/deck_analytics/add_analytics_panel_dialog.cpp
src/interface/widgets/deck_analytics/analytics_panel_widget_factory.cpp
src/interface/widgets/deck_analytics/analytics_panel_widget_registrar.cpp
src/interface/widgets/deck_analytics/deck_analytics_widget.cpp
src/interface/widgets/deck_analytics/deck_list_statistics_analyzer.cpp
src/interface/widgets/deck_analytics/resizable_panel.cpp
src/interface/widgets/deck_analytics/analyzer_modules/draw_probability/draw_probability_config.cpp
src/interface/widgets/deck_analytics/analyzer_modules/draw_probability/draw_probability_config_dialog.cpp
src/interface/widgets/deck_analytics/analyzer_modules/draw_probability/draw_probability_widget.cpp
src/interface/widgets/deck_analytics/analyzer_modules/mana_base/mana_base_config.cpp
src/interface/widgets/deck_analytics/analyzer_modules/mana_base/mana_base_config_dialog.cpp
src/interface/widgets/deck_analytics/analyzer_modules/mana_base/mana_base_widget.cpp
src/interface/widgets/deck_analytics/analyzer_modules/mana_curve/mana_curve_config.cpp
src/interface/widgets/deck_analytics/analyzer_modules/mana_curve/mana_curve_config_dialog.cpp
src/interface/widgets/deck_analytics/analyzer_modules/mana_curve/mana_curve_widget.cpp
src/interface/widgets/deck_analytics/analyzer_modules/mana_devotion/mana_devotion_config.cpp
src/interface/widgets/deck_analytics/analyzer_modules/mana_devotion/mana_devotion_config_dialog.cpp
src/interface/widgets/deck_analytics/analyzer_modules/mana_devotion/mana_devotion_widget.cpp
src/interface/widgets/deck_analytics/analyzer_modules/mana_distribution/mana_distribution_config.cpp
src/interface/widgets/deck_analytics/analyzer_modules/mana_distribution/mana_distribution_config_dialog.cpp
src/interface/widgets/deck_analytics/analyzer_modules/mana_distribution/mana_distribution_widget.cpp
src/interface/widgets/deck_analytics/analyzer_modules/mana_distribution/mana_distribution_single_display_widget.cpp
src/interface/widgets/deck_analytics/analyzer_modules/mana_curve/mana_curve_total_widget.cpp
src/interface/widgets/deck_analytics/analyzer_modules/mana_curve/mana_curve_category_widget.cpp
src/interface/widgets/deck_editor/deck_list_history_manager_widget.cpp
src/interface/widgets/deck_editor/deck_editor_card_database_dock_widget.cpp
src/interface/widgets/deck_editor/deck_editor_card_info_dock_widget.cpp
src/interface/widgets/deck_editor/deck_editor_database_display_widget.cpp
src/interface/widgets/deck_editor/deck_editor_deck_dock_widget.cpp
src/interface/widgets/deck_editor/deck_editor_filter_dock_widget.cpp
src/interface/widgets/deck_editor/deck_editor_printing_selector_dock_widget.cpp
src/interface/widgets/deck_editor/deck_list_style_proxy.cpp
src/interface/widgets/deck_editor/deck_state_manager.cpp
src/interface/widgets/deck_editor/printing_disabled_info_widget.cpp
src/interface/widgets/general/background_sources.cpp
src/interface/widgets/general/display/background_plate_widget.cpp
src/interface/widgets/general/display/banner_widget.cpp
src/interface/widgets/general/display/dynamic_font_size_label.cpp
src/interface/widgets/general/display/dynamic_font_size_push_button.cpp
src/interface/widgets/general/display/labeled_input.cpp
src/interface/widgets/general/display/shadow_background_label.cpp
src/interface/widgets/general/display/charts/bars/bar_widget.cpp
src/interface/widgets/general/display/charts/bars/color_bar.cpp
src/interface/widgets/general/display/charts/bars/percent_bar_widget.cpp
src/interface/widgets/general/display/charts/bars/bar_chart_widget.cpp
src/interface/widgets/general/display/charts/bars/bar_chart_background_widget.cpp
src/interface/widgets/general/display/charts/bars/segmented_bar_widget.cpp
src/interface/widgets/general/display/charts/pies/color_pie.cpp
src/interface/widgets/general/home_styled_button.cpp
src/interface/widgets/general/home_widget.cpp
src/interface/widgets/general/layout_containers/flow_widget.cpp
src/interface/widgets/general/layout_containers/overlap_control_widget.cpp
src/interface/widgets/general/layout_containers/overlap_widget.cpp
src/interface/widgets/menus/deck_editor_menu.cpp
src/interface/widgets/printing_selector/all_zones_card_amount_widget.cpp
src/interface/widgets/printing_selector/card_amount_widget.cpp
src/interface/widgets/printing_selector/printing_selector.cpp
src/interface/widgets/printing_selector/printing_selector_card_display_widget.cpp
src/interface/widgets/printing_selector/printing_selector_card_overlay_widget.cpp
src/interface/widgets/printing_selector/printing_selector_placeholder_widget.cpp
src/interface/widgets/printing_selector/printing_selector_card_search_widget.cpp
src/interface/widgets/printing_selector/printing_selector_card_selection_widget.cpp
src/interface/widgets/printing_selector/printing_selector_card_sorting_widget.cpp
src/interface/widgets/printing_selector/set_name_and_collectors_number_display_widget.cpp
src/interface/widgets/quick_settings/settings_button_widget.cpp
src/interface/widgets/quick_settings/settings_popup_widget.cpp
src/interface/widgets/replay/replay_manager.cpp
src/interface/widgets/replay/replay_timeline_widget.cpp
src/interface/widgets/server/chat_view/chat_view.cpp
src/interface/widgets/server/game_selector.cpp
src/interface/widgets/server/game_selector_quick_filter_toolbar.cpp
src/interface/widgets/server/games_model.cpp
src/interface/widgets/server/handle_public_servers.cpp
src/interface/widgets/server/remote/remote_decklist_tree_widget.cpp
src/interface/widgets/server/remote/remote_replay_list_tree_widget.cpp
src/interface/widgets/server/user/user_context_menu.cpp
src/interface/widgets/server/user/user_info_box.cpp
src/interface/widgets/server/user/user_info_connection.cpp
src/interface/widgets/server/user/user_list_manager.cpp
src/interface/widgets/server/user/user_list_widget.cpp
src/interface/widgets/utility/custom_line_edit.cpp
src/interface/widgets/utility/get_text_with_max.cpp
src/interface/widgets/utility/sequence_edit.cpp
src/interface/widgets/utility/visibility_change_listener.cpp
src/interface/widgets/utility/visibility_change_listener.h
src/interface/widgets/visual_database_display/visual_database_display_color_filter_widget.cpp
src/interface/widgets/visual_database_display/visual_database_display_filter_save_load_widget.cpp
src/interface/widgets/visual_database_display/visual_database_display_filter_toolbar_widget.cpp
src/interface/widgets/visual_database_display/visual_database_display_format_legality_filter_widget.cpp
src/interface/widgets/visual_database_display/visual_database_display_main_type_filter_widget.cpp
src/interface/widgets/visual_database_display/visual_database_display_name_filter_widget.cpp
src/interface/widgets/visual_database_display/visual_database_display_set_filter_widget.cpp
src/interface/widgets/visual_database_display/visual_database_display_sub_type_filter_widget.cpp
src/interface/widgets/visual_database_display/visual_database_display_widget.cpp
src/interface/widgets/visual_database_display/visual_database_filter_display_widget.cpp
src/interface/widgets/visual_deck_editor/visual_deck_display_options_widget.cpp
src/interface/widgets/visual_deck_editor/visual_deck_editor_placeholder_widget.cpp
src/interface/widgets/visual_deck_editor/visual_deck_editor_sample_hand_widget.cpp
src/interface/widgets/visual_deck_editor/visual_deck_editor_widget.cpp
src/interface/widgets/visual_deck_storage/deck_preview/deck_preview_color_identity_filter_widget.cpp
src/interface/widgets/visual_deck_storage/deck_preview/deck_preview_deck_tags_display_widget.cpp
src/interface/widgets/visual_deck_storage/deck_preview/deck_preview_tag_addition_widget.cpp
src/interface/widgets/visual_deck_storage/deck_preview/deck_preview_tag_dialog.cpp
src/interface/widgets/visual_deck_storage/deck_preview/deck_preview_tag_display_widget.cpp
src/interface/widgets/visual_deck_storage/deck_preview/deck_preview_tag_item_widget.cpp
src/interface/widgets/visual_deck_storage/deck_preview/deck_preview_widget.cpp
src/interface/widgets/visual_deck_storage/visual_deck_storage_folder_display_widget.cpp
src/interface/widgets/visual_deck_storage/visual_deck_storage_quick_settings_widget.cpp
src/interface/widgets/visual_deck_storage/visual_deck_storage_search_widget.cpp
src/interface/widgets/visual_deck_storage/visual_deck_storage_sort_widget.cpp
src/interface/widgets/visual_deck_storage/visual_deck_storage_tag_filter_widget.cpp
src/interface/widgets/visual_deck_storage/visual_deck_storage_widget.cpp
src/interface/window_main.cpp
src/main.cpp
src/interface/widgets/tabs/abstract_tab_deck_editor.cpp
src/interface/widgets/tabs/api/archidekt/tab_archidekt.cpp
src/interface/widgets/tabs/api/archidekt/api_response/archidekt_deck_listing_api_response.cpp
src/interface/widgets/tabs/api/archidekt/api_response/archidekt_formats.h
src/interface/widgets/tabs/api/archidekt/api_response/card/archidekt_api_response_card.cpp
src/interface/widgets/tabs/api/archidekt/api_response/card/archidekt_api_response_card_entry.cpp
src/interface/widgets/tabs/api/archidekt/api_response/card/archidekt_api_response_edition.cpp
src/interface/widgets/tabs/api/archidekt/api_response/deck/archidekt_api_response_deck.cpp
src/interface/widgets/tabs/api/archidekt/api_response/deck/archidekt_api_response_deck_category.cpp
src/interface/widgets/tabs/api/archidekt/api_response/deck_listings/archidekt_api_response_deck_listing_container.cpp
src/interface/widgets/tabs/api/archidekt/api_response/deck_listings/archidekt_api_response_deck_owner.cpp
src/interface/widgets/tabs/api/archidekt/display/archidekt_api_response_deck_display_widget.cpp
src/interface/widgets/tabs/api/archidekt/display/archidekt_api_response_deck_entry_display_widget.cpp
src/interface/widgets/tabs/api/archidekt/display/archidekt_api_response_deck_listings_display_widget.cpp
src/interface/widgets/tabs/api/archidekt/display/archidekt_deck_preview_image_display_widget.cpp
src/interface/widgets/tabs/api/edhrec/api_response/archidekt_links/edhrec_api_response_archidekt_links.cpp
src/interface/widgets/tabs/api/edhrec/api_response/average_deck/edhrec_average_deck_api_response.cpp
src/interface/widgets/tabs/api/edhrec/api_response/average_deck/edhrec_deck_api_response.cpp
src/interface/widgets/tabs/api/edhrec/api_response/card_prices/edhrec_api_response_card_prices.cpp
src/interface/widgets/tabs/api/edhrec/api_response/cards/edhrec_api_response_card_container.cpp
src/interface/widgets/tabs/api/edhrec/api_response/cards/edhrec_api_response_card_details.cpp
src/interface/widgets/tabs/api/edhrec/api_response/cards/edhrec_api_response_card_list.cpp
src/interface/widgets/tabs/api/edhrec/api_response/cards/edhrec_commander_api_response_commander_details.cpp
src/interface/widgets/tabs/api/edhrec/api_response/commander/edhrec_commander_api_response.cpp
src/interface/widgets/tabs/api/edhrec/api_response/commander/edhrec_commander_api_response_average_deck_statistics.cpp
src/interface/widgets/tabs/api/edhrec/api_response/top_cards/edhrec_top_cards_api_response.cpp
src/interface/widgets/tabs/api/edhrec/api_response/top_commanders/edhrec_top_commanders_api_response.cpp
src/interface/widgets/tabs/api/edhrec/api_response/top_tags/edhrec_top_tags_api_response.cpp
src/interface/widgets/tabs/api/edhrec/display/card_prices/edhrec_api_response_card_prices_display_widget.cpp
src/interface/widgets/tabs/api/edhrec/display/cards/edhrec_api_response_card_details_display_widget.cpp
src/interface/widgets/tabs/api/edhrec/display/cards/edhrec_api_response_card_inclusion_display_widget.cpp
src/interface/widgets/tabs/api/edhrec/display/cards/edhrec_api_response_card_list_display_widget.cpp
src/interface/widgets/tabs/api/edhrec/display/cards/edhrec_api_response_card_synergy_display_widget.cpp
src/interface/widgets/tabs/api/edhrec/display/commander/edhrec_api_response_commander_details_display_widget.cpp
src/interface/widgets/tabs/api/edhrec/display/commander/edhrec_commander_api_response_display_widget.cpp
src/interface/widgets/tabs/api/edhrec/display/commander/edhrec_commander_api_response_navigation_widget.cpp
src/interface/widgets/tabs/api/edhrec/display/top_cards/edhrec_top_cards_api_response_display_widget.cpp
src/interface/widgets/tabs/api/edhrec/display/top_commander/edhrec_top_commanders_api_response_display_widget.cpp
src/interface/widgets/tabs/api/edhrec/display/top_tags/edhrec_top_tags_api_response_display_widget.cpp
src/interface/widgets/tabs/api/edhrec/tab_edhrec.cpp
src/interface/widgets/tabs/api/edhrec/tab_edhrec_main.cpp
src/interface/widgets/tabs/tab.cpp
src/interface/widgets/tabs/tab_account.cpp
src/interface/widgets/tabs/tab_admin.cpp
src/interface/widgets/tabs/tab_deck_editor.cpp
src/interface/widgets/tabs/tab_deck_storage.cpp
src/interface/widgets/tabs/tab_game.cpp
src/interface/widgets/tabs/tab_home.cpp
src/interface/widgets/tabs/tab_logs.cpp
src/interface/widgets/tabs/tab_message.cpp
src/interface/widgets/tabs/tab_replays.cpp
src/interface/widgets/tabs/tab_room.cpp
src/interface/widgets/tabs/tab_server.cpp
src/interface/widgets/tabs/tab_supervisor.cpp
src/interface/widgets/tabs/tab_visual_database_display.cpp
src/interface/widgets/tabs/visual_deck_editor/tab_deck_editor_visual.cpp
src/interface/widgets/tabs/visual_deck_editor/tab_deck_editor_visual_tab_widget.cpp
src/interface/widgets/tabs/visual_deck_storage/tab_deck_storage_visual.cpp
src/interface/key_signals.cpp
src/interface/logger.cpp
src/interface/widgets/tabs/api/edhrec/display/commander/edhrec_commander_api_response_bracket_navigation_widget.cpp
src/interface/widgets/tabs/api/edhrec/display/commander/edhrec_commander_api_response_bracket_navigation_widget.h
src/interface/widgets/tabs/api/edhrec/display/commander/edhrec_commander_api_response_budget_navigation_widget.cpp
src/interface/widgets/tabs/api/edhrec/display/commander/edhrec_commander_api_response_budget_navigation_widget.h
SET(cockatrice_SOURCES
src/abstractcounter.cpp
src/counter_general.cpp
src/dlg_creategame.cpp
src/dlg_filter_games.cpp
src/dlg_connect.cpp
src/dlg_create_token.cpp
src/dlg_edit_tokens.cpp
src/abstractclient.cpp
src/remoteclient.cpp
src/main.cpp
src/window_main.cpp
src/gamesmodel.cpp
src/player.cpp
src/playertarget.cpp
src/cardzone.cpp
src/selectzone.cpp
src/cardlist.cpp
src/abstractcarditem.cpp
src/carditem.cpp
src/tablezone.cpp
src/handzone.cpp
src/handcounter.cpp
src/carddatabase.cpp
src/keysignals.cpp
src/gameview.cpp
src/gameselector.cpp
src/decklistmodel.cpp
src/deck_loader.cpp
src/dlg_load_deck_from_clipboard.cpp
src/dlg_load_remote_deck.cpp
src/cardinfowidget.cpp
src/cardframe.cpp
src/cardinfopicture.cpp
src/cardinfotext.cpp
src/filterbuilder.cpp
src/cardfilter.cpp
src/filtertreemodel.cpp
src/filtertree.cpp
src/messagelogwidget.cpp
src/zoneviewzone.cpp
src/zoneviewwidget.cpp
src/pilezone.cpp
src/stackzone.cpp
src/carddragitem.cpp
src/carddatabasemodel.cpp
src/setsmodel.cpp
src/window_sets.cpp
src/abstractgraphicsitem.cpp
src/abstractcarddragitem.cpp
src/dlg_settings.cpp
src/dlg_cardsearch.cpp
src/phasestoolbar.cpp
src/gamescene.cpp
src/arrowitem.cpp
src/arrowtarget.cpp
src/tab.cpp
src/tab_server.cpp
src/tab_room.cpp
src/tab_message.cpp
src/tab_game.cpp
src/tab_deck_storage.cpp
src/tab_replays.cpp
src/tab_supervisor.cpp
src/tab_admin.cpp
src/tab_userlists.cpp
src/tab_deck_editor.cpp
src/replay_timeline_widget.cpp
src/deckstats_interface.cpp
src/chatview.cpp
src/userlist.cpp
src/userinfobox.cpp
src/user_context_menu.cpp
src/remotedecklist_treewidget.cpp
src/remotereplaylist_treewidget.cpp
src/deckview.cpp
src/playerlistwidget.cpp
src/pixmapgenerator.cpp
src/settingscache.cpp
src/localserver.cpp
src/localserverinterface.cpp
src/localclient.cpp
src/priceupdater.cpp
src/qt-json/json.cpp
src/soundengine.cpp
src/pending_command.cpp
${CMAKE_CURRENT_BINARY_DIR}/version_string.cpp
)
add_subdirectory(sounds)
add_subdirectory(themes)
configure_file(
${CMAKE_SOURCE_DIR}/cockatrice/resources/config/qtlogging.ini ${CMAKE_BINARY_DIR}/cockatrice/qtlogging.ini COPYONLY
)
if (UNIX AND NOT APPLE)
set_source_files_properties(src/main.cpp PROPERTIES COMPILE_FLAGS -DTRANSLATION_PATH=\\"${CMAKE_INSTALL_PREFIX}/share/cockatrice/translations\\")
endif (UNIX AND NOT APPLE)
set(cockatrice_RESOURCES cockatrice.qrc)
if(UPDATE_TRANSLATIONS)
# Cockatrice main sources
file(GLOB_RECURSE translate_cockatrice_SRCS ${CMAKE_SOURCE_DIR}/cockatrice/src/*.cpp
${CMAKE_SOURCE_DIR}/cockatrice/src/*.h
)
# All libcockatrice_* libraries (recursively)
file(GLOB_RECURSE translate_lib_SRCS ${CMAKE_SOURCE_DIR}/libcockatrice_*/**/*.cpp
${CMAKE_SOURCE_DIR}/libcockatrice_*/**/*.h
)
# Combine all sources for translation
set(translate_SRCS ${translate_cockatrice_SRCS} ${translate_lib_SRCS})
set(cockatrice_TS "${CMAKE_CURRENT_SOURCE_DIR}/cockatrice_en@source.ts")
else()
file(GLOB cockatrice_TS "${CMAKE_CURRENT_SOURCE_DIR}/translations/*.ts")
endif()
set(cockatrice_TS
# translations/cockatrice_cs.ts
translations/cockatrice_de.ts
translations/cockatrice_en.ts
translations/cockatrice_es.ts
# translations/cockatrice_fr.ts
translations/cockatrice_it.ts
translations/cockatrice_ja.ts
# translations/cockatrice_pl.ts
# translations/cockatrice_pt-br.ts
translations/cockatrice_pt.ts
# translations/cockatrice_ru.ts
# translations/cockatrice_sk.ts
translations/cockatrice_sv.ts
# translations/cockatrice_zh_CN.ts
)
if(WIN32)
set(cockatrice_SOURCES ${cockatrice_SOURCES} cockatrice.rc)
set(cockatrice_SOURCES ${cockatrice_SOURCES} cockatrice.rc)
endif(WIN32)
if(APPLE)
set(MACOSX_BUNDLE_ICON_FILE appicon.icns)
set_source_files_properties(
${CMAKE_CURRENT_SOURCE_DIR}/resources/appicon.icns PROPERTIES MACOSX_PACKAGE_LOCATION Resources
)
set(cockatrice_SOURCES ${cockatrice_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/resources/appicon.icns)
endif(APPLE)
set(MACOSX_BUNDLE_ICON_FILE appicon.icns)
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/resources/appicon.icns PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
set(cockatrice_SOURCES ${cockatrice_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/resources/appicon.icns)
ENDIF(APPLE)
if(Qt6_FOUND)
qt6_add_resources(cockatrice_RESOURCES_RCC ${cockatrice_RESOURCES})
elseif(Qt5_FOUND)
qt5_add_resources(cockatrice_RESOURCES_RCC ${cockatrice_RESOURCES})
endif()
if (NOT QT_QTMULTIMEDIA_FOUND)
SET(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR})
FIND_PACKAGE(QtMobility REQUIRED)
endif (NOT QT_QTMULTIMEDIA_FOUND)
SET(QT_USE_QTNETWORK TRUE)
SET(QT_USE_QTMULTIMEDIA TRUE)
SET(QT_USE_QTXML TRUE)
SET(QT_USE_QTSVG TRUE)
# Declare path variables
set(ICONDIR
share/icons
CACHE STRING "icon dir"
)
set(DESKTOPDIR
share/applications
CACHE STRING "desktop file destination"
)
set(ICONDIR share/icons CACHE STRING "icon dir")
set(DESKTOPDIR share/applications CACHE STRING "desktop file destination")
set(COCKATRICE_MAC_QM_INSTALL_DIR "cockatrice.app/Contents/Resources/translations")
set(COCKATRICE_UNIX_QM_INSTALL_DIR "share/cockatrice/translations")
set(COCKATRICE_WIN32_QM_INSTALL_DIR "translations")
# Let cmake chew Qt4's translations and resource files
# Note: header files are MOC-ed automatically by cmake
QT4_ADD_TRANSLATION(cockatrice_QM ${cockatrice_TS})
QT4_ADD_RESOURCES(cockatrice_RESOURCES_RCC ${cockatrice_RESOURCES})
if(Qt6_FOUND)
qt6_add_executable(
cockatrice
WIN32
MACOSX_BUNDLE
${cockatrice_SOURCES}
${cockatrice_RESOURCES_RCC}
${cockatrice_MOC_SRCS}
MANUAL_FINALIZATION
)
elseif(Qt5_FOUND)
# Qt5 Translations need to be linked at executable creation time
if(Qt5LinguistTools_FOUND)
if(UPDATE_TRANSLATIONS)
qt5_create_translation(cockatrice_QM ${translate_SRCS} ${cockatrice_TS})
else()
qt5_add_translation(cockatrice_QM ${cockatrice_TS})
endif()
endif()
add_executable(
cockatrice WIN32 MACOSX_BUNDLE ${cockatrice_MOC_SRCS} ${cockatrice_QM} ${cockatrice_RESOURCES_RCC}
${cockatrice_SOURCES}
)
if(UNIX)
if(APPLE)
install(FILES ${cockatrice_QM} DESTINATION ${COCKATRICE_MAC_QM_INSTALL_DIR})
else()
install(FILES ${cockatrice_QM} DESTINATION ${COCKATRICE_UNIX_QM_INSTALL_DIR})
endif()
elseif(WIN32)
install(FILES ${cockatrice_QM} DESTINATION ${COCKATRICE_WIN32_QM_INSTALL_DIR})
endif()
endif()
# Include directories
INCLUDE(${QT_USE_FILE})
INCLUDE_DIRECTORIES(../common)
INCLUDE_DIRECTORIES(${PROTOBUF_INCLUDE_DIR})
INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR}/common)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
INCLUDE_DIRECTORIES(${QT_MOBILITY_INCLUDE_DIR})
INCLUDE_DIRECTORIES(${QT_MOBILITY_MULTIMEDIAKIT_INCLUDE_DIR})
if(Qt5_FOUND)
target_link_libraries(
cockatrice
libcockatrice_card
libcockatrice_deck_list
libcockatrice_filters
libcockatrice_utility
libcockatrice_network
libcockatrice_models
libcockatrice_rng
libcockatrice_settings
${COCKATRICE_QT_MODULES}
)
else()
target_link_libraries(
cockatrice
PUBLIC libcockatrice_card
libcockatrice_deck_list
libcockatrice_filters
libcockatrice_utility
libcockatrice_network
libcockatrice_models
libcockatrice_rng
libcockatrice_settings
${COCKATRICE_QT_MODULES}
)
endif()
# Build cockatrice binary and link it
ADD_EXECUTABLE(cockatrice WIN32 MACOSX_BUNDLE ${cockatrice_SOURCES} ${cockatrice_QM} ${cockatrice_RESOURCES_RCC} ${cockatrice_MOC_SRCS})
TARGET_LINK_LIBRARIES(cockatrice cockatrice_common ${QT_QTMAIN_LIBRARY} ${QT_LIBRARIES} ${QT_MOBILITY_MULTIMEDIAKIT_LIBRARY})
if(MSVC)
set_target_properties(cockatrice PROPERTIES LINK_FLAGS "/SUBSYSTEM:WINDOWS")
endif(MSVC)
if(UNIX)
if(APPLE)
set(MACOSX_BUNDLE_INFO_STRING "${PROJECT_NAME}")
set(MACOSX_BUNDLE_GUI_IDENTIFIER "com.cockatrice.${PROJECT_NAME}")
set(MACOSX_BUNDLE_LONG_VERSION_STRING "${PROJECT_NAME}-${PROJECT_VERSION}")
set(MACOSX_BUNDLE_BUNDLE_NAME "${PROJECT_NAME}")
set(MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION})
set(MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION})
set_target_properties(cockatrice PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_SOURCE_DIR}/cmake/Info.plist)
install(TARGETS cockatrice BUNDLE DESTINATION ./)
else()
# Assume linux
install(TARGETS cockatrice RUNTIME DESTINATION bin/)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/resources/cockatrice.png DESTINATION ${ICONDIR}/hicolor/48x48/apps)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/resources/cockatrice.svg DESTINATION ${ICONDIR}/hicolor/scalable/apps)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/cockatrice.desktop DESTINATION ${DESKTOPDIR})
endif()
if(APPLE)
INSTALL(TARGETS cockatrice BUNDLE DESTINATION ./)
INSTALL(FILES ${cockatrice_QM} DESTINATION ./cockatrice.app/Contents/Resources/translations)
else()
# Assume linux
INSTALL(TARGETS cockatrice RUNTIME DESTINATION bin/)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/resources/cockatrice.png DESTINATION ${ICONDIR}/hicolor/48x48/apps)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/resources/cockatrice.svg DESTINATION ${ICONDIR}/hicolor/scalable/apps)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/cockatrice.desktop DESTINATION ${DESKTOPDIR})
INSTALL(FILES ${cockatrice_QM} DESTINATION share/cockatrice/translations)
endif()
elseif(WIN32)
install(TARGETS cockatrice RUNTIME DESTINATION ./)
INSTALL(TARGETS cockatrice RUNTIME DESTINATION ./)
INSTALL(FILES ${cockatrice_QM} DESTINATION ./translations)
endif()
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/version_string.cpp ${CMAKE_CURRENT_BINARY_DIR}/version_string.h
COMMAND ${CMAKE_COMMAND} -DSOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR} -P ${CMAKE_CURRENT_SOURCE_DIR}/../common/getversion.cmake
)
if(APPLE)
# these needs to be relative to CMAKE_INSTALL_PREFIX
set(plugin_dest_dir cockatrice.app/Contents/Plugins)
set(qtconf_dest_dir cockatrice.app/Contents/Resources)
# these needs to be relative to CMAKE_INSTALL_PREFIX
set(plugin_dest_dir cockatrice.app/Contents/Plugins)
set(qtconf_dest_dir cockatrice.app/Contents/Resources)
# Qt plugins: audio (Qt5), iconengines, imageformats, multimedia (Qt6), platforms, printsupport (Qt5), styles, tls (Qt6)
install(
DIRECTORY "${QT_PLUGINS_DIR}/"
DESTINATION ${plugin_dest_dir}
COMPONENT Runtime
FILES_MATCHING
PATTERN "*.dSYM" EXCLUDE
PATTERN "*_debug.dylib" EXCLUDE
PATTERN "audio/*.dylib"
PATTERN "iconengines/*.dylib"
PATTERN "imageformats/*.dylib"
PATTERN "multimedia/*.dylib"
PATTERN "platforms/*.dylib"
PATTERN "printsupport/*.dylib"
PATTERN "styles/*.dylib"
PATTERN "tls/*.dylib"
)
# note: no codecs in qt5
# note: phonon_backend => mediaservice
# note: needs platform on osx
install(
DIRECTORY "${CMAKE_BINARY_DIR}/cockatrice/"
DESTINATION ${qtconf_dest_dir}/
FILES_MATCHING
PATTERN "*.ini"
)
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
install(DIRECTORY "${QT_PLUGINS_DIR}/" DESTINATION ${plugin_dest_dir} COMPONENT Runtime
FILES_MATCHING REGEX "(codecs|iconengines|imageformats|mediaservice|phonon_backend|platforms)/.*_debug\\.dylib")
else()
install(DIRECTORY "${QT_PLUGINS_DIR}/" DESTINATION ${plugin_dest_dir} COMPONENT Runtime
FILES_MATCHING REGEX "(codecs|iconengines|imageformats|mediaservice|phonon_backend|platforms)/[^_]*\\.dylib")
endif()
install(
CODE "
install(CODE "
file(WRITE \"\${CMAKE_INSTALL_PREFIX}/${qtconf_dest_dir}/qt.conf\" \"[Paths]
Plugins = Plugins
Translations = Resources/translations
Data = Resources\")
"
COMPONENT Runtime
)
" COMPONENT Runtime)
install(
CODE "
install(CODE "
file(GLOB_RECURSE QTPLUGINS
\"\${CMAKE_INSTALL_PREFIX}/${plugin_dest_dir}/*.dylib\")
set(BU_CHMOD_BUNDLE_ITEMS ON)
include(BundleUtilities)
fixup_bundle(\"\${CMAKE_INSTALL_PREFIX}/cockatrice.app\" \"\${QTPLUGINS}\" \"${QT_LIBRARY_DIR}\")
"
COMPONENT Runtime
)
endif()
if(WIN32)
# these needs to be relative to CMAKE_INSTALL_PREFIX
set(plugin_dest_dir Plugins)
set(qtconf_dest_dir .)
install(
DIRECTORY "${CMAKE_BINARY_DIR}/${PROJECT_NAME}/${CMAKE_BUILD_TYPE}/"
DESTINATION ./
FILES_MATCHING
PATTERN "*.dll"
)
install(
DIRECTORY "${CMAKE_BINARY_DIR}/cockatrice/"
DESTINATION ./
FILES_MATCHING
PATTERN "*.ini"
)
# Qt plugins: audio (Qt5), iconengines, imageformats, multimedia (Qt6) platforms, printsupport (Qt5), styles, tls (Qt6)
install(
DIRECTORY "${QT_PLUGINS_DIR}/"
DESTINATION ${plugin_dest_dir}
COMPONENT Runtime
FILES_MATCHING
PATTERN "audio/qtaudio_wasapi.dll"
PATTERN "audio/qtaudio_windows.dll"
PATTERN "iconengines/qsvgicon.dll"
PATTERN "imageformats/*.dll"
PATTERN "mediaservice/dsengine.dll"
PATTERN "mediaservice/wmfengine.dll"
PATTERN "multimedia/*.dll"
PATTERN "platforms/qdirect2d.dll"
PATTERN "platforms/qminimal.dll"
PATTERN "platforms/qoffscreen.dll"
PATTERN "platforms/qwindows.dll"
PATTERN "printsupport/windowsprintersupport.dll"
PATTERN "styles/qcertonlybackend.dll"
PATTERN "styles/qopensslbackend.dll"
PATTERN "styles/qschannelbackend.dll"
PATTERN "styles/qwindowsvistastyle.dll"
PATTERN "styles/qwindows11style.dll"
PATTERN "styles/qmodernwindowsstyle.dll"
PATTERN "styles/qmodernwindowsstyled.dll"
PATTERN "tls/qcertonlybackend.dll"
PATTERN "tls/qopensslbackend.dll"
PATTERN "tls/qschannelbackend.dll"
)
install(
CODE "
file(WRITE \"\${CMAKE_INSTALL_PREFIX}/${qtconf_dest_dir}/qt.conf\" \"[Paths]
Plugins = Plugins
Translations = Resources/translations
Data = Resources\")
"
COMPONENT Runtime
)
install(
CODE "
file(GLOB_RECURSE QTPLUGINS
\"\${CMAKE_INSTALL_PREFIX}/${plugin_dest_dir}/*.dll\")
set(BU_CHMOD_BUNDLE_ITEMS ON)
include(BundleUtilities)
fixup_bundle(\"\${CMAKE_INSTALL_PREFIX}/Cockatrice.exe\" \"\${QTPLUGINS}\" \"${QT_LIBRARY_DIR}\")
"
COMPONENT Runtime
)
if(OPENSSL_FOUND)
install(FILES ${OPENSSL_INCLUDE_DIRS} DESTINATION ./)
endif()
endif()
if(Qt6_FOUND AND Qt6LinguistTools_FOUND)
#Qt6 Translations happen after the executable is built up
if(UPDATE_TRANSLATIONS)
qt6_add_translations(
cockatrice
TS_FILES
${cockatrice_TS}
SOURCES
${translate_SRCS}
QM_FILES_OUTPUT_VARIABLE
cockatrice_QM
)
else()
qt6_add_translations(cockatrice TS_FILES ${cockatrice_TS} QM_FILES_OUTPUT_VARIABLE cockatrice_QM)
endif()
if(UNIX)
if(APPLE)
install(FILES ${cockatrice_QM} DESTINATION ${COCKATRICE_MAC_QM_INSTALL_DIR})
else()
install(FILES ${cockatrice_QM} DESTINATION ${COCKATRICE_UNIX_QM_INSTALL_DIR})
endif()
elseif(WIN32)
install(FILES ${cockatrice_QM} DESTINATION ${COCKATRICE_WIN32_QM_INSTALL_DIR})
endif()
endif()
if(Qt6_FOUND)
qt6_finalize_target(cockatrice)
" COMPONENT Runtime)
endif()

View file

@ -0,0 +1,158 @@
INCLUDE(FindQt4)
set(MOBILITY_CONFIG_MKSPECS_FILE "")
IF(EXISTS "${QT_MKSPECS_DIR}/features/mobilityconfig.prf")
set(MOBILITY_CONFIG_MKSPECS_FILE "${QT_MKSPECS_DIR}/features/mobilityconfig.prf")
ELSEIF(EXISTS "${QT_MKSPECS_DIR}/features/mobility.prf")
set(MOBILITY_CONFIG_MKSPECS_FILE "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules/mobilityconfig.prf")
ENDIF()
macro(export_component component)
IF(NOT ${MOBILITY_CONFIG_MKSPECS_FILE} STREQUAL "")
FILE(READ ${MOBILITY_CONFIG_MKSPECS_FILE} MOBILITY_FILE_CONTENTS)
STRING(TOLOWER ${component} _COMPONENT)
IF(${MOBILITY_FILE_CONTENTS} MATCHES "MOBILITY_CONFIG=.*${_COMPONENT}.*")
STRING(TOUPPER ${component} _COMPONENT)
SET(QT_MOBILITY_${_COMPONENT}_FOUND 1)
SET(QT_MOBILITY_${_COMPONENT}_INCLUDE_DIR ${QT_MOBILITY_PARENT_INCLUDE_DIR}/Qt${component})
SET(QT_MOBILITY_${_COMPONENT}_LIBRARY Qt${component})
ENDIF()
ENDIF()
endmacro()
set(VERSION_INFO "")
set(FEATURE_FILE_PREFIX "${QT_MKSPECS_DIR}/features/mobility")
if(DEFINED MOBILITY_VERSION)
if(MOBILITY_VERSION STREQUAL "1.1" AND EXISTS "${FEATURE_FILE_PREFIX}11.prf")
set(MOBILITY_PRF_FILE "${FEATURE_FILE_PREFIX}11.prf")
set(VERSION_INFO "1.1")
elseif(MOBILITY_VERSION STREQUAL "1.2" AND EXISTS "${FEATURE_FILE_PREFIX}12.prf")
set(MOBILITY_PRF_FILE "${FEATURE_FILE_PREFIX}12.prf")
set(VERSION_INFO "1.2")
elseif(MOBILITY_VERSION STREQUAL "default" AND EXISTS "${FEATURE_FILE_PREFIX}.prf")
set(MOBILITY_PRF_FILE "${FEATURE_FILE_PREFIX}.prf")
set(VERSION_INFO "system's default")
else()
message(STATUS "Couldn't find QtMobility version: ${MOBILITY_VERSION}")
endif()
endif()
if(NOT DEFINED MOBILITY_PRF_FILE)
if(EXISTS "${FEATURE_FILE_PREFIX}.prf")
set(MOBILITY_PRF_FILE "${FEATURE_FILE_PREFIX}.prf")
set(VERSION_INFO "system's default")
elseif(EXISTS "${FEATURE_FILE_PREFIX}12.prf")
set(MOBILITY_PRF_FILE "${FEATURE_FILE_PREFIX}12.prf")
set(VERSION_INFO "1.2")
elseif(EXISTS "${FEATURE_FILE_PREFIX}11.prf")
set(MOBILITY_PRF_FILE "${FEATURE_FILE_PREFIX}11.prf")
set(VERSION_INFO "1.1")
else()
message(FATAL_ERROR "Couldn't find any version of QtMobility.")
endif()
endif()
message(STATUS "Using QtMobility version: ${VERSION_INFO}")
IF(DEFINED MOBILITY_PRF_FILE)
FILE(READ ${MOBILITY_PRF_FILE} MOBILITY_FILE_CONTENTS)
STRING(REGEX MATCH "MOBILITY_PREFIX=([^\n]+)" QT_MOBILITY_PREFIX "${MOBILITY_FILE_CONTENTS}")
SET(QT_MOBILITY_PREFIX ${CMAKE_MATCH_1})
STRING(REGEX MATCH "MOBILITY_INCLUDE=([^\n]+)" QT_MOBILITY_INCLUDE_DIR "${MOBILITY_FILE_CONTENTS}")
SET(QT_MOBILITY_INCLUDE_DIR ${CMAKE_MATCH_1})
STRING(REGEX MATCH "MOBILITY_LIB=([^\n]+)" "\\1" QT_MOBILITY_LIBRARY "${MOBILITY_FILE_CONTENTS}")
SET(QT_MOBILITY_LIBRARY_DIR ${CMAKE_MATCH_1})
#VERSION
IF(NOT ${MOBILITY_CONFIG_MKSPECS_FILE} STREQUAL "")
FILE(READ ${MOBILITY_CONFIG_MKSPECS_FILE} MOBILITY_CONFIG_FILE_CONTENTS)
STRING(REGEX MATCH "MOBILITY_VERSION = ([^\n]+)" QT_MOBILITY_VERSION "${MOBILITY_CONFIG_FILE_CONTENTS}")
SET(QT_MOBILITY_VERSION ${CMAKE_MATCH_1})
STRING(REGEX MATCH "MOBILITY_MAJOR_VERSION = ([^\n]+)" QT_MOBILITY_MAJOR_VERSION "${MOBILITY_CONFIG_FILE_CONTENTS}")
SET(QT_MOBILITY_MAJOR_VERSION ${CMAKE_MATCH_1})
STRING(REGEX MATCH "MOBILITY_MINOR_VERSION = ([^\n]+)" QT_MOBILITY_MINOR_VERSION "${MOBILITY_CONFIG_FILE_CONTENTS}")
SET(QT_MOBILITY_MINOR_VERSION ${CMAKE_MATCH_1})
STRING(REGEX MATCH "MOBILITY_PATCH_VERSION = ([^\n]+)" QT_MOBILITY_PATCH_VERSION "${MOBILITY_CONFIG_FILE_CONTENTS}")
SET(QT_MOBILITY_PATCH_VERSION ${CMAKE_MATCH_1})
ELSE()
SET(QT_MOBILITY_VERSION 1.0.0)
SET(QT_MOBILITY_MAJOR_VERSION 1)
SET(QT_MOBILITY_MINOR_VERSION 0)
SET(QT_MOBILITY_PATCH_VERSION 0)
ENDIF()
SET(QT_MOBILITY_PARENT_INCLUDE_DIR ${QT_MOBILITY_INCLUDE_DIR})
SET(QT_MOBILITY_INCLUDE_DIR ${QT_MOBILITY_INCLUDE_DIR}/QtMobility)
IF(QtMobility_FIND_VERSION_EXACT)
IF(QT_MOBILITY_VERSION VERSION_EQUAL QtMobility_FIND_VERSION)
SET(QT_MOBILITY_FOUND TRUE)
ELSE()
SET(QT_MOBILITY_FOUND FALSE)
IF(QT_MOBILITY_VERSION VERSION_LESS QtMobility_FIND_VERSION)
SET(QT_MOBILITY_TOO_OLD TRUE)
ELSE()
SET(QT_MOBILITY_TOO_NEW TRUE)
ENDIF()
ENDIF()
ELSE()
IF(QT_MOBILITY_VERSION VERSION_LESS QtMobility_FIND_VERSION)
SET(QT_MOBILITY_FOUND FALSE)
SET(QT_MOBILITY_TOO_OLD TRUE)
ELSE()
SET(QT_MOBILITY_FOUND TRUE)
ENDIF()
ENDIF()
ELSE()
SET(QT_MOBILITY_FOUND NOTFOUND)
SET(QT_MOBILITY_PREFIX NOTFOUND)
SET(QT_MOBILITY_INCLUDE NOTFOUND)
SET(QT_MOBILITY_LIB NOTFOUND)
ENDIF()
IF(NOT QT_MOBILITY_FOUND)
if(QT_MOBILITY_TOO_OLD)
MESSAGE(FATAL_ERROR "The installed QtMobility version ${QT_MOBILITY_VERSION} it too old, version ${QtMobility_FIND_VERSION} is required.")
ELSEIF(QT_MOBILITY_TOO_NEW)
MESSAGE(FATAL_ERROR "The installed QtMobility version ${QT_MOBILITY_VERSION} it too new, version ${QtMobility_FIND_VERSION} is required.")
ELSE()
MESSAGE(FATAL_ERROR "QtMobility not found.")
ENDIF()
ELSE()
export_component(Bearer)
export_component(Feedback)
export_component(Gallery)
export_component(PublishSubscribe)
export_component(Location)
export_component(Organizer)
export_component(ServiceFramework)
export_component(SystemInfo)
export_component(Contacts)
export_component(Messaging)
export_component(Versit)
export_component(Sensors)
# VersitOrganizer
if(${QT_MOBILITY_CONTACTS_FOUND} AND ${QT_MOBILITY_VERSIT_FOUND})
SET(QT_MOBILITY_VERSITORGANIZER_FOUND 1)
SET(QT_MOBILITY_VERSITORGANIZER_INCLUDE_DIR ${QT_MOBILITY_PARENT_INCLUDE_DIR}/QtVersitOrganizer)
SET(QT_MOBILITY_VERSITORGANIZER_LIBRARY QtVersitOrganizer)
endif()
# MultimediaKit - it's just 'multimedia' in the .prf file.
IF(NOT ${MOBILITY_CONFIG_MKSPECS_FILE} STREQUAL "")
FILE(READ ${MOBILITY_CONFIG_MKSPECS_FILE} MOBILITY_FILE_CONTENTS)
IF(${MOBILITY_FILE_CONTENTS} MATCHES "MOBILITY_CONFIG=.*multimedia.*")
SET(QT_MOBILITY_MULTIMEDIAKIT_FOUND 1)
SET(QT_MOBILITY_MULTIMEDIAKIT_INCLUDE_DIR ${QT_MOBILITY_PARENT_INCLUDE_DIR}/QtMultimediaKit)
SET(QT_MOBILITY_MULTIMEDIAKIT_LIBRARY QtMultimediaKit)
ENDIF()
ENDIF()
ENDIF()

View file

@ -1,402 +1,131 @@
<RCC>
<qresource prefix="/">
<file>resources/cardback.svg</file>
<file>resources/cockatrice.svg</file>
<file>resources/hand.svg</file>
<qresource prefix="/" >
<file alias="back.svg" >resources/back.svg</file>
<file>resources/lock.svg</file>
<file>resources/icon_delete.svg</file>
<file>resources/icon_tab_changed.svg</file>
<file>resources/icon_config_general.svg</file>
<file>resources/icon_config_appearance.svg</file>
<file>resources/icon_config_interface.svg</file>
<file>resources/icon_config_messages.svg</file>
<file>resources/icon_config_deckeditor.svg</file>
<file>resources/phases/icon_phase_untap.svg</file>
<file>resources/phases/icon_phase_upkeep.svg</file>
<file>resources/phases/icon_phase_draw.svg</file>
<file>resources/phases/icon_phase_main1.svg</file>
<file>resources/phases/icon_phase_combat_start.svg</file>
<file>resources/phases/icon_phase_combat_attackers.svg</file>
<file>resources/phases/icon_phase_combat_blockers.svg</file>
<file>resources/phases/icon_phase_combat_damage.svg</file>
<file>resources/phases/icon_phase_combat_end.svg</file>
<file>resources/phases/icon_phase_main2.svg</file>
<file>resources/phases/icon_phase_cleanup.svg</file>
<file>resources/phases/icon_phase_nextturn.svg</file>
<file>resources/icon_settings.svg</file>
<file>resources/hand.svg</file>
<file>resources/pencil.svg</file>
<file>resources/icon_search.svg</file>
<file>resources/icon_clearsearch.svg</file>
<file>resources/icon_update.png</file>
<file>resources/icon_view.svg</file>
<file>resources/hr.jpg</file>
<file alias="resources/appicon.svg">resources/cockatrice.svg</file>
<file>resources/add_to_sideboard.svg</file>
<file>resources/decrement.svg</file>
<file>resources/increment.svg</file>
<file>resources/remove_row.svg</file>
<file>resources/arrow_left_green.svg</file>
<file>resources/arrow_right_green.svg</file>
<file>resources/icon_ready_start.svg</file>
<file>resources/icon_not_ready_start.svg</file>
<file>resources/icon_conceded.svg</file>
<file>resources/icon_player.svg</file>
<file>resources/icon_spectator.svg</file>
<file>resources/replay_start.svg</file>
<file>resources/replay_stop.svg</file>
<file>resources/replay_fastforward.svg</file>
<file>resources/replay_rewind.svg</file>
<file>resources/replay_toend.svg</file>
<file>resources/replay_tostart.svg</file>
<file>resources/replay_pause.svg</file>
<file>resources/icons/arrow_bottom_green.svg</file>
<file>resources/icons/arrow_down_green.svg</file>
<file>resources/icons/arrow_history.svg</file>
<file>resources/icons/arrow_left_green.svg</file>
<file>resources/icons/arrow_redo.svg</file>
<file>resources/icons/arrow_right_blue.svg</file>
<file>resources/icons/arrow_right_green.svg</file>
<file>resources/icons/arrow_top_green.svg</file>
<file>resources/icons/arrow_up_green.svg</file>
<file>resources/icons/arrow_undo.svg</file>
<file>resources/icons/circle_half_stroke.svg</file>
<file>resources/icons/clearsearch.svg</file>
<file>resources/icons/cogwheel.svg</file>
<file>resources/icons/conceded.svg</file>
<file>resources/icons/decrement.svg</file>
<file>resources/icons/delete.svg</file>
<file>resources/icons/dragon.svg</file>
<file>resources/icons/dropdown_collapsed.svg</file>
<file>resources/icons/dropdown_expanded.svg</file>
<file>resources/icons/filter.svg</file>
<file>resources/icons/floppy_disk.svg</file>
<file>resources/icons/forgot_password.svg</file>
<file>resources/icons/gear.svg</file>
<file>resources/icons/increment.svg</file>
<file>resources/icons/info.svg</file>
<file>resources/icons/lock.svg</file>
<file>resources/icons/not_ready_start.svg</file>
<file>resources/icons/pen_to_square.svg</file>
<file>resources/icons/pencil.svg</file>
<file>resources/icons/pin.svg</file>
<file>resources/icons/player.svg</file>
<file>resources/icons/ready_start.svg</file>
<file>resources/icons/reload.svg</file>
<file>resources/icons/remove_row.svg</file>
<file>resources/icons/rename.svg</file>
<file>resources/icons/scale_balanced.svg</file>
<file>resources/icons/scales.svg</file>
<file>resources/icons/scroll.svg</file>
<file>resources/icons/search.svg</file>
<file>resources/icons/settings.svg</file>
<file>resources/icons/share.svg</file>
<file>resources/icons/sort_arrow_down.svg</file>
<file>resources/icons/spectator.svg</file>
<file>resources/icons/swap.svg</file>
<file>resources/icons/sync.svg</file>
<file>resources/icons/tab_changed.svg</file>
<file>resources/icons/update.png</file>
<file>resources/icons/view.svg</file>
<file>resources/genders/male.svg</file>
<file>resources/genders/female.svg</file>
<file>resources/genders/unknown.svg</file>
<file>resources/icons/mana/B.svg</file>
<file>resources/icons/mana/G.svg</file>
<file>resources/icons/mana/R.svg</file>
<file>resources/icons/mana/U.svg</file>
<file>resources/icons/mana/W.svg</file>
<file>resources/countries/ar.svg</file>
<file>resources/countries/at.svg</file>
<file>resources/countries/au.svg</file>
<file>resources/countries/be.svg</file>
<file>resources/countries/br.svg</file>
<file>resources/countries/by.svg</file>
<file>resources/countries/ca.svg</file>
<file>resources/countries/cl.svg</file>
<file>resources/countries/cz.svg</file>
<file>resources/countries/ch.svg</file>
<file>resources/countries/cn.svg</file>
<file>resources/countries/de.svg</file>
<file>resources/countries/dk.svg</file>
<file>resources/countries/do.svg</file>
<file>resources/countries/es.svg</file>
<file>resources/countries/fi.svg</file>
<file>resources/countries/fr.svg</file>
<file>resources/countries/ge.svg</file>
<file>resources/countries/gr.svg</file>
<file>resources/countries/gt.svg</file>
<file>resources/countries/hr.svg</file>
<file>resources/countries/hu.svg</file>
<file>resources/countries/ie.svg</file>
<file>resources/countries/il.svg</file>
<file>resources/countries/it.svg</file>
<file>resources/countries/jp.svg</file>
<file>resources/countries/lt.svg</file>
<file>resources/countries/lu.svg</file>
<file>resources/countries/lv.svg</file>
<file>resources/countries/mx.svg</file>
<file>resources/countries/my.svg</file>
<file>resources/countries/nl.svg</file>
<file>resources/countries/no.svg</file>
<file>resources/countries/nz.svg</file>
<file>resources/countries/pe.svg</file>
<file>resources/countries/ph.svg</file>
<file>resources/countries/pl.svg</file>
<file>resources/countries/pt.svg</file>
<file>resources/countries/ro.svg</file>
<file>resources/countries/ru.svg</file>
<file>resources/countries/se.svg</file>
<file>resources/countries/sg.svg</file>
<file>resources/countries/si.svg</file>
<file>resources/countries/sk.svg</file>
<file>resources/countries/tr.svg</file>
<file>resources/countries/ua.svg</file>
<file>resources/countries/uk.svg</file>
<file>resources/countries/us.svg</file>
<file>resources/countries/ve.svg</file>
<file>resources/countries/za.svg</file>
<file>resources/backgrounds/home.png</file>
<file>resources/backgrounds/card_triplet.svg</file>
<file>resources/backgrounds/placeholder_printing_selector.svg</file>
<file>resources/counters/w.svg</file>
<file>resources/counters/w_highlight.svg</file>
<file>resources/counters/u.svg</file>
<file>resources/counters/u_highlight.svg</file>
<file>resources/counters/b.svg</file>
<file>resources/counters/b_highlight.svg</file>
<file>resources/counters/r.svg</file>
<file>resources/counters/r_highlight.svg</file>
<file>resources/counters/g.svg</file>
<file>resources/counters/g_highlight.svg</file>
<file>resources/counters/general.svg</file>
<file>resources/counters/general_highlight.svg</file>
<file>resources/config/general.svg</file>
<file>resources/config/appearance.svg</file>
<file>resources/config/interface.svg</file>
<file>resources/config/messages.svg</file>
<file>resources/config/deckeditor.svg</file>
<file>resources/config/shorcuts.svg</file>
<file>resources/config/sound.svg</file>
<file>resources/config/debug.ini</file>
<file>resources/config/qtlogging.ini</file>
<file>resources/userlevels/normal.svg</file>
<file>resources/userlevels/registered.svg</file>
<file>resources/userlevels/moderator.svg</file>
<file>resources/userlevels/admin.svg</file>
<file>resources/counters/w.svg</file>
<file>resources/counters/w_highlight.svg</file>
<file>resources/counters/u.svg</file>
<file>resources/counters/u_highlight.svg</file>
<file>resources/counters/b.svg</file>
<file>resources/counters/b_highlight.svg</file>
<file>resources/counters/r.svg</file>
<file>resources/counters/r_highlight.svg</file>
<file>resources/counters/g.svg</file>
<file>resources/counters/g_highlight.svg</file>
<file>resources/counters/storm.svg</file>
<file>resources/counters/storm_highlight.svg</file>
<file>resources/counters/general.svg</file>
<file>resources/counters/general_highlight.svg</file>
<file>resources/news/exclamation_mark.svg</file>
<file>resources/news/question_mark.svg</file>
<file>resources/countries/ad.svg</file>
<file>resources/countries/ae.svg</file>
<file>resources/countries/af.svg</file>
<file>resources/countries/ag.svg</file>
<file>resources/countries/ai.svg</file>
<file>resources/countries/al.svg</file>
<file>resources/countries/am.svg</file>
<file>resources/countries/ao.svg</file>
<file>resources/countries/aq.svg</file>
<file>resources/countries/ar.svg</file>
<file>resources/countries/as.svg</file>
<file>resources/countries/at.svg</file>
<file>resources/countries/au.svg</file>
<file>resources/countries/aw.svg</file>
<file>resources/countries/ax.svg</file>
<file>resources/countries/az.svg</file>
<file>resources/countries/ba.svg</file>
<file>resources/countries/bb.svg</file>
<file>resources/countries/bd.svg</file>
<file>resources/countries/be.svg</file>
<file>resources/countries/bf.svg</file>
<file>resources/countries/bg.svg</file>
<file>resources/countries/bh.svg</file>
<file>resources/countries/bi.svg</file>
<file>resources/countries/bj.svg</file>
<file>resources/countries/bl.svg</file>
<file>resources/countries/bm.svg</file>
<file>resources/countries/bn.svg</file>
<file>resources/countries/bo.svg</file>
<file>resources/countries/bq.svg</file>
<file>resources/countries/br.svg</file>
<file>resources/countries/bs.svg</file>
<file>resources/countries/bt.svg</file>
<file>resources/countries/bv.svg</file>
<file>resources/countries/bw.svg</file>
<file>resources/countries/by.svg</file>
<file>resources/countries/bz.svg</file>
<file>resources/countries/ca.svg</file>
<file>resources/countries/cc.svg</file>
<file>resources/countries/cd.svg</file>
<file>resources/countries/cf.svg</file>
<file>resources/countries/cg.svg</file>
<file>resources/countries/ch.svg</file>
<file>resources/countries/ci.svg</file>
<file>resources/countries/ck.svg</file>
<file>resources/countries/cl.svg</file>
<file>resources/countries/cm.svg</file>
<file>resources/countries/cn.svg</file>
<file>resources/countries/co.svg</file>
<file>resources/countries/cr.svg</file>
<file>resources/countries/cu.svg</file>
<file>resources/countries/cv.svg</file>
<file>resources/countries/cw.svg</file>
<file>resources/countries/cx.svg</file>
<file>resources/countries/cy.svg</file>
<file>resources/countries/cz.svg</file>
<file>resources/countries/de.svg</file>
<file>resources/countries/dj.svg</file>
<file>resources/countries/dk.svg</file>
<file>resources/countries/dm.svg</file>
<file>resources/countries/do.svg</file>
<file>resources/countries/dz.svg</file>
<file>resources/countries/ec.svg</file>
<file>resources/countries/ee.svg</file>
<file>resources/countries/eg.svg</file>
<file>resources/countries/eh.svg</file>
<file>resources/countries/er.svg</file>
<file>resources/countries/es.svg</file>
<file>resources/countries/et.svg</file>
<file>resources/countries/eu.svg</file>
<file>resources/countries/fi.svg</file>
<file>resources/countries/fj.svg</file>
<file>resources/countries/fk.svg</file>
<file>resources/countries/fm.svg</file>
<file>resources/countries/fo.svg</file>
<file>resources/countries/fr.svg</file>
<file>resources/countries/ga.svg</file>
<file>resources/countries/gb.svg</file>
<file>resources/countries/gd.svg</file>
<file>resources/countries/ge.svg</file>
<file>resources/countries/gf.svg</file>
<file>resources/countries/gg.svg</file>
<file>resources/countries/gh.svg</file>
<file>resources/countries/gi.svg</file>
<file>resources/countries/gl.svg</file>
<file>resources/countries/gm.svg</file>
<file>resources/countries/gn.svg</file>
<file>resources/countries/gp.svg</file>
<file>resources/countries/gq.svg</file>
<file>resources/countries/gr.svg</file>
<file>resources/countries/gs.svg</file>
<file>resources/countries/gt.svg</file>
<file>resources/countries/gu.svg</file>
<file>resources/countries/gw.svg</file>
<file>resources/countries/gy.svg</file>
<file>resources/countries/hk.svg</file>
<file>resources/countries/hm.svg</file>
<file>resources/countries/hn.svg</file>
<file>resources/countries/hr.svg</file>
<file>resources/countries/ht.svg</file>
<file>resources/countries/hu.svg</file>
<file>resources/countries/id.svg</file>
<file>resources/countries/ie.svg</file>
<file>resources/countries/il.svg</file>
<file>resources/countries/im.svg</file>
<file>resources/countries/in.svg</file>
<file>resources/countries/io.svg</file>
<file>resources/countries/iq.svg</file>
<file>resources/countries/ir.svg</file>
<file>resources/countries/is.svg</file>
<file>resources/countries/it.svg</file>
<file>resources/countries/je.svg</file>
<file>resources/countries/jm.svg</file>
<file>resources/countries/jo.svg</file>
<file>resources/countries/jp.svg</file>
<file>resources/countries/ke.svg</file>
<file>resources/countries/kg.svg</file>
<file>resources/countries/kh.svg</file>
<file>resources/countries/ki.svg</file>
<file>resources/countries/km.svg</file>
<file>resources/countries/kn.svg</file>
<file>resources/countries/kp.svg</file>
<file>resources/countries/kr.svg</file>
<file>resources/countries/kw.svg</file>
<file>resources/countries/ky.svg</file>
<file>resources/countries/kz.svg</file>
<file>resources/countries/la.svg</file>
<file>resources/countries/lb.svg</file>
<file>resources/countries/lc.svg</file>
<file>resources/countries/li.svg</file>
<file>resources/countries/lk.svg</file>
<file>resources/countries/lr.svg</file>
<file>resources/countries/ls.svg</file>
<file>resources/countries/lt.svg</file>
<file>resources/countries/lu.svg</file>
<file>resources/countries/lv.svg</file>
<file>resources/countries/ly.svg</file>
<file>resources/countries/ma.svg</file>
<file>resources/countries/mc.svg</file>
<file>resources/countries/md.svg</file>
<file>resources/countries/me.svg</file>
<file>resources/countries/mf.svg</file>
<file>resources/countries/mg.svg</file>
<file>resources/countries/mh.svg</file>
<file>resources/countries/mk.svg</file>
<file>resources/countries/ml.svg</file>
<file>resources/countries/mm.svg</file>
<file>resources/countries/mn.svg</file>
<file>resources/countries/mo.svg</file>
<file>resources/countries/mp.svg</file>
<file>resources/countries/mq.svg</file>
<file>resources/countries/mr.svg</file>
<file>resources/countries/ms.svg</file>
<file>resources/countries/mt.svg</file>
<file>resources/countries/mu.svg</file>
<file>resources/countries/mv.svg</file>
<file>resources/countries/mw.svg</file>
<file>resources/countries/mx.svg</file>
<file>resources/countries/my.svg</file>
<file>resources/countries/mz.svg</file>
<file>resources/countries/na.svg</file>
<file>resources/countries/nc.svg</file>
<file>resources/countries/ne.svg</file>
<file>resources/countries/nf.svg</file>
<file>resources/countries/ng.svg</file>
<file>resources/countries/ni.svg</file>
<file>resources/countries/nl.svg</file>
<file>resources/countries/no.svg</file>
<file>resources/countries/np.svg</file>
<file>resources/countries/nr.svg</file>
<file>resources/countries/nu.svg</file>
<file>resources/countries/nz.svg</file>
<file>resources/countries/om.svg</file>
<file>resources/countries/pa.svg</file>
<file>resources/countries/pe.svg</file>
<file>resources/countries/pf.svg</file>
<file>resources/countries/pg.svg</file>
<file>resources/countries/ph.svg</file>
<file>resources/countries/pk.svg</file>
<file>resources/countries/pl.svg</file>
<file>resources/countries/pm.svg</file>
<file>resources/countries/pn.svg</file>
<file>resources/countries/pr.svg</file>
<file>resources/countries/ps.svg</file>
<file>resources/countries/pt.svg</file>
<file>resources/countries/pw.svg</file>
<file>resources/countries/py.svg</file>
<file>resources/countries/qa.svg</file>
<file>resources/countries/re.svg</file>
<file>resources/countries/ro.svg</file>
<file>resources/countries/rs.svg</file>
<file>resources/countries/ru.svg</file>
<file>resources/countries/rw.svg</file>
<file>resources/countries/sa.svg</file>
<file>resources/countries/sb.svg</file>
<file>resources/countries/sc.svg</file>
<file>resources/countries/sd.svg</file>
<file>resources/countries/se.svg</file>
<file>resources/countries/sg.svg</file>
<file>resources/countries/sh.svg</file>
<file>resources/countries/si.svg</file>
<file>resources/countries/sj.svg</file>
<file>resources/countries/sk.svg</file>
<file>resources/countries/sl.svg</file>
<file>resources/countries/sm.svg</file>
<file>resources/countries/sn.svg</file>
<file>resources/countries/so.svg</file>
<file>resources/countries/sr.svg</file>
<file>resources/countries/ss.svg</file>
<file>resources/countries/st.svg</file>
<file>resources/countries/sv.svg</file>
<file>resources/countries/sx.svg</file>
<file>resources/countries/sy.svg</file>
<file>resources/countries/sz.svg</file>
<file>resources/countries/tc.svg</file>
<file>resources/countries/td.svg</file>
<file>resources/countries/tf.svg</file>
<file>resources/countries/tg.svg</file>
<file>resources/countries/th.svg</file>
<file>resources/countries/tj.svg</file>
<file>resources/countries/tk.svg</file>
<file>resources/countries/tl.svg</file>
<file>resources/countries/tm.svg</file>
<file>resources/countries/tn.svg</file>
<file>resources/countries/to.svg</file>
<file>resources/countries/tr.svg</file>
<file>resources/countries/tt.svg</file>
<file>resources/countries/tv.svg</file>
<file>resources/countries/tw.svg</file>
<file>resources/countries/tz.svg</file>
<file>resources/countries/ua.svg</file>
<file>resources/countries/ug.svg</file>
<file>resources/countries/um.svg</file>
<file>resources/countries/us.svg</file>
<file>resources/countries/uy.svg</file>
<file>resources/countries/uz.svg</file>
<file>resources/countries/va.svg</file>
<file>resources/countries/vc.svg</file>
<file>resources/countries/ve.svg</file>
<file>resources/countries/vg.svg</file>
<file>resources/countries/vi.svg</file>
<file>resources/countries/vn.svg</file>
<file>resources/countries/vu.svg</file>
<file>resources/countries/wf.svg</file>
<file>resources/countries/ws.svg</file>
<file>resources/countries/xk.svg</file>
<file>resources/countries/ye.svg</file>
<file>resources/countries/yt.svg</file>
<file>resources/countries/za.svg</file>
<file>resources/countries/zm.svg</file>
<file>resources/countries/zw.svg</file>
<file>resources/phases/untap.svg</file>
<file>resources/phases/upkeep.svg</file>
<file>resources/phases/draw.svg</file>
<file>resources/phases/main1.svg</file>
<file>resources/phases/combat_start.svg</file>
<file>resources/phases/combat_attackers.svg</file>
<file>resources/phases/combat_blockers.svg</file>
<file>resources/phases/combat_damage.svg</file>
<file>resources/phases/combat_end.svg</file>
<file>resources/phases/main2.svg</file>
<file>resources/phases/cleanup.svg</file>
<file>resources/phases/nextturn.svg</file>
<file>resources/replay/start.svg</file>
<file>resources/replay/fastforward.svg</file>
<file>resources/replay/pause.svg</file>
<file>resources/usericons/pawn_single.svg</file>
<file>resources/usericons/pawn_double.svg</file>
<file>resources/usericons/pawn_donator_single.svg</file>
<file>resources/usericons/pawn_donator_double.svg</file>
<file>resources/usericons/pawn_judge_single.svg</file>
<file>resources/usericons/pawn_judge_double.svg</file>
<file>resources/usericons/pawn_vip_single.svg</file>
<file>resources/usericons/pawn_vip_double.svg</file>
<file>resources/usericons/star_single.svg</file>
<file>resources/usericons/star_double.svg</file>
<!-- ADD TIP OF THE DAY IMAGES HERE -->
<file>resources/tips/images/accounts_tab.png</file>
<file>resources/tips/images/add_card.png</file>
<file>resources/tips/images/arrows.png</file>
<file>resources/tips/images/card_select.png</file>
<file>resources/tips/images/cockatrice_register.png</file>
<file>resources/tips/images/cockatrice_wiki.png</file>
<file>resources/tips/images/coin_flip.png</file>
<file>resources/tips/images/counter_expression.png</file>
<file>resources/tips/images/discord.png</file>
<file>resources/tips/images/edhrec.png</file>
<file>resources/tips/images/expand_card_view.png</file>
<file>resources/tips/images/face_down.png</file>
<file>resources/tips/images/filter_games.png</file>
<file>resources/tips/images/github_logo.png</file>
<file>resources/tips/images/highlight_cards.png</file>
<file>resources/tips/images/pawns.png</file>
<file>resources/tips/images/setpt.png</file>
<file>resources/tips/images/shortcuts.png</file>
<file>resources/tips/images/syntax_help.png</file>
<file>resources/tips/images/themes.png</file>
<file>resources/tips/images/tip_of_the_day.png</file>
<file>resources/tips/images/token.png</file>
<file>resources/tips/images/updates.png</file>
<file>resources/tips/images/visual_deck_tags.png</file>
<file>resources/tips/tips_of_the_day.xml</file>
<file>resources/help/search.md</file>
<file>resources/help/deck_search.md</file>
<file>resources/mtgforum.png</file>
</qresource>
</RCC>

File diff suppressed because it is too large Load diff

View file

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Before After
Before After

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 177 KiB

After

Width:  |  Height:  |  Size: 345 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Before After
Before After

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 27 KiB

View file

@ -1,31 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.1"
width="250"
id="svg13"
height="231.66667"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg">
<defs
id="defs13" />
<g
transform="matrix(1.705559,0,0,1.705559,-18.310328,-4.2419088)"
id="g13">
<path
d="M 90.069854,3.479957 C 89.356513,1.2235709 86.980392,-0.01102897 84.723451,0.70218215 L 3.4767601,26.377781 C 1.2199188,27.090982 -0.01486587,29.46663 0.69839437,31.723116 L 33.512365,135.52112 c 0.713341,2.25639 3.089462,3.49099 5.346403,2.77777 l 81.246672,-25.6756 c 2.25684,-0.71319 3.49163,-3.08884 2.77837,-5.34533 L 90.074852,3.479957 Z"
style="display:none;fill:#c0c0c0;fill-opacity:1;stroke:#989898;stroke-width:1;stroke-opacity:1"
id="path1" />
<path
d="m 110.61293,7.4983294 c -0.36657,-2.337853 -2.53055,-3.9150142 -4.86886,-3.5484627 L 21.563382,17.14452 c -2.338314,0.366502 -3.915784,2.529976 -3.549207,4.867929 L 34.876507,129.55893 c 0.366577,2.33786 2.530549,3.91502 4.868863,3.54847 l 84.18069,-13.19466 c 2.33831,-0.3665 3.91578,-2.52997 3.5492,-4.86793 L 110.61093,7.4983294 Z"
style="fill:#c0c0c0;fill-opacity:1;stroke:#989898;stroke-width:1;stroke-opacity:1"
id="path4" />
<path
d="m 130.53623,15.555064 c 0,-2.366441 -1.89356,-4.259575 -4.26046,-4.259575 H 41.067426 c -2.366905,0 -4.260468,1.893134 -4.260468,4.259575 V 124.41102 c 0,2.36644 1.893563,4.25957 4.260468,4.25957 h 85.208344 c 2.3669,0 4.26046,-1.89313 4.26046,-4.25957 z"
style="fill:#c0c0c0;fill-opacity:1;stroke:#989898;stroke-width:1;stroke-opacity:1"
id="path7" />
<path
d="m 149.43988,26.480639 c 0.38018,-2.335754 -1.1846,-4.508374 -3.52082,-4.88852 L 61.817351,7.9076636 C 59.481136,7.5275576 57.308066,9.0920839 56.927894,11.427736 L 39.439773,118.87426 c -0.380182,2.33576 1.184602,4.50838 3.520816,4.88852 l 84.102711,13.68346 c 2.33622,0.38011 4.50929,-1.18442 4.88946,-3.52007 L 149.43688,26.479639 Z"
style="display:inline;fill:#c0c0c0;fill-opacity:1;stroke:#989898;stroke-width:1;stroke-opacity:1"
id="path10" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 MiB

View file

@ -1,29 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--!Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.-->
<svg
version="1.1"
width="172.65051"
id="svg13"
height="213.30714"
xml:space="preserve"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"><defs
id="defs13" /><g
transform="matrix(1.705559,0,0,1.705559,-97.653345,-68.741256)"
id="g13"><path
d="m 151.48519,45.063813 c 0,-2.366441 -1.89356,-4.259575 -4.26046,-4.259575 H 62.016385 c -2.366905,0 -4.260468,1.893134 -4.260468,4.259575 V 153.91977 c 0,2.36644 1.893563,4.25957 4.260468,4.25957 h 85.208345 c 2.3669,0 4.26046,-1.89313 4.26046,-4.25957 z"
style="fill:#c0c0c0;fill-opacity:1;stroke:#989898;stroke-width:1;stroke-opacity:1"
id="path7" /><path
d="m 154.70135,48.441704 c 0,-2.366441 -1.89356,-4.259575 -4.26046,-4.259575 H 65.232545 c -2.366905,0 -4.260468,1.893134 -4.260468,4.259575 V 157.29767 c 0,2.36644 1.893563,4.25957 4.260468,4.25957 h 85.208345 c 2.3669,0 4.26046,-1.89313 4.26046,-4.25957 z"
style="fill:#c0c0c0;fill-opacity:1;stroke:#989898;stroke-width:1;stroke-opacity:1"
id="path7-5" /><path
d="m 157.98403,51.75453 c 0,-2.366441 -1.89356,-4.259575 -4.26046,-4.259575 H 68.515228 c -2.366905,0 -4.260468,1.893134 -4.260468,4.259575 v 108.85596 c 0,2.36644 1.893563,4.25957 4.260468,4.25957 h 85.208342 c 2.3669,0 4.26046,-1.89313 4.26046,-4.25957 z"
style="fill:#c0c0c0;fill-opacity:1;stroke:#989898;stroke-width:1;stroke-opacity:1"
id="path7-6" /></g><path
d="m 196.24576,207.42361 c 0,0.11213 0,0.22413 0,0.33621 -0.0498,4.54511 -4.18399,7.63329 -8.72909,7.63329 h -12.19086 c -3.29988,0 -5.97713,2.67727 -5.97713,5.97712 0,0.4234 0.0498,0.83433 0.12449,1.23279 0.26149,1.27014 0.80939,2.49046 1.34485,3.72325 0.75959,1.71843 1.50674,3.4244 1.50674,5.22998 0,3.95986 -2.68971,7.55859 -6.64956,7.72046 -0.43583,0.0128 -0.87166,0.025 -1.31995,0.025 -17.60761,0 -31.878,-14.27038 -31.878,-31.878 0,-17.60761 14.28284,-31.878 31.89046,-31.878 17.60762,0 31.87801,14.27039 31.87801,31.878 z m -47.81703,3.98475 c 0,-2.20407 -1.78067,-3.98475 -3.98473,-3.98475 -2.20407,0 -3.98477,1.78068 -3.98477,3.98475 0,2.20406 1.7807,3.98475 3.98477,3.98475 2.20406,0 3.98473,-1.78069 3.98473,-3.98475 z m 0,-11.95426 c 2.20407,0 3.98477,-1.78068 3.98477,-3.98475 0,-2.20407 -1.7807,-3.98475 -3.98477,-3.98475 -2.20405,0 -3.98473,1.78068 -3.98473,3.98475 0,2.20407 1.78068,3.98475 3.98473,3.98475 z m 19.92376,-11.95424 c 0,-2.20408 -1.78068,-3.98477 -3.98473,-3.98477 -2.20407,0 -3.98477,1.78069 -3.98477,3.98477 0,2.20405 1.7807,3.98474 3.98477,3.98474 2.20405,0 3.98473,-1.78069 3.98473,-3.98474 z m 11.95426,11.95424 c 2.20407,0 3.98475,-1.78068 3.98475,-3.98475 0,-2.20407 -1.78068,-3.98475 -3.98475,-3.98475 -2.20406,0 -3.98475,1.78068 -3.98475,3.98475 0,2.20407 1.78069,3.98475 3.98475,3.98475 z"
id="path1"
style="display:none;fill:#3b3b3b;fill-opacity:1;stroke:#000000;stroke-width:2.53798;stroke-dasharray:none;stroke-opacity:1" /><path
d="M 126.20915,54.574783 82.324247,83.8512 c -5.76807,3.845383 -9.435059,10.089163 -10.029703,16.90777 12.348823,2.53716 22.081191,12.26955 24.638191,24.63819 6.838435,-0.59465 13.062395,-4.26163 16.907775,-10.0297 l 29.2566,-43.904722 c 1.32804,-2.001984 2.04162,-4.340923 2.04162,-6.75915 0,-6.719506 -5.45092,-12.170428 -12.17043,-12.170428 -2.3984,0 -4.75718,0.713573 -6.75915,2.041623 z M 88.052677,131.81933 c 0,-12.26953 -9.930593,-22.20012 -22.200138,-22.20012 -12.269532,0 -22.200126,9.93059 -22.200126,22.20012 0,0.77305 0.03966,1.54609 0.118929,2.2993 0.356787,3.46877 -2.021792,7.21505 -5.510393,7.21505 h -0.951431 c -3.508409,0 -6.342895,2.83447 -6.342895,6.3429 0,3.5084 2.834486,6.34289 6.342895,6.34289 h 28.543021 c 12.269545,0 22.200138,-9.93059 22.200138,-22.20014 z"
id="path1-2"
style="fill:#989898;fill-opacity:1;stroke-width:0.198215" /></svg>

Before

Width:  |  Height:  |  Size: 3.9 KiB

View file

@ -1,313 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="240"
height="340"
id="svg2"
sodipodi:version="0.32"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
version="1.0"
inkscape:export-xdpi="90"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
sodipodi:docname="cardback.svg"
inkscape:export-ydpi="90"
inkscape:export-filename="cardback.svg"
xmlns="http://www.w3.org/2000/svg">
<defs
id="defs4">
<linearGradient
id="linearGradient5266">
<stop
style="stop-color:#806600;stop-opacity:1;"
offset="0"
id="stop5268" />
<stop
style="stop-color:#382d00;stop-opacity:1;"
offset="1"
id="stop5270" />
</linearGradient>
<linearGradient
id="linearGradient3009">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop3011" />
<stop
style="stop-color:#a0872c;stop-opacity:1;"
offset="1"
id="stop3013" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3009"
id="linearGradient3015"
x1="10.096291"
y1="329.42294"
x2="229.81081"
y2="12.591727"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5266"
id="linearGradient5272"
x1="165.86763"
y1="23.649557"
x2="12.980947"
y2="327.98059"
gradientUnits="userSpaceOnUse" />
<linearGradient
y2="38.523342"
x2="-25.41811"
y1="37.909077"
x1="-20.65873"
gradientUnits="userSpaceOnUse"
id="linearGradient5324-8"
xlink:href="#linearGradient4766-8"
inkscape:collect="always" />
<linearGradient
id="linearGradient4766-8">
<stop
style="stop-color:#784421;stop-opacity:1;"
offset="0"
id="stop4768-2" />
<stop
style="stop-color:#3d2210;stop-opacity:0;"
offset="1"
id="stop4770-7" />
</linearGradient>
<linearGradient
y2="38.523342"
x2="-25.41811"
y1="37.909077"
x1="-20.65873"
gradientUnits="userSpaceOnUse"
id="linearGradient5324-8-2"
xlink:href="#linearGradient4766-8-6"
inkscape:collect="always" />
<linearGradient
id="linearGradient4766-8-6">
<stop
style="stop-color:#784421;stop-opacity:1;"
offset="0"
id="stop4768-2-0" />
<stop
style="stop-color:#3d2210;stop-opacity:0;"
offset="1"
id="stop4770-7-4" />
</linearGradient>
<linearGradient
y2="38.523342"
x2="-25.41811"
y1="37.909077"
x1="-20.65873"
gradientUnits="userSpaceOnUse"
id="linearGradient5324-8-6"
xlink:href="#linearGradient4766-8-0"
inkscape:collect="always" />
<linearGradient
id="linearGradient4766-8-0">
<stop
style="stop-color:#784421;stop-opacity:1;"
offset="0"
id="stop4768-2-3" />
<stop
style="stop-color:#3d2210;stop-opacity:0;"
offset="1"
id="stop4770-7-6" />
</linearGradient>
<linearGradient
y2="38.523342"
x2="-25.41811"
y1="37.909077"
x1="-20.65873"
gradientUnits="userSpaceOnUse"
id="linearGradient5324-8-8"
xlink:href="#linearGradient4766-8-8"
inkscape:collect="always" />
<linearGradient
id="linearGradient4766-8-8">
<stop
style="stop-color:#784421;stop-opacity:1;"
offset="0"
id="stop4768-2-1" />
<stop
style="stop-color:#3d2210;stop-opacity:0;"
offset="1"
id="stop4770-7-2" />
</linearGradient>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.4707622"
inkscape:cx="-159.7811"
inkscape:cy="160.80098"
inkscape:document-units="px"
inkscape:current-layer="layer5"
showgrid="false"
inkscape:window-width="841"
inkscape:window-height="1386"
inkscape:window-x="1707"
inkscape:window-y="42"
inkscape:window-maximized="0"
inkscape:showpageshadow="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#505050"/>
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="boarder"
inkscape:groupmode="layer"
id="layer1"
style="display:inline"
sodipodi:insensitive="true">
<rect
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-opacity:0"
id="rect3004"
width="240"
height="340"
x="0"
y="0.57232106"
rx="10"
ry="10" />
<rect
style="fill:url(#linearGradient3015);fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.00535154;stroke-opacity:0;display:inline"
id="rect3007"
width="220.67607"
height="318.77353"
x="10.096291"
y="11.610939" />
</g>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="inlay"
style="display:inline"
sodipodi:insensitive="true">
<rect
style="fill:url(#linearGradient5272);fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.99697781;stroke-opacity:0"
id="rect3017"
width="214.61836"
height="313.6048"
x="13.201575"
y="14.135432" />
<rect
style="fill:#000000;fill-opacity:0;fill-rule:nonzero;stroke:#000000;stroke-opacity:1"
id="rect5293"
width="208.1759"
height="306.25415"
x="16.346376"
y="17.399473" />
</g>
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="dots"
sodipodi:insensitive="true"
style="display:inline">
<circle
style="display:inline;fill:#ff5555;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-opacity:0"
id="path5297-7"
transform="translate(118.51147,240.79097)"
cx="-96.635925"
cy="76.534889"
r="2.8846545"/>
<ellipse
style="display:inline;fill:url(#linearGradient5324-8);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-opacity:0"
id="path5299-6-1"
transform="matrix(-1.3207348,0.77962891,-1.166227,-1.9837166,33.337282,413.41782)"
cx="-24.925219"
cy="38.493507"
rx="1.4573514"
ry="1.1418424"/>
<circle
style="display:inline;fill:#ff5555;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-opacity:0"
id="path5297-7-9"
transform="translate(315.44172,241.93405)"
cx="-96.635925"
cy="76.534889"
r="2.8846545"/>
<ellipse
style="display:inline;fill:url(#linearGradient5324-8-2);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-opacity:0"
id="path5299-6-1-4"
transform="matrix(-1.3207348,0.77962891,-1.166227,-1.9837166,230.26753,414.56091)"
cx="-24.925219"
cy="38.493507"
rx="1.4573514"
ry="1.1418424"/>
<circle
style="display:inline;fill:#ff5555;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-opacity:0"
id="path5297-7-2"
transform="translate(315.09322,-53.911687)"
cx="-96.635925"
cy="76.534889"
r="2.8846545"/>
<ellipse
style="display:inline;fill:url(#linearGradient5324-8-6);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-opacity:0"
id="path5299-6-1-45"
transform="matrix(-1.3207348,0.77962891,-1.166227,-1.9837166,229.91903,118.71517)"
cx="-24.925219"
cy="38.493507"
rx="1.4573514"
ry="1.1418424"/>
<circle
style="display:inline;fill:#ff5555;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-opacity:0"
id="path5297-7-1"
transform="translate(118.42648,-53.571727)"
cx="-96.635925"
cy="76.534889"
r="2.8846545"/>
<ellipse
style="display:inline;fill:url(#linearGradient5324-8-8);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-opacity:0"
id="path5299-6-1-49"
transform="matrix(-1.3207348,0.77962891,-1.166227,-1.9837166,33.252292,119.05512)"
cx="-24.925219"
cy="38.493507"
rx="1.4573514"
ry="1.1418424"/>
</g>
<g
inkscape:groupmode="layer"
id="layer5"
inkscape:label="oval"
sodipodi:insensitive="true"
style="display:inline">
<ellipse
style="fill:#2c9be5;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-opacity:1"
id="path5461"
transform="matrix(1.4485349,0,0,1,242.31301,14.423272)"
cx="-84.135757"
cy="155.38211"
rx="69.231705"
ry="144.23273"/>
<ellipse
style="fill:#c87137;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-opacity:0"
id="path5461-8"
transform="matrix(1.4086499,0,0,0.98333097,239.30154,17.255274)"
cx="-84.135757"
cy="155.38211"
rx="69.231705"
ry="144.23273"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 9.9 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Before After
Before After

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Before After
Before After

View file

@ -1,11 +0,0 @@
[debug]
showCardId=false
[localgame]
onStartup=false
playerCount=1
;deck\Player 1=path/to/deck
;deck\Player 2=path/to/deck
; Fun Fact: You can assign a deck to your username and it will auto load and ready when you join a server game
;deck\Your Username Here=path/to/deck

View file

@ -1,292 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg3715"
sodipodi:version="0.32"
inkscape:version="0.48.5 r10040"
sodipodi:docname="icon_config_general.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
version="1.1">
<defs
id="defs3717">
<linearGradient
id="linearGradient3372">
<stop
id="stop3374"
offset="0"
style="stop-color:#0053ff;stop-opacity:1;" />
<stop
id="stop3376"
offset="1"
style="stop-color:#008eff;stop-opacity:0.30980393;" />
</linearGradient>
<linearGradient
id="linearGradient3172">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop3174" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop3176" />
</linearGradient>
<linearGradient
id="linearGradient3701">
<stop
id="stop3709"
offset="0"
style="stop-color:#ffffff;stop-opacity:0.30588236;" />
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="1"
id="stop3711" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3628"
id="linearGradient3667"
gradientUnits="userSpaceOnUse"
x1="232.7204"
y1="270.24258"
x2="405.1579"
y2="270.24258" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3628"
id="linearGradient3665"
gradientUnits="userSpaceOnUse"
x1="298.79843"
y1="421.66565"
x2="471.55374"
y2="421.66565" />
<linearGradient
id="linearGradient3628">
<stop
id="stop3630"
offset="0"
style="stop-color:#456b92;stop-opacity:1;" />
<stop
style="stop-color:#90b2dd;stop-opacity:1;"
offset="0.5"
id="stop3634" />
<stop
id="stop3636"
offset="0.75"
style="stop-color:#91b8e9;stop-opacity:1;" />
<stop
style="stop-color:#7597bc;stop-opacity:1;"
offset="0.875"
id="stop3638" />
<stop
id="stop3632"
offset="1"
style="stop-color:#79a9d9;stop-opacity:1;" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3628"
id="linearGradient3663"
gradientUnits="userSpaceOnUse"
x1="129.40549"
y1="395.69638"
x2="301.84299"
y2="395.69638" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 32 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="64 : 32 : 1"
inkscape:persp3d-origin="32 : 21.333333 : 1"
id="perspective3723" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3628"
id="linearGradient3846"
gradientUnits="userSpaceOnUse"
x1="129.40549"
y1="395.69638"
x2="301.84299"
y2="395.69638" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3628"
id="linearGradient3848"
gradientUnits="userSpaceOnUse"
x1="298.79843"
y1="421.66565"
x2="471.55374"
y2="421.66565" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3628"
id="linearGradient3850"
gradientUnits="userSpaceOnUse"
x1="232.7204"
y1="270.24258"
x2="405.1579"
y2="270.24258" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3172"
id="linearGradient3178"
x1="32.909092"
y1="1.8181818"
x2="32.909092"
y2="15.636364"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3372"
id="linearGradient3370"
x1="32.090912"
y1="1.0909164"
x2="32.090912"
y2="67.636368"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.9859962,0,0,0.9859962,0.3584832,-1.3322407e-3)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6464"
id="linearGradient6470"
x1="32.090908"
y1="1.8181819"
x2="31.09091"
y2="62.909088"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(0,-0.1818182)" />
<linearGradient
id="linearGradient6464">
<stop
style="stop-color:#0061ff;stop-opacity:1;"
offset="0"
id="stop6466" />
<stop
style="stop-color:#001c4c;stop-opacity:1;"
offset="1"
id="stop6468" />
</linearGradient>
<linearGradient
y2="62.909088"
x2="31.09091"
y1="1.8181819"
x1="32.090908"
gradientTransform="matrix(1.0188073,0,0,1.0264157,-0.59868968,-1.2688528)"
gradientUnits="userSpaceOnUse"
id="linearGradient3045"
xlink:href="#linearGradient6464"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6482"
id="linearGradient6488"
x1="32.18182"
y1="3.2835093"
x2="32.18182"
y2="13.02554"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0489761,0,0,1.0704672,-1.576142,-1.64517)" />
<linearGradient
id="linearGradient6482">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop6484" />
<stop
style="stop-color:#00ff00;stop-opacity:0;"
offset="1"
id="stop6486" />
</linearGradient>
<linearGradient
y2="13.02554"
x2="32.18182"
y1="3.2835093"
x1="32.18182"
gradientTransform="matrix(1.0583546,0,0,1.0704672,-1.9688677,-2.3154113)"
gradientUnits="userSpaceOnUse"
id="linearGradient3045-1"
xlink:href="#linearGradient6482"
inkscape:collect="always" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.5"
inkscape:cx="-10.082463"
inkscape:cy="25.822073"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1280"
inkscape:window-height="949"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:window-maximized="0" />
<metadata
id="metadata3720">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<rect
style="fill:url(#linearGradient3045);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.02260447;stroke-opacity:1"
id="rect6462"
width="62.795578"
height="62.704666"
x="0.69797516"
y="0.59735847"
ry="5.7852521" />
<rect
style="fill:url(#linearGradient3045-1);fill-opacity:1;fill-rule:nonzero;stroke:none"
id="rect6472"
width="61.554176"
height="13.601046"
x="1.3138213"
y="1.1994778"
ry="4.8575158" />
<g
id="g3658"
transform="matrix(0.15897276,0,0,0.16669822,-15.816182,-26.391316)">
<path
id="path3576"
d="m 218.53049,309.80577 -3.09375,6.3125 -1.125,4.8125 0.0312,1.5625 -7,0.4375 -0.1875,-1.53125 -1.6875,-4.65625 -3.875,-5.84375 -4.5,0.84375 -1.46875,6.875 0.125,4.9375 0.40625,1.53125 -6.65625,2.15625 -0.5625,-1.46875 -2.8125,-4.0625 -5.1875,-4.71875 -4.15625,1.9375 0.3125,7.03125 1.34375,4.75 0.78125,1.375 -5.9375,3.75 -0.90625,-1.28125 -3.71875,-3.21875 -6.21875,-3.28125 -3.53125,2.90625 2.0625,6.75 2.46875,4.25 1.09375,1.125 -4.8125,5.125 -1.1875,-1.03125 -4.40625,-2.1875 -6.84375,-1.625 -2.71875,3.6875 3.6875,6 3.4375,3.53125 1.34375,0.8125 -3.375,6.15625 -1.40625,-0.6875 -4.8125,-1.03125 -7.03125,0.125 -1.6875,4.25 5.03125,4.90625 4.21875,2.53125 1.5,0.46875 -1.75,6.8125 -1.53125,-0.34375 -4.9375,0.21875 -6.78125,1.875 -0.5625,4.53125 6.09375,3.5 4.75,1.40625 1.5625,0.0937 0,7 -1.5625,0.0625 -4.75,1.4375 -6.09375,3.5 0.5625,4.53125 6.78125,1.875 4.9375,0.1875 1.53125,-0.3125 1.75,6.78125 -1.5,0.46875 -4.21875,2.5625 -5.03125,4.90625 1.6875,4.25 7.03125,0.125 4.8125,-1.03125 1.40625,-0.6875 3.375,6.15625 -1.34375,0.8125 -3.4375,3.5 -3.6875,6 2.71875,3.71875 6.84375,-1.625 4.40625,-2.21875 1.1875,-1 4.8125,5.125 -1.09375,1.125 -2.46875,4.25 -2.0625,6.71875 3.53125,2.9375 6.21875,-3.28125 3.71875,-3.25 0.90625,-1.28125 5.9375,3.78125 -0.78125,1.34375 -1.34375,4.75 -0.3125,7.03125 4.15625,1.96875 5.1875,-4.75 2.8125,-4.03125 0.5625,-1.46875 6.65625,2.15625 -0.40625,1.5 -0.125,4.9375 1.46875,6.90625 4.5,0.84375 3.875,-5.875 1.6875,-4.625 0.1875,-1.5625 7,0.4375 -0.0312,1.5625 1.125,4.8125 3.09375,6.3125 4.59375,-0.28125 2.28125,-6.65625 0.5,-4.90625 -0.21875,-1.5625 6.875,-1.3125 0.375,1.53125 2.28125,4.375 4.59375,5.34375 4.34375,-1.40625 0.5625,-7.03125 -0.71875,-4.875 -0.59375,-1.4375 6.34375,-3 0.71875,1.40625 3.3125,3.65625 5.75,4.03125 3.875,-2.4375 -1.1875,-6.9375 -1.9375,-4.53125 -0.9375,-1.28125 5.40625,-4.46875 1.0625,1.15625 4.09375,2.75 6.59375,2.46875 3.125,-3.34375 -2.875,-6.40625 -3,-3.9375 -1.21875,-0.96875 4.125,-5.6875 1.3125,0.875 4.65625,1.625 7,0.78125 2.1875,-4.03125 -4.375,-5.5 -3.875,-3.0625 -1.4375,-0.625 2.59375,-6.53125 1.46875,0.5 4.9375,0.4375 6.9375,-1 1.15625,-4.4375 -5.625,-4.25 -4.5,-2 -1.5625,-0.28125 0.875,-6.9375 1.5625,0.125 4.875,-0.8125 6.5,-2.71875 0,-4.5625 -6.5,-2.71875 -4.875,-0.8125 -1.5625,0.125 -0.875,-6.96875 1.5625,-0.25 4.5,-2 5.625,-4.25 -1.15625,-4.4375 -6.9375,-1 -4.9375,0.4375 -1.46875,0.5 -2.59375,-6.53125 1.4375,-0.65625 3.875,-3.03125 4.375,-5.5 -2.1875,-4.03125 -7,0.75 -4.65625,1.65625 -1.3125,0.84375 -4.125,-5.65625 1.21875,-1 3,-3.90625 2.875,-6.4375 -3.125,-3.34375 -6.59375,2.5 -4.09375,2.71875 -1.0625,1.15625 -5.40625,-4.46875 0.9375,-1.25 1.9375,-4.53125 1.1875,-6.9375 -3.875,-2.46875 -5.75,4.03125 -3.3125,3.6875 -0.71875,1.375 -6.34375,-2.96875 0.59375,-1.46875 0.71875,-4.875 -0.5625,-7 -4.34375,-1.40625 -4.59375,5.3125 -2.28125,4.375 -0.375,1.53125 -6.875,-1.3125 0.21875,-1.53125 -0.5,-4.9375 -2.28125,-6.625 -4.59375,-0.3125 z m -2.90625,22.15625 c 7.71749,0 15.10097,1.42838 21.9375,4 l -15.5625,28.71875 c -2.21207,-0.5418 -4.50406,-0.84375 -6.875,-0.84375 -8.41721,0 -16.03429,3.62553 -21.46875,9.4375 l -28.625,-15.53125 c 11.49205,-15.62948 29.87439,-25.78125 50.59375,-25.78125 z m 38.0625,12.96875 c 15.16986,11.64435 24.96875,30.04618 24.96875,50.78125 0,7.60476 -1.30018,14.92375 -3.71875,21.6875 l -30.5,-16.5625 c 0.3675,-1.94112 0.5625,-3.94775 0.5625,-6 0,-7.79489 -2.75805,-14.92599 -7.34375,-20.375 l 16.03125,-29.53125 z m -97.3125,29.09375 29.21875,15.875 c -0.24846,1.60786 -0.375,3.25739 -0.375,4.9375 0,8.47403 3.27426,16.15222 8.59375,21.75 l -16.21875,29.9375 c -15.17113,-11.64426 -25,-30.07641 -25,-50.8125 0,-7.61892 1.35408,-14.91314 3.78125,-21.6875 z m 58.28125,1.9375 c 0.3176,-0.0171 0.64717,0 0.96875,0 10.2905,-10e-6 18.65625,8.84846 18.65625,19.75 0,10.90154 -8.36575,19.71875 -18.65625,19.71875 -10.2905,1e-5 -18.65625,-8.81721 -18.65625,-19.71875 0,-10.56086 7.84203,-19.22073 17.6875,-19.75 z m 21.1875,41.1875 30.40625,16.53125 c -11.49036,15.64878 -29.89062,25.78125 -50.625,25.78125 -7.72767,0 -15.12468,-1.39066 -21.96875,-3.96875 l 16.34375,-30.09375 c 1.66202,0.29753 3.38143,0.4375 5.125,0.4375 8.04746,0 15.34294,-3.3181 20.71875,-8.6875 z"
style="fill:url(#linearGradient3846);fill-opacity:1;stroke:#000000"
inkscape:connector-curvature="0" />
<path
style="fill:url(#linearGradient3848);fill-opacity:1;stroke:#000000"
d="m 414.44011,340.65881 -4.87909,5.06098 -2.54543,4.23634 -0.44901,1.49692 -6.79737,-1.72833 0.29069,-1.51505 -0.17967,-4.94935 -1.89812,-6.74998 -4.54208,-0.57561 -3.50459,6.09431 -1.39385,4.73832 -0.0825,1.58207 -6.99678,0.0131 -0.0854,-1.57045 -1.43248,-4.72887 -3.49219,-6.08122 -4.55,0.57084 -1.85689,6.78882 -0.17627,4.93327 0.32238,1.54823 -6.80093,1.7504 -0.47008,-1.4973 -2.55368,-4.20335 -4.91427,-5.02884 -4.25189,1.6845 -0.10488,7.05728 1.04783,4.80201 0.69644,1.40602 -6.15133,3.40396 -0.81441,-1.34549 -3.52408,-3.43236 -6.01669,-3.64375 -3.71783,2.67712 1.67175,6.84126 2.19021,4.41465 1.03016,1.18515 -5.09893,4.82606 -1.12798,-1.0853 -4.26506,-2.4562 -6.73136,-2.03537 -2.90853,3.52854 3.28599,6.21185 3.24027,3.70212 1.28424,0.9058 -3.75317,5.94864 -1.35228,-0.79639 -4.76704,-1.3046 -7.0296,-0.29295 -1.92382,4.14096 4.72828,5.19878 4.09067,2.794 1.45862,0.56799 -2.14478,6.66332 -1.50651,-0.41925 -4.96199,-0.087 -6.87305,1.46454 -0.85293,4.48566 5.88061,3.86259 4.64256,1.69132 1.55336,0.1717 -0.41194,6.99129 -1.57147,-0.0134 -4.801,1.14663 -6.29253,3.12871 0.30416,4.56264 6.65476,2.27334 4.89701,0.4929 1.54926,-0.22357 1.32641,6.89425 -1.52806,0.3617 -4.34456,2.27842 -5.34853,4.58159 1.44857,4.3729 7.01248,0.55008 4.87414,-0.76197 1.43678,-0.58806 3.01075,6.35304 -1.38584,0.73577 -3.6522,3.28917 -4.02192,5.76366 2.46137,3.87819 6.92501,-1.21803 4.53569,-1.95426 1.25524,-0.94195 4.49336,5.41862 -1.1554,1.03975 -2.73452,4.10981 -2.45183,6.59732 3.35313,3.14753 6.39339,-2.93209 3.91239,-2.97563 0.98547,-1.22575 5.67544,4.092 -0.84631,1.30339 -1.63183,4.66171 -0.71796,7.02411 4.02504,2.18196 5.48873,-4.40513 3.02342,-3.88551 0.65724,-1.4299 6.52927,2.56124 -0.50849,1.47777 -0.40366,4.92574 1.01081,6.95681 4.45899,1.1398 4.21098,-5.63714 1.97923,-4.51708 0.27051,-1.55437 6.94649,0.85711 -0.11221,1.5725 0.83104,4.86354 2.73549,6.49426 4.5657,-0.008 2.6898,-6.52072 0.80952,-4.86076 -0.12474,-1.55029 6.95782,-0.91199 0.25332,1.55884 2.0329,4.49534 4.23828,5.59915 4.43548,-1.13297 0.99525,-6.96768 -0.45595,-4.90696 -0.49983,-1.50687 6.51544,-2.59736 0.65712,1.42619 3.05426,3.87205 5.52019,4.37033 3.99923,-2.22544 -0.77386,-6.97902 -1.64926,-4.66731 -0.86332,-1.29558 5.66924,-4.15006 0.98127,1.23506 3.93441,2.9735 6.42395,2.88848 3.31745,-3.16712 -2.47938,-6.57596 -2.75028,-4.10251 -1.17686,-1.03538 4.47016,-5.4224 1.24491,0.92598 4.56597,1.9293 6.91024,1.17373 2.46027,-3.86979 -4.05227,-5.76909 -3.67076,-3.2826 -1.40118,-0.74647 2.95856,-6.33573 1.44905,0.59774 4.88947,0.72026 7.02039,-0.59639 1.39795,-4.34306 -5.35436,-4.57959 -4.39157,-2.26711 -1.52566,-0.35976 1.3023,-6.90167 1.56396,0.24078 4.89635,-0.52502 6.65665,-2.3221 0.259,-4.57835 -6.29742,-3.07754 -4.83408,-1.09639 -1.5513,0.0259 -0.46784,-7.01182 1.56944,-0.18425 4.61739,-1.69816 5.84977,-3.89497 -0.84712,-4.50761 -6.89313,-1.43087 -4.93977,0.14993 -1.50789,0.40102 -2.19355,-6.64811 1.46654,-0.57847 4.05257,-2.79917 4.70917,-5.24699 -1.95019,-4.14042 -7.0426,0.35945 -4.72987,1.33366 -1.36568,0.77509 -3.77701,-5.91028 1.27541,-0.90263 3.23268,-3.71966 3.25602,-6.23998 -2.9322,-3.53731 -6.70861,2.07557 -4.28303,2.4952 -1.10548,1.08864 -5.12902,-4.76968 1.01522,-1.21618 2.17788,-4.42031 1.60934,-6.83567 -3.70396,-2.66953 -6.00055,3.64947 -3.51202,3.4656 -0.82614,1.3427 -6.14218,-3.35585 0.67739,-1.39058 1.03689,-4.85322 -0.14163,-7.00533 -4.27706,-1.705 z m -9.55511,20.20016 c 7.3463,2.36461 13.93701,5.98658 19.65679,10.52921 l -23.61337,22.56916 c -1.93967,-1.19352 -4.0289,-2.1832 -6.28581,-2.90966 -8.01237,-2.57901 -16.37396,-1.46173 -23.32782,2.40561 l -22.48948,-23.5549 c 15.72817,-11.35661 36.33687,-15.38781 56.05969,-9.03942 z m 32.25823,24.00727 c 10.87243,15.73232 14.56173,36.25145 8.20855,55.98923 -2.33009,7.239 -5.81026,13.80759 -10.18491,19.50499 l -23.95833,-25.11105 c 0.94458,-1.73516 1.74503,-3.58553 2.37384,-5.53908 2.38834,-7.41998 1.9479,-15.05316 -0.74768,-21.64514 l 24.30853,-23.19895 z m -101.54638,-2.12193 22.94936,24.06403 c -0.72917,1.4544 -1.35503,2.98582 -1.86981,4.58512 -2.59642,8.06646 -1.83223,16.37859 1.51626,23.33702 l -24.61149,23.52821 c -10.87367,-15.73262 -14.58222,-36.28979 -8.22872,-56.02856 2.33442,-7.25247 5.85831,-13.78097 10.2444,-19.48582 z m 54.88447,19.70158 c 0.30756,0.0811 0.61605,0.19829 0.92216,0.29682 9.79557,3.15298 15.0478,14.13912 11.70759,24.51634 -3.34022,10.37721 -14.00519,16.20709 -23.80075,13.0541 -9.79556,-3.15297 -15.05737,-14.10937 -11.71715,-24.48659 3.23583,-10.05292 13.35405,-15.89349 22.88815,-13.38067 z m 7.54868,45.69834 23.87867,25.05257 c -15.73247,11.3755 -36.35231,15.38282 -56.08945,9.02985 -7.35599,-2.36774 -13.97114,-5.95795 -19.6961,-10.50906 l 24.77834,-23.63865 c 1.49091,0.79247 3.08474,1.45253 4.74445,1.98676 7.66041,2.46573 15.62166,1.54253 22.38409,-1.92147 z"
id="path3616"
inkscape:connector-curvature="0" />
<path
id="path3618"
d="m 321.8454,184.35195 -3.09375,6.3125 -1.125,4.8125 0.0312,1.5625 -7,0.4375 -0.1875,-1.53125 -1.6875,-4.65625 -3.875,-5.84375 -4.5,0.84375 -1.46875,6.875 0.125,4.9375 0.40625,1.53125 -6.65625,2.15625 -0.5625,-1.46875 -2.8125,-4.0625 -5.1875,-4.71875 -4.15625,1.9375 0.3125,7.03125 1.34375,4.75 0.78125,1.375 -5.9375,3.75 -0.90625,-1.28125 -3.71875,-3.21875 -6.21875,-3.28125 -3.53125,2.90625 2.0625,6.75 2.46875,4.25 1.09375,1.125 -4.8125,5.125 -1.1875,-1.03125 -4.40625,-2.1875 -6.84375,-1.625 -2.71875,3.6875 3.6875,6 3.4375,3.53125 1.34375,0.8125 -3.375,6.15625 -1.40625,-0.6875 -4.8125,-1.03125 -7.03125,0.125 -1.6875,4.25 5.03125,4.90625 4.21875,2.53125 1.5,0.46875 -1.75,6.8125 -1.53125,-0.34375 -4.9375,0.21875 -6.78125,1.875 -0.5625,4.53125 6.09375,3.5 4.75,1.40625 1.5625,0.0937 0,7 -1.5625,0.0625 -4.75,1.4375 -6.09375,3.5 0.5625,4.53125 6.78125,1.875 4.9375,0.1875 1.53125,-0.3125 1.75,6.78125 -1.5,0.46875 -4.21875,2.5625 -5.03125,4.90625 1.6875,4.25 7.03125,0.125 4.8125,-1.03125 1.40625,-0.6875 3.375,6.15625 -1.34375,0.8125 -3.4375,3.5 -3.6875,6 2.71875,3.71875 6.84375,-1.625 4.40625,-2.21875 1.1875,-1 4.8125,5.125 -1.09375,1.125 -2.46875,4.25 -2.0625,6.71875 3.53125,2.9375 6.21875,-3.28125 3.71875,-3.25 0.90625,-1.28125 5.9375,3.78125 -0.78125,1.34375 -1.34375,4.75 -0.3125,7.03125 4.15625,1.96875 5.1875,-4.75 2.8125,-4.03125 0.5625,-1.46875 6.65625,2.15625 -0.40625,1.5 -0.125,4.9375 1.46875,6.90625 4.5,0.84375 3.875,-5.875 1.6875,-4.625 0.1875,-1.5625 7,0.4375 -0.0312,1.5625 1.125,4.8125 3.09375,6.3125 4.59375,-0.28125 2.28125,-6.65625 0.5,-4.90625 -0.21875,-1.5625 6.875,-1.3125 0.375,1.53125 2.28125,4.375 4.59375,5.34375 4.34375,-1.40625 0.5625,-7.03125 -0.71875,-4.875 -0.59375,-1.4375 6.34375,-3 0.71875,1.40625 3.3125,3.65625 5.75,4.03125 3.875,-2.4375 -1.1875,-6.9375 -1.9375,-4.53125 -0.9375,-1.28125 5.40625,-4.46875 1.0625,1.15625 4.09375,2.75 6.59375,2.46875 3.125,-3.34375 -2.875,-6.40625 -3,-3.9375 -1.21875,-0.96875 4.125,-5.6875 1.3125,0.875 4.65625,1.625 7,0.78125 2.1875,-4.03125 -4.375,-5.5 -3.875,-3.0625 -1.4375,-0.625 2.59375,-6.53125 1.46875,0.5 4.9375,0.4375 6.9375,-1 1.15625,-4.4375 -5.625,-4.25 -4.5,-2 -1.5625,-0.28125 0.875,-6.9375 1.5625,0.125 4.875,-0.8125 6.5,-2.71875 0,-4.5625 -6.5,-2.71875 -4.875,-0.8125 -1.5625,0.125 -0.875,-6.96875 1.5625,-0.25 4.5,-2 5.625,-4.25 -1.15625,-4.4375 -6.9375,-1 -4.9375,0.4375 -1.46875,0.5 -2.59375,-6.53125 1.4375,-0.65625 3.875,-3.03125 4.375,-5.5 -2.1875,-4.03125 -7,0.75 -4.65625,1.65625 -1.3125,0.84375 -4.125,-5.65625 1.21875,-1 3,-3.90625 2.875,-6.4375 -3.125,-3.34375 -6.59375,2.5 -4.09375,2.71875 -1.0625,1.15625 -5.40625,-4.46875 0.9375,-1.25 1.9375,-4.53125 1.1875,-6.9375 -3.875,-2.46875 -5.75,4.03125 -3.3125,3.6875 -0.71875,1.375 -6.34375,-2.96875 0.59375,-1.46875 0.71875,-4.875 -0.5625,-7 -4.34375,-1.40625 -4.59375,5.3125 -2.28125,4.375 -0.375,1.53125 -6.875,-1.3125 0.21875,-1.53125 -0.5,-4.9375 -2.28125,-6.625 -4.59375,-0.3125 z m -2.90625,22.15625 c 7.71749,0 15.10097,1.42838 21.9375,4 l -15.5625,28.71875 c -2.21207,-0.5418 -4.50406,-0.84375 -6.875,-0.84375 -8.41721,0 -16.03429,3.62553 -21.46875,9.4375 l -28.625,-15.53125 c 11.49205,-15.62948 29.87439,-25.78125 50.59375,-25.78125 z m 38.0625,12.96875 c 15.16986,11.64435 24.96875,30.04618 24.96875,50.78125 0,7.60476 -1.30018,14.92375 -3.71875,21.6875 l -30.5,-16.5625 c 0.3675,-1.94112 0.5625,-3.94775 0.5625,-6 0,-7.79489 -2.75805,-14.92599 -7.34375,-20.375 l 16.03125,-29.53125 z m -97.3125,29.09375 29.21875,15.875 c -0.24846,1.60786 -0.375,3.25739 -0.375,4.9375 0,8.47403 3.27426,16.15222 8.59375,21.75 l -16.21875,29.9375 c -15.17113,-11.64426 -25,-30.07641 -25,-50.8125 0,-7.61892 1.35408,-14.91314 3.78125,-21.6875 z m 58.28125,1.9375 c 0.3176,-0.0171 0.64717,0 0.96875,0 10.2905,-10e-6 18.65625,8.84846 18.65625,19.75 0,10.90154 -8.36575,19.71875 -18.65625,19.71875 -10.2905,1e-5 -18.65625,-8.81721 -18.65625,-19.71875 0,-10.56086 7.84203,-19.22073 17.6875,-19.75 z m 21.1875,41.1875 30.40625,16.53125 c -11.49036,15.64878 -29.89062,25.78125 -50.625,25.78125 -7.72767,0 -15.12468,-1.39066 -21.96875,-3.96875 l 16.34375,-30.09375 c 1.66202,0.29753 3.38143,0.4375 5.125,0.4375 8.04746,0 15.34294,-3.3181 20.71875,-8.6875 z"
style="fill:url(#linearGradient3850);fill-opacity:1;stroke:#000000"
inkscape:connector-curvature="0" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 21 KiB

View file

@ -1,72 +0,0 @@
[Rules]
# The default log level is info
*.debug = false
#*.info = true
#*.warning = true
#*.critical = true
#*.fatal = true
# Uncomment a rule to see debug level logs for that category,
# or set <category> = false to disable logging
#main = true
#qt_translator = true
#window_main.* = true
#release_channel = true
#spoiler_background_updater = true
#theme_manager = true
#sound_engine = true
#tapped_out_interface = true
#tab_game = true
#tab_message = true
#tab_supervisor = true
#dlg_edit_avatar = true
#dlg_load_deck_from_website = true
#dlg_settings = true
#dlg_tip_of_the_day = true
#dlg_update = true
#settings_cache = true
#servers_settings = true
#shortcuts_settings = true
#local_client = true
#remote_client = true
#player = true
#game_scene = true
#game_scene.player_addition_removal = true
#card_zone = true
#view_zone = true
#game_event_handler = true
#user_info_connection = true
#card_picture_loader = true
#card_picture_loader.worker = true
#card_picture_loader.card_back_cache_fail = true
#card_picture_loader.picture_to_load = true
#deck_loader = true
#card_database = true
#card_database.loading = true
#card_database.loading.success_or_failure = true
#cockatrice_xml.* = true
#cockatrice_xml.xml_3_parser = true
#cockatrice_xml.xml_4_parser = true
#card_info = true
#card_list = true
#flow_layout = true
#flow_widget = true
#flow_widget.size = true
#card_info_picture_widget = true
#pixel_map_generator = true
#deck_filter_string = true
#filter_string = true
#syntax_help = true

View file

@ -1,161 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="500"
height="500"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="icon_config_shorcuts.svg">
<defs
id="defs4">
<inkscape:path-effect
effect="bend_path"
id="path-effect3618"
is_visible="true"
bendpath="m 142.49072,814.69439 c 81.91729,17.90777 153.31508,14.77655 218.89021,0"
prop_scale="1"
scale_y_rel="false"
vertical="false"
bendpath-nodetypes="cc" />
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective10" />
<inkscape:perspective
id="perspective4226"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6464"
id="linearGradient6470"
x1="32.090908"
y1="1.8181819"
x2="31.09091"
y2="62.909088"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(0,-0.1818182)" />
<linearGradient
id="linearGradient6464">
<stop
style="stop-color:#0061ff;stop-opacity:1;"
offset="0"
id="stop6466" />
<stop
style="stop-color:#001c4c;stop-opacity:1;"
offset="1"
id="stop6468" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6482"
id="linearGradient6488"
x1="32.18182"
y1="3.2835093"
x2="32.18182"
y2="13.02554"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0281354,0,0,1.0429299,-0.9963584,-0.6864152)" />
<linearGradient
id="linearGradient6482">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop6484" />
<stop
style="stop-color:#00ff00;stop-opacity:0;"
offset="1"
id="stop6486" />
</linearGradient>
<linearGradient
y2="13.02554"
x2="32.18182"
y1="3.2835093"
x1="32.18182"
gradientTransform="matrix(1.0281354,0,0,1.0429299,-0.9963584,-0.6864152)"
gradientUnits="userSpaceOnUse"
id="linearGradient4241"
xlink:href="#linearGradient6482"
inkscape:collect="always" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.42293617"
inkscape:cx="401.93458"
inkscape:cy="251.13063"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1280"
inkscape:window-height="745"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-552.36218)">
<g
transform="matrix(7.8163235,0,0,7.8163235,-0.83292805,550.81868)"
id="g4214">
<rect
ry="5.6363635"
y="1.6363637"
x="1.2727273"
height="61.090908"
width="61.636364"
id="rect6462"
style="fill:url(#linearGradient6470);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-opacity:1" />
<rect
ry="4.7325583"
y="2.7380548"
x="2.1926003"
height="13.251164"
width="59.796619"
id="rect6472"
style="fill:url(#linearGradient4241);fill-opacity:1;fill-rule:nonzero;stroke:none" />
</g>
<image
width="330.20697"
height="335.80368"
preserveAspectRatio="none"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHYAAAB4CAYAAAAnrQZhAAAABmJLR0QA/wD/AP+gvaeTAAALCklE QVR4nO2dbWgcZR7Af/Oyu91umlfTNtFYxabVbg4xGmkqGAiUXoViWq4UvFMOPxz4wfOoekhR6CEn fqig/eCHgyLY3kXxgzmLePZDvdpcyhlSriW2tmI0TXurl43ZtG422ezO3Ic44+xm9mWyEyedPD94 2Hl2Zp59dn77f55nXleiPCLANmAtUAtUlbmewD2mgQQwAZwBJhdbUAD4LfBPYBbQRVo2KQP8G/gD sNpenz17gG+WwRcQqXT6H/A7QLIKzMkwH6V/YT5SF6AoCqtWrUKWZbvZBZFlGVVVkWXZ8bp26Lpe cRlLUZZd2Zqmoes62Wy24s9KpVJkMplCs/8B7AOuQ65YFegFfmVduq6ujnvuuYeWlhaqq6vLroQs y2zfvp27774bVVWd1N8WYwOVSj/Hck4IhUI0NDSwbt06rl27xuDgIMPDwyXLURQFVVXNFAgEUFWV VCrF119/zeDgIFeuXMlfrR/4JZC0iv0zcMBaoW3btrFx40ZHXwSgra2NHTt2OF6vGDerWANJkmhq auKuu+7i22+/5Z133iEWi5nzDZGGwPxXu+mLFy/y1ltvMTExYf2ovwK/McT+AhhivikmEomwa9cu 1qxZ4/gLdHV10dHR4XoTd7OLNaiurqatrQ1d1+nt7WV0dLSkwPxp6+v09DQvvPACIyMj1o/ZaYg9 Bvwa5pvQ3bt3U19f77jSnZ2dPPTQQ0vSb/lFLEBVVRXt7e1omsb7779PPB4vKdCuWTZeJycn2bt3 L9evXzc+4l8KsAY4wo/RGo1G2bRpk+PK1tbWsnv37iWRCuUPcrxazgnpdJq5uTkaGxu58847icVi rF69mqqqKqqqqohEIkQiEXO60HvhcJhgMEhNTQ3BYJD+/n7jI1pUoB3LvtDmzZsXVdk9e/agaVrF X3qlEIvFuPXWW4lEIrS3tzM6Olq0Xw0EAkhS/k7MTzz66KMcOnTIGDVLKrDBmCnLMnV1dY4rGQqF qK+vX7Jo9SO6rnPt2jU2bdpES0sLyWQSRVFypBYTmU9NTQ1NTU2MjY0BIAM1xsxQKOSoMIOtW7cK qYsgHo+j6zqqqrJ+/Xqqq6sJh8Mlo7MQDQ0N5nTlRwuADRs2lF5IsIB0Os3s7CwAwWCw4vKsPwZX xK5e7ehwpcCCIVZRFFfLdUWsG0eWVipzc3MArhxqteJuaYJlgxDrU4RYnyLE+hQh1qcsq+Gspmmc Pn2agYEBhoaGiMfjfP/99yiKQm1tLa2trdx3333s3LmT5uZmr6u7rFk2Yk+cOMHrr7+ef/rJJJVK EYvF+PTTTzl8+DAPP/wwzz77LLfffvvPXNObA8/FZrNZXn31VY4ePZrzfnV1NdFo1Dx9GI/HuXTp EolEAl3XOXXqFAMDA3z88ceLOr7tdzwXe/DgQd577z0z39HRwdNPP80DDzyQs9OuaRrZbJbz58/z 9ttvc+LECebm5swdfEEung6e+vr6cqQ+9dRTHD16lAcffND2SIwsy9x7770cOnSI3t5eWlpafs7q 3lR4FrHpdJrXXnvNzPf09PDMM8+Uvf6WLVt49913XT/G6hc8E9vX18f4+DgA4XCYAwcOlFhjIZFI xLXLVfyGZ03xyZMnzeldu3Y5urRVUBpPxGqaxtDQkJnv7Oz0ohq+xhOx4+Pj3Lhxw8xHo1EvquFr PBGbSCRy8rW1tV5Uw9d4IjaZTObkI5GIF9XwNZ6IzReZL1pQOZ6IzW9685tmQeV4IraxsTHnvqDP P//ci2r4Gk/EyrLM/fffb+bPnDnjRTV8jWcHKLq7u83p48ePW28oEriAZ2J7enq45ZZbgPlzra+8 8orjMpLJpHldriAXz8QGg0Gee+45M9/X18fhw4fLXv/ChQvs27dPDLwK4Olpu56eHvbu3Wvm33zz TZ544gkGBwdt79zTNI1z587x/PPP89hjj5k3IAkWsixOtIdCIY4dOwbAZ599xuOPP05NTQ3RaNS8 OmJiYoIvvvgiJ0JDoZAr97z4Ec/FKorCiy++SEdHB2+88YZ5zdPU1BQDAwO268iyTHd3N/v376eu rk6ctrPBc7EGO3bsYPv27Zw+fZr+/n7Onj3L+Pg4iUTCvG+3tbWV9vZ2HnnkEdavXy/OxRZh2YiF +Ujs6uqiq6trwbyleBaEnxEXjPsUIdanCLE+RYj1KUKsTxFifYoQ61OEWJ8ixPoUIdanCLE+RYj1 KUKsTxFifYoQ61OEWJ8ixPoUIdanCLE+RYj1KUKsTxFifYoQ61OEWJ8ixPoUIdanCLE+RYj1KUKs TxFifYoQ61OEWJ8ixPoUIdanCLE+RYj1KUKsTxFifYorYiVJcqMYgYu4InZmZsaNYlYkoVAImP/z RjdxRewPP/zgRjErkmUtdnh42I1iVhxVVVXmQz7dbvUqFitJEpcuXRL97CIwHsS9FH+XWrFY4+9A L1++XHFlVhLBYND8m9R4PE4mk3G1/IrEyrJsplOnTokHVzrgjjvuQFEUkskkU1NTZLNZV+UuWqwk STliNU2jr69PNMll0NTURHNzM7Ozs4yMjJhSs9msa4OoRYu1SjVSIpHgk08+EXKL0NzcTGtrK8lk kosXL5JOp02pmUyGTCZj+9h8pyxKrKIotmJlWebq1at88MEHpFIpIdhCKBRiy5YtbNy4katXr3L2 7FmSyWSOVCNis9lsxd2a4wdR5zfBdml6epoPP/yQ2267jba2NtasWbMi+99AIEBNTQ21tbWEw2HG x8cZHh4mnU4TCARQVRVJknISYE6r6uKfE+5oTUmSikZrfvruu++Ix+MoioKiKKxatcocRS8li/0R uf3j03WdK1eukMlkUFXVlBkIBBYItUvAouU6WssQ5lSwIXOlHXq0dkXZbLakRGve2M7GtnZK2WKt kpxKlWV5RTbFVjRNKyk3X7Lxaoh2Qlli7fpVJ1ErmKccsdZILSS9HMoSayerXKliZJxLJpNxFKnW 5KS/LblkKXGlBIP7g5KbBV3XbX/YxeSWSuX2t0XFltq1KTVfYI+u6zlyofDAqVBzXYqiYsuNVruo FU3wPIWiVtO0HLnWbVasOZYkydxdKkZBseWOdgtFreAnCsktd5RcSG4xbMWWamJL9bH5X0pQGEMu 5EZqqea41GDKdo7TfVTrrk/+L1OSJCG3CLquF4xcKNwclxpMLRDrVGp+1NpVXFAca39bTqTmi7fb 7q6IFf1qaQr1swZWuVA6Uu1G0FZcEyuonEoGU/n9bU7OyaBJ7No4p1TUgnO5YH/BvisRK3CPYoOp Us2x9coLFbhuZGZnZx1HrcAZ5URtOWeCYOGBjMnJSbMMFRgzMtlslqmpKRobG0UT7DFOzwRNT08T i8XM9WXgLGCeAb9w4YKI1mVC/vVQ+Re9Wa+T+uijj3IuOpeBBHDceGNoaIhEIuGKVLEPa4+T7VJI rlXwxMQER44csa42aBy2+AZ4EpA1TWNkZIRoNEo4HDavV7ImEa3uUG5Xlt8vW5vjmZkZXnrpJcbG xqyr/N4Q+1+gHtgKkEqlGB4eZt26daxdu3aBWIE7OBFrLG8dPH355Ze8/PLLjIyMWBfvAw5aSw4B fwd2WJfasGEDnZ2dbN68mYaGBkcDJtEUF8fp4FNVVVKpFF999RX9/f2cP38+fxv/B+gGJvNLDgN/ A3rsCg6Hw0QikbIqIaSWhxO5MzMzxe5FHmDe23ixMp78cQFdpGWfbgB/BMruIyPAfuAcoC2DLyBS broM/AlosJNXbjuwDugC1jIvXOANKWAC6AdGiy34f92AFnOZ6uyjAAAAAElFTkSuQmCC "
id="image4221"
x="89.958641"
y="628.24109" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 8.6 KiB

View file

@ -1,298 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="62.636364"
height="62.090908"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.48.5 r10040"
sodipodi:docname="icon_config_sound.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
version="1.0">
<defs
id="defs4">
<linearGradient
id="linearGradient3802">
<stop
style="stop-color:#fdfdfd;stop-opacity:0;"
offset="0"
id="stop3804" />
<stop
id="stop3814"
offset="0.35707802"
style="stop-color:#b8b8b8;stop-opacity:1;" />
<stop
id="stop3810"
offset="0.5"
style="stop-color:#717171;stop-opacity:1;" />
<stop
style="stop-color:#b6b6b6;stop-opacity:1;"
offset="0.64876282"
id="stop3812" />
<stop
style="stop-color:#fbfbfb;stop-opacity:0;"
offset="1"
id="stop3806" />
</linearGradient>
<linearGradient
id="linearGradient3797">
<stop
id="stop3799"
offset="0"
style="stop-color:#000000;stop-opacity:1;" />
<stop
id="stop3801"
offset="1"
style="stop-color:#656565;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient3169">
<stop
style="stop-color:#0000ff;stop-opacity:1;"
offset="0"
id="stop3171" />
<stop
style="stop-color:#000067;stop-opacity:1;"
offset="1"
id="stop3173" />
</linearGradient>
<linearGradient
id="linearGradient4766">
<stop
style="stop-color:#784421;stop-opacity:1;"
offset="0"
id="stop4768" />
<stop
style="stop-color:#3d2210;stop-opacity:0;"
offset="1"
id="stop4770" />
</linearGradient>
<linearGradient
id="linearGradient4758">
<stop
style="stop-color:#a05a2c;stop-opacity:1;"
offset="0"
id="stop4760" />
<stop
style="stop-color:#3d2210;stop-opacity:1;"
offset="1"
id="stop4762" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective10" />
<inkscape:perspective
id="perspective2484"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4758"
id="linearGradient4764"
x1="466.09601"
y1="485.96021"
x2="715.14801"
y2="485.96021"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4766"
id="linearGradient4772"
x1="496.548"
y1="485.26816"
x2="683.31201"
y2="485.26816"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3169"
id="radialGradient3175"
cx="120.07376"
cy="56.138123"
fx="120.07376"
fy="56.138123"
r="82.790039"
gradientTransform="matrix(1,0,0,0.2116376,0,44.257186)"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6482"
id="linearGradient6488"
x1="32.18182"
y1="3.2835093"
x2="32.18182"
y2="13.02554"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0281354,0,0,1.0429299,85.21874,131.0326)" />
<linearGradient
id="linearGradient6482">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop6484" />
<stop
style="stop-color:#00ff00;stop-opacity:0;"
offset="1"
id="stop6486" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6464"
id="linearGradient6470"
x1="32.090908"
y1="1.8181819"
x2="31.09091"
y2="62.909088"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(0,-0.1818182)" />
<linearGradient
id="linearGradient6464">
<stop
style="stop-color:#0061ff;stop-opacity:1;"
offset="0"
id="stop6466" />
<stop
style="stop-color:#001c4c;stop-opacity:1;"
offset="1"
id="stop6468" />
</linearGradient>
<linearGradient
y2="62.909088"
x2="31.09091"
y1="1.8181819"
x1="32.090908"
gradientTransform="translate(86.2151,131.5372)"
gradientUnits="userSpaceOnUse"
id="linearGradient4477"
xlink:href="#linearGradient6464"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3802"
id="linearGradient3808"
x1="130.53949"
y1="179.4781"
x2="130.80582"
y2="150.92148"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3802"
id="linearGradient3031"
gradientUnits="userSpaceOnUse"
x1="130.53949"
y1="179.4781"
x2="130.80582"
y2="150.92148" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.9415244"
inkscape:cx="22.018778"
inkscape:cy="29.620124"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="465"
inkscape:window-height="423"
inkscape:window-x="-4"
inkscape:window-y="584"
inkscape:window-maximized="0"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-86.987816,-132.85536)">
<rect
style="fill:url(#linearGradient4477);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-opacity:1"
id="rect6462"
width="61.636364"
height="61.090908"
x="87.487816"
y="133.35536"
ry="5.6363635" />
<rect
style="fill:url(#linearGradient6488);fill-opacity:1;fill-rule:nonzero;stroke:none"
id="rect6472"
width="59.796619"
height="13.251164"
x="88.407707"
y="134.45705"
ry="4.7325583" />
<g
id="g3023"
transform="matrix(-1,0,0,-1,235.53472,326.55032)">
<path
inkscape:connector-curvature="0"
id="rect3015"
d="m 113.67532,142.79285 0,43.84374 18.5,-13.40625 14.0625,0 0,-16.59374 -13.4375,0 -19.125,-13.84375 z"
style="fill:#b6b6b6;fill-opacity:1;fill-rule:nonzero;stroke:none" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path3791"
d="m 107.25028,182.88295 c -23.753359,-19.83452 -0.0827,-38.48619 -0.0827,-38.48619"
style="fill:none;stroke:#e96800;stroke-width:2.30299997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path3791-1"
d="M 103.80137,187.75537 C 73.5834,162.52278 103.69616,138.79495 103.69616,138.79495"
style="fill:none;stroke:#e96800;stroke-width:2.16618037px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path3791-7"
d="m 110.74869,177.97273 c -17.104281,-14.28241 -0.0595,-27.71308 -0.0595,-27.71308"
style="fill:none;stroke:#e96800;stroke-width:2.15799999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<path
id="rect3015-1"
d="m 113.71148,150.58705 0,28.88551 18.50001,-8.83242 14.0625,0 0,-10.93244 -13.4375,0 -19.12501,-9.12065 z"
style="fill:url(#linearGradient3031);fill-opacity:1;fill-rule:nonzero;stroke:none"
inkscape:connector-curvature="0" />
<rect
y="142.77277"
x="112.37492"
height="43.822105"
width="1.3598391"
id="rect3800"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 9.3 KiB

View file

@ -1,258 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="300"
height="300"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.48.5 r10040"
version="1.0"
sodipodi:docname="storm.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<defs
id="defs4">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 150 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="300 : 150 : 1"
inkscape:persp3d-origin="150 : 100 : 1"
id="perspective31" />
<linearGradient
id="linearGradient3841">
<stop
style="stop-color:white;stop-opacity:1;"
offset="0"
id="stop3843" />
<stop
style="stop-color:#fefce9;stop-opacity:0;"
offset="1"
id="stop3845" />
</linearGradient>
<linearGradient
id="linearGradient3813">
<stop
id="stop3815"
offset="0"
style="stop-color:#ff8632;stop-opacity:0;" />
<stop
style="stop-color:#ff8232;stop-opacity:0.40000001;"
offset="0.5"
id="stop4577" />
<stop
id="stop4579"
offset="0.75"
style="stop-color:#cf5300;stop-opacity:0.60000002;" />
<stop
id="stop3817"
offset="1"
style="stop-color:black;stop-opacity:0.80000001;" />
</linearGradient>
<linearGradient
id="linearGradient3779">
<stop
style="stop-color:#ff8232;stop-opacity:1;"
offset="0"
id="stop3781" />
<stop
style="stop-color:#ff4d32;stop-opacity:1;"
offset="1"
id="stop3783" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3779"
id="linearGradient3785"
x1="1.0101526"
y1="2.0049992"
x2="300"
y2="300"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3813"
id="radialGradient3819"
cx="150"
cy="150"
fx="150"
fy="150"
r="150"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3841"
id="linearGradient3847"
x1="149.99989"
y1="0.45544016"
x2="149.99989"
y2="299.54449"
gradientUnits="userSpaceOnUse" />
<inkscape:perspective
id="perspective2461"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective2511"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective2578"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective2650"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective2467"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective2519"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective2571"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective2621"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3779"
id="linearGradient3782"
gradientUnits="userSpaceOnUse"
x1="1.0101526"
y1="2.0049992"
x2="300"
y2="300" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.979899"
inkscape:cx="56.521564"
inkscape:cy="177.14958"
inkscape:document-units="px"
inkscape:current-layer="layer2"
width="765px"
height="1260px"
inkscape:window-width="1920"
inkscape:window-height="1028"
inkscape:window-x="-8"
inkscape:window-y="-8"
showgrid="false"
inkscape:window-maximized="1" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Button"
inkscape:groupmode="layer"
id="layer1"
style="display:inline">
<path
d="m 300,150 a 150,150 0 1 1 -300,0 150,150 0 1 1 300,0 z"
sodipodi:ry="150"
sodipodi:rx="150"
sodipodi:cy="150"
sodipodi:cx="150"
id="path2760"
style="fill:url(#linearGradient3785);fill-opacity:1.0;fill-rule:evenodd;stroke:none"
sodipodi:type="arc" />
<path
sodipodi:type="arc"
style="fill:url(#linearGradient3782);fill-opacity:1;fill-rule:evenodd;stroke:none"
id="path3788"
sodipodi:cx="150"
sodipodi:cy="150"
sodipodi:rx="150"
sodipodi:ry="150"
d="m 300,150 a 150,150 0 1 1 -300,0 150,150 0 1 1 300,0 z"
transform="translate(-1.4253374e-6,2.8293252e-6)" />
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Schatten"
style="display:inline">
<path
sodipodi:type="arc"
style="fill:url(#radialGradient3819);fill-opacity:1.0;fill-rule:evenodd;stroke:none"
id="path3790"
sodipodi:cx="150"
sodipodi:cy="150"
sodipodi:rx="150"
sodipodi:ry="150"
d="m 300,150 a 150,150 0 1 1 -300,0 150,150 0 1 1 300,0 z"
transform="translate(-0.28640902,0.00435494)" />
</g>
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="Icon" />
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="Glanz"
style="display:inline">
<path
d="m 300,150 a 150,150 0 1 1 -300,0 150,150 0 1 1 300,0 z"
sodipodi:ry="150"
sodipodi:rx="150"
sodipodi:cy="150"
sodipodi:cx="150"
id="path3821"
style="fill:url(#linearGradient3847);fill-opacity:1;fill-rule:evenodd;stroke:none"
sodipodi:type="arc"
transform="matrix(0.649475,0,0,0.476763,52.5787,2)" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 7.9 KiB

View file

@ -1,258 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="300"
height="300"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.48.5 r10040"
version="1.0"
sodipodi:docname="storm_highlight.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<defs
id="defs4">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 150 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="300 : 150 : 1"
inkscape:persp3d-origin="150 : 100 : 1"
id="perspective31" />
<linearGradient
id="linearGradient3841">
<stop
style="stop-color:white;stop-opacity:1;"
offset="0"
id="stop3843" />
<stop
style="stop-color:#fefce9;stop-opacity:0;"
offset="1"
id="stop3845" />
</linearGradient>
<linearGradient
id="linearGradient3813">
<stop
id="stop3815"
offset="0"
style="stop-color:#ff8632;stop-opacity:0;" />
<stop
style="stop-color:#ffb98c;stop-opacity:0.40000001;"
offset="0.5"
id="stop4577" />
<stop
id="stop4579"
offset="0.75"
style="stop-color:#ffa163;stop-opacity:0.60000002;" />
<stop
id="stop3817"
offset="1"
style="stop-color:black;stop-opacity:0.80000001;" />
</linearGradient>
<linearGradient
id="linearGradient3779">
<stop
style="stop-color:#ff8232;stop-opacity:1;"
offset="0"
id="stop3781" />
<stop
style="stop-color:#ff4d32;stop-opacity:1;"
offset="1"
id="stop3783" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3779"
id="linearGradient3785"
x1="1.0101526"
y1="2.0049992"
x2="300"
y2="300"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3813"
id="radialGradient3819"
cx="150"
cy="150"
fx="150"
fy="150"
r="150"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3841"
id="linearGradient3847"
x1="149.99989"
y1="0.45544016"
x2="149.99989"
y2="299.54449"
gradientUnits="userSpaceOnUse" />
<inkscape:perspective
id="perspective2461"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective2511"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective2578"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective2650"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective2467"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective2519"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective2571"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective2621"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3779"
id="linearGradient3782"
gradientUnits="userSpaceOnUse"
x1="1.0101526"
y1="2.0049992"
x2="300"
y2="300" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.979899"
inkscape:cx="-22.270334"
inkscape:cy="177.14958"
inkscape:document-units="px"
inkscape:current-layer="layer2"
width="765px"
height="1260px"
inkscape:window-width="1920"
inkscape:window-height="1028"
inkscape:window-x="-8"
inkscape:window-y="-8"
showgrid="false"
inkscape:window-maximized="1" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Button"
inkscape:groupmode="layer"
id="layer1"
style="display:inline">
<path
d="m 300,150 a 150,150 0 1 1 -300,0 150,150 0 1 1 300,0 z"
sodipodi:ry="150"
sodipodi:rx="150"
sodipodi:cy="150"
sodipodi:cx="150"
id="path2760"
style="fill:url(#linearGradient3785);fill-opacity:1.0;fill-rule:evenodd;stroke:none"
sodipodi:type="arc" />
<path
sodipodi:type="arc"
style="fill:url(#linearGradient3782);fill-opacity:1;fill-rule:evenodd;stroke:none"
id="path3788"
sodipodi:cx="150"
sodipodi:cy="150"
sodipodi:rx="150"
sodipodi:ry="150"
d="m 300,150 a 150,150 0 1 1 -300,0 150,150 0 1 1 300,0 z"
transform="translate(-1.4253374e-6,2.8293252e-6)" />
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Schatten"
style="display:inline">
<path
sodipodi:type="arc"
style="fill:url(#radialGradient3819);fill-opacity:1.0;fill-rule:evenodd;stroke:none"
id="path3790"
sodipodi:cx="150"
sodipodi:cy="150"
sodipodi:rx="150"
sodipodi:ry="150"
d="m 300,150 a 150,150 0 1 1 -300,0 150,150 0 1 1 300,0 z"
transform="translate(-0.28640902,0.00435494)" />
</g>
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="Icon" />
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="Glanz"
style="display:inline">
<path
d="m 300,150 a 150,150 0 1 1 -300,0 150,150 0 1 1 300,0 z"
sodipodi:ry="150"
sodipodi:rx="150"
sodipodi:cy="150"
sodipodi:cx="150"
id="path3821"
style="fill:url(#linearGradient3847);fill-opacity:1;fill-rule:evenodd;stroke:none"
sodipodi:type="arc"
transform="matrix(0.649475,0,0,0.476763,52.5787,2)" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 8 KiB

View file

@ -1,152 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
<svg id="svg548" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="480" width="640" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata id="metadata128">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
</cc:Work>
</rdf:RDF>
</metadata>
<g id="g3634">
<g id="g3379" transform="matrix(1.25 0 0 .93750 0 .0000046874)">
<g id="g3111">
<g id="g3105">
<g id="flag" fill-rule="evenodd" transform="matrix(.72249 0 0 1.0321 0 -16.449)" stroke-width="1pt">
<rect id="rect895" height="496.06" width="237.4" y="15.937" x="0" fill="#0000bd"/>
<rect id="rect896" height="496.06" width="237.4" y="15.937" x="471.26" fill="#cc1900"/>
<rect id="rect897" height="496.06" width="233.86" y="15.937" x="237.4" fill="#fff600"/>
</g>
</g>
</g>
</g>
<g id="g919" transform="matrix(1.4342 0 0 1.4102 -183.84 -822.43)">
<g id="g853" stroke-width="1pt">
<path id="path738" d="m398.54 290.22c47.823 0.818 44.515-29.149 61.974-32.126 17.458-2.977 33.928 12.489 33.302 29.972 1.873 20.814-29.714 20.963-31.637 38.298-1.923 17.336 15.378 22.628 33.302 19.982s30.646-20.363 39.804-28.689c-13.321 7.493-24.218 4.778-25.21-8.558 0.673-17.497 18.103-23.847 26.345-17.96 6.476-5.298 6.09-7.423 13.209-6.246 4.828 2.944 6.143 2.861 8.999 7.418 3.717-2.355 5.269-3.54 12.204-0.597 4.306 1.767 7.181 4.961 9.841 9.808 3.146-2.486 8.086-3.413 13.762-0.197 3.61 1.837 8.108 7.182 8.72 12.995 8.451 1.696 11.381 3.654 14.034 7.953 15.765 21.775-2.435 58.473-1.432 77.205 1.004 18.731 16.651 19.981 16.651 19.981-14.717-9.42-0.201-15.9 6.745-16.55 22.252 2.292 18.508 35.135-5.18 29.366-18.978-5.18 38.921 3.281 37.525 62.637-1.396 61.021-32.815 49.01-32.815 49.01s26.838 10.109 21.646 30.09c-5.191 13.507-32.933 22.456-30.578-3.448-8.242 11.186-10.608 15.913-10.58 32.916-1.148 21.713 0.656 31.631 6.845 42.301 1.48-9.935 8.206-10.361 13.952-9.1 8.101 0.084 12.607 6.442 9.563 14.684 4.079-1.035 7.801 1.757 9.402 5.121 1.255 6.206 4.037 8.956-2.439 11.311 6.476 1.178 9.61 2.024 10.377 11.049 0.18 7.261-12.596 11.246-26.136 8.891 7.065 3.533 29.983 50.025 26.922 103.44-2.119 47.905-86.038 43.639-123.53 42.305-37.488-1.332-72.512 0.775-87.133 13.052 11.247 7.182-1.302 29.542-10.864 19.064 0 8.242-9.449 20.979-22.497 12.718 0.534 14.885-14.238 25.328-27.121 25.328s-27.655-10.443-27.121-25.328c-13.048 8.261-22.497-4.476-22.497-12.718-9.562 10.478-22.111-11.882-10.864-19.064-14.621-12.277-49.645-14.384-87.133-13.052-37.489 1.334-121.41 5.6-123.53-42.305-3.061-53.418 23.699-99.91 30.764-103.44-13.54 2.355-26.316-1.63-26.136-8.891 0.767-9.025 3.901-9.871 10.377-11.049-6.476-2.355-3.694-5.105-2.439-11.311 1.601-3.364 5.323-6.156 9.402-5.121-3.044-8.242 1.462-14.6 9.563-14.684 5.746-1.261 12.472-0.835 13.952 9.1 6.189-10.67 7.993-20.588 6.845-42.301 0.028-17.003-2.338-21.73-10.58-32.916 2.355 25.904-25.387 16.955-30.578 3.448-5.192-19.981 21.646-30.09 21.646-30.09s-31.419 12.011-32.815-49.01c-1.396-59.356 56.503-67.817 37.525-62.637-23.688 5.769-27.432-27.074-5.18-29.366 6.946 0.65 21.462 7.13 6.745 16.55 0 0 15.647-1.25 16.651-19.981 1.003-18.732-17.197-55.43-1.432-77.205 2.653-4.299 5.583-6.257 14.034-7.953 0.612-5.813 5.11-11.158 8.72-12.995 5.676-3.216 10.616-2.289 13.762 0.197 2.66-4.847 5.535-8.041 9.841-9.808 6.935-2.943 8.487-1.758 12.204 0.597 2.856-4.557 4.171-4.474 8.999-7.418 7.119-1.177 6.733 0.948 13.209 6.246 8.242-5.887 25.672 0.463 26.345 17.96-0.992 13.336-11.889 16.051-25.21 8.558 9.158 8.326 21.88 26.043 39.804 28.689s35.225-2.646 33.302-19.982c-1.923-17.335-33.51-17.484-31.637-38.298-0.626-17.483 15.844-32.949 33.302-29.972 17.459 2.977 14.151 32.944 62.182 32.126z" fill-rule="evenodd" transform="matrix(.38925 0 0 .37394 196.25 536.23)" stroke="#000" fill="#cba323"/>
<path id="path619" d="m356.44 346.62c-0.575 17.961-31.258 14.828-51.514 13.859-26.326-1.231-77.59-46.08-44.263-69.888" transform="matrix(.38925 0 0 .37394 196.25 536.23)" stroke="#000" fill="none"/>
<path id="path625" d="m164.84 449.52c-16.484 17.662 28.691 13.497 9.419-9.419-7.87-8.82-41.21 18.839-41.21 49.452s10.597 44.742 16.484 45.919c5.887 1.178 15.307-3.532 15.307-8.241 0-5.887-4.71-15.307-11.774-14.13-11.775 0-5.888 10.597-0.001 10.597" transform="matrix(.38925 0 0 .37394 196.25 536.23)" stroke="#000" fill="none"/>
<path id="path626" d="m163.39 451.39s-24.453 9.908-24.453 39.343c0 29.436 7.065 28.259 7.065 28.259" transform="matrix(.38925 0 0 .37394 196.25 536.23)" stroke="#000" fill="none"/>
<path id="path627" d="m166.02 430.68s24.726-3.533 23.549 18.838c-1.178 22.371-9.42 23.549-22.371 22.371-12.952-1.177-5.887-16.483-5.887-16.483" transform="matrix(.38925 0 0 .37394 196.25 536.23)" stroke="#000" fill="none"/>
<path id="path628" d="m156.6 543.71s18.839-1.178 17.661-21.194c-1.177-20.016-15.306-21.194-23.548-20.016-8.242 1.177-10.74 5.803-8.242 12.88" transform="matrix(.38925 0 0 .37394 196.25 536.23)" stroke="#000" fill="none"/>
<path id="path630" d="m150.71 567.26s3.936-8.158 16.887-8.158c12.952 0 18.982 30.386 17.805 63.354-1.178 32.968-33.515 61.37-40.58 59.015-7.064-2.355-10.597-3.533-4.71-8.242" transform="matrix(.38925 0 0 .37394 196.25 536.23)" stroke="#000" fill="none"/>
<path id="path633" d="m172.39 643.31-22.859 38.166" transform="matrix(.38925 0 0 .37394 196.25 536.23)" stroke="#000" fill="none"/>
<path id="path634" d="m141.29 667.34c0 0.416 5.054-1.105 8.587 1.249 3.532 2.355 4.365 5.816 4.365 5.816" transform="matrix(.38925 0 0 .37394 195.85 536.34)" stroke="#000" fill="none"/>
<path id="path635" d="m144.82 650.86s4.517-1.819 10.404 0.536 5.695 7.662 5.695 7.662" transform="matrix(.35485 0 0 .26779 202.53 605.66)" stroke="#000" fill="none"/>
<path id="path636" d="m171.78 731.95c12.251 6.364 24.282-25.181 0.671-26.726-16.888-0.69-29.085 23.268-26.73 35.041 6.431 40.061 10.444 66.861 50.568 72.045 30.613 2.355 78.451-5.101 108.3-1.523 29.44 3.433 61.94 14.272 73.714 26.047 11.774 11.774 19.112 11.892 19.112 23.667 0 11.774-16.815 17.816-23.476 10.74" transform="matrix(.38925 0 0 .37394 195.83 537.04)" stroke="#000" fill="none"/>
<path id="path637" d="m369.84 876.92c4.305-2.914 14.556-20.425 4.722-30.815-15.194-15.401-26.165-21.479-33.658-23.977" transform="matrix(.38925 0 0 .37394 195.83 537.04)" stroke="#000" fill="none"/>
<path id="path638" d="m347.55 863.28c5.828-3.532 6.684-15.298 0.594-24.274-6.091-8.975-21.941-16.165-53.073-18.799-23.583-1.982-87.844 8.444-111.39 1.379-33.059-12.721-53.845-34.149-48.773-87.391 1.521-20.621 11.917-34.465 32.278-37.105 22.858-0.143 28.813 14.734 28.813 33.571 0 9.681-25.317 18.878-29.909 9.705-7.109-12.854-10.217-24.451 15.881-30.607" transform="matrix(.38925 0 0 .37394 195.83 537.04)" stroke="#000" fill="none"/>
<path id="path642" d="m337.41 844.59s9.765 5.685 7.41 10.395c-2.354 4.709-8.658 2.7-4.496-2.296" transform="matrix(.38925 0 0 .37394 195.83 537.04)" stroke="#000" fill="none"/>
<path id="path643" d="m238.95 291.4s-6.66 6.66-3.33 22.479 9.991 14.987 9.991 14.987" transform="matrix(.38925 0 0 .37394 196.25 536.23)" stroke="#000" fill="none"/>
<path id="path644" d="m216.47 300.55c-0.833 1.665-9.706 11.858-4.71 22.681 4.995 10.824 8.956 12.977 8.956 12.977" transform="matrix(.38925 0 0 .37394 196.25 536.23)" stroke="#000" fill="none"/>
<path id="path645" d="m193.99 313.87s-7.195 10.622-8.567 29.555 7.789 45 7.533 54.698c-0.581 20.609-24.012 30.839-24.012 30.839" transform="matrix(.38925 0 0 .37394 196.25 536.23)" stroke="#000" fill="none"/>
<path id="path652" d="m159.85 543.66c1.665 0 34.135-29.972 34.135 76.597-2.498 61.61-38.298 67.438-38.298 67.438" transform="matrix(.38925 0 0 .37394 196.25 536.23)" stroke="#000" fill="none"/>
<path id="path653" d="m162.49 689.71c13.148-3.336 40.425 10.99 30.613 35.324" transform="matrix(.38925 0 0 .37394 196.91 537.13)" stroke="#000" fill="none"/>
<path id="path654" d="m167.78 681.47c8.439 0.785 15.319 6.904 18.458 15.343" transform="matrix(.38925 0 0 .37394 196.12 536.47)" stroke="#000" fill="none"/>
<path id="path655" d="m148.2 477.06s9.991 14.154 24.977 14.154 19.982-15.819 19.982-15.819" transform="matrix(.38925 0 0 .37394 196.25 536.23)" stroke="#000" fill="none"/>
<path id="path656" d="m146.53 484.55s9.158 16.652 24.977 17.484c15.819 0.833 21.647-10.823 21.647-10.823" transform="matrix(.38925 0 0 .37394 196.25 536.23)" stroke="#000" fill="none"/>
<path id="path657" d="m179.84 509.52s11.657 4.996 11.657 19.15c0 14.153-10.824 10.823-10.824 10.823" transform="matrix(.38925 0 0 .37394 196.25 536.23)" stroke="#000" fill="none"/>
<path id="path712" d="m356.44 346.62c-0.575 17.961-31.258 14.828-51.514 13.859-26.326-1.231-77.59-46.08-44.263-69.888" transform="matrix(-.38925 0 0 .37394 506.43 536.23)" stroke="#000" fill="none"/>
<path id="path713" d="m164.84 449.52c-16.484 17.662 28.691 13.497 9.419-9.419-7.87-8.82-41.21 18.839-41.21 49.452s10.597 44.742 16.484 45.919c5.887 1.178 15.307-3.532 15.307-8.241 0-5.887-4.71-15.307-11.774-14.13-11.775 0-5.888 10.597-0.001 10.597" transform="matrix(-.38925 0 0 .37394 506.43 536.23)" stroke="#000" fill="none"/>
<path id="path714" d="m163.39 451.39s-24.453 9.908-24.453 39.343c0 29.436 7.065 28.259 7.065 28.259" transform="matrix(-.38925 0 0 .37394 506.43 536.23)" stroke="#000" fill="none"/>
<path id="path715" d="m166.02 430.68s24.726-3.533 23.549 18.838c-1.178 22.371-9.42 23.549-22.371 22.371-12.952-1.177-5.887-16.483-5.887-16.483" transform="matrix(-.38925 0 0 .37394 506.43 536.23)" stroke="#000" fill="none"/>
<path id="path716" d="m156.6 543.71s18.839-1.178 17.661-21.194c-1.177-20.016-15.306-21.194-23.548-20.016-8.242 1.177-10.74 5.803-8.242 12.88" transform="matrix(-.38925 0 0 .37394 506.43 536.23)" stroke="#000" fill="none"/>
<path id="path717" d="m150.71 567.26s3.936-8.158 16.887-8.158c12.952 0 18.982 30.386 17.805 63.354-1.178 32.968-33.515 61.37-40.58 59.015-7.064-2.355-10.597-3.533-4.71-8.242" transform="matrix(-.38925 0 0 .37394 506.43 536.23)" stroke="#000" fill="none"/>
<path id="path718" d="m172.39 643.31-22.859 38.166" transform="matrix(-.38925 0 0 .37394 506.43 536.23)" stroke="#000" fill="none"/>
<path id="path719" d="m141.29 667.34c0 0.416 5.054-1.105 8.587 1.249 3.532 2.355 4.365 5.816 4.365 5.816" transform="matrix(-.38925 0 0 .37394 506.83 536.47)" stroke="#000" fill="none"/>
<path id="path720" d="m144.82 650.86s4.517-1.819 10.404 0.536 5.695 7.662 5.695 7.662" transform="matrix(-.35485 0 0 .26779 500.15 605.66)" stroke="#000" fill="none"/>
<path id="path721" d="m170.42 741.5c-2.354 0 15.451-19.877-0.688-23.897-20.284-3.872-28.744 16.55-26.389 28.323 5.072 28.746 16.897 64.033 52.945 66.388 30.613 2.355 78.451-5.101 108.3-1.523 29.44 3.433 61.94 14.272 73.714 26.047 11.774 11.774 19.112 11.892 19.112 23.667 0 11.774-16.815 17.816-23.476 10.74" transform="matrix(-.38925 0 0 .37394 505.26 537.04)" stroke="#000" fill="none"/>
<path id="path722" d="m369.84 876.92c4.305-2.914 14.556-20.425 4.722-30.815-15.194-15.401-26.165-21.479-33.658-23.977" transform="matrix(-.38925 0 0 .37394 505.26 537.04)" stroke="#000" fill="none"/>
<path id="path723" d="m347.55 863.28c5.828-3.532 6.684-15.298 0.594-24.274-6.091-8.975-21.941-16.165-53.073-18.799-23.583-1.982-87.844 8.444-111.39 1.379-43.929-18.378-53.505-42.635-52.509-81.734 1.521-20.621 12.257-36.587 32.618-39.227 22.858-0.143 26.774 11.906 26.774 30.744 0 9.68-9.013 25.716-21.334 23.362-12.322-3.188-21.92-25.013-1.106-36.669" transform="matrix(-.38925 0 0 .37394 505.26 537.04)" stroke="#000" fill="none"/>
<path id="path724" d="m337.41 844.59s9.765 5.685 7.41 10.395c-2.354 4.709-8.658 2.7-4.496-2.296" transform="matrix(-.38925 0 0 .37394 505.26 537.04)" stroke="#000" fill="none"/>
<path id="path725" d="m238.95 291.4s-6.66 6.66-3.33 22.479 9.991 14.987 9.991 14.987" transform="matrix(-.38925 0 0 .37394 506.43 536.23)" stroke="#000" fill="none"/>
<path id="path726" d="m216.47 300.55c-0.833 1.665-9.706 11.858-4.71 22.681 4.995 10.824 8.956 12.977 8.956 12.977" transform="matrix(-.38925 0 0 .37394 506.43 536.23)" stroke="#000" fill="none"/>
<path id="path727" d="m193.99 313.87s-7.195 10.622-8.567 29.555 7.789 45 7.533 54.698c-0.581 20.609-24.012 30.839-24.012 30.839" transform="matrix(-.38925 0 0 .37394 506.43 536.23)" stroke="#000" fill="none"/>
<path id="path730" d="m159.85 543.66c1.665 0 34.135-29.972 34.135 76.597-2.498 61.61-38.298 67.438-38.298 67.438" transform="matrix(-.38925 0 0 .37394 506.43 536.23)" stroke="#000" fill="none"/>
<path id="path731" d="m158.07 701.03c16.205-14.296 47.219 13.112 35.708 38.506" transform="matrix(-.38925 0 0 .37394 506.56 534.49)" stroke="#000" fill="none"/>
<path id="path732" d="m167.78 681.47c8.439 0.785 17.357 6.197 20.496 14.636" transform="matrix(-.38925 0 0 .37394 508.02 537.4)" stroke="#000" fill="none"/>
<path id="path733" d="m148.2 477.06s9.991 14.154 24.977 14.154 19.982-15.819 19.982-15.819" transform="matrix(-.38925 0 0 .37394 506.43 536.23)" stroke="#000" fill="none"/>
<path id="path734" d="m146.53 484.55s9.158 16.652 24.977 17.484c15.819 0.833 21.647-10.823 21.647-10.823" transform="matrix(-.38925 0 0 .37394 506.43 536.23)" stroke="#000" fill="none"/>
<path id="path735" d="m179.84 509.52s11.657 4.996 11.657 19.15c0 14.153-10.824 10.823-10.824 10.823" transform="matrix(-.38925 0 0 .37394 506.43 536.23)" stroke="#000" fill="none"/>
<path id="path741" d="m353.01 313.46c0.416-0.416-1.665-9.159 8.326-8.742 9.99 0.416 6.244 9.574 14.57 12.904 7.909 2.082 22.063 4.164 22.528 4.164s14.619-2.082 22.528-4.164c8.326-3.33 4.58-12.488 14.57-12.904 9.991-0.417 7.91 8.326 8.326 8.742" transform="matrix(.38925 0 0 .37394 196.25 536.23)" stroke="#000" fill="none"/>
<path id="path744" d="m373.28 349.42c-0.294-4.121-1.249-9.55-6.871-9.966-10.525-0.345-18.856 20.605 4.444 20.753 17.055 0.111 17.198-32.355 0.804-32.831-23.549-0.667-26.788 13.389-26.402 16.143 5.957-50.397-33.246-40.206-31.373-59.77 0.207-10.606 10.849-11.822 22.479-9.857 17.459 2.799 14.151 30.967 62.078 30.198 47.927 0.769 44.619-27.399 62.078-30.198 11.63-1.965 22.272-0.749 22.479 9.857 1.873 19.564-37.33 9.373-31.373 59.77 0.386-2.754-2.853-16.81-26.402-16.143-16.394 0.476-16.251 32.942 0.804 32.831 23.3-0.148 14.969-21.098 4.444-20.753-5.622 0.416-6.577 5.845-6.871 9.966" transform="matrix(.38925 0 0 .37394 196.25 536.23)" stroke="#000" fill="none"/>
<path id="path814" d="m404.47 889.55v0.217h-4.155v-0.217h0.264c0.231 0 0.416-0.041 0.557-0.123 0.101-0.055 0.179-0.148 0.234-0.281 0.043-0.094 0.065-0.34 0.065-0.738v-5.227c0-0.406-0.022-0.66-0.065-0.762-0.043-0.101-0.131-0.189-0.264-0.263-0.129-0.079-0.304-0.118-0.527-0.118h-0.264v-0.216h4.155v0.216h-0.264c-0.23 0-0.416 0.041-0.557 0.123-0.101 0.055-0.181 0.149-0.24 0.282-0.043 0.093-0.064 0.34-0.064 0.738v5.227c0 0.406 0.021 0.66 0.064 0.761 0.047 0.102 0.135 0.192 0.264 0.27 0.133 0.074 0.31 0.111 0.533 0.111h0.264z" transform="matrix(1.0544 -.26437 .21258 1.3113 -201.97 -224.59)"/>
<path id="path815" d="m399.64 881.82v2.15h-0.211c-0.125-0.496-0.264-0.852-0.416-1.066-0.153-0.219-0.362-0.393-0.627-0.522-0.149-0.07-0.409-0.105-0.78-0.105h-0.591v6.129c0 0.406 0.021 0.66 0.064 0.761 0.047 0.102 0.135 0.192 0.264 0.27 0.132 0.074 0.312 0.111 0.539 0.111h0.263v0.217h-4.16v-0.217h0.264c0.23 0 0.416-0.041 0.557-0.123 0.101-0.055 0.181-0.148 0.24-0.281 0.043-0.094 0.064-0.34 0.064-0.738v-6.129h-0.574c-0.535 0-0.924 0.113-1.166 0.34-0.34 0.316-0.555 0.767-0.645 1.353h-0.222v-2.15h7.137z" transform="matrix(1.0667 -.17210 .13839 1.3265 -141.19 -274.74)"/>
<path id="path820" d="m370.04 882.28v3.263h0.229c0.351 0 0.638-0.052 0.861-0.158 0.222-0.105 0.41-0.283 0.562-0.533 0.157-0.25 0.258-0.588 0.305-1.014h0.205v3.99h-0.205c-0.074-0.753-0.277-1.25-0.609-1.488-0.328-0.242-0.702-0.363-1.119-0.363h-0.229v2.432c0 0.406 0.021 0.66 0.064 0.761 0.047 0.102 0.135 0.192 0.264 0.27 0.133 0.074 0.311 0.111 0.533 0.111h0.264v0.217h-4.154v-0.217h0.263c0.231 0 0.416-0.041 0.557-0.123 0.102-0.055 0.18-0.148 0.234-0.281 0.043-0.094 0.065-0.34 0.065-0.738v-5.227c0-0.406-0.022-0.66-0.065-0.762-0.043-0.101-0.13-0.189-0.263-0.263-0.129-0.079-0.305-0.118-0.528-0.118h-0.263v-0.216h6.703v2.279h-0.24c-0.055-0.535-0.196-0.932-0.422-1.19-0.223-0.257-0.547-0.439-0.973-0.544-0.234-0.059-0.668-0.088-1.301-0.088h-0.738z" transform="matrix(1.0721 -.10760 .086523 1.3333 -97.42 -305.95)"/>
<path id="path823" d="m354.64 881.82v2.15h-0.211c-0.125-0.496-0.264-0.852-0.416-1.066-0.153-0.219-0.362-0.393-0.627-0.522-0.149-0.07-0.409-0.105-0.78-0.105h-0.591v6.129c0 0.406 0.021 0.66 0.064 0.761 0.047 0.102 0.135 0.192 0.264 0.27 0.132 0.074 0.312 0.111 0.539 0.111h0.263v0.217h-4.16v-0.217h0.264c0.23 0 0.416-0.041 0.557-0.123 0.101-0.055 0.181-0.148 0.24-0.281 0.043-0.094 0.064-0.34 0.064-0.738v-6.129h-0.574c-0.535 0-0.924 0.113-1.166 0.34-0.34 0.316-0.555 0.767-0.645 1.353h-0.222v-2.15h7.137z" transform="matrix(1.0756 0 0 1.3376 -22.152 -348.78)"/>
<path id="path824" d="m346.8 889.55v0.217h-4.154v-0.217h0.263c0.231 0 0.416-0.041 0.557-0.123 0.101-0.055 0.18-0.148 0.234-0.281 0.043-0.094 0.065-0.34 0.065-0.738v-5.227c0-0.406-0.022-0.66-0.065-0.762-0.043-0.101-0.131-0.189-0.263-0.263-0.129-0.079-0.305-0.118-0.528-0.118h-0.263v-0.216h4.154v0.216h-0.264c-0.23 0-0.416 0.041-0.556 0.123-0.102 0.055-0.182 0.149-0.241 0.282-0.043 0.093-0.064 0.34-0.064 0.738v5.227c0 0.406 0.021 0.66 0.064 0.761 0.047 0.102 0.135 0.192 0.264 0.27 0.133 0.074 0.311 0.111 0.533 0.111h0.264z" transform="matrix(1.0756 0 0 1.3376 -22.555 -348.78)"/>
<path id="path825" d="m336.73 881.82 3.92 4.927v-3.416c0-0.476-0.069-0.798-0.206-0.966-0.187-0.227-0.502-0.336-0.943-0.329v-0.216h2.625v0.216c-0.336 0.043-0.562 0.1-0.68 0.17-0.113 0.067-0.203 0.178-0.269 0.334-0.063 0.153-0.094 0.416-0.094 0.791v6.616h-0.199l-5.373-6.616v5.051c0 0.457 0.103 0.766 0.31 0.926 0.211 0.16 0.452 0.24 0.721 0.24h0.188v0.217h-2.819v-0.217c0.438-0.004 0.742-0.094 0.914-0.269 0.172-0.176 0.258-0.475 0.258-0.897v-5.607l-0.17-0.211c-0.168-0.211-0.316-0.35-0.445-0.416-0.129-0.067-0.315-0.104-0.557-0.112v-0.216h2.819z" transform="matrix(1.0756 0 0 1.3376 -22.957 -348.78)"/>
<path id="path826" d="m333.61 881.82v0.216c-0.289 0.047-0.547 0.202-0.773 0.463-0.164 0.196-0.408 0.655-0.733 1.377l-2.736 6.071h-0.193l-2.725-6.317c-0.328-0.762-0.549-1.209-0.662-1.342-0.109-0.132-0.318-0.216-0.627-0.252v-0.216h3.809v0.216h-0.129c-0.344 0-0.578 0.043-0.703 0.129-0.09 0.059-0.135 0.145-0.135 0.258 0 0.07 0.015 0.154 0.047 0.252 0.031 0.094 0.136 0.35 0.316 0.768l1.693 3.955 1.571-3.522c0.187-0.426 0.303-0.711 0.345-0.855 0.043-0.145 0.065-0.268 0.065-0.369 0-0.118-0.031-0.221-0.094-0.311-0.062-0.09-0.154-0.158-0.275-0.205-0.168-0.066-0.391-0.1-0.668-0.1v-0.216h2.607z" transform="matrix(1.0747 .054651 -.043945 1.3365 15.894 -366.74)"/>
<path id="path827" d="m321.03 881.64 0.065 2.648h-0.241c-0.113-0.664-0.392-1.197-0.837-1.599-0.442-0.406-0.92-0.61-1.436-0.61-0.398 0-0.715 0.108-0.949 0.323-0.231 0.211-0.346 0.455-0.346 0.732 0 0.176 0.041 0.332 0.123 0.469 0.113 0.183 0.295 0.365 0.545 0.545 0.184 0.129 0.607 0.357 1.271 0.685 0.93 0.457 1.557 0.889 1.881 1.295 0.321 0.407 0.481 0.871 0.481 1.395 0 0.664-0.26 1.236-0.779 1.717-0.516 0.476-1.172 0.714-1.969 0.714-0.25 0-0.487-0.025-0.709-0.076-0.223-0.051-0.502-0.146-0.838-0.287-0.188-0.078-0.342-0.117-0.463-0.117-0.102 0-0.209 0.039-0.322 0.117-0.114 0.078-0.205 0.197-0.276 0.358h-0.216v-3h0.216c0.172 0.843 0.502 1.488 0.991 1.933 0.492 0.442 1.021 0.662 1.587 0.662 0.438 0 0.786-0.119 1.043-0.357 0.262-0.238 0.393-0.516 0.393-0.832 0-0.188-0.051-0.369-0.152-0.545-0.098-0.176-0.248-0.342-0.451-0.498-0.204-0.16-0.563-0.367-1.079-0.621-0.722-0.356-1.242-0.658-1.558-0.908-0.317-0.25-0.561-0.53-0.733-0.838-0.168-0.309-0.252-0.649-0.252-1.02 0-0.633 0.233-1.172 0.698-1.617s1.05-0.668 1.757-0.668c0.258 0 0.508 0.031 0.75 0.094 0.184 0.047 0.407 0.135 0.668 0.263 0.266 0.125 0.452 0.188 0.557 0.188 0.102 0 0.182-0.031 0.24-0.094 0.059-0.062 0.114-0.213 0.164-0.451h0.176z" transform="matrix(1.0737 .079582 -.063992 1.3353 32.323 -374.09)"/>
<path id="path828" d="m315.27 881.82v0.216c-0.289 0.047-0.546 0.202-0.773 0.463-0.164 0.196-0.408 0.655-0.732 1.377l-2.737 6.071h-0.193l-2.725-6.317c-0.328-0.762-0.549-1.209-0.662-1.342-0.109-0.132-0.318-0.216-0.627-0.252v-0.216h3.809v0.216h-0.129c-0.344 0-0.578 0.043-0.703 0.129-0.09 0.059-0.135 0.145-0.135 0.258 0 0.07 0.016 0.154 0.047 0.252 0.031 0.094 0.137 0.35 0.316 0.768l1.694 3.955 1.57-3.522c0.187-0.426 0.303-0.711 0.346-0.855 0.043-0.145 0.064-0.268 0.064-0.369 0-0.118-0.031-0.221-0.094-0.311-0.062-0.09-0.154-0.158-0.275-0.205-0.168-0.066-0.391-0.1-0.668-0.1v-0.216h2.607z" transform="matrix(1.0684 .15492 -.12457 1.3286 87.767 -392.06)"/>
<path id="path829" d="m306.3 881.82v2.15h-0.211c-0.125-0.496-0.264-0.852-0.416-1.066-0.152-0.219-0.361-0.393-0.627-0.522-0.148-0.07-0.408-0.105-0.779-0.105h-0.592v6.129c0 0.406 0.021 0.66 0.064 0.761 0.047 0.102 0.135 0.192 0.264 0.27 0.133 0.074 0.312 0.111 0.539 0.111h0.264v0.217h-4.16v-0.217h0.263c0.231 0 0.416-0.041 0.557-0.123 0.101-0.055 0.182-0.148 0.24-0.281 0.043-0.094 0.065-0.34 0.065-0.738v-6.129h-0.575c-0.535 0-0.923 0.113-1.166 0.34-0.34 0.316-0.554 0.767-0.644 1.353h-0.223v-2.15h7.137z" transform="matrix(1.0645 .19192 -.15432 1.3238 115.07 -398.65)"/>
<path id="path832" d="m289.79 889.55v0.217h-4.154v-0.217h0.264c0.23 0 0.416-0.041 0.556-0.123 0.102-0.055 0.18-0.148 0.235-0.281 0.042-0.094 0.064-0.34 0.064-0.738v-5.227c0-0.406-0.022-0.66-0.064-0.762-0.043-0.101-0.131-0.189-0.264-0.263-0.129-0.079-0.305-0.118-0.527-0.118h-0.264v-0.216h4.154v0.216h-0.264c-0.23 0-0.416 0.041-0.556 0.123-0.102 0.055-0.182 0.149-0.24 0.282-0.043 0.093-0.065 0.34-0.065 0.738v5.227c0 0.406 0.022 0.66 0.065 0.761 0.046 0.102 0.134 0.192 0.263 0.27 0.133 0.074 0.311 0.111 0.533 0.111h0.264z" transform="matrix(1.0454 .31493 -.25324 1.3 207.07 -413.52)"/>
<path id="path833" d="m285.27 881.82v0.216c-0.29 0.047-0.547 0.202-0.774 0.463-0.164 0.196-0.408 0.655-0.732 1.377l-2.737 6.071h-0.193l-2.725-6.317c-0.328-0.762-0.548-1.209-0.662-1.342-0.109-0.132-0.318-0.216-0.627-0.252v-0.216h3.809v0.216h-0.129c-0.344 0-0.578 0.043-0.703 0.129-0.09 0.059-0.135 0.145-0.135 0.258 0 0.07 0.016 0.154 0.047 0.252 0.031 0.094 0.137 0.35 0.316 0.768l1.694 3.955 1.57-3.522c0.188-0.426 0.303-0.711 0.346-0.855 0.043-0.145 0.064-0.268 0.064-0.369 0-0.118-0.031-0.221-0.094-0.311-0.062-0.09-0.154-0.158-0.275-0.205-0.168-0.066-0.391-0.1-0.668-0.1v-0.216h2.608z" transform="matrix(1.0402 .34045 -.27376 1.2936 226.33 -414.79)"/>
<path id="path836" d="m409.38 881.71c1.265-0.047 2.293 0.323 3.082 1.108 0.793 0.785 1.189 1.767 1.189 2.947 0 1.008-0.295 1.895-0.884 2.66-0.782 1.016-1.885 1.524-3.311 1.524-1.43 0-2.535-0.485-3.316-1.454-0.618-0.765-0.926-1.673-0.926-2.724 0-1.18 0.4-2.162 1.201-2.947 0.805-0.789 1.793-1.161 2.965-1.114zm0.07 0.375c-0.726 0-1.279 0.371-1.658 1.114-0.309 0.609-0.463 1.484-0.463 2.625 0 1.355 0.238 2.357 0.715 3.005 0.332 0.454 0.797 0.68 1.394 0.68 0.403 0 0.739-0.098 1.008-0.293 0.344-0.25 0.612-0.648 0.803-1.195 0.191-0.551 0.287-1.268 0.287-2.151 0-1.05-0.098-1.835-0.293-2.355-0.195-0.523-0.445-0.893-0.75-1.107-0.301-0.215-0.648-0.323-1.043-0.323z" transform="matrix(1.0667 -.17210 .13839 1.3265 -141.19 -275.24)"/>
<path id="path839" d="m378.71 881.71c1.266-0.047 2.293 0.323 3.082 1.108 0.793 0.785 1.189 1.767 1.189 2.947 0 1.008-0.294 1.895-0.884 2.66-0.782 1.016-1.885 1.524-3.311 1.524-1.43 0-2.535-0.485-3.316-1.454-0.617-0.765-0.926-1.673-0.926-2.724 0-1.18 0.4-2.162 1.201-2.947 0.805-0.789 1.793-1.161 2.965-1.114zm0.07 0.375c-0.726 0-1.279 0.371-1.658 1.114-0.308 0.609-0.463 1.484-0.463 2.625 0 1.355 0.239 2.357 0.715 3.005 0.332 0.454 0.797 0.68 1.395 0.68 0.402 0 0.738-0.098 1.007-0.293 0.344-0.25 0.612-0.648 0.803-1.195 0.192-0.551 0.287-1.268 0.287-2.151 0-1.05-0.097-1.835-0.293-2.355-0.195-0.523-0.445-0.893-0.75-1.107-0.3-0.215-0.648-0.323-1.043-0.323z" transform="matrix(1.0721 -.10760 .086523 1.3333 -97.42 -305.95)"/>
<path id="path842" d="m386.6 886.15v2.226c0 0.43 0.025 0.702 0.076 0.815 0.055 0.109 0.148 0.197 0.281 0.264 0.133 0.066 0.381 0.099 0.744 0.099v0.217h-4.066v-0.217c0.367 0 0.615-0.033 0.744-0.099 0.133-0.071 0.225-0.161 0.275-0.27 0.055-0.109 0.082-0.379 0.082-0.809v-5.156c0-0.43-0.027-0.699-0.082-0.808-0.05-0.114-0.142-0.204-0.275-0.27s-0.381-0.1-0.744-0.1v-0.216h3.691c0.961 0 1.664 0.066 2.11 0.199 0.445 0.133 0.808 0.379 1.09 0.738 0.281 0.356 0.421 0.774 0.421 1.254 0 0.586-0.211 1.07-0.632 1.453-0.27 0.242-0.647 0.424-1.131 0.545l1.91 2.69c0.25 0.347 0.428 0.564 0.533 0.65 0.16 0.121 0.346 0.187 0.557 0.199v0.217h-2.502l-2.561-3.621h-0.521zm0-3.897v3.481h0.334c0.543 0 0.949-0.049 1.218-0.147 0.27-0.101 0.481-0.281 0.633-0.539 0.157-0.261 0.235-0.601 0.235-1.019 0-0.606-0.143-1.053-0.428-1.342-0.281-0.289-0.736-0.434-1.365-0.434h-0.627z" transform="matrix(1.0667 -.17210 .13839 1.3265 -141.19 -275.24)"/>
<path id="path845" d="m417.27 886.15v2.226c0 0.43 0.025 0.702 0.076 0.815 0.054 0.109 0.148 0.197 0.281 0.264 0.133 0.066 0.381 0.099 0.744 0.099v0.217h-4.066v-0.217c0.367 0 0.615-0.033 0.744-0.099 0.133-0.071 0.224-0.161 0.275-0.27 0.055-0.109 0.082-0.379 0.082-0.809v-5.156c0-0.43-0.027-0.699-0.082-0.808-0.051-0.114-0.142-0.204-0.275-0.27s-0.381-0.1-0.744-0.1v-0.216h3.691c0.961 0 1.664 0.066 2.109 0.199 0.446 0.133 0.809 0.379 1.09 0.738 0.282 0.356 0.422 0.774 0.422 1.254 0 0.586-0.211 1.07-0.633 1.453-0.269 0.242-0.646 0.424-1.13 0.545l1.91 2.69c0.25 0.347 0.427 0.564 0.533 0.65 0.16 0.121 0.346 0.187 0.557 0.199v0.217h-2.502l-2.561-3.621h-0.521zm0-3.897v3.481h0.334c0.543 0 0.949-0.049 1.218-0.147 0.27-0.101 0.481-0.281 0.633-0.539 0.156-0.261 0.234-0.601 0.234-1.019 0-0.606-0.142-1.053-0.427-1.342-0.282-0.289-0.737-0.434-1.365-0.434h-0.627z" transform="matrix(1.0417 -.33296 .26773 1.2955 -245.66 -181.16)"/>
<path id="path848" d="m293.25 886.15v2.226c0 0.43 0.025 0.702 0.076 0.815 0.055 0.109 0.149 0.197 0.281 0.264 0.133 0.066 0.381 0.099 0.745 0.099v0.217h-4.067v-0.217c0.367 0 0.615-0.033 0.744-0.099 0.133-0.071 0.225-0.161 0.276-0.27 0.054-0.109 0.082-0.379 0.082-0.809v-5.156c0-0.43-0.028-0.699-0.082-0.808-0.051-0.114-0.143-0.204-0.276-0.27-0.132-0.066-0.381-0.1-0.744-0.1v-0.216h3.692c0.961 0 1.664 0.066 2.109 0.199s0.809 0.379 1.09 0.738c0.281 0.356 0.422 0.774 0.422 1.254 0 0.586-0.211 1.07-0.633 1.453-0.27 0.242-0.647 0.424-1.131 0.545l1.91 2.69c0.25 0.347 0.428 0.564 0.533 0.65 0.161 0.121 0.346 0.187 0.557 0.199v0.217h-2.502l-2.56-3.621h-0.522zm0-3.897v3.481h0.334c0.543 0 0.949-0.049 1.219-0.147 0.269-0.101 0.48-0.281 0.633-0.539 0.156-0.261 0.234-0.601 0.234-1.019 0-0.606-0.143-1.053-0.428-1.342-0.281-0.289-0.736-0.434-1.365-0.434h-0.627z" transform="matrix(1.0633 .20168 -.16217 1.3223 122.81 -400.27)"/>
<path id="path851" d="m360.07 887.51h-2.806l-0.334 0.774c-0.11 0.257-0.164 0.47-0.164 0.638 0 0.223 0.089 0.387 0.269 0.493 0.106 0.062 0.365 0.109 0.779 0.14v0.217h-2.642v-0.217c0.285-0.043 0.519-0.16 0.703-0.351 0.184-0.196 0.41-0.596 0.68-1.202l2.842-6.339h0.111l2.865 6.515c0.274 0.617 0.498 1.006 0.674 1.166 0.133 0.121 0.32 0.192 0.562 0.211v0.217h-3.843v-0.217h0.158c0.308 0 0.525-0.043 0.65-0.129 0.086-0.062 0.129-0.152 0.129-0.269 0-0.071-0.012-0.143-0.035-0.217-0.008-0.035-0.066-0.182-0.176-0.44l-0.422-0.99zm-0.199-0.433-1.183-2.737-1.219 2.737h2.402z" transform="matrix(1.0746 -.056381 .045336 1.3364 -62.366 -327.47)"/>
</g>
<g id="g658" fill-rule="evenodd" transform="matrix(.38925 0 0 .37394 196.25 536.23)">
<rect id="rect584" height="177.17" width="177.17" y="556.3" x="407.48" fill="#fff600"/>
<rect id="rect565" height="177.17" width="25.309" y="379.13" x="432.79" fill="#cc1900"/>
<rect id="rect566" height="177.17" width="25.309" y="379.13" x="483.41" fill="#cc1900"/>
<rect id="rect567" height="177.17" width="25.309" y="379.13" x="534.03" fill="#cc1900"/>
<rect id="rect570" height="177.17" width="25.309" y="379.13" x="407.48" fill="#fff600"/>
<rect id="rect571" height="177.17" width="25.309" y="379.13" x="458.1" fill="#fff600"/>
<rect id="rect572" height="177.17" width="25.309" y="379.13" x="508.72" fill="#fff600"/>
<rect id="rect573" height="177.17" width="25.309" y="379.13" x="559.34" fill="#fff600"/>
<rect id="rect574" height="159.45" width="19.685" y="574.02" x="271.65" fill="#cc1900"/>
<rect id="rect575" height="159.45" width="19.685" y="574.02" x="311.02" fill="#cc1900"/>
<rect id="rect576" height="159.45" width="19.685" y="574.02" x="350.39" fill="#cc1900"/>
<rect id="rect577" height="159.45" width="19.685" y="574.02" x="251.97" fill="#fff600"/>
<rect id="rect578" height="159.45" width="19.685" y="574.02" x="291.34" fill="#fff600"/>
<rect id="rect579" height="159.45" width="19.685" y="574.02" x="330.71" fill="#fff600"/>
<rect id="rect580" height="159.45" width="19.685" y="574.02" x="370.08" fill="#fff600"/>
<rect id="rect581" height="159.45" width="19.685" y="574.02" x="232.28" fill="#cc1900"/>
<rect id="rect582" height="159.45" width="19.685" y="574.02" x="212.6" fill="#fff600"/>
<rect id="rect583" height="177.17" width="177.17" y="379.13" x="212.6" fill="#cc1900"/>
<path id="path597" d="m274.92 206.71c8.913-4.302 8.549-19.089 8.549-31.313 0-24.449-19.843-44.292-44.292-44.292s-44.291 17.488-44.291 41.937l-17.717 11.213h26.52l-26.52 17.717h35.433l-248.03 318.9 17.717 17.717 248.03-318.9c6.549-8.42 0-17.716-9.158-24.793-10.805-8.349-8.559-10.64-8.559-21.579 0-15.936 11.906-24.494 26.575-24.494s26.575 11.905 26.575 26.575c0 7.335-1.502 16.184-7.787 18.788-9.93 7.787 7.787 25.503 16.955 12.525z" transform="matrix(.38555 .050804 -.045440 .34484 277.44 345.95)" stroke-width="1pt" fill="#fff600"/>
<path id="path564" d="m194.88 361.42v336.61c0 35.434 16.978 53.15 50.934 53.15h118.85c33.957 0 33.957 35.433 33.957 35.433s0-35.433 33.956-35.433h118.85c33.957 0 50.935-17.716 50.935-53.15v-336.61h-407.48zm17.716 17.717v177.16h177.17v-177.16h-177.17zm194.88 0v177.16h177.17v-177.16h-177.17zm-194.88 194.88v106.3c0 35.434 16.978 53.15 50.934 53.15h73.081 53.15v-159.45h-177.16zm372.05 0v106.3c0 35.434-16.977 53.15-50.934 53.15h-73.081-53.15v-159.45h177.16z" stroke="#000" stroke-width="1pt" fill="#cba323"/>
<path id="path585" d="m283.46 396.85-53.149 50.619 16.354 91.114h73.591l16.354-91.114-53.15-50.619z" transform="matrix(.66667 0 0 0.75 112.2 99.215)" fill="#fff"/>
<path id="path586" d="m283.46 406.97-44.291 40.495 17.717 80.99h26.574v-121.48zm8.859 0v121.48h26.575l17.716-80.99-44.291-40.495z" transform="matrix(.61539 0 0 0.7 124.02 126.14)" fill="#fff600"/>
<path id="path587" d="m212.6 201.97h-17.716s8.858 35.433 17.716 35.433c35.433 0 106.48-51.679 106.3-35.433 0 35.433-17.717 17.716-17.717 35.433 0 17.716 35.433 0 35.433-17.717 0-17.716 0-35.433-17.716-35.433-17.717 0-69.229 35.671-88.583 35.433-17.717 0-17.717-17.716-17.717-17.716z" transform="matrix(.5 0 0 .41421 203.74 419.49)" fill="#fffbff"/>
<path id="path588" d="m212.6 201.97h-17.716s8.858 35.433 17.716 35.433c35.433 0 106.48-51.679 106.3-35.433 0 35.433-17.717 17.716-17.717 35.433 0 17.716 35.433 0 35.433-17.717 0-17.716 0-35.433-17.716-35.433-17.717 0-69.229 35.671-88.583 35.433-17.717 0-17.717-17.716-17.717-17.716z" transform="matrix(-0.5 0 0 .41421 398.62 419.49)" fill="#fffbff"/>
<g id="g657" transform="matrix(.38048 0 0 .32170 515.51 448.82)">
<g id="g616" transform="translate(-2.5058 -84.936)">
<path id="path612" d="m70.866 574.02c0 35.433 28.704 36.668 17.717 53.149l-35.433 53.15h-17.716l17.716-53.15c5.9055-17.716 17.716-65.373 17.716-53.149z" transform="matrix(.97779 .20961 -.20961 .97779 72.52 -.075867)" stroke="#fff600" stroke-width="5" fill="#cc1900"/>
<path id="path607" d="m35.433 423.42c0 3.667 2.2422 31.888 0 35.067-2.2423 3.179-8.969-18.684-12.977-16.279-4.0083 2.405-7.6033 24.158-12.902 25.504-5.2983 1.35-12.3-17.71-18.412-17.71-6.1122 0-11.937 19.062-17.235 17.717-5.2984-1.346-10.071-23.099-14.079-25.504-4.0084-2.405-10.735 19.458-12.977 16.279-2.2422-3.179 0-31.4 0-35.067 0-14.669 19.842-26.575 44.291-26.575s44.291 11.906 44.291 26.575z" transform="matrix(.78240 0 0 .50048 24.647 401.29)" stroke="#fff600" stroke-width="7.9903" fill="#cc1900"/>
<path id="path605" d="m-70.866 423.42c0 14.669-12.827 26.575-17.717 26.575-4.8898 0 0-11.906 0-26.575s-4.8898-26.575 0-26.575 17.717 11.906 17.717 26.575z" transform="matrix(.71447 -.39551 .69966 .40388 -390.91 291.35)" stroke-width="1pt" fill="#008d00"/>
<path id="path602" d="m-70.866 414.57v53.15h53.15v-17.717h-35.433v-35.433h-17.716z" transform="matrix(.53461 .84510 -.84510 .53461 273.7 427.53)" stroke="#fff600" stroke-width="5" fill="#cc1900"/>
<path id="path599" d="m70.866 574.02c0 35.433 28.704 36.668 17.717 53.149l-35.433 53.15h-17.716l17.716-53.15c5.9055-17.716-17.716-35.433-70.866 0-12.224 0-70.866-8.963-70.866 0v53.15h-17.716v-53.15c0-6.941-35.433-53.149-35.433-70.866 0-12.224-53.15 0-53.15-17.716 0-8.859 35.433-17.717 35.433-35.433 0-17.717 35.433 0 53.15 0 0 17.716-17.717 35.433 17.716 35.433 24.449 0 177.17 0 177.17 17.716 0 17.717-17.717 5.493-17.717 17.717z" stroke="#fff600" stroke-width="5" fill="#cc1900"/>
<path id="path608" d="m-70.866 423.42c0 14.669-12.827 26.575-17.717 26.575-4.8898 0 0-11.906 0-26.575s-4.8898-26.575 0-26.575 17.717 11.906 17.717 26.575z" transform="matrix(.33850 -.70209 .65562 -.0045585 -354.02 632.49)" stroke-width="1pt" fill="#008d00"/>
<path id="path609" d="m-70.866 423.42c0 14.669-12.827 26.575-17.717 26.575-4.8898 0 0-11.906 0-26.575s-4.8898-26.575 0-26.575 17.717 11.906 17.717 26.575z" transform="matrix(.33850 -.70209 .65562 -.0045585 -212.29 632.49)" stroke-width="1pt" fill="#008d00"/>
<path id="path610" d="m-70.866 423.42c0 14.669-12.827 26.575-17.717 26.575-4.8898 0 0-11.906 0-26.575s-4.8898-26.575 0-26.575 17.717 11.906 17.717 26.575z" transform="matrix(-.13112 -.76832 .53161 -.38374 -357.18 763.6)" stroke-width="1pt" fill="#008d00"/>
<path id="path613" d="m-70.866 423.42c0 14.669-12.827 26.575-17.717 26.575-4.8898 0 0-11.906 0-26.575s-4.8898-26.575 0-26.575 17.717 11.906 17.717 26.575z" transform="matrix(.31961 -.71089 .65527 -.022084 -282.41 624.63)" stroke-width="1pt" fill="#008d00"/>
<rect id="rect614" transform="rotate(-37.469)" height="17.717" width="53.15" y="354.1" x="-458.49" fill="#008d00"/>
<path id="path615" d="m-17.717 503.15c0 39.138-11.898 70.866-26.575 70.866s-26.575-31.728-26.575-70.866 11.898-70.866 26.575-70.866 26.575 31.728 26.575 70.866z" transform="matrix(.20249 0 0 .125 -127.38 519.98)" fill="#008d00"/>
</g>
<path id="path629" d="m47.995 681.85c34.086 0.02 34.086 12.901 19.835 12.901-19.835 0-67.83 4.38-67.83 3.28 0-1.103-16.484-14.203-16.484-14.203-1.2325-3.513 1.1774 14.128-1.2325 14.203-2.41 0.074-16.429-15.381-16.429-15.381s1.2877 15.232 0 15.307c-1.2877 0.074-17.661-9.42-17.661-9.42l-1.1774 8.242-15.306 9.42 15.306 10.597v8.242l15.306-8.242 1.1775 15.306 18.839-15.306s4.7648 16.299 2.3549 16.484c-2.41 0.185 16.484-16.484 16.484-16.484-1.178-1.05 54.051 0 87.405-1.05 33.354-1.048 32.746-51.937 17.716-53.15-15.031-1.213-58.304 3.33-58.304-0.203" transform="matrix(.51976 0 0 .74720 25.698 -30.033)" stroke="#fff600" stroke-width="5.0546" fill="#cc1900"/>
</g>
<g id="g671" transform="matrix(.38048 0 0 .32170 515.51 519.69)">
<g id="g672" transform="translate(-2.5058 -84.936)">
<path id="path673" d="m70.866 574.02c0 35.433 28.704 36.668 17.717 53.149l-35.433 53.15h-17.716l17.716-53.15c5.9055-17.716 17.716-65.373 17.716-53.149z" transform="matrix(.97779 .20961 -.20961 .97779 72.52 -.075867)" stroke="#fff600" stroke-width="5" fill="#cc1900"/>
<path id="path674" d="m35.433 423.42c0 3.667 2.2422 31.888 0 35.067-2.2423 3.179-8.969-18.684-12.977-16.279-4.0083 2.405-7.6033 24.158-12.902 25.504-5.2983 1.35-12.3-17.71-18.412-17.71-6.1122 0-11.937 19.062-17.235 17.717-5.2984-1.346-10.071-23.099-14.079-25.504-4.0084-2.405-10.735 19.458-12.977 16.279-2.2422-3.179 0-31.4 0-35.067 0-14.669 19.842-26.575 44.291-26.575s44.291 11.906 44.291 26.575z" transform="matrix(.78240 0 0 .50048 24.647 401.29)" stroke="#fff600" stroke-width="7.9903" fill="#cc1900"/>
<path id="path675" d="m-70.866 423.42c0 14.669-12.827 26.575-17.717 26.575-4.8898 0 0-11.906 0-26.575s-4.8898-26.575 0-26.575 17.717 11.906 17.717 26.575z" transform="matrix(.71447 -.39551 .69966 .40388 -390.91 291.35)" stroke-width="1pt" fill="#008d00"/>
<path id="path676" d="m-70.866 414.57v53.15h53.15v-17.717h-35.433v-35.433h-17.716z" transform="matrix(.53461 .84510 -.84510 .53461 273.7 427.53)" stroke="#fff600" stroke-width="5" fill="#cc1900"/>
<path id="path677" d="m70.866 574.02c0 35.433 28.704 36.668 17.717 53.149l-35.433 53.15h-17.716l17.716-53.15c5.9055-17.716-17.716-35.433-70.866 0-12.224 0-70.866-8.963-70.866 0v53.15h-17.716v-53.15c0-6.941-35.433-53.149-35.433-70.866 0-12.224-53.15 0-53.15-17.716 0-8.859 35.433-17.717 35.433-35.433 0-17.717 35.433 0 53.15 0 0 17.716-17.717 35.433 17.716 35.433 24.449 0 177.17 0 177.17 17.716 0 17.717-17.717 5.493-17.717 17.717z" stroke="#fff600" stroke-width="5" fill="#cc1900"/>
<path id="path678" d="m-70.866 423.42c0 14.669-12.827 26.575-17.717 26.575-4.8898 0 0-11.906 0-26.575s-4.8898-26.575 0-26.575 17.717 11.906 17.717 26.575z" transform="matrix(.33850 -.70209 .65562 -.0045585 -354.02 632.49)" stroke-width="1pt" fill="#008d00"/>
<path id="path679" d="m-70.866 423.42c0 14.669-12.827 26.575-17.717 26.575-4.8898 0 0-11.906 0-26.575s-4.8898-26.575 0-26.575 17.717 11.906 17.717 26.575z" transform="matrix(.33850 -.70209 .65562 -.0045585 -212.29 632.49)" stroke-width="1pt" fill="#008d00"/>
<path id="path680" d="m-70.866 423.42c0 14.669-12.827 26.575-17.717 26.575-4.8898 0 0-11.906 0-26.575s-4.8898-26.575 0-26.575 17.717 11.906 17.717 26.575z" transform="matrix(-.13112 -.76832 .53161 -.38374 -357.18 763.6)" stroke-width="1pt" fill="#008d00"/>
<path id="path681" d="m-70.866 423.42c0 14.669-12.827 26.575-17.717 26.575-4.8898 0 0-11.906 0-26.575s-4.8898-26.575 0-26.575 17.717 11.906 17.717 26.575z" transform="matrix(.31961 -.71089 .65527 -.022084 -282.41 624.63)" stroke-width="1pt" fill="#008d00"/>
<rect id="rect682" transform="rotate(-37.469)" height="17.717" width="53.15" y="354.1" x="-458.49" fill="#008d00"/>
<path id="path683" d="m-17.717 503.15c0 39.138-11.898 70.866-26.575 70.866s-26.575-31.728-26.575-70.866 11.898-70.866 26.575-70.866 26.575 31.728 26.575 70.866z" transform="matrix(.20249 0 0 .125 -127.38 519.98)" fill="#008d00"/>
</g>
<path id="path684" d="m47.995 681.85c34.086 0.02 34.086 12.901 19.835 12.901-19.835 0-67.83 4.38-67.83 3.28 0-1.103-16.484-14.203-16.484-14.203-1.2325-3.513 1.1774 14.128-1.2325 14.203-2.41 0.074-16.429-15.381-16.429-15.381s1.2877 15.232 0 15.307c-1.2877 0.074-17.661-9.42-17.661-9.42l-1.1774 8.242-15.306 9.42 15.306 10.597v8.242l15.306-8.242 1.1775 15.306 18.839-15.306s4.7648 16.299 2.3549 16.484c-2.41 0.185 16.484-16.484 16.484-16.484-1.178-1.05 54.051 0 87.405-1.05 33.354-1.048 32.746-51.937 17.716-53.15-15.031-1.213-58.304 3.33-58.304-0.203" transform="matrix(.51976 0 0 .74720 25.698 -30.033)" stroke="#fff600" stroke-width="5.0546" fill="#cc1900"/>
</g>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 39 KiB

View file

@ -1,44 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
<!--
On October 30, 2003, Brett Roper dedicated to the public domain the
work "SVG graphic of Australian Aboriginal Flag." Before making the dedication,
Brett Roper
represented that Brett Roper owned all copyrights in the
work. By making the dedication, Brett Roper made an overt act
of relinquishment in perpetuity of all present and future rights under
copyright law, whether vested or contingent, in "SVG graphic of United Arab
Emirates Flag."
Brett Roper understands that such relinquishment of all rights
includes the relinquishment of all rights to enforce (by lawsuit or
otherwise) those copyrights in the Work.
Brett Roper recognizes that, once placed in the public domain,
"SVG graphic of United Arab Emirates Flag" may be freely reproduced,
distributed, transmitted, used,
modified, built upon, or otherwise exploited by anyone for any
purpose, commercial or non-commercial, and in any way, including by
methods that have not yet been invented or conceived.
-->
<svg id="canada" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" height="480" width="640" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" fill="#28ff09">
<metadata id="metadata3112">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
</cc:Work>
</rdf:RDF>
</metadata>
<defs id="defs3">
<clipPath id="clipPath4599" clipPathUnits="userSpaceOnUse">
<rect id="rect4601" height="512" width="512" y="0" x="0" fill="#808080"/>
</clipPath>
</defs>
<g id="flag" clip-path="url(#clipPath4599)" fill-rule="evenodd" transform="matrix(1.3333 0 0 1 -85.333 .000015259)">
<rect id="rect9" height="512" width="192" y="-.000015259" x="0" fill="#f00"/>
<rect id="rect12" height="171.94" width="576" y="340.06" x="192" fill="#000"/>
<rect id="rect11" height="169.65" width="576" y="172.7" x="192" fill="#fff"/>
<rect id="rect10" height="172.7" width="576" y="-.000015259" x="192" fill="#009a00"/>
</g>
</svg>

View file

@ -1,779 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--
<rdf:RDF xmlns="http://web.resource.org/cc/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<Work rdf:about="">
<dc:title>SVG graphic of Afghanistan's Flag</dc:title>
<dc:rights><Agent>
<dc:title>Andrew Duhan</dc:title>
</Agent></dc:rights>
<license rdf:resource="http://web.resource.org/cc/PublicDomain" />
</Work>
<License rdf:about="http://web.resource.org/cc/PublicDomain">
<permits rdf:resource="http://web.resource.org/cc/Reproduction" />
<permits rdf:resource="http://web.resource.org/cc/Distribution" />
<permits rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
</License>
</rdf:RDF>
-->
<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
<svg id="svg587" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" height="480" width="640" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata id="metadata3783">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
</cc:Work>
</rdf:RDF>
</metadata>
<g id="flag">
<g id="g6349" fill-rule="evenodd" stroke-width="1pt" transform="matrix(1.3333 0 0 1 -85.333 0)">
<rect id="rect590" height="512" width="512" y="5.6843e-14" x="0"/>
<rect id="rect591" height="512" width="170.67" y="5.6843e-14" x="341.33" fill="#090"/>
<rect id="rect592" height="512" width="170.67" y="5.6843e-14" x="170.67" fill="#bf0000"/>
</g>
<g id="g4603" transform="matrix(1.9463 0 0 1.9463 -350 -430.25)">
<path id="path1035" d="m384.5 357.31c-0.056 0.297 0.747 0.736 0.938 0.508 0.864-1.035 1.995-3.067 2.227-4.297 0.068-0.358-1.083-0.763-1.329-0.469-0.809 0.969-1.593 2.966-1.836 4.258z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path1037" d="m276.43 420.33c-0.86048 3.0401-13.554-2.8657-14.971-5.9253 7.2632 3.8485 15.145 3.0436 14.971 5.9253z" fill-rule="evenodd" stroke="#000" stroke-width="0.5" fill="#fff"/>
<path id="path1042" d="m236.3 358.23c0.63456 0.75517 1.7042 0.24913 0.72951-0.77292-0.79772-0.82583-0.53515-1.0864-1.0213-2.0926-0.48071-1.1242-0.45566-1.7445-1.0359-2.5477-0.51311-0.76202-1.2849 0.0154-0.76788 0.65672 0.64906 0.75844 0.46988 1.3178 0.86685 2.0515 0.7335 1.2556 0.55465 1.9148 1.2287 2.705z" fill-rule="evenodd" stroke="#000" stroke-width="0.5" fill="#fff"/>
<path id="path1051" d="m253.37 378.84c2.042 1.004 3.592 3.512 3.694 5.555 0.173 2.351 0.512 4.336 1.568 6.007-1.681-0.468-2.486-3.147-2.725-5.713-0.242-2.656-1.673-3.808-2.537-5.849z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path1052" d="m257.63 383.76c1.413 2.6083 3.389 3.6031 3.49 5.5387 0.17118 2.2274 0.34039 2.3411 0.94398 4.5316-1.6634-0.4434-2.0819-0.58836-2.5312-3.9214-0.27706-2.3421-2.1522-3.9944-1.9028-6.1489z" fill-rule="evenodd" stroke="#000" stroke-width="0.5" fill="#fff"/>
<path id="path1070" stroke-linejoin="round" d="m290.64 397.78c2.162 1.771 3.565 3.793 4.219 6.406 0.682 2.434 1.641 4.375 3.048 6.563-2.292-1.563-3.733-3.689-4.454-6.251-0.633-2.518-1.38-4.4-2.813-6.718z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path1072" stroke-linejoin="round" d="m331.11 397.78c-2.21 1.7814-3.6441 3.8153-4.3126 6.4437-0.69713 2.4483-1.6774 4.4007-3.1156 6.6016 2.3428-1.5722 3.8158-3.7107 4.5528-6.2878 0.64704-2.5328 1.4106-4.4259 2.8754-6.7575z" fill-rule="evenodd" stroke="#000" stroke-width="0.5" fill="#fff"/>
<path id="path1073" stroke-linejoin="round" d="m328.39 397.78c-2.3694 1.8609-4.6029 3.9732-5.2714 6.6016-0.69713 2.4483-1.1183 4.3223-2.7159 6.7585 2.5023-1.5722 3.4959-3.9471 4.2329-6.5242 0.64704-2.5318 2.1302-4.4249 3.7545-6.836z" fill-rule="evenodd" stroke="#000" stroke-width="0.5" fill="#fff"/>
<path id="path1075" stroke-linejoin="round" d="m301.61 407.89c0.794 1.497 1.706 3.776 3.359 3.359 0.026-1.146-1.784-1.94-3.359-3.359z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path1076" stroke-linejoin="round" d="m304.08 408.4c3.2104 1.316 5.9828 0.991 6.3282 3.009-3.0118 0.325-4.1132-0.912-6.3282-3.009z" fill-rule="evenodd" stroke="#000" stroke-width="0.5" fill="#fff"/>
<path id="path1077" stroke-linejoin="round" d="m319.82 408.09c-0.80485 1.4112-1.7293 3.5597-3.4049 3.1666-0.0264-1.0803 1.8084-1.8288 3.4049-3.1666z" fill-rule="evenodd" stroke="#000" stroke-width="0.5" fill="#fff"/>
<path id="path1078" stroke-linejoin="round" d="m317.57 408.52c-3.2572 1.2488-6.0699 0.9404-6.4204 2.8554 3.0556 0.30841 4.1731-0.86543 6.4204-2.8554z" fill-rule="evenodd" stroke="#000" stroke-width="0.5" fill="#fff"/>
<path id="path1082" d="m320.54 403.95c0.0637-0.457-0.24784-0.856-0.62208-0.976-0.72858-0.274-1.4542-0.497-2.1768-0.703-0.82114-0.195-1.281 0.394-1.284 0.781-0.004 0.644-0.0338 1.191 0 1.679 0.0448 0.608 0.16025 0.653 0.54444 0.743 0.61511 0.104 1.4034 0.21 2.0215 0.625 0.4897 0.302 0.96049 0.063 1.2053-0.468 0.15826-0.406 0.24485-1.2 0.31154-1.681z" fill-rule="evenodd" stroke="#000" stroke-width="0.5" fill="#fff"/>
<path id="path1083" d="m311.69 403.95c-0.0569-0.457 0.18318-0.895 0.51752-1.015 0.65091-0.274 1.2991-0.341 1.983-0.313 0.75938-0.012 0.95056 0.16 0.95323 0.547 0.004 0.644 0.0302 1.269 0 1.757-0.04 0.608-0.0267 0.653-0.36991 0.743-0.54953 0.104-1.4868 0.132-2.039 0.547-0.4375 0.302-0.93634 0.063-0.96035-0.507 0.0107-0.43-0.0249-1.278-0.0845-1.759z" fill-rule="evenodd" stroke="#000" stroke-width="0.5" fill="#fff"/>
<path id="path1084" d="m300.95 403.83c-0.064-0.457 0.249-0.856 0.625-0.976 0.732-0.274 1.461-0.497 2.187-0.703 0.825-0.195 1.287 0.394 1.29 0.781 0.004 0.644 0.034 1.191 0 1.679-0.045 0.608-0.161 0.653-0.547 0.743-0.618 0.104-1.41 0.21-2.031 0.625-0.492 0.302-0.965 0.063-1.211-0.468-0.159-0.406-0.246-1.2-0.313-1.681z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path1085" d="m309.84 403.83c0.0572-0.457-0.18404-0.895-0.51995-1.015-0.65396-0.274-1.3052-0.341-1.9922-0.313-0.76295-0.012-0.95503 0.16-0.95771 0.547-0.004 0.644-0.0304 1.269 0 1.757 0.0402 0.608 0.0268 0.653 0.37165 0.743 0.55211 0.104 1.4937 0.132 2.0485 0.547 0.43955 0.302 0.94074 0.063 0.96486-0.507-0.0107-0.43 0.025-1.278 0.0849-1.759z" fill-rule="evenodd" stroke="#000" stroke-width="0.5" fill="#fff"/>
<g id="g1194" transform="translate(.33148 198.84)">
<path id="path1188" d="m274.79 144.77c-1.033-1.659-2.27 2.301-6.519 5.249-1.978 1.346-3.356 4.933-3.369 7.293-0.065 1.621 0.18 3.238-0.001 4.806-0.114 0.992-1.148 3.194-0.441 3.757 1.87 1.39 4.291 4.546 5.414 5.635 0.971 0.851 1.812-4.393 2.541-6.74 0.781-2.515 0.431-5.521 2.597-7.845 1.535-1.569 5.407-3.113 4.972-3.812l-5.194-8.343z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path1145" d="m274.79 144.77c-1.033-1.659-2.27 2.301-6.519 5.249-1.978 1.346-3.356 4.933-3.369 7.293-0.065 1.621 0.18 3.238-0.001 4.806-0.114 0.992-1.148 3.194-0.441 3.757 1.87 1.39 4.291 4.546 5.414 5.635 0.971 0.851 1.812-4.393 2.541-6.74 0.781-2.515 0.431-5.521 2.597-7.845 1.535-1.569 5.407-3.113 4.972-3.812l-5.194-8.343z" fill-rule="evenodd" fill="#fff"/>
<path id="path1146" d="m268.51 149.68c-0.405 2.809 1.159 3.744 2.635 4.288 1.528 0.543 2.781 2.182 3.426 3.665" stroke="#000" stroke-width=".25" fill="none"/>
<path id="path1147" d="m267.27 151.14c0.645 2.422 2.342 2.119 3.818 2.663 1.528 0.543 3.135 2.475 3.78 3.958" transform="translate(-2.5413 7.7896)" stroke="#000" stroke-width=".25" fill="none"/>
<path id="path1143" d="m273.36 143.06 0.774-0.497 14.86 25.027-0.773 0.497-14.861-25.027z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path1193" d="m273.36 143.06 0.774-0.497 14.86 25.027-0.773 0.497-14.861-25.027z" fill-rule="evenodd" fill="#fff"/>
<path id="path1159" d="m274.96 142.07c0 0.94585-0.76676 1.7126-1.7126 1.7126-0.94585 0-1.7126-0.76676-1.7126-1.7126s0.76676-1.7126 1.7126-1.7126c0.94586 0 1.7126 0.76676 1.7126 1.7126z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path1186" d="m274.96 142.07c0 0.94585-0.76676 1.7126-1.7126 1.7126-0.94585 0-1.7126-0.76676-1.7126-1.7126s0.76676-1.7126 1.7126-1.7126c0.94586 0 1.7126 0.76676 1.7126 1.7126z" fill-rule="evenodd" fill="#fff"/>
</g>
<g id="g1208" transform="translate(0,199.5)">
<path id="path1203" d="m274.79 144.77c-1.033-1.659-2.27 2.301-6.519 5.249-1.978 1.346-3.356 4.933-3.369 7.293-0.065 1.621 0.18 3.238-0.001 4.806-0.114 0.992-1.148 3.194-0.441 3.757 1.87 1.39 4.291 4.546 5.414 5.635 0.971 0.851 1.812-4.393 2.541-6.74 0.781-2.515 0.431-5.521 2.597-7.845 1.535-1.569 5.407-3.113 4.972-3.812l-5.194-8.343z" fill-rule="evenodd" transform="matrix(-.99948 0 0 1.035 621.43 -5.225)" stroke="#000" stroke-width=".49160" fill="#fff"/>
<path id="path1140" d="m274.79 144.77c-1.033-1.659-2.27 2.301-6.519 5.249-1.978 1.346-3.356 4.933-3.369 7.293-0.065 1.621 0.18 3.238-0.001 4.806-0.114 0.992-1.148 3.194-0.441 3.757 1.87 1.39 4.291 4.546 5.414 5.635 0.971 0.851 1.812-4.393 2.541-6.74 0.781-2.515 0.431-5.521 2.597-7.845 1.535-1.569 5.407-3.113 4.972-3.812l-5.194-8.343z" fill-rule="evenodd" transform="matrix(-.99948 0 0 1.035 621.43 -5.225)" stroke-width="1pt" fill="#fff"/>
<path id="path1138" d="m273.36 143.06 0.774-0.497 14.86 25.027-0.773 0.497-14.861-25.027z" fill-rule="evenodd" transform="matrix(-.99948 0 0 1.035 621.43 -5.225)" stroke="#000" stroke-width=".49160" fill="#fff"/>
<path id="path1141" d="m268.43 149.76c-0.405 2.809 1.237 3.665 2.713 4.209 1.528 0.543 2.859 2.064 3.504 3.547" transform="matrix(-.99948 0 0 1.035 621.43 -5.225)" stroke="#000" stroke-width=".25" fill="none"/>
<path id="path1142" d="m267.35 151.26c0.645 2.422 2.264 2.005 3.74 2.549 1.528 0.543 3.135 2.32 3.78 3.803" transform="matrix(-.99948 0 0 1.035 623.97 2.8373)" stroke="#000" stroke-width=".25" fill="none"/>
<path id="path1204" d="m273.36 143.06 0.774-0.497 14.86 25.027-0.773 0.497-14.861-25.027z" fill-rule="evenodd" transform="matrix(-.99948 0 0 1.035 621.43 -5.225)" stroke-width="1pt" fill="#fff"/>
<path id="path1207" d="m274.96 142.07c0 0.94585-0.76676 1.7126-1.7126 1.7126-0.94585 0-1.7126-0.76676-1.7126-1.7126s0.76676-1.7126 1.7126-1.7126c0.94586 0 1.7126 0.76676 1.7126 1.7126z" fill-rule="evenodd" transform="matrix(-.99948 0 0 1.035 621.43 -5.225)" stroke="#000" stroke-width=".49160" fill="#fff"/>
<path id="path1139" d="m274.96 142.07c0 0.94585-0.76676 1.7126-1.7126 1.7126-0.94585 0-1.7126-0.76676-1.7126-1.7126s0.76676-1.7126 1.7126-1.7126c0.94586 0 1.7126 0.76676 1.7126 1.7126z" fill-rule="evenodd" transform="matrix(-.99948 0 0 1.035 621.43 -5.225)" stroke-width="1pt" fill="#fff"/>
</g>
<g id="g1223" fill-rule="evenodd" transform="translate(0,199.5)" fill="#fff">
<rect id="rect1094" height="1.3811" width="6.0217" stroke="#000" y="121.3" x="287.99" stroke-width=".5"/>
<rect id="rect1095" height="11.538" width="6.0217" stroke="#000" y="123.91" x="287.99" stroke-width=".5"/>
<path id="path1096" d="m287.63 119.72 6.68 0.039c0.261-2.265-2-4.712-3.32-4.687-1.305 0.063-3.412 2.474-3.36 4.648z" stroke="#000" stroke-width=".5"/>
<rect id="rect1097" height="1.3811" width="6.0217" stroke="#000" y="121.33" x="327.55" stroke-width=".5"/>
<rect id="rect1098" height="11.538" width="6.0217" stroke="#000" y="123.95" x="327.55" stroke-width=".5"/>
<path id="path1099" d="m287.63 119.72 6.68 0.039c0.261-2.265-2-4.712-3.32-4.687-1.305 0.063-3.412 2.474-3.36 4.648z" transform="translate(39.556 .039082)" stroke="#000" stroke-width=".5"/>
<rect id="rect1217" height="1.3811" width="6.0217" y="121.3" x="287.99" stroke-width="1pt"/>
<rect id="rect1218" height="11.538" width="6.0217" y="123.91" x="287.99" stroke-width="1pt"/>
<path id="path1219" d="m287.63 119.72 6.68 0.039c0.261-2.265-2-4.712-3.32-4.687-1.305 0.063-3.412 2.474-3.36 4.648z"/>
<rect id="rect1220" height="1.3811" width="6.0217" y="121.33" x="327.55" stroke-width="1pt"/>
<rect id="rect1221" height="11.538" width="6.0217" y="123.95" x="327.55" stroke-width="1pt"/>
<path id="path1222" d="m287.63 119.72 6.68 0.039c0.261-2.265-2-4.712-3.32-4.687-1.305 0.063-3.412 2.474-3.36 4.648z" transform="translate(39.556 .039082)"/>
</g>
<rect id="rect1236" fill-rule="evenodd" height="11.538" width="6.0217" y="323.45" x="327.55" stroke-width="1pt" fill="#fff"/>
<rect id="rect1237" fill-rule="evenodd" height="1.3811" width="6.0217" y="320.83" x="327.55" stroke-width="1pt" fill="#fff"/>
<path id="path1238" d="m327.19 319.26 6.68 0.039c0.261-2.265-2-4.712-3.32-4.687-1.305 0.063-3.412 2.474-3.36 4.648z" fill-rule="evenodd" stroke-width="1pt" fill="#fff"/>
<rect id="rect1239" fill-rule="evenodd" height="11.538" width="6.0217" y="323.41" x="287.99" stroke-width="1pt" fill="#fff"/>
<rect id="rect1240" fill-rule="evenodd" height="1.3811" width="6.0217" y="320.8" x="287.99" stroke-width="1pt" fill="#fff"/>
<path id="path1241" d="m287.63 319.22 6.68 0.039c0.261-2.265-2-4.712-3.32-4.687-1.305 0.063-3.412 2.474-3.36 4.648z" fill-rule="evenodd" stroke-width="1pt" fill="#fff"/>
<g id="g1244" fill-rule="evenodd" transform="translate(0,199.5)" fill="#fff">
<path id="path1105" d="m282.98 137.41 3.829 4.219 47.658 0.078 3.907-4.219-12.188-0.156-5.938-4.141-19.142-0.078-5.547 4.297h-12.579z" stroke="#000" stroke-width=".5"/>
<path id="path1243" d="m282.98 137.41 3.829 4.219 47.658 0.078 3.907-4.219-12.188-0.156-5.938-4.141-19.142-0.078-5.547 4.297h-12.579z"/>
</g>
<g id="g1248" transform="translate(0,199.5)">
<path id="path1100" d="m302.49 130.9 16.457-0.017c2.228-1.178 2.923-4.94 2.912-7.045-0.031-6.218-4.38-9.2-8.745-9.359-0.654-0.033-1.413-0.542-1.586-1.138-0.43-1.35-0.319-4.865-0.79-4.817-0.419-0.006-0.296 3.441-0.669 4.707-0.205 0.63-0.913 1.251-1.619 1.287-5.433 0.271-8.937 4.237-8.8 9.32 0.092 3.361 0.483 5.368 2.84 7.062z" stroke="#000" stroke-width=".5" fill="none"/>
<path id="path1247" d="m302.49 130.9 16.457-0.017c2.228-1.178 2.923-4.94 2.912-7.045-0.031-6.218-4.38-9.2-8.745-9.359-0.654-0.033-1.413-0.542-1.586-1.138-0.43-1.35-0.319-4.786-0.79-4.817-0.34 0.033-0.296 3.441-0.669 4.707-0.205 0.63-0.913 1.251-1.619 1.287-5.433 0.271-8.937 4.237-8.8 9.32 0.092 3.361 0.483 5.368 2.84 7.062z" fill-rule="evenodd" fill="#fff"/>
<path id="path1101" d="m301.46 125.42c0.415 2.049 1.402 1.735 1.329 0.743-0.243-3.165 0.013-6.282 2.812-8.36 0.887-0.65-0.104-1.25-0.859-0.937-2.38 1.001-3.826 5.59-3.282 8.554z" stroke="#000" stroke-width=".25" fill="none"/>
<path id="path1102" d="m302.08 125.07c0.415 2.049 2.11 1.96 1.798 0.626-0.635-2.555-0.534-6.282 1.718-7.891 0.889-0.647-0.104-1.25-0.859-0.937-2.38 1.001-3.201 5.238-2.657 8.202z" transform="translate(2.1486 1.6407)" stroke="#000" stroke-width=".25" fill="none"/>
<path id="path1103" d="m301.46 125.42c0.415 2.049 1.402 1.735 1.329 0.743-0.243-3.165 0.013-6.282 2.812-8.36 0.887-0.65-0.104-1.25-0.859-0.937-2.38 1.001-3.826 5.59-3.282 8.554z" transform="matrix(-1.0011 0 0 1 621.88 .078125)" stroke="#000" stroke-width=".25" fill="none"/>
<path id="path1104" d="m302.08 125.07c0.415 2.049 2.11 1.96 1.798 0.626-0.635-2.555-0.534-6.282 1.718-7.891 0.889-0.647-0.104-1.25-0.859-0.937-2.38 1.001-3.201 5.238-2.657 8.202z" transform="matrix(-1.0011 0 0 1 619.73 1.7188)" stroke="#000" stroke-width=".25" fill="none"/>
</g>
<g id="g1256" fill-rule="evenodd" transform="translate(0,199.5)" fill="#fff">
<path id="path1106" d="m275.4 191.24h70.707l-6.329-5.157h-58.05l-6.328 5.157z" stroke="#000" stroke-width=".5"/>
<path id="path1255" d="m275.4 191.24h70.707l-6.329-5.157h-58.05l-6.328 5.157z"/>
</g>
<g id="g1339" transform="translate(0,199.5)">
<g id="g1312" fill="#fff" fill-rule="evenodd">
<g id="g1299" stroke="#000" stroke-width=".5">
<rect id="rect1300" height="9.2973" width="6.7191" y="144.84" x="287.67"/>
<rect id="rect1301" height="1.9532" width="6.4847" y="159.45" x="288.06"/>
<rect id="rect1302" height="7.266" width="6.641" y="162.88" x="287.91"/>
<rect id="rect1303" height="4.0627" width="7.266" y="171.63" x="287.44"/>
<path id="path1304" d="m288.44 157.7h5.855l1.161-1.933h-8.066l1.05 1.933z" transform="translate(-.11047)"/>
<path id="path1305" d="m296.23 150.58 0.055-5.082h4.033c-1.584 1.307-3.057 2.891-4.088 5.082z"/>
<rect id="rect1306" transform="scale(-1,1)" height="9.2973" width="6.6057" y="144.84" x="-333.68"/>
<rect id="rect1307" transform="scale(-1,1)" height="1.9532" width="6.3752" y="159.45" x="-333.57"/>
<rect id="rect1308" transform="scale(-1,1)" height="7.266" width="6.4924" y="162.88" x="-333.69"/>
<rect id="rect1309" transform="scale(-1,1)" height="4.0627" width="7.1433" y="171.63" x="-334.11"/>
<path id="path1310" d="m288.44 157.7h5.855l1.161-1.933h-8.066l1.05 1.933z" transform="matrix(-.98312 0 0 1 616.61 0)"/>
<path id="path1311" d="m296.23 150.58 0.055-5.082h4.033c-1.584 1.307-3.057 2.891-4.088 5.082z" transform="matrix(-.98312 0 0 1 616.5 0)"/>
</g>
<g id="g1272">
<rect id="rect1273" height="9.2973" width="6.7191" y="144.84" x="287.67" stroke-width="1pt"/>
<rect id="rect1274" height="1.9532" width="6.4847" y="159.45" x="288.06" stroke-width="1pt"/>
<rect id="rect1275" height="7.266" width="6.641" y="162.88" x="287.91" stroke-width="1pt"/>
<rect id="rect1276" height="4.0627" width="7.266" y="171.63" x="287.44" stroke-width="1pt"/>
<path id="path1277" d="m288.44 157.7h5.855l1.161-1.933h-8.066l1.05 1.933z" transform="translate(-.11047)"/>
<path id="path1278" d="m296.23 150.58 0.055-5.082h4.033c-1.584 1.307-3.057 2.891-4.088 5.082z"/>
<rect id="rect1279" transform="scale(-1,1)" height="9.2973" width="6.6057" y="144.84" x="-333.68" stroke-width="1pt"/>
<rect id="rect1280" transform="scale(-1,1)" height="1.9532" width="6.3752" y="159.45" x="-333.57" stroke-width="1pt"/>
<rect id="rect1281" transform="scale(-1,1)" height="7.266" width="6.4924" y="162.88" x="-333.69" stroke-width="1pt"/>
<rect id="rect1282" transform="scale(-1,1)" height="4.0627" width="7.1433" y="171.63" x="-334.11" stroke-width="1pt"/>
<path id="path1283" d="m288.44 157.7h5.855l1.161-1.933h-8.066l1.05 1.933z" transform="matrix(-.98312 0 0 1 616.61 0)"/>
<path id="path1284" d="m296.23 150.58 0.055-5.082h4.033c-1.584 1.307-3.057 2.891-4.088 5.082z" transform="matrix(-.98312 0 0 1 616.5 0)"/>
</g>
</g>
<path id="path1119" d="m288.71 152.66c0.04 1.087 1.271 0.602 1.271 0.055 0-1.677 0.022-3.49-0.045-4.677-0.008-0.875 2.085-0.656 2.073-0.117 0.008 1.416 0.024 3.358 0.032 5.015-0.015 0.807 1.352 0.737 1.333 0-0.008-1.851-0.009-4.541 0-5.903 0.012-1.754-4.605-1.716-4.641-0.039 0.002 1.377-0.025 3.842-0.023 5.666z" stroke="#000" stroke-width=".25" fill="none"/>
<path id="path1120" d="m288.71 152.66c0.04 1.087 1.271 0.602 1.271 0.055 0-1.677 0.022-3.49-0.045-4.677-0.008-0.875 2.085-0.656 2.073-0.117 0.008 1.416 0.024 3.358 0.032 5.015-0.015 0.807 1.312 0.737 1.294 0-0.008-1.89 0.03-4.541 0.039-5.903 0.012-1.754-4.605-1.716-4.641-0.039 0.002 1.377-0.025 3.842-0.023 5.666z" transform="translate(39.533 .19529)" stroke="#000" stroke-width=".25" fill="none"/>
<g id="g1126" transform="translate(.11719)">
<rect id="rect1121" height="5.9378" width="4.7659" stroke="#000" y="163.74" x="288.61" stroke-width=".25" fill="none"/>
<rect id="rect1122" fill-rule="evenodd" height=".97662" width="1.6798" y="166.2" x="291.66" stroke-width="1pt"/>
<rect id="rect1123" fill-rule="evenodd" height=".97662" width="1.6407" y="166.2" x="288.73" stroke-width="1pt"/>
<rect id="rect1124" fill-rule="evenodd" height="2.422" width="1.2891" y="163.82" x="290.37" stroke-width="1pt"/>
<rect id="rect1125" fill-rule="evenodd" height="2.5783" width="1.2891" y="167.14" x="290.37" stroke-width="1pt"/>
</g>
<g id="g1132" transform="translate(39.494 -.039062)">
<rect id="rect1133" height="5.9378" width="4.7659" stroke="#000" y="163.74" x="288.61" stroke-width=".25" fill="none"/>
<rect id="rect1134" fill-rule="evenodd" height=".97662" width="1.6798" y="166.2" x="291.66" stroke-width="1pt"/>
<rect id="rect1135" fill-rule="evenodd" height=".97662" width="1.6407" y="166.2" x="288.73" stroke-width="1pt"/>
<rect id="rect1136" fill-rule="evenodd" height="2.422" width="1.2891" y="163.82" x="290.37" stroke-width="1pt"/>
<rect id="rect1137" fill-rule="evenodd" height="2.5783" width="1.2891" y="167.14" x="290.37" stroke-width="1pt"/>
</g>
</g>
<g id="g1498" transform="translate(0,199.5)">
<rect id="rect1162" fill-rule="evenodd" height="5.8988" width=".82037" stroke="#000" y="164.05" x="323.77" stroke-width=".5" fill="#fff"/>
<path id="path1381" d="m307.83 171.87 1.289 3.867h2.929l-2.343-3.868-1.875 0.001zm-1.64 3.867 0.742 3.828 3.437 0.039-1.25-3.868-2.929 0.001zm5.82 0.039 2.383 3.789h4.883l-3.828-3.829-3.438 0.04zm-28.83 8.672c2.591-2.409 4.245-4.466 4.258-7.422h6.328c0.013 1.654 0.612 2.643 1.524 2.578l6.407-0.039-0.039-3.789h-4.649l-0.001-20.666c-0.169-7.305 8.881-11.563 12.58-11.524l-21.994-0.039v-0.664h46.253l0.039 0.664-22.306 0.039c6.615 0.013 12.995 6.277 13.048 11.564v5.859h-0.86l-0.039-5.781c0-5.782-7.282-11.186-13.126-11.017-5.053 0.145-12.891 4.962-12.813 10.978v1.797l11.993 0.078-0.117 2.07 1.883 1.202 3.756 1.197-0.055 3.105 2.69 0.793 0.023 3.102 3.227 1.385v3.211l2.047 1.261-0.094 3.261 2.774 1.953h-6.563l4.102 4.571h-6.055l-3.009-4.571h-3.984l1.797 4.531-4.257-0.039-1.017-4.492h-5.195l0.039 4.843-18.595 0.001zm18.556-12.54v3.828h4.454l-0.9-3.828h-3.554z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path1178" d="m307.83 171.87 1.289 3.867h2.929l-2.343-3.868-1.875 0.001zm-1.64 3.867 0.742 3.828 3.437 0.039-1.25-3.868-2.929 0.001zm5.82 0.039 2.383 3.789h4.883l-3.828-3.829-3.438 0.04zm-28.83 8.672c2.591-2.409 4.245-4.466 4.258-7.422h6.328c0.013 1.654 0.612 2.643 1.524 2.578l6.407-0.039-0.039-3.789h-4.649l-0.001-20.666c-0.169-7.305 8.881-11.563 12.58-11.524l-21.994-0.039v-0.664h46.253l0.039 0.664-22.306 0.039c6.615 0.013 12.995 6.277 13.048 11.564v5.859h-0.86l-0.039-5.781c0-5.782-7.282-11.186-13.126-11.017-5.053 0.145-12.891 4.962-12.813 10.978v1.797l11.993 0.078-0.117 2.07 1.883 1.202 3.756 1.197-0.055 3.105 2.69 0.793 0.023 3.102 3.227 1.385v3.211l2.047 1.261-0.094 3.261 2.774 1.953h-6.563l4.102 4.571h-6.055l-3.009-4.571h-3.984l1.797 4.531-4.257-0.039-1.017-4.492h-5.195l0.039 4.843-18.595 0.001zm18.556-12.54v3.828h4.454l-0.9-3.828h-3.554z" fill-rule="evenodd" stroke-width="1pt" fill="#fff"/>
<rect id="rect1179" height="6.3675" width="2.7736" stroke="#000" y="165.15" x="301.97" stroke-width=".24760" fill="none"/>
<path id="path1180" d="m298.05 171.73h2.707l-0.017-4.594c-0.035-1.997 1.793-4.01 2.668-4.077 0.97-0.036 2.4 1.885 2.448 3.92l0.039 4.766 2.872-0.006v-11.829l-10.717 0.056v11.764z" transform="matrix(1 0 0 1.0198 0 -3.1686)" stroke="#000" stroke-width=".25" fill="none"/>
<rect id="rect1181" height="2.6174" width="3.3596" stroke="#000" y="174.76" x="319.47" stroke-width=".24673" fill="none"/>
<rect id="rect1182" height="2.6174" width="3.3596" stroke="#000" y="170.26" x="317.48" stroke-width=".24673" fill="none"/>
<rect id="rect1183" height="2.6174" width="3.3596" stroke="#000" y="165.77" x="314.24" stroke-width=".24673" fill="none"/>
<rect id="rect1184" height="2.6174" width="3.3596" stroke="#000" y="161.98" x="311.46" stroke-width=".24673" fill="none"/>
<path id="path1185" d="m309.24 171.98 3.437 0.117 6.133 5.43v-3.203l-2.07-1.484v-2.54l-3.008-1.718v-2.735l-2.93-0.976v-3.712l-1.485-1.211-0.077 12.032z" stroke="#000" stroke-width=".25" fill="none"/>
<rect id="rect1382" fill-rule="evenodd" height="5.8988" width=".82037" y="164.05" x="323.77" stroke-width="1pt" fill="#fff"/>
</g>
<g id="g1550" stroke-linejoin="round" fill-rule="evenodd" transform="translate(0,199.5)" stroke="#000" stroke-width=".5" fill="#fff">
<path id="path912" d="m273.06 107.63c0.298 4.66-1.148 7.218-3.616 6.829-0.68-2.585 0.867-4.319 3.616-6.829z" transform="translate(-9.0952 -3.3232)"/>
<path id="path913" d="m267.46 119.35c-2.194-1.116-0.611-9.637 0.231-13.209 0.623 4.601 1.665 11.141-0.231 13.209z" transform="translate(-8.9203 -4.7225)"/>
<path id="path914" d="m267.72 119c3.688 1.283 6.608-2.689 7.595-7.289-3.044 4.201-7.998 4.206-7.595 7.289z" transform="translate(-8.3956 -3.9646)"/>
<path id="path915" d="m264.63 123.47c-2.884-0.762-1.147-9.802-0.623-13.418 0.634 3.735 2.622 12.181 0.623 13.418z" transform="translate(-8.1041 -4.1395)"/>
<path id="path916" d="m265.44 122.96c0.161-3.118 3.269-2.217 5.414-3.881-0.35 1.558-1.669 4.319-5.414 3.881z" transform="translate(-7.9292 -3.9063)"/>
<path id="path917" d="m262.26 128.01c-2.858-0.771-1.14-10.5-1.302-14.506 0.838 3.461 3.491 13.568 1.302 14.506z" transform="translate(-8.279 -4.7808)"/>
<path id="path918" d="m263.25 127.06c2.341 0.761 5.442-0.76 5.686-3.548-2.016 1.368-5.235 0.322-5.686 3.548z" transform="translate(-7.9292 -4.2561)"/>
<path id="path919" d="m262.34 128.34c-2.733 0.218-1.51-8.068-1.508-15.785 1.004 7.213 3.739 13.816 1.508 15.785z" transform="translate(-10.494 -.81623)"/>
<path id="path920" d="m263.29 127.15c1.846 0.926 5.153-0.554 6.097-3.672-3.335 1.45-5.565 0.033-6.097 3.672z" transform="translate(-10.494)"/>
</g>
<g id="g1560" fill-rule="evenodd" transform="translate(0,199.5)" fill="#fff">
<path id="path1561" d="m273.06 107.63c0.298 4.66-1.148 7.218-3.616 6.829-0.68-2.585 0.867-4.319 3.616-6.829z" transform="translate(-9.0952 -3.3232)"/>
<path id="path1562" d="m267.46 119.35c-2.194-1.116-0.611-9.637 0.231-13.209 0.623 4.601 1.665 11.141-0.231 13.209z" transform="translate(-8.9203 -4.7225)"/>
<path id="path1563" d="m267.72 119c3.688 1.283 6.608-2.689 7.595-7.289-3.044 4.201-7.998 4.206-7.595 7.289z" transform="translate(-8.3956 -3.9646)"/>
<path id="path1564" d="m264.63 123.47c-2.884-0.762-1.147-9.802-0.623-13.418 0.634 3.735 2.622 12.181 0.623 13.418z" transform="translate(-8.1041 -4.1395)"/>
<path id="path1565" d="m265.44 122.96c0.161-3.118 3.269-2.217 5.414-3.881-0.35 1.558-1.669 4.319-5.414 3.881z" transform="translate(-7.9292 -3.9063)"/>
<path id="path1566" d="m262.26 128.01c-2.858-0.771-1.14-10.5-1.302-14.506 0.838 3.461 3.491 13.568 1.302 14.506z" transform="translate(-8.279 -4.7808)"/>
<path id="path1567" d="m263.25 127.06c2.341 0.761 5.442-0.76 5.686-3.548-2.016 1.368-5.235 0.322-5.686 3.548z" transform="translate(-7.9292 -4.2561)"/>
<path id="path1568" d="m262.34 128.34c-2.733 0.218-1.51-8.068-1.508-15.785 1.004 7.213 3.739 13.816 1.508 15.785z" transform="translate(-10.494 -.81623)"/>
<path id="path1569" d="m263.29 127.15c1.846 0.926 5.153-0.554 6.097-3.672-3.335 1.45-5.565 0.033-6.097 3.672z" transform="translate(-10.494)"/>
</g>
<g id="g1570" stroke-linejoin="round" fill-rule="evenodd" transform="translate(0,199.5)" stroke="#000" stroke-width=".5" fill="#fff">
<path id="path884" d="m274.25 108.62c-0.486 4.042-2.138 6.394-4.606 6.005-0.68-2.585 1.321-4.237 4.606-6.005z"/>
<path id="path885" d="m267.72 119c4.1 0.582 5.577-2.565 8.337-6.588-3.868 2.799-8.493 3.381-8.337 6.588z"/>
<path id="path886" d="m266.56 118.53c-2.235-2.682-0.075-6.05 1.633-8.921-0.367 4.271 1.088 6.647-1.633 8.921z"/>
<path id="path887" d="m265.57 122.96c-0.252-2.623 4.217-3.206 6.238-4.664-0.68 1.516-1.71 5.597-6.238 4.664z"/>
<path id="path888" d="m264.63 123.02c-3.09-0.35-1.807-5.597 0.408-8.513-0.933 4.024 1.632 6.822-0.408 8.513z"/>
<path id="path889" d="m262.3 127.39c-3.517-1.555-1.263-5.966 0.059-8.57-0.564 3.42 2.254 6.024-0.059 8.57z"/>
<path id="path890" d="m263 126.98c1.846 2.41 5.442-0.719 6.18-4.373-3.129 2.605-5.441 2.177-6.18 4.373z"/>
</g>
<g id="g1588" fill-rule="evenodd" transform="translate(0,199.5)" fill="#fff">
<path id="path1589" d="m274.25 108.62c-0.486 4.042-2.138 6.394-4.606 6.005-0.68-2.585 1.321-4.237 4.606-6.005z"/>
<path id="path1590" d="m267.72 119c4.1 0.582 5.577-2.565 8.337-6.588-3.868 2.799-8.493 3.381-8.337 6.588z"/>
<path id="path1591" d="m266.56 118.53c-2.235-2.682-0.075-6.05 1.633-8.921-0.367 4.271 1.088 6.647-1.633 8.921z"/>
<path id="path1592" d="m265.57 122.96c-0.252-2.623 4.217-3.206 6.238-4.664-0.68 1.516-1.71 5.597-6.238 4.664z"/>
<path id="path1593" d="m264.63 123.02c-3.09-0.35-1.807-5.597 0.408-8.513-0.933 4.024 1.632 6.822-0.408 8.513z"/>
<path id="path1594" d="m262.3 127.39c-3.517-1.555-1.263-5.966 0.059-8.57-0.564 3.42 2.254 6.024-0.059 8.57z"/>
<path id="path1595" d="m263 126.98c1.846 2.41 5.442-0.719 6.18-4.373-3.129 2.605-5.441 2.177-6.18 4.373z"/>
</g>
<g id="g1596" stroke-linejoin="round" fill-rule="evenodd" transform="translate(0,199.5)" stroke="#000" stroke-width=".5" fill="#fff">
<path id="path891" d="m347.66 109.02c0.467 2.1 0.584 6.24 4.315 5.423 0.544-3.848-2.585-4.023-4.315-5.423z"/>
<path id="path892" d="m354.01 118.94c-0.135-3.965-4.411-3.091-8.103-6.356 1.011 3.44 4.586 7.638 8.103 6.356z"/>
<path id="path893" d="m354.89 118.47c2.507-1.73 0.583-5.5-1.749-8.804 0.875 3.596-1.049 6.899 1.749 8.804z"/>
<path id="path894" d="m355.99 122.96c-4.042 0.311-4.761-1.71-6.355-4.314 2.76 1.788 6.452 0.661 6.355 4.314z"/>
<path id="path895" d="m356.99 123.08c-1.925-1.575 0.466-4.956-0.35-8.337 1.516 2.137 3.848 7.249 0.35 8.337z"/>
<path id="path896" d="m358.68 127.27c-4.042 0.952-5.344-1.185-6.355-4.78 3.284 3.012 5.111 1.593 6.355 4.78z"/>
<path id="path897" d="m359.26 127.22c2.818-0.039 1.555-5.616 0.116-8.162 0.389 3.071-2.079 6.607-0.116 8.162z"/>
</g>
<g id="g1604" fill-rule="evenodd" transform="translate(0,199.5)" fill="#fff">
<path id="path1605" d="m347.66 109.02c0.467 2.1 0.584 6.24 4.315 5.423 0.544-3.848-2.585-4.023-4.315-5.423z"/>
<path id="path1606" d="m354.01 118.94c-0.135-3.965-4.411-3.091-8.103-6.356 1.011 3.44 4.586 7.638 8.103 6.356z"/>
<path id="path1607" d="m354.89 118.47c2.507-1.73 0.583-5.5-1.749-8.804 0.875 3.596-1.049 6.899 1.749 8.804z"/>
<path id="path1608" d="m355.99 122.96c-4.042 0.311-4.761-1.71-6.355-4.314 2.76 1.788 6.452 0.661 6.355 4.314z"/>
<path id="path1609" d="m356.99 123.08c-1.925-1.575 0.466-4.956-0.35-8.337 1.516 2.137 3.848 7.249 0.35 8.337z"/>
<path id="path1610" d="m358.68 127.27c-4.042 0.952-5.344-1.185-6.355-4.78 3.284 3.012 5.111 1.593 6.355 4.78z"/>
<path id="path1611" d="m359.26 127.22c2.818-0.039 1.555-5.616 0.116-8.162 0.389 3.071-2.079 6.607-0.116 8.162z"/>
</g>
<g id="g1612" stroke-linejoin="round" fill-rule="evenodd" transform="translate(0,199.5)" stroke="#000" stroke-width=".5" fill="#fff">
<path id="path923" d="m348.2 108.2c0.506 2.334-0.471 6.943 3.26 6.907 1.56-2.637-1.765-5.117-3.26-6.907z" transform="translate(9.3361 -3.867)"/>
<path id="path924" d="m354.3 119.33c2.351-1.612 0.232-6.906-0.499-12.866-0.57 5.315-1.83 11.118 0.499 12.866z" transform="translate(8.8388 -4.5852)"/>
<path id="path925" d="m353.7 119.13c0.295-2.91-4.293-3.559-7.438-7.41 0.815 3.088 3.14 7.599 7.438 7.41z" transform="translate(8.1759 -3.9775)"/>
<path id="path926" d="m356.67 124.33c-2.472-2.239 0.465-8.667 0.587-13.65 0.383 4.598 2.403 12.835-0.587 13.65z" transform="translate(8.3417 -4.6404)"/>
<path id="path927" d="m355.21 122.69c-3.613 0.232-4.566-2.414-4.988-3.924 1.94 1.398 5.007 0.739 4.988 3.924z" transform="translate(8.3969 -3.646)"/>
<path id="path928" d="m358.95 128.11c2.778-0.117 1.75-10.655 1.365-13.982-0.275 3.54-3.172 12.701-1.365 13.982z" transform="translate(8.2864 -5.0823)"/>
<path id="path929" d="m358.28 127.04c-2.401 0.366-4.836-1.029-5.495-3.413 2.073 0.902 5.501 0.187 5.495 3.413z" transform="translate(7.734 -4.1984)"/>
<path id="path930" d="m358.75 127.96c2.974 1.211 1.907-12.53 1.522-15.701-0.275 4.048-3.797 13.99-1.522 15.701z" transform="translate(10.717 -.55242)"/>
<path id="path931" d="m358.44 127.35c-2.988 0.444-5.188-1.38-6.043-3.881 3.05 1.137 5.424 0.733 6.043 3.881z" transform="translate(10.33 .055256)"/>
</g>
<g id="g2151" fill-rule="evenodd" transform="translate(0,199.5)" fill="#fff">
<path id="path1058" d="m366.62 143.7c0.368-3.589-2.381-10.115-0.43-13.594 0.266-0.478-0.584-1.747-1.133-0.977-0.858 1.229-1.74 4.731-2.109 3.438-0.391-1.406-0.451-3.893-1.719-4.376-0.809-0.283-1.953-0.468-1.641 0.782 0.31 1.202 1.004 2.862 0.235 2.969-0.446 0.065-1.731-1.636-2.813-2.422-0.872-0.701-2.173 0.396-0.898 1.445 4.144 3.379 8.159 4.9 10.508 12.735z" stroke="#000" stroke-width=".5"/>
<path id="path2150" d="m366.62 143.7c0.368-3.589-2.381-10.115-0.43-13.594 0.266-0.478-0.584-1.747-1.133-0.977-0.858 1.229-1.74 4.731-2.109 3.438-0.391-1.406-0.451-3.893-1.719-4.376-0.809-0.283-1.953-0.468-1.641 0.782 0.31 1.202 1.004 2.862 0.235 2.969-0.446 0.065-1.731-1.636-2.813-2.422-0.872-0.701-2.173 0.396-0.898 1.445 4.144 3.379 8.159 4.9 10.508 12.735z"/>
</g>
<g id="g1622" fill-rule="evenodd" transform="translate(0,199.5)" fill="#fff">
<path id="path1623" d="m348.2 108.2c0.506 2.334-0.471 6.943 3.26 6.907 1.56-2.637-1.765-5.117-3.26-6.907z" transform="translate(9.3361 -3.867)"/>
<path id="path1624" d="m354.3 119.33c2.351-1.612 0.232-6.906-0.499-12.866-0.57 5.315-1.83 11.118 0.499 12.866z" transform="translate(8.8388 -4.5852)"/>
<path id="path1625" d="m353.7 119.13c0.295-2.91-4.293-3.559-7.438-7.41 0.815 3.088 3.14 7.599 7.438 7.41z" transform="translate(8.1759 -3.9775)"/>
<path id="path1626" d="m356.67 124.33c-2.472-2.239 0.465-8.667 0.587-13.65 0.383 4.598 2.403 12.835-0.587 13.65z" transform="translate(8.3417 -4.6404)"/>
<path id="path1627" d="m355.21 122.69c-3.613 0.232-4.566-2.414-4.988-3.924 1.94 1.398 5.007 0.739 4.988 3.924z" transform="translate(8.3969 -3.646)"/>
<path id="path1628" d="m358.95 128.11c2.778-0.117 1.75-10.655 1.365-13.982-0.275 3.54-3.172 12.701-1.365 13.982z" transform="translate(8.2864 -5.0823)"/>
<path id="path1629" d="m358.28 127.04c-2.401 0.366-4.836-1.029-5.495-3.413 2.073 0.902 5.501 0.187 5.495 3.413z" transform="translate(7.734 -4.1984)"/>
<path id="path1630" d="m358.75 127.96c2.974 1.211 1.907-12.53 1.522-15.701-0.275 4.048-3.797 13.99-1.522 15.701z" transform="translate(10.717 -.55242)"/>
<path id="path1631" d="m358.44 127.35c-2.988 0.444-5.188-1.38-6.043-3.881 3.05 1.137 5.424 0.733 6.043 3.881z" transform="translate(10.33 .055256)"/>
</g>
<g id="g2131" fill-rule="evenodd" transform="translate(0,199.5)" fill="#fff">
<path id="path1064" d="m244.38 141.09c-1.017-1.062-0.723-1.468 0.781-1.485 1.193-0.075 3.557 0.731 4.454 0.078 0.822-0.597 0.495-3.129 0.86-4.297 0.159-0.651 0.615-1.673 1.64-0.078 3.032 4.859 6.819 10.692 8.438 16.407 0.885 3.203 0.443 8.359-2.969 11.094l-2.422-7.032c-1.151-3.343-7.347-11.365-10.782-14.687z" transform="matrix(-.99523 0 0 1 620.24 .22098)" stroke="#000" stroke-width=".50120"/>
<path id="path2130" d="m244.38 141.09c-1.017-1.062-0.723-1.468 0.781-1.485 1.193-0.075 3.557 0.731 4.454 0.078 0.822-0.597 0.495-3.129 0.86-4.297 0.159-0.651 0.615-1.673 1.64-0.078 3.032 4.859 6.819 10.692 8.438 16.407 0.885 3.203 0.443 8.359-2.969 11.094l-2.422-7.032c-1.151-3.343-7.347-11.365-10.782-14.687z" transform="matrix(-.99523 0 0 1 620.24 .22098)"/>
</g>
<g id="g1632" stroke-linejoin="round" fill-rule="evenodd" transform="translate(0,199.5)" stroke="#000" stroke-width=".5" fill="#fff">
<path id="path932" d="m371.62 145.11c-1.36 4.373-2.177 7.957-0.214 8.379 2.098-0.364 1.186-4.589 0.214-8.379z" transform="translate(8.7836 -12.54)"/>
<path id="path933" d="m368.78 157.36c2.237 1.188 4.648-4.514 4.147-9.005-1.127 3.849-4.921 6.226-4.147 9.005z" transform="translate(11.484 -12.516)"/>
<path id="path934" d="m370.43 156.77c0.347-3.109-0.93-3.027-2.603-5.998 0.177 3.356 1.013 6.17 2.603 5.998z" transform="translate(9.0046 -12.043)"/>
<path id="path935" d="m369.11 156.76c2.611 0.741 5.603-5.475 5.491-10.069-1.087 5.085-6.754 7.117-5.491 10.069z" transform="translate(11.064 -7.4739)"/>
<path id="path936" d="m372.09 156.03c1.047-2.409-1.089-2.115-2.506-6.432-0.469 4.468 0.212 6.507 2.506 6.432z" transform="translate(7.2311 -6.8602)"/>
<path id="path937" d="m369.29 155.78c3.388 0.583 5.135-6.897 6.818-10.479-3.332 4.696-7.324 7.311-6.818 10.479z" transform="translate(10.788 -1.9228)"/>
<path id="path938" d="m372.36 155.49c0.99-2.758-1.809-2.604-3.283-6.726 0.234 5.228 0.913 7.114 3.283 6.726z" transform="translate(6.9304 -1.8892)"/>
<path id="path939" d="m369.7 156.6c2.142 0.155 5.994-5.827 6.077-9.522-1.83 4.069-7.574 6.765-6.077 9.522z" transform="translate(10.567 1.7516)"/>
<path id="path940" d="m372.16 155.96c0.891-2.877-1.597-2.896-2.701-6.119-0.078 4.859 0.68 6.507 2.701 6.119z" transform="translate(6.5129 1.7025)"/>
<path id="path941" d="m368.74 155.82c3.778 0.661 4.745-4.319 6.974-9.385-2.199 4.032-7.167 6.295-6.974 9.385z" transform="translate(10.014 7.0266)"/>
<path id="path942" d="m372.44 155.37c1.225-2.602-1.613-2.604-3.127-6.492-0.078 5.501 0.874 7.114 3.127 6.492z" transform="translate(6.0465 6.784)"/>
</g>
<g id="g1644" fill-rule="evenodd" transform="translate(0,199.5)" fill="#fff">
<path id="path1645" d="m371.62 145.11c-1.36 4.373-2.177 7.957-0.214 8.379 2.098-0.364 1.186-4.589 0.214-8.379z" transform="translate(8.7836 -12.54)"/>
<path id="path1646" d="m368.78 157.36c2.237 1.188 4.648-4.514 4.147-9.005-1.127 3.849-4.921 6.226-4.147 9.005z" transform="translate(11.484 -12.516)"/>
<path id="path1647" d="m370.43 156.77c0.347-3.109-0.93-3.027-2.603-5.998 0.177 3.356 1.013 6.17 2.603 5.998z" transform="translate(9.0046 -12.043)"/>
<path id="path1648" d="m369.11 156.76c2.611 0.741 5.603-5.475 5.491-10.069-1.087 5.085-6.754 7.117-5.491 10.069z" transform="translate(11.064 -7.4739)"/>
<path id="path1649" d="m372.09 156.03c1.047-2.409-1.089-2.115-2.506-6.432-0.469 4.468 0.212 6.507 2.506 6.432z" transform="translate(7.2311 -6.8602)"/>
<path id="path1650" d="m369.29 155.78c3.388 0.583 5.135-6.897 6.818-10.479-3.332 4.696-7.324 7.311-6.818 10.479z" transform="translate(10.788 -1.9228)"/>
<path id="path1651" d="m372.36 155.49c0.99-2.758-1.809-2.604-3.283-6.726 0.234 5.228 0.913 7.114 3.283 6.726z" transform="translate(6.9304 -1.8892)"/>
<path id="path1652" d="m369.7 156.6c2.142 0.155 5.994-5.827 6.077-9.522-1.83 4.069-7.574 6.765-6.077 9.522z" transform="translate(10.567 1.7516)"/>
<path id="path1653" d="m372.16 155.96c0.891-2.877-1.597-2.896-2.701-6.119-0.078 4.859 0.68 6.507 2.701 6.119z" transform="translate(6.5129 1.7025)"/>
<path id="path1654" d="m368.74 155.82c3.778 0.661 4.745-4.319 6.974-9.385-2.199 4.032-7.167 6.295-6.974 9.385z" transform="translate(10.014 7.0266)"/>
<path id="path1655" d="m372.44 155.37c1.225-2.602-1.613-2.604-3.127-6.492-0.078 5.501 0.874 7.114 3.127 6.492z" transform="translate(6.0465 6.784)"/>
</g>
<g id="g2127" fill-rule="evenodd" transform="translate(0,199.5)" fill="#fff">
<path id="path1068" d="m256.81 166.87c3.334 0.016 3.985-4.687 3.985-5.937-1.641 0.312-4.611 3.281-3.985 5.937z" transform="matrix(-.99526 0 0 1 620.35 .078125)" stroke="#000" stroke-width=".50119"/>
<path id="path2126" d="m256.81 166.87c3.334 0.016 3.985-4.687 3.985-5.937-1.641 0.312-4.611 3.281-3.985 5.937z" transform="matrix(-.99526 0 0 1 620.35 .078125)"/>
</g>
<g id="g1656" stroke-linejoin="round" fill-rule="evenodd" transform="translate(0,199.5)" stroke="#000" stroke-width=".5" fill="#fff">
<path id="path905" d="m371.39 145.58c-1.36 4.373-1.904 6.472-0.058 7.871 2.41-1.341 1.03-4.081 0.058-7.871z"/>
<path id="path906" d="m370.63 157.01c1.011-3.226-1.477-4.003-2.798-7.638-0.136 4.801 0.544 8.318 2.798 7.638z"/>
<path id="path907" d="m369.64 157.24c1.769 0.68 3.945-3.42 2.741-7.521-1.244 3.693-4.296 4.586-2.741 7.521z" transform="translate(1.9823 .46642)"/>
<path id="path908" d="m371.97 156.31c1.711-2.643-1.011-2.779-2.389-6.471-0.078 4.859 0.368 6.859 2.389 6.471z" transform="translate(-2.2155 5.0723)"/>
<path id="path909" d="m372.44 155.61c1.303-2.992-1.535-2.604-3.205-6.296-0.078 5.501 0.835 6.684 3.205 6.296z" transform="translate(-2.6819 10.32)"/>
<path id="path910" d="m369.7 156.6c1.478 0.038 4.353-2.546 3.499-5.772-1.244 2.702-4.762 2.429-3.499 5.772z" transform="translate(1.341 4.9557)"/>
<path id="path911" d="m369.29 155.78c2.411 0.505 4.237-3.186 3.966-5.713-1.886 2.352-4.472 2.545-3.966 5.713z" transform="translate(1.341 9.6782)"/>
</g>
<g id="g1664" fill-rule="evenodd" transform="translate(0,199.5)" fill="#fff">
<path id="path1665" d="m371.39 145.58c-1.36 4.373-1.904 6.472-0.058 7.871 2.41-1.341 1.03-4.081 0.058-7.871z"/>
<path id="path1666" d="m370.63 157.01c1.011-3.226-1.477-4.003-2.798-7.638-0.136 4.801 0.544 8.318 2.798 7.638z"/>
<path id="path1667" d="m369.64 157.24c1.769 0.68 3.945-3.42 2.741-7.521-1.244 3.693-4.296 4.586-2.741 7.521z" transform="translate(1.9823 .46642)"/>
<path id="path1668" d="m371.97 156.31c1.711-2.643-1.011-2.779-2.389-6.471-0.078 4.859 0.368 6.859 2.389 6.471z" transform="translate(-2.2155 5.0723)"/>
<path id="path1669" d="m372.44 155.61c1.303-2.992-1.535-2.604-3.205-6.296-0.078 5.501 0.835 6.684 3.205 6.296z" transform="translate(-2.6819 10.32)"/>
<path id="path1670" d="m369.7 156.6c1.478 0.038 4.353-2.546 3.499-5.772-1.244 2.702-4.762 2.429-3.499 5.772z" transform="translate(1.341 4.9557)"/>
<path id="path1671" d="m369.29 155.78c2.411 0.505 4.237-3.186 3.966-5.713-1.886 2.352-4.472 2.545-3.966 5.713z" transform="translate(1.341 9.6782)"/>
</g>
<g id="g2122" fill-rule="evenodd" transform="translate(0,199.5)" fill="#fff">
<path id="path1065" d="m235.63 159.06c-0.297-0.385-1.15 0.01-0.937 0.938 0.198 1.256 2.05 7.704 5.233 9.922 2.27 1.636 14.201 4.271 19.61 5.39 2.977 0.599 5.47 2.084 7.423 4.454-0.808-3.099-1.457-5.395-2.5-8.203-1.014-2.468-3.701-5.168-6.484-5.313-5.169-0.186-11.859-0.626-16.72-2.735-2.509-1.048-4.011-2.464-5.625-4.453z" transform="matrix(-.99523 0 0 1 620.24 .22098)" stroke="#000" stroke-width=".50120"/>
<path id="path2121" d="m235.63 159.06c-0.297-0.385-1.15 0.01-0.937 0.938 0.198 1.256 2.05 7.704 5.233 9.922 2.27 1.636 14.201 4.271 19.61 5.39 2.977 0.599 5.47 2.084 7.423 4.454-0.808-3.099-1.457-5.395-2.5-8.203-1.014-2.468-3.701-5.168-6.484-5.313-5.169-0.186-11.859-0.626-16.72-2.735-2.509-1.048-4.011-2.464-5.625-4.453z" transform="matrix(-.99523 0 0 1 620.24 .22098)"/>
</g>
<g id="g1682" stroke-linejoin="round" fill-rule="evenodd" transform="translate(0,199.5)" stroke="#000" stroke-width=".5" fill="#fff">
<path id="path955" d="m370.55 157.24c0.543-2.172-0.149-2.871 0.444-6.272-3.26 4.372-2.034 6.444-0.444 6.272z" transform="translate(7.9109 17.254)"/>
<path id="path956" d="m368.43 157.47c2.159 0.602 7.773-4.318 7.937-7.989-1.518 2.638-9.101 5.484-7.937 7.989z" transform="translate(10.39 17.563)"/>
<path id="path957" d="m370.95 156.62c1.477-0.807 1.06-4.224-0.279-5.377-0.274 3.335-2.288 5.296 0.279 5.377z" transform="translate(4.3404 21.656)"/>
<path id="path958" d="m369.11 156.76c2.611 0.819 5.564-3.912 7.718-5.967-2.455 2.116-9.879 3.132-7.718 5.967z" transform="translate(7.7044 22.448)"/>
<path id="path959" d="m371.46 157.09c1.828-1.198 0.122-3.561-0.006-8.229-1.836 3.374-2.21 7.991 0.006 8.229z" transform="translate(1.7623 24.468)"/>
<g id="g1672">
<path id="path960" d="m368.68 156.56c0.932 1.249 7.83-3.053 9.554-6.241-5.892 4.382-11.09 3.797-9.554 6.241z" transform="translate(4.8919 26.198)"/>
<path id="path961" d="m371.89 155.65c1.693-1.234-1.457-4.479-2.111-8.835 0.039 5.306-0.688 9.34 2.111 8.835z" transform="translate(.99281 31.002)"/>
<path id="path962" d="m369.17 155.47c0.849 1.365 6.112-2.248 8.381-6.181-3.489 3.055-9.356 3.873-8.381 6.181z" transform="translate(5.5532 29.718)"/>
<path id="path963" d="m371.66 157.32c1.907-0.338 1.645-5.161 0.19-9.088-1.641 4.742-2.367 9.554-0.19 9.088z" transform="translate(-2.3153 33.812)"/>
<path id="path964" d="m369.34 155.97c0.658 0.78 8.416-4.656 8.304-6.866-2.455 3.522-10.66 4.226-8.304 6.866z" transform="translate(4.7853 32.533)"/>
<path id="path965" d="m370.95 156.43c2.631-1.079 1.394-5.339 1.912-9.93-2.071 4.486-4.517 8.989-1.912 9.93z" transform="translate(-5.8286 39.206)"/>
<path id="path966" d="m368.39 155.47c0.419 1.443 6.737-1.233 9.787-5.635-3.684 2.86-10.839 3.249-9.787 5.635z" transform="translate(1.6547 36.48)"/>
<path id="path967" d="m369.07 156.36c1.361 2.264 9.197-1.882 10.335-5.772-2.533 3.366-11.285 2.858-10.335 5.772z" transform="translate(-3.1054 39.955)"/>
<path id="path968" d="m361.57 154.61c1.439 0.155 4.783-2.585 5.725-4.014-2.689 1.334-6.324 3.171-5.725 4.014z" transform="translate(7.9884 43.47)"/>
</g>
</g>
<g id="g1714" stroke-linejoin="round" fill-rule="evenodd" transform="translate(0,199.5)" stroke="#000" stroke-width=".5" fill="#fff">
<path id="path969" d="m369.98 156.85c1.712 0.248 3.951-2.895 2.456-6.08-0.743 3.179-5.726 5.492-2.456 6.08z" transform="translate(-12.222 24.39)"/>
<path id="path970" d="m369.11 156.76c1.322 0.741 4.666-2.818 4.241-5.147-1.869 2.976-5.621 3.835-4.241 5.147z" transform="translate(-7.6863 22.604)"/>
<path id="path971" d="m368.72 156.91c1.284 1.249 7.596-5.163 9.476-8.077-5.462 4.655-11.051 5.828-9.476 8.077z" transform="translate(-11.202 27.682)"/>
<path id="path972" d="m369.05 155.59c1.005 1.521 5.213-3.068 7.873-6.884-3.372 3.328-9.083 4.85-7.873 6.884z" transform="translate(-13.041 32.843)"/>
<path id="path974" d="m371.93 155.65c1.029-2.718-0.676-3.151-1.447-6.53-1.523 1.868-1.352 7.035 1.447 6.53z" transform="translate(-15.492 29.127)"/>
<path id="path975" d="m371.89 155.65c2.045-0.57-1.262-4.049-1.955-6.53-0.312 4.564-0.258 6.84 1.955 6.53z" transform="translate(-17.132 32.877)"/>
<path id="path976" d="m371.69 155.57c1.888-0.687-1.067-2.409-1.369-6.218-0.938 1.4-1.43 6.723 1.369 6.218z" transform="translate(-18.929 36.236)"/>
<path id="path977" d="m371.38 156.97c1.203-0.651 0.708-3.756-1.139-4.166-0.43 2.436-0.374 4.202 1.139 4.166z" transform="translate(-21.441 35.64)"/>
</g>
<g id="g1723" fill-rule="evenodd" transform="translate(0,199.5)" fill="#fff">
<path id="path1724" d="m369.98 156.85c1.712 0.248 3.951-2.895 2.456-6.08-0.743 3.179-5.726 5.492-2.456 6.08z" transform="translate(-12.222 24.39)"/>
<path id="path1725" d="m369.11 156.76c1.322 0.741 4.666-2.818 4.241-5.147-1.869 2.976-5.621 3.835-4.241 5.147z" transform="translate(-7.6863 22.604)"/>
<path id="path1726" d="m368.72 156.91c1.284 1.249 7.596-5.163 9.476-8.077-5.462 4.655-11.051 5.828-9.476 8.077z" transform="translate(-11.202 27.682)"/>
<path id="path1727" d="m369.05 155.59c1.005 1.521 5.213-3.068 7.873-6.884-3.372 3.328-9.083 4.85-7.873 6.884z" transform="translate(-13.041 32.843)"/>
<path id="path1728" d="m371.93 155.65c1.029-2.718-0.676-3.151-1.447-6.53-1.523 1.868-1.352 7.035 1.447 6.53z" transform="translate(-15.492 29.127)"/>
<path id="path1729" d="m371.89 155.65c2.045-0.57-1.262-4.049-1.955-6.53-0.312 4.564-0.258 6.84 1.955 6.53z" transform="translate(-17.132 32.877)"/>
<path id="path1730" d="m371.69 155.57c1.888-0.687-1.067-2.409-1.369-6.218-0.938 1.4-1.43 6.723 1.369 6.218z" transform="translate(-18.929 36.236)"/>
<path id="path1731" d="m371.38 156.97c1.203-0.651 0.708-3.756-1.139-4.166-0.43 2.436-0.374 4.202 1.139 4.166z" transform="translate(-21.441 35.64)"/>
</g>
<g id="g1698" fill-rule="evenodd" transform="translate(0,199.5)" fill="#fff">
<path id="path1699" d="m370.55 157.24c0.543-2.172-0.149-2.871 0.444-6.272-3.26 4.372-2.034 6.444-0.444 6.272z" transform="translate(7.9109 17.254)"/>
<path id="path1700" d="m368.43 157.47c2.159 0.602 7.773-4.318 7.937-7.989-1.518 2.638-9.101 5.484-7.937 7.989z" transform="translate(10.39 17.563)"/>
<path id="path1701" d="m370.95 156.62c1.477-0.807 1.06-4.224-0.279-5.377-0.274 3.335-2.288 5.296 0.279 5.377z" transform="translate(4.3404 21.656)"/>
<path id="path1702" d="m369.11 156.76c2.611 0.819 5.564-3.912 7.718-5.967-2.455 2.116-9.879 3.132-7.718 5.967z" transform="translate(7.7044 22.448)"/>
<path id="path1703" d="m371.46 157.09c1.828-1.198 0.122-3.561-0.006-8.229-1.836 3.374-2.21 7.991 0.006 8.229z" transform="translate(1.7623 24.468)"/>
<g id="g1704">
<path id="path1705" d="m368.68 156.56c0.932 1.249 7.83-3.053 9.554-6.241-5.892 4.382-11.09 3.797-9.554 6.241z" transform="translate(4.8919 26.198)"/>
<path id="path1706" d="m371.89 155.65c1.693-1.234-1.457-4.479-2.111-8.835 0.039 5.306-0.688 9.34 2.111 8.835z" transform="translate(.99281 31.002)"/>
<path id="path1707" d="m369.17 155.47c0.849 1.365 6.112-2.248 8.381-6.181-3.489 3.055-9.356 3.873-8.381 6.181z" transform="translate(5.5532 29.718)"/>
<path id="path1708" d="m371.66 157.32c1.907-0.338 1.645-5.161 0.19-9.088-1.641 4.742-2.367 9.554-0.19 9.088z" transform="translate(-2.3153 33.812)"/>
<path id="path1709" d="m369.34 155.97c0.658 0.78 8.416-4.656 8.304-6.866-2.455 3.522-10.66 4.226-8.304 6.866z" transform="translate(4.7853 32.533)"/>
<path id="path1710" d="m370.95 156.43c2.631-1.079 1.394-5.339 1.912-9.93-2.071 4.486-4.517 8.989-1.912 9.93z" transform="translate(-5.8286 39.206)"/>
<path id="path1711" d="m368.39 155.47c0.419 1.443 6.737-1.233 9.787-5.635-3.684 2.86-10.839 3.249-9.787 5.635z" transform="translate(1.6547 36.48)"/>
<path id="path1712" d="m369.07 156.36c1.361 2.264 9.197-1.882 10.335-5.772-2.533 3.366-11.285 2.858-10.335 5.772z" transform="translate(-3.1054 39.955)"/>
<path id="path1713" d="m361.57 154.61c1.439 0.155 4.783-2.585 5.725-4.014-2.689 1.334-6.324 3.171-5.725 4.014z" transform="translate(7.9884 43.47)"/>
</g>
</g>
<g id="g2099" fill-rule="evenodd" transform="translate(0,199.5)" fill="#fff">
<path id="path1066" d="m235.83 159.52c-0.377-0.307-0.876-0.76-0.704 0.176 1.409 7.41 1.855 9.483 8.349 12.044 6.602 2.508 8.968 1.631 14.589 1.533 3.034-0.111 6.567 1.404 8.671 3.618 0.98 1.03 1.687 1.441 1.294 0.128-0.394-1.312-0.777-3.015-1.396-4.379-1.348-3.002-4.834-5.866-8.321-7.011-4.879-1.717-10.139-0.854-15.164-2.164-2.621-0.724-5.138-2.183-7.318-3.945z" transform="matrix(-.87627 -.47410 -.47184 .88047 655.69 169.53)" stroke="#000" stroke-width=".50120"/>
<path id="path2098" d="m235.83 159.52c-0.377-0.307-0.876-0.76-0.704 0.176 1.409 7.41 1.855 9.483 8.349 12.044 6.602 2.508 8.968 1.631 14.589 1.533 3.034-0.111 6.567 1.404 8.671 3.618 0.98 1.03 1.687 1.441 1.294 0.128-0.394-1.312-0.777-3.015-1.396-4.379-1.348-3.002-4.834-5.866-8.321-7.011-4.879-1.717-10.139-0.854-15.164-2.164-2.621-0.724-5.138-2.183-7.318-3.945z" transform="matrix(-.87627 -.47410 -.47184 .88047 655.69 169.53)"/>
</g>
<g id="g2065" fill-rule="evenodd" transform="translate(0,199.5)" fill="#fff">
<path id="path1081" d="m287.66 208.42c0.884 0.11 1.444 1.822 1.879 0.663 0.738-1.877 0.221-3.37-0.608-3.205-0.979 0.261-2.635 2.456-1.271 2.542z" transform="matrix(-.98830 0 0 1 618.22 .055237)" stroke="#000" stroke-width=".50295"/>
<path id="path2064" d="m287.66 208.42c0.884 0.11 1.444 1.822 1.879 0.663 0.738-1.877 0.221-3.37-0.608-3.205-0.979 0.261-2.635 2.456-1.271 2.542z" transform="matrix(-.98830 0 0 1 618.22 .055237)"/>
</g>
<g id="g1732" stroke-linejoin="round" fill-rule="evenodd" transform="translate(0,199.5)" stroke="#000" stroke-width=".5" fill="#fff">
<path id="path987" d="m369.07 156.68c1.688 1.918 3.817-0.083 5.178-1.663-2.116-0.851-4.775-1.09-5.178 1.663z" transform="matrix(.82834 -.56023 .56023 .82834 -50.002 277.82)"/>
<path id="path988" d="m369.88 155.77c0.653 1.911 5.234-0.649 5.86-3.498-3.194 2.378-6.81 0.584-5.86 3.498z" transform="matrix(.99375 .11161 -.11161 .99375 -7.6867 7.2933)"/>
<path id="path989" d="m369.35 155.59c0.743 2.113 3.186-0.632 6.119-2.388-3.037 0.256-6.895 0.359-6.119 2.388z" transform="matrix(.48134 -.87653 .87653 .48134 26.604 452.13)"/>
<path id="path990" d="m369.72 156.65c1.037 2.192 4.134-1.586 6.415-3.811-2.863 0.884-7.437 1.73-6.415 3.811z" transform="matrix(.53651 -.84390 .84390 .53651 7.4196 434.51)"/>
<path id="path991" d="m369.99 156.72c1.361 2.264 4.656-2.483 6.614-5.157-3.228 2.134-8.079 2.995-6.614 5.157z" transform="matrix(.90884 .41716 -.41716 .90884 68.522 -90.128)"/>
<path id="path992" d="m369.99 156.72c1.361 2.264 4.656-2.483 6.614-5.157-3.228 2.134-8.079 2.995-6.614 5.157z" transform="matrix(.90884 .41716 -.41716 .90884 65.787 -86.456)"/>
<path id="path993" d="m370.24 156.74c1.172 1.967 4.482-2.131 6.763-4.356-2.863 0.884-7.938 2.326-6.763 4.356z" transform="matrix(.53651 -.84390 .84390 .53651 4.4898 438.57)"/>
<path id="path994" d="m370.48 156.11c1.361 2.264 4.413-1.984 6.218-4.803-3.166 2.363-7.683 2.641-6.218 4.803z" transform="matrix(.90884 .41716 -.41716 .90884 61.842 -83.019)"/>
</g>
<g id="g1741" fill-rule="evenodd" transform="translate(0,199.5)" fill="#fff">
<path id="path1742" d="m369.07 156.68c1.688 1.918 3.817-0.083 5.178-1.663-2.116-0.851-4.775-1.09-5.178 1.663z" transform="matrix(.82834 -.56023 .56023 .82834 -50.002 277.82)"/>
<path id="path1743" d="m369.88 155.77c0.653 1.911 5.234-0.649 5.86-3.498-3.194 2.378-6.81 0.584-5.86 3.498z" transform="matrix(.99375 .11161 -.11161 .99375 -7.6867 7.2933)"/>
<path id="path1744" d="m369.35 155.59c0.743 2.113 3.186-0.632 6.119-2.388-3.037 0.256-6.895 0.359-6.119 2.388z" transform="matrix(.48134 -.87653 .87653 .48134 26.604 452.13)"/>
<path id="path1745" d="m369.72 156.65c1.037 2.192 4.134-1.586 6.415-3.811-2.863 0.884-7.437 1.73-6.415 3.811z" transform="matrix(.53651 -.84390 .84390 .53651 7.4196 434.51)"/>
<path id="path1746" d="m369.99 156.72c1.361 2.264 4.656-2.483 6.614-5.157-3.228 2.134-8.079 2.995-6.614 5.157z" transform="matrix(.90884 .41716 -.41716 .90884 68.522 -90.128)"/>
<path id="path1747" d="m369.99 156.72c1.361 2.264 4.656-2.483 6.614-5.157-3.228 2.134-8.079 2.995-6.614 5.157z" transform="matrix(.90884 .41716 -.41716 .90884 65.787 -86.456)"/>
<path id="path1748" d="m370.24 156.74c1.172 1.967 4.482-2.131 6.763-4.356-2.863 0.884-7.938 2.326-6.763 4.356z" transform="matrix(.53651 -.84390 .84390 .53651 4.4898 438.57)"/>
<path id="path1749" d="m370.48 156.11c1.361 2.264 4.413-1.984 6.218-4.803-3.166 2.363-7.683 2.641-6.218 4.803z" transform="matrix(.90884 .41716 -.41716 .90884 61.842 -83.019)"/>
</g>
<g id="g1750" stroke-linejoin="round" fill-rule="evenodd" transform="translate(0,199.5)" stroke="#000" stroke-width=".5" fill="#fff">
<path id="path978" d="m369.07 156.68c1.361 2.263 6.384-1.648 9.124-3.663-3.939 1.217-10.074 0.749-9.124 3.663z" transform="translate(-10.066 52.329)"/>
<path id="path979" d="m369.28 156.37c1.361 2.264 8.564-2.689 9.028-4.913-3.08 2.902-10.243 2.972-9.028 4.913z" transform="matrix(.93771 .34742 -.34742 .93771 61.925 -63.565)"/>
<path id="path980" d="m369.02 156.34c0.734 1.246 6.626-1.513 9.316-3.687-3.171 1.645-10.727 1.777-9.316 3.687z" transform="matrix(.93771 .34742 -.34742 .93771 58.168 -61.466)"/>
<path id="path981" d="m369.07 156.36c0.474 1.218 7.802-0.699 9.444-3.567-4.491 2.466-11.007 0.797-9.444 3.567z" transform="matrix(.93771 .34742 -.34742 .93771 54.743 -59.808)"/>
<path id="path982" d="m369.61 155.58c0.357 1.803 7.914-1.407 10.013-3.154-4.247 1.211-10.571 0.511-10.013 3.154z" transform="matrix(.93771 .34742 -.34742 .93771 48.003 -58.041)"/>
<path id="path983" d="m369.84 156.21c0.943 2.325 8.486-2.48 11.315-4.831-4.94 1.877-12.584 2.587-11.315 4.831z" transform="matrix(.90337 -.42886 .42886 .90337 -60.675 232.1)"/>
<path id="path984" d="m370.05 156.48c1.361 2.264 5.479-1.701 8.171-4.767-3.344 2.159-9.121 1.853-8.171 4.767z" transform="matrix(.90337 -.42886 .42886 .90337 -55.593 230.66)"/>
<path id="path985" d="m369.77 156.44c1.361 2.264 4.556-1.577 6.334-4.083-2.48 1.705-7.284 1.169-6.334 4.083z" transform="matrix(.90337 -.42886 .42886 .90337 -51.063 229.12)"/>
<path id="path986" d="m369.35 155.59c1.361 2.264 5.597-0.218 6.735-4.108-2.533 3.366-7.685 1.194-6.735 4.108z" transform="matrix(.90337 -.42886 .42886 .90337 -46.201 227.13)"/>
<path id="path1038" d="m369.18 156.24c1.084 2.76 12.483-2.413 14.394-5.864-3.662 3.095-15.455 2.674-14.394 5.864z" transform="translate(-23.348 64.439)"/>
</g>
<g id="g1761" fill-rule="evenodd" transform="translate(0,199.5)" fill="#fff">
<path id="path1762" d="m369.07 156.68c1.361 2.263 6.384-1.648 9.124-3.663-3.939 1.217-10.074 0.749-9.124 3.663z" transform="translate(-10.066 52.329)"/>
<path id="path1763" d="m369.28 156.37c1.361 2.264 8.564-2.689 9.028-4.913-3.08 2.902-10.243 2.972-9.028 4.913z" transform="matrix(.93771 .34742 -.34742 .93771 61.925 -63.565)"/>
<path id="path1764" d="m369.02 156.34c0.734 1.246 6.626-1.513 9.316-3.687-3.171 1.645-10.727 1.777-9.316 3.687z" transform="matrix(.93771 .34742 -.34742 .93771 58.168 -61.466)"/>
<path id="path1765" d="m369.07 156.36c0.474 1.218 7.802-0.699 9.444-3.567-4.491 2.466-11.007 0.797-9.444 3.567z" transform="matrix(.93771 .34742 -.34742 .93771 54.743 -59.808)"/>
<path id="path1766" d="m369.61 155.58c0.357 1.803 7.914-1.407 10.013-3.154-4.247 1.211-10.571 0.511-10.013 3.154z" transform="matrix(.93771 .34742 -.34742 .93771 48.003 -58.041)"/>
<path id="path1767" d="m369.84 156.21c0.943 2.325 8.486-2.48 11.315-4.831-4.94 1.877-12.584 2.587-11.315 4.831z" transform="matrix(.90337 -.42886 .42886 .90337 -60.675 232.1)"/>
<path id="path1768" d="m370.05 156.48c1.361 2.264 5.479-1.701 8.171-4.767-3.344 2.159-9.121 1.853-8.171 4.767z" transform="matrix(.90337 -.42886 .42886 .90337 -55.593 230.66)"/>
<path id="path1769" d="m369.77 156.44c1.361 2.264 4.556-1.577 6.334-4.083-2.48 1.705-7.284 1.169-6.334 4.083z" transform="matrix(.90337 -.42886 .42886 .90337 -51.063 229.12)"/>
<path id="path1770" d="m369.35 155.59c1.361 2.264 5.597-0.218 6.735-4.108-2.533 3.366-7.685 1.194-6.735 4.108z" transform="matrix(.90337 -.42886 .42886 .90337 -46.201 227.13)"/>
<path id="path1771" d="m369.18 156.24c1.084 2.76 12.483-2.413 14.394-5.864-3.662 3.095-15.455 2.674-14.394 5.864z" transform="translate(-23.348 64.439)"/>
</g>
<g id="g2048" fill-rule="evenodd" fill="#fff" transform="translate(0,199.5)">
<path id="path1060" d="m366.62 143.7c0.368-3.589-2.381-10.115-0.43-13.594 0.266-0.478-0.584-1.747-1.133-0.977-0.858 1.229-1.74 4.731-2.109 3.438-0.391-1.406-0.451-3.893-1.719-4.376-0.809-0.283-1.953-0.468-1.641 0.782 0.31 1.202 1.004 2.862 0.235 2.969-0.446 0.065-1.731-1.636-2.813-2.422-0.872-0.701-2.173 0.396-0.898 1.445 4.144 3.379 8.159 4.9 10.508 12.735z" transform="matrix(-.98188 0 0 1 614.94 .23438)" stroke="#000" stroke-width=".5"/>
<path id="path2023" d="m366.62 143.7c0.368-3.589-2.381-10.115-0.43-13.594 0.266-0.478-0.584-1.747-1.133-0.977-0.858 1.229-1.74 4.731-2.109 3.438-0.391-1.406-0.451-3.893-1.719-4.376-0.809-0.283-1.953-0.468-1.641 0.782 0.31 1.202 1.004 2.862 0.235 2.969-0.446 0.065-1.731-1.636-2.813-2.422-0.872-0.701-2.173 0.396-0.898 1.445 4.144 3.379 8.159 4.9 10.508 12.735z" transform="matrix(-.98188 0 0 1 614.94 .23438)" stroke-width="1pt"/>
</g>
<g id="g1944" fill-rule="evenodd" transform="translate(0,199.5)" fill="#fff">
<path id="path1063" d="m235.83 159.52c-0.377-0.307-0.876-0.76-0.704 0.176 1.409 7.41 1.855 9.483 8.349 12.044 6.602 2.508 8.968 1.631 14.589 1.533 3.034-0.111 6.567 1.404 8.671 3.618 0.98 1.03 1.687 1.441 1.294 0.128-0.394-1.312-0.777-3.015-1.396-4.379-1.348-3.002-4.834-5.866-8.321-7.011-4.879-1.717-10.139-0.854-15.164-2.164-2.621-0.724-5.138-2.183-7.318-3.945z" transform="matrix(.88047 -.47410 .47410 .88047 -35.615 169.31)" stroke="#000" stroke-width=".5"/>
<path id="path1943" d="m235.83 159.52c-0.377-0.307-0.876-0.76-0.704 0.176 1.409 7.41 1.855 9.483 8.349 12.044 6.602 2.508 8.968 1.631 14.589 1.533 3.034-0.111 6.567 1.404 8.671 3.618 0.98 1.03 1.687 1.441 1.294 0.128-0.394-1.312-0.777-3.015-1.396-4.379-1.348-3.002-4.834-5.866-8.321-7.011-4.879-1.717-10.139-0.854-15.164-2.164-2.621-0.724-5.138-2.183-7.318-3.945z" transform="matrix(.88047 -.47410 .47410 .88047 -35.615 169.31)"/>
</g>
<g id="g2061" fill-rule="evenodd" transform="translate(0,199.5)" fill="#fff">
<path id="path1080" d="m287.66 208.42c0.884 0.11 1.444 1.822 1.879 0.663 0.738-1.877 0.221-3.37-0.608-3.205-0.979 0.261-2.635 2.456-1.271 2.542z" stroke="#000" stroke-width=".5"/>
<path id="path2060" d="m287.66 208.42c0.884 0.11 1.444 1.822 1.879 0.663 0.738-1.877 0.221-3.37-0.608-3.205-0.979 0.261-2.635 2.456-1.271 2.542z"/>
</g>
<g id="g1772" fill-rule="evenodd" transform="translate(0,199.5)" stroke="#000" stroke-width=".5" fill="#fff">
<path id="path1017" d="m249.9 157.09c1.728 1.711 4.718-3.155 3.941-6.49-1.033 3.678-5.223 5.02-3.941 6.49z" transform="matrix(0.849 -.52839 .52839 0.849 -9.4802 208.69)"/>
<path id="path1018" d="m250.19 157.5c-2.085 1.745-3.69-5.558-3.041-8.224 1.03 4.254 4.665 6.769 3.041 8.224z" transform="matrix(.59662 -.80252 .80252 .59662 9.1043 316.78)"/>
<path id="path1019" d="m250.18 157.07c-2.021 1.7-3.633-4.676-2.984-7.342 1.233 4.066 4.608 5.887 2.984 7.342z" transform="matrix(.57031 -.82143 .82143 .57031 10.079 322.01)"/>
<path id="path1020" d="m250.12 156.81c1.728 1.711 4.523-3.507 3.639-6.448-1.144 3.931-4.921 4.978-3.639 6.448z" transform="matrix(0.849 -.52839 .52839 0.849 -12.293 205.49)"/>
<path id="path1021" d="m250.52 157.06c1.728 1.711 3.26-3.326 2.841-5.979-1.717 3.299-4.068 4.865-2.841 5.979z" transform="matrix(0.849 -.52839 .52839 0.849 -15.262 201.89)"/>
<path id="path1022" d="m250.37 157.56c-2.085 1.745-3.109-3.375-2.065-6.363 1.21 4.034 3.689 4.908 2.065 6.363z" transform="matrix(.57031 -.82143 .82143 .57031 6.9544 318.65)"/>
<path id="path1023" d="m250.33 156.62c1.52 1.162 3.868-1.273 2.834-4.049-1.623 0.795-4.329 2.684-2.834 4.049z" transform="matrix(.29048 -.95688 .95688 .29048 55.276 394.83)"/>
<path id="path1033" d="m250.98 156.86c-2.085 1.745-5.07-4.533-4.027-7.978 1.914 3.937 5.651 6.523 4.027 7.978z" transform="matrix(.59662 -.80252 .80252 .59662 13.91 320.87)"/>
</g>
<g id="g1996" fill-rule="evenodd" transform="translate(0,199.5)" fill="#fff">
<g id="g1948" stroke="#000" stroke-width=".5">
<path id="path1061" d="m244.38 141.09c-1.017-1.062-0.723-1.468 0.781-1.485 1.193-0.075 3.557 0.731 4.454 0.078 0.822-0.597 0.495-3.129 0.86-4.297 0.159-0.651 0.615-1.673 1.64-0.078 3.032 4.859 6.819 10.692 8.438 16.407 0.885 3.203 0.052 8.203-2.891 11.563 0.104-2.865-0.964-4.792-2.266-7.188-1.608-3.149-7.581-11.678-11.016-15z"/>
<path id="path1067" d="m256.88 166.64c3.334 0.016 3.907-4.453 3.907-5.703-1.641 0.312-4.532 3.047-3.907 5.703z"/>
</g>
<g id="g1951">
<path id="path1952" d="m244.38 141.09c-1.017-1.062-0.723-1.468 0.781-1.485 1.193-0.075 3.557 0.731 4.454 0.078 0.822-0.597 0.495-3.129 0.86-4.297 0.159-0.651 0.615-1.673 1.64-0.078 3.032 4.859 6.819 10.692 8.438 16.407 0.885 3.203 0.052 8.203-2.891 11.563 0.104-2.865-0.964-4.792-2.266-7.188-1.608-3.149-7.581-11.678-11.016-15z"/>
<path id="path1953" d="m256.88 166.64c3.334 0.016 3.907-4.453 3.907-5.703-1.641 0.312-4.532 3.047-3.907 5.703z"/>
</g>
</g>
<g id="g1781" fill-rule="evenodd" transform="translate(0,199.5)" fill="#fff">
<path id="path1782" d="m249.9 157.09c1.728 1.711 4.718-3.155 3.941-6.49-1.033 3.678-5.223 5.02-3.941 6.49z" transform="matrix(0.849 -.52839 .52839 0.849 -9.4802 208.69)"/>
<path id="path1783" d="m250.19 157.5c-2.085 1.745-3.69-5.558-3.041-8.224 1.03 4.254 4.665 6.769 3.041 8.224z" transform="matrix(.59662 -.80252 .80252 .59662 9.1043 316.78)"/>
<path id="path1784" d="m250.18 157.07c-2.021 1.7-3.633-4.676-2.984-7.342 1.233 4.066 4.608 5.887 2.984 7.342z" transform="matrix(.57031 -.82143 .82143 .57031 10.079 322.01)"/>
<path id="path1785" d="m250.12 156.81c1.728 1.711 4.523-3.507 3.639-6.448-1.144 3.931-4.921 4.978-3.639 6.448z" transform="matrix(0.849 -.52839 .52839 0.849 -12.293 205.49)"/>
<path id="path1786" d="m250.52 157.06c1.728 1.711 3.26-3.326 2.841-5.979-1.717 3.299-4.068 4.865-2.841 5.979z" transform="matrix(0.849 -.52839 .52839 0.849 -15.262 201.89)"/>
<path id="path1787" d="m250.37 157.56c-2.085 1.745-3.109-3.375-2.065-6.363 1.21 4.034 3.689 4.908 2.065 6.363z" transform="matrix(.57031 -.82143 .82143 .57031 6.9544 318.65)"/>
<path id="path1788" d="m250.33 156.62c1.52 1.162 3.868-1.273 2.834-4.049-1.623 0.795-4.329 2.684-2.834 4.049z" transform="matrix(.29048 -.95688 .95688 .29048 55.276 394.83)"/>
<path id="path1789" d="m250.98 156.86c-2.085 1.745-5.07-4.533-4.027-7.978 1.914 3.937 5.651 6.523 4.027 7.978z" transform="matrix(.59662 -.80252 .80252 .59662 13.91 320.87)"/>
</g>
<g id="g1790" stroke-linejoin="round" fill-rule="evenodd" transform="translate(0,199.5)" stroke="#000" stroke-width=".5" fill="#fff">
<path id="path1024" d="m250.86 158.12c-2.085 1.745-3.885-6.069-2.841-9.057 1.21 4.034 4.465 7.602 2.841 9.057z" transform="matrix(.57031 -.82143 .82143 .57031 -10.503 324.07)"/>
<path id="path1025" d="m250.38 156.93c1.52 1.162 3.351-2.708 3.264-5.322-1.623 0.795-4.759 3.957-3.264 5.322z" transform="matrix(.29048 -.95688 .95688 .29048 44.117 403.34)"/>
<path id="path1026" d="m250.88 157.68c-1.905 1.525-5.456-5.931-4.824-8.965 2.958 6.483 6.406 7.587 4.824 8.965z" transform="matrix(.57031 -.82143 .82143 .57031 -5.1125 327.37)"/>
<path id="path1027" d="m250.19 157.5c-1.851 1.583-3.841-6.002-3.478-9.025 1.462 4.19 4.77 7.93 3.478 9.025z" transform="matrix(.32122 -0.947 0.947 .32122 41.784 399.18)"/>
<path id="path1028" d="m250.38 157.68c-1.641 1.471-3.924-5.396-3.996-9.096 1.537 4.412 5.62 7.641 3.996 9.096z" transform="matrix(.32122 -0.947 0.947 .32122 45.209 400.95)"/>
<path id="path1029" d="m250.19 157.5c-2.085 1.745-3.875-5.679-3.226-8.345 1.497 4.196 4.85 6.89 3.226 8.345z" transform="matrix(.20456 -.97885 .97885 .20456 74.876 428.26)"/>
<path id="path1030" d="m249.96 156.68c-2.641 1.126-1.795-3.311-3.205-6.705 2.557 3.211 5.062 5.525 3.205 6.705z" transform="matrix(.98729 -.15894 .15894 .98729 -.40534 96.513)"/>
<path id="path1031" d="m250.18 157.07c-2.298 1.458-2.921-4.918-4.199-8.645 2.433 3.744 6.293 7.464 4.199 8.645z" transform="matrix(.98729 -.15894 .15894 .98729 3.6274 97.783)"/>
<path id="path1032" d="m250.41 157.35c-2.021 1.7-5.694-6.867-6.833-11.206 2.219 3.592 8.457 9.751 6.833 11.206z" transform="matrix(.98729 -.15894 .15894 .98729 9.0413 99.275)"/>
</g>
<g id="g1800" fill-rule="evenodd" transform="translate(0,199.5)" fill="#fff">
<path id="path1801" d="m250.86 158.12c-2.085 1.745-3.885-6.069-2.841-9.057 1.21 4.034 4.465 7.602 2.841 9.057z" transform="matrix(.57031 -.82143 .82143 .57031 -10.503 324.07)"/>
<path id="path1802" d="m250.38 156.93c1.52 1.162 3.351-2.708 3.264-5.322-1.623 0.795-4.759 3.957-3.264 5.322z" transform="matrix(.29048 -.95688 .95688 .29048 44.117 403.34)"/>
<path id="path1803" d="m250.88 157.68c-1.905 1.525-5.456-5.931-4.824-8.965 2.958 6.483 6.406 7.587 4.824 8.965z" transform="matrix(.57031 -.82143 .82143 .57031 -5.1125 327.37)"/>
<path id="path1804" d="m250.19 157.5c-1.851 1.583-3.841-6.002-3.478-9.025 1.462 4.19 4.77 7.93 3.478 9.025z" transform="matrix(.32122 -0.947 0.947 .32122 41.784 399.18)"/>
<path id="path1805" d="m250.38 157.68c-1.641 1.471-3.924-5.396-3.996-9.096 1.537 4.412 5.62 7.641 3.996 9.096z" transform="matrix(.32122 -0.947 0.947 .32122 45.209 400.95)"/>
<path id="path1806" d="m250.19 157.5c-2.085 1.745-3.875-5.679-3.226-8.345 1.497 4.196 4.85 6.89 3.226 8.345z" transform="matrix(.20456 -.97885 .97885 .20456 74.876 428.26)"/>
<path id="path1807" d="m249.96 156.68c-2.641 1.126-1.795-3.311-3.205-6.705 2.557 3.211 5.062 5.525 3.205 6.705z" transform="matrix(.98729 -.15894 .15894 .98729 -.40534 96.513)"/>
<path id="path1808" d="m250.18 157.07c-2.298 1.458-2.921-4.918-4.199-8.645 2.433 3.744 6.293 7.464 4.199 8.645z" transform="matrix(.98729 -.15894 .15894 .98729 3.6274 97.783)"/>
<path id="path1809" d="m250.41 157.35c-2.021 1.7-5.694-6.867-6.833-11.206 2.219 3.592 8.457 9.751 6.833 11.206z" transform="matrix(.98729 -.15894 .15894 .98729 9.0413 99.275)"/>
</g>
<path id="path1820" d="m276.43 420.33c-0.86048 3.0401-13.554-2.8657-14.971-5.9253 7.2632 3.8485 15.145 3.0436 14.971 5.9253z" fill-rule="evenodd" stroke-width="1pt" fill="#fff"/>
<g id="g2003" fill-rule="evenodd" transform="translate(0,199.5)" fill="#fff">
<path id="path1062" d="m235.63 159.06c-0.297-0.385-1.15 0.01-0.937 0.938 0.198 1.256 2.05 7.704 5.233 9.922 2.27 1.636 14.201 4.271 19.61 5.39 2.977 0.599 5.47 2.084 7.423 4.454-0.808-3.099-1.457-5.395-2.5-8.203-1.014-2.468-3.701-5.168-6.484-5.313-5.169-0.186-11.859-0.626-16.72-2.735-2.509-1.048-4.011-2.464-5.625-4.453z" stroke="#000" stroke-width=".5"/>
<path id="path1947" d="m235.63 159.06c-0.297-0.385-1.15 0.01-0.937 0.938 0.198 1.256 2.05 7.704 5.233 9.922 2.27 1.636 14.201 4.271 19.61 5.39 2.977 0.599 5.47 2.084 7.423 4.454-0.808-3.099-1.457-5.395-2.5-8.203-1.014-2.468-3.701-5.168-6.484-5.313-5.169-0.186-11.859-0.626-16.72-2.735-2.509-1.048-4.011-2.464-5.625-4.453z"/>
</g>
<g id="g1821" stroke-linejoin="round" fill-rule="evenodd" transform="translate(0,199.5)" stroke="#000" stroke-width=".5" fill="#fff">
<path id="path1008" d="m250.53 156.52c1.172 1.65 4.227-1.871 3.541-6.402-1.294 3.717-4.678 3.992-3.541 6.402z" transform="matrix(.94971 -.31314 .31314 .94971 -21.681 114.37)"/>
<path id="path1009" d="m250.32 156.17c1.924 1.363 3.843-2.203 3.432-5.697-0.838 3.332-5.085 4.105-3.432 5.697z" transform="matrix(.94971 -.31314 .31314 .94971 -19.806 118.59)"/>
<path id="path1010" d="m250.33 156.62c1.728 1.711 3.772-1.857 3.223-5.188-1.033 3.678-4.505 3.718-3.223 5.188z" transform="matrix(.94971 -.31314 .31314 .94971 -18.244 121.33)"/>
<path id="path1011" d="m250.32 157.35c-2.085 1.745-3.833-4.965-3.184-7.631 1.03 4.254 4.808 6.176 3.184 7.631z" transform="matrix(.85194 -.52363 .52363 .85194 -28.011 188.95)"/>
<path id="path1013" d="m250.2 157.55c-2.185 1.683-4.069-7.266-3.58-10.717 1.03 4.254 5.128 9.536 3.58 10.717z" transform="matrix(.85194 -.52363 .52363 .85194 -30.277 184.77)"/>
<path id="path1014" d="m250.32 157.35c-2.369 1.983-4.106-8.251-4.307-11.623 1.184 4.303 6.051 10.196 4.307 11.623z" transform="matrix(.85194 -.52363 .52363 .85194 -31.527 181.14)"/>
<path id="path1015" d="m250.82 156.4c1.377 2.03 2.221-1.098 4.058-5.093-3.21 1.222-5.195 2.683-4.058 5.093z" transform="matrix(.39304 -.91952 .91952 .39304 21.518 350.38)"/>
<path id="path1016" d="m251.34 156.64c1.45 0.511 1.093-1.551 2.704-4.982-1.901 0.408-4.048 4.274-2.704 4.982z" transform="matrix(.39304 -.91952 .91952 .39304 17.026 348.82)"/>
<path id="path1055" d="m251.93 155.26c1.01 1.145 2.712-1.137 1.918-3.973-1.185 2.394-2.754 2.65-1.918 3.973z" transform="matrix(.94971 -.31314 .31314 .94971 -16.369 123.44)"/>
</g>
<g id="g1831" fill-rule="evenodd" transform="translate(0,199.5)" fill="#fff">
<path id="path1832" d="m250.53 156.52c1.172 1.65 4.227-1.871 3.541-6.402-1.294 3.717-4.678 3.992-3.541 6.402z" transform="matrix(.94971 -.31314 .31314 .94971 -21.681 114.37)"/>
<path id="path1833" d="m250.32 156.17c1.924 1.363 3.843-2.203 3.432-5.697-0.838 3.332-5.085 4.105-3.432 5.697z" transform="matrix(.94971 -.31314 .31314 .94971 -19.806 118.59)"/>
<path id="path1834" d="m250.33 156.62c1.728 1.711 3.772-1.857 3.223-5.188-1.033 3.678-4.505 3.718-3.223 5.188z" transform="matrix(.94971 -.31314 .31314 .94971 -18.244 121.33)"/>
<path id="path1835" d="m250.32 157.35c-2.085 1.745-3.833-4.965-3.184-7.631 1.03 4.254 4.808 6.176 3.184 7.631z" transform="matrix(.85194 -.52363 .52363 .85194 -28.011 188.95)"/>
<path id="path1836" d="m250.2 157.55c-2.185 1.683-4.069-7.266-3.58-10.717 1.03 4.254 5.128 9.536 3.58 10.717z" transform="matrix(.85194 -.52363 .52363 .85194 -30.277 184.77)"/>
<path id="path1837" d="m250.32 157.35c-2.369 1.983-4.106-8.251-4.307-11.623 1.184 4.303 6.051 10.196 4.307 11.623z" transform="matrix(.85194 -.52363 .52363 .85194 -31.527 181.14)"/>
<path id="path1838" d="m250.82 156.4c1.377 2.03 2.221-1.098 4.058-5.093-3.21 1.222-5.195 2.683-4.058 5.093z" transform="matrix(.39304 -.91952 .91952 .39304 21.518 350.38)"/>
<path id="path1839" d="m251.34 156.64c1.45 0.511 1.093-1.551 2.704-4.982-1.901 0.408-4.048 4.274-2.704 4.982z" transform="matrix(.39304 -.91952 .91952 .39304 17.026 348.82)"/>
<path id="path1840" d="m251.93 155.26c1.01 1.145 2.712-1.137 1.918-3.973-1.185 2.394-2.754 2.65-1.918 3.973z" transform="matrix(.94971 -.31314 .31314 .94971 -16.369 123.44)"/>
</g>
<g id="g1878" stroke-linejoin="round" fill-rule="evenodd" transform="translate(0,199.5)" stroke="#000" stroke-width=".5" fill="#fff">
<path id="path995" d="m250.84 158.3c-3.215 0.553-4.94-7.294-5.05-10.29 1.147 3.834 6.165 8.875 5.05 10.29z" transform="matrix(.93241 -.36139 .36139 .93241 -48.214 118.01)"/>
<path id="path996" d="m250.7 157.48c-2.064 1.041-4.923-5.067-5.648-7.882 1.618 3.053 7.29 5.54 5.648 7.882z" transform="matrix(.93241 -.36139 .36139 .93241 -45.401 122.62)"/>
<path id="path997" d="m250.66 157.78c-1.663 1.73-4.962-6.484-5.072-9.48 1.099 4.067 6.931 7.345 5.072 9.48z" transform="matrix(.85194 -.52363 .52363 .85194 -48.246 179.19)"/>
<path id="path998" d="m250.35 157.83c-2.04 1.224-4.229-6.261-3.983-9.313 1.396 4.478 5.839 8.003 3.983 9.313z" transform="matrix(.85194 -.52363 .52363 .85194 -49.105 181.53)"/>
<path id="path1002" d="m251.31 157.15c2.336-1.256 1.88-2.356 1.566-5.653-1.666 2.73-3.097 3.567-1.566 5.653z" transform="matrix(.94971 -.31314 .31314 .94971 -44.025 104.06)"/>
<path id="path1003" d="m251.1 157.04c3.098 1.175 1.246-3.677 1.562-7.135-0.934 3.752-2.965 6.283-1.562 7.135z" transform="matrix(.94971 -.31314 .31314 .94971 -41.369 107.73)"/>
<path id="path1004" d="m250.97 156.67c2.341 0.226 2.729-3.064 2.29-7.348-0.983 4.148-3.943 5.756-2.29 7.348z" transform="matrix(.94971 -.31314 .31314 .94971 -39.025 111.25)"/>
<g id="g1862">
<path id="path999" d="m250.61 157.71c-2.085 1.745-4.517-6.761-4.218-9.23 1.36 4.09 5.727 7.888 4.218 9.23z" transform="matrix(.85194 -.52363 .52363 .85194 -48.48 184.74)"/>
<path id="path1000" d="m250.87 157.73c-2.185 1.685-5.272-6.352-5.564-9.873 1.813 4.919 7.334 7.959 5.564 9.873z" transform="matrix(.85194 -.52363 .52363 .85194 -44.808 188.88)"/>
<path id="path1001" d="m251.18 157.37c-2.816 2.488-5.904-6.145-6.25-9.653 2.057 5.343 8.086 7.779 6.25 9.653z" transform="matrix(.85194 -.52363 .52363 .85194 -40.902 193.41)"/>
<path id="path1005" d="m250.66 156.36c1.53 1.563 4.001-3.426 4.179-7.465-1.316 4.038-6.018 5.812-4.179 7.465z" transform="matrix(.94971 -.31314 .31314 .94971 -38.244 116.72)"/>
<path id="path1006" d="m250.88 157.58c1.999 1.389 3.157-4.485 2.47-8.769-1.441 3.545-4.212 6.449-2.47 8.769z" transform="matrix(.94971 -.31314 .31314 .94971 -35.509 120)"/>
<path id="path1007" d="m251.41 156.98c2.43 0.955 2.367-4.582 1.25-8.061-0.86 3.777-3.185 6.952-1.25 8.061z" transform="matrix(.94971 -.31314 .31314 .94971 -31.681 124.84)"/>
<path id="path1056" d="m247.98 153.48c-1.363 0.721-1.71-2.375-3.453-5.55 2.024 2.113 4.394 4.684 3.453 5.55z" transform="matrix(.85194 -.52363 .52363 .85194 -39.964 196.53)"/>
</g>
</g>
<g id="g1894" fill-rule="evenodd" transform="translate(0,199.5)" fill="#fff">
<path id="path1895" d="m250.84 158.3c-3.215 0.553-4.94-7.294-5.05-10.29 1.147 3.834 6.165 8.875 5.05 10.29z" transform="matrix(.93241 -.36139 .36139 .93241 -48.214 118.01)"/>
<path id="path1896" d="m250.7 157.48c-2.064 1.041-4.923-5.067-5.648-7.882 1.618 3.053 7.29 5.54 5.648 7.882z" transform="matrix(.93241 -.36139 .36139 .93241 -45.401 122.62)"/>
<path id="path1897" d="m250.66 157.78c-1.663 1.73-4.962-6.484-5.072-9.48 1.099 4.067 6.931 7.345 5.072 9.48z" transform="matrix(.85194 -.52363 .52363 .85194 -48.246 179.19)"/>
<path id="path1898" d="m250.35 157.83c-2.04 1.224-4.229-6.261-3.983-9.313 1.396 4.478 5.839 8.003 3.983 9.313z" transform="matrix(.85194 -.52363 .52363 .85194 -49.105 181.53)"/>
<path id="path1899" d="m251.31 157.15c2.336-1.256 1.88-2.356 1.566-5.653-1.666 2.73-3.097 3.567-1.566 5.653z" transform="matrix(.94971 -.31314 .31314 .94971 -44.025 104.06)"/>
<path id="path1900" d="m251.1 157.04c3.098 1.175 1.246-3.677 1.562-7.135-0.934 3.752-2.965 6.283-1.562 7.135z" transform="matrix(.94971 -.31314 .31314 .94971 -41.369 107.73)"/>
<path id="path1901" d="m250.97 156.67c2.341 0.226 2.729-3.064 2.29-7.348-0.983 4.148-3.943 5.756-2.29 7.348z" transform="matrix(.94971 -.31314 .31314 .94971 -39.025 111.25)"/>
<g id="g1902">
<path id="path1903" d="m250.61 157.71c-2.085 1.745-4.517-6.761-4.218-9.23 1.36 4.09 5.727 7.888 4.218 9.23z" transform="matrix(.85194 -.52363 .52363 .85194 -48.48 184.74)"/>
<path id="path1904" d="m250.87 157.73c-2.185 1.685-5.272-6.352-5.564-9.873 1.813 4.919 7.334 7.959 5.564 9.873z" transform="matrix(.85194 -.52363 .52363 .85194 -44.808 188.88)"/>
<path id="path1905" d="m251.18 157.37c-2.816 2.488-5.904-6.145-6.25-9.653 2.057 5.343 8.086 7.779 6.25 9.653z" transform="matrix(.85194 -.52363 .52363 .85194 -40.902 193.41)"/>
<path id="path1906" d="m250.66 156.36c1.53 1.563 4.001-3.426 4.179-7.465-1.316 4.038-6.018 5.812-4.179 7.465z" transform="matrix(.94971 -.31314 .31314 .94971 -38.244 116.72)"/>
<path id="path1907" d="m250.88 157.58c1.999 1.389 3.157-4.485 2.47-8.769-1.441 3.545-4.212 6.449-2.47 8.769z" transform="matrix(.94971 -.31314 .31314 .94971 -35.509 120)"/>
<path id="path1908" d="m251.41 156.98c2.43 0.955 2.367-4.582 1.25-8.061-0.86 3.777-3.185 6.952-1.25 8.061z" transform="matrix(.94971 -.31314 .31314 .94971 -31.681 124.84)"/>
<path id="path1909" d="m247.98 153.48c-1.363 0.721-1.71-2.375-3.453-5.55 2.024 2.113 4.394 4.684 3.453 5.55z" transform="matrix(.85194 -.52363 .52363 .85194 -39.964 196.53)"/>
</g>
</g>
<g id="g1534" stroke-linejoin="round" fill-rule="evenodd" transform="translate(-.11049 199.5)" stroke="#000" stroke-width=".5" fill="#fff">
<path id="path898" d="m250.28 153.28c2.433-1.8 0.577-5.167 0-8.369-0.783 3.037-2.844 7.022 0 8.369z"/>
<path id="path899" d="m250.2 157.78c-3.655-0.439-3.105-5.166-3.215-8.162 1.099 4.067 4.095 4.754 3.215 8.162z"/>
<path id="path900" d="m250.78 157.16c3.092-0.179 2.928-3.697 3.093-7.256-1.567 3.271-3.423 3.779-3.093 7.256z"/>
<path id="path901" d="m250.66 161.53c-2.405 0.192-3.655-2.171-4.205-5.854 2.281 3.394 4.356 2.336 4.205 5.854z"/>
<path id="path902" d="m251.52 161.24c3.092 0.398 2.598-3.202 2.474-5.855-0.948 2.529-3.463 3.326-2.474 5.855z"/>
<path id="path903" d="m246.7 159.72c0.247 2.35 1.732 6.39 4.123 5.483 0.989-2.886-2.103-3.463-4.123-5.483z"/>
<path id="path904" d="m251.56 165.45c-1.072-2.061 2.432-3.093 3.174-5.772 0.426 3.834 0.069 6.349-3.174 5.772z"/>
</g>
<g id="g1542" fill-rule="evenodd" transform="translate(-.11049 199.5)" fill="#fff">
<path id="path1543" d="m250.28 153.28c2.433-1.8 0.577-5.167 0-8.369-0.783 3.037-2.844 7.022 0 8.369z"/>
<path id="path1544" d="m250.2 157.78c-3.655-0.439-3.105-5.166-3.215-8.162 1.099 4.067 4.095 4.754 3.215 8.162z"/>
<path id="path1545" d="m250.78 157.16c3.092-0.179 2.928-3.697 3.093-7.256-1.567 3.271-3.423 3.779-3.093 7.256z"/>
<path id="path1546" d="m250.66 161.53c-2.405 0.192-3.655-2.171-4.205-5.854 2.281 3.394 4.356 2.336 4.205 5.854z"/>
<path id="path1547" d="m251.52 161.24c3.092 0.398 2.598-3.202 2.474-5.855-0.948 2.529-3.463 3.326-2.474 5.855z"/>
<path id="path1548" d="m246.7 159.72c0.247 2.35 1.732 6.39 4.123 5.483 0.989-2.886-2.103-3.463-4.123-5.483z"/>
<path id="path1549" d="m251.56 165.45c-1.072-2.061 2.432-3.093 3.174-5.772 0.426 3.834 0.069 6.349-3.174 5.772z"/>
</g>
<g id="g1510" stroke-linejoin="round" fill-rule="evenodd" transform="translate(0 199.39)" stroke="#000" stroke-width=".5" fill="#fff">
<path id="path943" d="m250.28 153.28c1.925-2.073 0.225-5.362-0.352-8.564-0.783 3.037-2.14 7.061 0.352 8.564z" transform="translate(-8.8046 -12.153)"/>
<path id="path944" d="m250.9 158.01c-3.381 0.343-4.199-6.533-4.543-9.49 1.099 4.067 4.993 5.926 4.543 9.49z" transform="translate(-9.4866 -13.021)"/>
<path id="path945" d="m250.86 157.08c2.389-1.234 1.834-3.892 2.585-5.889-1.606 2.451-3.071 2.802-2.585 5.889z" transform="translate(-8.7426 -12.153)"/>
<path id="path946" d="m251.06 158.17c-3.537 0.303-5.644-7.315-5.754-10.311 1.099 4.067 6.166 6.278 5.754 10.311z" transform="translate(-9.6106 -8.7426)"/>
<path id="path947" d="m250.74 157c3.326-0.765 2.928-2.916 2.429-6.397-1.059 3.506-2.915 2.763-2.429 6.397z" transform="translate(-8.6185 -7.6885)"/>
<path id="path948" d="m250.89 161.45c-3.889 0.66-3.616-5.492-6.704-9.955 2.671 3.315 7.48 7.492 6.704 9.955z" transform="translate(-9.4866 -7.6265)"/>
<path id="path949" d="m251.52 161.24c2.936 0.085 3.223-4.335 3.06-6.128-0.675 1.786-4.127 3.482-3.06 6.128z" transform="translate(-9.2386 -7.6265)"/>
<path id="path951" d="m244.63 155.97c1.458 4.733 3.529 9.476 6.076 9.116 1.223-2.691-2.416-3.034-6.076-9.116z" transform="translate(-9.3006 -6.8824)"/>
<path id="path952" d="m251.56 165.45c-1.072-2.061 2.432-3.093 3.174-5.772 0.426 3.834 0.069 6.349-3.174 5.772z" transform="translate(-9.2386 -7.9365)"/>
<path id="path953" d="m245.14 156.79c2.082 4.264 3.021 9.164 5.88 8.452 1.067-3.316-3.157-4.01-5.88-8.452z" transform="translate(-8.8046 -2.2942)"/>
<path id="path954" d="m251.48 165.49c-1.228-2.256 2.276-3.054 3.135-6.163 0.465 4.069 0.03 6.974-3.135 6.163z" transform="translate(-8.6806 -3.3482)"/>
</g>
<g id="g1522" fill-rule="evenodd" transform="translate(0 199.39)" fill="#fff">
<path id="path1523" d="m250.28 153.28c1.925-2.073 0.225-5.362-0.352-8.564-0.783 3.037-2.14 7.061 0.352 8.564z" transform="translate(-8.8046 -12.153)"/>
<path id="path1524" d="m250.9 158.01c-3.381 0.343-4.199-6.533-4.543-9.49 1.099 4.067 4.993 5.926 4.543 9.49z" transform="translate(-9.4866 -13.021)"/>
<path id="path1525" d="m250.86 157.08c2.389-1.234 1.834-3.892 2.585-5.889-1.606 2.451-3.071 2.802-2.585 5.889z" transform="translate(-8.7426 -12.153)"/>
<path id="path1526" d="m251.06 158.17c-3.537 0.303-5.644-7.315-5.754-10.311 1.099 4.067 6.166 6.278 5.754 10.311z" transform="translate(-9.6106 -8.7426)"/>
<path id="path1527" d="m250.74 157c3.326-0.765 2.928-2.916 2.429-6.397-1.059 3.506-2.915 2.763-2.429 6.397z" transform="translate(-8.6185 -7.6885)"/>
<path id="path1528" d="m250.89 161.45c-3.889 0.66-3.616-5.492-6.704-9.955 2.671 3.315 7.48 7.492 6.704 9.955z" transform="translate(-9.4866 -7.6265)"/>
<path id="path1529" d="m251.52 161.24c2.936 0.085 3.223-4.335 3.06-6.128-0.675 1.786-4.127 3.482-3.06 6.128z" transform="translate(-9.2386 -7.6265)"/>
<path id="path1530" d="m244.63 155.97c1.458 4.733 3.529 9.476 6.076 9.116 1.223-2.691-2.416-3.034-6.076-9.116z" transform="translate(-9.3006 -6.8824)"/>
<path id="path1531" d="m251.56 165.45c-1.072-2.061 2.432-3.093 3.174-5.772 0.426 3.834 0.069 6.349-3.174 5.772z" transform="translate(-9.2386 -7.9365)"/>
<path id="path1532" d="m245.14 156.79c2.082 4.264 3.021 9.164 5.88 8.452 1.067-3.316-3.157-4.01-5.88-8.452z" transform="translate(-8.8046 -2.2942)"/>
<path id="path1533" d="m251.48 165.49c-1.228-2.256 2.276-3.054 3.135-6.163 0.465 4.069 0.03 6.974-3.135 6.163z" transform="translate(-8.6806 -3.3482)"/>
</g>
<path id="path922" d="m248.8 332.67c2.052 0.555 4.204-1.749 3.458-5.197-2.345 0.584-3.421 2.713-3.458 5.197z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path1039" d="m242.23 330.94c0.179 0.97 1.359 1.058 1.016-0.312-0.286-1.112-0.335-1.948 0-2.852 0.459-1.133 0.306-3.062-0.039-3.867-0.348-0.85-1.501-0.352-1.016 0.313 0.534 0.771 0.562 2.375 0.195 3.124-0.483 1.106-0.352 2.574-0.156 3.594z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path2012" d="m248.8 332.67c2.052 0.555 4.204-1.749 3.458-5.197-2.345 0.584-3.421 2.713-3.458 5.197z" fill-rule="evenodd" stroke-width="1pt" fill="#fff"/>
<path id="path2013" d="m242.23 330.94c0.179 0.97 1.359 1.058 1.016-0.312-0.286-1.112-0.335-1.948 0-2.852 0.459-1.133 0.306-3.062-0.039-3.867-0.348-0.85-1.501-0.352-1.016 0.313 0.534 0.771 0.562 2.375 0.195 3.124-0.483 1.106-0.352 2.574-0.156 3.594z" fill-rule="evenodd" stroke-width="1pt" fill="#fff"/>
<path id="path2015" d="m249.33 327.25c-0.19451 1.515-1.4768 1.6524-1.1041-0.48729 0.31079-1.7368 0.36404-3.0424 0-4.4544-0.49878-1.7696-0.33252-4.7823 0.0424-6.0396 0.37817-1.3276 1.6311-0.54977 1.1041 0.48885-0.58029 1.2042-0.61071 3.7094-0.2119 4.8792 0.52487 1.7274 0.38251 4.0202 0.16952 5.6132z" fill-rule="evenodd" stroke="#000" stroke-width="0.5" fill="#fff"/>
<path id="path2022" d="m258.88 342.39c-0.79276 1.1662-2.0564 0.48933-1.3404-1.383 0.60459-1.2963 0.66944-2.9027 1.3428-3.8506 0.94174-1.4369 2.537-2.6344 3.4425-3.5034 0.93559-0.9258 1.7123-0.0336 0.85439 0.75965-1.0418 1.0424-2.172 2.3399-2.8001 3.3226-1.1714 1.9092-0.65572 3.4324-1.4991 4.6548z" fill-rule="evenodd" stroke="#000" stroke-width="0.5" fill="#fff"/>
<g id="g2031" fill-rule="evenodd" fill="#fff" transform="translate(-3.594 199.42)">
<path id="path2021" d="m242.54 131.62c0.179 0.97 1.484 0.926 1.141-0.444-0.286-1.112-0.933-2.181-0.598-3.085 0.459-1.133 0.571-3.079 0.226-3.884-0.348-0.85-1.47-0.28-0.985 0.385 0.534 0.771 0.114 2.925-0.253 3.674-0.483 1.106 0.273 2.334 0.469 3.354z" transform="matrix(-1.2604 -.50286 -.58469 1.2951 647.61 96.354)" stroke="#000" stroke-width=".36026"/>
<path id="path2027" d="m242.54 131.62c0.179 0.97 1.484 0.926 1.141-0.444-0.286-1.112-0.933-2.181-0.598-3.085 0.459-1.133 0.571-3.079 0.226-3.884-0.348-0.85-1.47-0.28-0.985 0.385 0.534 0.771 0.114 2.925-0.253 3.674-0.483 1.106 0.273 2.334 0.469 3.354z" transform="matrix(-1.2604 -.50286 -.58469 1.2951 647.61 96.354)" stroke-width="1pt"/>
</g>
<path id="path2034" d="m258.88 342.39c-0.79276 1.1662-2.0564 0.48933-1.3404-1.383 0.60459-1.2963 0.66944-2.9027 1.3428-3.8506 0.94174-1.4369 2.537-2.6344 3.4425-3.5034 0.93559-0.9258 1.7123-0.0336 0.85439 0.75965-1.0418 1.0424-2.172 2.3399-2.8001 3.3226-1.1714 1.9092-0.65572 3.4324-1.4991 4.6548z" fill-rule="evenodd" stroke-width="1pt" fill="#fff"/>
<g id="g2044" fill-rule="evenodd" fill="#fff" transform="translate(0,199.5)">
<path id="path2043" d="m242.23 131.78c-0.094 0.784 1.231 0.974 1.172-0.163-0.06-1.187-1.824-2.273-0.742-4.08 0.569-0.884 0.579-2.504 0.234-3.365-0.303-0.854-1.579-0.296-1.094 0.369 0.534 0.771-0.1 2.25-0.508 2.994-1.225 2.166 1.01 3.221 0.938 4.245z" transform="matrix(1 0 0 2.0999 3.4767 -139.85)" stroke="#000" stroke-width=".34504"/>
<path id="path2014" d="m242.23 131.78c-0.094 0.784 1.231 0.974 1.172-0.163-0.06-1.187-1.824-2.273-0.742-4.08 0.569-0.884 0.579-2.504 0.234-3.365-0.303-0.854-1.579-0.296-1.094 0.369 0.534 0.771-0.1 2.25-0.508 2.994-1.225 2.166 1.01 3.221 0.938 4.245z" transform="matrix(1 0 0 2.0999 3.4767 -139.85)"/>
</g>
<path id="path2047" d="m249.33 327.25c-0.19451 1.515-1.4768 1.6524-1.1041-0.48729 0.31079-1.7368 0.36404-3.0424 0-4.4544-0.49878-1.7696-0.33252-4.7823 0.0424-6.0396 0.37817-1.3276 1.6311-0.54977 1.1041 0.48885-0.58029 1.2042-0.61071 3.7094-0.2119 4.8792 0.52487 1.7274 0.38251 4.0202 0.16952 5.6132z" fill-rule="evenodd" stroke-width="1pt" fill="#fff"/>
<path id="path2051" d="m236.3 358.23c0.63456 0.75517 1.7042 0.24913 0.72951-0.77292-0.79772-0.82583-0.53515-1.0864-1.0213-2.0926-0.48071-1.1242-0.45566-1.7445-1.0359-2.5477-0.51311-0.76202-1.2849 0.0154-0.76788 0.65672 0.64906 0.75844 0.46988 1.3178 0.86685 2.0515 0.7335 1.2556 0.55465 1.9148 1.2287 2.705z" fill-rule="evenodd" stroke-width="1pt" fill="#fff"/>
<path id="path2052" d="m253.37 378.84c2.042 1.004 3.592 3.512 3.694 5.555 0.173 2.351 0.512 4.336 1.568 6.007-1.681-0.468-2.486-3.147-2.725-5.713-0.242-2.656-1.673-3.808-2.537-5.849z" fill-rule="evenodd" stroke-width="1pt" fill="#fff"/>
<path id="path2053" d="m257.63 383.76c1.413 2.6083 3.389 3.6031 3.49 5.5387 0.17118 2.2274 0.34039 2.3411 0.94398 4.5316-1.6634-0.4434-2.0819-0.58836-2.5312-3.9214-0.27706-2.3421-2.1522-3.9944-1.9028-6.1489z" fill-rule="evenodd" stroke-width="1pt" fill="#fff"/>
<path id="path1093" d="m334.74 427.43c0.039 0.989 0.157 1.784 0.743 2.578-3.412-1.367-8.229-0.635-11.524 0.899-1.47 0.702-3.248-0.802-1.524-2.227 2.452-1.987 8.125-0.86 12.305-1.25zm-48.136-0.052c0.048 0.932-0.06 1.786-0.403 2.6 3.709-1.536 7.691-0.26 11.438 1.251 2.576 1.065 2.784-0.779 2.329-1.417-0.782-1.132-2.295-2.375-4.209-2.402-1.274-0.018-6.179-0.062-9.155-0.032zm3.131-18.116c-1.035-0.446-2.237-0.017-3.315 1.118-3.622 3.549-7.872 7.007-11.302 9.697-1.28 1.112-2.588 3.107 2.872 5.101 0.198 0.075 4.178 1.55 6.7 1.644 1.03-0.029 1.027 1.509 0.836 1.919-0.435 0.819-0.12 1.132-0.999 1.92-0.916 0.773 0.098 1.774 0.818 1.094 3.074-2.669 8.059-0.961 12.863 0.601 1.135 0.314 3.212 0.226 3.194-1.34 0.02-1.706 1.256-2.912 2.012-2.956 1.961 0.34 11.651 0.448 14.636 0.085 1.74-0.226 1.845 2.384 2.776 3.413 0.642 0.682 3.113 0.863 4.807 0.115 3.349-1.556 8.452-1.556 10.532-0.069 0.855 0.651 1.53 0.123 1.044-0.538-0.626-0.904-0.612-1.323-0.923-2.037-0.781-1.589-0.158-1.978 0.661-2.093 9.253-1.193 12.206-4.35 9.377-6.924-3.653-3.204-7.72-6.425-11.224-10.211-0.95-1.004-1.578-1.407-3.555-0.585-6.045 2.753-13.718 4.76-21.227 4.907-6.987 0.06-16.594-3.172-20.583-4.861z" fill-rule="evenodd" fill-opacity=".18493" stroke="#000" stroke-width=".5"/>
<path id="path2056" d="m334.74 427.43c0.039 0.989 0.157 1.784 0.743 2.578-3.412-1.367-8.229-0.635-11.524 0.899-1.47 0.702-3.248-0.802-1.524-2.227 2.452-1.987 8.125-0.86 12.305-1.25zm-48.136-0.052c0.048 0.932-0.06 1.786-0.403 2.6 3.709-1.536 7.691-0.26 11.438 1.251 2.576 1.065 2.784-0.779 2.329-1.417-0.782-1.132-2.295-2.375-4.209-2.402-1.274-0.018-6.179-0.062-9.155-0.032zm3.131-18.116c-1.035-0.446-2.237-0.017-3.315 1.118-3.622 3.549-7.872 7.007-11.302 9.697-1.28 1.112-2.588 3.107 2.872 5.101 0.198 0.075 4.178 1.55 6.7 1.644 1.03-0.029 1.027 1.509 0.836 1.919-0.435 0.819-0.12 1.132-0.999 1.92-0.916 0.773 0.098 1.774 0.818 1.094 3.074-2.669 8.059-0.961 12.863 0.601 1.135 0.314 3.212 0.226 3.194-1.34 0.02-1.706 1.256-2.912 2.012-2.956 1.961 0.34 11.651 0.448 14.636 0.085 1.74-0.226 1.845 2.384 2.776 3.413 0.642 0.682 3.113 0.863 4.807 0.115 3.349-1.556 8.452-1.556 10.532-0.069 0.855 0.651 1.53 0.123 1.044-0.538-0.626-0.904-0.612-1.323-0.923-2.037-0.781-1.589-0.158-1.978 0.661-2.093 9.253-1.193 12.206-4.35 9.377-6.924-3.653-3.204-7.72-6.425-11.224-10.211-0.95-1.004-1.578-1.407-3.555-0.585-6.045 2.753-13.718 4.76-21.227 4.907-6.987 0.06-16.594-3.172-20.583-4.861z" fill-rule="evenodd" stroke-width="1pt" fill="#fff"/>
<g id="g2095" fill-rule="evenodd" fill="#fff" transform="translate(0,199.5)">
<path id="path973" d="m368.23 155.51c0.419 1.443 6.19-1.194 9.123-6.963-3.841 4.188-10.058 4.147-9.123 6.963z" transform="translate(-14.439 36.636)" stroke="#000" stroke-width=".5"/>
<path id="path2094" d="m368.23 155.51c0.419 1.443 6.19-1.194 9.123-6.963-3.841 4.188-10.058 4.147-9.123 6.963z" transform="translate(-14.439 36.636)" stroke-width="1pt"/>
</g>
<g id="g2091" fill-rule="evenodd" fill="#fff" transform="translate(0,199.5)">
<path id="path1054" d="m253.45 178.87c1.695 2.578 3.958 4.444 4.06 6.487 0.173 2.351 0.344 2.471 0.954 4.783-1.681-0.468-2.104-0.621-2.558-4.139-0.28-2.472-2.708-4.857-2.456-7.131z" transform="matrix(-1.0366 0 0 .94744 626.13 13.902)" stroke="#000" stroke-width=".50454"/>
<path id="path2090" d="m253.45 178.87c1.695 2.578 3.958 4.444 4.06 6.487 0.173 2.351 0.344 2.471 0.954 4.783-1.681-0.468-2.104-0.621-2.558-4.139-0.28-2.472-2.708-4.857-2.456-7.131z" transform="matrix(-1.0366 0 0 .94744 626.13 13.902)" stroke-width="1pt"/>
</g>
<g id="g2087" fill-rule="evenodd" fill="#fff" transform="translate(0,199.5)">
<path id="path1053" d="m254.38 180.28c2.042 1.004 2.506 2.667 2.587 4.726 0.04 2.384 0.617 4.226 1.673 5.897-2.103 0.305-2.486-3.147-2.725-5.713-0.242-2.656-0.671-2.869-1.535-4.91z" transform="matrix(-1.0476 0 0 1 632.74 -.27458)" stroke="#000" stroke-width=".48851"/>
<path id="path2086" d="m254.38 180.28c2.042 1.004 2.506 2.667 2.587 4.726 0.04 2.384 0.617 4.226 1.673 5.897-2.103 0.305-2.486-3.147-2.725-5.713-0.242-2.656-0.671-2.869-1.535-4.91z" transform="matrix(-1.0476 0 0 1 632.74 -.27458)" stroke-width="1pt"/>
</g>
<g id="g2135" fill-rule="evenodd" transform="translate(0,199.5)" fill="#fff">
<path id="path1045" d="m242.23 131.44c0.179 0.97 1.359 1.058 1.016-0.312-0.286-1.112-0.335-1.948 0-2.852 0.459-1.133 0.306-3.062-0.039-3.867-0.348-0.85-1.501-0.352-1.016 0.313 0.534 0.771 0.562 2.375 0.195 3.124-0.483 1.106-0.352 2.574-0.156 3.594z" transform="matrix(1.0696 0 0 1.5618 113.14 -77.646)" stroke="#000" stroke-width=".38685"/>
<path id="path2134" d="m242.23 131.44c0.179 0.97 1.359 1.058 1.016-0.312-0.286-1.112-0.335-1.948 0-2.852 0.459-1.133 0.306-3.062-0.039-3.867-0.348-0.85-1.501-0.352-1.016 0.313 0.534 0.771 0.562 2.375 0.195 3.124-0.483 1.106-0.352 2.574-0.156 3.594z" transform="matrix(1.0696 0 0 1.5618 113.14 -77.646)"/>
</g>
<g id="g2139" fill-rule="evenodd" transform="translate(0,199.5)" fill="#fff">
<path id="path1044" d="m242.23 131.78c-0.094 0.784 1.231 0.974 1.172-0.163-0.06-1.187-1.824-2.273-0.742-4.08 0.569-0.884 0.579-2.504 0.234-3.365-0.303-0.854-1.579-0.296-1.094 0.369 0.534 0.771-0.1 2.25-0.508 2.994-1.225 2.166 1.01 3.221 0.938 4.245z" transform="matrix(-.98429 0 0 2.0999 614.23 -139.96)" stroke="#000" stroke-width=".34779"/>
<path id="path2138" d="m242.23 131.78c-0.094 0.784 1.231 0.974 1.172-0.163-0.06-1.187-1.824-2.273-0.742-4.08 0.569-0.884 0.579-2.504 0.234-3.365-0.303-0.854-1.579-0.296-1.094 0.369 0.534 0.771-0.1 2.25-0.508 2.994-1.225 2.166 1.01 3.221 0.938 4.245z" transform="matrix(-.98429 0 0 2.0999 614.23 -139.96)"/>
</g>
<g id="g2143" fill-rule="evenodd" transform="translate(0,199.5)" fill="#fff">
<path id="path1043" d="m242.23 131.44c0.179 0.97 1.359 1.058 1.016-0.312-0.286-1.112-0.335-1.948 0-2.852 0.459-1.133 0.306-3.062-0.039-3.867-0.348-0.85-1.501-0.352-1.016 0.313 0.534 0.771 0.562 2.375 0.195 3.124-0.483 1.106-0.352 2.574-0.156 3.594z" transform="matrix(-.98429 0 0 1 617.65 -.11047)" stroke="#000" stroke-width=".50397"/>
<path id="path2142" d="m242.23 131.44c0.179 0.97 1.359 1.058 1.016-0.312-0.286-1.112-0.335-1.948 0-2.852 0.459-1.133 0.306-3.062-0.039-3.867-0.348-0.85-1.501-0.352-1.016 0.313 0.534 0.771 0.562 2.375 0.195 3.124-0.483 1.106-0.352 2.574-0.156 3.594z" transform="matrix(-.98429 0 0 1 617.65 -.11047)"/>
</g>
<g id="g2147" fill-rule="evenodd" transform="translate(0,199.5)" fill="#fff">
<path id="path1057" d="m357.77 126.77c-1.008 1.557-5.555-1.226-4.714-2.894 0.869-0.972 5.751 1.078 4.714 2.894z" transform="matrix(.82827 .56032 -.56032 .82827 146.81 -172.24)" stroke="#000" stroke-width=".5"/>
<path id="path2146" d="m357.77 126.77c-1.008 1.557-5.555-1.226-4.714-2.894 0.869-0.972 5.751 1.078 4.714 2.894z" transform="matrix(.82827 .56032 -.56032 .82827 146.81 -172.24)"/>
</g>
<g id="g2155" fill-rule="evenodd" transform="translate(0,199.5)" fill="#fff">
<path id="path1047" d="m242.22 131.74c0.179 0.97 1.234 0.857 1.321-0.555-0.013-1.006 0.431-2.074 0.266-2.87-0.197-1.186-0.906-2.386-1.251-3.191-0.348-0.85-1.141-0.469-0.805 0.274 0.384 0.954 0.75 2.098 0.874 2.905 0.208 1.555-0.601 2.417-0.405 3.437z" transform="matrix(1.2161 -.50286 .56418 1.2951 -6.3705 94.028)" stroke="#000" stroke-width=".36675"/>
<path id="path2154" d="m242.22 131.74c0.179 0.97 1.234 0.857 1.321-0.555-0.013-1.006 0.431-2.074 0.266-2.87-0.197-1.186-0.906-2.386-1.251-3.191-0.348-0.85-1.141-0.469-0.805 0.274 0.384 0.954 0.75 2.098 0.874 2.905 0.208 1.555-0.601 2.417-0.405 3.437z" transform="matrix(1.2161 -.50286 .56418 1.2951 -6.3705 94.028)"/>
</g>
<g id="g2160" fill-rule="evenodd" transform="translate(0,199.5)" fill="#fff">
<path id="path1046" d="m242.54 131.62c0.179 0.97 1.484 0.926 1.141-0.444-0.286-1.112-0.933-2.181-0.598-3.085 0.459-1.133 0.571-3.079 0.226-3.884-0.348-0.85-1.47-0.28-0.985 0.385 0.534 0.771 0.114 2.925-0.253 3.674-0.483 1.106 0.273 2.334 0.469 3.354z" transform="matrix(1.2161 -.50286 .56418 1.2951 -8.7924 95.591)" stroke="#000" stroke-width=".36675"/>
<path id="path2159" d="m242.54 131.62c0.179 0.97 1.484 0.926 1.141-0.444-0.286-1.112-0.933-2.181-0.598-3.085 0.459-1.133 0.571-3.079 0.226-3.884-0.348-0.85-1.47-0.28-0.985 0.385 0.534 0.771 0.114 2.925-0.253 3.674-0.483 1.106 0.273 2.334 0.469 3.354z" transform="matrix(1.2161 -.50286 .56418 1.2951 -8.7924 95.591)"/>
</g>
<path id="path1071" stroke-linejoin="round" d="m293.29 397.78c2.318 1.85 4.503 3.95 5.157 6.563 0.682 2.434 1.094 4.297 2.657 6.719-2.448-1.563-3.42-3.924-4.141-6.486-0.633-2.517-2.084-4.399-3.673-6.796z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path2163" d="m293.29 397.78c2.318 1.85 4.503 3.95 5.157 6.563 0.682 2.434 1.094 4.297 2.657 6.719-2.448-1.563-3.42-3.924-4.141-6.486-0.633-2.517-2.084-4.399-3.673-6.796z" fill-rule="evenodd" stroke-width="1pt" fill="#fff"/>
<path id="path2167" d="m290.64 397.78c2.162 1.771 3.565 3.793 4.219 6.406 0.682 2.434 1.641 4.375 3.048 6.563-2.292-1.563-3.733-3.689-4.454-6.251-0.633-2.518-1.38-4.4-2.813-6.718z" fill-rule="evenodd" stroke-width="1pt" fill="#fff"/>
<path id="path2168" d="m331.11 397.78c-2.21 1.7814-3.6441 3.8153-4.3126 6.4437-0.69713 2.4483-1.6774 4.4007-3.1156 6.6016 2.3428-1.5722 3.8158-3.7107 4.5528-6.2878 0.64704-2.5328 1.4106-4.4259 2.8754-6.7575z" fill-rule="evenodd" stroke-width="1pt" fill="#fff"/>
<path id="path2169" d="m328.39 397.78c-2.3694 1.8609-4.6029 3.9732-5.2714 6.6016-0.69713 2.4483-1.1183 4.3223-2.7159 6.7585 2.5023-1.5722 3.4959-3.9471 4.2329-6.5242 0.64704-2.5318 2.1302-4.4249 3.7545-6.836z" fill-rule="evenodd" stroke-width="1pt" fill="#fff"/>
<path id="path2170" d="m320.54 403.95c0.0637-0.457-0.24784-0.856-0.62208-0.976-0.72858-0.274-1.4542-0.497-2.1768-0.703-0.82114-0.195-1.281 0.394-1.284 0.781-0.004 0.644-0.0338 1.191 0 1.679 0.0448 0.608 0.16025 0.653 0.54444 0.743 0.61511 0.104 1.4034 0.21 2.0215 0.625 0.4897 0.302 0.96049 0.063 1.2053-0.468 0.15826-0.406 0.24485-1.2 0.31154-1.681z" fill-rule="evenodd" stroke-width="1pt" fill="#fff"/>
<path id="path2171" d="m311.69 403.95c-0.0569-0.457 0.18318-0.895 0.51752-1.015 0.65091-0.274 1.2991-0.341 1.983-0.313 0.75938-0.012 0.95056 0.16 0.95323 0.547 0.004 0.644 0.0302 1.269 0 1.757-0.04 0.608-0.0267 0.653-0.36991 0.743-0.54953 0.104-1.4868 0.132-2.039 0.547-0.4375 0.302-0.93634 0.063-0.96035-0.507 0.0107-0.43-0.0249-1.278-0.0845-1.759z" fill-rule="evenodd" stroke-width="1pt" fill="#fff"/>
<path id="path2172" d="m300.95 403.83c-0.064-0.457 0.249-0.856 0.625-0.976 0.732-0.274 1.461-0.497 2.187-0.703 0.825-0.195 1.287 0.394 1.29 0.781 0.004 0.644 0.034 1.191 0 1.679-0.045 0.608-0.161 0.653-0.547 0.743-0.618 0.104-1.41 0.21-2.031 0.625-0.492 0.302-0.965 0.063-1.211-0.468-0.159-0.406-0.246-1.2-0.313-1.681z" fill-rule="evenodd" stroke-width="1pt" fill="#fff"/>
<path id="path2173" d="m309.84 403.83c0.0572-0.457-0.18404-0.895-0.51995-1.015-0.65396-0.274-1.3052-0.341-1.9922-0.313-0.76295-0.012-0.95503 0.16-0.95771 0.547-0.004 0.644-0.0304 1.269 0 1.757 0.0402 0.608 0.0268 0.653 0.37165 0.743 0.55211 0.104 1.4937 0.132 2.0485 0.547 0.43955 0.302 0.94074 0.063 0.96486-0.507-0.0107-0.43 0.025-1.278 0.0849-1.759z" fill-rule="evenodd" stroke-width="1pt" fill="#fff"/>
<path id="path2174" d="m301.61 407.89c0.794 1.497 1.706 3.776 3.359 3.359 0.026-1.146-1.784-1.94-3.359-3.359z" fill-rule="evenodd" stroke-width="1pt" fill="#fff"/>
<path id="path2175" d="m304.08 408.4c3.2104 1.316 5.9828 0.991 6.3282 3.009-3.0118 0.325-4.1132-0.912-6.3282-3.009z" fill-rule="evenodd" stroke-width="1pt" fill="#fff"/>
<path id="path2176" d="m319.82 408.09c-0.80485 1.4112-1.7293 3.5597-3.4049 3.1666-0.0264-1.0803 1.8084-1.8288 3.4049-3.1666z" fill-rule="evenodd" stroke-width="1pt" fill="#fff"/>
<path id="path2177" d="m317.57 408.52c-3.2572 1.2488-6.0699 0.9404-6.4204 2.8554 3.0556 0.30841 4.1731-0.86543 6.4204-2.8554z" fill-rule="evenodd" stroke-width="1pt" fill="#fff"/>
<path id="path2178" d="m327.18 376.52 6.993 0.001c0.026 2.643 1.575 5.482 3.75 7.109h-13.4c2.097-1.901 2.67-4.154 2.657-7.11z" fill-opacity=".53425" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path2179" d="m327.18 376.52 6.993 0.001c0.026 2.643 1.575 5.482 3.75 7.109h-13.4c2.097-1.901 2.67-4.154 2.657-7.11z" fill-rule="evenodd" stroke-width="1pt" fill="#fff"/>
<path id="path2183" d="m277.29 419.26c-0.385 0.294-0.359 1.176 0.39 1.484 6.985 2.506 13.728 7.137 33.128 6.954 19.586-0.185 26.469-4.704 32.737-6.797 0.835-0.318 1.621-0.965 0.547-1.875-3.522-2.879-7.329-5.193-9.845-8.751-0.446-0.64-1.665-0.277-2.422 0-7.476 2.626-14.383 4.466-21.564 4.453-7.012-0.013-14.321-1.944-20.9-4.648-0.63-0.269-1.662 0.034-2.149 0.507-3.053 3.041-6.373 5.992-9.922 8.673z" stroke="#000" stroke-width=".25" fill="none"/>
<path id="path2184" d="m286.7 414.45c-0.841-0.542-1.22 0.163-0.625 0.899 0.772 0.847 2.021 1.357 3.32 1.719 0.758 0.211 2.323-0.055 3.126 0.039 0.625 0.078 0.978 1.339 2.11 1.289 1.142-0.049 1.875-3.086 1.914-4.61 0.052-1.01-1.344-0.365-1.211 0.04 0.366 1.004-0.304 3.244-1.016 3.242-0.524-0.032-1.086-1.118-1.875-1.25-0.617-0.102-1.553 0.072-2.188 0.078-1.857 0.018-2.657-0.908-3.555-1.446z" fill-rule="evenodd" stroke-width="1pt"/>
<path id="path2185" d="m288.27 413.63c0.991 0.495 1.857-0.391 2.423 0.235 1.446 1.641 3.306-0.786 1.133-0.703-0.879 0.034-1.016-0.665-2.54-0.509-0.811 0.104-1.49 0.701-1.016 0.977z" fill-rule="evenodd" stroke-width="1pt"/>
<path id="path2186" d="m288.5 420.82c-0.783-0.342-1.046 0.402-0.586 0.86 0.646 0.59 3.329 0.825 3.985 0.352 1.085-0.823 0.292-2.985-0.195-3.595-0.304-0.371-1.22-0.399-0.86 0.587 0.149 0.457 0.815 1.594 0.273 2.109-0.496 0.474-1.868-0.001-2.617-0.313z" fill-rule="evenodd" stroke-width="1pt"/>
<path id="path2187" d="m294.52 421.48c0.172-0.441-0.292-1.201-1.095-0.313-0.663 0.7-0.125 3.651 1.993 4.18 2.07 0.508 3.621-0.236 3.906-1.367 0.197-0.753-0.937-1.407-0.351-2.071 0.489-0.519 1.433 0.006 1.836-0.82 0.236-0.463 0.255-1.412-1.016-2.032-0.551-0.277-1.505 0.355-1.485 0.821 0.03 0.641 1.023 0.223 0.664 0.781-0.262 0.425-1.435 0.248-1.796 1.25-0.216 0.637 1.328 1.813 0.508 2.11-0.732 0.253-1.686 0.417-2.657-0.117-0.6-0.318-0.855-1.634-0.507-2.422z" fill-rule="evenodd" stroke-width="1pt"/>
<path id="path2188" d="m287.06 417.42c-0.492 0.072-1.171 0.43-1.21 1.016-0.03 0.47 0.357 1.284 1.016 0.741 0.68-0.528 0.158-0.778 0.312-0.586 0.339 0.339-0.158 0.367-0.781 1.212-0.434 0.641-1.361 0.538-1.836 0.312-0.82-0.423-0.513-0.694-1.407-1.094-0.893-0.439-1.434 0.591-0.586 1.055 0.937 0.537 2.472 1.61 3.985 0.821 0.899-0.508 1.953-0.971 1.914-2.11-0.051-0.74-0.38-1.511-1.407-1.367z" fill-rule="evenodd" stroke-width="1pt"/>
<path id="path2192" d="m335.65 417.03c-0.691-0.494-0.268-1.39 0.743-1.055 0.86 0.318 2.288 1.331 2.382 2.657 0.107 1.45-2.23 2.511-3.124 2.462-1.531-0.124-1.258-1.338-0.118-1.251 0.884 0.064 1.97-0.251 2.032-1.172 0.052-0.799-1.417-1.264-1.915-1.641z" fill-rule="evenodd" stroke-width="1pt"/>
<path id="path2193" d="m330.61 413.48c-0.893-0.901 0.976-1.875 1.523-0.781 0.721 1.391 1.579 2.76 2.227 4.297 0.516 1.261-0.161 1.432-0.586 0.742-0.711-1.2-1.788-2.806-3.164-4.258z" fill-rule="evenodd" stroke-width="1pt"/>
<path id="path2194" d="m326.24 416.17c0.961-0.418 0.937 0.781 0.586 1.016-0.635 0.353-1.485-0.586-0.586-1.016z" fill-rule="evenodd" stroke-width="1pt"/>
<path id="path2195" d="m329.09 415.12c0.961-0.418 0.937 0.781 0.586 1.016-0.635 0.353-1.485-0.586-0.586-1.016z" fill-rule="evenodd" stroke-width="1pt"/>
<path id="path2196" d="m299.28 416.8c-1.442-0.921 0.293-2.295 1.289-1.25 1.427 1.457 2.791 4.65 3.868 5.86 1.024 1.189 0.199-3.224 0.508-4.532 0.211-0.727 0.779-0.625 0.781 0.078 0.005 1.798-0.272 5.456 0.195 5.743 0.874 0.497 0.716 1.308 1.445 1.172 0.782-0.186 0.665-0.391 1.368-0.43 0.697 0 0.721 0.699 1.524 0.586 0.512-0.067 0.666-0.647 1.288-0.665 0.567-0.048 0.323 1.204-0.038 1.407-0.589 0.331-2.423-0.36-2.969-0.312-0.65 0.017-1.82 0.62-2.54 0.351-0.879-0.314-0.684-1.428-1.289-1.25-0.685 0.158-0.556 1.405-2.187 1.797-0.764 0.174-1.021-0.512-0.625-0.977 0.709-0.758 2.137-1.363 1.914-2.07-0.661-1.97-2.658-4.343-4.532-5.508z" fill-rule="evenodd" stroke-width="1pt"/>
<path id="path2197" d="m311.82 417.07c0.693 2.28 0.659 5.312 1.055 7.384 0.195 0.815 0.975 0.089 0.899-0.547-0.307-2.225-0.442-4.956-1.016-7.071-0.238-0.732-1.203-0.59-0.938 0.234z" fill-rule="evenodd" stroke-width="1pt"/>
<path id="path2198" d="m313.74 417.66c-0.183-0.951 0.727-1.04 0.86-0.47 0.469 1.835 0.409 6.034 1.328 6.173 1.586 0.181 3.81-0.147 5.782-0.547 0.97-0.193 1.169-0.895 1.133-1.173-0.186-1.128 0.867-1.039 1.133 0.157 0.143 0.624-0.14 1.743-1.328 1.992-2.321 0.448-5.516 1.139-7.345 0.742-1.602-0.339-1.08-4.475-1.563-6.874z" fill-rule="evenodd" stroke-width="1pt"/>
<path id="path2199" d="m316.32 419.3c0.04-1.203 0.943-1.38 0.937-0.352 0.025 2.461 2.906 1.822 3.517 0.899 0.451-0.72 0.121-1.03-0.313-1.836-0.54-1.043 0.603-1.337 1.094-0.43 0.367 0.649 0.622 2.718-0.039 3.243-0.915 0.725-3.388 1.081-4.454 0.273-0.566-0.39-0.786-1.138-0.742-1.797z" fill-rule="evenodd" stroke-width="1pt"/>
<path id="path2200" d="m315.07 416.09c0.128 0.771 2.226 0.508 2.148-0.078-0.072-0.504-2.265-0.391-2.148 0.078z" fill-rule="evenodd" stroke-width="1pt"/>
<path id="path2201" d="m317.8 416.72c0.082 0.777 1.44 0.548 1.367-0.039-0.072-0.621-1.445-0.743-1.367 0.039z" fill-rule="evenodd" stroke-width="1pt"/>
<path id="path2202" d="m321.9 415.78c-0.689-0.952 0.652-1.012 1.094-0.312 1.144 1.71 1.898 4.467 3.008 6.328 0.472 0.858 1.063 0.091 1.133-0.117 0.074-0.221-0.359-0.56-0.39-1.328-0.055-0.597 1.166-1.339 2.031-0.781 0.809 0.545 0.147 1.028 0.547 1.328 0.381 0.286 1.343 0.106 1.485-0.078 0.427-0.671-0.155-0.278-0.743-0.665-0.68-0.487-0.272-2.597 1.133-1.719 0.836 0.484 1.082 2.031 0.781 2.891-0.266 0.797-1.665 1.068-2.422 0.899-0.853-0.26-1.542-1.286-1.367-1.016 0.422 0.693-0.104 1.377-0.508 1.641-0.997 0.626-1.694 0.954-2.422-0.078-1.29-1.932-2-5.191-3.36-6.993z" fill-rule="evenodd" stroke-width="1pt"/>
<path id="path2789" d="m285.49 283.37c-0.057-1.1542 1.732-1.2423 1.527 0.3449-0.262 1.9774 3.732 6.9829 4.063 10.07 0.222 2.0698-1.216 3.8816-2.64 5.0092-1.746 1.3525-4.431 1.1665-5.687 0.3906-0.76-0.6117-1.453-2.7066-0.884-3.5358 0.201-0.2791 1.111 3.0746 3.115 3.0615 2.727-0.0176 4.936-2.0661 5.017-3.8931 0.14-3.1821-4.461-8.2114-4.511-11.447z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path2791" d="m293.48 291.23c0.451-0.3223 1.171 1.0848 0.663 1.4364-0.423 0.2817-1.249-1.0458-0.663-1.4364z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path2792" d="m294.68 288.38c-0.228 0.1106-0.681-0.0465-0.546-0.24 0.638-0.9115 1.998-2.2835 2.984-2.7624 0.303-0.1472 0.833 0.3876 0.65 0.6496-0.59 0.843-2.026 1.8373-3.088 2.3528z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path2793" d="m305.23 280.01c0.253-0.5281 1.772-1.1251 2.159-1.4822 0.358-0.3665 0.529 0.3101 0.376 0.6295-0.253 0.5278-1.564 1.4192-2.139 1.4431-0.309 0.0129-0.549-0.2714-0.396-0.5904z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path2794" d="m308.83 280.18c0.329-0.927 1.39-2.3322 2.12-2.7948 0.375-0.2372 1.048-0.0506 0.922 0.3047-0.279 0.7865-1.577 2.1607-2.45 2.8081-0.265 0.2358-0.668-0.1032-0.592-0.318z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path2795" d="m305.74 282.5c-0.22 0.1101-0.101 0.5787 0.111 0.6495 0.451 0.1502 1.272 0.1795 1.644-0.0257 0.54-0.3328 0.294-2.3808-0.429-1.2868-0.485 0.6749-0.839 0.4581-1.326 0.663z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path2797" d="m299.64 287.2c-1.103-0.859 0.297-2.0625 1.45-1.2222 2.246 1.6943-3.351 8.1851-6.396 11.219-0.557 0.5942-1.046-0.9024-0.332-1.5469 2.183-1.8517 4.227-4.0641 5.648-6.3496 0.274-0.44 0.536-1.3885-0.37-2.1004z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path2798" d="m312.42 281.62c0.137-0.8221-1.33 0.0172-1.357-1.0726-0.014-0.5768 1.603-0.9815 2.279-0.318 1.142 1.1585 0.288 3.1126-1.611 3.2356-1.583 0.0699-4.224 2.2476-3.822 2.7054 0.457 0.5653 4.562 0.9386 6.949 0.5648 1.478-0.2074 1.168 1.1145-0.346 1.2935-1.463 0.1686-2.655 0.0123-4.022 0.442-1.609 0.4597-2.311 2.6194-3.205 3.4254-0.199 0.1401-0.736-0.7081-0.532-1.0269 0.644-1.0072 1.671-2.5488 2.801-2.9901 0.713-0.2888-1.966-0.3799-2.821-0.6239-0.678-0.2044-0.481-1.066-0.221-1.5469 0.345-0.7493 2.87-3.278 3.888-3.2367 0.956 0.0404 1.925-0.2379 2.02-0.8516z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path2799" d="m316.68 281.84c0.475-0.419 0.718-1.1201 1.216-1.5469 0.273-0.2734 0.709 0.0542 0.636 0.7143-0.061 0.5197-0.759 0.9676-1.228 1.3583-0.382 0.2861-0.826-0.3318-0.624-0.5257z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path2800" d="m322.09 279.91c0.707-0.0781 0.883 1.2868 0.11 1.5078-0.469 0.1563-0.879-1.4273-0.11-1.5078z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path2801" d="m320.31 284.13c-0.011 1.175 0.569 1.0669 1.676 1.0268 1.074-0.0404 2.019 0.0277 2.015-1.0335-0.005-1.1-0.609-2.0623-0.786-1.3137-0.156 0.7032-0.28 1.8545-0.689 1.3528-0.386-0.4311-0.233-0.5256-0.897 0.1819-0.368 0.3899-0.41-0.189-0.631-0.5525-0.154-0.2153-0.687 0.1739-0.688 0.3382z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path2802" d="m312.59 290.13c-0.264 1.555-0.022 3.7323 0.774 3.7569 0.984 0.032 3.02-3.3998 3.984-5.1799 0.578-0.9934 1.571-1.1671 1.157-0.1306-0.627 1.5992-0.571 5.0205-0.02 6.0259 0.296 0.5415 2.481-0.4966 2.834-1.2679 0.642-1.4018 0.12-3.9859 0.345-5.5639 0.109-1.036 1.057-1.2525 1.007-0.2923-0.094 1.718-0.257 4.8677-0.136 6.2982 0.072 0.8223 2.423 2.0358 2.801-0.4543 0.199-1.5674 1.006-3.113-0.039-4.8495-0.648-1.0857 0.951-0.9497 1.813 0.5335 0.603 1.0094-0.508 2.6799-0.469 3.9711 0.1 1.9865-1.445 3.1151-2.566 3.1386-1.002 0.0202-1.655-1.2106-2.476-1.2278-0.911-0.0581-1.847 1.4172-2.6 1.365-2.918-0.1994-1.373-4.4646-2.262-4.5169-0.989-0.0582-2.155 4.1804-3.373 4.0292-1.201-0.1442-2.444-3.4545-1.944-4.8551 0.452-1.3031 1.304-1.6085 1.17-0.7802z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path2803" d="m326.72 283.4c-1.424-0.8686 0.09-3.1274 0.786-2.3338 1.344 1.6096 2.699 5.4302 3.646 5.7458 0.6 0.2001 0.572-2.824 0.995-4.1988 0.273-1.0156 1.501-0.6841 1.266 0.6172-0.08 0.4345-1.604 5.3752-1.487 5.5705 1.056 2.1111 2.101 4.2534 2.762 6.5192 0.273 0.9766-0.9 0.3189-1.04 0.1161-0.749-1.1196-2.06-5.4009-2.06-5.2056-0.603 3.0118-0.745 3.9007-1.385 6.4601-0.195 0.8203-1.402 0.6709-1.13-0.7734 0.262-1.1872 1.988-7.0253 1.891-7.1945-1.357-2.3954-2.598-4.2902-4.244-5.3228z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path2804" d="m329.29 297.29c-0.397-0.045-1.013 0.8831 0.964 1.2478 2.642 0.4782 5.534-0.4116 6.42-3.0023 1.015-3.0859 1.686-6.0073 2.216-7.1097 0.662-1.2847 1.509-1.1809 0.884-3.0559-0.441-1.3496-1.264-0.9424-1.437-0.221-0.462 1.967-2.215 8.3307-2.762 9.5026-1.032 2.1385-3.112 2.9845-6.285 2.6385z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path2805" d="m334.58 287.14c-0.283-0.6072-0.943-0.1372-0.825 0.5268 0.07 0.6002 0.557 0.9265 1.046 0.9096 0.579-0.02 1.804 0.0194 1.807-0.942 0.002-0.6754-0.529-1.2397-0.923-0.4944-0.377 0.6748-0.862 0.6041-1.105 0z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path2806" d="m335.24 284.6c-0.203 0.1409-0.021 0.892 0.221 0.8839 0.863-0.0288 2.086-0.3041 2.741-0.76 0.192-0.1334 0.112-0.5873-0.161-0.5782-0.832 0.0277-2.156 0.006-2.801 0.4543z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path2807" d="m342.57 286.49c0.625-0.9766 2.349-1.0761 1.729 0.3181-0.439 0.9606-4.731 9.2537-5.317 10.308-0.639 1.1859-1.162 0.5987-0.708-0.3248 0.611-1.1884 4.1-10.013 4.296-10.302z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path2808" d="m336.11 298.84c-0.183-0.66-1.207-1.6359-1.092 0.1295 0.204 3.2048 4.607 2.1918 5.94 1.0528 1.21-1.0724 0.16 3.618 1.768 4.12 0.886 0.284 2.554-0.925 3.374-1.989 2.274-2.9506 3.721-7.1804 5.908-10.094 0.826-1.1391-0.452-1.9522-0.969-1.0458-1.902 3.1891-4.264 9.6975-6.844 11.388-2.103 1.346-1.48-1.733-1.553-2.658-0.092-0.6786-0.919-1.677-2.022-0.7604-0.771 0.6024-1.969 1.0924-3.054 0.9944-0.629-0.035-1.16-0.024-1.456-1.1373z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path2809" d="m343.97 292.89c0.023-0.1809-0.931-0.263-0.884 0.663 0.033 0.6855 0.853 0.8716 0.994 0.7735 1.29-0.9382-0.274-0.4703-0.11-1.4365z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path2810" d="m342.09 296.64c-0.254 0.0594-0.487 0.8703 0.111 0.9163 0.547 0.039 2.69-0.191 3.282-0.1563 0.383-0.0144 0.529-0.7466-0.292-0.7076-0.996 0.0499-2.305-0.1997-3.101-0.0524z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path2813" d="m356.28 295.69c0.879-3.2938 3.008 0.5081 1.133 2.3831-2.895 2.8355-3.767 8.2485-8.36 9.0635-1.238 0.266-3.417-0.557-4.063-1.016-0.252-0.179 0.163-1.355 0.937-0.781 1.119 0.874 3.43 1.071 4.65 0.078 2.61-2.562 4.735-5.9547 5.703-9.7276z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path2815" d="m308.56 303.01c-0.207 0.238-0.84 0.199-0.897 0.533-0.249 1.239 0 1.867-0.273 3.06-0.261 1.142-1.054 1.185-1 0.254 0.072-1.207 1.067-2.911 0.364-3.028-0.468-0.11-0.829-0.736-0.345-1.045 0.914-0.634 1.405-0.537 2.033-0.346 0.219 0.067 0.275 0.389 0.118 0.572z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path2816" d="m307.92 301.39c-1.212 1.06-2.336 1.493-3.451 2.833-0.456 0.549-0.443 1.314-0.715 2.014-0.273 0.743-1.151 0.889-1.423 0.734-0.455-0.299-0.389-1.677-0.897-0.935-0.431 0.683-0.709 1.624-1.346 1.612-0.576-0.012-1.663-1.19-1.112-1.247 1.885-0.193 1.862-1.702 2.568-1.801 0.792-0.106 0.844 1.246 1.333 0.975 0.384-0.197 0.565-1.772 0.982-2.197 1.278-1.306 2.289-1.996 3.593-2.956 0.66-0.526 1.131 0.423 0.468 0.968z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path2817" d="m312.34 305.45c-0.97 0.196-0.805 1.443-0.52 1.598 0.47 0.219 1.197 0.311 1.469-1.123 0.127-0.589 0.242 2.928 1.533 1.573 0.743-0.821 2.584 0.149 3.355-0.884 0.552-0.688 0.722-1.168 0.292-2.184-0.125-0.309-0.881-0.157-0.838 0.593 0.038 0.632-0.448 1.412-1.08 1.279-0.307-0.056 0.173-1.546-0.135-1.95-0.17-0.222-0.428-0.198-0.597 0.032-0.237 0.322 0.238 1.75-0.541 1.938-0.983 0.227-0.468-0.955-0.884-1.171-1.338-0.675-1.467 0.175-2.054 0.299z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path2818" d="m319.91 303.05c0.711-0.2 0.489-0.201 1.608-1.117 0.436-0.33 0.522 0.636 0.476 1.018-0.081 0.649-0.852 0.191-1.091 0.762-0.35 0.742-0.208 2.468-0.325 3.171-0.08 0.361-0.659 0.33-0.714 0.045-0.166-0.857 0.117-1.696 0.09-2.768-0.009-0.364-0.53-0.935-0.044-1.111z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path2819" d="m316.57 299.19c-0.172 0.7756-0.159 1.4146-0.159 1.9466 0.039 0.43 0.825 0.153 0.822 0.098-0.039-0.681 0.116-1.623-0.085-1.8856-0.109-0.1417-0.538-0.3054-0.578-0.159z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path3162" d="m285.49 283.37c-0.057-1.1542 1.732-1.2423 1.527 0.3449-0.262 1.9774 3.732 6.9829 4.063 10.07 0.222 2.0698-1.216 3.8816-2.64 5.0092-1.746 1.3525-4.431 1.1665-5.687 0.3906-0.76-0.6117-1.453-2.7066-0.884-3.5358 0.201-0.2791 1.111 3.0746 3.115 3.0615 2.727-0.0176 4.936-2.0661 5.017-3.8931 0.14-3.1821-4.461-8.2114-4.511-11.447z" fill-rule="evenodd" fill="#fff"/>
<path id="path3143" d="m290.24 282.7c0.34 0.0162 1.272 1.2239 1.211 1.6016-0.042 0.1781-0.997-0.0265-1.289-0.2734-0.216-0.1828-0.129-1.338 0.078-1.3282zm-4.494 8.7491c-0.852 0.4647 0.135 1.382 0.773 0.9944 2.395-1.5507 5.989-3.1796 6.74-6.2514 0.241-1.0404 1.208-2.6352 2.126-2.9911 0.887-0.3439 2.175 1.6048 3.016 0.0714 0.493-0.8765 2.221 0.5752 2.638-0.3627 0.508-1.1328 0.266-1.7565 0.287-2.8416-0.037-0.7108-0.58-0.9231-0.974 0.2277-0.205 0.5211 0.036 1.0472-0.131 1.3192-0.127 0.2068-0.523 0.4069-0.753 0.2344-0.212-0.159-0.065-0.603-0.573-0.7992-0.197-0.0987-0.513-0.1808-0.65 0.0714-0.603 1.0754-0.937 2.0781-1.781 0.9354-0.752-0.9844-1.133-2.686-1.684-0.3572-0.198 0.8219-1.447 2.0146-2.184 2.0146-0.92 0-0.689-2.4224-2.71-2.0537-1.039 0.2216-0.967 2.2096-0.812 2.9444 0.255 1.0212 3.291 0.2877 3.14 0.9553-0.519 2.3197-3.739 4.5247-6.468 5.8887z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<g id="g3144" stroke-linejoin="round" fill-rule="evenodd" transform="translate(0,199.5)" stroke="#000" stroke-width=".5" fill="#fff">
<path id="path2781" d="m266.74 103c-0.129 0.388 0.387 1.442 0.922 1.52 0.525 0.039 0.793-1.138 0.624-1.52-0.125-0.281-1.454-0.275-1.546 0z"/>
<path id="path2782" d="m269.52 107.09c-0.337-0.363-1.33 0.611-0.527 1.3 0.451 0.365 2.103 0.895 2.555 0.124 0.612-0.992-0.603-4.594-0.065-5.07 0.42-0.372 2.367 2.406 3.328 2.606 2.258 0.313 1.716-3.866 4.149-3.582 1.658 0.221 1.84-1.851 1.609-3.1447-0.185-1.2414-2.195-3.0334-3.119-3.835-1.216-1.0123-1.758 0.7463-0.995 1.326 0.982 0.7864 2.709 2.3749 2.984 3.4257 0.13 0.496-1.2 1.482-1.69 1.215-1.131-0.617-2.183-3.2629-3.172-3.8673-0.337-0.2058-1.166 0.2593-0.767 1.0849 0.449 0.8845 2.432 2.2544 2.548 3.1984 0.105 0.861-0.884 2.723-1.533 2.723-0.714 0-2.534-2.25-3.102-3.309-0.284-0.507-1.268-0.458-1.371 0.242-0.163 1.051 0.152 3.275 0.403 4.653 0.199 1.305-0.735 1.371-1.235 0.91z"/>
<path id="path2783" d="m266.11 99.915c-0.284 0.3211 0.663 0.9491 0.851 0.7861 0.365-0.316 1.782-1.9314 1.509-2.496-0.243-0.5035-2.192-1.6061-2.509-1.0602-0.588 0.9448 1.837 1.3681 1.457 1.6451-0.187 0.1073-0.854 0.568-1.308 1.125z"/>
<path id="path2784" d="m269.61 92.835s0.609 2.0836 1.105 1.2155c0.401-0.6016-1.105-1.2155-1.105-1.2155z"/>
<path id="path2785" d="m270.6 96.15c-0.223 0.1219-0.851 0.6194-0.442 0.884 0.647 0.3827 2.407 0.6857 2.027-0.5659-0.231-0.7372 2.654 0.0205 1.951-1.9755-0.184-0.5524-1.054-1.3496-1.482-1.4622-0.272-0.0716-1.196 0.4352-0.618 0.7144 0.422 0.2185 1.695 0.9665 1.222 1.4564-0.537 0.5125-0.911-0.23-1.579-0.1104-0.336 0.0639-0.117 1.0201-0.306 1.2802-0.106 0.1451-0.591-0.3201-0.773-0.221z"/>
<path id="path2786" d="m275.18 88.227c-0.364 0.1819-1.016 1.1688-1.04 1.6251-0.013 0.2435 0.254 0.5782 0.462 0.4743 0.382-0.1908 0.972-1.1249 0.994-1.5536 0.014-0.2711-0.19-0.6586-0.416-0.5458z"/>
<path id="path2787" d="m277.56 87.974c-0.703-0.8594 0.746-2.1353 1.398-0.4152 0.394 1.0791 4.594 6.6063 5.453 8.4813 0.608 1.269-0.022 1.7933-0.774 0.884-2.127-2.7138-3.872-6.0965-6.077-8.9501z"/>
<path id="path2788" d="m281.87 88.084c0.749-0.8114 2.278-2.4687 1.866-3.3929-0.316-0.7949-1.245-0.7159-1.404-0.5325-0.909 1.085 0.646 0.8127 0.422 1.1832-0.463 0.8692-0.924 1.3477-1.163 2.1831-0.056 0.1959 0.144 0.7053 0.279 0.5591z"/>
</g>
<g id="g3153" fill-rule="evenodd" fill="#fff" transform="translate(0,199.5)">
<path id="path3154" d="m266.74 103c-0.129 0.388 0.387 1.442 0.922 1.52 0.525 0.039 0.793-1.138 0.624-1.52-0.125-0.281-1.454-0.275-1.546 0z"/>
<path id="path3155" d="m269.52 107.09c-0.337-0.363-1.33 0.611-0.527 1.3 0.451 0.365 2.103 0.895 2.555 0.124 0.612-0.992-0.603-4.594-0.065-5.07 0.42-0.372 2.367 2.406 3.328 2.606 2.258 0.313 1.716-3.866 4.149-3.582 1.658 0.221 1.84-1.851 1.609-3.1447-0.185-1.2414-2.195-3.0334-3.119-3.835-1.216-1.0123-1.758 0.7463-0.995 1.326 0.982 0.7864 2.709 2.3749 2.984 3.4257 0.13 0.496-1.2 1.482-1.69 1.215-1.131-0.617-2.183-3.2629-3.172-3.8673-0.337-0.2058-1.166 0.2593-0.767 1.0849 0.449 0.8845 2.432 2.2544 2.548 3.1984 0.105 0.861-0.884 2.723-1.533 2.723-0.714 0-2.534-2.25-3.102-3.309-0.284-0.507-1.268-0.458-1.371 0.242-0.163 1.051 0.152 3.275 0.403 4.653 0.199 1.305-0.735 1.371-1.235 0.91z"/>
<path id="path3156" d="m266.11 99.915c-0.284 0.3211 0.663 0.9491 0.851 0.7861 0.365-0.316 1.782-1.9314 1.509-2.496-0.243-0.5035-2.192-1.6061-2.509-1.0602-0.588 0.9448 1.837 1.3681 1.457 1.6451-0.187 0.1073-0.854 0.568-1.308 1.125z"/>
<path id="path3157" d="m269.61 92.835s0.609 2.0836 1.105 1.2155c0.401-0.6016-1.105-1.2155-1.105-1.2155z"/>
<path id="path3158" d="m270.6 96.15c-0.223 0.1219-0.851 0.6194-0.442 0.884 0.647 0.3827 2.407 0.6857 2.027-0.5659-0.231-0.7372 2.654 0.0205 1.951-1.9755-0.184-0.5524-1.054-1.3496-1.482-1.4622-0.272-0.0716-1.196 0.4352-0.618 0.7144 0.422 0.2185 1.695 0.9665 1.222 1.4564-0.537 0.5125-0.911-0.23-1.579-0.1104-0.336 0.0639-0.117 1.0201-0.306 1.2802-0.106 0.1451-0.591-0.3201-0.773-0.221z"/>
<path id="path3159" d="m275.18 88.227c-0.364 0.1819-1.016 1.1688-1.04 1.6251-0.013 0.2435 0.254 0.5782 0.462 0.4743 0.382-0.1908 0.972-1.1249 0.994-1.5536 0.014-0.2711-0.19-0.6586-0.416-0.5458z"/>
<path id="path3160" d="m277.56 87.974c-0.703-0.8594 0.746-2.1353 1.398-0.4152 0.394 1.0791 4.594 6.6063 5.453 8.4813 0.608 1.269-0.022 1.7933-0.774 0.884-2.127-2.7138-3.872-6.0965-6.077-8.9501z"/>
<path id="path3161" d="m281.87 88.084c0.749-0.8114 2.278-2.4687 1.866-3.3929-0.316-0.7949-1.245-0.7159-1.404-0.5325-0.909 1.085 0.646 0.8127 0.422 1.1832-0.463 0.8692-0.924 1.3477-1.163 2.1831-0.056 0.1959 0.144 0.7053 0.279 0.5591z"/>
</g>
<path id="path3181" d="m336.11 298.84c-0.183-0.66-1.207-1.6359-1.092 0.1295 0.204 3.2048 4.607 2.1918 5.94 1.0528 1.21-1.0724 0.16 3.618 1.768 4.12 0.886 0.284 2.554-0.925 3.374-1.989 2.274-2.9506 3.721-7.1804 5.908-10.094 0.826-1.1391-0.452-1.9522-0.969-1.0458-1.902 3.1891-4.264 9.6975-6.844 11.388-2.103 1.346-1.48-1.733-1.553-2.658-0.092-0.6786-0.919-1.677-2.022-0.7604-0.771 0.6024-1.969 1.0924-3.054 0.9944-0.629-0.035-1.16-0.024-1.456-1.1373z" fill-rule="evenodd" fill="#fff"/>
<path id="path3163" d="m293.48 291.23c0.451-0.3223 1.171 1.0848 0.663 1.4364-0.423 0.2817-1.249-1.0458-0.663-1.4364z" fill-rule="evenodd" fill="#fff"/>
<path id="path2811" d="m346.98 290.3c-0.538-0.4358 0.529-2.5481 1.251-1.7189 1.982 2.2936 2.903 9.7404 3.476 15.314 0 0-0.891 0.743-0.898 0.625 0-2.969-1.193-12.052-3.829-14.22z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path3164" d="m294.68 288.38c-0.228 0.1106-0.681-0.0465-0.546-0.24 0.638-0.9115 1.998-2.2835 2.984-2.7624 0.303-0.1472 0.833 0.3876 0.65 0.6496-0.59 0.843-2.026 1.8373-3.088 2.3528z" fill-rule="evenodd" fill="#fff"/>
<path id="path3188" d="m346.98 290.3c-0.538-0.4358 0.529-2.5481 1.251-1.7189 1.982 2.2936 2.903 9.7404 3.476 15.314 0 0-0.891 0.743-0.898 0.625 0-2.969-1.193-12.052-3.829-14.22z" fill-rule="evenodd" fill="#fff"/>
<path id="path2812" d="m348.2 303.31c0.358-0.997 5.118-8.986 5.743-10.744 0.32-0.8476 1.686 1.4537 0.352 2.6955-1.172 1.0547-4.63 6.7253-5.275 8.7123-0.297 0.897-1.198 0.47-0.82-0.664z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path3171" d="m312.42 281.62c0.137-0.8221-1.33 0.0172-1.357-1.0726-0.014-0.5768 1.603-0.9815 2.279-0.318 1.142 1.1585 0.288 3.1126-1.611 3.2356-1.583 0.0699-4.224 2.2476-3.822 2.7054 0.457 0.5653 4.562 0.9386 6.949 0.5648 1.478-0.2074 1.168 1.1145-0.346 1.2935-1.463 0.1686-2.655 0.0123-4.022 0.442-1.609 0.4597-2.311 2.6194-3.205 3.4254-0.199 0.1401-0.736-0.7081-0.532-1.0269 0.644-1.0072 1.671-2.5488 2.801-2.9901 0.713-0.2888-1.966-0.3799-2.821-0.6239-0.678-0.2044-0.481-1.066-0.221-1.5469 0.345-0.7493 2.87-3.278 3.888-3.2367 0.956 0.0404 1.925-0.2379 2.02-0.8516z" fill-rule="evenodd" fill="#fff"/>
<path id="path3166" d="m299.64 287.2c-1.103-0.859 0.297-2.0625 1.45-1.2222 2.246 1.6943-3.351 8.1851-6.396 11.219-0.557 0.5942-1.046-0.9024-0.332-1.5469 2.183-1.8517 4.227-4.0641 5.648-6.3496 0.274-0.44 0.536-1.3885-0.37-2.1004z" fill-rule="evenodd" fill="#fff"/>
<path id="path2796" d="m302.54 283.05c-0.641-1.4736 0.962-2.019 1.202-0.9687 1.114 4.8406 3.781 8.5056 5.811 11.797 0.611 1.029 0.121 1.6422-1.365 0.6953-1.029-0.7055-2.074-3.2782-2.58-3.3796-0.916-0.1705-3.108 4.1793-7.592 2.9377-1.16-0.3241-1.083-3.7735-1.105-5.2971-0.049-0.7143 0.74-0.903 0.767 0.0714 0.041 1.4047-0.002 4.3227 1.795 4.4209 1.465 0.0819 4.71-1.9893 5.394-3.6084 0.609-1.6647-1.634-4.9734-2.327-6.6688z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path3167" d="m290.24 282.7c0.34 0.0162 1.272 1.2239 1.211 1.6016-0.042 0.1781-0.997-0.0265-1.289-0.2734-0.216-0.1828-0.129-1.338 0.078-1.3282zm-4.494 8.7491c-0.852 0.4647 0.135 1.382 0.773 0.9944 2.395-1.5507 5.989-3.1796 6.74-6.2514 0.241-1.0404 1.208-2.6352 2.126-2.9911 0.887-0.3439 2.175 1.6048 3.016 0.0714 0.493-0.8765 2.221 0.5752 2.638-0.3627 0.508-1.1328 0.266-1.7565 0.287-2.8416-0.037-0.7108-0.58-0.9231-0.974 0.2277-0.205 0.5211 0.036 1.0472-0.131 1.3192-0.127 0.2068-0.523 0.4069-0.753 0.2344-0.212-0.159-0.065-0.603-0.573-0.7992-0.197-0.0987-0.513-0.1808-0.65 0.0714-0.603 1.0754-0.937 2.0781-1.781 0.9354-0.752-0.9844-1.133-2.686-1.684-0.3572-0.198 0.8219-1.447 2.0146-2.184 2.0146-0.92 0-0.689-2.4224-2.71-2.0537-1.039 0.2216-0.967 2.2096-0.812 2.9444 0.255 1.0212 3.291 0.2877 3.14 0.9553-0.519 2.3197-3.739 4.5247-6.468 5.8887z" fill-rule="evenodd" stroke-width="1pt" fill="#fff"/>
<path id="path3165" d="m302.54 283.05c-0.641-1.4736 0.962-2.019 1.202-0.9687 1.114 4.8406 3.781 8.5056 5.811 11.797 0.611 1.029 0.121 1.6422-1.365 0.6953-1.029-0.7055-2.074-3.2782-2.58-3.3796-0.916-0.1705-3.108 4.1793-7.592 2.9377-1.16-0.3241-1.083-3.7735-1.105-5.2971-0.049-0.7143 0.74-0.903 0.767 0.0714 0.041 1.4047-0.002 4.3227 1.795 4.4209 1.465 0.0819 4.71-1.9893 5.394-3.6084 0.609-1.6647-1.634-4.9734-2.327-6.6688z" fill-rule="evenodd" fill="#fff"/>
<path id="path3168" d="m305.23 280.01c0.253-0.5281 1.772-1.1251 2.159-1.4822 0.358-0.3665 0.529 0.3101 0.376 0.6295-0.253 0.5278-1.564 1.4192-2.139 1.4431-0.309 0.0129-0.549-0.2714-0.396-0.5904z" fill-rule="evenodd" fill="#fff"/>
<path id="path3169" d="m308.83 280.18c0.329-0.927 1.39-2.3322 2.12-2.7948 0.375-0.2372 1.048-0.0506 0.922 0.3047-0.279 0.7865-1.577 2.1607-2.45 2.8081-0.265 0.2358-0.668-0.1032-0.592-0.318z" fill-rule="evenodd" fill="#fff"/>
<path id="path3170" d="m305.74 282.5c-0.22 0.1101-0.101 0.5787 0.111 0.6495 0.451 0.1502 1.272 0.1795 1.644-0.0257 0.54-0.3328 0.294-2.3808-0.429-1.2868-0.485 0.6749-0.839 0.4581-1.326 0.663z" fill-rule="evenodd" fill="#fff"/>
<path id="path3172" d="m316.68 281.84c0.475-0.419 0.718-1.1201 1.216-1.5469 0.273-0.2734 0.709 0.0542 0.636 0.7143-0.061 0.5197-0.759 0.9676-1.228 1.3583-0.382 0.2861-0.826-0.3318-0.624-0.5257z" fill-rule="evenodd" fill="#fff"/>
<path id="path3173" d="m322.09 279.91c0.707-0.0781 0.883 1.2868 0.11 1.5078-0.469 0.1563-0.879-1.4273-0.11-1.5078z" fill-rule="evenodd" fill="#fff"/>
<path id="path3174" d="m320.31 284.13c-0.011 1.175 0.569 1.0669 1.676 1.0268 1.074-0.0404 2.019 0.0277 2.015-1.0335-0.005-1.1-0.609-2.0623-0.786-1.3137-0.156 0.7032-0.28 1.8545-0.689 1.3528-0.386-0.4311-0.233-0.5256-0.897 0.1819-0.368 0.3899-0.41-0.189-0.631-0.5525-0.154-0.2153-0.687 0.1739-0.688 0.3382z" fill-rule="evenodd" fill="#fff"/>
<path id="path3175" d="m312.59 290.13c-0.264 1.555-0.022 3.7323 0.774 3.7569 0.984 0.032 3.02-3.3998 3.984-5.1799 0.578-0.9934 1.571-1.1671 1.157-0.1306-0.627 1.5992-0.571 5.0205-0.02 6.0259 0.296 0.5415 2.481-0.4966 2.834-1.2679 0.642-1.4018 0.12-3.9859 0.345-5.5639 0.109-1.036 1.057-1.2525 1.007-0.2923-0.094 1.718-0.257 4.8677-0.136 6.2982 0.072 0.8223 2.423 2.0358 2.801-0.4543 0.199-1.5674 1.006-3.113-0.039-4.8495-0.648-1.0857 0.951-0.9497 1.813 0.5335 0.603 1.0094-0.508 2.6799-0.469 3.9711 0.1 1.9865-1.445 3.1151-2.566 3.1386-1.002 0.0202-1.655-1.2106-2.476-1.2278-0.911-0.0581-1.847 1.4172-2.6 1.365-2.918-0.1994-1.373-4.4646-2.262-4.5169-0.989-0.0582-2.155 4.1804-3.373 4.0292-1.201-0.1442-2.444-3.4545-1.944-4.8551 0.452-1.3031 1.304-1.6085 1.17-0.7802z" fill-rule="evenodd" fill="#fff"/>
<path id="path3176" d="m326.72 283.4c-1.424-0.8686 0.09-3.1274 0.786-2.3338 1.344 1.6096 2.699 5.4302 3.646 5.7458 0.6 0.2001 0.572-2.824 0.995-4.1988 0.273-1.0156 1.501-0.6841 1.266 0.6172-0.08 0.4345-1.604 5.3752-1.487 5.5705 1.056 2.1111 2.101 4.2534 2.762 6.5192 0.273 0.9766-0.9 0.3189-1.04 0.1161-0.749-1.1196-2.06-5.4009-2.06-5.2056-0.603 3.0118-0.745 3.9007-1.385 6.4601-0.195 0.8203-1.402 0.6709-1.13-0.7734 0.262-1.1872 1.988-7.0253 1.891-7.1945-1.357-2.3954-2.598-4.2902-4.244-5.3228z" fill-rule="evenodd" fill="#fff"/>
<path id="path3177" d="m329.29 297.29c-0.397-0.045-1.013 0.8831 0.964 1.2478 2.642 0.4782 5.534-0.4116 6.42-3.0023 1.015-3.0859 1.686-6.0073 2.216-7.1097 0.662-1.2847 1.509-1.1809 0.884-3.0559-0.441-1.3496-1.264-0.9424-1.437-0.221-0.462 1.967-2.215 8.3307-2.762 9.5026-1.032 2.1385-3.112 2.9845-6.285 2.6385z" fill-rule="evenodd" fill="#fff"/>
<path id="path3178" d="m334.58 287.14c-0.283-0.6072-0.943-0.1372-0.825 0.5268 0.07 0.6002 0.557 0.9265 1.046 0.9096 0.579-0.02 1.804 0.0194 1.807-0.942 0.002-0.6754-0.529-1.2397-0.923-0.4944-0.377 0.6748-0.862 0.6041-1.105 0z" fill-rule="evenodd" fill="#fff"/>
<path id="path3179" d="m335.24 284.6c-0.203 0.1409-0.021 0.892 0.221 0.8839 0.863-0.0288 2.086-0.3041 2.741-0.76 0.192-0.1334 0.112-0.5873-0.161-0.5782-0.832 0.0277-2.156 0.006-2.801 0.4543z" fill-rule="evenodd" fill="#fff"/>
<path id="path3180" d="m342.57 286.49c0.625-0.9766 2.349-1.0761 1.729 0.3181-0.439 0.9606-4.731 9.2537-5.317 10.308-0.639 1.1859-1.162 0.5987-0.708-0.3248 0.611-1.1884 4.1-10.013 4.296-10.302z" fill-rule="evenodd" fill="#fff"/>
<path id="path3182" d="m343.97 292.89c0.023-0.1809-0.931-0.263-0.884 0.663 0.033 0.6855 0.853 0.8716 0.994 0.7735 1.29-0.9382-0.274-0.4703-0.11-1.4365z" fill-rule="evenodd" fill="#fff"/>
<path id="path3191" d="m348.2 303.31c0.358-0.997 5.118-8.986 5.743-10.744 0.32-0.8476 1.686 1.4537 0.352 2.6955-1.172 1.0547-4.63 6.7253-5.275 8.7123-0.297 0.897-1.198 0.47-0.82-0.664z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path3183" d="m342.09 296.64c-0.254 0.0594-0.487 0.8703 0.111 0.9163 0.547 0.039 2.69-0.191 3.282-0.1563 0.383-0.0144 0.529-0.7466-0.292-0.7076-0.996 0.0499-2.305-0.1997-3.101-0.0524z" fill-rule="evenodd" fill="#fff"/>
<path id="path3189" d="m348.2 303.31c0.358-0.997 5.118-8.986 5.743-10.744 0.32-0.8476 1.686 1.4537 0.352 2.6955-1.172 1.0547-4.63 6.7253-5.275 8.7123-0.297 0.897-1.198 0.47-0.82-0.664z" fill-rule="evenodd" fill="#fff"/>
<path id="path3192" d="m356.28 295.69c0.879-3.2938 3.008 0.5081 1.133 2.3831-2.895 2.8355-3.767 8.2485-8.36 9.0635-1.238 0.266-3.417-0.557-4.063-1.016-0.252-0.179 0.163-1.355 0.937-0.781 1.119 0.874 3.43 1.071 4.65 0.078 2.61-2.562 4.735-5.9547 5.703-9.7276z" fill-rule="evenodd" stroke="#000" stroke-width=".5" fill="#fff"/>
<path id="path3190" d="m356.28 295.69c0.879-3.2938 3.008 0.5081 1.133 2.3831-2.895 2.8355-3.767 8.2485-8.36 9.0635-1.238 0.266-3.417-0.557-4.063-1.016-0.252-0.179 0.163-1.355 0.937-0.781 1.119 0.874 3.43 1.071 4.65 0.078 2.61-2.562 4.735-5.9547 5.703-9.7276z" fill-rule="evenodd" fill="#fff"/>
<path id="path3194" d="m312.34 305.45c-0.97 0.196-0.805 1.443-0.52 1.598 0.47 0.219 1.197 0.311 1.469-1.123 0.127-0.589 0.242 2.928 1.533 1.573 0.743-0.821 2.584 0.149 3.355-0.884 0.552-0.688 0.722-1.168 0.292-2.184-0.125-0.309-0.881-0.157-0.838 0.593 0.038 0.632-0.448 1.412-1.08 1.279-0.307-0.056 0.173-1.546-0.135-1.95-0.17-0.222-0.428-0.198-0.597 0.032-0.237 0.322 0.238 1.75-0.541 1.938-0.983 0.227-0.468-0.955-0.884-1.171-1.338-0.675-1.467 0.175-2.054 0.299z" fill-rule="evenodd" fill="#fff"/>
<path id="path3195" d="m319.91 303.05c0.711-0.2 0.489-0.201 1.608-1.117 0.436-0.33 0.522 0.636 0.476 1.018-0.081 0.649-0.852 0.191-1.091 0.762-0.35 0.742-0.208 2.468-0.325 3.171-0.08 0.361-0.659 0.33-0.714 0.045-0.166-0.857 0.117-1.696 0.09-2.768-0.009-0.364-0.53-0.935-0.044-1.111z" fill-rule="evenodd" fill="#fff"/>
<path id="path3196" d="m316.57 299.19c-0.172 0.7756-0.159 1.4146-0.159 1.9466 0.039 0.43 0.825 0.153 0.822 0.098-0.039-0.681 0.116-1.623-0.085-1.8856-0.109-0.1417-0.538-0.3054-0.578-0.159z" fill-rule="evenodd" fill="#fff"/>
<path id="path3197" d="m307.92 301.39c-1.212 1.06-2.336 1.493-3.451 2.833-0.456 0.549-0.443 1.314-0.715 2.014-0.273 0.743-1.151 0.889-1.423 0.734-0.455-0.299-0.389-1.677-0.897-0.935-0.431 0.683-0.709 1.624-1.346 1.612-0.576-0.012-1.663-1.19-1.112-1.247 1.885-0.193 1.862-1.702 2.568-1.801 0.792-0.106 0.844 1.246 1.333 0.975 0.384-0.197 0.565-1.772 0.982-2.197 1.278-1.306 2.289-1.996 3.593-2.956 0.66-0.526 1.131 0.423 0.468 0.968z" fill-rule="evenodd" fill="#fff"/>
<path id="path3193" d="m308.56 303.01c-0.207 0.238-0.84 0.199-0.897 0.533-0.249 1.239 0 1.867-0.273 3.06-0.261 1.142-1.054 1.185-1 0.254 0.072-1.207 1.067-2.911 0.364-3.028-0.468-0.11-0.829-0.736-0.345-1.045 0.914-0.634 1.405-0.537 2.033-0.346 0.219 0.067 0.275 0.389 0.118 0.572z" fill-rule="evenodd" fill="#fff"/>
<g id="g3205" fill-rule="evenodd" transform="translate(0,199.5)" stroke="#000" stroke-width=".5" fill="#fff">
<path id="path3198" d="m302.18 200.08c0.419 0.931 1.031 0.89 0.939-0.001-0.178-1.141-0.523-2.718-0.718-4.088-0.111-1.16-1.31-0.936-0.994 0.276 0.4 1.308 0.316 2.743 0.773 3.813z"/>
<path id="path3201" d="m305.77 200.14c-0.005 0.472 0.726 0.429 0.719 0.056-0.076-1.187-0.166-2.791 0.165-3.37 0.258-0.452 1.299-0.133 2.265-0.221 0.385-0.057 0.305-1.116-0.497-1.049-0.946 0.085-3.44-0.222-3.591 0.662-0.217 1.59 0.983-0.095 0.939 3.922z"/>
<path id="path3203" d="m313.01 195.55c0.605 0.436 0.521 1.003-0.221 0.828-0.884-0.221-1.48-0.15-1.468 0.335 0.013 0.477 0.386 0.57 0.929 1.099 0.52 0.545-0.319 0.456-0.962 1.572-0.548 0.924 0.57 1.046 1.888 0.696 0.336-0.096 0.777 0.482-0.055 0.957-0.586 0.313-2.219 0.696-2.625-0.489-0.771-2.05 1.291-2.334 0.422-2.88-0.474-0.286-0.645-0.717-0.559-1.289 0.184-1.32 2.15-1.145 2.651-0.829z"/>
<path id="path3204" d="m315.73 200.07c0.795-1.451 1.343-2.538 1.565-3.77 0.193-1.112 0.992-1.219 1.16-0.276 0.216 1.252 0.933 2.493 1.803 3.63 0.51 0.705-0.516 1.326-0.919 0.777-0.739-0.938-0.77-2.245-1.206-2.236-0.503 0.01-1.074 1.457-1.611 2.525-0.156 0.31-1.109-0.001-0.792-0.65z"/>
</g>
<g id="g3210" fill-rule="evenodd" fill="#fff" transform="translate(0,199.5)">
<path id="path3211" d="m302.18 200.08c0.419 0.931 1.031 0.89 0.939-0.001-0.178-1.141-0.523-2.718-0.718-4.088-0.111-1.16-1.31-0.936-0.994 0.276 0.4 1.308 0.316 2.743 0.773 3.813z"/>
<path id="path3212" d="m305.77 200.14c-0.005 0.472 0.726 0.429 0.719 0.056-0.076-1.187-0.166-2.791 0.165-3.37 0.258-0.452 1.299-0.133 2.265-0.221 0.385-0.057 0.305-1.116-0.497-1.049-0.946 0.085-3.44-0.222-3.591 0.662-0.217 1.59 0.983-0.095 0.939 3.922z"/>
<path id="path3213" d="m313.01 195.55c0.605 0.436 0.521 1.003-0.221 0.828-0.884-0.221-1.48-0.15-1.468 0.335 0.013 0.477 0.386 0.57 0.929 1.099 0.52 0.545-0.319 0.456-0.962 1.572-0.548 0.924 0.57 1.046 1.888 0.696 0.336-0.096 0.777 0.482-0.055 0.957-0.586 0.313-2.219 0.696-2.625-0.489-0.771-2.05 1.291-2.334 0.422-2.88-0.474-0.286-0.645-0.717-0.559-1.289 0.184-1.32 2.15-1.145 2.651-0.829z"/>
<path id="path3214" d="m315.73 200.07c0.795-1.451 1.343-2.538 1.565-3.77 0.193-1.112 0.992-1.219 1.16-0.276 0.216 1.252 0.933 2.493 1.803 3.63 0.51 0.705-0.516 1.326-0.919 0.777-0.739-0.938-0.77-2.245-1.206-2.236-0.503 0.01-1.074 1.457-1.611 2.525-0.156 0.31-1.109-0.001-0.792-0.65z"/>
</g>
<path id="path1912" d="m384.5 357.31c-0.056 0.297 0.747 0.736 0.938 0.508 0.864-1.035 1.995-3.067 2.227-4.297 0.068-0.358-1.083-0.763-1.329-0.469-0.809 0.969-1.593 2.966-1.836 4.258z" fill-rule="evenodd" stroke-width="1pt" fill="#fff"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 133 KiB

View file

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
<svg id="svg548" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="480" width="640" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata id="metadata3794">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
</cc:Work>
</rdf:RDF>
</metadata>
<defs id="defs550">
<clipPath id="clipPath3056" clipPathUnits="userSpaceOnUse">
<rect id="rect3058" fill-opacity="0.67" height="512" width="682.67" y="3.5757e-8" x="-79.698"/>
</clipPath>
</defs>
<g id="flag" clip-path="url(#clipPath3056)" fill-rule="evenodd" transform="matrix(.93750 0 0 .93750 74.717 -3.3522e-8)">
<rect id="rect556" height="511.49" width="763.27" y="-8.5115e-7" x="-120" stroke-width="1pt" fill="#fff"/>
<rect id="rect1050" height="216.09" width="760.88" y=".61745" x="-118.31" stroke-width="1pt"/>
<rect id="rect1049" height="113.82" width="505.01" y="203.23" x="21.299" stroke-width="1pt" fill="#0061ff"/>
<path id="path1047" d="m642.75 1.7529v510.25h-380.72l380.72-510.25z" fill="#e20000"/>
<path id="path1048" d="m-118.69 1.7529v510.25h380.72l-380.72-510.25z" fill="#e20000"/>
<path id="path1051" d="m440.37 203.34-76.31-19.363 64.921-48.976-79.727 11.39 41.003-69.476-70.616 41.003 12.528-80.867-47.836 63.782-19.363-74.033-21.64 76.311-47.837-64.921 13.667 83.145-70.615-43.282 41.003 69.476-77.449-12.528 63.782 47.837-79.728 20.501h354.22z" fill="#ffd600"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

View file

@ -1,791 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
<svg id="svg548" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="480" width="640" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata id="metadata4564">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
</cc:Work>
</rdf:RDF>
</metadata>
<defs id="defs1346">
<clipPath id="clipPath9925" clipPathUnits="userSpaceOnUse">
<rect id="rect9927" fill-opacity="0.67" height="480" width="640" y="0" x="0"/>
</clipPath>
</defs>
<g id="g7603" clip-path="url(#clipPath9925)">
<g id="g4539" transform="matrix(.9375 0 0 .9375 155.92 2.9297e-7)">
<rect id="rect1310" fill-rule="evenodd" height="256.07" width="429.52" y=".44916" x="-165.86" stroke-width="1pt" fill="#fff"/>
<path id="path549" d="m-165.86 0.44988-0.0179 19.219 102.5 63.221 38.565 1.3414-141.05-83.781z" fill="#c00"/>
<path id="path551" d="m-121.97 0.44988 124.26 77.916v-77.916h-124.26z" fill="#006"/>
<path id="path552" d="m18.866 0.44988v99.468h-184.73v56.839h184.73v99.468h56.839v-99.468h184.73v-56.839h-184.73v-99.468h-56.839z" fill="#c00"/>
<path id="path554" d="m92.283 0.44988v73.417l121.57-72.848-121.57-0.56912z" fill="#006"/>
<path id="path555" d="m96.12 81.871 34.19-0.33 132.82-80.522-35.24 0.6889-131.77 80.163z" fill="#c00"/>
<path id="path556" d="m261.78 22.495-101.46 60.395 100.11 0.44974v89.995h-85.258l84.47 54.942 1.2386 27.948-45.116-0.64654-123.48-72.77v73.417h-89.995v-73.417l-115.83 73.22-52.315 0.19657v255.78h852.58v-511.55l-424.04-0.46m-428.54 28.869l-0.4499 53.121 89.757 1.3497-89.307-54.471z" fill="#006"/>
<path id="path700" d="m-165.86 173.33v54.471l85.258-53.902-85.258-0.56863z" fill="#006"/>
<path id="path701" d="m162.45 175.58-35.543-0.33108 133.97 80.072-0.881-18.319-97.55-61.422zm-295.02 81.091 125.62-79.172-32.994 0.26265-125.92 78.791" fill="#c00"/>
</g>
<g id="g5283" transform="matrix(2.0302 0 0 2.0302 -20.748 -474.95)">
<path id="path557" d="m269 356 1 1-1-1z" fill="#49497d"/>
<path id="path558" d="m270 356 1 1-1-1z" fill="#0e0e6e"/>
<path id="path559" d="m267 357 1 1-1-1z" fill="#262678"/>
<path id="path560" d="m268 357 1 1-1-1z" fill="#808067"/>
<path id="path562" d="m271 357 1 1-1-1z" fill="#58587b"/>
<path id="path563" d="m234 358 1 1-1-1z" fill="#0e0e6e"/>
<path id="path564" d="m265 358 1 1-1-1z" fill="#1b1b74"/>
<path id="path565" d="m266 358 1 1-1-1z" fill="#6e6c70"/>
<path id="path567" d="m235.76 359.81c0 25.838-2.978 54.955 16.28 75.19 3.962 4.163 11.499 13.656 17.96 13.292 6.764-0.381 15.462-10.39 19.331-15.292 16.764-22.052 14.099-48.355 14.669-73.95-7.57 3.3996-11.34 4.5196-17.96 4.4998-4.903 0.5039-12.467-2.7917-16.99-4.9474-2.956 1.9739-7.244 4.3279-14.95 4.5922-8.9 0.3915-11.72-1.1167-18.34-3.3848z" fill="#cc3"/>
<path id="path568" d="m272 358 1 1-1-1z" fill="#99994e"/>
<path id="path569" d="m273 358 1 1-1-1z" fill="#49497d"/>
<path id="path570" d="m304 358 1 1-1-1z" fill="#0e0e6e"/>
<path id="path572" d="m235 359 1 1-1-1z" fill="#a4a43d"/>
<path id="path573" d="m236 359 1 1-1-1z" fill="#6e6c70"/>
<path id="path574" d="m237 359 1 1-1-1z" fill="#3a3a7c"/>
<path id="path575" d="m263 359 1 1-1-1z" fill="#1b1b74"/>
<path id="path576" d="m264 359 1 1-1-1z" fill="#6e6c70"/>
<path id="path577" d="m265 359 1 1-1-1z" fill="#a4a43d"/>
<path id="path578" d="m269 359 1 1-1-1z" fill="#d0d045"/>
<path id="path579" d="m273 359 1 1-1-1z" fill="#a4a43d"/>
<path id="path580" d="m274 359 1 1-1-1z" fill="#8d8d5b"/>
<path id="path581" d="m275 359 1 1-1-1z" fill="#3a3a7c"/>
<path id="path582" d="m301 359 1 1-1-1z" fill="#262678"/>
<path id="path583" d="m302 359 1 1-1-1z" fill="#53527c"/>
<path id="path584" d="m303 359 1 1-1-1z" fill="#8d8d5b"/>
<path id="path586" d="m239 360 1 1-1-1z" fill="#737370"/>
<path id="path587" d="m240 360 1 1-1-1z" fill="#53527c"/>
<path id="path588" d="m241 360 1 1-1-1z" fill="#1b1b74"/>
<path id="path589" d="m261 360 1 1-1-1z" fill="#262678"/>
<path id="path590" d="m262 360 1 1-1-1z" fill="#6e6c70"/>
<path id="path591" d="m263 360 1 1-1-1z" fill="#a4a43d"/>
<path id="path592" d="m268 360 1 1-1-1z" fill="#e5e59d"/>
<path id="path593" d="m237.81 362.62c-0.538 13.573-0.125 28.857 1.997 43.38 2.346 7.587 2.032 11.755 5.518 16.302l48.798-0.38c2.94-4.784 5.121-12.038 5.402-14.922 2.725-14.667 2.79-30.853 2.855-45.33-4.907 2.6083-11.333 4.4568-17.57 3.6458-5-0.3813-9.62-1.5225-15-4.5633-4.667 2.7961-6.294 4.0724-14 4.3989-6 0.2959-10.86 0.7818-18-2.5316z" fill="#fff"/>
<path id="path594" d="m270 360 1 1-1-1z" fill="#f2f1d7"/>
<path id="path595" d="m271 360 1 1-1-1z" fill="#d9d868"/>
<path id="path596" d="m275 360 1 1-1-1z" fill="#a4a43d"/>
<path id="path597" d="m276 360 1 1-1-1z" fill="#99994e"/>
<path id="path598" d="m277 360 1 1-1-1z" fill="#49497d"/>
<path id="path599" d="m278 360 1 1-1-1z" fill="#0e0e6e"/>
<path id="path600" d="m298 360 1 1-1-1z" fill="#3a3a7c"/>
<path id="path601" d="m299 360 1 1-1-1z" fill="#667"/>
<path id="path602" d="m300 360 1 1-1-1z" fill="#99994e"/>
<path id="path603" d="m301 360 1 1-1-1m-60 1 1 1-1-1z" fill="#a4a43d"/>
<path id="path604" d="m242 361 1 1-1-1z" fill="#99994e"/>
<path id="path605" d="m243 361 1 1-1-1z" fill="#6e6c70"/>
<path id="path606" d="m244 361 1 1-1-1z" fill="#49497d"/>
<path id="path607" d="m245 361 1 1-1-1m13 0 1 1-1-1z" fill="#1b1b74"/>
<path id="path608" d="m259 361 1 1-1-1z" fill="#53527c"/>
<path id="path609" d="m260 361 1 1-1-1z" fill="#8d8d5b"/>
<path id="path610" d="m261 361 1 1-1-1z" fill="#a4a43d"/>
<path id="path611" d="m266 361 1 1-1-1z" fill="#e5e59d"/>
<path id="path612" d="m267 361 1 1-1-1z" fill="#fbfaf2"/>
<path id="path613" d="m272 361 1 1-1-1z" fill="#f2f1d2"/>
<path id="path614" d="m273 361 1 1-1-1z" fill="#d9d868"/>
<path id="path615" d="m278 361 1 1-1-1z" fill="#a4a43d"/>
<path id="path616" d="m279 361 1 1-1-1z" fill="#6e6c70"/>
<path id="path617" d="m280 361 1 1-1-1z" fill="#3a3a7c"/>
<path id="path618" d="m293 361 1 1-1-1z" fill="#0e0e6e"/>
<path id="path619" d="m294 361 1 1-1-1z" fill="#32327b"/>
<path id="path620" d="m295 361 1 1-1-1z" fill="#58587b"/>
<path id="path621" d="m296 361 1 1-1-1z" fill="#808067"/>
<path id="path622" d="m297.67 361.33 0.666 0.3334-0.666-0.3334z" fill="#a4a43d"/>
<path id="path624" d="m237 362 1 1-1-1z" fill="#dddc7a"/>
<path id="path625" d="m238 362 1 1-1-1z" fill="#d0d045"/>
<path id="path626" d="m245.67 362.33 0.666 0.3334-0.666-0.3334z" fill="#a4a43d"/>
<path id="path627" d="m247 362 1 1-1-1z" fill="#808067"/>
<path id="path628" d="m248 362 1 1-1-1z" fill="#667"/>
<path id="path629" d="m249 362 1 1-1-1z" fill="#58587b"/>
<path id="path630" d="m250 362 1 1-1-1z" fill="#49497d"/>
<path id="path634" d="m256 362 1 1-1-1z" fill="#737370"/>
<path id="path635" d="m257 362 1 1-1-1z" fill="#99994e"/>
<path id="path636" d="m258 362 1 1-1-1z" fill="#a4a43d"/>
<path id="path637" d="m264 362 1 1-1-1z" fill="#e5e59d"/>
<path id="path638" d="m265 362 1 1-1-1z" fill="#fbfaf2"/>
<path id="path639" d="m274 362 1 1-1-1z" fill="#f2f1d2"/>
<path id="path640" d="m275 362 1 1-1-1z" fill="#d9d868"/>
<path id="path641" d="m280.67 362.33 0.666 0.3334-0.666-0.3334z" fill="#a4a43d"/>
<path id="path642" d="m282 362 1 1-1-1z" fill="#808067"/>
<path id="path643" d="m283 362 1 1-1-1z" fill="#667"/>
<path id="path644" d="m284 362 1 1-1-1z" fill="#58587b"/>
<path id="path645" d="m285 362 1 1-1-1z" fill="#3a3a7c"/>
<path id="path647" d="m289.67 362.33 0.666 0.3334-0.666-0.3334z" fill="#58587b"/>
<path id="path648" d="m291 362 1 1-1-1z" fill="#737370"/>
<path id="path649" d="m292 362 1 1-1-1z" fill="#99994e"/>
<path id="path650" d="m293 362 1 1-1-1z" fill="#a4a43d"/>
<path id="path651" d="m301 362 1 1-1-1z" fill="#dddc7a"/>
<path id="path652" d="m302 362 1 1-1-1z" fill="#d0d045"/>
<path id="path654" d="m239 363 1 1-1-1z" fill="#f2f1d7"/>
<path id="path655" d="m240 363 1 1-1-1z" fill="#e0dea1"/>
<path id="path656" d="m241 363 1 1-1-1z" fill="#dddc7a"/>
<path id="path657" d="m261 363 1 1-1-1z" fill="#d9d868"/>
<path id="path658" d="m262 363 1 1-1-1z" fill="#e5e3af"/>
<path id="path659" d="m276 363 1 1-1-1z" fill="#f6f6e4"/>
<path id="path660" d="m277 363 1 1-1-1z" fill="#e1e18c"/>
<path id="path661" d="m297 363 1 1-1-1z" fill="#d4d456"/>
<path id="path662" d="m298 363 1 1-1-1z" fill="#e1e18c"/>
<path id="path663" d="m299 363 1 1-1-1z" fill="#eeedc1"/>
<path id="path665" d="m243 364 1 1-1-1z" fill="#f2f1d2"/>
<path id="path666" d="m244 364 1 1-1-1z" fill="#e0dea1"/>
<path id="path667" d="m245 364 1 1-1-1z" fill="#dddc7a"/>
<path id="path668" d="m246 364 1 1-1-1z" fill="#d0d045"/>
<path id="path669" d="m258 364 1 1-1-1z" fill="#dddc7a"/>
<path id="path670" d="m259 364 1 1-1-1z" fill="#e5e3af"/>
<path id="path671" d="m260 364 1 1-1-1z" fill="#f6f6e4"/>
<path id="path672" d="m279 364 1 1-1-1z" fill="#eeedc1"/>
<path id="path673" d="m280 364 1 1-1-1z" fill="#e1e18c"/>
<path id="path674" d="m281 364 1 1-1-1z" fill="#d4d456"/>
<path id="path675" d="m293 364 1 1-1-1z" fill="#d9d868"/>
<path id="path676" d="m294 364 1 1-1-1z" fill="#e1e18c"/>
<path id="path677" d="m295 364 1 1-1-1z" fill="#eeedc1"/>
<path id="path678" d="m296 364 1 1-1-1z" fill="#f6f6e4"/>
<path id="path679" d="m248 365 1 1-1-1z" fill="#f2f1d7"/>
<path id="path680" d="m249 365 1 1-1-1z" fill="#f2f1d2"/>
<path id="path681" d="m250 365 1 1-1-1z" fill="#eeedc1"/>
<path id="path683" d="m254.67 365.33 0.666 0.3334-0.666-0.3334z" fill="#f2f1d2"/>
<path id="path684" d="m256 365 1 1-1-1z" fill="#fbfaf2"/>
<path id="path685" d="m261 365 2 2v-2h-2z" fill="#fef8f1"/>
<path id="path686" d="m283 365 1 1-1-1z" fill="#f2f1d7"/>
<path id="path687" d="m284 365 1 1-1-1z" fill="#f2f1d2"/>
<path id="path688" d="m285 365 1 1-1-1z" fill="#e5e3af"/>
<path id="path689" d="m286.67 365.33 0.666 0.3334-0.666-0.3334z" fill="#e5e59d"/>
<path id="path690" d="m288 365 1 1-1-1z" fill="#e0dea1"/>
<path id="path691" d="m289.67 365.33 0.666 0.3334-0.666-0.3334z" fill="#f2f1d2"/>
<path id="path692" d="m291 365 1 1-1-1z" fill="#fbfaf2"/>
<path id="path693" d="m259 366 1 1-1-1z" fill="#fef8f1"/>
<path id="path694" d="m260 366 1 1-1-1z" fill="#fbbe66"/>
<path id="path696" d="m259 367 1 1-1-1z" fill="#fbc477"/>
<path id="path697" d="m261 367 1 1-1-1z" fill="#fcb144"/>
<path id="path698" d="m259 368 1 1-1-1z" fill="#fe9f11"/>
<path id="path699" d="m261 368 1 1-1-1z" fill="#fea522"/>
<path id="path702" d="m258 369 1 1-1-1m4 0 1 1-1-1z" fill="#fae3c9"/>
<path id="path703" d="m267 369 1 1-1-1z" fill="#fbead6"/>
<path id="path704" d="m268 369 1 1-1-1z" fill="#f9d6aa"/>
<path id="path706" d="m272 369 1 1-1-1z" fill="#fae3c9"/>
<path id="path707" d="m273 369 1 1-1-1z" fill="#fef8f1"/>
<path id="path708" d="m258 370 1 1-1-1z" fill="#f9d099"/>
<path id="path709" d="m262 370 1 1-1-1z" fill="#fdab33"/>
<path id="path710" d="m264 370 1 1-1-1z" fill="#fcf1e4"/>
<path id="path711" d="m265 370 1 1-1-1z" fill="#fbc477"/>
<path id="path712" d="m266 370 1 1-1-1z" fill="#fea522"/>
<path id="path713" d="m274 370 1 1-1-1z" fill="#fcb755"/>
<path id="path714" d="m275 370 1 1-1-1z" fill="#f9d6aa"/>
<path id="path715" d="m258 371 1 1-1-1z" fill="#faca88"/>
<path id="path716" d="m263 371 1 1-1-1m13 0 1 1-1-1z" fill="#fea522"/>
<path id="path717" d="m277 371 1 1-1-1z" fill="#f8dcbb"/>
<path id="path718" d="m237 372 1 1-1-1z" fill="#f6f6e4"/>
<path id="path719" d="m258 372 1 1-1-1z" fill="#fbc477"/>
<path id="path720" d="m278 372 1 1-1-1z" fill="#fbbe66"/>
<path id="path721" d="m279 372 1 1-1-1z" fill="#f8dcbb"/>
<path id="path722" d="m258 373 1 1-1-1z" fill="#faca88"/>
<path id="path723" d="m281 373 1 1-1-1z" fill="#fcb755"/>
<path id="path724" d="m282 373 1 1-1-1z" fill="#f8dcbb"/>
<path id="path725" d="m257 374 1 1-1-1z" fill="#fef8f1"/>
<path id="path726" d="m258 374 1 1-1-1z" fill="#fe9f11"/>
<path id="path727" d="m286 374 1 1-1-1z" fill="#fdab33"/>
<path id="path728" d="m287 374 1 1-1-1z" fill="#fcb144"/>
<path id="path729" d="m288 374 1 1-1-1z" fill="#fbc477"/>
<path id="path730" d="m289 374 2 2-2-2z" fill="#f9d6aa"/>
<path id="path731" d="m290 374 1 1-1-1z" fill="#fef8f1"/>
<path id="path732" d="m257 375 1 1-1-1z" fill="#fcb144"/>
<path id="path733" d="m271 375 1 1-1-1z" fill="#fdab33"/>
<path id="path734" d="m272 375 1 1-1-1z" fill="#fbc477"/>
<path id="path736" d="m276 375 1 1-1-1z" fill="#fbc477"/>
<path id="path737" d="m277 375 1 1-1-1z" fill="#fea522"/>
<path id="path738" d="m256 376 1 1-1-1z" fill="#fae3c9"/>
<path id="path739" d="m269 376 1 1-1-1z" fill="#fcb144"/>
<path id="path740" d="m270 376 1 1-1-1z" fill="#fae3c9"/>
<path id="path742" d="m278 376 1 1-1-1z" fill="#f8dcbb"/>
<path id="path743" d="m279 376 1 1-1-1z" fill="#fdab33"/>
<path id="path744" d="m285 376 1 1-1-1z" fill="#fe9f11"/>
<path id="path745" d="m286 376 1 1-1-1z" fill="#fcb755"/>
<path id="path746" d="m287 376 1 1-1-1z" fill="#f9d099"/>
<path id="path747" d="m288 376 1 1-1-1z" fill="#fbead6"/>
<path id="path748" d="m256 377 1 1-1-1z" fill="#fcb144"/>
<path id="path749" d="m268 377 1 1-1-1z" fill="#fbbe66"/>
<path id="path750" d="m280 377 1 1-1-1z" fill="#f9d099"/>
<path id="path751" d="m284 377 1 1-1-1z" fill="#fbead6"/>
<path id="path752" d="m255 378 1 1-1-1z" fill="#fcf1e4"/>
<path id="path753" d="m267 378 1 1-1-1z" fill="#fbbe66"/>
<path id="path754" d="m281 378 1 1-1-1z" fill="#f9d099"/>
<path id="path755" d="m284 378 1 1-1-1z" fill="#fae3c9"/>
<path id="path756" d="m255 379 1 1-1-1z" fill="#fbc477"/>
<path id="path757" d="m266 379 1 1-1-1m16 0 1 1-1-1z" fill="#fcb144"/>
<path id="path758" d="m284 379 1 1-1-1z" fill="#fbbe66"/>
<path id="path759" d="m237 380 1 1-1-1z" fill="#f6f6e4"/>
<path id="path760" d="m255 380 1 1-1-1z" fill="#fea522"/>
<path id="path761" d="m266 380 1 1-1-1z" fill="#fbead6"/>
<path id="path762" d="m282 380 1 1-1-1z" fill="#fcf1e4"/>
<path id="path763" d="m285 380 1 1-1-1z" fill="#fef8f1"/>
<path id="path765" d="m254 381 1 1-1-1z" fill="#fcf1e4"/>
<path id="path766" d="m265 381 1 1-1-1z" fill="#fbbe66"/>
<path id="path767" d="m283 381 1 1-1-1z" fill="#faca88"/>
<path id="path768" d="m285 381 1 1-1-1z" fill="#f9d099"/>
<path id="path769" d="m254 382 1 1-1-1z" fill="#f9d6aa"/>
<path id="path770" d="m265 382 1 1-1-1z" fill="#fcf1e4"/>
<path id="path771" d="m270 382 1 1-1-1z" fill="#fae3c9"/>
<path id="path772" d="m271 382 1 1-1-1z" fill="#fea522"/>
<path id="path773" d="m272 382 1 1-1-1z" fill="#fcb144"/>
<path id="path774" d="m273 382 1 1-1-1z" fill="#f9d6aa"/>
<path id="path775" d="m283 382 1 1-1-1z" fill="#fef8f1"/>
<path id="path776" d="m284 382 1 1-1-1z" fill="#fea522"/>
<path id="path777" d="m285 382 1 1-1-1z" fill="#fdab33"/>
<path id="path778" d="m254 383-1 3 1-3z" fill="#faca88"/>
<path id="path779" d="m264 383 1 1-1-1z" fill="#fea522"/>
<path id="path780" d="m265 383 1 1-1-1z" fill="#fef8f1"/>
<path id="path781" d="m270 383 1 1-1-1z" fill="#f9d099"/>
<path id="path783" d="m274 383 1 1-1-1z" fill="#fdab33"/>
<path id="path784" d="m275 383 1 1-1-1z" fill="#fae3c9"/>
<path id="path785" d="m284 383 1 1-1-1z" fill="#f8dcbb"/>
<path id="path786" d="m285 383 1 1-1-1z" fill="#f90"/>
<path id="path787" d="m286.33 383.67 0.334 0.6666-0.334-0.6666z" fill="#fbead6"/>
<path id="path788" d="m266 384 1 1-1-1z" fill="#fea522"/>
<path id="path789" d="m267 384 1 1-1-1z" fill="#fbbe66"/>
<path id="path790" d="m268 384 1 1-1-1z" fill="#faca88"/>
<path id="path791" d="m269 384 1 1-1-1z" fill="#fcb144"/>
<path id="path792" d="m270 384 1 1-1-1z" fill="#fae3c9"/>
<path id="path793" d="m271 384 1 1-1-1z" fill="#fe9f11"/>
<path id="path794" d="m276 384 1 1-1-1z" fill="#fdab33"/>
<path id="path795" d="m277 384 1 1-1-1z" fill="#fbc477"/>
<path id="path796" d="m278 384 1 1-1-1z" fill="#faca88"/>
<path id="path797" d="m279 384 1 1-1-1z" fill="#f9d6aa"/>
<path id="path798" d="m280.67 384.33 0.666 0.3334-0.666-0.3334z" fill="#fae3c9"/>
<path id="path799" d="m282 384 1 1-1-1z" fill="#fef8f1"/>
<path id="path800" d="m285 384 1 1-1-1z" fill="#fbc477"/>
<path id="path801" d="m242 385 1 1-1-1z" fill="#fef8f1"/>
<path id="path802" d="m243 385 1 1-1-1z" fill="#fcf1e4"/>
<path id="path804" d="m269 385 1 1-1-1z" fill="#fcb755"/>
<path id="path806" d="m271 385 1 1-1-1z" fill="#fbead6"/>
<path id="path807" d="m272 385 1 1-1-1z" fill="#fea522"/>
<path id="path808" d="m280 385 1 1-1-1z" fill="#fe9f11"/>
<path id="path809" d="m281 385-1 2 1-2z" fill="#fcb144"/>
<path id="path810" d="m283 385 1 1-1-1z" fill="#fe9f11"/>
<path id="path811" d="m284 385 1 1-1-1z" fill="#fbbe66"/>
<path id="path812" d="m285 385 1 1-1-1z" fill="#fcf1e4"/>
<path id="path813" d="m242 386 1 1-1-1z" fill="#fae3c9"/>
<path id="path814" d="m243 386 2 2-2-2z" fill="#fe9f11"/>
<path id="path815" d="m244 386 1 1-1-1z" fill="#fbead6"/>
<path id="path817" d="m253 386 1 1-1-1z" fill="#fbead6"/>
<path id="path818" d="m254 386 1 1-1-1z" fill="#fae3c9"/>
<path id="path819" d="m263 386 1 1-1-1z" fill="#fe9f11"/>
<path id="path820" d="m264 386 1 1-1-1z" fill="#fbc477"/>
<path id="path821" d="m265 386 1 1-1-1z" fill="#fea522"/>
<path id="path822" d="m268 386 1 1-1-1z" fill="#fbc477"/>
<path id="path823" d="m269 386 1 1-1-1z" fill="#fef8f1"/>
<path id="path824" d="m273 386 1 1-1-1z" fill="#fbc477"/>
<path id="path825" d="m281 386 1 1-1-1z" fill="#fff"/>
<path id="path826" d="m282 386 1 1-1-1z" fill="#fdab33"/>
<path id="path827" d="m286 386 1 1-1-1z" fill="#fbc477"/>
<path id="path828" d="m242 387 1 1-1-1z" fill="#fef8f1"/>
<path id="path830" d="m245 387 1 1-1-1z" fill="#fbead6"/>
<path id="path831" d="m250 387 1 1-1-1z" fill="#f9d6aa"/>
<path id="path833" d="m255 387 1 1-1-1z" fill="#fe9f11"/>
<path id="path834" d="m256.67 387.33 0.666 0.3334-0.666-0.3334z" fill="#f9d6aa"/>
<path id="path835" d="m263 387 1 1-1-1z" fill="#f8dcbb"/>
<path id="path836" d="m266 387 1 1-1-1z" fill="#fcf1e4"/>
<path id="path837" d="m274 387 1 1-1-1z" fill="#f9d6aa"/>
<path id="path838" d="m281 387 1 1-1-1z" fill="#fdab33"/>
<path id="path839" d="m287 387 1 1-1-1z" fill="#fcb755"/>
<path id="path840" d="m288 387 1 1-1-1z" fill="#fef8f1"/>
<path id="path841" d="m234 388 1 1-1-1z" fill="#53527c"/>
<path id="path842" d="m243 388 1 1-1-1z" fill="#fcb755"/>
<path id="path843" d="m245 388 1 1-1-1z" fill="#fea522"/>
<path id="path845" d="m249 388 1 1-1-1z" fill="#fbead6"/>
<path id="path846" d="m251 388 1 1-1-1z" fill="#fe9f11"/>
<path id="path847" d="m252 388 1 1-1-1z" fill="#fcf1e4"/>
<path id="path848" d="m255 388 1 1-1-1z" fill="#fbbe66"/>
<path id="path849" d="m256 388 1 1-1-1z" fill="#fbc477"/>
<path id="path850" d="m257 388 1 1-1-1z" fill="#fbbe66"/>
<path id="path851" d="m262 388 1 1-1-1z" fill="#fea522"/>
<path id="path852" d="m275 388 1 1-1-1z" fill="#f9d6aa"/>
<path id="path853" d="m288 388 1 1-1-1z" fill="#fcb144"/>
<path id="path854" d="m304 388 1 1-1-1z" fill="#8d8d5b"/>
<path id="path856" d="m237 389 1 1-1-1z" fill="#e5e3af"/>
<path id="path857" d="m243 389 1 1-1-1z" fill="#f8dcbb"/>
<path id="path858" d="m246 389 1 1-1-1z" fill="#fdab33"/>
<path id="path859" d="m249 389 1 1-1-1z" fill="#fe9f11"/>
<path id="path860" d="m251 389 1 1-1-1z" fill="#faca88"/>
<path id="path861" d="m255 389 1 1-1-1z" fill="#fcf1e4"/>
<path id="path862" d="m262 389 1 1-1-1m14 0 1 1-1-1z" fill="#f9d099"/>
<path id="path863" d="m289 389 1 1-1-1z" fill="#fbbe66"/>
<path id="path866" d="m244 390 1 1-1-1z" fill="#fea522"/>
<path id="path867" d="m247 390 1 1-1-1z" fill="#fdab33"/>
<path id="path868" d="m248 390 1 1-1-1z" fill="#fea522"/>
<path id="path869" d="m250 390 1 1-1-1z" fill="#fe9f11"/>
<path id="path870" d="m251 390 1 1-1-1z" fill="#fef8f1"/>
<path id="path871" d="m256 390 1 1-1-1z" fill="#fbbe66"/>
<path id="path872" d="m262 390 1 1-1-1z" fill="#fef8f1"/>
<path id="path873" d="m277 390 1 1-1-1z" fill="#fbbe66"/>
<path id="path874" d="m290 390 1 1-1-1z" fill="#f9d099"/>
<path id="path875" d="m244 391 1 1-1-1z" fill="#f9d6aa"/>
<path id="path876" d="m250 391 1 1-1-1z" fill="#f9d099"/>
<path id="path877" d="m256 391 1 1-1-1z" fill="#fcf1e4"/>
<path id="path878" d="m261 391 1 1-1-1m17 0 1 1-1-1z" fill="#fdab33"/>
<path id="path879" d="m291 391 1 1-1-1z" fill="#fbead6"/>
<path id="path881" d="m245 392 1 1-1-1z" fill="#fea522"/>
<path id="path882" d="m249 392 1 1-1-1z" fill="#fe9f11"/>
<path id="path883" d="m257 392 1 1-1-1z" fill="#fcb144"/>
<path id="path884" d="m261 392 1 1-1-1z" fill="#faca88"/>
<path id="path885" d="m278 392 1 1-1-1z" fill="#f8dcbb"/>
<path id="path886" d="m291 392 1 1-1-1z" fill="#fcb144"/>
<path id="path888" d="m237 393 1 1-1-1z" fill="#d3d079"/>
<path id="path889" d="m245 393 1 1-1-1z" fill="#faca88"/>
<path id="path891" d="m257 393 1 1-1-1z" fill="#faca88"/>
<path id="path892" d="m261 393 1 1-1-1m17 0 1 1-1-1z" fill="#fae3c9"/>
<path id="path893" d="m292 393 1 1-1-1z" fill="#f8dcbb"/>
<path id="path894" d="m301 393 1 1-1-1z" fill="#f2f1d7"/>
<path id="path895" d="m304.33 393.67 0.334 0.6666-0.334-0.6666z" fill="#58587b"/>
<path id="path896" d="m237.33 394.67 0.334 0.6666-0.334-0.6666z" fill="#d9d868"/>
<path id="path897" d="m245 394 1 1-1-1z" fill="#f8dcbb"/>
<path id="path899" d="m277 394 1 1-1-1z" fill="#f9d6aa"/>
<path id="path900" d="m278 394 1 1-1-1z" fill="#fe9f11"/>
<path id="path901" d="m292 394 1 1-1-1z" fill="#fcb144"/>
<path id="path902" d="m301.33 394.67 0.334 0.6666-0.334-0.6666z" fill="#f2f1d2"/>
<path id="path903" d="m245 395 1 1-1-1z" fill="#fcf1e4"/>
<path id="path904" d="m276 395 1 1-1-1z" fill="#fef8f1"/>
<path id="path905" d="m277 395 1 1-1-1z" fill="#fe9f11"/>
<path id="path906" d="m280 395-1 2 1-2z" fill="#fdab33"/>
<path id="path907" d="m281 395 1 1-1-1z" fill="#fcb755"/>
<path id="path908" d="m293 395 1 1-1-1z" fill="#fea522"/>
<path id="path909" d="m294 395 1 1-1-1z" fill="#f9d099"/>
<path id="path910" d="m304 395 1 1-1-1z" fill="#53527c"/>
<path id="path911" d="m235.33 396.67 0.334 0.666-0.334-0.666z" fill="#808067"/>
<path id="path912" d="m246 396 1 1-1-1m3 0 1 1-1-1z" fill="#fea522"/>
<path id="path913" d="m260 396 1 1-1-1z" fill="#fe9f11"/>
<path id="path914" d="m276 396 1 1-1-1z" fill="#fae3c9"/>
<path id="path915" d="m280 396 1 1-1-1z" fill="#fef8f1"/>
<path id="path917" d="m282 396 1 1-1-1z" fill="#fcb144"/>
<path id="path918" d="m295 396 1 1-1-1z" fill="#fcb755"/>
<path id="path919" d="m296 396 2 2-2-2z" fill="#fef8f1"/>
<path id="path920" d="m301.33 396.67 0.334 0.666-0.334-0.666z" fill="#e5e59d"/>
<path id="path921" d="m304.33 396.67 0.334 0.666-0.334-0.666z" fill="#32327b"/>
<path id="path922" d="m246.33 397.67 0.334 0.666-0.334-0.666z" fill="#fcb755"/>
<path id="path923" d="m250 397 1 1-1-1z" fill="#fef8f1"/>
<path id="path924" d="m260 397 1 1-1-1z" fill="#fbbe66"/>
<path id="path925" d="m276 397 1 1-1-1z" fill="#fbead6"/>
<path id="path926" d="m278 397 1 1-1-1z" fill="#fe9f11"/>
<path id="path927" d="m279 397 1 1-1-1z" fill="#fcf1e4"/>
<path id="path928" d="m282 397 1 1-1-1z" fill="#fbead6"/>
<path id="path929" d="m296 397 1 1-1-1z" fill="#fdab33"/>
<path id="path931" d="m235 398 1 1-1-1z" fill="#667"/>
<path id="path932" d="m238 398 1 1-1-1z" fill="#f6f6e4"/>
<path id="path933" d="m250 398 1 1-1-1z" fill="#f9d6aa"/>
<path id="path934" d="m258 398 1 1-1-1z" fill="#fdab33"/>
<path id="path935" d="m259 398 1 1-1-1z" fill="#fe9f11"/>
<path id="path936" d="m260 398 1 1-1-1z" fill="#fcf1e4"/>
<path id="path937" d="m277 398 1 1-1-1z" fill="#fea522"/>
<path id="path938" d="m278 398 1 1-1-1m5 0 1 1-1-1z" fill="#faca88"/>
<path id="path939" d="m297 398 1 1-1-1z" fill="#fcb144"/>
<path id="path940" d="m301 398 1 1-1-1z" fill="#dddc7a"/>
<path id="path941" d="m235 399 1 1-1-1z" fill="#58587b"/>
<path id="path942" d="m238 399 1 1-1-1z" fill="#f2f1d2"/>
<path id="path943" d="m246.33 399.67 0.334 0.666-0.334-0.666z" fill="#fcb144"/>
<path id="path944" d="m250 399 1 1-1-1z" fill="#fea522"/>
<path id="path945" d="m260 399 1 1-1-1z" fill="#fef8f1"/>
<path id="path946" d="m261 399 1 1-1-1z" fill="#fea522"/>
<path id="path947" d="m263 399 1 1-1-1z" fill="#fcb144"/>
<path id="path948" d="m264 399 1 1-1-1z" fill="#fbead6"/>
<path id="path949" d="m277 399 1 1-1-1z" fill="#f8dcbb"/>
<path id="path950" d="m278 399 1 1-1-1z" fill="#fcf1e4"/>
<path id="path951" d="m283 399 1 1-1-1z" fill="#fef8f1"/>
<path id="path952" d="m284 399 1 1-1-1z" fill="#fe9f11"/>
<path id="path953" d="m298 399 1 1-1-1z" fill="#fbead6"/>
<path id="path954" d="m301 399 1 1-1-1z" fill="#d9d868"/>
<path id="path955" d="m235 400 1 1-1-1z" fill="#3a3a7c"/>
<path id="path956" d="m238 400 1 1-1-1z" fill="#e5e3af"/>
<path id="path957" d="m251 400 1 1-1-1z" fill="#faca88"/>
<path id="path958" d="m261 400 1 1-1-1z" fill="#fbead6"/>
<path id="path959" d="m264 400 1 1-1-1z" fill="#fe9f11"/>
<path id="path960" d="m265 400 1 1-1-1z" fill="#fcf1e4"/>
<path id="path961" d="m276 400 1 1-1-1z" fill="#fbead6"/>
<path id="path962" d="m277 400 1 1-1-1z" fill="#fae3c9"/>
<path id="path963" d="m278 400 1 1-1-1z" fill="#fbead6"/>
<path id="path964" d="m284 400 1 1-1-1m8 0 1 1-1-1z" fill="#fbbe66"/>
<path id="path965" d="m293 400 1 1-1-1z" fill="#fcf1e4"/>
<path id="path966" d="m294 400 1 1-1-1z" fill="#fef8f1"/>
<path id="path967" d="m295 400 1 1-1-1z" fill="#f8dcbb"/>
<path id="path968" d="m296 400 1 1-1-1z" fill="#fcb755"/>
<path id="path969" d="m298 400 1 1-1-1z" fill="#fae3c9"/>
<path id="path970" d="m303 400 1 1-1-1z" fill="#808067"/>
<path id="path971" d="m235 401 1 1-1-1z" fill="#32327b"/>
<path id="path972" d="m236.33 401.67 0.334 0.666-0.334-0.666z" fill="#a4a43d"/>
<path id="path973" d="m238 401 1 1-1-1z" fill="#e5e59d"/>
<path id="path974" d="m246 401 1 1-1-1z" fill="#fbc477"/>
<path id="path975" d="m252 401 1 1-1-1z" fill="#f9d6aa"/>
<path id="path976" d="m262 401 1 1-1-1z" fill="#fbbe66"/>
<path id="path977" d="m265 401 1 1-1-1z" fill="#f9d099"/>
<path id="path978" d="m274 401 1 1-1-1z" fill="#fae3c9"/>
<path id="path979" d="m275 401 1 1-1-1z" fill="#fcb144"/>
<path id="path980" d="m279 401 1 1-1-1z" fill="#fae3c9"/>
<path id="path981" d="m284 401 1 1-1-1z" fill="#f8dcbb"/>
<path id="path982" d="m292 401 1 1-1-1z" fill="#f9d099"/>
<path id="path983" d="m297 401 1 1-1-1z" fill="#fbc477"/>
<path id="path984" d="m298 401 1 1-1-1z" fill="#fbead6"/>
<path id="path985" d="m303 401 1 1-1-1z" fill="#737370"/>
<path id="path986" d="m238 402 1 1-1-1z" fill="#d9d868"/>
<path id="path987" d="m246 402 1 1-1-1z" fill="#f9d099"/>
<path id="path988" d="m253 402 1 1-1-1m9 0 1 1-1-1z" fill="#f9d6aa"/>
<path id="path989" d="m265 402 1 1-1-1z" fill="#fbc477"/>
<path id="path990" d="m270 402 1 1-1-1z" fill="#fef8f1"/>
<path id="path991" d="m271 402 1 1-1-1z" fill="#f8dcbb"/>
<path id="path992" d="m272 402 1 1-1-1z" fill="#fbc477"/>
<path id="path993" d="m273 402 1 1-1-1z" fill="#fea522"/>
<path id="path994" d="m279 402 1 1-1-1z" fill="#fbead6"/>
<path id="path996" d="m300 402 1 1-1-1z" fill="#f2f1d2"/>
<path id="path997" d="m303 402 1 1-1-1z" fill="#58587b"/>
<path id="path998" d="m236 403 1 1-1-1z" fill="#99994e"/>
<path id="path999" d="m238 403 1 1-1-1z" fill="#d0d045"/>
<path id="path1001" d="m254 403 1 1-1-1z" fill="#fcb144"/>
<path id="path1002" d="m255 403 1 1-1-1z" fill="#fae3c9"/>
<path id="path1003" d="m262 403 1 1-1-1z" fill="#fef8f1"/>
<path id="path1004" d="m266 403 1 1-1-1z" fill="#fcb755"/>
<path id="path1005" d="m267 403 1 1-1-1z" fill="#fbc477"/>
<path id="path1006" d="m268 403 1 1-1-1z" fill="#fcb144"/>
<path id="path1007" d="m269 403 1 1-1-1z" fill="#fea522"/>
<path id="path1008" d="m277 403 1 1-1-1z" fill="#fe9f11"/>
<path id="path1009" d="m278 403 1 1-1-1z" fill="#f9d6aa"/>
<path id="path1010" d="m292 403 1 1-1-1z" fill="#fef8f1"/>
<path id="path1011" d="m300 403 1 1-1-1z" fill="#e0dea1"/>
<path id="path1012" d="m303 403 1 1-1-1z" fill="#3a3a7c"/>
<path id="path1013" d="m236 404 1 1-1-1z" fill="#737370"/>
<path id="path1014" d="m239 404 1 1-1-1z" fill="#fbfaf2"/>
<path id="path1015" d="m247 404 1 1-1-1z" fill="#fea522"/>
<path id="path1016" d="m256 404 1 1-1-1z" fill="#fe9f11"/>
<path id="path1017" d="m257 404 1 1-1-1z" fill="#fcb144"/>
<path id="path1018" d="m258 404 1 1-1-1z" fill="#fbc477"/>
<path id="path1019" d="m259 404 1 1-1-1z" fill="#faca88"/>
<path id="path1020" d="m260 404 1 1-1-1z" fill="#fbc477"/>
<path id="path1021" d="m261 404 1 1-1-1z" fill="#fcb144"/>
<path id="path1022" d="m262 404 1 1-1-1z" fill="#fdab33"/>
<path id="path1023" d="m276 404 1 1-1-1z" fill="#fbc477"/>
<path id="path1024" d="m277 404 1 1-1-1z" fill="#fef8f1"/>
<path id="path1025" d="m291 404 1 1-1-1z" fill="#fdab33"/>
<path id="path1026" d="m300 404 1 1-1-1z" fill="#e1e18c"/>
<path id="path1027" d="m302.33 404.67 0.334 0.666-0.334-0.666z" fill="#a4a43d"/>
<path id="path1028" d="m303 404 1 1-1-1z" fill="#262678"/>
<path id="path1029" d="m236 405 1 1-1-1z" fill="#58587b"/>
<path id="path1030" d="m239 405 1 1-1-1z" fill="#f2f1d2"/>
<path id="path1031" d="m247 405 1 1-1-1z" fill="#faca88"/>
<path id="path1032" d="m274 405 1 1-1-1z" fill="#fe9f11"/>
<path id="path1033" d="m275 405 1 1-1-1z" fill="#fbead6"/>
<path id="path1034" d="m284 405 1 1-1-1z" fill="#fbc477"/>
<path id="path1035" d="m291 405 1 1-1-1z" fill="#faca88"/>
<path id="path1036" d="m300 405 1 1-1-1z" fill="#d4d456"/>
<path id="path1037" d="m236 406 1 1-1-1z" fill="#32327b"/>
<path id="path1038" d="m239 406 1 1-1-1z" fill="#e5e59d"/>
<path id="path1039" d="m247 406 1 1-1-1z" fill="#fef8f1"/>
<path id="path1040" d="m248 406 1 1-1-1z" fill="#fe9f11"/>
<path id="path1041" d="m274 406 1 1-1-1z" fill="#fbead6"/>
<path id="path1042" d="m284 406 1 1-1-1z" fill="#fea522"/>
<path id="path1043" d="m291 406 1 1-1-1z" fill="#fcf1e4"/>
<path id="path1044" d="m302 406 1 1-1-1z" fill="#808067"/>
<path id="path1045" d="m236 407 1 1-1-1z" fill="#0e0e6e"/>
<path id="path1046" d="m237 407 1 1-1-1z" fill="#a4a43d"/>
<path id="path1047" d="m239 407 1 1-1-1z" fill="#d9d868"/>
<path id="path1048" d="m248 407 1 1-1-1z" fill="#f8dcbb"/>
<path id="path1050" d="m283 407 1 1-1-1z" fill="#f9d6aa"/>
<path id="path1051" d="m290 407 1 1-1-1z" fill="#faca88"/>
<path id="path1052" d="m299 407 1 1-1-1z" fill="#f2f1d2"/>
<path id="path1053" d="m302 407 1 1-1-1z" fill="#58587b"/>
<path id="path1054" d="m237 408 1 1-1-1z" fill="#8d8d5b"/>
<path id="path1055" d="m249 408 1 1-1-1z" fill="#f9d6aa"/>
<path id="path1056" d="m269 408 1 1-1-1z" fill="#fdab33"/>
<path id="path1057" d="m270 408 1 1-1-1z" fill="#fff"/>
<path id="path1058" d="m271.67 408.33 0.666 0.334-0.666-0.334z" fill="#fcb144"/>
<path id="path1059" d="m282 408-1 2 1-2z" fill="#fef8f1"/>
<path id="path1060" d="m283 408 1 1-1-1z" fill="#fe9f11"/>
<path id="path1061" d="m289 408-1 2 1-2z" fill="#fdab33"/>
<path id="path1062" d="m299 408 1 1-1-1z" fill="#e5e59d"/>
<path id="path1063" d="m302 408 1 1-1-1z" fill="#3a3a7c"/>
<path id="path1064" d="m237 409 1 1-1-1z" fill="#667"/>
<path id="path1065" d="m240 409 1 1-1-1z" fill="#f2f1d2"/>
<path id="path1066" d="m250 409 1 1-1-1z" fill="#f9d6aa"/>
<path id="path1067" d="m269 409 1 1-1-1z" fill="#fe9f11"/>
<path id="path1068" d="m270 409 1 1-1-1z" fill="#faca88"/>
<path id="path1069" d="m271 409 1 1-1-1z" fill="#fea522"/>
<path id="path1070" d="m272 409 1 1-1-1z" fill="#fcf1e4"/>
<path id="path1071" d="m282 409 1 1-1-1z" fill="#fdab33"/>
<path id="path1072" d="m289 409 1 1-1-1z" fill="#fef8f1"/>
<path id="path1073" d="m299 409 1 1-1-1z" fill="#d9d868"/>
<path id="path1074" d="m301 409 1 1-1-1z" fill="#a4a43d"/>
<path id="path1075" d="m302 409 1 1-1-1z" fill="#0e0e6e"/>
<path id="path1076" d="m237 410 1 1-1-1z" fill="#3a3a7c"/>
<path id="path1077" d="m240 410 1 1-1-1z" fill="#e5e59d"/>
<path id="path1078" d="m251 410 2 2-2-2z" fill="#fae3c9"/>
<path id="path1079" d="m252 410 1 1-1-1z" fill="#fe9f11"/>
<path id="path1080" d="m271 410 1 1-1-1z" fill="#f8dcbb"/>
<path id="path1081" d="m280 410 1 1-1-1z" fill="#fcf1e4"/>
<path id="path1082" d="m281 410 1 1-1-1z" fill="#fdab33"/>
<path id="path1083" d="m287 410 1 1-1-1z" fill="#fcb144"/>
<path id="path1084" d="m288 410 1 1-1-1z" fill="#fef8f1"/>
<path id="path1085" d="m298 410 1 1-1-1z" fill="#fbfaf2"/>
<path id="path1086" d="m301 410 1 1-1-1z" fill="#8d8d5b"/>
<path id="path1087" d="m237 411 1 1-1-1z" fill="#0e0e6e"/>
<path id="path1088" d="m238 411 1 1-1-1z" fill="#a4a43d"/>
<path id="path1089" d="m240 411 1 1-1-1z" fill="#d4d456"/>
<path id="path1090" d="m270 411 1 1-1-1z" fill="#f9d6aa"/>
<path id="path1091" d="m279 411 1 1-1-1z" fill="#f9d099"/>
<path id="path1092" d="m280 411 1 1-1-1z" fill="#fe9f11"/>
<path id="path1093" d="m286 411 1 1-1-1z" fill="#faca88"/>
<path id="path1094" d="m298 411 1 1-1-1z" fill="#eeedc1"/>
<path id="path1095" d="m301 411 1 1-1-1z" fill="#58587b"/>
<path id="path1096" d="m238 412 1 1-1-1z" fill="#737370"/>
<path id="path1097" d="m241 412 1 1-1-1z" fill="#f6f6e4"/>
<path id="path1098" d="m252 412 1 1-1-1z" fill="#fbbe66"/>
<path id="path1099" d="m268 412 1 1-1-1z" fill="#fcb144"/>
<path id="path1100" d="m269.33 412.67 0.334 0.666-0.334-0.666z" fill="#f8dcbb"/>
<path id="path1102" d="m277 412 1 1-1-1z" fill="#fbbe66"/>
<path id="path1103" d="m278 412 1 1-1-1z" fill="#fe9f11"/>
<path id="path1104" d="m284 412 1 1-1-1z" fill="#fbc477"/>
<path id="path1105" d="m285 412 1 1-1-1z" fill="#fcf1e4"/>
<path id="path1106" d="m298 412 1 1-1-1z" fill="#d3d079"/>
<path id="path1107" d="m300 412 1 1-1-1z" fill="#a4a43d"/>
<path id="path1108" d="m301 412 1 1-1-1z" fill="#262678"/>
<path id="path1109" d="m238 413 1 1-1-1z" fill="#49497d"/>
<path id="path1110" d="m241 413 1 1-1-1z" fill="#e0dea1"/>
<path id="path1111" d="m251 413 1 1-1-1z" fill="#fae3c9"/>
<path id="path1112" d="m265 413 1 1-1-1z" fill="#fdab33"/>
<path id="path1113" d="m266 413 1 1-1-1z" fill="#fbc477"/>
<path id="path1114" d="m267 413 1 1-1-1z" fill="#fbead6"/>
<path id="path1115" d="m270 413 1 1-1-1z" fill="#fcb144"/>
<path id="path1116" d="m283 413 1 1-1-1z" fill="#f9d6aa"/>
<path id="path1117" d="m300 413 1 1-1-1z" fill="#99994e"/>
<path id="path1118" d="m238 414 1 1-1-1z" fill="#0e0e6e"/>
<path id="path1119" d="m239 414 1 1-1-1z" fill="#a4a43d"/>
<path id="path1120" d="m241 414 1 1-1-1z" fill="#d4d456"/>
<path id="path1122" d="m250 414 1 1-1-1z" fill="#f9d099"/>
<path id="path1123" d="m251 414 1 1-1-1m5 0 1 1-1-1z" fill="#fe9f11"/>
<path id="path1124" d="m257 414 1 1-1-1z" fill="#f9d6aa"/>
<path id="path1125" d="m258 414 1 1-1-1z" fill="#f9d099"/>
<path id="path1127" d="m262 414 1 1-1-1z" fill="#f9d6aa"/>
<path id="path1128" d="m263 414 1 1-1-1z" fill="#fae3c9"/>
<path id="path1129" d="m264 414 1 1-1-1z" fill="#fef8f1"/>
<path id="path1130" d="m272 414 1 1-1-1z" fill="#fbead6"/>
<path id="path1131" d="m273 414 1 1-1-1z" fill="#fae3c9"/>
<path id="path1132" d="m274 414 1 1-1-1z" fill="#faca88"/>
<path id="path1133" d="m275 414 1 1-1-1z" fill="#fbc477"/>
<path id="path1134" d="m276 414 1 1-1-1z" fill="#fdab33"/>
<path id="path1135" d="m281 414 1 1-1-1z" fill="#fe9f11"/>
<path id="path1136" d="m282 414 1 1-1-1z" fill="#f9d6aa"/>
<path id="path1137" d="m297 414 1 1-1-1z" fill="#e5e3af"/>
<path id="path1138" d="m300 414 1 1-1-1z" fill="#667"/>
<path id="path1139" d="m239 415 1 1-1-1z" fill="#737370"/>
<path id="path1140" d="m242 415 1 1-1-1z" fill="#f2f1d7"/>
<path id="path1141" d="m249 415 1 1-1-1z" fill="#fea522"/>
<path id="path1142" d="m254 415 1 1-1-1z" fill="#fe9f11"/>
<path id="path1143" d="m255 415 1 1-1-1z" fill="#fbbe66"/>
<path id="path1144" d="m256 415 1 1-1-1z" fill="#fcf1e4"/>
<path id="path1145" d="m280 415 1 1-1-1z" fill="#fea522"/>
<path id="path1146" d="m281 415 1 1-1-1z" fill="#fbead6"/>
<path id="path1147" d="m297 415 1 1-1-1z" fill="#dddc7a"/>
<path id="path1148" d="m299 415 1 1-1-1z" fill="#a4a43d"/>
<path id="path1149" d="m300 415 1 1-1-1z" fill="#262678"/>
<path id="path1150" d="m239 416 1 1-1-1z" fill="#49497d"/>
<path id="path1151" d="m240.33 416.67 0.334 0.666-0.334-0.666z" fill="#a4a43d"/>
<path id="path1152" d="m242 416 1 1-1-1z" fill="#d3d079"/>
<path id="path1153" d="m250 416 1 1-1-1z" fill="#f9d099"/>
<path id="path1154" d="m251 416 1 1-1-1z" fill="#fcb144"/>
<path id="path1155" d="m252 416 1 1-1-1z" fill="#faca88"/>
<path id="path1156" d="m253 416 1 1-1-1z" fill="#f8dcbb"/>
<path id="path1157" d="m254 416 1 1-1-1z" fill="#fef8f1"/>
<path id="path1158" d="m276 416 1 1-1-1z" fill="#f8dcbb"/>
<path id="path1159" d="m280 416 1 1-1-1z" fill="#fcf1e4"/>
<path id="path1160" d="m296 416 1 1-1-1z" fill="#f6f6e4"/>
<path id="path1161" d="m299 416 1 1-1-1z" fill="#8d8d5b"/>
<path id="path1162" d="m243 417 1 1-1-1z" fill="#fbfaf2"/>
<path id="path1163" d="m276 417 1 1-1-1z" fill="#fbbe66"/>
<path id="path1164" d="m279 417 1 1-1-1z" fill="#faca88"/>
<path id="path1165" d="m296 417 1 1-1-1z" fill="#e1e18c"/>
<path id="path1166" d="m299 417 1 1-1-1z" fill="#49497d"/>
<path id="path1167" d="m240 418 1 1-1-1z" fill="#58587b"/>
<path id="path1168" d="m243 418 1 1-1-1z" fill="#e5e59d"/>
<path id="path1169" d="m276 418 1 1-1-1z" fill="#fe9f11"/>
<path id="path1170" d="m278 418 1 1-1-1z" fill="#fdab33"/>
<path id="path1171" d="m295 418 1 1-1-1z" fill="#fbfaf2"/>
<path id="path1172" d="m298 418 1 1-1-1z" fill="#a4a43d"/>
<path id="path1173" d="m299 418 1 1-1-1z" fill="#0e0e6e"/>
<path id="path1174" d="m240 419 1 1-1-1z" fill="#1b1b74"/>
<path id="path1175" d="m241 419 1 1-1-1z" fill="#a4a43d"/>
<path id="path1176" d="m243 419 1 1-1-1z" fill="#d0d045"/>
<path id="path1177" d="m275 419 1 1-1-1z" fill="#fbead6"/>
<path id="path1178" d="m277 419 1 1-1-1z" fill="#fe9f11"/>
<path id="path1179" d="m278 419 1 1-1-1z" fill="#fbead6"/>
<path id="path1180" d="m295 419 1 1-1-1z" fill="#e5e59d"/>
<path id="path1181" d="m298 419 1 1-1-1z" fill="#667"/>
<path id="path1182" d="m241 420 1 1-1-1z" fill="#6e6c70"/>
<path id="path1183" d="m244 420 1 1-1-1z" fill="#e5e3af"/>
<path id="path1184" d="m275.33 420.67 0.334 0.666-0.334-0.666z" fill="#faca88"/>
<path id="path1185" d="m277 420 1 1-1-1z" fill="#fae3c9"/>
<path id="path1186" d="m294 420 1 1-1-1z" fill="#fbfaf2"/>
<path id="path1187" d="m297 420 1 1-1-1z" fill="#a4a43d"/>
<path id="path1188" d="m298 420 1 1-1-1m-57 1 1 1-1-1z" fill="#1b1b74"/>
<path id="path1189" d="m242 421 1 1-1-1z" fill="#a4a43d"/>
<path id="path1190" d="m244 421 1 1-1-1z" fill="#d0d045"/>
<path id="path1191" d="m245 421 1 1-1-1z" fill="#fbfaf2"/>
<path id="path1192" d="m276 421 1 1-1-1z" fill="#f9d6aa"/>
<path id="path1193" d="m294 421 1 1-1-1z" fill="#e5e59d"/>
<path id="path1194" d="m297 421 1 1-1-1m-55 1 1 1-1-1z" fill="#6e6c70"/>
<path id="path1195" d="m245 422 1 1-1-1z" fill="#8cbf84"/>
<path id="path1196" d="m245.43 422c3.473 7.309 15.757 24.553 25.14 24.217 9.113-0.326 19.404-17.151 23.43-24.217h-48.57z" fill="#0cf"/>
<path id="path1197" d="m296 422 1 1-1-1z" fill="#a4a43d"/>
<path id="path1198" d="m297 422 1 1-1-1m-55 1 1 1-1-1z" fill="#1b1b74"/>
<path id="path1199" d="m243 423 1 1-1-1z" fill="#a4a43d"/>
<path id="path1200" d="m245 423 1 1-1-1z" fill="#adb333"/>
<path id="path1201" d="m246 423 1 1-1-1z" fill="#1ac5b5"/>
<path id="path1202" d="m293 423 1 1-1-1z" fill="#68b070"/>
<path id="path1203" d="m296 423 1 1-1-1z" fill="#667"/>
<path id="path1204" d="m243 424 1 1-1-1z" fill="#58587b"/>
<path id="path1205" d="m246 424 1 1-1-1z" fill="#7fb15c"/>
<path id="path1206" d="m292 424 1 1-1-1z" fill="#27c2aa"/>
<path id="path1207" d="m295 424-1 2 1-2z" fill="#a4a43d"/>
<path id="path1208" d="m296 424 1 1-1-1m-53 1 1 1-1-1z" fill="#0e0e6e"/>
<path id="path1209" d="m244 425 2 2-2-2z" fill="#a4a43d"/>
<path id="path1210" d="m247 425 1 1-1-1z" fill="#34be9e"/>
<path id="path1211" d="m292 425 1 1-1-1z" fill="#96b247"/>
<path id="path1212" d="m295 425 1 1-1-1z" fill="#53527c"/>
<path id="path1213" d="m244 426 1 1-1-1z" fill="#3a3a7c"/>
<path id="path1214" d="m247 426 1 1-1-1z" fill="#a2b23d"/>
<path id="path1215" d="m248 426 1 1-1-1z" fill="#0dc9c1"/>
<path id="path1216" d="m291 426 1 1-1-1z" fill="#5bb47c"/>
<path id="path1217" d="m294 426 1 1-1-1z" fill="#8d8d5b"/>
<path id="path1218" d="m245 427 1 1-1-1z" fill="#737370"/>
<path id="path1219" d="m248 427 1 1-1-1z" fill="#74b166"/>
<path id="path1220" d="m290 427 1 1-1-1z" fill="#27c2aa"/>
<path id="path1221" d="m293 427-1 2 1-2z" fill="#a4a43d"/>
<path id="path1222" d="m294 427 1 1-1-1z" fill="#262678"/>
<path id="path1223" d="m245 428 1 1-1-1z" fill="#0e0e6e"/>
<path id="path1224" d="m246 428 2 2-2-2z" fill="#a4a43d"/>
<path id="path1225" d="m249 428 1 1-1-1z" fill="#42bb92"/>
<path id="path1226" d="m289 428 1 1-1-1z" fill="#0dc9c1"/>
<path id="path1227" d="m290 428 1 1-1-1z" fill="#96b247"/>
<path id="path1228" d="m293 428 1 1-1-1z" fill="#58587b"/>
<path id="path1229" d="m246 429 1 1-1-1z" fill="#3a3a7c"/>
<path id="path1230" d="m249 429 1 1-1-1z" fill="#adb333"/>
<path id="path1231" d="m250 429 1 1-1-1z" fill="#27c2aa"/>
<path id="path1232" d="m289 429 1 1-1-1z" fill="#74b166"/>
<path id="path1233" d="m292 429 1 1-1-1z" fill="#8d8d5b"/>
<path id="path1234" d="m247 430 1 1-1-1z" fill="#6e6c70"/>
<path id="path1235" d="m250 430 1 1-1-1z" fill="#96b247"/>
<path id="path1236" d="m251 430 1 1-1-1z" fill="#0dc9c1"/>
<path id="path1237" d="m288 430 1 1-1-1z" fill="#42bb92"/>
<path id="path1238" d="m291 430-2 3 2-3z" fill="#a4a43d"/>
<path id="path1239" d="m292 430 1 1-1-1z" fill="#1b1b74"/>
<path id="path1240" d="m247 431 1 1-1-1z" fill="#0e0e6e"/>
<path id="path1241" d="m248 431 1 1-1-1z" fill="#8d8d5b"/>
<path id="path1242" d="m251 431 1 1-1-1z" fill="#7fb15c"/>
<path id="path1243" d="m287 431 1 1-1-1z" fill="#34be9e"/>
<path id="path1244" d="m291 431 1 1-1-1z" fill="#3a3a7c"/>
<path id="path1245" d="m248 432 1 1-1-1z" fill="#1b1b74"/>
<path id="path1246" d="m249 432 11 11-11-11z" fill="#a4a43d"/>
<path id="path1247" d="m252 432 1 1-1-1z" fill="#74b166"/>
<path id="path1248" d="m286 432 1 1-1-1z" fill="#27c2aa"/>
<path id="path1249" d="m287 432 1 1-1-1z" fill="#adb333"/>
<path id="path1250" d="m290 432 1 1-1-1z" fill="#667"/>
<path id="path1251" d="m249 433 1 1-1-1z" fill="#32327b"/>
<path id="path1252" d="m253 433 1 1-1-1z" fill="#42bb92"/>
<path id="path1253" d="m285 433-4 5 4-5z" fill="#0dc9c1"/>
<path id="path1254" d="m286 433 1 1-1-1z" fill="#adb333"/>
<path id="path1255" d="m289 433 1 1-1-1z" fill="#737370"/>
<path id="path1256" d="m250 434 1 1-1-1z" fill="#49497d"/>
<path id="path1257" d="m254 434 1 1-1-1z" fill="#42bb92"/>
<path id="path1258" d="m285 434 1 1-1-1z" fill="#96b247"/>
<path id="path1259" d="m288 434-1 2 1-2z" fill="#8d8d5b"/>
<path id="path1260" d="m289 434 1 1-1-1z" fill="#0e0e6e"/>
<path id="path1261" d="m251 435 1 1-1-1z" fill="#53527c"/>
<path id="path1262" d="m255 435 1 1-1-1z" fill="#42bb92"/>
<path id="path1263" d="m284 435 1 1-1-1z" fill="#96b247"/>
<path id="path1264" d="m288 435 1 1-1-1z" fill="#0e0e6e"/>
<path id="path1265" d="m252 436 1 1-1-1z" fill="#6e6c70"/>
<path id="path1266" d="m256 436 1 1-1-1z" fill="#42bb92"/>
<path id="path1267" d="m283 436 1 1-1-1z" fill="#96b247"/>
<path id="path1268" d="m286 436-2 3 2-3z" fill="#a4a43d"/>
<path id="path1269" d="m287 436 1 1-1-1z" fill="#262678"/>
<path id="path1270" d="m253 437 1 1-1-1z" fill="#6e6c70"/>
<path id="path1271" d="m257 437 1 1-1-1z" fill="#42bb92"/>
<path id="path1272" d="m282 437 1 1-1-1z" fill="#96b247"/>
<path id="path1273" d="m286 437 1 1-1-1z" fill="#262678"/>
<path id="path1274" d="m254 438 1 1-1-1z" fill="#6e6c70"/>
<path id="path1275" d="m258 438 1 1-1-1z" fill="#68b070"/>
<path id="path1276" d="m280 438 1 1-1-1z" fill="#27c2aa"/>
<path id="path1277" d="m281 438 1 1-1-1z" fill="#adb333"/>
<path id="path1278" d="m285 438 1 1-1-1z" fill="#262678"/>
<path id="path1279" d="m255 439 1 1-1-1z" fill="#667"/>
<path id="path1280" d="m259 439 1 1-1-1z" fill="#74b166"/>
<path id="path1281" d="m279 439 1 1-1-1z" fill="#34be9e"/>
<path id="path1282" d="m280 439 1 1-1-1z" fill="#adb333"/>
<path id="path1283" d="m283 439-1 2 1-2z" fill="#8d8d5b"/>
<path id="path1284" d="m284 439 1 1-1-1z" fill="#262678"/>
<path id="path1285" d="m256 440 1 1-1-1z" fill="#49497d"/>
<path id="path1286" d="m260 440 1 1-1-1z" fill="#96b247"/>
<path id="path1287" d="m261 440 1 1-1-1z" fill="#0dc9c1"/>
<path id="path1288" d="m278 440 1 1-1-1z" fill="#42bb92"/>
<path id="path1289" d="m283 440 1 1-1-1z" fill="#0e0e6e"/>
<path id="path1290" d="m257 441 1 1-1-1z" fill="#49497d"/>
<path id="path1291" d="m261 441 1 1-1-1z" fill="#a2b23d"/>
<path id="path1292" d="m262 441 1 1-1-1z" fill="#27c2aa"/>
<path id="path1293" d="m277 441 1 1-1-1z" fill="#74b166"/>
<path id="path1294" d="m280 441-3 4 3-4z" fill="#a4a43d"/>
<path id="path1295" d="m281 441 1 1-1-1z" fill="#808067"/>
<path id="path1296" d="m282 441 1 1-1-1z" fill="#0e0e6e"/>
<path id="path1297" d="m258 442 1 1-1-1z" fill="#262678"/>
<path id="path1298" d="m262 442 1 1-1-1z" fill="#adb333"/>
<path id="path1299" d="m263 442 1 1-1-1z" fill="#42bb92"/>
<path id="path1300" d="m275 442 1 1-1-1z" fill="#0dc9c1"/>
<path id="path1301" d="m276 442 1 1-1-1z" fill="#96b247"/>
<path id="path1302" d="m280 442 1 1-1-1z" fill="#6e6c70"/>
<path id="path1303" d="m259 443 1 1-1-1z" fill="#1b1b74"/>
<path id="path1304" d="m260 443 1 1-1-1z" fill="#8d8d5b"/>
<path id="path1305" d="m264 443 1 1-1-1z" fill="#74b166"/>
<path id="path1306" d="m265 443 1 1-1-1z" fill="#0dc9c1"/>
<path id="path1307" d="m274 443 1 1-1-1z" fill="#34be9e"/>
<path id="path1308" d="m275 443 1 1-1-1z" fill="#adb333"/>
<path id="path1309" d="m279 443 1 1-1-1z" fill="#49497d"/>
<path id="path1310" d="m260 444 1 1-1-1z" fill="#0e0e6e"/>
<path id="path1311" d="m261 444 1 1-1-1z" fill="#6e6c70"/>
<path id="path1312" d="m262 444 2 2-2-2z" fill="#a4a43d"/>
<path id="path1313" d="m265 444 1 1-1-1z" fill="#96b247"/>
<path id="path1314" d="m266 444 1 1-1-1z" fill="#27c2aa"/>
<path id="path1315" d="m273 444 1 1-1-1z" fill="#68b070"/>
<path id="path1316" d="m278 444 1 1-1-1z" fill="#32327b"/>
<path id="path1317" d="m262 445 1 1-1-1z" fill="#49497d"/>
<path id="path1318" d="m267 445 1 1-1-1z" fill="#5bb47c"/>
<path id="path1319" d="m271 445 1 1-1-1z" fill="#27c2aa"/>
<path id="path1320" d="m272 445 1 1-1-1z" fill="#96b247"/>
<path id="path1321" d="m275 445-1 2 1-2z" fill="#a4a43d"/>
<path id="path1322" d="m276 445 1 1-1-1z" fill="#808067"/>
<path id="path1323" d="m277 445 1 1-1-1z" fill="#0e0e6e"/>
<path id="path1324" d="m263 446 1 1-1-1z" fill="#262678"/>
<path id="path1325" d="m264 446 1 1-1-1z" fill="#8d8d5b"/>
<path id="path1326" d="m268 446 1 1-1-1z" fill="#8bb252"/>
<path id="path1327" d="m269 446 1 1-1-1z" fill="#1ac5b5"/>
<path id="path1328" d="m270 446 1 1-1-1z" fill="#5bb47c"/>
<path id="path1329" d="m275 446 1 1-1-1z" fill="#58587b"/>
<path id="path1330" d="m264 447 1 1-1-1z" fill="#0e0e6e"/>
<path id="path1331" d="m265 447 1 1-1-1z" fill="#667"/>
<path id="path1332" d="m266 447 1 1-1-1z" fill="#a4a43d"/>
<path id="path1333" d="m273 447 1 1-1-1z" fill="#99994e"/>
<path id="path1334" d="m274 447 1 1-1-1m-8 1 1 1-1-1z" fill="#32327b"/>
<path id="path1335" d="m267 448 1 1-1-1z" fill="#99994e"/>
<path id="path1336" d="m271 448 1 1-1-1z" fill="#a4a43d"/>
<path id="path1337" d="m272 448 1 1-1-1z" fill="#667"/>
<path id="path1338" d="m273 448 1 1-1-1m-6 1 1 1-1-1z" fill="#0e0e6e"/>
<path id="path1339" d="m268 449 1 1-1-1z" fill="#667"/>
<path id="path1340" d="m269 449 1 1-1-1z" fill="#a4a43d"/>
<path id="path1341" d="m270 449 1 1-1-1z" fill="#99994e"/>
<path id="path1342" d="m271 449 1 1-1-1z" fill="#32327b"/>
<path id="path1343" d="m269 450 1 1-1-1z" fill="#262678"/>
<path id="path1344" d="m270 450 1 1-1-1z" fill="#0e0e6e"/>
<g id="g1349" transform="translate(0,296)">
<path id="path782" d="m271 87c1.543 3.6293 6.49 7.637 7.85 9.6011-1.731 1.964-2.077 1.7501-1.85 5.3989 3.01-3.1493 3.064-3.4776 5-3 4.241 4.232 0.759 13.321-2.746 15.297-3.504 2.108-2.868-0.073-8.12 2.569 2.408 2.059 5.198-0.302 7.478 0.329 1.239 1.47-0.589 4.149 0.374 6.672 2.015-0.194 1.773-4.262 2.242-5.737 1.472-5.404 10.322-9.173 10.772-14.13 1.866-0.876 3.731-0.274 6 1-1.13-4.644-4.868-4.594-5.87-6.0444-2.385-3.6446-4.499-7.8024-9.593-8.881-3.867-0.8188-3.578 0.2463-6.056-1.444-1.54-1.202-6.23-3.474-5.48-1.631z" fill="#f90"/>
<path id="path1348" d="m267.04 122.1c0 0.44513-0.36084 0.80597-0.80597 0.80597-0.44512 0-0.80597-0.36084-0.80597-0.80597 0-0.44512 0.36085-0.80597 0.80597-0.80597 0.44513 0 0.80597 0.36085 0.80597 0.80597z" fill-rule="evenodd" transform="translate(15.078 -30.977)" fill="#fff"/>
</g>
<g id="g1352" transform="matrix(-.46716 -.88417 .88417 -.46716 308.31 678.65)">
<path id="path1353" d="m271 87c1.543 3.6293 6.49 7.637 7.85 9.6011-1.731 1.964-2.077 1.7501-1.85 5.3989 3.01-3.1493 3.064-3.4776 5-3 4.241 4.232 0.759 13.321-2.746 15.297-3.504 2.108-2.868-0.073-8.12 2.569 2.408 2.059 5.198-0.302 7.478 0.329 1.239 1.47-0.589 4.149 0.374 6.672 2.015-0.194 1.773-4.262 2.242-5.737 1.472-5.404 10.322-9.173 10.772-14.13 1.866-0.876 3.731-0.274 6 1-1.13-4.644-4.868-4.594-5.87-6.0444-2.385-3.6446-4.499-7.8024-9.593-8.881-3.867-0.8188-3.578 0.2463-6.056-1.444-1.54-1.202-6.23-3.474-5.48-1.631z" fill="#f90"/>
<path id="path1354" d="m267.04 122.1c0 0.44513-0.36084 0.80597-0.80597 0.80597-0.44512 0-0.80597-0.36084-0.80597-0.80597 0-0.44512 0.36085-0.80597 0.80597-0.80597 0.44513 0 0.80597 0.36085 0.80597 0.80597z" fill-rule="evenodd" transform="translate(15.078 -30.977)" fill="#fff"/>
</g>
<g id="g1355" transform="matrix(-.51504 .85717 -.85717 -.51504 493 213.06)">
<path id="path1356" d="m271 87c1.543 3.6293 6.49 7.637 7.85 9.6011-1.731 1.964-2.077 1.7501-1.85 5.3989 3.01-3.1493 3.064-3.4776 5-3 4.241 4.232 0.759 13.321-2.746 15.297-3.504 2.108-2.868-0.073-8.12 2.569 2.408 2.059 5.198-0.302 7.478 0.329 1.239 1.47-0.589 4.149 0.374 6.672 2.015-0.194 1.773-4.262 2.242-5.737 1.472-5.404 10.322-9.173 10.772-14.13 1.866-0.876 3.731-0.274 6 1-1.13-4.644-4.868-4.594-5.87-6.0444-2.385-3.6446-4.499-7.8024-9.593-8.881-3.867-0.8188-3.578 0.2463-6.056-1.444-1.54-1.202-6.23-3.474-5.48-1.631z" fill="#f90"/>
<path id="path1357" d="m267.04 122.1c0 0.44513-0.36084 0.80597-0.80597 0.80597-0.44512 0-0.80597-0.36084-0.80597-0.80597 0-0.44512 0.36085-0.80597 0.80597-0.80597 0.44513 0 0.80597 0.36085 0.80597 0.80597z" fill-rule="evenodd" transform="translate(15.078 -30.977)" fill="#fff"/>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 51 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 6.6 KiB

View file

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg id="svg2" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="480" width="640" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" viewBox="0 0 0.5160635 3.096381">
<metadata id="metadata14">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
</cc:Work>
</rdf:RDF>
</metadata>
<g id="flag" transform="matrix(1.3333 0 0 1 -.086011 0)">
<path id="path4" fill="#f00" d="m-1.2902 0h3.0964v1.0321h-3.0964z"/>
<path id="path6" fill="#00f" d="m-1.2902 1.0321h3.0964v1.0321h-3.0964z"/>
<path id="path8" fill="#ffa500" d="m-1.2902 2.0643h3.0964v1.0321h-3.0964z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 834 B

View file

@ -1,39 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
<svg id="svg820" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="480" width="640" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata id="metadata3028">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
</cc:Work>
</rdf:RDF>
</metadata>
<g id="flag">
<g id="g3332" fill-rule="evenodd" stroke-width="1pt" transform="matrix(.86011 0 0 .95321 0 -15.191)">
<rect id="rect918" height="255.53" width="744.09" y="15.937" x="0" fill="#f00"/>
<rect id="rect919" height="255.53" width="744.09" y="263.97" x="0"/>
</g>
<g id="g3311" transform="translate(-113.16 4.8627)">
<path id="path824" d="m341.83-135.75c165.22 43.304 58.989 255.64-71.216 167.26-2.939 4.5148-5.877 9.0297-8.817 13.545 76.628 54.658 152.57 10.66 173.9-46.358 22.297-58.788-7.521-141.48-92.511-150.03-0.451 5.192-0.904 10.384-1.355 15.576z" fill-rule="evenodd" transform="translate(0 279.06)" stroke-width="1pt" fill="#ffec00"/>
<rect id="rect825" fill-rule="evenodd" transform="matrix(.90642 .42239 -.42345 .90592 0 279.06)" height="23.949" width="23.972" y="-77.07" x="276.34" stroke-width="1pt" fill="#ffec00"/>
<rect id="rect826" fill-rule="evenodd" transform="translate(0 279.06)" height="23.942" width="23.979" y="-52.576" x="432.1" stroke-width="1pt" fill="#ffec00"/>
<rect id="rect827" fill-rule="evenodd" transform="matrix(.93193 -.36263 .36360 .93156 0 279.06)" height="23.947" width="23.974" y="67.214" x="424.9" stroke-width="1pt" fill="#ffec00"/>
<rect id="rect828" fill-rule="evenodd" transform="matrix(.71094 -.70325 .70434 .70986 0 279.06)" height="23.961" width="23.961" y="191.67" x="365.04" stroke-width="1pt" fill="#ffec00"/>
<rect id="rect829" fill-rule="evenodd" transform="matrix(.93575 .35267 -.35362 .93539 0 279.06)" height="23.947" width="23.974" y="-280" x="287.71" stroke-width="1pt" fill="#ffec00"/>
<rect id="rect830" fill-rule="evenodd" transform="matrix(.92874 .37073 -.37172 .92835 0 279.06)" height="23.947" width="23.974" y="-172.06" x="393.33" stroke-width="1pt" fill="#ffec00"/>
<rect id="rect831" fill-rule="evenodd" transform="matrix(.92012 -.39163 .39265 .91969 0 279.06)" height="23.948" width="23.973" y="192.4" x="308.48" stroke-width="1pt" fill="#ffec00"/>
<rect id="rect832" fill-rule="evenodd" transform="translate(0 279.06)" height="23.942" width="23.979" y="58.906" x="319.88" stroke-width="1pt" fill="#ffec00"/>
<path id="path739" d="m361.17-57.03-20.351-15.006-20.244 14.469 8.034-22.918-20.347-14.957 24.447-0.171 8.568-22.551 7.782 22.703 24.702-0.2416-19.587 15.232 6.996 23.441z" fill-rule="evenodd" transform="translate(0 279.06)" stroke-width="1pt" fill="#ffec00"/>
<path id="path878" d="m449.19 62.453c-1.211 0.4184-6.229 12.389-9.675 18.248 1.797 0.5092 2.559 0.5965 3.625 1.0254 13.655 4.8007 20.384 9.1807 26.186 17.505 2.888 2.7911 7.032 2.9311 10.198 0.6972 0 0 2.795-1.1156 6.429-5.0223 2.969-4.5195 2.195-8.1095-1.383-11.16-10.944-7.9507-22.9-13.901-35.38-21.294z" fill-rule="evenodd" transform="translate(0 279.06)" stroke-width="1pt" fill="#fe0"/>
<path id="path879" d="m199.62 154.99c0 1.0448-0.847 1.8918-1.8918 1.8918s-1.8918-0.847-1.8918-1.8918 0.847-1.8918 1.8918-1.8918 1.8918 0.847 1.8918 1.8918z" fill-rule="evenodd" transform="matrix(2.2895 0 0 2.286 21.377 13.672)" stroke-width="1pt"/>
<path id="path880" d="m199.62 154.99c0 1.0448-0.847 1.8918-1.8918 1.8918s-1.8918-0.847-1.8918-1.8918 0.847-1.8918 1.8918-1.8918 1.8918 0.847 1.8918 1.8918z" fill-rule="evenodd" transform="scale(2.2895 2.286)" stroke-width="1pt"/>
<path id="path881" d="m199.62 154.99c0 1.0448-0.847 1.8918-1.8918 1.8918s-1.8918-0.847-1.8918-1.8918 0.847-1.8918 1.8918-1.8918 1.8918 0.847 1.8918 1.8918z" fill-rule="evenodd" transform="matrix(2.2895 0 0 2.286 10.898 6.9754)" stroke-width="1pt"/>
<path id="path882" d="m437.63 79.744c-42.57-24.273-87.31-50.521-129.88-74.796-18.751-11.636-19.683-33.385-7.17-49.876 1.302-2.3363 2.836-1.7579 3.514-0.5234 1.463 8.0284 5.969 16.324 11.37 21.495 44.693 28.383 87.732 55.804 131.71 85.613-3.448 5.7676-6.104 12.322-9.55 18.087z" fill-rule="evenodd" transform="translate(0 279.06)" stroke-width="1pt" fill="#fe0"/>
<rect id="rect892" fill-rule="evenodd" transform="matrix(.74495 .66712 -.66826 .74393 0 279.06)" height="23.959" width="23.963" y="-257.7" x="319.65" stroke-width="1pt" fill="#ffec00"/>
<path id="path893" d="m444.7 64.898-124.96-75.522" transform="translate(0 279.06)" stroke="#000" stroke-width="2.2878pt" fill="none"/>
<path id="path894" d="m429.27 47.47-42.24-27.279" transform="translate(0 279.06)" stroke="#000" stroke-width="2.2878pt" fill="none"/>
<path id="path895" d="m405.24 62.878-42.75-24.756" transform="translate(0 279.06)" stroke="#000" stroke-width="2.2878pt" fill="none"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5 KiB

View file

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
<svg id="svg562" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" height="480" width="640" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata id="metadata3039">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
</cc:Work>
</rdf:RDF>
</metadata>
<g id="flag">
<rect id="rect561" fill-rule="evenodd" height="512" width="682.67" y="0" x="-85.333" stroke-width="1pt" fill="#3a7dce"/>
<path id="selection_to_path" d="m111.82 240.35c-3.0793-6.2986-3.0793-6.2986-3.0793-12.596-1.54 0-1.8288 0.29598-2.7192 0.0482-0.89045-0.24548-1.227 5.8076-4.1149 4.626-0.48093-0.59039 2.0696-4.9686-0.69746-6.7887-0.89045-0.59273 0.21653-4.184-0.16867-5.7587 0 0-3.5124 1.8691-6.1594-4.7231-1.3-1.723-3.0801 1.5739-3.0801 1.5739s0.76964 2.0174-0.62529 2.51c-1.9731-1.4768-3.4174-0.70226-5.9193-2.7314-2.5027-2.0299 0.52955-4.3542-4.2349-6.0764 3.0801-7.8724 3.0801-6.2986 10.78-9.4471-4.6202-3.1493-4.6202-3.1493-7.6995-7.8732-4.6201-1.5746-6.1602-3.1485-10.78-6.2978-6.1594-7.8732-9.2395-23.618-9.2395-34.64 3.8984-3.6907 9.2395 12.596 16.94 17.319l10.78 4.7239c6.1594 3.1493 7.6995 6.2978 12.32 9.4471l13.86 4.7239c6.1594 4.7231 9.2395 11.022 13.86 12.596 5.0046 0 5.9687-2.9473 7.5734-3.1306 9.0534-0.47465 13.674-1.6671 15.478-4.4474 1.828-2.214 6.2073 1.2794 18.527-3.4437 0 0-1.5393-6.2986-1.5393-6.2986s3.2723-2.7554 7.6995-1.5746c-0.12004-2.8782-0.40951-10.554 3.9516-14.017-2.6486-2.8409-0.87145-4.877-0.87145-4.877s2.4548-2.4113 2.7428-3.6907c-1.2984-6.9379 1.1267-7.0451 1.6707-9.0866 0.54323-2.0407-2.0947-1.3416-1.3509-4.1553 0.74229-2.8145 5.2036-3.4825 5.8008-5.8006 0.59945-2.3181-1.2718-3.481-1.164-4.0341 0.96263-2.214 0.14512-7.43 0-9.4474 8.2777-2.2635 10.973-9.152 13.86-6.2982 1.54-9.4473 3.0801-12.596 12.32-12.596 1.3-2.9029-3.3696-5.3633-1.54-6.2982 3.0801-0.39362 5.4376-0.19677 9.0488 4.5762 1.1396 1.5125 1.3463-2.2143 2.5012-2.608 1.1548-0.39362 3.9189-0.39975 4.3299-2.2634 0.43459-1.9191 1.0599-4.4284 2.5999-7.5775 1.2992-2.5587 2.3097 0.98409 3.4645 6.0029 6.4975 0.24595 21.175 1.7222 27.334 3.4443 4.6201 1.2302 7.7002-1.2302 12.127-1.7222 3.2723 3.3459 6.3524 0.83657 8.0847 7.9712 2.4457 3.8498 6.4481 0.34453 7.315 1.4761 5.1497 14.515 22.859 4.7236 24.206 4.9697 2.2611 0 5.0236 6.4901 6.8037 6.3289 2.8932-0.49819 2.0742-2.5155 4.6011-1.7036-0.67467 5.4616 4.9575 11.76 4.9575 15.844 0 0 1.3706 0.68905 2.641-0.52281 1.2688-1.2111 2.4358-4.3235 3.5664-4.2498 2.6949 0.39369 3.7867 0.74747 6.8926 1.3025 8.3498 2.917 12.603 3.575 15.846 5.0696 1.5089 2.823 2.9707 4.2687 6.0288 3.7412 2.527 1.7354 0.68379 4.0084 2.176 4.156 3.0801-1.5746 4.0906-3.2969 7.1699-1.7222 3.0801 1.5746 6.1602 4.7239 7.7002 7.8732 0 1.5739-1.54 7.8724 0 17.319 0.76964 3.1493 1.1427 5.646 4.4515 11.047-0.87905 5.5481 4.1628 14.884 4.1628 17.246 0 3.1485-2.4548 4.7729-3.9948 7.9214 6.1602 4.7239 0 12.596-3.0793 17.32 23.099 4.7239 12.32 14.171 30.799 9.4471-4.6202 11.022-2.9844 10.137 1.6358 21.159-9.2403 6.2986-0.19147 8.2166-6.3509 16.089-0.38521 0.49251 3.656 6.84 9.3352 6.84-1.54 12.596-6.1602 7.8724-4.6201 26.767-12.127-0.24548-7.2193 14.122-15.4 12.596 0.48093 9.0043 4.668 9.792 3.0801 18.894-6.1594 1.5746-6.1594 1.5746-9.2395 6.2986l-4.6202-1.5746c-1.54 7.8724-4.6194 9.4471 0 17.32 0 0-5.9672 0.19654-7.6995 0-0.14511 2.7065 2.647 3.4445 3.0801 6.2978-0.24084 1.1318-8.7593 6.1012-15.4 6.2986-1.7323 3.8873 4.6194 8.0208 4.2349 9.9885-7.2193 1.4263-10.395 10.48-10.395 10.48s3.7054 1.5257 3.0801 3.1493c-1.9724-1.4768-3.0801-1.5746-6.1594-1.5746-1.54 0.39385-5.2933-0.0963-8.8923 6.1137-3.95 1.3323-5.8145 0.85064-8.811 4.9018-1.3266-3.8593-3.2343 0.0365-5.5676 1.5335-2.331 1.4993-5.4711 5.2258-5.8927 5.0673 0.0965-1.0837 1.4443-5.0199 1.4443-5.0199l-7.7002 1.5746s-0.3434 0.0342-0.94818 0.0971c-0.60554 0.0614-0.44371-4.5957-1.9032-4.4272-1.4588 0.17012-5.6337 5.8573-7.0567 6.0352-1.4208 0.1779-1.8706-1.8092-3.0953-1.636-1.224 0.17324-3.6112 5.9987-4.4781 6.1533-0.86689 0.1546-4.3056-3.5408-7.2527-3.025-15.16 5.4627-17.567-10.775-19.924-1.6228-3.1758-1.723-2.6258-0.72323-5.8532 0.14139-2.059 0.543-2.2466-2.7834-4.0777-2.7321-3.6636 0.10565-3.4714 3.6488-5.4688 2.5907-1.635-7.3815-11.502-6.0531-12.464-9.2016-0.78255-3.2844 4.2744-3.2689 5.9102-5.4938 1.2506-3.2106-1.306-4.4295 3.7684-7.5267 6.6138-4.574 2.8119-6.2993 3.9713-9.7368 2.0742-4.9632 2.0863-6.175 0.35405-10.554 0 0-5.1497-14.171-6.1602-14.171-3.0793-0.88482-3.0793 5.2149-7.6037 6.889-9.2395 3.1485-25.552-7.9718-28.392-7.9718-2.5976 0.0498-14.632 2.9139-14.178-3.2215-1.7991 5.9653-8.4159 1.4014-8.8239 1.4014-6.1602 0-3.8026 4.8715-7.9418 4.6742-1.8774-0.63933-20.837-1.7712-20.837-1.7712v3.1493l-12.32-6.2986-10.78-3.1485c-9.2395-3.1493-4.6194-11.022-20.019-6.2986v-9.4471h-7.6995c3.0793-18.895 0-9.4471-1.54-26.767l-6.1602 1.5746c-6.1594-8.5125 8.5656-6.889-4.6194-12.596 0 0 0.24009-9.3989-3.0801-6.2986-0.67392 0.39386 1.54 4.7239 1.54 4.7239-12.32-1.5746-15.4-4.7239-15.4-17.32 0 0 10.154 1.4768 9.2395 0-1.4436-2.3616-3.3202-17.713-2.9836-18.747-0.14435-2.0671 9.4325-7.282 7.5794-12.253 1.1792-0.4428 4.6437-0.49096 4.6437-0.49096" fill="#fff"/>
<path id="path556" stroke-linejoin="round" d="m527.55 303.26c-0.49256 1.1082-0.4052 2.2148 0.104 3.0052 0.91438-1.3712 0.14227-2.0035-0.104-3.0052z" stroke="#fff" stroke-linecap="round" stroke-width="1.6864pt" fill="none"/>
<path id="path557" stroke-linejoin="round" d="m131.51 178.94s-2.5826-0.31617-2.0027 1.9502c0.84367-1.7398 1.9502-1.8446 2.0027-1.9502z" stroke="#fff" stroke-width="2.108" fill="none"/>
<path id="path558" stroke-linejoin="round" d="m132.09 173.67c-1.4228 0.0532-3.1625-0.2105-2.5826 2.0551 0.84367-1.7389 2.5302-1.9494 2.5826-2.0551z" stroke="#fff" stroke-width="2.108" fill="none"/>
<path id="path559" stroke-linejoin="round" d="m141.81 203.87s2.214-0.15808 1.6341 2.1083c-0.84367-1.7398-1.5808-2.0027-1.6341-2.1083z" stroke="#fff" stroke-width="2.108" fill="none"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 6.1 KiB

Some files were not shown because too many files have changed in this diff Show more