aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Ranke <jranke@uni-bremen.de>2019-02-25 14:50:13 +0100
committerJohannes Ranke <jranke@uni-bremen.de>2019-02-25 14:57:28 +0100
commitbe809ea23b256f627216958fcd90489ee0844ab8 (patch)
treeaac8e1ce221d79cd58e4fa62c5e5149a3b0c659f
parentdd6c4a8f895fd470345e7ae773299daaa4de7aef (diff)
Add plotting tests, add nafta to pkgdown
-rw-r--r--DESCRIPTION5
-rw-r--r--_pkgdown.yml1
-rw-r--r--docs/articles/FOCUS_D.html8
-rw-r--r--docs/articles/FOCUS_L.html44
-rw-r--r--docs/articles/mkin.html2
-rw-r--r--docs/articles/twa.html2
-rw-r--r--docs/articles/web_only/FOCUS_Z.html2
-rw-r--r--docs/articles/web_only/compiled_models.html12
-rw-r--r--docs/reference/Extract.mmkin.html12
-rw-r--r--docs/reference/index.html6
-rw-r--r--docs/reference/mccall81_245T.html12
-rw-r--r--docs/reference/mkinfit.html46
-rw-r--r--docs/reference/mkinmod.html2
-rw-r--r--docs/reference/mkinpredict.html4
-rw-r--r--docs/reference/mmkin.html4
-rw-r--r--docs/reference/summary.mkinfit.html6
-rw-r--r--docs/reference/transform_odeparms.html24
-rw-r--r--test.log20
-rw-r--r--tests/figs/deps.txt3
-rw-r--r--tests/figs/plotting/mmkin-plot-for-focus-c.svg569
-rw-r--r--tests/figs/plotting/mmkin-plot-for-sfo-focus-c-and-d.svg300
-rw-r--r--tests/testthat/test_plots_twa.R (renamed from tests/testthat/test_twa.R)26
22 files changed, 1002 insertions, 108 deletions
diff --git a/DESCRIPTION b/DESCRIPTION
index 138440fc..87823866 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -2,7 +2,7 @@ Package: mkin
Type: Package
Title: Kinetic Evaluation of Chemical Degradation Data
Version: 0.9.48.1
-Date: 2019-02-21
+Date: 2019-02-22
Authors@R: c(person("Johannes", "Ranke", role = c("aut", "cre", "cph"),
email = "jranke@uni-bremen.de",
comment = c(ORCID = "0000-0003-4371-6538")),
@@ -19,7 +19,8 @@ Description: Calculation routines based on the FOCUS Kinetics Report (2006,
purpose.
Imports: stats, graphics, methods, FME, deSolve, R6, minpack.lm, rootSolve,
inline, parallel, plyr
-Suggests: knitr, rbenchmark, tikzDevice, testthat, rmarkdown, covr
+Suggests: knitr, rbenchmark, tikzDevice, testthat, rmarkdown, covr, vdiffr
+Remotes: r-lib/vdiffr
License: GPL
LazyLoad: yes
LazyData: yes
diff --git a/_pkgdown.yml b/_pkgdown.yml
index 20854d5b..03305d9a 100644
--- a/_pkgdown.yml
+++ b/_pkgdown.yml
@@ -10,6 +10,7 @@ reference:
- mkinmod
- mkinfit
- mmkin
+ - nafta
- title: Show results
desc: Functions working with mkinfit objects
contents:
diff --git a/docs/articles/FOCUS_D.html b/docs/articles/FOCUS_D.html
index ad8413dc..a470cdb6 100644
--- a/docs/articles/FOCUS_D.html
+++ b/docs/articles/FOCUS_D.html
@@ -85,7 +85,7 @@
<h1>Example evaluation of FOCUS Example Dataset D</h1>
<h4 class="author">Johannes Ranke</h4>
- <h4 class="date">2019-02-22</h4>
+ <h4 class="date">2019-02-25</h4>
<div class="hidden name"><code>FOCUS_D.Rmd</code></div>
@@ -163,8 +163,8 @@
<div class="sourceCode" id="cb10"><pre class="sourceCode r"><code class="sourceCode r"><a class="sourceLine" id="cb10-1" data-line-number="1"><span class="kw"><a href="https://www.rdocumentation.org/packages/base/topics/summary">summary</a></span>(fit)</a></code></pre></div>
<pre><code>## mkin version used for fitting: 0.9.48.1
## R version used for fitting: 3.5.2
-## Date of fit: Fri Feb 22 20:48:30 2019
-## Date of summary: Fri Feb 22 20:48:31 2019
+## Date of fit: Mon Feb 25 14:54:38 2019
+## Date of summary: Mon Feb 25 14:54:38 2019
##
## Equations:
## d_parent/dt = - k_parent_sink * parent - k_parent_m1 * parent
@@ -172,7 +172,7 @@
##
## Model predictions using solution type deSolve
##
-## Fitted with method Port using 153 model solutions performed in 0.731 s
+## Fitted with method Port using 153 model solutions performed in 0.712 s
##
## Weighting: none
##
diff --git a/docs/articles/FOCUS_L.html b/docs/articles/FOCUS_L.html
index 17c7bf59..e8a81075 100644
--- a/docs/articles/FOCUS_L.html
+++ b/docs/articles/FOCUS_L.html
@@ -85,7 +85,7 @@
<h1>Example evaluation of FOCUS Laboratory Data L1 to L3</h1>
<h4 class="author">Johannes Ranke</h4>
- <h4 class="date">2019-02-22</h4>
+ <h4 class="date">2019-02-25</h4>
<div class="hidden name"><code>FOCUS_L.Rmd</code></div>
@@ -111,15 +111,15 @@
<a class="sourceLine" id="cb2-2" data-line-number="2"><span class="kw"><a href="https://www.rdocumentation.org/packages/base/topics/summary">summary</a></span>(m.L1.SFO)</a></code></pre></div>
<pre><code>## mkin version used for fitting: 0.9.48.1
## R version used for fitting: 3.5.2
-## Date of fit: Fri Feb 22 20:48:32 2019
-## Date of summary: Fri Feb 22 20:48:32 2019
+## Date of fit: Mon Feb 25 14:54:40 2019
+## Date of summary: Mon Feb 25 14:54:40 2019
##
## Equations:
## d_parent/dt = - k_parent_sink * parent
##
## Model predictions using solution type analytical
##
-## Fitted with method Port using 37 model solutions performed in 0.105 s
+## Fitted with method Port using 37 model solutions performed in 0.096 s
##
## Weighting: none
##
@@ -202,15 +202,15 @@
<div class="sourceCode" id="cb7"><pre class="sourceCode r"><code class="sourceCode r"><a class="sourceLine" id="cb7-1" data-line-number="1"><span class="kw"><a href="https://www.rdocumentation.org/packages/base/topics/summary">summary</a></span>(m.L1.FOMC, <span class="dt">data =</span> <span class="ot">FALSE</span>)</a></code></pre></div>
<pre><code>## mkin version used for fitting: 0.9.48.1
## R version used for fitting: 3.5.2
-## Date of fit: Fri Feb 22 20:48:34 2019
-## Date of summary: Fri Feb 22 20:48:34 2019
+## Date of fit: Mon Feb 25 14:54:42 2019
+## Date of summary: Mon Feb 25 14:54:42 2019
##
## Equations:
## d_parent/dt = - (alpha/beta) * 1/((time/beta) + 1) * parent
##
## Model predictions using solution type analytical
##
-## Fitted with method Port using 611 model solutions performed in 1.604 s
+## Fitted with method Port using 611 model solutions performed in 1.529 s
##
## Weighting: none
##
@@ -297,15 +297,15 @@
<div class="sourceCode" id="cb12"><pre class="sourceCode r"><code class="sourceCode r"><a class="sourceLine" id="cb12-1" data-line-number="1"><span class="kw"><a href="https://www.rdocumentation.org/packages/base/topics/summary">summary</a></span>(m.L2.FOMC, <span class="dt">data =</span> <span class="ot">FALSE</span>)</a></code></pre></div>
<pre><code>## mkin version used for fitting: 0.9.48.1
## R version used for fitting: 3.5.2
-## Date of fit: Fri Feb 22 20:48:35 2019
-## Date of summary: Fri Feb 22 20:48:35 2019
+## Date of fit: Mon Feb 25 14:54:42 2019
+## Date of summary: Mon Feb 25 14:54:42 2019
##
## Equations:
## d_parent/dt = - (alpha/beta) * 1/((time/beta) + 1) * parent
##
## Model predictions using solution type analytical
##
-## Fitted with method Port using 81 model solutions performed in 0.216 s
+## Fitted with method Port using 81 model solutions performed in 0.199 s
##
## Weighting: none
##
@@ -368,8 +368,8 @@
<div class="sourceCode" id="cb15"><pre class="sourceCode r"><code class="sourceCode r"><a class="sourceLine" id="cb15-1" data-line-number="1"><span class="kw"><a href="https://www.rdocumentation.org/packages/base/topics/summary">summary</a></span>(m.L2.DFOP, <span class="dt">data =</span> <span class="ot">FALSE</span>)</a></code></pre></div>
<pre><code>## mkin version used for fitting: 0.9.48.1
## R version used for fitting: 3.5.2
-## Date of fit: Fri Feb 22 20:48:36 2019
-## Date of summary: Fri Feb 22 20:48:36 2019
+## Date of fit: Mon Feb 25 14:54:44 2019
+## Date of summary: Mon Feb 25 14:54:44 2019
##
## Equations:
## d_parent/dt = - ((k1 * g * exp(-k1 * time) + k2 * (1 - g) *
@@ -378,7 +378,7 @@
##
## Model predictions using solution type analytical
##
-## Fitted with method Port using 336 model solutions performed in 0.864 s
+## Fitted with method Port using 336 model solutions performed in 0.853 s
##
## Weighting: none
##
@@ -460,8 +460,8 @@
<div class="sourceCode" id="cb21"><pre class="sourceCode r"><code class="sourceCode r"><a class="sourceLine" id="cb21-1" data-line-number="1"><span class="kw"><a href="https://www.rdocumentation.org/packages/base/topics/summary">summary</a></span>(mm.L3[[<span class="st">"DFOP"</span>, <span class="dv">1</span>]])</a></code></pre></div>
<pre><code>## mkin version used for fitting: 0.9.48.1
## R version used for fitting: 3.5.2
-## Date of fit: Fri Feb 22 20:48:37 2019
-## Date of summary: Fri Feb 22 20:48:38 2019
+## Date of fit: Mon Feb 25 14:54:45 2019
+## Date of summary: Mon Feb 25 14:54:45 2019
##
## Equations:
## d_parent/dt = - ((k1 * g * exp(-k1 * time) + k2 * (1 - g) *
@@ -470,7 +470,7 @@
##
## Model predictions using solution type analytical
##
-## Fitted with method Port using 137 model solutions performed in 0.362 s
+## Fitted with method Port using 137 model solutions performed in 0.348 s
##
## Weighting: none
##
@@ -561,15 +561,15 @@
<div class="sourceCode" id="cb26"><pre class="sourceCode r"><code class="sourceCode r"><a class="sourceLine" id="cb26-1" data-line-number="1"><span class="kw"><a href="https://www.rdocumentation.org/packages/base/topics/summary">summary</a></span>(mm.L4[[<span class="st">"SFO"</span>, <span class="dv">1</span>]], <span class="dt">data =</span> <span class="ot">FALSE</span>)</a></code></pre></div>
<pre><code>## mkin version used for fitting: 0.9.48.1
## R version used for fitting: 3.5.2
-## Date of fit: Fri Feb 22 20:48:38 2019
-## Date of summary: Fri Feb 22 20:48:38 2019
+## Date of fit: Mon Feb 25 14:54:45 2019
+## Date of summary: Mon Feb 25 14:54:45 2019
##
## Equations:
## d_parent/dt = - k_parent_sink * parent
##
## Model predictions using solution type analytical
##
-## Fitted with method Port using 46 model solutions performed in 0.123 s
+## Fitted with method Port using 46 model solutions performed in 0.112 s
##
## Weighting: none
##
@@ -621,15 +621,15 @@
<div class="sourceCode" id="cb28"><pre class="sourceCode r"><code class="sourceCode r"><a class="sourceLine" id="cb28-1" data-line-number="1"><span class="kw"><a href="https://www.rdocumentation.org/packages/base/topics/summary">summary</a></span>(mm.L4[[<span class="st">"FOMC"</span>, <span class="dv">1</span>]], <span class="dt">data =</span> <span class="ot">FALSE</span>)</a></code></pre></div>
<pre><code>## mkin version used for fitting: 0.9.48.1
## R version used for fitting: 3.5.2
-## Date of fit: Fri Feb 22 20:48:38 2019
-## Date of summary: Fri Feb 22 20:48:38 2019
+## Date of fit: Mon Feb 25 14:54:45 2019
+## Date of summary: Mon Feb 25 14:54:45 2019
##
## Equations:
## d_parent/dt = - (alpha/beta) * 1/((time/beta) + 1) * parent
##
## Model predictions using solution type analytical
##
-## Fitted with method Port using 66 model solutions performed in 0.184 s
+## Fitted with method Port using 66 model solutions performed in 0.165 s
##
## Weighting: none
##
diff --git a/docs/articles/mkin.html b/docs/articles/mkin.html
index 9baa44e4..bffd19dd 100644
--- a/docs/articles/mkin.html
+++ b/docs/articles/mkin.html
@@ -85,7 +85,7 @@
<h1>Introduction to mkin</h1>
<h4 class="author">Johannes Ranke</h4>
- <h4 class="date">2019-02-22</h4>
+ <h4 class="date">2019-02-25</h4>
<div class="hidden name"><code>mkin.Rmd</code></div>
diff --git a/docs/articles/twa.html b/docs/articles/twa.html
index 8c340557..83b05989 100644
--- a/docs/articles/twa.html
+++ b/docs/articles/twa.html
@@ -85,7 +85,7 @@
<h1>Calculation of time weighted average concentrations with mkin</h1>
<h4 class="author">Johannes Ranke</h4>
- <h4 class="date">2019-02-22</h4>
+ <h4 class="date">2019-02-25</h4>
<div class="hidden name"><code>twa.Rmd</code></div>
diff --git a/docs/articles/web_only/FOCUS_Z.html b/docs/articles/web_only/FOCUS_Z.html
index b1e2811c..c3ee7415 100644
--- a/docs/articles/web_only/FOCUS_Z.html
+++ b/docs/articles/web_only/FOCUS_Z.html
@@ -85,7 +85,7 @@
<h1>Example evaluation of FOCUS dataset Z</h1>
<h4 class="author">Johannes Ranke</h4>
- <h4 class="date">2019-02-22</h4>
+ <h4 class="date">2019-02-25</h4>
<div class="hidden name"><code>FOCUS_Z.Rmd</code></div>
diff --git a/docs/articles/web_only/compiled_models.html b/docs/articles/web_only/compiled_models.html
index fbf2de33..4209d2bc 100644
--- a/docs/articles/web_only/compiled_models.html
+++ b/docs/articles/web_only/compiled_models.html
@@ -85,7 +85,7 @@
<h1>Performance benefit by using compiled model definitions in mkin</h1>
<h4 class="author">Johannes Ranke</h4>
- <h4 class="date">2019-02-22</h4>
+ <h4 class="date">2019-02-25</h4>
<div class="hidden name"><code>compiled_models.Rmd</code></div>
@@ -126,9 +126,9 @@
<a class="sourceLine" id="cb5-16" data-line-number="16">}</a></code></pre></div>
<pre><code>## Lade nötiges Paket: rbenchmark</code></pre>
<pre><code>## test replications elapsed relative user.self sys.self
-## 3 deSolve, compiled 3 2.484 1.000 2.483 0
-## 1 deSolve, not compiled 3 17.963 7.231 17.951 0
-## 2 Eigenvalue based 3 3.146 1.267 3.144 0
+## 3 deSolve, compiled 3 2.394 1.000 2.388 0.004
+## 1 deSolve, not compiled 3 17.923 7.487 17.910 0.000
+## 2 Eigenvalue based 3 3.021 1.262 3.018 0.000
## user.child sys.child
## 3 0 0
## 1 0 0
@@ -157,8 +157,8 @@
<a class="sourceLine" id="cb8-16" data-line-number="16">}</a></code></pre></div>
<pre><code>## Successfully compiled differential equation model from auto-generated C code.</code></pre>
<pre><code>## test replications elapsed relative user.self sys.self
-## 2 deSolve, compiled 3 4.232 1.000 4.226 0.004
-## 1 deSolve, not compiled 3 37.946 8.966 37.924 0.000
+## 2 deSolve, compiled 3 4.162 1.000 4.158 0
+## 1 deSolve, not compiled 3 37.536 9.019 37.517 0
## user.child sys.child
## 2 0 0
## 1 0 0</code></pre>
diff --git a/docs/reference/Extract.mmkin.html b/docs/reference/Extract.mmkin.html
index e3285ed3..95b1558e 100644
--- a/docs/reference/Extract.mmkin.html
+++ b/docs/reference/Extract.mmkin.html
@@ -280,7 +280,7 @@
#&gt;
#&gt; $time
#&gt; User System verstrichen
-#&gt; 0.201 0.000 0.200
+#&gt; 0.196 0.000 0.196
#&gt;
#&gt; $mkinmod
#&gt; &lt;mkinmod&gt; model generated with
@@ -469,8 +469,8 @@
#&gt; }
#&gt; return(mC)
#&gt; }
-#&gt; &lt;bytecode: 0x555559103bf0&gt;
-#&gt; &lt;environment: 0x55555a51ba10&gt;
+#&gt; &lt;bytecode: 0x555559255c78&gt;
+#&gt; &lt;environment: 0x55555add1128&gt;
#&gt;
#&gt; $cost_notrans
#&gt; function (P)
@@ -492,8 +492,8 @@
#&gt; scaleVar = scaleVar)
#&gt; return(mC)
#&gt; }
-#&gt; &lt;bytecode: 0x55555a537b00&gt;
-#&gt; &lt;environment: 0x55555a51ba10&gt;
+#&gt; &lt;bytecode: 0x55555a1e9540&gt;
+#&gt; &lt;environment: 0x55555add1128&gt;
#&gt;
#&gt; $hessian_notrans
#&gt; parent_0 k_parent_sink
@@ -560,7 +560,7 @@
#&gt; 99.17407
#&gt;
#&gt; $date
-#&gt; [1] "Fri Feb 22 20:46:31 2019"
+#&gt; [1] "Mon Feb 25 14:52:43 2019"
#&gt;
#&gt; $version
#&gt; [1] "0.9.48.1"
diff --git a/docs/reference/index.html b/docs/reference/index.html
index f31a72fe..24f3df0c 100644
--- a/docs/reference/index.html
+++ b/docs/reference/index.html
@@ -151,6 +151,12 @@
<p><code><a href="mmkin.html">mmkin()</a></code> </p>
</td>
<td><p>Fit one or more kinetic models with one or more state variables to one or more datasets</p></td>
+ </tr><tr>
+
+ <td>
+ <p><code><a href="nafta.html">nafta()</a></code> </p>
+ </td>
+ <td><p>Evaluate parent kinetics using the NAFTA guidance</p></td>
</tr>
</tbody><tbody>
<tr>
diff --git a/docs/reference/mccall81_245T.html b/docs/reference/mccall81_245T.html
index 7b3418de..bcc871d8 100644
--- a/docs/reference/mccall81_245T.html
+++ b/docs/reference/mccall81_245T.html
@@ -160,8 +160,8 @@
<span class='kw'>anisole</span> <span class='kw'>=</span> <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/list'>list</a></span>(<span class='kw'>type</span> <span class='kw'>=</span> <span class='st'>"SFO"</span>))</div><div class='output co'>#&gt; <span class='message'>Successfully compiled differential equation model from auto-generated C code.</span></div><div class='input'> </div><div class='input'> <span class='no'>fit.1</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='mkinfit.html'>mkinfit</a></span>(<span class='no'>SFO_SFO_SFO</span>, <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/subset'>subset</a></span>(<span class='no'>mccall81_245T</span>, <span class='no'>soil</span> <span class='kw'>==</span> <span class='st'>"Commerce"</span>), <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)
<span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/summary'>summary</a></span>(<span class='no'>fit.1</span>, <span class='kw'>data</span> <span class='kw'>=</span> <span class='fl'>FALSE</span>)</div><div class='output co'>#&gt; mkin version used for fitting: 0.9.48.1
#&gt; R version used for fitting: 3.5.2
-#&gt; Date of fit: Fri Feb 22 20:46:54 2019
-#&gt; Date of summary: Fri Feb 22 20:46:54 2019
+#&gt; Date of fit: Mon Feb 25 14:53:05 2019
+#&gt; Date of summary: Mon Feb 25 14:53:05 2019
#&gt;
#&gt; Equations:
#&gt; d_T245/dt = - k_T245_sink * T245 - k_T245_phenol * T245
@@ -171,7 +171,7 @@
#&gt;
#&gt; Model predictions using solution type deSolve
#&gt;
-#&gt; Fitted with method Port using 574 model solutions performed in 4.461 s
+#&gt; Fitted with method Port using 574 model solutions performed in 3.873 s
#&gt;
#&gt; Weighting: none
#&gt;
@@ -249,8 +249,8 @@
<span class='kw'>fixed_parms</span> <span class='kw'>=</span> <span class='st'>"k_phenol_sink"</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)
<span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/summary'>summary</a></span>(<span class='no'>fit.2</span>, <span class='kw'>data</span> <span class='kw'>=</span> <span class='fl'>FALSE</span>)</div><div class='output co'>#&gt; mkin version used for fitting: 0.9.48.1
#&gt; R version used for fitting: 3.5.2
-#&gt; Date of fit: Fri Feb 22 20:46:56 2019
-#&gt; Date of summary: Fri Feb 22 20:46:56 2019
+#&gt; Date of fit: Mon Feb 25 14:53:07 2019
+#&gt; Date of summary: Mon Feb 25 14:53:07 2019
#&gt;
#&gt; Equations:
#&gt; d_T245/dt = - k_T245_sink * T245 - k_T245_phenol * T245
@@ -260,7 +260,7 @@
#&gt;
#&gt; Model predictions using solution type deSolve
#&gt;
-#&gt; Fitted with method Port using 246 model solutions performed in 1.709 s
+#&gt; Fitted with method Port using 246 model solutions performed in 1.623 s
#&gt;
#&gt; Weighting: none
#&gt;
diff --git a/docs/reference/mkinfit.html b/docs/reference/mkinfit.html
index dfdddb25..80278890 100644
--- a/docs/reference/mkinfit.html
+++ b/docs/reference/mkinfit.html
@@ -438,15 +438,15 @@
<span class='no'>fit</span> <span class='kw'>&lt;-</span> <span class='fu'>mkinfit</span>(<span class='st'>"FOMC"</span>, <span class='no'>FOCUS_2006_C</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)
<span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/summary'>summary</a></span>(<span class='no'>fit</span>)</div><div class='output co'>#&gt; mkin version used for fitting: 0.9.48.1
#&gt; R version used for fitting: 3.5.2
-#&gt; Date of fit: Fri Feb 22 20:46:59 2019
-#&gt; Date of summary: Fri Feb 22 20:46:59 2019
+#&gt; Date of fit: Mon Feb 25 14:53:09 2019
+#&gt; Date of summary: Mon Feb 25 14:53:09 2019
#&gt;
#&gt; Equations:
#&gt; d_parent/dt = - (alpha/beta) * 1/((time/beta) + 1) * parent
#&gt;
#&gt; Model predictions using solution type analytical
#&gt;
-#&gt; Fitted with method Port using 64 model solutions performed in 0.185 s
+#&gt; Fitted with method Port using 64 model solutions performed in 0.168 s
#&gt;
#&gt; Weighting: none
#&gt;
@@ -515,7 +515,7 @@
<span class='kw'>m1</span> <span class='kw'>=</span> <span class='fu'><a href='mkinsub.html'>mkinsub</a></span>(<span class='st'>"SFO"</span>))</div><div class='output co'>#&gt; <span class='message'>Successfully compiled differential equation model from auto-generated C code.</span></div><div class='input'><span class='co'># Fit the model to the FOCUS example dataset D using defaults</span>
<span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/print'>print</a></span>(<span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/system.time'>system.time</a></span>(<span class='no'>fit</span> <span class='kw'>&lt;-</span> <span class='fu'>mkinfit</span>(<span class='no'>SFO_SFO</span>, <span class='no'>FOCUS_2006_D</span>,
<span class='kw'>solution_type</span> <span class='kw'>=</span> <span class='st'>"eigen"</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)))</div><div class='output co'>#&gt; User System verstrichen
-#&gt; 1.071 0.000 1.072 </div><div class='input'><span class='fu'><a href='https://www.rdocumentation.org/packages/stats/topics/coef'>coef</a></span>(<span class='no'>fit</span>)</div><div class='output co'>#&gt; parent_0 log_k_parent_sink log_k_parent_m1 log_k_m1_sink
+#&gt; 1.038 0.000 1.039 </div><div class='input'><span class='fu'><a href='https://www.rdocumentation.org/packages/stats/topics/coef'>coef</a></span>(<span class='no'>fit</span>)</div><div class='output co'>#&gt; parent_0 log_k_parent_sink log_k_parent_m1 log_k_m1_sink
#&gt; 99.59848 -3.03822 -2.98030 -5.24750 </div><div class='input'><span class='fu'><a href='endpoints.html'>endpoints</a></span>(<span class='no'>fit</span>)</div><div class='output co'>#&gt; $ff
#&gt; parent_sink parent_m1 m1_sink
#&gt; 0.485524 0.514476 1.000000
@@ -590,7 +590,7 @@
#&gt; Model cost at call 146 : 371.2134
#&gt; Optimisation by method Port successfully terminated.
#&gt; User System verstrichen
-#&gt; 0.852 0.000 0.852 </div><div class='input'><span class='fu'><a href='https://www.rdocumentation.org/packages/stats/topics/coef'>coef</a></span>(<span class='no'>fit.deSolve</span>)</div><div class='output co'>#&gt; parent_0 log_k_parent_sink log_k_parent_m1 log_k_m1_sink
+#&gt; 0.827 0.000 0.827 </div><div class='input'><span class='fu'><a href='https://www.rdocumentation.org/packages/stats/topics/coef'>coef</a></span>(<span class='no'>fit.deSolve</span>)</div><div class='output co'>#&gt; parent_0 log_k_parent_sink log_k_parent_m1 log_k_m1_sink
#&gt; 99.59848 -3.03822 -2.98030 -5.24750 </div><div class='input'><span class='fu'><a href='endpoints.html'>endpoints</a></span>(<span class='no'>fit.deSolve</span>)</div><div class='output co'>#&gt; $ff
#&gt; parent_sink parent_m1 m1_sink
#&gt; 0.485524 0.514476 1.000000
@@ -628,8 +628,8 @@
<span class='kw'>m1</span> <span class='kw'>=</span> <span class='fu'><a href='mkinsub.html'>mkinsub</a></span>(<span class='st'>"SFO"</span>), <span class='kw'>use_of_ff</span> <span class='kw'>=</span> <span class='st'>"max"</span>)</div><div class='output co'>#&gt; <span class='message'>Successfully compiled differential equation model from auto-generated C code.</span></div><div class='input'><span class='no'>f.noweight</span> <span class='kw'>&lt;-</span> <span class='fu'>mkinfit</span>(<span class='no'>SFO_SFO.ff</span>, <span class='no'>FOCUS_2006_D</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)
<span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/summary'>summary</a></span>(<span class='no'>f.noweight</span>)</div><div class='output co'>#&gt; mkin version used for fitting: 0.9.48.1
#&gt; R version used for fitting: 3.5.2
-#&gt; Date of fit: Fri Feb 22 20:47:11 2019
-#&gt; Date of summary: Fri Feb 22 20:47:11 2019
+#&gt; Date of fit: Mon Feb 25 14:53:22 2019
+#&gt; Date of summary: Mon Feb 25 14:53:22 2019
#&gt;
#&gt; Equations:
#&gt; d_parent/dt = - k_parent * parent
@@ -637,7 +637,7 @@
#&gt;
#&gt; Model predictions using solution type deSolve
#&gt;
-#&gt; Fitted with method Port using 186 model solutions performed in 0.864 s
+#&gt; Fitted with method Port using 186 model solutions performed in 0.898 s
#&gt;
#&gt; Weighting: none
#&gt;
@@ -745,8 +745,8 @@
#&gt; 120 m1 33.31 28.78984 4.520e+00</div><div class='input'><span class='no'>f.irls</span> <span class='kw'>&lt;-</span> <span class='fu'>mkinfit</span>(<span class='no'>SFO_SFO.ff</span>, <span class='no'>FOCUS_2006_D</span>, <span class='kw'>reweight.method</span> <span class='kw'>=</span> <span class='st'>"obs"</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)
<span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/summary'>summary</a></span>(<span class='no'>f.irls</span>)</div><div class='output co'>#&gt; mkin version used for fitting: 0.9.48.1
#&gt; R version used for fitting: 3.5.2
-#&gt; Date of fit: Fri Feb 22 20:47:14 2019
-#&gt; Date of summary: Fri Feb 22 20:47:14 2019
+#&gt; Date of fit: Mon Feb 25 14:53:24 2019
+#&gt; Date of summary: Mon Feb 25 14:53:24 2019
#&gt;
#&gt; Equations:
#&gt; d_parent/dt = - k_parent * parent
@@ -754,7 +754,7 @@
#&gt;
#&gt; Model predictions using solution type deSolve
#&gt;
-#&gt; Fitted with method Port using 551 model solutions performed in 2.584 s
+#&gt; Fitted with method Port using 551 model solutions performed in 2.572 s
#&gt;
#&gt; Weighting: none
#&gt;
@@ -867,8 +867,8 @@
#&gt; 120 m1 33.31 28.80898 4.501e+00 2.722</div><div class='input'><span class='no'>f.w.mean</span> <span class='kw'>&lt;-</span> <span class='fu'>mkinfit</span>(<span class='no'>SFO_SFO.ff</span>, <span class='no'>FOCUS_2006_D</span>, <span class='kw'>weight</span> <span class='kw'>=</span> <span class='st'>"mean"</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)
<span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/summary'>summary</a></span>(<span class='no'>f.w.mean</span>)</div><div class='output co'>#&gt; mkin version used for fitting: 0.9.48.1
#&gt; R version used for fitting: 3.5.2
-#&gt; Date of fit: Fri Feb 22 20:47:15 2019
-#&gt; Date of summary: Fri Feb 22 20:47:15 2019
+#&gt; Date of fit: Mon Feb 25 14:53:25 2019
+#&gt; Date of summary: Mon Feb 25 14:53:25 2019
#&gt;
#&gt; Equations:
#&gt; d_parent/dt = - k_parent * parent
@@ -876,7 +876,7 @@
#&gt;
#&gt; Model predictions using solution type deSolve
#&gt;
-#&gt; Fitted with method Port using 155 model solutions performed in 0.716 s
+#&gt; Fitted with method Port using 155 model solutions performed in 0.709 s
#&gt;
#&gt; Weighting: mean
#&gt;
@@ -985,8 +985,8 @@
<span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)
<span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/summary'>summary</a></span>(<span class='no'>f.w.value</span>)</div><div class='output co'>#&gt; mkin version used for fitting: 0.9.48.1
#&gt; R version used for fitting: 3.5.2
-#&gt; Date of fit: Fri Feb 22 20:47:16 2019
-#&gt; Date of summary: Fri Feb 22 20:47:16 2019
+#&gt; Date of fit: Mon Feb 25 14:53:26 2019
+#&gt; Date of summary: Mon Feb 25 14:53:26 2019
#&gt;
#&gt; Equations:
#&gt; d_parent/dt = - k_parent * parent
@@ -994,7 +994,7 @@
#&gt;
#&gt; Model predictions using solution type deSolve
#&gt;
-#&gt; Fitted with method Port using 174 model solutions performed in 0.83 s
+#&gt; Fitted with method Port using 174 model solutions performed in 0.81 s
#&gt;
#&gt; Weighting: manual
#&gt;
@@ -1105,8 +1105,8 @@
<span class='no'>f.w.man</span> <span class='kw'>&lt;-</span> <span class='fu'>mkinfit</span>(<span class='no'>SFO_SFO.ff</span>, <span class='no'>dw</span>, <span class='kw'>err</span> <span class='kw'>=</span> <span class='st'>"err.man"</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)
<span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/summary'>summary</a></span>(<span class='no'>f.w.man</span>)</div><div class='output co'>#&gt; mkin version used for fitting: 0.9.48.1
#&gt; R version used for fitting: 3.5.2
-#&gt; Date of fit: Fri Feb 22 20:47:17 2019
-#&gt; Date of summary: Fri Feb 22 20:47:17 2019
+#&gt; Date of fit: Mon Feb 25 14:53:28 2019
+#&gt; Date of summary: Mon Feb 25 14:53:28 2019
#&gt;
#&gt; Equations:
#&gt; d_parent/dt = - k_parent * parent
@@ -1114,7 +1114,7 @@
#&gt;
#&gt; Model predictions using solution type deSolve
#&gt;
-#&gt; Fitted with method Port using 270 model solutions performed in 1.286 s
+#&gt; Fitted with method Port using 270 model solutions performed in 1.25 s
#&gt;
#&gt; Weighting: manual
#&gt;
@@ -1223,8 +1223,8 @@
<span class='kw'>reweight.method</span> <span class='kw'>=</span> <span class='st'>"obs"</span>)
<span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/summary'>summary</a></span>(<span class='no'>f.w.man.irls</span>)</div><div class='output co'>#&gt; mkin version used for fitting: 0.9.48.1
#&gt; R version used for fitting: 3.5.2
-#&gt; Date of fit: Fri Feb 22 20:47:21 2019
-#&gt; Date of summary: Fri Feb 22 20:47:21 2019
+#&gt; Date of fit: Mon Feb 25 14:53:31 2019
+#&gt; Date of summary: Mon Feb 25 14:53:31 2019
#&gt;
#&gt; Equations:
#&gt; d_parent/dt = - k_parent * parent
@@ -1232,7 +1232,7 @@
#&gt;
#&gt; Model predictions using solution type deSolve
#&gt;
-#&gt; Fitted with method Port using 692 model solutions performed in 3.38 s
+#&gt; Fitted with method Port using 692 model solutions performed in 3.302 s
#&gt;
#&gt; Weighting: manual
#&gt;
diff --git a/docs/reference/mkinmod.html b/docs/reference/mkinmod.html
index 64fba5e5..ba26c686 100644
--- a/docs/reference/mkinmod.html
+++ b/docs/reference/mkinmod.html
@@ -231,7 +231,7 @@ For the definition of model types and their parameters, the equations given
<span class='no'>SFO_SFO</span> <span class='kw'>&lt;-</span> <span class='fu'>mkinmod</span>(
<span class='kw'>parent</span> <span class='kw'>=</span> <span class='fu'><a href='mkinsub.html'>mkinsub</a></span>(<span class='st'>"SFO"</span>, <span class='st'>"m1"</span>),
<span class='kw'>m1</span> <span class='kw'>=</span> <span class='fu'><a href='mkinsub.html'>mkinsub</a></span>(<span class='st'>"SFO"</span>), <span class='kw'>verbose</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)</div><div class='output co'>#&gt; Compilation argument:
-#&gt; /usr/lib/R/bin/R CMD SHLIB file622753352edd.c 2&gt; file622753352edd.c.err.txt
+#&gt; /usr/lib/R/bin/R CMD SHLIB file481263217c00.c 2&gt; file481263217c00.c.err.txt
#&gt; Program source:
#&gt; 1: #include &lt;R.h&gt;
#&gt; 2:
diff --git a/docs/reference/mkinpredict.html b/docs/reference/mkinpredict.html
index 2b4c33aa..738eeb9d 100644
--- a/docs/reference/mkinpredict.html
+++ b/docs/reference/mkinpredict.html
@@ -325,7 +325,7 @@
<span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/c'>c</a></span>(<span class='kw'>parent</span> <span class='kw'>=</span> <span class='fl'>100</span>, <span class='kw'>m1</span> <span class='kw'>=</span> <span class='fl'>0</span>), <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/seq'>seq</a></span>(<span class='fl'>0</span>, <span class='fl'>20</span>, <span class='kw'>by</span> <span class='kw'>=</span> <span class='fl'>0.1</span>),
<span class='kw'>solution_type</span> <span class='kw'>=</span> <span class='st'>"eigen"</span>)[<span class='fl'>201</span>,]))</div><div class='output co'>#&gt; time parent m1
#&gt; 201 20 4.978707 27.46227</div><div class='output co'>#&gt; User System verstrichen
-#&gt; 0.004 0.000 0.003 </div><div class='input'> <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/system.time'>system.time</a></span>(
+#&gt; 0.003 0.000 0.003 </div><div class='input'> <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/system.time'>system.time</a></span>(
<span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/print'>print</a></span>(<span class='fu'>mkinpredict</span>(<span class='no'>SFO_SFO</span>, <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/c'>c</a></span>(<span class='kw'>k_parent_m1</span> <span class='kw'>=</span> <span class='fl'>0.05</span>, <span class='kw'>k_parent_sink</span> <span class='kw'>=</span> <span class='fl'>0.1</span>, <span class='kw'>k_m1_sink</span> <span class='kw'>=</span> <span class='fl'>0.01</span>),
<span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/c'>c</a></span>(<span class='kw'>parent</span> <span class='kw'>=</span> <span class='fl'>100</span>, <span class='kw'>m1</span> <span class='kw'>=</span> <span class='fl'>0</span>), <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/seq'>seq</a></span>(<span class='fl'>0</span>, <span class='fl'>20</span>, <span class='kw'>by</span> <span class='kw'>=</span> <span class='fl'>0.1</span>),
<span class='kw'>solution_type</span> <span class='kw'>=</span> <span class='st'>"deSolve"</span>)[<span class='fl'>201</span>,]))</div><div class='output co'>#&gt; time parent m1
@@ -335,7 +335,7 @@
<span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/c'>c</a></span>(<span class='kw'>parent</span> <span class='kw'>=</span> <span class='fl'>100</span>, <span class='kw'>m1</span> <span class='kw'>=</span> <span class='fl'>0</span>), <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/seq'>seq</a></span>(<span class='fl'>0</span>, <span class='fl'>20</span>, <span class='kw'>by</span> <span class='kw'>=</span> <span class='fl'>0.1</span>),
<span class='kw'>solution_type</span> <span class='kw'>=</span> <span class='st'>"deSolve"</span>, <span class='kw'>use_compiled</span> <span class='kw'>=</span> <span class='fl'>FALSE</span>)[<span class='fl'>201</span>,]))</div><div class='output co'>#&gt; time parent m1
#&gt; 201 20 4.978707 27.46227</div><div class='output co'>#&gt; User System verstrichen
-#&gt; 0.039 0.000 0.040 </div><div class='input'>
+#&gt; 0.047 0.000 0.047 </div><div class='input'>
</div><div class='input'> <span class='co'># Predict from a fitted model</span>
<span class='no'>f</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='mkinfit.html'>mkinfit</a></span>(<span class='no'>SFO_SFO</span>, <span class='no'>FOCUS_2006_C</span>)</div><div class='output co'>#&gt; Model cost at call 1 : 552.5739
#&gt; Model cost at call 3 : 552.5739
diff --git a/docs/reference/mmkin.html b/docs/reference/mmkin.html
index 71ec89e8..1a60e3ea 100644
--- a/docs/reference/mmkin.html
+++ b/docs/reference/mmkin.html
@@ -191,8 +191,8 @@
<span class='no'>time_1</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/system.time'>system.time</a></span>(<span class='no'>fits.4</span> <span class='kw'>&lt;-</span> <span class='fu'>mmkin</span>(<span class='no'>models</span>, <span class='no'>datasets</span>, <span class='kw'>cores</span> <span class='kw'>=</span> <span class='fl'>1</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>))
<span class='no'>time_default</span></div><div class='output co'>#&gt; User System verstrichen
-#&gt; 0.052 0.044 7.383 </div><div class='input'><span class='no'>time_1</span></div><div class='output co'>#&gt; User System verstrichen
-#&gt; 23.652 0.004 23.672 </div><div class='input'>
+#&gt; 0.036 0.039 7.196 </div><div class='input'><span class='no'>time_1</span></div><div class='output co'>#&gt; User System verstrichen
+#&gt; 22.818 0.000 22.834 </div><div class='input'>
<span class='fu'><a href='endpoints.html'>endpoints</a></span>(<span class='no'>fits.0</span><span class='kw'>[[</span><span class='st'>"SFO_lin"</span>, <span class='fl'>2</span>]])</div><div class='output co'>#&gt; $ff
#&gt; parent_M1 parent_sink M1_M2 M1_sink
#&gt; 0.7340480 0.2659520 0.7505686 0.2494314
diff --git a/docs/reference/summary.mkinfit.html b/docs/reference/summary.mkinfit.html
index 39ef962c..f0d4a060 100644
--- a/docs/reference/summary.mkinfit.html
+++ b/docs/reference/summary.mkinfit.html
@@ -208,15 +208,15 @@
<h2 class="hasAnchor" id="examples"><a class="anchor" href="#examples"></a>Examples</h2>
<pre class="examples"><div class='input'> <span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/summary'>summary</a></span>(<span class='fu'><a href='mkinfit.html'>mkinfit</a></span>(<span class='fu'><a href='mkinmod.html'>mkinmod</a></span>(<span class='kw'>parent</span> <span class='kw'>=</span> <span class='fu'><a href='mkinsub.html'>mkinsub</a></span>(<span class='st'>"SFO"</span>)), <span class='no'>FOCUS_2006_A</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>))</div><div class='output co'>#&gt; mkin version used for fitting: 0.9.48.1
#&gt; R version used for fitting: 3.5.2
-#&gt; Date of fit: Fri Feb 22 20:48:16 2019
-#&gt; Date of summary: Fri Feb 22 20:48:16 2019
+#&gt; Date of fit: Mon Feb 25 14:54:24 2019
+#&gt; Date of summary: Mon Feb 25 14:54:24 2019
#&gt;
#&gt; Equations:
#&gt; d_parent/dt = - k_parent_sink * parent
#&gt;
#&gt; Model predictions using solution type analytical
#&gt;
-#&gt; Fitted with method Port using 35 model solutions performed in 0.088 s
+#&gt; Fitted with method Port using 35 model solutions performed in 0.085 s
#&gt;
#&gt; Weighting: none
#&gt;
diff --git a/docs/reference/transform_odeparms.html b/docs/reference/transform_odeparms.html
index 9d18fbb2..1071a932 100644
--- a/docs/reference/transform_odeparms.html
+++ b/docs/reference/transform_odeparms.html
@@ -202,8 +202,8 @@ The transformation of sets of formation fractions is fragile, as it supposes
<span class='no'>fit</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='mkinfit.html'>mkinfit</a></span>(<span class='no'>SFO_SFO</span>, <span class='no'>FOCUS_2006_D</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)
<span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/summary'>summary</a></span>(<span class='no'>fit</span>, <span class='kw'>data</span><span class='kw'>=</span><span class='fl'>FALSE</span>) <span class='co'># See transformed and backtransformed parameters</span></div><div class='output co'>#&gt; mkin version used for fitting: 0.9.48.1
#&gt; R version used for fitting: 3.5.2
-#&gt; Date of fit: Fri Feb 22 20:48:24 2019
-#&gt; Date of summary: Fri Feb 22 20:48:24 2019
+#&gt; Date of fit: Mon Feb 25 14:54:32 2019
+#&gt; Date of summary: Mon Feb 25 14:54:32 2019
#&gt;
#&gt; Equations:
#&gt; d_parent/dt = - k_parent_sink * parent - k_parent_m1 * parent
@@ -211,7 +211,7 @@ The transformation of sets of formation fractions is fragile, as it supposes
#&gt;
#&gt; Model predictions using solution type deSolve
#&gt;
-#&gt; Fitted with method Port using 153 model solutions performed in 0.717 s
+#&gt; Fitted with method Port using 153 model solutions performed in 0.704 s
#&gt;
#&gt; Weighting: none
#&gt;
@@ -278,8 +278,8 @@ The transformation of sets of formation fractions is fragile, as it supposes
</div><div class='input'><span class='no'>fit.2</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='mkinfit.html'>mkinfit</a></span>(<span class='no'>SFO_SFO</span>, <span class='no'>FOCUS_2006_D</span>, <span class='kw'>transform_rates</span> <span class='kw'>=</span> <span class='fl'>FALSE</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)
<span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/summary'>summary</a></span>(<span class='no'>fit.2</span>, <span class='kw'>data</span><span class='kw'>=</span><span class='fl'>FALSE</span>)</div><div class='output co'>#&gt; mkin version used for fitting: 0.9.48.1
#&gt; R version used for fitting: 3.5.2
-#&gt; Date of fit: Fri Feb 22 20:48:26 2019
-#&gt; Date of summary: Fri Feb 22 20:48:26 2019
+#&gt; Date of fit: Mon Feb 25 14:54:34 2019
+#&gt; Date of summary: Mon Feb 25 14:54:34 2019
#&gt;
#&gt; Equations:
#&gt; d_parent/dt = - k_parent_sink * parent - k_parent_m1 * parent
@@ -287,7 +287,7 @@ The transformation of sets of formation fractions is fragile, as it supposes
#&gt;
#&gt; Model predictions using solution type deSolve
#&gt;
-#&gt; Fitted with method Port using 350 model solutions performed in 1.661 s
+#&gt; Fitted with method Port using 350 model solutions performed in 1.62 s
#&gt;
#&gt; Weighting: none
#&gt;
@@ -366,8 +366,8 @@ The transformation of sets of formation fractions is fragile, as it supposes
<span class='no'>fit.ff</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='mkinfit.html'>mkinfit</a></span>(<span class='no'>SFO_SFO.ff</span>, <span class='no'>FOCUS_2006_D</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)
<span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/summary'>summary</a></span>(<span class='no'>fit.ff</span>, <span class='kw'>data</span> <span class='kw'>=</span> <span class='fl'>FALSE</span>)</div><div class='output co'>#&gt; mkin version used for fitting: 0.9.48.1
#&gt; R version used for fitting: 3.5.2
-#&gt; Date of fit: Fri Feb 22 20:48:27 2019
-#&gt; Date of summary: Fri Feb 22 20:48:27 2019
+#&gt; Date of fit: Mon Feb 25 14:54:35 2019
+#&gt; Date of summary: Mon Feb 25 14:54:35 2019
#&gt;
#&gt; Equations:
#&gt; d_parent/dt = - k_parent * parent
@@ -375,7 +375,7 @@ The transformation of sets of formation fractions is fragile, as it supposes
#&gt;
#&gt; Model predictions using solution type deSolve
#&gt;
-#&gt; Fitted with method Port using 186 model solutions performed in 0.871 s
+#&gt; Fitted with method Port using 186 model solutions performed in 0.856 s
#&gt;
#&gt; Weighting: none
#&gt;
@@ -450,8 +450,8 @@ The transformation of sets of formation fractions is fragile, as it supposes
<span class='no'>fit.ff.2</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='mkinfit.html'>mkinfit</a></span>(<span class='no'>SFO_SFO.ff.2</span>, <span class='no'>FOCUS_2006_D</span>, <span class='kw'>quiet</span> <span class='kw'>=</span> <span class='fl'>TRUE</span>)
<span class='fu'><a href='https://www.rdocumentation.org/packages/base/topics/summary'>summary</a></span>(<span class='no'>fit.ff.2</span>, <span class='kw'>data</span> <span class='kw'>=</span> <span class='fl'>FALSE</span>)</div><div class='output co'>#&gt; mkin version used for fitting: 0.9.48.1
#&gt; R version used for fitting: 3.5.2
-#&gt; Date of fit: Fri Feb 22 20:48:28 2019
-#&gt; Date of summary: Fri Feb 22 20:48:28 2019
+#&gt; Date of fit: Mon Feb 25 14:54:36 2019
+#&gt; Date of summary: Mon Feb 25 14:54:36 2019
#&gt;
#&gt; Equations:
#&gt; d_parent/dt = - k_parent * parent
@@ -459,7 +459,7 @@ The transformation of sets of formation fractions is fragile, as it supposes
#&gt;
#&gt; Model predictions using solution type deSolve
#&gt;
-#&gt; Fitted with method Port using 104 model solutions performed in 0.484 s
+#&gt; Fitted with method Port using 104 model solutions performed in 0.482 s
#&gt;
#&gt; Weighting: none
#&gt;
diff --git a/test.log b/test.log
index 5a71534f..345746e2 100644
--- a/test.log
+++ b/test.log
@@ -1,28 +1,30 @@
Loading mkin
Testing mkin
✔ | OK F W S | Context
- ⠏ | 0 | Calculation of FOCUS chi2 error levels ⠋ | 1 | Calculation of FOCUS chi2 error levels ⠙ | 2 | Calculation of FOCUS chi2 error levels ✔ | 2 | Calculation of FOCUS chi2 error levels [2.5 s]
- ⠏ | 0 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠋ | 1 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠙ | 2 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠹ | 3 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠸ | 4 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠼ | 5 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠴ | 6 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠦ | 7 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠧ | 8 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ✔ | 8 | Results for FOCUS D established in expertise for UBA (Ranke 2014) [7.2 s]
- ⠏ | 0 | Iteratively reweighted least squares (IRLS) fitting ⠋ | 1 | Iteratively reweighted least squares (IRLS) fitting ⠙ | 1 1 | Iteratively reweighted least squares (IRLS) fitting ✔ | 1 1 | Iteratively reweighted least squares (IRLS) fitting [9.0 s]
+ ⠏ | 0 | Calculation of FOCUS chi2 error levels ⠋ | 1 | Calculation of FOCUS chi2 error levels ⠙ | 2 | Calculation of FOCUS chi2 error levels ✔ | 2 | Calculation of FOCUS chi2 error levels [2.4 s]
+ ⠏ | 0 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠋ | 1 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠙ | 2 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠹ | 3 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠸ | 4 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠼ | 5 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠴ | 6 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠦ | 7 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠧ | 8 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ✔ | 8 | Results for FOCUS D established in expertise for UBA (Ranke 2014) [7.1 s]
+ ⠏ | 0 | Iteratively reweighted least squares (IRLS) fitting ⠋ | 1 | Iteratively reweighted least squares (IRLS) fitting ⠙ | 1 1 | Iteratively reweighted least squares (IRLS) fitting ✔ | 1 1 | Iteratively reweighted least squares (IRLS) fitting [8.8 s]
────────────────────────────────────────────────────────────────────────────────
test_irls.R:44: skip: Reweighting method 'tc' works
Too much trouble with datasets that are randomly generated
────────────────────────────────────────────────────────────────────────────────
⠏ | 0 | Fitting the logistic model ⠋ | 1 | Fitting the logistic model ⠙ | 1 1 | Fitting the logistic model ✔ | 1 1 | Fitting the logistic model [0.5 s]
────────────────────────────────────────────────────────────────────────────────
-test_logistic.R:42: skip: The logistic fit can be done via differential equation
+test_logistic.R:41: skip: The logistic fit can be done via differential equation
Skip slow fit of logistic model using deSolve without compilation
────────────────────────────────────────────────────────────────────────────────
⠏ | 0 | Model predictions with mkinpredict ⠋ | 1 | Model predictions with mkinpredict ⠙ | 2 | Model predictions with mkinpredict ⠹ | 3 | Model predictions with mkinpredict ✔ | 3 | Model predictions with mkinpredict [0.3 s]
- ⠏ | 0 | Fitting of parent only models ⠋ | 1 | Fitting of parent only models ⠙ | 2 | Fitting of parent only models ⠹ | 3 | Fitting of parent only models ⠸ | 4 | Fitting of parent only models ⠼ | 5 | Fitting of parent only models ⠴ | 6 | Fitting of parent only models ⠦ | 7 | Fitting of parent only models ⠧ | 8 | Fitting of parent only models ⠇ | 9 | Fitting of parent only models ⠏ | 10 | Fitting of parent only models ⠋ | 11 | Fitting of parent only models ⠙ | 12 | Fitting of parent only models ⠹ | 13 | Fitting of parent only models ⠸ | 14 | Fitting of parent only models ⠼ | 15 | Fitting of parent only models ⠴ | 16 | Fitting of parent only models ⠦ | 17 | Fitting of parent only models ⠧ | 18 | Fitting of parent only models ⠇ | 19 | Fitting of parent only models ⠏ | 20 | Fitting of parent only models ⠋ | 21 | Fitting of parent only models ✔ | 21 | Fitting of parent only models [23.9 s]
- ⠏ | 0 | Complex test case from Schaefer et al. (2007) Piacenza paper ⠋ | 1 | Complex test case from Schaefer et al. (2007) Piacenza paper ⠙ | 2 | Complex test case from Schaefer et al. (2007) Piacenza paper ✔ | 2 | Complex test case from Schaefer et al. (2007) Piacenza paper [6.0 s]
+ ⠏ | 0 | Evaluations according to the NAFTA guidance from 2015 ⠋ | 1 | Evaluations according to the NAFTA guidance from 2015 ⠙ | 1 1 | Evaluations according to the NAFTA guidance from 2015 ⠙ | 2 | Evaluations according to the NAFTA guidance from 2015 ⠹ | 3 | Evaluations according to the NAFTA guidance from 2015 ⠸ | 4 | Evaluations according to the NAFTA guidance from 2015 ⠼ | 5 | Evaluations according to the NAFTA guidance from 2015 ⠴ | 6 | Evaluations according to the NAFTA guidance from 2015 ⠦ | 7 | Evaluations according to the NAFTA guidance from 2015 ✔ | 7 | Evaluations according to the NAFTA guidance from 2015 [0.7 s]
+ ⠏ | 0 | Fitting of parent only models ⠋ | 1 | Fitting of parent only models ⠙ | 2 | Fitting of parent only models ⠹ | 3 | Fitting of parent only models ⠸ | 4 | Fitting of parent only models ⠼ | 5 | Fitting of parent only models ⠴ | 6 | Fitting of parent only models ⠦ | 7 | Fitting of parent only models ⠧ | 8 | Fitting of parent only models ⠇ | 9 | Fitting of parent only models ⠏ | 10 | Fitting of parent only models ⠋ | 11 | Fitting of parent only models ⠙ | 12 | Fitting of parent only models ⠹ | 13 | Fitting of parent only models ⠸ | 14 | Fitting of parent only models ⠼ | 15 | Fitting of parent only models ⠴ | 16 | Fitting of parent only models ⠦ | 17 | Fitting of parent only models ⠧ | 18 | Fitting of parent only models ⠇ | 19 | Fitting of parent only models ⠏ | 20 | Fitting of parent only models ⠋ | 21 | Fitting of parent only models ✔ | 21 | Fitting of parent only models [23.8 s]
+ ⠏ | 0 | Calculation of maximum time weighted average concentrations (TWAs) ⠋ | 1 | Calculation of maximum time weighted average concentrations (TWAs) ⠙ | 2 | Calculation of maximum time weighted average concentrations (TWAs) ⠹ | 3 | Calculation of maximum time weighted average concentrations (TWAs) ⠸ | 4 | Calculation of maximum time weighted average concentrations (TWAs) ⠼ | 5 | Calculation of maximum time weighted average concentrations (TWAs) ⠴ | 6 | Calculation of maximum time weighted average concentrations (TWAs) ⠦ | 7 | Calculation of maximum time weighted average concentrations (TWAs) ⠧ | 8 | Calculation of maximum time weighted average concentrations (TWAs) ✔ | 8 | Calculation of maximum time weighted average concentrations (TWAs) [7.2 s]
+ ⠏ | 0 | Plotting ⠋ | 1 | Plotting ⠙ | 2 | Plotting ✔ | 2 | Plotting [0.4 s]
+ ⠏ | 0 | Complex test case from Schaefer et al. (2007) Piacenza paper ⠋ | 1 | Complex test case from Schaefer et al. (2007) Piacenza paper ⠙ | 2 | Complex test case from Schaefer et al. (2007) Piacenza paper ✔ | 2 | Complex test case from Schaefer et al. (2007) Piacenza paper [5.9 s]
⠏ | 0 | Results for synthetic data established in expertise for UBA (Ranke 2014) ⠋ | 1 | Results for synthetic data established in expertise for UBA (Ranke 2014) ⠙ | 2 | Results for synthetic data established in expertise for UBA (Ranke 2014) ⠹ | 3 | Results for synthetic data established in expertise for UBA (Ranke 2014) ⠸ | 4 | Results for synthetic data established in expertise for UBA (Ranke 2014) ✔ | 4 | Results for synthetic data established in expertise for UBA (Ranke 2014) [7.5 s]
- ⠏ | 0 | Calculation of maximum time weighted average concentrations (TWAs) ⠋ | 1 | Calculation of maximum time weighted average concentrations (TWAs) ⠙ | 2 | Calculation of maximum time weighted average concentrations (TWAs) ⠹ | 3 | Calculation of maximum time weighted average concentrations (TWAs) ⠸ | 4 | Calculation of maximum time weighted average concentrations (TWAs) ⠼ | 5 | Calculation of maximum time weighted average concentrations (TWAs) ⠴ | 6 | Calculation of maximum time weighted average concentrations (TWAs) ⠦ | 7 | Calculation of maximum time weighted average concentrations (TWAs) ⠧ | 8 | Calculation of maximum time weighted average concentrations (TWAs) ✔ | 8 | Calculation of maximum time weighted average concentrations (TWAs) [8.4 s]
══ Results ═════════════════════════════════════════════════════════════════════
-Duration: 65.5 s
+Duration: 65.9 s
-OK: 50
+OK: 59
Failed: 0
Warnings: 0
Skipped: 2
diff --git a/tests/figs/deps.txt b/tests/figs/deps.txt
new file mode 100644
index 00000000..0f6c3754
--- /dev/null
+++ b/tests/figs/deps.txt
@@ -0,0 +1,3 @@
+- vdiffr-svg-engine: 1.0
+- vdiffr: 0.3.0.9000
+- freetypeharfbuzz: 0.2.5
diff --git a/tests/figs/plotting/mmkin-plot-for-focus-c.svg b/tests/figs/plotting/mmkin-plot-for-focus-c.svg
new file mode 100644
index 00000000..1c697328
--- /dev/null
+++ b/tests/figs/plotting/mmkin-plot-for-focus-c.svg
@@ -0,0 +1,569 @@
+<?xml version='1.0' encoding='UTF-8' ?>
+<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 720.00 576.00'>
+<defs>
+ <style type='text/css'><![CDATA[
+ line, polyline, polygon, path, rect, circle {
+ fill: none;
+ stroke: #000000;
+ stroke-linecap: round;
+ stroke-linejoin: round;
+ stroke-miterlimit: 10.00;
+ }
+ ]]></style>
+</defs>
+<rect width='100%' height='100%' style='stroke: none; fill: #FFFFFF;'/>
+<line x1='52.35' y1='121.34' x2='330.13' y2='121.34' style='stroke-width: 0.75;' />
+<line x1='52.35' y1='121.34' x2='52.35' y2='126.38' style='stroke-width: 0.75;' />
+<line x1='98.64' y1='121.34' x2='98.64' y2='126.38' style='stroke-width: 0.75;' />
+<line x1='144.94' y1='121.34' x2='144.94' y2='126.38' style='stroke-width: 0.75;' />
+<line x1='191.24' y1='121.34' x2='191.24' y2='126.38' style='stroke-width: 0.75;' />
+<line x1='237.53' y1='121.34' x2='237.53' y2='126.38' style='stroke-width: 0.75;' />
+<line x1='283.83' y1='121.34' x2='283.83' y2='126.38' style='stroke-width: 0.75;' />
+<line x1='330.13' y1='121.34' x2='330.13' y2='126.38' style='stroke-width: 0.75;' />
+<text x='50.01' y='139.48' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text>
+<text x='93.97' y='139.48' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>20</text>
+<text x='140.27' y='139.48' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>40</text>
+<text x='186.57' y='139.48' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>60</text>
+<text x='232.86' y='139.48' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>80</text>
+<text x='276.82' y='139.48' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>100</text>
+<text x='323.12' y='139.48' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>120</text>
+<line x1='41.33' y1='118.38' x2='41.33' y2='48.73' style='stroke-width: 0.75;' />
+<line x1='41.33' y1='118.38' x2='36.29' y2='118.38' style='stroke-width: 0.75;' />
+<line x1='41.33' y1='100.96' x2='36.29' y2='100.96' style='stroke-width: 0.75;' />
+<line x1='41.33' y1='83.55' x2='36.29' y2='83.55' style='stroke-width: 0.75;' />
+<line x1='41.33' y1='66.14' x2='36.29' y2='66.14' style='stroke-width: 0.75;' />
+<line x1='41.33' y1='48.73' x2='36.29' y2='48.73' style='stroke-width: 0.75;' />
+<text transform='translate(29.23,120.71) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text>
+<text transform='translate(29.23,105.64) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>20</text>
+<text transform='translate(29.23,88.23) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>40</text>
+<text transform='translate(29.23,70.81) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>60</text>
+<text transform='translate(29.23,53.40) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>80</text>
+<polyline points='41.33,121.34 338.83,121.34 338.83,41.33 41.33,41.33 41.33,121.34 ' style='stroke-width: 0.75;' />
+<defs>
+ <clipPath id='cpMC4wMHwzNjAuMDB8MTUxLjU4fDAuMDA='>
+ <rect x='0.00' y='0.00' width='360.00' height='151.58' />
+ </clipPath>
+</defs>
+<g clip-path='url(#cpMC4wMHwzNjAuMDB8MTUxLjU4fDAuMDA=)'><text x='180.92' y='159.64' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='18.33px' lengthAdjust='spacingAndGlyphs'>Time</text></g>
+<g clip-path='url(#cpMC4wMHwzNjAuMDB8MTUxLjU4fDAuMDA=)'><text transform='translate(9.07,99.54) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='36.42px' lengthAdjust='spacingAndGlyphs'>Observed</text></g>
+<defs>
+ <clipPath id='cpNDEuMzN8MzM4LjgzfDEyMS4zNHw0MS4zMw=='>
+ <rect x='41.33' y='41.33' width='297.50' height='80.01' />
+ </clipPath>
+</defs>
+<circle cx='52.35' cy='44.29' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDEyMS4zNHw0MS4zMw==)' />
+<circle cx='54.66' cy='67.97' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDEyMS4zNHw0MS4zMw==)' />
+<circle cx='59.29' cy='92.35' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDEyMS4zNHw0MS4zMw==)' />
+<circle cx='68.55' cy='105.67' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDEyMS4zNHw0MS4zMw==)' />
+<circle cx='84.75' cy='109.93' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDEyMS4zNHw0MS4zMw==)' />
+<circle cx='117.16' cy='112.63' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDEyMS4zNHw0MS4zMw==)' />
+<circle cx='198.18' cy='114.89' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDEyMS4zNHw0MS4zMw==)' />
+<circle cx='263.00' cy='114.98' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDEyMS4zNHw0MS4zMw==)' />
+<circle cx='327.81' cy='117.85' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDEyMS4zNHw0MS4zMw==)' />
+<polyline points='52.35,46.56 55.13,68.67 57.91,83.97 60.69,94.56 63.48,101.89 66.26,106.96 69.04,110.48 71.82,112.91 74.61,114.59 77.39,115.76 80.17,116.56 82.95,117.12 85.74,117.51 88.52,117.77 91.30,117.96 94.08,118.09 96.87,118.18 99.65,118.24 102.43,118.28 105.21,118.31 108.00,118.33 110.78,118.34 113.56,118.35 116.34,118.36 119.13,118.37 121.91,118.37 124.69,118.37 127.47,118.37 130.26,118.37 133.04,118.37 135.82,118.37 138.60,118.37 141.39,118.38 144.17,118.38 146.95,118.38 149.73,118.38 152.52,118.38 155.30,118.38 158.08,118.38 160.86,118.38 163.65,118.38 166.43,118.38 169.21,118.38 171.99,118.38 174.78,118.38 177.56,118.38 180.34,118.38 183.12,118.38 185.91,118.38 188.69,118.38 191.47,118.38 194.25,118.38 197.04,118.38 199.82,118.38 202.60,118.38 205.38,118.38 208.17,118.38 210.95,118.38 213.73,118.38 216.51,118.38 219.30,118.38 222.08,118.38 224.86,118.38 227.64,118.38 230.43,118.38 233.21,118.38 235.99,118.38 238.77,118.38 241.56,118.38 244.34,118.38 247.12,118.38 249.90,118.38 252.69,118.38 255.47,118.38 258.25,118.38 261.03,118.38 263.82,118.38 266.60,118.38 269.38,118.38 272.16,118.38 274.95,118.38 277.73,118.38 280.51,118.38 283.29,118.38 286.08,118.38 288.86,118.38 291.64,118.38 294.42,118.38 297.21,118.38 299.99,118.38 302.77,118.38 305.55,118.38 308.34,118.38 311.12,118.38 313.90,118.38 316.68,118.38 319.47,118.38 322.25,118.38 325.03,118.38 327.81,118.38 ' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDEyMS4zNHw0MS4zMw==)' />
+<rect x='271.42' y='45.33' width='52.54' height='20.16' style='stroke-width: 0.75; fill: #FFFFFF;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDEyMS4zNHw0MS4zMw==)' />
+<line x1='273.68' y1='55.41' x2='288.80' y2='55.41' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDEyMS4zNHw0MS4zMw==)' />
+<circle cx='281.24' cy='55.41' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDEyMS4zNHw0MS4zMw==)' />
+<g clip-path='url(#cpNDEuMzN8MzM4LjgzfDEyMS4zNHw0MS4zMw==)'><text x='296.36' y='58.29' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='23.81px' lengthAdjust='spacingAndGlyphs'>parent</text></g>
+<defs>
+ <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='>
+ <rect x='0.00' y='0.00' width='720.00' height='576.00' />
+ </clipPath>
+</defs>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='335.91' y='20.16' style='font-size: 10.08px; font-weight: bold; font-family: Liberation Sans;' textLength='48.17px' lengthAdjust='spacingAndGlyphs'>FOCUS_C</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='140.01' y='33.55' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='17.25px' lengthAdjust='spacingAndGlyphs'>SFO</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='157.26' y='33.55' style='font-size: 8.40px; font-family: Symbola;' textLength='2.09px' lengthAdjust='spacingAndGlyphs'> </text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='159.36' y='33.55' style='font-size: 8.40px; font-family: Symbola;' textLength='3.91px' lengthAdjust='spacingAndGlyphs'>χ</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='163.26' y='29.33' style='font-size: 5.88px; font-family: Liberation Sans;' textLength='3.27px' lengthAdjust='spacingAndGlyphs'>2</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='166.53' y='33.55' style='font-size: 8.40px; font-family: Symbola;' textLength='2.09px' lengthAdjust='spacingAndGlyphs'> </text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='168.62' y='33.55' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='37.33px' lengthAdjust='spacingAndGlyphs'>error level</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='207.89' y='33.55' style='font-size: 8.40px; font-family: Symbola;' textLength='6.52px' lengthAdjust='spacingAndGlyphs'>=</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='216.35' y='33.55' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='23.80px' lengthAdjust='spacingAndGlyphs'>15.8%</text></g>
+<defs>
+ <clipPath id='cpNDAxLjMzfDY5OC44M3wxMjEuMzR8NDEuMzM='>
+ <rect x='401.33' y='41.33' width='297.50' height='80.01' />
+ </clipPath>
+</defs>
+<defs>
+ <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='>
+ <rect x='0.00' y='0.00' width='720.00' height='576.00' />
+ </clipPath>
+</defs>
+<line x1='412.35' y1='121.34' x2='664.88' y2='121.34' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='412.35' y1='121.34' x2='412.35' y2='126.38' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='454.43' y1='121.34' x2='454.43' y2='126.38' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='496.52' y1='121.34' x2='496.52' y2='126.38' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='538.61' y1='121.34' x2='538.61' y2='126.38' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='580.70' y1='121.34' x2='580.70' y2='126.38' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='622.79' y1='121.34' x2='622.79' y2='126.38' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='664.88' y1='121.34' x2='664.88' y2='126.38' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='410.01' y='139.48' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='449.76' y='139.48' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>20</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='491.85' y='139.48' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>40</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='533.94' y='139.48' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>60</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='576.03' y='139.48' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>80</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='615.78' y='139.48' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>100</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='657.87' y='139.48' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>120</text></g>
+<line x1='401.33' y1='117.38' x2='401.33' y2='45.29' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='401.33' y1='117.38' x2='396.29' y2='117.38' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='401.33' y1='99.36' x2='396.29' y2='99.36' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='401.33' y1='81.33' x2='396.29' y2='81.33' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='401.33' y1='63.31' x2='396.29' y2='63.31' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='401.33' y1='45.29' x2='396.29' y2='45.29' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,123.45) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='12.14px' lengthAdjust='spacingAndGlyphs'>-10</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,103.09) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='7.47px' lengthAdjust='spacingAndGlyphs'>-5</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,83.67) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,65.65) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>5</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,49.96) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>10</text></g>
+<polyline points='401.33,121.34 698.83,121.34 698.83,41.33 401.33,41.33 401.33,121.34 ' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<defs>
+ <clipPath id='cpMzYwLjAwfDcyMC4wMHwxNTEuNTh8MC4wMA=='>
+ <rect x='360.00' y='0.00' width='360.00' height='151.58' />
+ </clipPath>
+</defs>
+<g clip-path='url(#cpMzYwLjAwfDcyMC4wMHwxNTEuNTh8MC4wMA==)'><text x='540.92' y='159.64' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='18.33px' lengthAdjust='spacingAndGlyphs'>Time</text></g>
+<g clip-path='url(#cpMzYwLjAwfDcyMC4wMHwxNTEuNTh8MC4wMA==)'><text transform='translate(369.07,97.67) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='32.67px' lengthAdjust='spacingAndGlyphs'>Residual</text></g>
+<defs>
+ <clipPath id='cpNDAxLjMzfDY5OC44M3wxMjEuMzR8NDEuMzM='>
+ <rect x='401.33' y='41.33' width='297.50' height='80.01' />
+ </clipPath>
+</defs>
+<circle cx='412.35' cy='71.93' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wxMjEuMzR8NDEuMzM=)' />
+<circle cx='414.45' cy='91.58' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wxMjEuMzR8NDEuMzM=)' />
+<circle cx='418.66' cy='92.27' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wxMjEuMzR8NDEuMzM=)' />
+<circle cx='427.08' cy='63.61' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wxMjEuMzR8NDEuMzM=)' />
+<circle cx='441.81' cy='50.47' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wxMjEuMzR8NDEuMzM=)' />
+<circle cx='471.27' cy='57.60' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wxMjEuMzR8NDEuMzM=)' />
+<circle cx='544.92' cy='66.92' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wxMjEuMzR8NDEuMzM=)' />
+<circle cx='603.85' cy='67.28' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wxMjEuMzR8NDEuMzM=)' />
+<circle cx='662.77' cy='79.17' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wxMjEuMzR8NDEuMzM=)' />
+<line x1='401.33' y1='81.33' x2='698.83' y2='81.33' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wxMjEuMzR8NDEuMzM=)' />
+<defs>
+ <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='>
+ <rect x='0.00' y='0.00' width='720.00' height='576.00' />
+ </clipPath>
+</defs>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='523.49' y='35.28' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='53.19px' lengthAdjust='spacingAndGlyphs'>SFO residuals</text></g>
+<defs>
+ <clipPath id='cpNDEuMzN8MzM4LjgzfDI1Ny43NnwxNzIuNzU='>
+ <rect x='41.33' y='172.75' width='297.50' height='85.01' />
+ </clipPath>
+</defs>
+<defs>
+ <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='>
+ <rect x='0.00' y='0.00' width='720.00' height='576.00' />
+ </clipPath>
+</defs>
+<line x1='52.35' y1='257.76' x2='330.13' y2='257.76' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='52.35' y1='257.76' x2='52.35' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='98.64' y1='257.76' x2='98.64' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='144.94' y1='257.76' x2='144.94' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='191.24' y1='257.76' x2='191.24' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='237.53' y1='257.76' x2='237.53' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='283.83' y1='257.76' x2='283.83' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='330.13' y1='257.76' x2='330.13' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='50.01' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='93.97' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>20</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='140.27' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>40</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='186.57' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>60</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='232.86' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>80</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='276.82' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>100</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='323.12' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>120</text></g>
+<line x1='41.33' y1='254.61' x2='41.33' y2='181.28' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='41.33' y1='254.61' x2='36.29' y2='254.61' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='41.33' y1='236.28' x2='36.29' y2='236.28' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='41.33' y1='217.95' x2='36.29' y2='217.95' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='41.33' y1='199.61' x2='36.29' y2='199.61' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='41.33' y1='181.28' x2='36.29' y2='181.28' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,256.95) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,240.95) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>20</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,222.62) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>40</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,204.29) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>60</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,185.95) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>80</text></g>
+<polyline points='41.33,257.76 338.83,257.76 338.83,172.75 41.33,172.75 41.33,257.76 ' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<defs>
+ <clipPath id='cpMC4wMHwzNjAuMDB8Mjg4LjAwfDE1MS41OA=='>
+ <rect x='0.00' y='151.58' width='360.00' height='136.42' />
+ </clipPath>
+</defs>
+<g clip-path='url(#cpMC4wMHwzNjAuMDB8Mjg4LjAwfDE1MS41OA==)'><text x='180.92' y='296.06' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='18.33px' lengthAdjust='spacingAndGlyphs'>Time</text></g>
+<g clip-path='url(#cpMC4wMHwzNjAuMDB8Mjg4LjAwfDE1MS41OA==)'><text transform='translate(9.07,233.46) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='36.42px' lengthAdjust='spacingAndGlyphs'>Observed</text></g>
+<defs>
+ <clipPath id='cpNDEuMzN8MzM4LjgzfDI1Ny43NnwxNzIuNzU='>
+ <rect x='41.33' y='172.75' width='297.50' height='85.01' />
+ </clipPath>
+</defs>
+<circle cx='52.35' cy='176.61' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43NnwxNzIuNzU=)' />
+<circle cx='54.66' cy='201.54' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43NnwxNzIuNzU=)' />
+<circle cx='59.29' cy='227.20' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43NnwxNzIuNzU=)' />
+<circle cx='68.55' cy='241.23' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43NnwxNzIuNzU=)' />
+<circle cx='84.75' cy='245.72' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43NnwxNzIuNzU=)' />
+<circle cx='117.16' cy='248.56' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43NnwxNzIuNzU=)' />
+<circle cx='198.18' cy='250.94' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43NnwxNzIuNzU=)' />
+<circle cx='263.00' cy='251.04' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43NnwxNzIuNzU=)' />
+<circle cx='327.81' cy='254.06' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43NnwxNzIuNzU=)' />
+<polyline points='52.35,175.90 55.13,207.47 57.91,221.17 60.69,228.78 63.48,233.62 66.26,236.96 69.04,239.40 71.82,241.26 74.61,242.72 77.39,243.90 80.17,244.87 82.95,245.68 85.74,246.37 88.52,246.97 91.30,247.48 94.08,247.93 96.87,248.33 99.65,248.69 102.43,249.01 105.21,249.29 108.00,249.55 110.78,249.79 113.56,250.00 116.34,250.20 119.13,250.38 121.91,250.55 124.69,250.70 127.47,250.85 130.26,250.98 133.04,251.11 135.82,251.22 138.60,251.33 141.39,251.43 144.17,251.53 146.95,251.62 149.73,251.71 152.52,251.79 155.30,251.87 158.08,251.94 160.86,252.01 163.65,252.07 166.43,252.14 169.21,252.20 171.99,252.25 174.78,252.31 177.56,252.36 180.34,252.41 183.12,252.46 185.91,252.50 188.69,252.55 191.47,252.59 194.25,252.63 197.04,252.67 199.82,252.71 202.60,252.74 205.38,252.78 208.17,252.81 210.95,252.84 213.73,252.87 216.51,252.90 219.30,252.93 222.08,252.96 224.86,252.99 227.64,253.02 230.43,253.04 233.21,253.07 235.99,253.09 238.77,253.11 241.56,253.14 244.34,253.16 247.12,253.18 249.90,253.20 252.69,253.22 255.47,253.24 258.25,253.26 261.03,253.28 263.82,253.30 266.60,253.31 269.38,253.33 272.16,253.35 274.95,253.36 277.73,253.38 280.51,253.40 283.29,253.41 286.08,253.42 288.86,253.44 291.64,253.45 294.42,253.47 297.21,253.48 299.99,253.49 302.77,253.51 305.55,253.52 308.34,253.53 311.12,253.54 313.90,253.56 316.68,253.57 319.47,253.58 322.25,253.59 325.03,253.60 327.81,253.61 ' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43NnwxNzIuNzU=)' />
+<defs>
+ <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='>
+ <rect x='0.00' y='0.00' width='720.00' height='576.00' />
+ </clipPath>
+</defs>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='335.91' y='20.16' style='font-size: 10.08px; font-weight: bold; font-family: Liberation Sans;' textLength='48.17px' lengthAdjust='spacingAndGlyphs'>FOCUS_C</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='136.29' y='164.96' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='24.70px' lengthAdjust='spacingAndGlyphs'>FOMC</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='160.99' y='164.96' style='font-size: 8.40px; font-family: Symbola;' textLength='2.09px' lengthAdjust='spacingAndGlyphs'> </text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='163.09' y='164.96' style='font-size: 8.40px; font-family: Symbola;' textLength='3.91px' lengthAdjust='spacingAndGlyphs'>χ</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='166.99' y='160.75' style='font-size: 5.88px; font-family: Liberation Sans;' textLength='3.27px' lengthAdjust='spacingAndGlyphs'>2</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='170.26' y='164.96' style='font-size: 8.40px; font-family: Symbola;' textLength='2.09px' lengthAdjust='spacingAndGlyphs'> </text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='172.35' y='164.96' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='37.33px' lengthAdjust='spacingAndGlyphs'>error level</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='211.62' y='164.96' style='font-size: 8.40px; font-family: Symbola;' textLength='6.52px' lengthAdjust='spacingAndGlyphs'>=</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='220.07' y='164.96' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='23.80px' lengthAdjust='spacingAndGlyphs'>6.66%</text></g>
+<defs>
+ <clipPath id='cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8MTcyLjc1'>
+ <rect x='401.33' y='172.75' width='297.50' height='85.01' />
+ </clipPath>
+</defs>
+<defs>
+ <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='>
+ <rect x='0.00' y='0.00' width='720.00' height='576.00' />
+ </clipPath>
+</defs>
+<line x1='412.35' y1='257.76' x2='664.88' y2='257.76' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='412.35' y1='257.76' x2='412.35' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='454.43' y1='257.76' x2='454.43' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='496.52' y1='257.76' x2='496.52' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='538.61' y1='257.76' x2='538.61' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='580.70' y1='257.76' x2='580.70' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='622.79' y1='257.76' x2='622.79' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='664.88' y1='257.76' x2='664.88' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='410.01' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='449.76' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>20</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='491.85' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>40</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='533.94' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>60</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='576.03' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>80</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='615.78' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>100</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='657.87' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>120</text></g>
+<line x1='401.33' y1='251.57' x2='401.33' y2='178.93' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='401.33' y1='251.57' x2='396.29' y2='251.57' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='401.33' y1='239.47' x2='396.29' y2='239.47' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='401.33' y1='227.36' x2='396.29' y2='227.36' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='401.33' y1='215.25' x2='396.29' y2='215.25' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='401.33' y1='203.15' x2='396.29' y2='203.15' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='401.33' y1='191.04' x2='396.29' y2='191.04' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='401.33' y1='178.93' x2='396.29' y2='178.93' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,255.31) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='7.47px' lengthAdjust='spacingAndGlyphs'>-3</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,231.09) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='7.47px' lengthAdjust='spacingAndGlyphs'>-1</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,205.48) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>1</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,193.38) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>2</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,181.27) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>3</text></g>
+<polyline points='401.33,257.76 698.83,257.76 698.83,172.75 401.33,172.75 401.33,257.76 ' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<defs>
+ <clipPath id='cpMzYwLjAwfDcyMC4wMHwyODguMDB8MTUxLjU4'>
+ <rect x='360.00' y='151.58' width='360.00' height='136.42' />
+ </clipPath>
+</defs>
+<g clip-path='url(#cpMzYwLjAwfDcyMC4wMHwyODguMDB8MTUxLjU4)'><text x='540.92' y='296.06' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='18.33px' lengthAdjust='spacingAndGlyphs'>Time</text></g>
+<g clip-path='url(#cpMzYwLjAwfDcyMC4wMHwyODguMDB8MTUxLjU4)'><text transform='translate(369.07,231.59) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='32.67px' lengthAdjust='spacingAndGlyphs'>Residual</text></g>
+<defs>
+ <clipPath id='cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8MTcyLjc1'>
+ <rect x='401.33' y='172.75' width='297.50' height='85.01' />
+ </clipPath>
+</defs>
+<circle cx='412.35' cy='224.63' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8MTcyLjc1)' />
+<circle cx='414.45' cy='182.46' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8MTcyLjc1)' />
+<circle cx='418.66' cy='238.80' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8MTcyLjc1)' />
+<circle cx='427.08' cy='244.46' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8MTcyLjc1)' />
+<circle cx='441.81' cy='209.70' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8MTcyLjc1)' />
+<circle cx='471.27' cy='192.90' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8MTcyLjc1)' />
+<circle cx='544.92' cy='192.28' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8MTcyLjc1)' />
+<circle cx='603.85' cy='185.48' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8MTcyLjc1)' />
+<circle cx='662.77' cy='221.21' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8MTcyLjc1)' />
+<line x1='401.33' y1='215.25' x2='698.83' y2='215.25' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8MTcyLjc1)' />
+<defs>
+ <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='>
+ <rect x='0.00' y='0.00' width='720.00' height='576.00' />
+ </clipPath>
+</defs>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='519.76' y='166.70' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='60.64px' lengthAdjust='spacingAndGlyphs'>FOMC residuals</text></g>
+<defs>
+ <clipPath id='cpNDEuMzN8MzM4LjgzfDM5NC4xOHwzMDkuMTc='>
+ <rect x='41.33' y='309.17' width='297.50' height='85.01' />
+ </clipPath>
+</defs>
+<defs>
+ <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='>
+ <rect x='0.00' y='0.00' width='720.00' height='576.00' />
+ </clipPath>
+</defs>
+<line x1='52.35' y1='394.18' x2='330.13' y2='394.18' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='52.35' y1='394.18' x2='52.35' y2='399.22' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='98.64' y1='394.18' x2='98.64' y2='399.22' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='144.94' y1='394.18' x2='144.94' y2='399.22' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='191.24' y1='394.18' x2='191.24' y2='399.22' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='237.53' y1='394.18' x2='237.53' y2='399.22' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='283.83' y1='394.18' x2='283.83' y2='399.22' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='330.13' y1='394.18' x2='330.13' y2='399.22' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='50.01' y='412.33' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='93.97' y='412.33' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>20</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='140.27' y='412.33' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>40</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='186.57' y='412.33' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>60</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='232.86' y='412.33' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>80</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='276.82' y='412.33' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>100</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='323.12' y='412.33' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>120</text></g>
+<line x1='41.33' y1='391.03' x2='41.33' y2='317.03' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='41.33' y1='391.03' x2='36.29' y2='391.03' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='41.33' y1='372.53' x2='36.29' y2='372.53' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='41.33' y1='354.03' x2='36.29' y2='354.03' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='41.33' y1='335.53' x2='36.29' y2='335.53' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='41.33' y1='317.03' x2='36.29' y2='317.03' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,393.37) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,377.20) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>20</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,358.71) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>40</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,340.21) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>60</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,321.71) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>80</text></g>
+<polyline points='41.33,394.18 338.83,394.18 338.83,309.17 41.33,309.17 41.33,394.18 ' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<defs>
+ <clipPath id='cpMC4wMHwzNjAuMDB8NDI0LjQyfDI4OC4wMA=='>
+ <rect x='0.00' y='288.00' width='360.00' height='136.42' />
+ </clipPath>
+</defs>
+<g clip-path='url(#cpMC4wMHwzNjAuMDB8NDI0LjQyfDI4OC4wMA==)'><text x='180.92' y='432.49' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='18.33px' lengthAdjust='spacingAndGlyphs'>Time</text></g>
+<g clip-path='url(#cpMC4wMHwzNjAuMDB8NDI0LjQyfDI4OC4wMA==)'><text transform='translate(9.07,369.89) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='36.42px' lengthAdjust='spacingAndGlyphs'>Observed</text></g>
+<defs>
+ <clipPath id='cpNDEuMzN8MzM4LjgzfDM5NC4xOHwzMDkuMTc='>
+ <rect x='41.33' y='309.17' width='297.50' height='85.01' />
+ </clipPath>
+</defs>
+<circle cx='52.35' cy='312.32' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDM5NC4xOHwzMDkuMTc=)' />
+<circle cx='54.66' cy='337.48' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDM5NC4xOHwzMDkuMTc=)' />
+<circle cx='59.29' cy='363.38' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDM5NC4xOHwzMDkuMTc=)' />
+<circle cx='68.55' cy='377.53' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDM5NC4xOHwzMDkuMTc=)' />
+<circle cx='84.75' cy='382.06' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDM5NC4xOHwzMDkuMTc=)' />
+<circle cx='117.16' cy='384.93' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDM5NC4xOHwzMDkuMTc=)' />
+<circle cx='198.18' cy='387.33' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDM5NC4xOHwzMDkuMTc=)' />
+<circle cx='263.00' cy='387.42' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDM5NC4xOHwzMDkuMTc=)' />
+<circle cx='327.81' cy='390.48' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDM5NC4xOHwzMDkuMTc=)' />
+<polyline points='52.35,312.41 55.13,341.15 57.91,357.79 60.69,367.46 63.48,373.12 66.26,376.48 69.04,378.49 71.82,379.75 74.61,380.55 77.39,381.10 80.17,381.50 82.95,381.81 85.74,382.07 88.52,382.29 91.30,382.50 94.08,382.69 96.87,382.88 99.65,383.05 102.43,383.22 105.21,383.39 108.00,383.55 110.78,383.71 113.56,383.87 116.34,384.02 119.13,384.17 121.91,384.32 124.69,384.46 127.47,384.60 130.26,384.73 133.04,384.87 135.82,385.00 138.60,385.13 141.39,385.25 144.17,385.38 146.95,385.50 149.73,385.61 152.52,385.73 155.30,385.84 158.08,385.95 160.86,386.06 163.65,386.16 166.43,386.27 169.21,386.37 171.99,386.47 174.78,386.56 177.56,386.66 180.34,386.75 183.12,386.84 185.91,386.93 188.69,387.02 191.47,387.10 194.25,387.19 197.04,387.27 199.82,387.35 202.60,387.43 205.38,387.50 208.17,387.58 210.95,387.65 213.73,387.72 216.51,387.79 219.30,387.86 222.08,387.93 224.86,388.00 227.64,388.06 230.43,388.12 233.21,388.19 235.99,388.25 238.77,388.30 241.56,388.36 244.34,388.42 247.12,388.47 249.90,388.53 252.69,388.58 255.47,388.63 258.25,388.69 261.03,388.73 263.82,388.78 266.60,388.83 269.38,388.88 272.16,388.92 274.95,388.97 277.73,389.01 280.51,389.06 283.29,389.10 286.08,389.14 288.86,389.18 291.64,389.22 294.42,389.26 297.21,389.29 299.99,389.33 302.77,389.37 305.55,389.40 308.34,389.44 311.12,389.47 313.90,389.50 316.68,389.54 319.47,389.57 322.25,389.60 325.03,389.63 327.81,389.66 ' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDM5NC4xOHwzMDkuMTc=)' />
+<defs>
+ <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='>
+ <rect x='0.00' y='0.00' width='720.00' height='576.00' />
+ </clipPath>
+</defs>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='335.91' y='20.16' style='font-size: 10.08px; font-weight: bold; font-family: Liberation Sans;' textLength='48.17px' lengthAdjust='spacingAndGlyphs'>FOCUS_C</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='136.98' y='301.39' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='23.31px' lengthAdjust='spacingAndGlyphs'>DFOP</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='160.30' y='301.39' style='font-size: 8.40px; font-family: Symbola;' textLength='2.09px' lengthAdjust='spacingAndGlyphs'> </text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='162.39' y='301.39' style='font-size: 8.40px; font-family: Symbola;' textLength='3.91px' lengthAdjust='spacingAndGlyphs'>χ</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='166.30' y='297.17' style='font-size: 5.88px; font-family: Liberation Sans;' textLength='3.27px' lengthAdjust='spacingAndGlyphs'>2</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='169.56' y='301.39' style='font-size: 8.40px; font-family: Symbola;' textLength='2.09px' lengthAdjust='spacingAndGlyphs'> </text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='171.66' y='301.39' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='37.33px' lengthAdjust='spacingAndGlyphs'>error level</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='210.92' y='301.39' style='font-size: 8.40px; font-family: Symbola;' textLength='6.52px' lengthAdjust='spacingAndGlyphs'>=</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='219.38' y='301.39' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='23.80px' lengthAdjust='spacingAndGlyphs'>2.66%</text></g>
+<defs>
+ <clipPath id='cpNDAxLjMzfDY5OC44M3wzOTQuMTh8MzA5LjE3'>
+ <rect x='401.33' y='309.17' width='297.50' height='85.01' />
+ </clipPath>
+</defs>
+<defs>
+ <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='>
+ <rect x='0.00' y='0.00' width='720.00' height='576.00' />
+ </clipPath>
+</defs>
+<line x1='412.35' y1='394.18' x2='664.88' y2='394.18' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='412.35' y1='394.18' x2='412.35' y2='399.22' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='454.43' y1='394.18' x2='454.43' y2='399.22' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='496.52' y1='394.18' x2='496.52' y2='399.22' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='538.61' y1='394.18' x2='538.61' y2='399.22' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='580.70' y1='394.18' x2='580.70' y2='399.22' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='622.79' y1='394.18' x2='622.79' y2='399.22' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='664.88' y1='394.18' x2='664.88' y2='399.22' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='410.01' y='412.33' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='449.76' y='412.33' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>20</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='491.85' y='412.33' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>40</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='533.94' y='412.33' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>60</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='576.03' y='412.33' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>80</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='615.78' y='412.33' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>100</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='657.87' y='412.33' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>120</text></g>
+<line x1='401.33' y1='385.52' x2='401.33' y2='317.83' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='401.33' y1='385.52' x2='396.29' y2='385.52' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='401.33' y1='374.24' x2='396.29' y2='374.24' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='401.33' y1='362.96' x2='396.29' y2='362.96' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='401.33' y1='351.67' x2='396.29' y2='351.67' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='401.33' y1='340.39' x2='396.29' y2='340.39' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='401.33' y1='329.11' x2='396.29' y2='329.11' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='401.33' y1='317.83' x2='396.29' y2='317.83' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,392.76) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.47px' lengthAdjust='spacingAndGlyphs'>-1.5</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,370.19) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.47px' lengthAdjust='spacingAndGlyphs'>-0.5</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,346.23) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='11.67px' lengthAdjust='spacingAndGlyphs'>0.5</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,323.66) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='11.67px' lengthAdjust='spacingAndGlyphs'>1.5</text></g>
+<polyline points='401.33,394.18 698.83,394.18 698.83,309.17 401.33,309.17 401.33,394.18 ' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<defs>
+ <clipPath id='cpMzYwLjAwfDcyMC4wMHw0MjQuNDJ8Mjg4LjAw'>
+ <rect x='360.00' y='288.00' width='360.00' height='136.42' />
+ </clipPath>
+</defs>
+<g clip-path='url(#cpMzYwLjAwfDcyMC4wMHw0MjQuNDJ8Mjg4LjAw)'><text x='540.92' y='432.49' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='18.33px' lengthAdjust='spacingAndGlyphs'>Time</text></g>
+<g clip-path='url(#cpMzYwLjAwfDcyMC4wMHw0MjQuNDJ8Mjg4LjAw)'><text transform='translate(369.07,368.01) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='32.67px' lengthAdjust='spacingAndGlyphs'>Residual</text></g>
+<defs>
+ <clipPath id='cpNDAxLjMzfDY5OC44M3wzOTQuMTh8MzA5LjE3'>
+ <rect x='401.33' y='309.17' width='297.50' height='85.01' />
+ </clipPath>
+</defs>
+<circle cx='412.35' cy='349.48' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wzOTQuMTh8MzA5LjE3)' />
+<circle cx='414.45' cy='354.81' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wzOTQuMTh8MzA5LjE3)' />
+<circle cx='418.66' cy='355.14' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wzOTQuMTh8MzA5LjE3)' />
+<circle cx='427.08' cy='335.11' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wzOTQuMTh8MzA5LjE3)' />
+<circle cx='441.81' cy='353.63' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wzOTQuMTh8MzA5LjE3)' />
+<circle cx='471.27' cy='372.71' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wzOTQuMTh8MzA5LjE3)' />
+<circle cx='544.92' cy='352.41' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wzOTQuMTh8MzA5LjE3)' />
+<circle cx='603.85' cy='318.88' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wzOTQuMTh8MzA5LjE3)' />
+<circle cx='662.77' cy='371.63' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wzOTQuMTh8MzA5LjE3)' />
+<line x1='401.33' y1='351.67' x2='698.83' y2='351.67' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wzOTQuMTh8MzA5LjE3)' />
+<defs>
+ <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='>
+ <rect x='0.00' y='0.00' width='720.00' height='576.00' />
+ </clipPath>
+</defs>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='520.53' y='303.12' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='59.09px' lengthAdjust='spacingAndGlyphs'>DFOP residuals</text></g>
+<defs>
+ <clipPath id='cpNDEuMzN8MzM4LjgzfDUyNC41OXw0NDUuNTk='>
+ <rect x='41.33' y='445.59' width='297.50' height='79.00' />
+ </clipPath>
+</defs>
+<defs>
+ <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='>
+ <rect x='0.00' y='0.00' width='720.00' height='576.00' />
+ </clipPath>
+</defs>
+<line x1='52.35' y1='524.59' x2='330.13' y2='524.59' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='52.35' y1='524.59' x2='52.35' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='98.64' y1='524.59' x2='98.64' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='144.94' y1='524.59' x2='144.94' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='191.24' y1='524.59' x2='191.24' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='237.53' y1='524.59' x2='237.53' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='283.83' y1='524.59' x2='283.83' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='330.13' y1='524.59' x2='330.13' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='50.01' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='93.97' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>20</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='140.27' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>40</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='186.57' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>60</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='232.86' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>80</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='276.82' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>100</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='323.12' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>120</text></g>
+<line x1='41.33' y1='521.67' x2='41.33' y2='452.90' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='41.33' y1='521.67' x2='36.29' y2='521.67' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='41.33' y1='504.47' x2='36.29' y2='504.47' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='41.33' y1='487.28' x2='36.29' y2='487.28' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='41.33' y1='470.09' x2='36.29' y2='470.09' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='41.33' y1='452.90' x2='36.29' y2='452.90' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,524.00) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,509.15) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>20</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,491.95) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>40</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,474.76) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>60</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,457.57) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>80</text></g>
+<polyline points='41.33,524.59 338.83,524.59 338.83,445.59 41.33,445.59 41.33,524.59 ' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<defs>
+ <clipPath id='cpMC4wMHwzNjAuMDB8NTc2LjAwfDQyNC40Mg=='>
+ <rect x='0.00' y='424.42' width='360.00' height='151.58' />
+ </clipPath>
+</defs>
+<g clip-path='url(#cpMC4wMHwzNjAuMDB8NTc2LjAwfDQyNC40Mg==)'><text x='180.92' y='562.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='18.33px' lengthAdjust='spacingAndGlyphs'>Time</text></g>
+<g clip-path='url(#cpMC4wMHwzNjAuMDB8NTc2LjAwfDQyNC40Mg==)'><text transform='translate(9.07,503.30) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='36.42px' lengthAdjust='spacingAndGlyphs'>Observed</text></g>
+<defs>
+ <clipPath id='cpNDEuMzN8MzM4LjgzfDUyNC41OXw0NDUuNTk='>
+ <rect x='41.33' y='445.59' width='297.50' height='79.00' />
+ </clipPath>
+</defs>
+<circle cx='52.35' cy='448.52' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXw0NDUuNTk=)' />
+<circle cx='54.66' cy='471.90' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXw0NDUuNTk=)' />
+<circle cx='59.29' cy='495.96' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXw0NDUuNTk=)' />
+<circle cx='68.55' cy='509.12' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXw0NDUuNTk=)' />
+<circle cx='84.75' cy='513.33' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXw0NDUuNTk=)' />
+<circle cx='117.16' cy='515.99' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXw0NDUuNTk=)' />
+<circle cx='198.18' cy='518.23' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXw0NDUuNTk=)' />
+<circle cx='263.00' cy='518.31' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXw0NDUuNTk=)' />
+<circle cx='327.81' cy='521.15' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXw0NDUuNTk=)' />
+<polyline points='52.35,449.03 55.13,474.33 57.91,490.81 60.69,501.56 63.48,508.56 66.26,510.30 69.04,510.60 71.82,510.90 74.61,511.19 77.39,511.47 80.17,511.75 82.95,512.01 85.74,512.27 88.52,512.52 91.30,512.77 94.08,513.01 96.87,513.24 99.65,513.47 102.43,513.69 105.21,513.90 108.00,514.11 110.78,514.31 113.56,514.51 116.34,514.70 119.13,514.89 121.91,515.07 124.69,515.25 127.47,515.42 130.26,515.59 133.04,515.75 135.82,515.91 138.60,516.07 141.39,516.22 144.17,516.36 146.95,516.51 149.73,516.64 152.52,516.78 155.30,516.91 158.08,517.04 160.86,517.16 163.65,517.28 166.43,517.40 169.21,517.52 171.99,517.63 174.78,517.74 177.56,517.84 180.34,517.94 183.12,518.04 185.91,518.14 188.69,518.24 191.47,518.33 194.25,518.42 197.04,518.51 199.82,518.59 202.60,518.67 205.38,518.75 208.17,518.83 210.95,518.91 213.73,518.98 216.51,519.05 219.30,519.12 222.08,519.19 224.86,519.26 227.64,519.32 230.43,519.39 233.21,519.45 235.99,519.51 238.77,519.57 241.56,519.62 244.34,519.68 247.12,519.73 249.90,519.78 252.69,519.83 255.47,519.88 258.25,519.93 261.03,519.98 263.82,520.02 266.60,520.07 269.38,520.11 272.16,520.15 274.95,520.19 277.73,520.23 280.51,520.27 283.29,520.31 286.08,520.34 288.86,520.38 291.64,520.41 294.42,520.45 297.21,520.48 299.99,520.51 302.77,520.54 305.55,520.57 308.34,520.60 311.12,520.63 313.90,520.66 316.68,520.69 319.47,520.71 322.25,520.74 325.03,520.76 327.81,520.79 ' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXw0NDUuNTk=)' />
+<defs>
+ <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='>
+ <rect x='0.00' y='0.00' width='720.00' height='576.00' />
+ </clipPath>
+</defs>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='335.91' y='20.16' style='font-size: 10.08px; font-weight: bold; font-family: Liberation Sans;' textLength='48.17px' lengthAdjust='spacingAndGlyphs'>FOCUS_C</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='145.15' y='437.81' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='11.66px' lengthAdjust='spacingAndGlyphs'>HS</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='156.80' y='437.81' style='font-size: 8.40px; font-family: Symbola;' textLength='2.09px' lengthAdjust='spacingAndGlyphs'> </text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='158.90' y='437.81' style='font-size: 8.40px; font-family: Symbola;' textLength='3.91px' lengthAdjust='spacingAndGlyphs'>χ</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='162.80' y='433.59' style='font-size: 5.88px; font-family: Liberation Sans;' textLength='3.27px' lengthAdjust='spacingAndGlyphs'>2</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='166.07' y='437.81' style='font-size: 8.40px; font-family: Symbola;' textLength='2.09px' lengthAdjust='spacingAndGlyphs'> </text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='168.16' y='437.81' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='37.33px' lengthAdjust='spacingAndGlyphs'>error level</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='207.43' y='437.81' style='font-size: 8.40px; font-family: Symbola;' textLength='6.52px' lengthAdjust='spacingAndGlyphs'>=</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='215.89' y='437.81' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='19.12px' lengthAdjust='spacingAndGlyphs'>4.7%</text></g>
+<defs>
+ <clipPath id='cpNDAxLjMzfDY5OC44M3w1MjQuNTl8NDQ1LjU5'>
+ <rect x='401.33' y='445.59' width='297.50' height='79.00' />
+ </clipPath>
+</defs>
+<defs>
+ <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='>
+ <rect x='0.00' y='0.00' width='720.00' height='576.00' />
+ </clipPath>
+</defs>
+<line x1='412.35' y1='524.59' x2='664.88' y2='524.59' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='412.35' y1='524.59' x2='412.35' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='454.43' y1='524.59' x2='454.43' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='496.52' y1='524.59' x2='496.52' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='538.61' y1='524.59' x2='538.61' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='580.70' y1='524.59' x2='580.70' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='622.79' y1='524.59' x2='622.79' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='664.88' y1='524.59' x2='664.88' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='410.01' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='449.76' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>20</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='491.85' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>40</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='533.94' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>60</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='576.03' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>80</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='615.78' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>100</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='657.87' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>120</text></g>
+<line x1='401.33' y1='515.99' x2='401.33' y2='454.19' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='401.33' y1='515.99' x2='396.29' y2='515.99' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='401.33' y1='500.54' x2='396.29' y2='500.54' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='401.33' y1='485.09' x2='396.29' y2='485.09' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='401.33' y1='469.64' x2='396.29' y2='469.64' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='401.33' y1='454.19' x2='396.29' y2='454.19' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,519.73) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='7.47px' lengthAdjust='spacingAndGlyphs'>-2</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,504.28) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='7.47px' lengthAdjust='spacingAndGlyphs'>-1</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,487.43) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,471.97) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>1</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,456.52) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>2</text></g>
+<polyline points='401.33,524.59 698.83,524.59 698.83,445.59 401.33,445.59 401.33,524.59 ' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<defs>
+ <clipPath id='cpMzYwLjAwfDcyMC4wMHw1NzYuMDB8NDI0LjQy'>
+ <rect x='360.00' y='424.42' width='360.00' height='151.58' />
+ </clipPath>
+</defs>
+<g clip-path='url(#cpMzYwLjAwfDcyMC4wMHw1NzYuMDB8NDI0LjQy)'><text x='540.92' y='562.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='18.33px' lengthAdjust='spacingAndGlyphs'>Time</text></g>
+<g clip-path='url(#cpMzYwLjAwfDcyMC4wMHw1NzYuMDB8NDI0LjQy)'><text transform='translate(369.07,501.43) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='32.67px' lengthAdjust='spacingAndGlyphs'>Residual</text></g>
+<defs>
+ <clipPath id='cpNDAxLjMzfDY5OC44M3w1MjQuNTl8NDQ1LjU5'>
+ <rect x='401.33' y='445.59' width='297.50' height='79.00' />
+ </clipPath>
+</defs>
+<circle cx='412.35' cy='475.84' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8NDQ1LjU5)' />
+<circle cx='414.45' cy='504.89' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8NDQ1LjU5)' />
+<circle cx='418.66' cy='471.63' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8NDQ1LjU5)' />
+<circle cx='427.08' cy='459.32' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8NDQ1LjU5)' />
+<circle cx='441.81' cy='505.72' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8NDQ1LjU5)' />
+<circle cx='471.27' cy='507.27' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8NDQ1LjU5)' />
+<circle cx='544.92' cy='479.46' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8NDQ1LjU5)' />
+<circle cx='603.85' cy='454.61' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8NDQ1LjU5)' />
+<circle cx='662.77' cy='491.61' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8NDQ1LjU5)' />
+<line x1='401.33' y1='485.09' x2='698.83' y2='485.09' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8NDQ1LjU5)' />
+<defs>
+ <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='>
+ <rect x='0.00' y='0.00' width='720.00' height='576.00' />
+ </clipPath>
+</defs>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='526.28' y='439.54' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='47.59px' lengthAdjust='spacingAndGlyphs'>HS residuals</text></g>
+<defs>
+ <clipPath id='cpNTkuMDR8Njg5Ljc2fDUwMi41Nnw1OS4wNA=='>
+ <rect x='59.04' y='59.04' width='630.72' height='443.52' />
+ </clipPath>
+</defs>
+</svg>
diff --git a/tests/figs/plotting/mmkin-plot-for-sfo-focus-c-and-d.svg b/tests/figs/plotting/mmkin-plot-for-sfo-focus-c-and-d.svg
new file mode 100644
index 00000000..72496e86
--- /dev/null
+++ b/tests/figs/plotting/mmkin-plot-for-sfo-focus-c-and-d.svg
@@ -0,0 +1,300 @@
+<?xml version='1.0' encoding='UTF-8' ?>
+<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 720.00 576.00'>
+<defs>
+ <style type='text/css'><![CDATA[
+ line, polyline, polygon, path, rect, circle {
+ fill: none;
+ stroke: #000000;
+ stroke-linecap: round;
+ stroke-linejoin: round;
+ stroke-miterlimit: 10.00;
+ }
+ ]]></style>
+</defs>
+<rect width='100%' height='100%' style='stroke: none; fill: #FFFFFF;'/>
+<line x1='52.35' y1='257.76' x2='330.13' y2='257.76' style='stroke-width: 0.75;' />
+<line x1='52.35' y1='257.76' x2='52.35' y2='262.80' style='stroke-width: 0.75;' />
+<line x1='98.64' y1='257.76' x2='98.64' y2='262.80' style='stroke-width: 0.75;' />
+<line x1='144.94' y1='257.76' x2='144.94' y2='262.80' style='stroke-width: 0.75;' />
+<line x1='191.24' y1='257.76' x2='191.24' y2='262.80' style='stroke-width: 0.75;' />
+<line x1='237.53' y1='257.76' x2='237.53' y2='262.80' style='stroke-width: 0.75;' />
+<line x1='283.83' y1='257.76' x2='283.83' y2='262.80' style='stroke-width: 0.75;' />
+<line x1='330.13' y1='257.76' x2='330.13' y2='262.80' style='stroke-width: 0.75;' />
+<text x='50.01' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text>
+<text x='93.97' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>20</text>
+<text x='140.27' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>40</text>
+<text x='186.57' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>60</text>
+<text x='232.86' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>80</text>
+<text x='276.82' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>100</text>
+<text x='323.12' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>120</text>
+<line x1='41.33' y1='249.74' x2='41.33' y2='61.35' style='stroke-width: 0.75;' />
+<line x1='41.33' y1='249.74' x2='36.29' y2='249.74' style='stroke-width: 0.75;' />
+<line x1='41.33' y1='202.65' x2='36.29' y2='202.65' style='stroke-width: 0.75;' />
+<line x1='41.33' y1='155.55' x2='36.29' y2='155.55' style='stroke-width: 0.75;' />
+<line x1='41.33' y1='108.45' x2='36.29' y2='108.45' style='stroke-width: 0.75;' />
+<line x1='41.33' y1='61.35' x2='36.29' y2='61.35' style='stroke-width: 0.75;' />
+<text transform='translate(29.23,252.08) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text>
+<text transform='translate(29.23,207.32) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>20</text>
+<text transform='translate(29.23,160.22) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>40</text>
+<text transform='translate(29.23,113.12) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>60</text>
+<text transform='translate(29.23,66.03) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>80</text>
+<polyline points='41.33,257.76 338.83,257.76 338.83,41.33 41.33,41.33 41.33,257.76 ' style='stroke-width: 0.75;' />
+<defs>
+ <clipPath id='cpMC4wMHwzNjAuMDB8Mjg4LjAwfDAuMDA='>
+ <rect x='0.00' y='0.00' width='360.00' height='288.00' />
+ </clipPath>
+</defs>
+<g clip-path='url(#cpMC4wMHwzNjAuMDB8Mjg4LjAwfDAuMDA=)'><text x='180.92' y='296.06' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='18.33px' lengthAdjust='spacingAndGlyphs'>Time</text></g>
+<g clip-path='url(#cpMC4wMHwzNjAuMDB8Mjg4LjAwfDAuMDA=)'><text transform='translate(9.07,167.75) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='36.42px' lengthAdjust='spacingAndGlyphs'>Observed</text></g>
+<defs>
+ <clipPath id='cpNDEuMzN8MzM4LjgzfDI1Ny43Nnw0MS4zMw=='>
+ <rect x='41.33' y='41.33' width='297.50' height='216.43' />
+ </clipPath>
+</defs>
+<circle cx='52.35' cy='49.34' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43Nnw0MS4zMw==)' />
+<circle cx='54.66' cy='113.40' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43Nnw0MS4zMw==)' />
+<circle cx='59.29' cy='179.33' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43Nnw0MS4zMw==)' />
+<circle cx='68.55' cy='215.36' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43Nnw0MS4zMw==)' />
+<circle cx='84.75' cy='226.90' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43Nnw0MS4zMw==)' />
+<circle cx='117.16' cy='234.20' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43Nnw0MS4zMw==)' />
+<circle cx='198.18' cy='240.32' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43Nnw0MS4zMw==)' />
+<circle cx='263.00' cy='240.56' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43Nnw0MS4zMw==)' />
+<circle cx='327.81' cy='248.33' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43Nnw0MS4zMw==)' />
+<polyline points='52.35,55.49 55.13,115.28 57.91,156.67 60.69,185.32 63.48,205.15 66.26,218.88 69.04,228.38 71.82,234.95 74.61,239.51 77.39,242.66 80.17,244.84 82.95,246.35 85.74,247.39 88.52,248.12 91.30,248.62 94.08,248.96 96.87,249.20 99.65,249.37 102.43,249.49 105.21,249.57 108.00,249.62 110.78,249.66 113.56,249.68 116.34,249.70 119.13,249.72 121.91,249.72 124.69,249.73 127.47,249.73 130.26,249.74 133.04,249.74 135.82,249.74 138.60,249.74 141.39,249.74 144.17,249.74 146.95,249.74 149.73,249.74 152.52,249.74 155.30,249.74 158.08,249.74 160.86,249.74 163.65,249.74 166.43,249.74 169.21,249.74 171.99,249.74 174.78,249.74 177.56,249.74 180.34,249.74 183.12,249.74 185.91,249.74 188.69,249.74 191.47,249.74 194.25,249.74 197.04,249.74 199.82,249.74 202.60,249.74 205.38,249.74 208.17,249.74 210.95,249.74 213.73,249.74 216.51,249.74 219.30,249.74 222.08,249.74 224.86,249.74 227.64,249.74 230.43,249.74 233.21,249.74 235.99,249.74 238.77,249.74 241.56,249.74 244.34,249.74 247.12,249.74 249.90,249.74 252.69,249.74 255.47,249.74 258.25,249.74 261.03,249.74 263.82,249.74 266.60,249.74 269.38,249.74 272.16,249.74 274.95,249.74 277.73,249.74 280.51,249.74 283.29,249.74 286.08,249.74 288.86,249.74 291.64,249.74 294.42,249.74 297.21,249.74 299.99,249.74 302.77,249.74 305.55,249.74 308.34,249.74 311.12,249.74 313.90,249.74 316.68,249.74 319.47,249.74 322.25,249.74 325.03,249.74 327.81,249.74 ' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43Nnw0MS4zMw==)' />
+<rect x='271.42' y='52.15' width='52.54' height='20.16' style='stroke-width: 0.75; fill: #FFFFFF;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43Nnw0MS4zMw==)' />
+<line x1='273.68' y1='62.23' x2='288.80' y2='62.23' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43Nnw0MS4zMw==)' />
+<circle cx='281.24' cy='62.23' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43Nnw0MS4zMw==)' />
+<g clip-path='url(#cpNDEuMzN8MzM4LjgzfDI1Ny43Nnw0MS4zMw==)'><text x='296.36' y='65.11' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='23.81px' lengthAdjust='spacingAndGlyphs'>parent</text></g>
+<defs>
+ <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='>
+ <rect x='0.00' y='0.00' width='720.00' height='576.00' />
+ </clipPath>
+</defs>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='349.64' y='20.16' style='font-size: 10.08px; font-weight: bold; font-family: Liberation Sans;' textLength='20.72px' lengthAdjust='spacingAndGlyphs'>SFO</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='128.59' y='33.55' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='40.11px' lengthAdjust='spacingAndGlyphs'>FOCUS_C</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='168.69' y='33.55' style='font-size: 8.40px; font-family: Symbola;' textLength='2.09px' lengthAdjust='spacingAndGlyphs'> </text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='170.79' y='33.55' style='font-size: 8.40px; font-family: Symbola;' textLength='3.91px' lengthAdjust='spacingAndGlyphs'>χ</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='174.69' y='29.33' style='font-size: 5.88px; font-family: Liberation Sans;' textLength='3.27px' lengthAdjust='spacingAndGlyphs'>2</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='177.96' y='33.55' style='font-size: 8.40px; font-family: Symbola;' textLength='2.09px' lengthAdjust='spacingAndGlyphs'> </text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='180.05' y='33.55' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='37.33px' lengthAdjust='spacingAndGlyphs'>error level</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='219.32' y='33.55' style='font-size: 8.40px; font-family: Symbola;' textLength='6.52px' lengthAdjust='spacingAndGlyphs'>=</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='227.78' y='33.55' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='23.80px' lengthAdjust='spacingAndGlyphs'>15.8%</text></g>
+<defs>
+ <clipPath id='cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8NDEuMzM='>
+ <rect x='401.33' y='41.33' width='297.50' height='216.43' />
+ </clipPath>
+</defs>
+<defs>
+ <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='>
+ <rect x='0.00' y='0.00' width='720.00' height='576.00' />
+ </clipPath>
+</defs>
+<line x1='412.35' y1='257.76' x2='664.88' y2='257.76' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='412.35' y1='257.76' x2='412.35' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='454.43' y1='257.76' x2='454.43' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='496.52' y1='257.76' x2='496.52' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='538.61' y1='257.76' x2='538.61' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='580.70' y1='257.76' x2='580.70' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='622.79' y1='257.76' x2='622.79' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='664.88' y1='257.76' x2='664.88' y2='262.80' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='410.01' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='449.76' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>20</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='491.85' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>40</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='533.94' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>60</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='576.03' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>80</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='615.78' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>100</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='657.87' y='275.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>120</text></g>
+<line x1='401.33' y1='247.05' x2='401.33' y2='52.04' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='401.33' y1='247.05' x2='396.29' y2='247.05' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='401.33' y1='198.30' x2='396.29' y2='198.30' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='401.33' y1='149.54' x2='396.29' y2='149.54' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='401.33' y1='100.79' x2='396.29' y2='100.79' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='401.33' y1='52.04' x2='396.29' y2='52.04' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,253.12) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='12.14px' lengthAdjust='spacingAndGlyphs'>-10</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,202.03) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='7.47px' lengthAdjust='spacingAndGlyphs'>-5</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,151.88) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,103.13) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>5</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,56.71) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>10</text></g>
+<polyline points='401.33,257.76 698.83,257.76 698.83,41.33 401.33,41.33 401.33,257.76 ' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<defs>
+ <clipPath id='cpMzYwLjAwfDcyMC4wMHwyODguMDB8MC4wMA=='>
+ <rect x='360.00' y='0.00' width='360.00' height='288.00' />
+ </clipPath>
+</defs>
+<g clip-path='url(#cpMzYwLjAwfDcyMC4wMHwyODguMDB8MC4wMA==)'><text x='540.92' y='296.06' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='18.33px' lengthAdjust='spacingAndGlyphs'>Time</text></g>
+<g clip-path='url(#cpMzYwLjAwfDcyMC4wMHwyODguMDB8MC4wMA==)'><text transform='translate(369.07,165.88) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='32.67px' lengthAdjust='spacingAndGlyphs'>Residual</text></g>
+<defs>
+ <clipPath id='cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8NDEuMzM='>
+ <rect x='401.33' y='41.33' width='297.50' height='216.43' />
+ </clipPath>
+</defs>
+<circle cx='412.35' cy='124.12' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8NDEuMzM=)' />
+<circle cx='414.45' cy='177.26' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8NDEuMzM=)' />
+<circle cx='418.66' cy='179.13' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8NDEuMzM=)' />
+<circle cx='427.08' cy='101.59' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8NDEuMzM=)' />
+<circle cx='441.81' cy='66.04' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8NDEuMzM=)' />
+<circle cx='471.27' cy='85.34' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8NDEuMzM=)' />
+<circle cx='544.92' cy='110.54' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8NDEuMzM=)' />
+<circle cx='603.85' cy='111.52' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8NDEuMzM=)' />
+<circle cx='662.77' cy='143.69' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8NDEuMzM=)' />
+<line x1='401.33' y1='149.54' x2='698.83' y2='149.54' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' clip-path='url(#cpNDAxLjMzfDY5OC44M3wyNTcuNzZ8NDEuMzM=)' />
+<defs>
+ <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='>
+ <rect x='0.00' y='0.00' width='720.00' height='576.00' />
+ </clipPath>
+</defs>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='512.06' y='35.28' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='76.05px' lengthAdjust='spacingAndGlyphs'>FOCUS_C residuals</text></g>
+<defs>
+ <clipPath id='cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc='>
+ <rect x='41.33' y='309.17' width='297.50' height='215.42' />
+ </clipPath>
+</defs>
+<defs>
+ <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='>
+ <rect x='0.00' y='0.00' width='720.00' height='576.00' />
+ </clipPath>
+</defs>
+<line x1='52.35' y1='524.59' x2='272.72' y2='524.59' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='52.35' y1='524.59' x2='52.35' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='125.80' y1='524.59' x2='125.80' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='199.26' y1='524.59' x2='199.26' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='272.72' y1='524.59' x2='272.72' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='50.01' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='121.13' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>20</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='194.59' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>40</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='268.05' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>60</text></g>
+<line x1='41.33' y1='516.61' x2='41.33' y2='321.13' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='41.33' y1='516.61' x2='36.29' y2='516.61' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='41.33' y1='477.52' x2='36.29' y2='477.52' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='41.33' y1='438.42' x2='36.29' y2='438.42' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='41.33' y1='399.33' x2='36.29' y2='399.33' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='41.33' y1='360.23' x2='36.29' y2='360.23' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='41.33' y1='321.13' x2='36.29' y2='321.13' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,518.95) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,482.19) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>20</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,443.09) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>40</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,404.00) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>60</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,364.90) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>80</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(29.23,328.14) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='14.02px' lengthAdjust='spacingAndGlyphs'>100</text></g>
+<polyline points='41.33,524.59 338.83,524.59 338.83,309.17 41.33,309.17 41.33,524.59 ' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<defs>
+ <clipPath id='cpMC4wMHwzNjAuMDB8NTc2LjAwfDI4OC4wMA=='>
+ <rect x='0.00' y='288.00' width='360.00' height='288.00' />
+ </clipPath>
+</defs>
+<g clip-path='url(#cpMC4wMHwzNjAuMDB8NTc2LjAwfDI4OC4wMA==)'><text x='180.92' y='562.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='18.33px' lengthAdjust='spacingAndGlyphs'>Time</text></g>
+<g clip-path='url(#cpMC4wMHwzNjAuMDB8NTc2LjAwfDI4OC4wMA==)'><text transform='translate(9.07,435.09) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='36.42px' lengthAdjust='spacingAndGlyphs'>Observed</text></g>
+<defs>
+ <clipPath id='cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc='>
+ <rect x='41.33' y='309.17' width='297.50' height='215.42' />
+ </clipPath>
+</defs>
+<circle cx='52.35' cy='322.19' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' />
+<circle cx='52.35' cy='317.15' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' />
+<circle cx='56.02' cy='333.84' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' />
+<circle cx='56.02' cy='335.80' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' />
+<circle cx='63.37' cy='393.01' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' />
+<circle cx='63.37' cy='381.75' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' />
+<circle cx='78.06' cy='414.34' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' />
+<circle cx='78.06' cy='408.85' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' />
+<circle cx='103.77' cy='463.31' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' />
+<circle cx='103.77' cy='464.54' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' />
+<circle cx='129.48' cy='494.13' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' />
+<circle cx='129.48' cy='493.86' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' />
+<circle cx='180.90' cy='511.04' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' />
+<circle cx='180.90' cy='510.92' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' />
+<circle cx='235.99' cy='515.26' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' />
+<circle cx='235.99' cy='515.38' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' />
+<circle cx='327.81' cy='516.52' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' />
+<circle cx='327.81' cy='516.50' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' />
+<polyline points='52.35,322.22 55.13,336.12 57.91,349.03 60.69,361.01 63.48,372.14 66.26,382.47 69.04,392.06 71.82,400.97 74.61,409.24 77.39,416.92 80.17,424.05 82.95,430.66 85.74,436.81 88.52,442.52 91.30,447.82 94.08,452.74 96.87,457.30 99.65,461.54 102.43,465.48 105.21,469.14 108.00,472.53 110.78,475.69 113.56,478.61 116.34,481.33 119.13,483.85 121.91,486.20 124.69,488.37 127.47,490.39 130.26,492.27 133.04,494.01 135.82,495.62 138.60,497.12 141.39,498.52 144.17,499.81 146.95,501.01 149.73,502.13 152.52,503.16 155.30,504.13 158.08,505.02 160.86,505.85 163.65,506.62 166.43,507.33 169.21,508.00 171.99,508.61 174.78,509.18 177.56,509.72 180.34,510.21 183.12,510.67 185.91,511.09 188.69,511.49 191.47,511.85 194.25,512.19 197.04,512.51 199.82,512.80 202.60,513.08 205.38,513.33 208.17,513.56 210.95,513.78 213.73,513.98 216.51,514.17 219.30,514.35 222.08,514.51 224.86,514.66 227.64,514.80 230.43,514.93 233.21,515.05 235.99,515.16 238.77,515.26 241.56,515.36 244.34,515.45 247.12,515.53 249.90,515.61 252.69,515.68 255.47,515.75 258.25,515.81 261.03,515.87 263.82,515.92 266.60,515.97 269.38,516.02 272.16,516.06 274.95,516.10 277.73,516.14 280.51,516.17 283.29,516.20 286.08,516.23 288.86,516.26 291.64,516.28 294.42,516.31 297.21,516.33 299.99,516.35 302.77,516.37 305.55,516.39 308.34,516.40 311.12,516.42 313.90,516.43 316.68,516.44 319.47,516.46 322.25,516.47 325.03,516.48 327.81,516.49 ' style='stroke-width: 0.75;' clip-path='url(#cpNDEuMzN8MzM4LjgzfDUyNC41OXwzMDkuMTc=)' />
+<defs>
+ <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='>
+ <rect x='0.00' y='0.00' width='720.00' height='576.00' />
+ </clipPath>
+</defs>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='349.64' y='20.16' style='font-size: 10.08px; font-weight: bold; font-family: Liberation Sans;' textLength='20.72px' lengthAdjust='spacingAndGlyphs'>SFO</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='128.59' y='301.39' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='40.11px' lengthAdjust='spacingAndGlyphs'>FOCUS_D</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='168.69' y='301.39' style='font-size: 8.40px; font-family: Symbola;' textLength='2.09px' lengthAdjust='spacingAndGlyphs'> </text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='170.79' y='301.39' style='font-size: 8.40px; font-family: Symbola;' textLength='3.91px' lengthAdjust='spacingAndGlyphs'>χ</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='174.69' y='297.17' style='font-size: 5.88px; font-family: Liberation Sans;' textLength='3.27px' lengthAdjust='spacingAndGlyphs'>2</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='177.96' y='301.39' style='font-size: 8.40px; font-family: Symbola;' textLength='2.09px' lengthAdjust='spacingAndGlyphs'> </text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='180.05' y='301.39' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='37.33px' lengthAdjust='spacingAndGlyphs'>error level</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='219.32' y='301.39' style='font-size: 8.40px; font-family: Symbola;' textLength='6.52px' lengthAdjust='spacingAndGlyphs'>=</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='227.78' y='301.39' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='23.80px' lengthAdjust='spacingAndGlyphs'>6.45%</text></g>
+<defs>
+ <clipPath id='cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3'>
+ <rect x='401.33' y='309.17' width='297.50' height='215.42' />
+ </clipPath>
+</defs>
+<defs>
+ <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='>
+ <rect x='0.00' y='0.00' width='720.00' height='576.00' />
+ </clipPath>
+</defs>
+<line x1='412.35' y1='524.59' x2='679.47' y2='524.59' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='412.35' y1='524.59' x2='412.35' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='479.13' y1='524.59' x2='479.13' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='545.91' y1='524.59' x2='545.91' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='612.69' y1='524.59' x2='612.69' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='679.47' y1='524.59' x2='679.47' y2='529.63' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='410.01' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='474.45' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>20</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='541.23' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>40</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='608.01' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>60</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='674.79' y='542.74' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>80</text></g>
+<line x1='401.33' y1='493.14' x2='401.33' y2='340.62' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='401.33' y1='493.14' x2='396.29' y2='493.14' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='401.33' y1='455.01' x2='396.29' y2='455.01' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='401.33' y1='416.88' x2='396.29' y2='416.88' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='401.33' y1='378.75' x2='396.29' y2='378.75' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<line x1='401.33' y1='340.62' x2='396.29' y2='340.62' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,499.21) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='12.14px' lengthAdjust='spacingAndGlyphs'>-10</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,458.75) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='7.47px' lengthAdjust='spacingAndGlyphs'>-5</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,419.22) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>0</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,381.08) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='4.67px' lengthAdjust='spacingAndGlyphs'>5</text></g>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text transform='translate(389.23,345.29) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='9.34px' lengthAdjust='spacingAndGlyphs'>10</text></g>
+<polyline points='401.33,524.59 698.83,524.59 698.83,309.17 401.33,309.17 401.33,524.59 ' style='stroke-width: 0.75;' clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)' />
+<defs>
+ <clipPath id='cpMzYwLjAwfDcyMC4wMHw1NzYuMDB8Mjg4LjAw'>
+ <rect x='360.00' y='288.00' width='360.00' height='288.00' />
+ </clipPath>
+</defs>
+<g clip-path='url(#cpMzYwLjAwfDcyMC4wMHw1NzYuMDB8Mjg4LjAw)'><text x='540.92' y='562.90' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='18.33px' lengthAdjust='spacingAndGlyphs'>Time</text></g>
+<g clip-path='url(#cpMzYwLjAwfDcyMC4wMHw1NzYuMDB8Mjg4LjAw)'><text transform='translate(369.07,433.22) rotate(-90)' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='32.67px' lengthAdjust='spacingAndGlyphs'>Residual</text></g>
+<defs>
+ <clipPath id='cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3'>
+ <rect x='401.33' y='309.17' width='297.50' height='215.42' />
+ </clipPath>
+</defs>
+<circle cx='412.35' cy='416.76' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' />
+<circle cx='412.35' cy='397.08' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' />
+<circle cx='415.69' cy='391.46' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' />
+<circle cx='415.69' cy='399.09' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' />
+<circle cx='422.36' cy='499.99' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' />
+<circle cx='422.36' cy='456.06' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' />
+<circle cx='435.72' cy='399.96' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' />
+<circle cx='435.72' cy='378.53' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' />
+<circle cx='459.09' cy='401.41' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' />
+<circle cx='459.09' cy='406.22' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' />
+<circle cx='482.47' cy='426.16' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' />
+<circle cx='482.47' cy='425.09' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' />
+<circle cx='529.21' cy='419.76' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' />
+<circle cx='529.21' cy='419.30' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' />
+<circle cx='579.30' cy='417.28' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' />
+<circle cx='579.30' cy='417.74' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' />
+<circle cx='662.77' cy='416.99' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' />
+<circle cx='662.77' cy='416.91' r='1.89pt' style='stroke-width: 0.75;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' />
+<line x1='401.33' y1='416.88' x2='698.83' y2='416.88' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' clip-path='url(#cpNDAxLjMzfDY5OC44M3w1MjQuNTl8MzA5LjE3)' />
+<defs>
+ <clipPath id='cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA='>
+ <rect x='0.00' y='0.00' width='720.00' height='576.00' />
+ </clipPath>
+</defs>
+<g clip-path='url(#cpMC4wMHw3MjAuMDB8NTc2LjAwfDAuMDA=)'><text x='512.06' y='303.12' style='font-size: 8.40px; font-family: Liberation Sans;' textLength='76.05px' lengthAdjust='spacingAndGlyphs'>FOCUS_D residuals</text></g>
+<defs>
+ <clipPath id='cpNTkuMDR8Njg5Ljc2fDUwMi41Nnw1OS4wNA=='>
+ <rect x='59.04' y='59.04' width='630.72' height='443.52' />
+ </clipPath>
+</defs>
+</svg>
diff --git a/tests/testthat/test_twa.R b/tests/testthat/test_plots_twa.R
index 42b74a7f..fe0ba325 100644
--- a/tests/testthat/test_twa.R
+++ b/tests/testthat/test_plots_twa.R
@@ -1,4 +1,4 @@
-# Copyright (C) 2016,2017,2018 Johannes Ranke
+# Copyright (C) 2016-2019 Johannes Ranke
# Contact: jranke@uni-bremen.de
# This file is part of the R package mkin
@@ -16,20 +16,20 @@
# You should have received a copy of the GNU General Public License along with
# this program. If not, see <http://www.gnu.org/licenses/>
-context("Calculation of maximum time weighted average concentrations (TWAs)")
+models <- c("SFO", "FOMC", "DFOP", "HS")
+fits <- mmkin(models,
+ list(FOCUS_C = FOCUS_2006_C, FOCUS_D = FOCUS_2006_D),
+ quiet = TRUE, cores = if (Sys.getenv("TRAVIS") == "") 15 else 1)
+context("Calculation of maximum time weighted average concentrations (TWAs)")
test_that("Time weighted average concentrations are correct", {
skip_on_cran()
- twa_models <- c("SFO", "FOMC", "DFOP", "HS")
- fits <- mmkin(twa_models,
- list(FOCUS_C = FOCUS_2006_C, FOCUS_D = FOCUS_2006_D),
- quiet = TRUE, cores = if (Sys.getenv("TRAVIS") == "") 15 else 1)
outtimes_10 <- seq(0, 10, length.out = 10000)
for (ds in c("FOCUS_C", "FOCUS_D")) {
- for (model in twa_models) {
+ for (model in models) {
fit <- fits[[model, ds]]
bpar <- summary(fit)$bpar[, "Estimate"]
pred_10 <- mkinpredict(fit$mkinmod,
@@ -47,3 +47,15 @@ test_that("Time weighted average concentrations are correct", {
}
}
})
+
+context("Plotting")
+
+test_that("Plotting mmkin objects is reproducible", {
+ skip_on_cran()
+ mmkin_FOCUS_C <- function() plot(fits[, "FOCUS_C"])
+ mmkin_SFO <- function() plot(fits["SFO",])
+
+ vdiffr::expect_doppelganger("mmkin plot for FOCUS C", mmkin_FOCUS_C)
+ vdiffr::expect_doppelganger("mmkin plot for SFO (FOCUS C and D)", mmkin_SFO)
+})
+

Contact - Imprint