kameleon-builder 2.1.1 → 2.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. data/CHANGELOG.rst +10 -0
  2. data/docs/source/_static/centos.png +0 -0
  3. data/docs/source/_static/debian.png +0 -0
  4. data/docs/source/_static/ubuntu.png +0 -0
  5. data/docs/source/_themes/sphinx_rtd_theme/__init__.py +17 -0
  6. data/docs/source/_themes/sphinx_rtd_theme/breadcrumbs.html +19 -0
  7. data/docs/source/_themes/sphinx_rtd_theme/footer.html +32 -0
  8. data/docs/source/_themes/sphinx_rtd_theme/layout.html +160 -0
  9. data/docs/source/_themes/sphinx_rtd_theme/layout_old.html +205 -0
  10. data/docs/source/_themes/sphinx_rtd_theme/search.html +50 -0
  11. data/docs/source/_themes/sphinx_rtd_theme/searchbox.html +7 -0
  12. data/docs/source/_themes/sphinx_rtd_theme/static/css/badge_only.css +1 -0
  13. data/docs/source/_themes/sphinx_rtd_theme/static/css/theme.css +4 -0
  14. data/docs/source/_themes/sphinx_rtd_theme/static/fonts/FontAwesome.otf +0 -0
  15. data/docs/source/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.eot +0 -0
  16. data/docs/source/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.svg +414 -0
  17. data/docs/source/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.ttf +0 -0
  18. data/docs/source/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.woff +0 -0
  19. data/docs/source/_themes/sphinx_rtd_theme/static/js/theme.js +47 -0
  20. data/docs/source/_themes/sphinx_rtd_theme/theme.conf +8 -0
  21. data/docs/source/_themes/sphinx_rtd_theme/versions.html +37 -0
  22. data/docs/source/aliases.rst +2 -2
  23. data/docs/source/atlas_debian_g5k.yaml +36 -0
  24. data/docs/source/checkpoint.rst +1 -1
  25. data/docs/source/conf.py +4 -6
  26. data/docs/source/debian7.yaml +2 -2
  27. data/docs/source/getting_started.rst +132 -104
  28. data/docs/source/grid5000_tutorial.rst +36 -24
  29. data/docs/source/install_atlas.yaml +25 -0
  30. data/docs/source/install_hpl.yaml +24 -0
  31. data/docs/source/installation.rst +30 -16
  32. data/docs/source/persistent_cache.rst +3 -3
  33. data/docs/source/recipe.rst +6 -92
  34. data/docs/source/tau_install.yaml +19 -0
  35. data/docs/source/tau_install_g5k.yaml +13 -12
  36. data/docs/source/workspace.rst +2 -2
  37. data/lib/kameleon/cli.rb +3 -3
  38. data/lib/kameleon/recipe.rb +5 -6
  39. data/lib/kameleon/utils.rb +3 -4
  40. data/templates/{old-debian7.yaml → debian7-chroot.yaml} +1 -1
  41. data/version.txt +1 -1
  42. metadata +27 -3
@@ -1,6 +1,16 @@
1
1
  Kameleon CHANGELOG
2
2
  ==================
3
3
 
4
+ version 2.1.3
5
+ -------------
6
+
7
+ - [core] Loading dependent gems based on the users ruby version
8
+ - [core] Getting back compatibility with ruby 1.8.7
9
+ - [core] Don't fail if context is not ready
10
+ - [core] Minor bug fixes
11
+ - [template] Set a small timeout with netcat
12
+ - [template] Added new debian 7 appliance with kameleon.
13
+
4
14
  version 2.1.0
5
15
  -------------
6
16
 
@@ -0,0 +1,17 @@
1
+ """Sphinx ReadTheDocs theme.
2
+
3
+ From https://github.com/ryan-roemer/sphinx-bootstrap-theme.
4
+
5
+ """
6
+ import os
7
+
8
+ VERSION = (0, 1, 5)
9
+
10
+ __version__ = ".".join(str(v) for v in VERSION)
11
+ __version_full__ = __version__
12
+
13
+
14
+ def get_html_theme_path():
15
+ """Return list of HTML theme paths."""
16
+ cur_dir = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
17
+ return cur_dir
@@ -0,0 +1,19 @@
1
+ <div role="navigation" aria-label="breadcrumbs navigation">
2
+ <ul class="wy-breadcrumbs">
3
+ <li><a href="{{ pathto(master_doc) }}">Docs</a> &raquo;</li>
4
+ {% for doc in parents %}
5
+ <li><a href="{{ doc.link|e }}">{{ doc.title }}</a> &raquo;</li>
6
+ {% endfor %}
7
+ <li>{{ title }}</li>
8
+ <li class="wy-breadcrumbs-aside">
9
+ {% if display_github %}
10
+ <a href="https://github.com/{{ github_user }}/{{ github_repo }}/blob/{{ github_version }}{{ conf_py_path }}{{ pagename }}{{ source_suffix }}" class="fa fa-github"> Edit on GitHub</a>
11
+ {% elif display_bitbucket %}
12
+ <a href="https://bitbucket.org/{{ bitbucket_user }}/{{ bitbucket_repo }}/src/{{ bitbucket_version}}{{ conf_py_path }}{{ pagename }}{{ source_suffix }}" class="fa fa-bitbucket"> Edit on Bitbucket</a>
13
+ {% elif show_source and has_source and sourcename %}
14
+ <a href="{{ pathto('_sources/' + sourcename, true)|e }}" rel="nofollow"> View page source</a>
15
+ {% endif %}
16
+ </li>
17
+ </ul>
18
+ <hr/>
19
+ </div>
@@ -0,0 +1,32 @@
1
+ <footer>
2
+ {% if next or prev %}
3
+ <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
4
+ {% if next %}
5
+ <a href="{{ next.link|e }}" class="btn btn-neutral float-right" title="{{ next.title|striptags|e }}">Next <span class="fa fa-arrow-circle-right"></span></a>
6
+ {% endif %}
7
+ {% if prev %}
8
+ <a href="{{ prev.link|e }}" class="btn btn-neutral" title="{{ prev.title|striptags|e }}"><span class="fa fa-arrow-circle-left"></span> Previous</a>
9
+ {% endif %}
10
+ </div>
11
+ {% endif %}
12
+
13
+ <hr/>
14
+
15
+ <div role="contentinfo">
16
+ <p>
17
+ {%- if show_copyright %}
18
+ {%- if hasdoc('copyright') %}
19
+ {% trans path=pathto('copyright'), copyright=copyright|e %}&copy; <a href="{{ path }}">Copyright</a> {{ copyright }}.{% endtrans %}
20
+ {%- else %}
21
+ {% trans copyright=copyright|e %}&copy; Copyright {{ copyright }}.{% endtrans %}
22
+ {%- endif %}
23
+ {%- endif %}
24
+
25
+ {%- if last_updated %}
26
+ {% trans last_updated=last_updated|e %}Last updated on {{ last_updated }}.{% endtrans %}
27
+ {%- endif %}
28
+ </p>
29
+ </div>
30
+
31
+ {% trans %}<a href="https://github.com/snide/sphinx_rtd_theme">Sphinx theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>{% endtrans %}
32
+ </footer>
@@ -0,0 +1,160 @@
1
+ {# TEMPLATE VAR SETTINGS #}
2
+ {%- set url_root = pathto('', 1) %}
3
+ {%- if url_root == '#' %}{% set url_root = '' %}{% endif %}
4
+ {%- if not embedded and docstitle %}
5
+ {%- set titlesuffix = " &mdash; "|safe + docstitle|e %}
6
+ {%- else %}
7
+ {%- set titlesuffix = "" %}
8
+ {%- endif %}
9
+
10
+ <!DOCTYPE html>
11
+ <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
12
+ <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
13
+ <head>
14
+ <meta charset="utf-8">
15
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
16
+ {% block htmltitle %}
17
+ <title>{{ title|striptags|e }}{{ titlesuffix }}</title>
18
+ {% endblock %}
19
+
20
+ {# FAVICON #}
21
+ {% if favicon %}
22
+ <link rel="shortcut icon" href="{{ pathto('_static/' + favicon, 1) }}"/>
23
+ {% endif %}
24
+
25
+ {# CSS #}
26
+ <link href='https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic|Roboto+Slab:400,700|Inconsolata:400,700' rel='stylesheet' type='text/css'>
27
+
28
+ {# OPENSEARCH #}
29
+ {% if not embedded %}
30
+ {% if use_opensearch %}
31
+ <link rel="search" type="application/opensearchdescription+xml" title="{% trans docstitle=docstitle|e %}Search within {{ docstitle }}{% endtrans %}" href="{{ pathto('_static/opensearch.xml', 1) }}"/>
32
+ {% endif %}
33
+
34
+ {% endif %}
35
+
36
+ {# RTD hosts this file, so just load on non RTD builds #}
37
+ {% if not READTHEDOCS %}
38
+ <link rel="stylesheet" href="{{ pathto('_static/' + style, 1) }}" type="text/css" />
39
+ {% endif %}
40
+
41
+ {% for cssfile in css_files %}
42
+ <link rel="stylesheet" href="{{ pathto(cssfile, 1) }}" type="text/css" />
43
+ {% endfor %}
44
+
45
+ {%- block linktags %}
46
+ {%- if hasdoc('about') %}
47
+ <link rel="author" title="{{ _('About these documents') }}"
48
+ href="{{ pathto('about') }}"/>
49
+ {%- endif %}
50
+ {%- if hasdoc('genindex') %}
51
+ <link rel="index" title="{{ _('Index') }}"
52
+ href="{{ pathto('genindex') }}"/>
53
+ {%- endif %}
54
+ {%- if hasdoc('search') %}
55
+ <link rel="search" title="{{ _('Search') }}" href="{{ pathto('search') }}"/>
56
+ {%- endif %}
57
+ {%- if hasdoc('copyright') %}
58
+ <link rel="copyright" title="{{ _('Copyright') }}" href="{{ pathto('copyright') }}"/>
59
+ {%- endif %}
60
+ <link rel="top" title="{{ docstitle|e }}" href="{{ pathto('index') }}"/>
61
+ {%- if parents %}
62
+ <link rel="up" title="{{ parents[-1].title|striptags|e }}" href="{{ parents[-1].link|e }}"/>
63
+ {%- endif %}
64
+ {%- if next %}
65
+ <link rel="next" title="{{ next.title|striptags|e }}" href="{{ next.link|e }}"/>
66
+ {%- endif %}
67
+ {%- if prev %}
68
+ <link rel="prev" title="{{ prev.title|striptags|e }}" href="{{ prev.link|e }}"/>
69
+ {%- endif %}
70
+ {%- endblock %}
71
+ {%- block extrahead %} {% endblock %}
72
+
73
+ {# Keep modernizr in head - http://modernizr.com/docs/#installing #}
74
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.6.2/modernizr.min.js"></script>
75
+
76
+ </head>
77
+
78
+ <body class="wy-body-for-nav" role="document">
79
+
80
+ <div class="wy-grid-for-nav">
81
+
82
+ {# SIDE NAV, TOGGLES ON MOBILE #}
83
+ <nav data-toggle="wy-nav-shift" class="wy-nav-side">
84
+ <div class="wy-side-nav-search">
85
+ <a href="{{ pathto(master_doc) }}" class="fa fa-home"> {{ project }}</a>
86
+ {% include "searchbox.html" %}
87
+ </div>
88
+
89
+ <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
90
+ {% set toctree = toctree(maxdepth=2, collapse=False, includehidden=True) %}
91
+ {% if toctree %}
92
+ {{ toctree }}
93
+ {% else %}
94
+ <!-- Local TOC -->
95
+ <div class="local-toc">{{ toc }}</div>
96
+ {% endif %}
97
+ </div>
98
+ &nbsp;
99
+ </nav>
100
+
101
+ <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
102
+
103
+ {# MOBILE NAV, TRIGGLES SIDE NAV ON TOGGLE #}
104
+ <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
105
+ <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
106
+ <a href="{{ pathto(master_doc) }}">{{ project }}</a>
107
+ </nav>
108
+
109
+
110
+ {# PAGE CONTENT #}
111
+ <div class="wy-nav-content">
112
+ <div class="rst-content">
113
+ {% include "breadcrumbs.html" %}
114
+ <div role="main">
115
+ {% block body %}{% endblock %}
116
+ </div>
117
+ {% include "footer.html" %}
118
+ </div>
119
+ </div>
120
+
121
+ </section>
122
+
123
+ </div>
124
+ {% include "versions.html" %}
125
+
126
+ {% if not embedded %}
127
+
128
+ <script type="text/javascript">
129
+ var DOCUMENTATION_OPTIONS = {
130
+ URL_ROOT:'{{ url_root }}',
131
+ VERSION:'{{ release|e }}',
132
+ COLLAPSE_INDEX:false,
133
+ FILE_SUFFIX:'{{ '' if no_search_suffix else file_suffix }}',
134
+ HAS_SOURCE: {{ has_source|lower }}
135
+ };
136
+ </script>
137
+ {%- for scriptfile in script_files %}
138
+ <script type="text/javascript" src="{{ pathto(scriptfile, 1) }}"></script>
139
+ {%- endfor %}
140
+
141
+ {% endif %}
142
+
143
+ {# RTD hosts this file, so just load on non RTD builds #}
144
+ {% if not READTHEDOCS %}
145
+ <script type="text/javascript" src="{{ pathto('_static/js/theme.js', 1) }}"></script>
146
+ {% endif %}
147
+
148
+ {# STICKY NAVIGATION #}
149
+ {% if theme_sticky_navigation %}
150
+ <script type="text/javascript">
151
+ jQuery(function () {
152
+ SphinxRtdTheme.StickyNav.enable();
153
+ });
154
+ </script>
155
+ {% endif %}
156
+
157
+ {%- block footer %} {% endblock %}
158
+
159
+ </body>
160
+ </html>
@@ -0,0 +1,205 @@
1
+ {#
2
+ basic/layout.html
3
+ ~~~~~~~~~~~~~~~~~
4
+
5
+ Master layout template for Sphinx themes.
6
+
7
+ :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
8
+ :license: BSD, see LICENSE for details.
9
+ #}
10
+ {%- block doctype -%}
11
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
12
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
13
+ {%- endblock %}
14
+ {%- set reldelim1 = reldelim1 is not defined and ' &raquo;' or reldelim1 %}
15
+ {%- set reldelim2 = reldelim2 is not defined and ' |' or reldelim2 %}
16
+ {%- set render_sidebar = (not embedded) and (not theme_nosidebar|tobool) and
17
+ (sidebars != []) %}
18
+ {%- set url_root = pathto('', 1) %}
19
+ {# XXX necessary? #}
20
+ {%- if url_root == '#' %}{% set url_root = '' %}{% endif %}
21
+ {%- if not embedded and docstitle %}
22
+ {%- set titlesuffix = " &mdash; "|safe + docstitle|e %}
23
+ {%- else %}
24
+ {%- set titlesuffix = "" %}
25
+ {%- endif %}
26
+
27
+ {%- macro relbar() %}
28
+ <div class="related">
29
+ <h3>{{ _('Navigation') }}</h3>
30
+ <ul>
31
+ {%- for rellink in rellinks %}
32
+ <li class="right" {% if loop.first %}style="margin-right: 10px"{% endif %}>
33
+ <a href="{{ pathto(rellink[0]) }}" title="{{ rellink[1]|striptags|e }}"
34
+ {{ accesskey(rellink[2]) }}>{{ rellink[3] }}</a>
35
+ {%- if not loop.first %}{{ reldelim2 }}{% endif %}</li>
36
+ {%- endfor %}
37
+ {%- block rootrellink %}
38
+ <li><a href="{{ pathto(master_doc) }}">{{ shorttitle|e }}</a>{{ reldelim1 }}</li>
39
+ {%- endblock %}
40
+ {%- for parent in parents %}
41
+ <li><a href="{{ parent.link|e }}" {% if loop.last %}{{ accesskey("U") }}{% endif %}>{{ parent.title }}</a>{{ reldelim1 }}</li>
42
+ {%- endfor %}
43
+ {%- block relbaritems %} {% endblock %}
44
+ </ul>
45
+ </div>
46
+ {%- endmacro %}
47
+
48
+ {%- macro sidebar() %}
49
+ {%- if render_sidebar %}
50
+ <div class="sphinxsidebar">
51
+ <div class="sphinxsidebarwrapper">
52
+ {%- block sidebarlogo %}
53
+ {%- if logo %}
54
+ <p class="logo"><a href="{{ pathto(master_doc) }}">
55
+ <img class="logo" src="{{ pathto('_static/' + logo, 1) }}" alt="Logo"/>
56
+ </a></p>
57
+ {%- endif %}
58
+ {%- endblock %}
59
+ {%- if sidebars != None %}
60
+ {#- new style sidebar: explicitly include/exclude templates #}
61
+ {%- for sidebartemplate in sidebars %}
62
+ {%- include sidebartemplate %}
63
+ {%- endfor %}
64
+ {%- else %}
65
+ {#- old style sidebars: using blocks -- should be deprecated #}
66
+ {%- block sidebartoc %}
67
+ {%- include "localtoc.html" %}
68
+ {%- endblock %}
69
+ {%- block sidebarrel %}
70
+ {%- include "relations.html" %}
71
+ {%- endblock %}
72
+ {%- block sidebarsourcelink %}
73
+ {%- include "sourcelink.html" %}
74
+ {%- endblock %}
75
+ {%- if customsidebar %}
76
+ {%- include customsidebar %}
77
+ {%- endif %}
78
+ {%- block sidebarsearch %}
79
+ {%- include "searchbox.html" %}
80
+ {%- endblock %}
81
+ {%- endif %}
82
+ </div>
83
+ </div>
84
+ {%- endif %}
85
+ {%- endmacro %}
86
+
87
+ {%- macro script() %}
88
+ <script type="text/javascript">
89
+ var DOCUMENTATION_OPTIONS = {
90
+ URL_ROOT: '{{ url_root }}',
91
+ VERSION: '{{ release|e }}',
92
+ COLLAPSE_INDEX: false,
93
+ FILE_SUFFIX: '{{ '' if no_search_suffix else file_suffix }}',
94
+ HAS_SOURCE: {{ has_source|lower }}
95
+ };
96
+ </script>
97
+ {%- for scriptfile in script_files %}
98
+ <script type="text/javascript" src="{{ pathto(scriptfile, 1) }}"></script>
99
+ {%- endfor %}
100
+ {%- endmacro %}
101
+
102
+ {%- macro css() %}
103
+ <link rel="stylesheet" href="{{ pathto('_static/' + style, 1) }}" type="text/css" />
104
+ <link rel="stylesheet" href="{{ pathto('_static/pygments.css', 1) }}" type="text/css" />
105
+ {%- for cssfile in css_files %}
106
+ <link rel="stylesheet" href="{{ pathto(cssfile, 1) }}" type="text/css" />
107
+ {%- endfor %}
108
+ {%- endmacro %}
109
+
110
+ <html xmlns="http://www.w3.org/1999/xhtml">
111
+ <head>
112
+ <meta http-equiv="Content-Type" content="text/html; charset={{ encoding }}" />
113
+ {{ metatags }}
114
+ {%- block htmltitle %}
115
+ <title>{{ title|striptags|e }}{{ titlesuffix }}</title>
116
+ {%- endblock %}
117
+ {{ css() }}
118
+ {%- if not embedded %}
119
+ {{ script() }}
120
+ {%- if use_opensearch %}
121
+ <link rel="search" type="application/opensearchdescription+xml"
122
+ title="{% trans docstitle=docstitle|e %}Search within {{ docstitle }}{% endtrans %}"
123
+ href="{{ pathto('_static/opensearch.xml', 1) }}"/>
124
+ {%- endif %}
125
+ {%- if favicon %}
126
+ <link rel="shortcut icon" href="{{ pathto('_static/' + favicon, 1) }}"/>
127
+ {%- endif %}
128
+ {%- endif %}
129
+ {%- block linktags %}
130
+ {%- if hasdoc('about') %}
131
+ <link rel="author" title="{{ _('About these documents') }}" href="{{ pathto('about') }}" />
132
+ {%- endif %}
133
+ {%- if hasdoc('genindex') %}
134
+ <link rel="index" title="{{ _('Index') }}" href="{{ pathto('genindex') }}" />
135
+ {%- endif %}
136
+ {%- if hasdoc('search') %}
137
+ <link rel="search" title="{{ _('Search') }}" href="{{ pathto('search') }}" />
138
+ {%- endif %}
139
+ {%- if hasdoc('copyright') %}
140
+ <link rel="copyright" title="{{ _('Copyright') }}" href="{{ pathto('copyright') }}" />
141
+ {%- endif %}
142
+ <link rel="top" title="{{ docstitle|e }}" href="{{ pathto('index') }}" />
143
+ {%- if parents %}
144
+ <link rel="up" title="{{ parents[-1].title|striptags|e }}" href="{{ parents[-1].link|e }}" />
145
+ {%- endif %}
146
+ {%- if next %}
147
+ <link rel="next" title="{{ next.title|striptags|e }}" href="{{ next.link|e }}" />
148
+ {%- endif %}
149
+ {%- if prev %}
150
+ <link rel="prev" title="{{ prev.title|striptags|e }}" href="{{ prev.link|e }}" />
151
+ {%- endif %}
152
+ {%- endblock %}
153
+ {%- block extrahead %} {% endblock %}
154
+ </head>
155
+ <body>
156
+ {%- block header %}{% endblock %}
157
+
158
+ {%- block relbar1 %}{{ relbar() }}{% endblock %}
159
+
160
+ {%- block content %}
161
+ {%- block sidebar1 %} {# possible location for sidebar #} {% endblock %}
162
+
163
+ <div class="document">
164
+ {%- block document %}
165
+ <div class="documentwrapper">
166
+ {%- if render_sidebar %}
167
+ <div class="bodywrapper">
168
+ {%- endif %}
169
+ <div class="body">
170
+ {% block body %} {% endblock %}
171
+ </div>
172
+ {%- if render_sidebar %}
173
+ </div>
174
+ {%- endif %}
175
+ </div>
176
+ {%- endblock %}
177
+
178
+ {%- block sidebar2 %}{{ sidebar() }}{% endblock %}
179
+ <div class="clearer"></div>
180
+ </div>
181
+ {%- endblock %}
182
+
183
+ {%- block relbar2 %}{{ relbar() }}{% endblock %}
184
+
185
+ {%- block footer %}
186
+ <div class="footer">
187
+ {%- if show_copyright %}
188
+ {%- if hasdoc('copyright') %}
189
+ {% trans path=pathto('copyright'), copyright=copyright|e %}&copy; <a href="{{ path }}">Copyright</a> {{ copyright }}.{% endtrans %}
190
+ {%- else %}
191
+ {% trans copyright=copyright|e %}&copy; Copyright {{ copyright }}.{% endtrans %}
192
+ {%- endif %}
193
+ {%- endif %}
194
+ {%- if last_updated %}
195
+ {% trans last_updated=last_updated|e %}Last updated on {{ last_updated }}.{% endtrans %}
196
+ {%- endif %}
197
+ {%- if show_sphinx %}
198
+ {% trans sphinx_version=sphinx_version|e %}Created using <a href="http://sphinx-doc.org/">Sphinx</a> {{ sphinx_version }}.{% endtrans %}
199
+ {%- endif %}
200
+ </div>
201
+ <p>asdf asdf asdf asdf 22</p>
202
+ {%- endblock %}
203
+ </body>
204
+ </html>
205
+