Skip to content

Commit 94fa3c4

Browse files
committed
Update documentation
1 parent 3bfb318 commit 94fa3c4

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

88 files changed

+3076
-1114
lines changed

_modules/index.html

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,6 @@
3434
<script src="../_static/jquery.js"></script>
3535
<script src="../_static/underscore.js"></script>
3636
<script src="../_static/doctools.js"></script>
37-
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
38-
<script type="text/x-mathjax-config">MathJax.Hub.Config({"TeX": {"Macros": {"presup": ["\\,{}^{\\scriptscriptstyle #1}\\!", 1], "SE": ["\\mathbf{SE}(#1)", 1], "SO": ["\\mathbf{SO}(#1)", 1], "se": ["\\mathbf{se}(#1)", 1], "so": ["\\mathbf{so}(#1)", 1], "vec": ["\\boldsymbol{#1}", 1], "dvec": ["\\dot{\\boldsymbol{#1}}", 1], "ddvec": ["\\ddot{\\boldsymbol{#1}}", 1], "fvec": ["\\presup{#1}\\boldsymbol{#2}", 2], "fdvec": ["\\presup{#1}\\dot{\\boldsymbol{#2}}", 2], "fddvec": ["\\presup{#1}\\ddot{\\boldsymbol{#2}}", 2], "norm": ["\\Vert #1 \\Vert", 1], "mat": ["\\mathbf{#1}", 1], "fmat": ["\\presup{#1}\\mathbf{#2}", 2], "sk": ["\\left[#1\\right]", 1], "skx": ["\\left[#1\\right]_{\\times}", 1], "vex": ["\\vee\\left( #1\\right)", 1], "vexx": ["\\vee_{\\times}\\left( #1\\right)", 1], "q": "\\mathring{q}", "fq": ["\\presup{#1}\\mathring{q}", 1]}}})</script>
3937

4038
<script type="text/javascript" src="../_static/js/theme.js"></script>
4139

@@ -163,7 +161,6 @@ <h1>All modules for which code is available</h1>
163161
<li><a href="roboticstoolbox/mobile/animations.html">roboticstoolbox.mobile.animations</a></li>
164162
<li><a href="roboticstoolbox/mobile/bug2.html">roboticstoolbox.mobile.bug2</a></li>
165163
<li><a href="roboticstoolbox/mobile/dx_form.html">roboticstoolbox.mobile.dx_form</a></li>
166-
<li><a href="roboticstoolbox/mobile/navigation.html">roboticstoolbox.mobile.navigation</a></li>
167164
<li><a href="roboticstoolbox/mobile/vehicle.html">roboticstoolbox.mobile.vehicle</a></li>
168165
<li><a href="roboticstoolbox/models/DH/Ball.html">roboticstoolbox.models.DH.Ball</a></li>
169166
<li><a href="roboticstoolbox/models/DH/Cobra600.html">roboticstoolbox.models.DH.Cobra600</a></li>
@@ -208,11 +205,9 @@ <h1>All modules for which code is available</h1>
208205
<li><a href="roboticstoolbox/models/URDF/wx250s.html">roboticstoolbox.models.URDF.wx250s</a></li>
209206
<li><a href="roboticstoolbox/robot/DHLink.html">roboticstoolbox.robot.DHLink</a></li>
210207
<li><a href="roboticstoolbox/robot/DHRobot.html">roboticstoolbox.robot.DHRobot</a></li>
211-
<li><a href="roboticstoolbox/robot/Dynamics.html">roboticstoolbox.robot.Dynamics</a></li>
212208
<li><a href="roboticstoolbox/robot/ELink.html">roboticstoolbox.robot.ELink</a></li>
213209
<li><a href="roboticstoolbox/robot/ERobot.html">roboticstoolbox.robot.ERobot</a></li>
214210
<li><a href="roboticstoolbox/robot/ETS.html">roboticstoolbox.robot.ETS</a></li>
215-
<li><a href="roboticstoolbox/robot/IK.html">roboticstoolbox.robot.IK</a></li>
216211
<li><a href="roboticstoolbox/robot/Link.html">roboticstoolbox.robot.Link</a></li>
217212
<li><a href="roboticstoolbox/robot/Robot.html">roboticstoolbox.robot.Robot</a></li>
218213
<li><a href="roboticstoolbox/tools/trajectory.html">roboticstoolbox.tools.trajectory</a></li>
@@ -229,7 +224,7 @@ <h1>All modules for which code is available</h1>
229224
<p>
230225
&#169; Copyright 2020, Jesse Haviland and Peter Corke.
231226
<span class="lastupdated">
232-
Last updated on 14-Feb-2021.
227+
Last updated on 22-Feb-2021.
233228
</span>
234229

235230
</p>

_modules/roboticstoolbox/backends/PyPlot/PyPlot.html

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,6 @@
3434
<script src="../../../../_static/jquery.js"></script>
3535
<script src="../../../../_static/underscore.js"></script>
3636
<script src="../../../../_static/doctools.js"></script>
37-
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
38-
<script type="text/x-mathjax-config">MathJax.Hub.Config({"TeX": {"Macros": {"presup": ["\\,{}^{\\scriptscriptstyle #1}\\!", 1], "SE": ["\\mathbf{SE}(#1)", 1], "SO": ["\\mathbf{SO}(#1)", 1], "se": ["\\mathbf{se}(#1)", 1], "so": ["\\mathbf{so}(#1)", 1], "vec": ["\\boldsymbol{#1}", 1], "dvec": ["\\dot{\\boldsymbol{#1}}", 1], "ddvec": ["\\ddot{\\boldsymbol{#1}}", 1], "fvec": ["\\presup{#1}\\boldsymbol{#2}", 2], "fdvec": ["\\presup{#1}\\dot{\\boldsymbol{#2}}", 2], "fddvec": ["\\presup{#1}\\ddot{\\boldsymbol{#2}}", 2], "norm": ["\\Vert #1 \\Vert", 1], "mat": ["\\mathbf{#1}", 1], "fmat": ["\\presup{#1}\\mathbf{#2}", 2], "sk": ["\\left[#1\\right]", 1], "skx": ["\\left[#1\\right]_{\\times}", 1], "vex": ["\\vee\\left( #1\\right)", 1], "vexx": ["\\vee_{\\times}\\left( #1\\right)", 1], "q": "\\mathring{q}", "fq": ["\\presup{#1}\\mathring{q}", 1]}}})</script>
3937

4038
<script type="text/javascript" src="../../../../_static/js/theme.js"></script>
4139

@@ -679,7 +677,7 @@ <h1>Source code for roboticstoolbox.backends.PyPlot.PyPlot</h1><div class="highl
679677
<p>
680678
&#169; Copyright 2020, Jesse Haviland and Peter Corke.
681679
<span class="lastupdated">
682-
Last updated on 14-Feb-2021.
680+
Last updated on 22-Feb-2021.
683681
</span>
684682

685683
</p>

_modules/roboticstoolbox/backends/PyPlot/PyPlot2.html

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,6 @@
3434
<script src="../../../../_static/jquery.js"></script>
3535
<script src="../../../../_static/underscore.js"></script>
3636
<script src="../../../../_static/doctools.js"></script>
37-
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
38-
<script type="text/x-mathjax-config">MathJax.Hub.Config({"TeX": {"Macros": {"presup": ["\\,{}^{\\scriptscriptstyle #1}\\!", 1], "SE": ["\\mathbf{SE}(#1)", 1], "SO": ["\\mathbf{SO}(#1)", 1], "se": ["\\mathbf{se}(#1)", 1], "so": ["\\mathbf{so}(#1)", 1], "vec": ["\\boldsymbol{#1}", 1], "dvec": ["\\dot{\\boldsymbol{#1}}", 1], "ddvec": ["\\ddot{\\boldsymbol{#1}}", 1], "fvec": ["\\presup{#1}\\boldsymbol{#2}", 2], "fdvec": ["\\presup{#1}\\dot{\\boldsymbol{#2}}", 2], "fddvec": ["\\presup{#1}\\ddot{\\boldsymbol{#2}}", 2], "norm": ["\\Vert #1 \\Vert", 1], "mat": ["\\mathbf{#1}", 1], "fmat": ["\\presup{#1}\\mathbf{#2}", 2], "sk": ["\\left[#1\\right]", 1], "skx": ["\\left[#1\\right]_{\\times}", 1], "vex": ["\\vee\\left( #1\\right)", 1], "vexx": ["\\vee_{\\times}\\left( #1\\right)", 1], "q": "\\mathring{q}", "fq": ["\\presup{#1}\\mathring{q}", 1]}}})</script>
3937

4038
<script type="text/javascript" src="../../../../_static/js/theme.js"></script>
4139

@@ -464,7 +462,7 @@ <h1>Source code for roboticstoolbox.backends.PyPlot.PyPlot2</h1><div class="high
464462
<p>
465463
&#169; Copyright 2020, Jesse Haviland and Peter Corke.
466464
<span class="lastupdated">
467-
Last updated on 14-Feb-2021.
465+
Last updated on 22-Feb-2021.
468466
</span>
469467

470468
</p>

_modules/roboticstoolbox/backends/Swift/Swift.html

Lines changed: 54 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,6 @@
3434
<script src="../../../../_static/jquery.js"></script>
3535
<script src="../../../../_static/underscore.js"></script>
3636
<script src="../../../../_static/doctools.js"></script>
37-
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
38-
<script type="text/x-mathjax-config">MathJax.Hub.Config({"TeX": {"Macros": {"presup": ["\\,{}^{\\scriptscriptstyle #1}\\!", 1], "SE": ["\\mathbf{SE}(#1)", 1], "SO": ["\\mathbf{SO}(#1)", 1], "se": ["\\mathbf{se}(#1)", 1], "so": ["\\mathbf{so}(#1)", 1], "vec": ["\\boldsymbol{#1}", 1], "dvec": ["\\dot{\\boldsymbol{#1}}", 1], "ddvec": ["\\ddot{\\boldsymbol{#1}}", 1], "fvec": ["\\presup{#1}\\boldsymbol{#2}", 2], "fdvec": ["\\presup{#1}\\dot{\\boldsymbol{#2}}", 2], "fddvec": ["\\presup{#1}\\ddot{\\boldsymbol{#2}}", 2], "norm": ["\\Vert #1 \\Vert", 1], "mat": ["\\mathbf{#1}", 1], "fmat": ["\\presup{#1}\\mathbf{#2}", 2], "sk": ["\\left[#1\\right]", 1], "skx": ["\\left[#1\\right]_{\\times}", 1], "vex": ["\\vee\\left( #1\\right)", 1], "vexx": ["\\vee_{\\times}\\left( #1\\right)", 1], "q": "\\mathring{q}", "fq": ["\\presup{#1}\\mathring{q}", 1]}}})</script>
3937

4038
<script type="text/javascript" src="../../../../_static/js/theme.js"></script>
4139

@@ -170,6 +168,7 @@ <h1>Source code for roboticstoolbox.backends.Swift.Swift</h1><div class="highlig
170168
<span class="kn">import</span> <span class="nn">spatialmath</span> <span class="k">as</span> <span class="nn">sm</span>
171169
<span class="kn">import</span> <span class="nn">time</span>
172170
<span class="kn">from</span> <span class="nn">queue</span> <span class="kn">import</span> <span class="n">Queue</span>
171+
<span class="kn">import</span> <span class="nn">json</span>
173172

174173
<span class="n">_sw</span> <span class="o">=</span> <span class="kc">None</span>
175174
<span class="n">sw</span> <span class="o">=</span> <span class="kc">None</span>
@@ -233,6 +232,12 @@ <h1>Source code for roboticstoolbox.backends.Swift.Swift</h1><div class="highlig
233232
<span class="bp">self</span><span class="o">.</span><span class="n">outq</span> <span class="o">=</span> <span class="n">Queue</span><span class="p">()</span>
234233
<span class="bp">self</span><span class="o">.</span><span class="n">inq</span> <span class="o">=</span> <span class="n">Queue</span><span class="p">()</span>
235234

235+
<span class="c1"># Number of custom html elements added to page for id purposes</span>
236+
<span class="bp">self</span><span class="o">.</span><span class="n">elementid</span> <span class="o">=</span> <span class="mi">0</span>
237+
238+
<span class="c1"># Element dict which holds the callback functions for form updates</span>
239+
<span class="bp">self</span><span class="o">.</span><span class="n">elements</span> <span class="o">=</span> <span class="p">{}</span>
240+
236241
<span class="bp">self</span><span class="o">.</span><span class="n">realtime</span> <span class="o">=</span> <span class="n">realtime</span>
237242
<span class="bp">self</span><span class="o">.</span><span class="n">display</span> <span class="o">=</span> <span class="n">display</span>
238243

@@ -544,6 +549,52 @@ <h1>Source code for roboticstoolbox.backends.Swift.Swift</h1><div class="highlig
544549
<span class="s2">&quot;You must call swift.start_recording(file_name) before trying&quot;</span>
545550
<span class="s2">&quot; to stop the recording&quot;</span><span class="p">)</span></div>
546551

552+
<div class="viewcode-block" id="Swift.add_slider"><a class="viewcode-back" href="../../../../arm_backend_swift.html#roboticstoolbox.backends.Swift.Swift.add_slider">[docs]</a> <span class="k">def</span> <span class="nf">add_slider</span><span class="p">(</span>
553+
<span class="bp">self</span><span class="p">,</span> <span class="n">cb</span><span class="p">,</span> <span class="nb">min</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="nb">max</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span> <span class="n">step</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">value</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">desc</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">unit</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">):</span>
554+
<span class="sd">&quot;&quot;&quot;</span>
555+
<span class="sd"> Add a range-slider to the page</span>
556+
557+
<span class="sd"> :param cb: A callback function which is executed when the value of the</span>
558+
<span class="sd"> slider changes. The callback should accept one argument which</span>
559+
<span class="sd"> represents the new value of the slider</span>
560+
<span class="sd"> :type cb: function</span>
561+
<span class="sd"> :param min: the minimum value of the slider, optional</span>
562+
<span class="sd"> :type min: float</span>
563+
<span class="sd"> :param max: the maximum value of the slider, optional</span>
564+
<span class="sd"> :type max: float</span>
565+
<span class="sd"> :param step: the step size of the slider, optional</span>
566+
<span class="sd"> :type step: float</span>
567+
<span class="sd"> :param desc: add a description of the slider, optional</span>
568+
<span class="sd"> :type desc: str</span>
569+
<span class="sd"> :param unit: add a unit to the slider value, optional</span>
570+
<span class="sd"> :type unit: str</span>
571+
572+
<span class="sd"> ``env.add_slider()`` adds a slider to the graphical</span>
573+
<span class="sd"> environment.</span>
574+
575+
<span class="sd"> &quot;&quot;&quot;</span>
576+
577+
<span class="nb">id</span> <span class="o">=</span> <span class="s1">&#39;customelement&#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">elementid</span><span class="p">)</span>
578+
<span class="bp">self</span><span class="o">.</span><span class="n">elementid</span> <span class="o">+=</span> <span class="mi">1</span>
579+
<span class="bp">self</span><span class="o">.</span><span class="n">elements</span><span class="p">[</span><span class="nb">id</span><span class="p">]</span> <span class="o">=</span> <span class="n">cb</span>
580+
581+
<span class="bp">self</span><span class="o">.</span><span class="n">_send_socket</span><span class="p">(</span>
582+
<span class="s1">&#39;add_element&#39;</span><span class="p">,</span>
583+
<span class="p">[</span><span class="s1">&#39;slider&#39;</span><span class="p">,</span> <span class="nb">id</span><span class="p">,</span> <span class="nb">min</span><span class="p">,</span> <span class="nb">max</span><span class="p">,</span> <span class="n">step</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">desc</span><span class="p">,</span> <span class="n">unit</span><span class="p">])</span></div>
584+
585+
<div class="viewcode-block" id="Swift.process_events"><a class="viewcode-back" href="../../../../arm_backend_swift.html#roboticstoolbox.backends.Swift.Swift.process_events">[docs]</a> <span class="k">def</span> <span class="nf">process_events</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
586+
<span class="sd">&quot;&quot;&quot;</span>
587+
<span class="sd"> Process the event queue from Swift, this invokes the callback functions</span>
588+
<span class="sd"> from custom elements added to the page. If using custom elements</span>
589+
<span class="sd"> (for example `add_slider`), use this function in your event loop to</span>
590+
<span class="sd"> process updates from Swift.</span>
591+
<span class="sd"> &quot;&quot;&quot;</span>
592+
<span class="n">events</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_send_socket</span><span class="p">(</span><span class="s1">&#39;check_elements&#39;</span><span class="p">)</span>
593+
<span class="n">events</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="n">events</span><span class="p">)</span>
594+
595+
<span class="k">for</span> <span class="n">event</span> <span class="ow">in</span> <span class="n">events</span><span class="p">:</span>
596+
<span class="bp">self</span><span class="o">.</span><span class="n">elements</span><span class="p">[</span><span class="n">event</span><span class="p">](</span><span class="n">events</span><span class="p">[</span><span class="n">event</span><span class="p">])</span></div>
597+
547598
<span class="k">def</span> <span class="nf">_step_robots</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dt</span><span class="p">):</span>
548599

549600
<span class="k">for</span> <span class="n">robot_object</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">robots</span><span class="p">:</span>
@@ -618,7 +669,7 @@ <h1>Source code for roboticstoolbox.backends.Swift.Swift</h1><div class="highlig
618669
<p>
619670
&#169; Copyright 2020, Jesse Haviland and Peter Corke.
620671
<span class="lastupdated">
621-
Last updated on 14-Feb-2021.
672+
Last updated on 22-Feb-2021.
622673
</span>
623674

624675
</p>

_modules/roboticstoolbox/mobile/animations.html

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,6 @@
3434
<script src="../../../_static/jquery.js"></script>
3535
<script src="../../../_static/underscore.js"></script>
3636
<script src="../../../_static/doctools.js"></script>
37-
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
38-
<script type="text/x-mathjax-config">MathJax.Hub.Config({"TeX": {"Macros": {"presup": ["\\,{}^{\\scriptscriptstyle #1}\\!", 1], "SE": ["\\mathbf{SE}(#1)", 1], "SO": ["\\mathbf{SO}(#1)", 1], "se": ["\\mathbf{se}(#1)", 1], "so": ["\\mathbf{so}(#1)", 1], "vec": ["\\boldsymbol{#1}", 1], "dvec": ["\\dot{\\boldsymbol{#1}}", 1], "ddvec": ["\\ddot{\\boldsymbol{#1}}", 1], "fvec": ["\\presup{#1}\\boldsymbol{#2}", 2], "fdvec": ["\\presup{#1}\\dot{\\boldsymbol{#2}}", 2], "fddvec": ["\\presup{#1}\\ddot{\\boldsymbol{#2}}", 2], "norm": ["\\Vert #1 \\Vert", 1], "mat": ["\\mathbf{#1}", 1], "fmat": ["\\presup{#1}\\mathbf{#2}", 2], "sk": ["\\left[#1\\right]", 1], "skx": ["\\left[#1\\right]_{\\times}", 1], "vex": ["\\vee\\left( #1\\right)", 1], "vexx": ["\\vee_{\\times}\\left( #1\\right)", 1], "q": "\\mathring{q}", "fq": ["\\presup{#1}\\mathring{q}", 1]}}})</script>
3937

4038
<script type="text/javascript" src="../../../_static/js/theme.js"></script>
4139

@@ -530,7 +528,7 @@ <h1>Source code for roboticstoolbox.mobile.animations</h1><div class="highlight"
530528
<p>
531529
&#169; Copyright 2020, Jesse Haviland and Peter Corke.
532530
<span class="lastupdated">
533-
Last updated on 14-Feb-2021.
531+
Last updated on 22-Feb-2021.
534532
</span>
535533

536534
</p>

_modules/roboticstoolbox/mobile/bug2.html

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,6 @@
3434
<script src="../../../_static/jquery.js"></script>
3535
<script src="../../../_static/underscore.js"></script>
3636
<script src="../../../_static/doctools.js"></script>
37-
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
38-
<script type="text/x-mathjax-config">MathJax.Hub.Config({"TeX": {"Macros": {"presup": ["\\,{}^{\\scriptscriptstyle #1}\\!", 1], "SE": ["\\mathbf{SE}(#1)", 1], "SO": ["\\mathbf{SO}(#1)", 1], "se": ["\\mathbf{se}(#1)", 1], "so": ["\\mathbf{so}(#1)", 1], "vec": ["\\boldsymbol{#1}", 1], "dvec": ["\\dot{\\boldsymbol{#1}}", 1], "ddvec": ["\\ddot{\\boldsymbol{#1}}", 1], "fvec": ["\\presup{#1}\\boldsymbol{#2}", 2], "fdvec": ["\\presup{#1}\\dot{\\boldsymbol{#2}}", 2], "fddvec": ["\\presup{#1}\\ddot{\\boldsymbol{#2}}", 2], "norm": ["\\Vert #1 \\Vert", 1], "mat": ["\\mathbf{#1}", 1], "fmat": ["\\presup{#1}\\mathbf{#2}", 2], "sk": ["\\left[#1\\right]", 1], "skx": ["\\left[#1\\right]_{\\times}", 1], "vex": ["\\vee\\left( #1\\right)", 1], "vexx": ["\\vee_{\\times}\\left( #1\\right)", 1], "q": "\\mathring{q}", "fq": ["\\presup{#1}\\mathring{q}", 1]}}})</script>
3937

4038
<script type="text/javascript" src="../../../_static/js/theme.js"></script>
4139

@@ -662,7 +660,7 @@ <h1>Source code for roboticstoolbox.mobile.bug2</h1><div class="highlight"><pre>
662660
<p>
663661
&#169; Copyright 2020, Jesse Haviland and Peter Corke.
664662
<span class="lastupdated">
665-
Last updated on 14-Feb-2021.
663+
Last updated on 22-Feb-2021.
666664
</span>
667665

668666
</p>

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy