Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
sarah.grebing
ProofScriptParser
Commits
e141acf7
Commit
e141acf7
authored
May 01, 2018
by
LULUDBR\Lulu
Browse files
Merge remote-tracking branch 'origin/master'
parents
7c42f49c
298ba538
Changes
65
Hide whitespace changes
Inline
Side-by-side
ui/src/main/resources/edu/kit/iti/formal/psdbg/examples/java/quicksort/proof-settings.props
0 → 100644
View file @
e141acf7
#Proof-Settings-Config-File
#Mon Feb 05 16:31:07 CET 2018
[StrategyProperty]OSS_OPTIONS_KEY=OSS_ON
[StrategyProperty]VBT_PHASE=VBT_SYM_EX
[SMTSettings]useUninterpretedMultiplication=true
[SMTSettings]SelectedTaclets=
[StrategyProperty]METHOD_OPTIONS_KEY=METHOD_CONTRACT
[StrategyProperty]USER_TACLETS_OPTIONS_KEY3=USER_TACLETS_OFF
[StrategyProperty]SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY=SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER
[StrategyProperty]LOOP_OPTIONS_KEY=LOOP_INVARIANT
[StrategyProperty]USER_TACLETS_OPTIONS_KEY2=USER_TACLETS_OFF
[StrategyProperty]USER_TACLETS_OPTIONS_KEY1=USER_TACLETS_OFF
[StrategyProperty]QUANTIFIERS_OPTIONS_KEY=QUANTIFIERS_NON_SPLITTING_WITH_PROGS
[StrategyProperty]NON_LIN_ARITH_OPTIONS_KEY=NON_LIN_ARITH_NONE
[SMTSettings]instantiateHierarchyAssumptions=true
[StrategyProperty]AUTO_INDUCTION_OPTIONS_KEY=AUTO_INDUCTION_OFF
[StrategyProperty]DEP_OPTIONS_KEY=DEP_ON
[StrategyProperty]BLOCK_OPTIONS_KEY=BLOCK_CONTRACT
[StrategyProperty]CLASS_AXIOM_OPTIONS_KEY=CLASS_AXIOM_FREE
[StrategyProperty]SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY=SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF
[StrategyProperty]QUERY_NEW_OPTIONS_KEY=QUERY_OFF
[Strategy]Timeout=-1
[Strategy]MaximumNumberOfAutomaticApplications=10000
[SMTSettings]integersMaximum=2147483645
[Choice]DefaultChoices=assertions-assertions\:safe , initialisation-initialisation\:disableStaticInitialisation , intRules-intRules\:arithmeticSemanticsIgnoringOF , programRules-programRules\:Java , runtimeExceptions-runtimeExceptions\:allow , JavaCard-JavaCard\:off , Strings-Strings\:on , modelFields-modelFields\:treatAsAxiom , bigint-bigint\:on , sequences-sequences\:on , moreSeqRules-moreSeqRules\:on , reach-reach\:on , integerSimplificationRules-integerSimplificationRules\:full , permissions-permissions\:off , wdOperator-wdOperator\:L , wdChecks-wdChecks\:off , mergeGenerateIsWeakeningGoal-mergeGenerateIsWeakeningGoal\:off
[SMTSettings]useConstantsForBigOrSmallIntegers=true
[StrategyProperty]STOPMODE_OPTIONS_KEY=STOPMODE_DEFAULT
[StrategyProperty]QUERYAXIOM_OPTIONS_KEY=QUERYAXIOM_ON
[StrategyProperty]INF_FLOW_CHECK_PROPERTY=INF_FLOW_CHECK_FALSE
[SMTSettings]maxGenericSorts=2
[SMTSettings]integersMinimum=-2147483645
[SMTSettings]invariantForall=false
[SMTSettings]UseBuiltUniqueness=false
[SMTSettings]explicitTypeHierarchy=false
[Strategy]ActiveStrategy=JavaCardDLStrategy
[StrategyProperty]SPLITTING_OPTIONS_KEY=SPLITTING_DELAYED
[StrategyProperty]MPS_OPTIONS_KEY=MPS_MERGE
ui/src/main/resources/edu/kit/iti/formal/psdbg/examples/java/quicksort/script.kps
View file @
e141acf7
...
@@ -10,12 +10,14 @@ script split_from_quicksort() {
...
@@ -10,12 +10,14 @@ script split_from_quicksort() {
}
}
cases{
cases{
case match `==> seqDef(_,_,_) = seqDef(_, _, _)`:
case match `? ==> seqDef{?;}(?,?,?) = seqDef{?;}(?, ?, ?)`:
__KEY_MAX_STEPS:=10000;
auto;
auto;
case match `==> (\exists ?X (\exists ?Y
_
))`:
case match `
?
==> (\exists ?X
:int;
(\exists ?Y
:int; ?
))`:
instantiate var=X with=`i_0`;
instantiate var=X with=`i_0`;
instantiate var=Y with=`j_0`;
instantiate var=Y with=`j_0`;
__KEY_MAX_STEPS:=60000;
auto;
auto;
}
}
}
}
...
...
ui/src/main/resources/edu/kit/iti/formal/psdbg/gui/debugger-ui.less
View file @
e141acf7
@base03: rgb(0, 43, 54);
@base03: rgb(0, 43, 54);
@base02: rgb(7, 54, 66);
@base02: rgb(7, 54, 66);
@base01: rgb(88, 110, 117);
@base01: #000000;
//@base01: rgb(88, 110, 117);
@base00: rgb(101, 123, 131);
@base00: rgb(101, 123, 131);
@base0: rgb(131, 148, 150);
@base0: rgb(131, 148, 150);
@base1: rgb(147, 161, 161);
@base1: rgb(147, 161, 161);
...
@@ -15,9 +17,11 @@
...
@@ -15,9 +17,11 @@
@cyan: rgb(42, 161, 152);
@cyan: rgb(42, 161, 152);
@green: rgb(38, 187, 108);
@green: rgb(38, 187, 108);
@basenavy: #f6f8ff;
@basenavy: #f6f8ff;
//screenshot @basenavy: #ffffff;
@keywordColor: #200080;
@keywordColor: #200080;
@stringliteralColor: #6679aa;
@stringliteralColor: #6679aa;
@integerLiteralColor: #008c00;
@integerLiteralColor: #008c00;
@screenShotMarkerBase: #97ffc6;
.solarized-dark() {
.solarized-dark() {
background-color: @base03;
background-color: @base03;
...
@@ -35,7 +39,7 @@
...
@@ -35,7 +39,7 @@
-fx-font-family: "Inconsolata", monospace;
-fx-font-family: "Inconsolata", monospace;
//-fx-font-family: "Fira Code Medium", monospace;
//-fx-font-family: "Fira Code Medium", monospace;
-fx-font-size: 12pt;
-fx-font-size: 12pt;
//-fx-font-size:
18
pt;
//
-fx-font-size:
20
pt;
-fx-fill: @base00;
-fx-fill: @base00;
.lineno {
.lineno {
...
@@ -112,7 +116,9 @@
...
@@ -112,7 +116,9 @@
}
}
.line-highlight-postmortem {
.line-highlight-postmortem {
-rtfx-background-color: @cyan;
// -rtfx-background-color: @cyan;
-rtfx-background-color: @screenShotMarkerBase;
}
}
.line-unhighlight {
.line-unhighlight {
...
@@ -120,7 +126,8 @@
...
@@ -120,7 +126,8 @@
}
}
.line-highlight-mainScript {
.line-highlight-mainScript {
-rtfx-background-color: @green;
// -rtfx-background-color: @green;
-rtfx-background-color: @screenShotMarkerBase;
}
}
}
}
...
@@ -139,7 +146,7 @@
...
@@ -139,7 +146,7 @@
// -fx-background-color: @base3;
// -fx-background-color: @base3;
-fx-font-family: "Inconsolata", monospace;
-fx-font-family: "Inconsolata", monospace;
-fx-font-size: 12pt;
-fx-font-size: 12pt;
//-fx-font-size:
18
pt;
//-fx-font-size:
20
pt;
-fx-fill: @base01;
-fx-fill: @base01;
.ABSTRACT, .ASSERT, .BOOLEAN, .BREAK, .BYTE, .CASE, .CATCH, .CHAR, .CLASS, .CONST,
.ABSTRACT, .ASSERT, .BOOLEAN, .BREAK, .BYTE, .CASE, .CATCH, .CHAR, .CLASS, .CONST,
...
@@ -192,7 +199,9 @@
...
@@ -192,7 +199,9 @@
-fx-underline: true;
-fx-underline: true;
}
}
.line-highlight {
.line-highlight {
-rtfx-background-color: @cyan;
// -rtfx-background-color: @cyan;
-rtfx-background-color: @screenShotMarkerBase;
}
}
.line-un-highlight {
.line-un-highlight {
-rtfx-background-color: @basenavy;
-rtfx-background-color: @basenavy;
...
@@ -234,7 +243,7 @@
...
@@ -234,7 +243,7 @@
.sequent-view {
.sequent-view {
-fx-font-size: 14pt;
-fx-font-size: 14pt;
//-fx-font-size:
18
pt;
//
-fx-font-size:
20
pt;
-fx-background-color: @basenavy;
-fx-background-color: @basenavy;
-fx-fill: black;
-fx-fill: black;
...
...
website/docs/index.md
View file @
e141acf7
...
@@ -56,10 +56,9 @@ The main features of the language are:
...
@@ -56,10 +56,9 @@ The main features of the language are:
1.
integration of domain specific entities like goal, formula, term and rule as
1.
integration of domain specific entities like goal, formula, term and rule as
first-class citizens into the language;
</li>
first-class citizens into the language;
</li>
1.
an expressive proof goal selection mechanism
1.
an expressive proof goal selection mechanism
*
to identify and select individual proof branches,
-
to identify and select individual proof branches,
*
to easily switch between proof branches,
-
to easily switch between proof branches,
*
to select multiple branches for uniform treatment (multi-matching);
-
to select multiple branches for uniform treatment (multi-matching); that is resilient to small changes in the proof
that is resilient to small changes in the proof
1.
a repetition construct which allows repeated application of proof strategies;
</li>
1.
a repetition construct which allows repeated application of proof strategies;
</li>
1.
support for proof exploration within the language.
</li>
1.
support for proof exploration within the language.
</li>
...
@@ -71,7 +70,9 @@ the analysis of failed proof attempts.
...
@@ -71,7 +70,9 @@ the analysis of failed proof attempts.
## Publications
## Publications
A full description of the language and debugging-concept
A full description of the language and debugging-concept
is published at
[
HVC 2017
](
http://rdcu.be/E4fF
)
is published at
[
HVC 2017
](
http://rdcu.be/E4fF
)
.
A short tool description is also
[
available
](
http://arxiv.org/abs/1804.04402
)
.
## Debugging Script for Quicksort's `split` method.
## Debugging Script for Quicksort's `split` method.
...
@@ -208,18 +209,33 @@ interactive rule applications.
...
@@ -208,18 +209,33 @@ interactive rule applications.
<h2>
Downloads
</h2>
<h2>
Downloads
</h2>
<ul>
<ul>
<li>
PSDBG -
<strong>
Version 1.0.1c-FM
</strong>
<li>
PSDBG -
<strong>
Experimental Version
</strong>
<a
href=
"../psdbg_releases/psdbg-
1.0.1c-fm.jar"
>
psdbg-1.0.1c-fm
.jar
</a>
<a
href=
"../psdbg_releases/psdbg-
Experimental-1.1.jar"
>
psdbg-Experimental-1.1
.jar
</a>
<br>
<br>
Special Version for the tool paper at Formal Methods 2018.
This version is an experimental development version of PSDBG, including examples.
Including examples and all dependencies.
Its enhancements are based on an evaluation of the first version.
Not all provided features in this version may be completely functional yet.
<br>
One major change is the syntax for Matching Expressions. The wildcard symbol is now "?" instead of "_".
<br>
Requires Java version 1.8.0_111 or higher; Not working with Java 9, because of depdendencies.
<br>
<a
href=
"https://www.gnu.org/licenses/gpl-3.0.txt"
>
License: GPLv3
</a>
<a
href=
"thirdparty.txt"
>
Third Party Licenses
</a>
<br>
Executable with
<code>
java -jar psdbg-Experimental-1.1.jar
</code>
</li>
<li>
PSDBG -
<strong>
Version 1.0.2c-FM
</strong>
<a
href=
"../psdbg_releases/psdbg-1.0.2c-fm.jar"
>
psdbg-1.0.2c-fm.jar
</a>
<br>
First implementation of PSDBG, including examples.
<br>
<br>
Requires Java version 1.8.0_111 or higher; Not working with Java 9, because of depdendencies.
Requires Java version 1.8.0_111 or higher; Not working with Java 9, because of depdendencies.
<br>
<br>
<a
href=
"https://www.gnu.org/licenses/gpl-3.0.txt"
>
License: GPLv3
</a>
<a
href=
"https://www.gnu.org/licenses/gpl-3.0.txt"
>
License: GPLv3
</a>
<a
href=
"thirdparty.txt"
>
Third Party Licenses
</a>
<a
href=
"thirdparty.txt"
>
Third Party Licenses
</a>
<br>
<br>
Executable with
<code>
java -jar psdbg-1.0.
1
c-fm.jar
</code>
Executable with
<code>
java -jar psdbg-1.0.
2
c-fm.jar
</code>
</li>
</li>
</ul>
</ul>
...
...
website/docs/logo.svg
0 → 100644
View file @
e141acf7
<?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=
"182.14674mm"
height=
"99.805733mm"
viewBox=
"0 0 182.14674 99.805733"
version=
"1.1"
id=
"svg8"
inkscape:version=
"0.92.2 (5c3e80d, 2017-08-06)"
sodipodi:docname=
"logo.svg"
>
<defs
id=
"defs2"
>
<linearGradient
id=
"linearGradient3320"
inkscape:collect=
"always"
>
<stop
id=
"stop3322"
offset=
"0"
style=
"stop-color:#000000;stop-opacity:1;"
/>
<stop
id=
"stop3324"
offset=
"1"
style=
"stop-color:#000000;stop-opacity:0;"
/>
</linearGradient>
<linearGradient
id=
"linearGradient3310"
inkscape:collect=
"always"
>
<stop
id=
"stop3312"
offset=
"0"
style=
"stop-color:#6d1c1c;stop-opacity:1;"
/>
<stop
id=
"stop3314"
offset=
"1"
style=
"stop-color:#da3737;stop-opacity:1"
/>
</linearGradient>
<linearGradient
id=
"linearGradient3254"
inkscape:collect=
"always"
>
<stop
id=
"stop3256"
offset=
"0"
style=
"stop-color:#e98787;stop-opacity:1;"
/>
<stop
id=
"stop3258"
offset=
"1"
style=
"stop-color:#e98787;stop-opacity:0;"
/>
</linearGradient>
<linearGradient
id=
"linearGradient3216"
inkscape:collect=
"always"
>
<stop
id=
"stop3218"
offset=
"0"
style=
"stop-color:#e15f5f;stop-opacity:1;"
/>
<stop
id=
"stop3220"
offset=
"1"
style=
"stop-color:#e15f5f;stop-opacity:0;"
/>
</linearGradient>
<linearGradient
id=
"linearGradient2420"
inkscape:collect=
"always"
>
<stop
id=
"stop2422"
offset=
"0"
style=
"stop-color:#ff8080;stop-opacity:1;"
/>
<stop
id=
"stop2424"
offset=
"1"
style=
"stop-color:#ff8080;stop-opacity:0;"
/>
</linearGradient>
<inkscape:perspective
id=
"perspective10"
inkscape:persp3d-origin=
"372.04723 : 350.78739 : 1"
inkscape:vp_z=
"744.09447 : 526.18109 : 1"
inkscape:vp_y=
"0 : 1000 : 0"
inkscape:vp_x=
"0 : 526.18109 : 1"
sodipodi:type=
"inkscape:persp3d"
/>
<inkscape:perspective
sodipodi:type=
"inkscape:persp3d"
inkscape:vp_x=
"0 : 526.18109 : 1"
inkscape:vp_y=
"0 : 1000 : 0"
inkscape:vp_z=
"744.09447 : 526.18109 : 1"
inkscape:persp3d-origin=
"372.04723 : 350.78739 : 1"
id=
"perspective2390"
/>
<radialGradient
gradientUnits=
"userSpaceOnUse"
gradientTransform=
"matrix(-0.8605201,-0.06557467,0.09711084,-1.2743539,1116.016,1293.4533)"
r=
"144.5484"
fy=
"549.17914"
fx=
"628.50555"
cy=
"549.17914"
cx=
"628.50555"
id=
"radialGradient2426"
xlink:href=
"#linearGradient2420"
inkscape:collect=
"always"
/>
<radialGradient
r=
"144.5484"
fy=
"588.53839"
fx=
"641.08417"
cy=
"588.53839"
cx=
"641.08417"
gradientTransform=
"matrix(-0.3447525,-0.04403987,0.1039086,-0.8134159,788.11995,1026.781)"
gradientUnits=
"userSpaceOnUse"
id=
"radialGradient2430"
xlink:href=
"#linearGradient2420"
inkscape:collect=
"always"
/>
<radialGradient
gradientUnits=
"userSpaceOnUse"
gradientTransform=
"matrix(-0.1262042,0.8023724,-1.1101397,-0.1746139,414.45864,258.61708)"
r=
"82.22187"
fy=
"373.7114"
fx=
"84.431335"
cy=
"373.7114"
cx=
"84.431335"
id=
"radialGradient3222"
xlink:href=
"#linearGradient3216"
inkscape:collect=
"always"
/>
<radialGradient
r=
"22.322405"
fy=
"202.41866"
fx=
"233.92708"
cy=
"202.41866"
cx=
"233.92708"
gradientTransform=
"matrix(-0.04785117,0.5981427,-1.0206648,-0.08165276,451.72234,78.712949)"
gradientUnits=
"userSpaceOnUse"
id=
"radialGradient3275"
xlink:href=
"#linearGradient3254"
inkscape:collect=
"always"
/>
<radialGradient
r=
"22.322405"
fy=
"202.41866"
fx=
"233.92708"
cy=
"202.41866"
cx=
"233.92708"
gradientTransform=
"matrix(-0.04785117,0.5981427,-1.0206648,-0.08165276,451.72234,78.712949)"
gradientUnits=
"userSpaceOnUse"
id=
"radialGradient3277"
xlink:href=
"#linearGradient3254"
inkscape:collect=
"always"
/>
<radialGradient
gradientUnits=
"userSpaceOnUse"
gradientTransform=
"matrix(-0.5493211,-2.0680325,2.3130941,-0.6144144,-548.22574,703.88243)"
r=
"40.668789"
fy=
"301.26511"
fx=
"95.931564"
cy=
"301.26511"
cx=
"95.931564"
id=
"radialGradient3316"
xlink:href=
"#linearGradient3310"
inkscape:collect=
"always"
/>
<radialGradient
gradientUnits=
"userSpaceOnUse"
gradientTransform=
"matrix(0.7108863,-1.2602075,2.0845187,1.1758792,-550.45336,231.26307)"
r=
"40.668785"
fy=
"263.09619"
fx=
"134.09702"
cy=
"263.09619"
cx=
"134.09702"
id=
"radialGradient3326"
xlink:href=
"#linearGradient3320"
inkscape:collect=
"always"
/>
<radialGradient
r=
"144.5484"
fy=
"549.17914"
fx=
"628.50555"
cy=
"549.17914"
cx=
"628.50555"
gradientTransform=
"matrix(-0.8605201,-0.06557467,0.09711084,-1.2743539,1116.016,1293.4533)"
gradientUnits=
"userSpaceOnUse"
id=
"radialGradient3337"
xlink:href=
"#linearGradient2420"
inkscape:collect=
"always"
/>
<radialGradient
r=
"144.5484"
fy=
"549.17914"
fx=
"628.50555"
cy=
"549.17914"
cx=
"628.50555"
gradientTransform=
"matrix(-0.8605201,-0.06557467,0.09711084,-1.2743539,1116.016,1293.4533)"
gradientUnits=
"userSpaceOnUse"
id=
"radialGradient3357"
xlink:href=
"#linearGradient2420"
inkscape:collect=
"always"
/>
<radialGradient
r=
"144.5484"
fy=
"588.53839"
fx=
"641.08417"
cy=
"588.53839"
cx=
"641.08417"
gradientTransform=
"matrix(-0.3447525,-0.04403987,0.1039086,-0.8134159,788.11995,1026.781)"
gradientUnits=
"userSpaceOnUse"
id=
"radialGradient3359"
xlink:href=
"#linearGradient2420"
inkscape:collect=
"always"
/>
<radialGradient
r=
"22.322405"
fy=
"202.41866"
fx=
"233.92708"
cy=
"202.41866"
cx=
"233.92708"
gradientTransform=
"matrix(-0.04785117,0.5981427,-1.0206648,-0.08165276,451.72234,78.712949)"
gradientUnits=
"userSpaceOnUse"
id=
"radialGradient3400"
xlink:href=
"#linearGradient3254"
inkscape:collect=
"always"
/>
<radialGradient
r=
"22.322405"
fy=
"202.41866"
fx=
"233.92708"
cy=
"202.41866"
cx=
"233.92708"
gradientTransform=
"matrix(-0.04785117,0.5981427,-1.0206648,-0.08165276,451.72234,78.712949)"
gradientUnits=
"userSpaceOnUse"
id=
"radialGradient3402"
xlink:href=
"#linearGradient3254"
inkscape:collect=
"always"
/>
<radialGradient
r=
"82.22187"
fy=
"373.7114"
fx=
"84.431335"
cy=
"373.7114"
cx=
"84.431335"
gradientTransform=
"matrix(-0.1262042,0.8023724,-1.1101397,-0.1746139,414.45864,258.61708)"
gradientUnits=
"userSpaceOnUse"
id=
"radialGradient3404"
xlink:href=
"#linearGradient3216"
inkscape:collect=
"always"
/>
<radialGradient
r=
"144.5484"
fy=
"549.17914"
fx=
"628.50555"
cy=
"549.17914"
cx=
"628.50555"
gradientTransform=
"matrix(-0.8605201,-0.06557467,0.09711084,-1.2743539,1116.016,1293.4533)"
gradientUnits=
"userSpaceOnUse"
id=
"radialGradient3406"
xlink:href=
"#linearGradient2420"
inkscape:collect=
"always"
/>
<radialGradient
r=
"144.5484"
fy=
"588.53839"
fx=
"641.08417"
cy=
"588.53839"
cx=
"641.08417"
gradientTransform=
"matrix(-0.3447525,-0.04403987,0.1039086,-0.8134159,788.11995,1026.781)"
gradientUnits=
"userSpaceOnUse"
id=
"radialGradient3408"
xlink:href=
"#linearGradient2420"
inkscape:collect=
"always"
/>
<pattern
patternUnits=
"userSpaceOnUse"
width=
"535.13891"
height=
"538.24669"
patternTransform=
"translate(-113.85053,201.54167)"
id=
"pattern3536"
>
<g
id=
"g3373"
transform=
"translate(115.05348,-207.55642)"
>
<g
id=
"g3279"
>
<g
id=
"g3262"
transform=
"translate(12.817922,14.954243)"
>
<path
sodipodi:nodetypes=
"cc"
id=
"path3248"
d=
"M 236.0634,223.85642 C 262.63555,245.32975 249.94949,278.06776 249.94949,306.10476"
style=
"fill:none;fill-rule:evenodd;stroke:#a83939;stroke-width:12.60000038;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
/>
<path
d=
"m 248.88132,215.45866 a 16.022404,16.556482 0 0 1 -16.0224,16.55649 16.022404,16.556482 0 0 1 -16.02241,-16.55649 16.022404,16.556482 0 0 1 16.02241,-16.55648 16.022404,16.556482 0 0 1 16.0224,16.55648 z"
sodipodi:ry=
"16.556482"
sodipodi:rx=
"16.022404"
sodipodi:cy=
"215.45866"
sodipodi:cx=
"232.85892"
id=
"path3250"
style=
"opacity:1;fill:#a90000;fill-opacity:1;fill-rule:evenodd;stroke:#a83939;stroke-width:12.60000038;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
sodipodi:type=
"arc"
/>
<path
transform=
"matrix(0.8373857,-0.5466125,0.5466125,0.8373857,-82.042523,161.25209)"
sodipodi:type=
"arc"
style=
"opacity:1;fill:url(#radialGradient3564);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:12.60000038;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id=
"path3252"
sodipodi:cx=
"232.85892"
sodipodi:cy=
"215.45866"
sodipodi:rx=
"16.022404"
sodipodi:ry=
"16.556482"
d=
"m 248.88132,215.45866 a 16.022404,16.556482 0 0 1 -16.0224,16.55649 16.022404,16.556482 0 0 1 -16.02241,-16.55649 16.022404,16.556482 0 0 1 16.02241,-16.55648 16.022404,16.556482 0 0 1 16.0224,16.55648 z"
/>
</g>
<g
id=
"g3267"
transform=
"matrix(-0.411986,-0.8808194,-0.9058136,0.4236765,688.58474,438.95472)"
>
<path
style=
"fill:none;fill-rule:evenodd;stroke:#a83939;stroke-width:12.60000038;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d=
"M 236.0634,223.85642 C 262.63555,245.32975 249.94949,278.06776 249.94949,306.10476"
id=
"path3269"
sodipodi:nodetypes=
"cc"
/>
<path
sodipodi:type=
"arc"
style=
"opacity:1;fill:#a90000;fill-opacity:1;fill-rule:evenodd;stroke:#a83939;stroke-width:12.60000038;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id=
"path3271"
sodipodi:cx=
"232.85892"
sodipodi:cy=
"215.45866"
sodipodi:rx=
"16.022404"
sodipodi:ry=
"16.556482"
d=
"m 248.88132,215.45866 a 16.022404,16.556482 0 0 1 -16.0224,16.55649 16.022404,16.556482 0 0 1 -16.02241,-16.55649 16.022404,16.556482 0 0 1 16.02241,-16.55648 16.022404,16.556482 0 0 1 16.0224,16.55648 z"
/>
<path
d=
"m 248.88132,215.45866 a 16.022404,16.556482 0 0 1 -16.0224,16.55649 16.022404,16.556482 0 0 1 -16.02241,-16.55649 16.022404,16.556482 0 0 1 16.02241,-16.55648 16.022404,16.556482 0 0 1 16.0224,16.55648 z"
sodipodi:ry=
"16.556482"
sodipodi:rx=
"16.022404"
sodipodi:cy=
"215.45866"
sodipodi:cx=
"232.85892"
id=
"path3273"
style=
"opacity:1;fill:url(#radialGradient3566);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:12.60000038;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
sodipodi:type=
"arc"
transform=
"matrix(0.8373857,-0.5466125,0.5466125,0.8373857,-82.042523,161.25209)"
/>
</g>
<g
id=
"g3224"
>
<path
transform=
"matrix(0.8157706,0.5658651,-0.5658651,0.8157706,449.78995,120.0763)"
d=
"m 63.784239,303.89401 a 82.22187,49.831436 0 0 1 -82.221871,49.83144 82.22187,49.831436 0 0 1 -82.221868,-49.83144 82.22187,49.831436 0 0 1 82.221868,-49.83143 82.22187,49.831436 0 0 1 82.221871,49.83143 z"
sodipodi:ry=
"49.831436"
sodipodi:rx=
"82.22187"
sodipodi:cy=
"303.89401"
sodipodi:cx=
"-18.437632"
id=
"path3212"
style=
"opacity:1;fill:#b80000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:16.60000038;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
sodipodi:type=
"arc"
/>
<path
sodipodi:type=
"arc"
style=
"opacity:1;fill:url(#radialGradient3568);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:16.60000038;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id=
"path3214"
sodipodi:cx=
"-18.437632"
sodipodi:cy=
"303.89401"
sodipodi:rx=
"82.22187"
sodipodi:ry=
"49.831436"
d=
"m 63.784239,303.89401 a 82.22187,49.831436 0 0 1 -82.221871,49.83144 82.22187,49.831436 0 0 1 -82.221868,-49.83144 82.22187,49.831436 0 0 1 82.221868,-49.83143 82.22187,49.831436 0 0 1 82.221871,49.83143 z"
transform=
"matrix(0.7375667,0.5116184,-0.5116184,0.7375667,431.86282,144.77739)"
/>
</g>
</g>
<g
style=
"fill:#963f3f;fill-opacity:1"
transform=
"matrix(-0.1590994,-1.1032623,-1.0581625,3.5602217e-2,343.85759,266.46841)"
id=
"g3345"
>
<path
style=
"fill:#963f3f;fill-opacity:1;fill-rule:evenodd;stroke:#963f3f;stroke-width:38.59999847;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d=
"M -185.9631,-3.0245843 C -173.65209,27.978636 -176.06568,139.29859 -178.22037,158.60164"
id=
"path3339"
sodipodi:nodetypes=
"cc"
/>
<path
sodipodi:nodetypes=
"cc"
id=
"path3341"
d=
"M -336.76292,72.749986 C -308.5143,90.491946 -244.69814,181.73586 -235.03313,198.58337"
style=
"fill:#963f3f;fill-opacity:1;fill-rule:evenodd;stroke:#963f3f;stroke-width:38.59999847;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
inkscape:transform-center-x=
"19.701912"
inkscape:transform-center-y=
"-11.770787"
/>
<path
inkscape:transform-center-y=
"6.8425027"
inkscape:transform-center-x=
"-21.906548"
style=
"fill:#963f3f;fill-opacity:1;fill-rule:evenodd;stroke:#963f3f;stroke-width:38.59999847;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d=
"M -281.32214,281.1069 C -307.67731,280.96809 -389.72918,218.98424 -409.63317,182.52054"