Initial commit to ONF Docs site
Change-Id: Ic882d6c7cc2f17a8fe74acee5cb70352b04aada2
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..30221dd
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,8 @@
+# SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
+# SPDX-License-Identifier: Apache-2.0
+
+_build
+venv-docs
+
+.DS_Store
+Thumbs.db
diff --git a/.reuse/dep5 b/.reuse/dep5
new file mode 100644
index 0000000..4b44910
--- /dev/null
+++ b/.reuse/dep5
@@ -0,0 +1,9 @@
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+
+Files: VERSION .gitreview *.rst *.png *.svg dict.txt
+Copyright: 2022 Open Networking Foundation
+License: Apache-2.0
+
+Files: _static/fonts/Inconsolata*.ttf
+Copyright: 2006 Raph Levien
+License: OFL-1.1
diff --git a/LICENSES/Apache-2.0.txt b/LICENSES/Apache-2.0.txt
new file mode 100644
index 0000000..137069b
--- /dev/null
+++ b/LICENSES/Apache-2.0.txt
@@ -0,0 +1,73 @@
+Apache License
+Version 2.0, January 2004
+http://www.apache.org/licenses/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
+
+"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
+
+"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
+
+"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
+
+"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
+
+"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
+
+"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
+
+"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
+
+"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
+
+"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
+
+2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
+
+ (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Apache License to your work.
+
+To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.
+
+Copyright [yyyy] [name of copyright owner]
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
diff --git a/LICENSES/OFL-1.1.txt b/LICENSES/OFL-1.1.txt
new file mode 100644
index 0000000..6fe84ee
--- /dev/null
+++ b/LICENSES/OFL-1.1.txt
@@ -0,0 +1,43 @@
+SIL OPEN FONT LICENSE
+
+Version 1.1 - 26 February 2007
+
+PREAMBLE
+
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting — in part or in whole — any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..471713a
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,56 @@
+# Minimal makefile for Sphinx documentation
+
+# SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
+# SPDX-License-Identifier: Apache-2.0
+
+SHELL = bash -e -o pipefail
+
+# You can set these variables from the command line.
+SPHINXOPTS = -W
+SPHINXBUILD = sphinx-build
+SOURCEDIR = .
+BUILDDIR = _build
+
+# Create the virtualenv with all the tools installed
+VIRTUALENV = venv-docs
+
+# Put it first so that "make" without argument runs "make help".
+help: $(VIRTUALENV)
+ source ./$(VIRTUALENV)/bin/activate ;\
+ $(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
+
+.PHONY: help Makefile lint license test
+# automatically reload changes in browser as they're made
+
+$(VIRTUALENV):
+ python3 -m venv $@ ;\
+ source ./$@/bin/activate ;\
+ pip install -r requirements.txt
+
+# test - check that local build will lint, spelling is correct, then
+# build the html site.
+test: license lint spelling linkcheck
+
+# lint all .rst files
+lint: $(VIRTUALENV)
+ source ./$</bin/activate ; set -u;\
+ doc8 --ignore-path $< --ignore-path _build --ignore-path LICENSES --max-line-length 99
+
+license: $(VIRTUALENV) ## Check license with the reuse tool
+ source ./$</bin/activate ; set -u ;\
+ reuse --version ;\
+ reuse --root . lint
+
+# clean up
+clean:
+ rm -rf "$(BUILDDIR)"
+
+# clean-all - delete the virtualenv too
+clean-all: clean
+ rm -rf "$(VIRTUALENV)"
+
+# Catch-all target: route all unknown targets to Sphinx using the new
+# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
+%: $(VIRTUALENV) Makefile
+ source ./$</bin/activate ; set -u;\
+ $(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
diff --git a/VERSION b/VERSION
new file mode 100644
index 0000000..4259c64
--- /dev/null
+++ b/VERSION
@@ -0,0 +1 @@
+0.5.0-dev
diff --git a/_static/css/rtd_theme_mods.css b/_static/css/rtd_theme_mods.css
new file mode 100644
index 0000000..9b91c02
--- /dev/null
+++ b/_static/css/rtd_theme_mods.css
@@ -0,0 +1,24 @@
+/*
+ * SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
+ * SPDX-License-Identifier: Apache-2.0
+ *
+*/
+
+/* Don't restrict content width on the RTD theme
+ * from: https://stackoverflow.com/a/32898444 */
+
+.wy-nav-content {
+ max-width: none;
+}
+
+.wy-table-responsive table td, .wy-table-responsive table th {
+ white-space: normal;
+}
+
+.wy-side-nav-search {
+ background-color: #d9d9d9;
+}
+
+.wy-side-nav-search>div.version {
+ color: #404040;
+}
diff --git a/_static/fonts/Inconsolata-Bold.ttf b/_static/fonts/Inconsolata-Bold.ttf
new file mode 100644
index 0000000..9addc89
--- /dev/null
+++ b/_static/fonts/Inconsolata-Bold.ttf
Binary files differ
diff --git a/_static/fonts/Inconsolata-Regular.ttf b/_static/fonts/Inconsolata-Regular.ttf
new file mode 100644
index 0000000..592ccd2
--- /dev/null
+++ b/_static/fonts/Inconsolata-Regular.ttf
Binary files differ
diff --git a/_static/onf-favicon-128.png b/_static/onf-favicon-128.png
new file mode 100644
index 0000000..a996445
--- /dev/null
+++ b/_static/onf-favicon-128.png
Binary files differ
diff --git a/_static/onf.svg b/_static/onf.svg
new file mode 100644
index 0000000..13bb3f5
--- /dev/null
+++ b/_static/onf.svg
@@ -0,0 +1,242 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:version="1.0 (4035a4f, 2020-05-01)"
+ sodipodi:docname="NEW ONF_WITH-GRADIENT.eps"
+ viewBox="0 0 322 188.8828"
+ height="188.8828"
+ width="322"
+ xml:space="preserve"
+ id="svg10"
+ version="1.1"><metadata
+ id="metadata16"><rdf:RDF><cc:Work
+ rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
+ id="defs14"><clipPath
+ id="clipPath76"
+ clipPathUnits="userSpaceOnUse"><path
+ id="path74"
+ d="m 1440.98,442.609 c 0,10.621 -1.18,22.422 -3.54,35.403 -2.36,12.976 -8.26,24.777 -15.34,35.398 -7.08,10.621 -17.7,20.059 -30.68,27.141 -12.97,7.078 -30.67,11.801 -50.73,11.801 h -326.85 c -21.238,0 -37.762,-3.543 -50.742,-11.801 -12.977,-7.082 -23.598,-16.52 -30.676,-27.141 -7.082,-10.621 -12.981,-22.422 -15.34,-35.398 -2.363,-12.981 -3.539,-24.782 -3.539,-35.403 v -154.57 c 0,-11.801 -4.723,-22.418 -12.977,-30.68 -8.261,-8.257 -18.882,-12.98 -30.679,-12.98 -11.801,0 -22.422,4.723 -30.684,12.98 -8.258,8.262 -12.98,18.879 -12.98,30.68 v 154.57 c 0,22.422 3.543,46.02 11.804,69.621 7.078,23.602 18.875,44.84 33.036,63.719 14.16,18.879 31.859,34.215 53.101,47.196 20.059,11.8 43.656,17.699 69.613,17.699 h 379.943 c 24.78,-1.176 47.21,-8.258 66.08,-20.059 18.88,-11.797 35.4,-28.32 49.56,-47.195 14.16,-18.879 23.6,-40.121 30.68,-62.539 7.08,-22.422 10.62,-46.02 10.62,-68.442 v -154.57 c 0,-11.801 -4.72,-22.418 -12.98,-30.68 -8.26,-8.257 -18.88,-12.98 -30.68,-12.98 -11.8,0 -22.42,4.723 -30.68,12.98 -8.26,8.262 -12.98,18.879 -12.98,30.68 v 154.57 z" /></clipPath><linearGradient
+ id="linearGradient84"
+ spreadMethod="pad"
+ gradientTransform="matrix(3193.64,1162.39,-1162.39,3193.64,4219.74,1530.52)"
+ gradientUnits="userSpaceOnUse"
+ y2="0"
+ x2="1"
+ y1="0"
+ x1="0"><stop
+ id="stop78"
+ offset="0"
+ style="stop-opacity:1;stop-color:#3678c6" /><stop
+ id="stop80"
+ offset="0.626268"
+ style="stop-opacity:1;stop-color:#59caf5" /><stop
+ id="stop82"
+ offset="1"
+ style="stop-opacity:1;stop-color:#59caf5" /></linearGradient><clipPath
+ id="clipPath94"
+ clipPathUnits="userSpaceOnUse"><path
+ id="path92"
+ d="m 737.473,442.609 c 0,-22.418 -3.539,-46.007 -11.801,-69.609 -7.074,-23.609 -18.875,-44.84 -33.035,-63.719 -14.16,-18.883 -31.864,-34.222 -53.098,-47.199 -20.062,-11.801 -43.66,-17.703 -69.617,-17.703 H 156.938 c -24.782,1.18 -47.204,8.262 -66.0786,20.062 -18.8828,12.981 -35.4024,28.321 -49.5625,47.2 C 27.1367,330.52 17.6992,351.762 10.6172,374.172 3.53906,396.602 0,420.191 0,442.609 c 0,22.422 3.53906,46.02 11.8008,69.621 7.0781,23.602 18.875,44.84 33.0351,63.719 14.1602,18.879 31.8633,34.215 53.1016,47.196 20.0585,11.8 43.6565,17.699 69.6135,17.699 h 412.988 c 24.781,-1.176 47.199,-8.258 66.078,-20.059 18.879,-11.797 35.399,-28.32 49.559,-47.195 14.16,-18.879 23.597,-40.121 30.679,-62.539 7.079,-23.602 10.618,-46.02 10.618,-68.442 z M 551.039,331.699 c 20.063,0 37.758,3.539 50.742,11.789 12.977,7.082 23.598,16.524 30.68,27.141 7.078,10.621 12.977,22.422 15.336,35.402 2.363,12.981 3.539,24.778 3.539,35.399 0,10.621 -1.184,22.422 -3.539,35.402 -2.359,12.977 -8.258,24.777 -15.336,35.398 -7.082,10.622 -17.703,20.059 -30.68,27.141 -12.984,7.078 -30.679,11.801 -50.742,11.801 H 185.254 c -21.238,0 -37.762,-3.543 -50.738,-11.801 -12.981,-7.082 -23.602,-16.519 -30.68,-27.141 -7.0782,-10.621 -12.9766,-22.421 -15.336,-35.398 -2.3633,-12.98 -3.5391,-24.781 -3.5391,-35.402 0,-10.621 1.1758,-22.418 3.5391,-35.399 2.3594,-12.98 8.2578,-24.781 15.336,-35.402 7.078,-10.617 17.699,-20.059 30.68,-27.141 12.976,-7.078 29.5,-11.789 50.738,-11.789 z" /></clipPath><linearGradient
+ id="linearGradient104"
+ spreadMethod="pad"
+ gradientTransform="matrix(369.571,134.513,-134.513,369.571,-1.30069,307.93)"
+ gradientUnits="userSpaceOnUse"
+ y2="0"
+ x2="1"
+ y1="0"
+ x1="0"><stop
+ id="stop96"
+ offset="0"
+ style="stop-opacity:1;stop-color:#243e7f" /><stop
+ id="stop98"
+ offset="0.0996414"
+ style="stop-opacity:1;stop-color:#243e7f" /><stop
+ id="stop100"
+ offset="0.50264328"
+ style="stop-opacity:1;stop-color:#3779c6" /><stop
+ id="stop102"
+ offset="1"
+ style="stop-opacity:1;stop-color:#3779c6" /></linearGradient><clipPath
+ id="clipPath114"
+ clipPathUnits="userSpaceOnUse"><path
+ id="path112"
+ d="m 2190.06,385.262 h -394.11 c -19.98,0 -36.18,16.199 -36.18,36.179 0,19.981 16.2,36.18 36.18,36.18 h 394.11 c 19.98,0 36.18,-16.199 36.18,-36.18 0,-19.98 -16.2,-36.179 -36.18,-36.179 z" /></clipPath><linearGradient
+ id="linearGradient120"
+ spreadMethod="pad"
+ gradientTransform="matrix(416.016,151.417,151.417,-416.016,1785,345.73)"
+ gradientUnits="userSpaceOnUse"
+ y2="0"
+ x2="1"
+ y1="0"
+ x1="0"><stop
+ id="stop116"
+ offset="0"
+ style="stop-opacity:1;stop-color:#3678c6" /><stop
+ id="stop118"
+ offset="1"
+ style="stop-opacity:1;stop-color:#59caf5" /></linearGradient><clipPath
+ id="clipPath130"
+ clipPathUnits="userSpaceOnUse"><path
+ id="path128"
+ d="m 1669.19,246.91 c -23.31,0 -42.21,18.899 -42.21,42.211 V 463.41 c 0,97.84 79.6,177.434 177.44,177.434 h 493.37 c 23.32,0 42.21,-18.899 42.21,-42.207 0,-23.305 -18.89,-42.207 -42.21,-42.207 h -493.37 c -51.29,0 -93.03,-41.731 -93.03,-93.02 V 289.121 c 0,-23.312 -18.89,-42.211 -42.2,-42.211 z" /></clipPath><linearGradient
+ id="linearGradient136"
+ spreadMethod="pad"
+ gradientTransform="matrix(733.895,267.116,267.116,-733.895,1586.29,393.44)"
+ gradientUnits="userSpaceOnUse"
+ y2="0"
+ x2="1"
+ y1="0"
+ x1="0"><stop
+ id="stop132"
+ offset="0"
+ style="stop-opacity:1;stop-color:#3678c6" /><stop
+ id="stop134"
+ offset="1"
+ style="stop-opacity:1;stop-color:#59caf5" /></linearGradient><clipPath
+ id="clipPath146"
+ clipPathUnits="userSpaceOnUse"><path
+ id="path144"
+ d="m 1053.03,1131.77 c 7.64,-17.58 16.14,-35.27 25.53,-53 109.4,-206.668 284.51,-334.836 400.28,-267.176 138.97,81.304 84.35,271.796 18.26,401.696 l -0.17,0.25 c 12.76,-40.86 43.45,-227.817 -26.61,-267.895 -80.65,-46.149 -192.35,41.152 -274.1,195.645 -11.06,20.9 -21.52,42.78 -30.32,63.66 0,0 -12.93,-3.6 -47.06,-24.65 -33.52,-20.68 -65.81,-48.53 -65.81,-48.53 z" /></clipPath><linearGradient
+ id="linearGradient154"
+ spreadMethod="pad"
+ gradientTransform="matrix(512.429,0,0,-512.429,1053.03,1003.47)"
+ gradientUnits="userSpaceOnUse"
+ y2="0"
+ x2="1"
+ y1="0"
+ x1="0"><stop
+ id="stop148"
+ offset="0"
+ style="stop-opacity:1;stop-color:#771519" /><stop
+ id="stop150"
+ offset="0.51721552"
+ style="stop-opacity:1;stop-color:#c91e25" /><stop
+ id="stop152"
+ offset="1"
+ style="stop-opacity:1;stop-color:#c91e25" /></linearGradient><clipPath
+ id="clipPath164"
+ clipPathUnits="userSpaceOnUse"><path
+ id="path162"
+ d="M 0,0 H 2340 V 1586 H 0 Z" /></clipPath><clipPath
+ id="clipPath170"
+ clipPathUnits="userSpaceOnUse"><path
+ id="path168"
+ d="m 1007.16,1284.74 c -19.933,123.87 7.79,227.28 75.51,275.21 114.92,81.39 247.42,-41.44 326.02,-155.07 l -0.12,0.01 c -66.87,56.27 -165.64,128.85 -233.87,95.08 -46.06,-22.8 -59.61,-82.88 -48.66,-158.18 0,0 -25.11,-8.41 -40.48,-14.61 -37.63,-15.2 -78.4,-42.44 -78.4,-42.44 z" /></clipPath><linearGradient
+ id="linearGradient178"
+ spreadMethod="pad"
+ gradientTransform="matrix(407.852,0,0,-407.852,1000.83,1435.52)"
+ gradientUnits="userSpaceOnUse"
+ y2="0"
+ x2="1"
+ y1="0"
+ x1="0"><stop
+ id="stop172"
+ offset="0"
+ style="stop-opacity:1;stop-color:#771519" /><stop
+ id="stop174"
+ offset="0.51721552"
+ style="stop-opacity:1;stop-color:#c91e25" /><stop
+ id="stop176"
+ offset="1"
+ style="stop-opacity:1;stop-color:#c91e25" /></linearGradient><clipPath
+ id="clipPath188"
+ clipPathUnits="userSpaceOnUse"><path
+ id="path186"
+ d="m 1361.46,1032.64 c 105.43,141.68 39.04,228.3 14.06,253.09 -36.54,36.27 -87.64,53.94 -144.79,53.94 -78.77,0 -169.07,-33.54 -248.71,-98.13 -93.079,-75.44 -153.086,-171.55 -160.516,-257.118 -4.004,-46.031 8.098,-86.699 35.008,-117.606 87.515,-100.515 192.238,-71.55 274.428,-18.316 -59.39,-11.773 -133.139,-21.738 -178.163,26.004 -21.429,22.73 -31.593,52.16 -29.379,85.098 4.192,62.608 50.813,134.348 127.912,196.808 81.61,66.16 169.69,101.08 235.5,93.47 32.23,-3.74 57.64,-17.34 75.52,-40.43 0,0 45.69,-65.06 -0.87,-176.81 z" /></clipPath><linearGradient
+ id="linearGradient196"
+ spreadMethod="pad"
+ gradientTransform="matrix(598.434,0,0,-598.434,820.752,1069.8)"
+ gradientUnits="userSpaceOnUse"
+ y2="0"
+ x2="1"
+ y1="0"
+ x1="0"><stop
+ id="stop190"
+ offset="0"
+ style="stop-opacity:1;stop-color:#771519" /><stop
+ id="stop192"
+ offset="0.51721552"
+ style="stop-opacity:1;stop-color:#c91e25" /><stop
+ id="stop194"
+ offset="1"
+ style="stop-opacity:1;stop-color:#c91e25" /></linearGradient></defs><sodipodi:namedview
+ fit-margin-bottom="5"
+ fit-margin-right="5"
+ fit-margin-left="5"
+ fit-margin-top="5"
+ inkscape:current-layer="g20"
+ inkscape:window-maximized="0"
+ inkscape:window-y="23"
+ inkscape:window-x="0"
+ inkscape:cy="110.71333"
+ inkscape:cx="161"
+ inkscape:zoom="2.3974359"
+ showgrid="false"
+ id="namedview12"
+ inkscape:window-height="949"
+ inkscape:window-width="1407"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0"
+ guidetolerance="10"
+ gridtolerance="10"
+ objecttolerance="10"
+ borderopacity="1"
+ bordercolor="#666666"
+ pagecolor="#ffffff" /><g
+ transform="matrix(1.3333333,0,0,-1.3333333,5,216.46666)"
+ inkscape:label="ink_ext_XXXXXX"
+ inkscape:groupmode="layer"
+ id="g18"><g
+ transform="scale(0.1)"
+ id="g20"><g
+ id="g70"><g
+ clip-path="url(#clipPath76)"
+ id="g72"><path
+ id="path86"
+ style="fill:url(#linearGradient84);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="m 1440.98,442.609 c 0,10.621 -1.18,22.422 -3.54,35.403 -2.36,12.976 -8.26,24.777 -15.34,35.398 -7.08,10.621 -17.7,20.059 -30.68,27.141 -12.97,7.078 -30.67,11.801 -50.73,11.801 h -326.85 c -21.238,0 -37.762,-3.543 -50.742,-11.801 -12.977,-7.082 -23.598,-16.52 -30.676,-27.141 -7.082,-10.621 -12.981,-22.422 -15.34,-35.398 -2.363,-12.981 -3.539,-24.782 -3.539,-35.403 v -154.57 c 0,-11.801 -4.723,-22.418 -12.977,-30.68 -8.261,-8.257 -18.882,-12.98 -30.679,-12.98 -11.801,0 -22.422,4.723 -30.684,12.98 -8.258,8.262 -12.98,18.879 -12.98,30.68 v 154.57 c 0,22.422 3.543,46.02 11.804,69.621 7.078,23.602 18.875,44.84 33.036,63.719 14.16,18.879 31.859,34.215 53.101,47.196 20.059,11.8 43.656,17.699 69.613,17.699 h 379.943 c 24.78,-1.176 47.21,-8.258 66.08,-20.059 18.88,-11.797 35.4,-28.32 49.56,-47.195 14.16,-18.879 23.6,-40.121 30.68,-62.539 7.08,-22.422 10.62,-46.02 10.62,-68.442 v -154.57 c 0,-11.801 -4.72,-22.418 -12.98,-30.68 -8.26,-8.257 -18.88,-12.98 -30.68,-12.98 -11.8,0 -22.42,4.723 -30.68,12.98 -8.26,8.262 -12.98,18.879 -12.98,30.68 v 154.57 h -2.36" /></g></g><g
+ id="g88"><g
+ clip-path="url(#clipPath94)"
+ id="g90"><path
+ id="path106"
+ style="fill:url(#linearGradient104);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="m 737.473,442.609 c 0,-22.418 -3.539,-46.007 -11.801,-69.609 -7.074,-23.609 -18.875,-44.84 -33.035,-63.719 -14.16,-18.883 -31.864,-34.222 -53.098,-47.199 -20.062,-11.801 -43.66,-17.703 -69.617,-17.703 H 156.938 c -24.782,1.18 -47.204,8.262 -66.0786,20.062 -18.8828,12.981 -35.4024,28.321 -49.5625,47.2 C 27.1367,330.52 17.6992,351.762 10.6172,374.172 3.53906,396.602 0,420.191 0,442.609 c 0,22.422 3.53906,46.02 11.8008,69.621 7.0781,23.602 18.875,44.84 33.0351,63.719 14.1602,18.879 31.8633,34.215 53.1016,47.196 20.0585,11.8 43.6565,17.699 69.6135,17.699 h 412.988 c 24.781,-1.176 47.199,-8.258 66.078,-20.059 18.879,-11.797 35.399,-28.32 49.559,-47.195 14.16,-18.879 23.597,-40.121 30.679,-62.539 7.079,-23.602 10.618,-46.02 10.618,-68.442 z M 551.039,331.699 c 20.063,0 37.758,3.539 50.742,11.789 12.977,7.082 23.598,16.524 30.68,27.141 7.078,10.621 12.977,22.422 15.336,35.402 2.363,12.981 3.539,24.778 3.539,35.399 0,10.621 -1.184,22.422 -3.539,35.402 -2.359,12.977 -8.258,24.777 -15.336,35.398 -7.082,10.622 -17.703,20.059 -30.68,27.141 -12.984,7.078 -30.679,11.801 -50.742,11.801 H 185.254 c -21.238,0 -37.762,-3.543 -50.738,-11.801 -12.981,-7.082 -23.602,-16.519 -30.68,-27.141 -7.0782,-10.621 -12.9766,-22.421 -15.336,-35.398 -2.3633,-12.98 -3.5391,-24.781 -3.5391,-35.402 0,-10.621 1.1758,-22.418 3.5391,-35.399 2.3594,-12.98 8.2578,-24.781 15.336,-35.402 7.078,-10.617 17.699,-20.059 30.68,-27.141 12.976,-7.078 29.5,-11.789 50.738,-11.789 h 365.785 v 0" /></g></g><g
+ id="g108"><g
+ clip-path="url(#clipPath114)"
+ id="g110"><path
+ id="path122"
+ style="fill:url(#linearGradient120);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="m 2190.06,385.262 h -394.11 c -19.98,0 -36.18,16.199 -36.18,36.179 0,19.981 16.2,36.18 36.18,36.18 h 394.11 c 19.98,0 36.18,-16.199 36.18,-36.18 0,-19.98 -16.2,-36.179 -36.18,-36.179" /></g></g><g
+ id="g124"><g
+ clip-path="url(#clipPath130)"
+ id="g126"><path
+ id="path138"
+ style="fill:url(#linearGradient136);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="m 1669.19,246.91 c -23.31,0 -42.21,18.899 -42.21,42.211 V 463.41 c 0,97.84 79.6,177.434 177.44,177.434 h 493.37 c 23.32,0 42.21,-18.899 42.21,-42.207 0,-23.305 -18.89,-42.207 -42.21,-42.207 h -493.37 c -51.29,0 -93.03,-41.731 -93.03,-93.02 V 289.121 c 0,-23.312 -18.89,-42.211 -42.2,-42.211" /></g></g><g
+ id="g140"><g
+ clip-path="url(#clipPath146)"
+ id="g142"><path
+ id="path156"
+ style="fill:url(#linearGradient154);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="m 1053.03,1131.77 c 7.64,-17.58 16.14,-35.27 25.53,-53 109.4,-206.668 284.51,-334.836 400.28,-267.176 138.97,81.304 84.35,271.796 18.26,401.696 l -0.17,0.25 c 12.76,-40.86 43.45,-227.817 -26.61,-267.895 -80.65,-46.149 -192.35,41.152 -274.1,195.645 -11.06,20.9 -21.52,42.78 -30.32,63.66 0,0 -12.93,-3.6 -47.06,-24.65 -33.52,-20.68 -65.81,-48.53 -65.81,-48.53" /></g></g><g
+ id="g158"><g
+ clip-path="url(#clipPath164)"
+ id="g160"><g
+ clip-path="url(#clipPath170)"
+ id="g166"><path
+ id="path180"
+ style="fill:url(#linearGradient178);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="m 1007,1284 v 1 h -1 v 7 h -1 v 7 h -1 v 8 h -1 v 11 h -1 v 11 h -1 v 21 h -1 v 18 h 1 v 23 h 1 v 10 h 1 v 9 h 1 v 7 h 1 v 6 h 1 v 6 h 1 v 5 h 1 v 5 h 1 v 4 h 1 v 4 h 1 v 4 h 1 v 3 h 1 v 4 h 1 v 3 h 1 v 3 h 1 v 3 h 1 v 3 h 1 v 3 h 1 v 2 h 1 v 3 h 1 v 2 h 1 v 3 h 1 v 2 h 1 v 3 h 1 v 2 h 1 v 2 h 1 v 2 h 1 v 2 h 1 v 2 h 1 v 2 h 1 v 2 h 1 v 2 h 1 v 1 h 1 v 2 h 1 v 2 h 1 v 1 h 1 v 2 h 1 v 2 h 1 v 1 h 1 v 2 h 1 v 1 h 1 v 2 h 1 v 1 h 1 v 1 h 1 v 2 h 1 v 1 h 1 v 2 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 2 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 2 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 2 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 2 v 1 h 1 v 1 h 1 v 1 h 1 v 1 h 2 v 1 h 1 v 1 h 2 v 1 h 1 v 1 h 1 v 1 h 2 v 1 h 2 v 1 h 2 v 1 h 1 v 1 h 2 v 1 h 2 v 1 h 2 v 1 h 2 v 1 h 1 v 1 h 2 v 1 h 3 v 1 h 2 v 1 h 3 v 1 h 3 v 1 h 2 v 1 h 3 v 1 h 3 v 1 h 2 v 1 h 5 v 1 h 5 v 1 h 5 v 1 h 5 v 1 h 34 v -1 h 7 v -1 h 7 v -1 h 4 v -1 h 4 v -1 h 3 v -1 h 4 v -1 h 3 v -1 h 4 v -1 h 3 v -1 h 2 v -1 h 2 v -1 h 3 v -1 h 2 v -1 h 2 v -1 h 3 v -1 h 2 v -1 h 3 v -1 h 2 v -1 h 2 v -1 h 1 v -1 h 2 v -1 h 2 v -1 h 2 v -1 h 2 v -1 h 2 v -1 h 1 v -1 h 2 v -1 h 2 v -1 h 2 v -1 h 2 v -1 h 1 v -1 h 2 v -1 h 1 v -1 h 2 v -1 h 1 v -1 h 2 v -1 h 1 v -1 h 2 v -1 h 1 v -1 h 2 v -1 h 1 v -1 h 2 v -1 h 1 v -1 h 2 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 2 v -1 h 1 v -1 h 1 v -1 h 2 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 2 v -1 h 1 v -1 h 1 v -1 h 2 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 2 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 2 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 2 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -2 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -2 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -2 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -2 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -2 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -2 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -2 h 1 v -1 h 1 v -1 h 1 v -2 h 1 v -1 h 1 v -1 h 1 v -1 h 1 v -2 h 1 v -1 h 1 v -1 h 1 v -2 h 1 v -1 h 1 v -1 h 1 v -2 h 1 v -1 h 1 v -1 h 1 v -2 h 1 v -1 h 1 v -1 h 1 v -2 h 1 v -1 h 1 v -2 h 1 v -1 h 1 v -1 h 1 v -2 h 1 v -1 h 1 v -2 h 1 v -2 h -1 v 1 h -1 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -1 v 1 h -1 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -1 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -1 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -1 v 1 h -1 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -1 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -2 v 1 h -1 v 1 h -2 v 1 h -2 v 1 h -1 v 1 h -2 v 1 h -2 v 1 h -1 v 1 h -2 v 1 h -2 v 1 h -1 v 1 h -2 v 1 h -2 v 1 h -2 v 1 h -2 v 1 h -2 v 1 h -1 v 1 h -2 v 1 h -2 v 1 h -2 v 1 h -2 v 1 h -2 v 1 h -2 v 1 h -2 v 1 h -3 v 1 h -2 v 1 h -2 v 1 h -2 v 1 h -3 v 1 h -2 v 1 h -3 v 1 h -2 v 1 h -3 v 1 h -3 v 1 h -3 v 1 h -3 v 1 h -4 v 1 h -3 v 1 h -5 v 1 h -5 v 1 h -5 v 1 h -9 v 1 h -17 v -1 h -7 v -1 h -5 v -1 h -5 v -1 h -3 v -1 h -3 v -1 h -2 v -1 h -3 v -1 h -2 v -1 h -2 v -1 h -2 v -1 h -1 v -1 h -2 v -1 h -1 v -1 h -2 v -1 h -1 v -1 h -1 v -1 h -2 v -1 h -1 v -1 h -1 v -1 h -1 v -1 h -1 v -1 h -1 v -1 h -1 v -1 h -1 v -1 h -1 v -1 h -1 v -1 h -1 v -1 h -1 v -1 h -1 v -1 h -1 v -1 h -1 v -1 h -1 v -2 h -1 v -2 h -1 v -1 h -1 v -2 h -1 v -2 h -1 v -1 h -1 v -2 h -1 v -2 h -1 v -1 h -1 v -2 h -1 v -3 h -1 v -3 h -1 v -2 h -1 v -3 h -1 v -3 h -1 v -2 h -1 v -3 h -1 v -5 h -1 v -4 h -1 v -5 h -1 v -5 h -1 v -8 h -1 v -13 h -1 v -26 h 1 v -14 h 1 v -10 h 1 v -7 h 1 v -2 h -3 v -1 h -3 v -1 h -3 v -1 h -3 v -1 h -2 v -1 h -3 v -1 h -3 v -1 h -3 v -1 h -3 v -1 h -2 v -1 h -3 v -1 h -3 v -1 h -2 v -1 h -3 v -1 h -2 v -1 h -3 v -1 h -2 v -1 h -2 v -1 h -3 v -1 h -2 v -1 h -2 v -1 h -2 v -1 h -2 v -1 h -2 v -1 h -2 v -1 h -2 v -1 h -2 v -1 h -2 v -1 h -2 v -1 h -2 v -1 h -2 v -1 h -2 v -1 h -2 v -1 h -2 v -1 h -1 v -1 h -2 v -1 h -2 v -1 h -2 v -1 h -1 v -1 h -2 v -1 h -2 v -1 h -2 v -1 h -1 v -1 h -2 v -1 h -2 v -1 h -1 v -1 h -2 v -1 h -2 v -1 h -1 v -1 h -2 v -1 h -2 v -1 h -1 v -1 h -2 v -1 h -1 v -1 h -2 v -1 h -1 v -1 h -2 v -1" /></g></g></g><g
+ id="g182"><g
+ clip-path="url(#clipPath188)"
+ id="g184"><path
+ id="path198"
+ style="fill:url(#linearGradient196);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="m 1361.46,1032.64 c 105.43,141.68 39.04,228.3 14.06,253.09 -36.54,36.27 -87.64,53.94 -144.79,53.94 -78.77,0 -169.07,-33.54 -248.71,-98.13 -93.079,-75.44 -153.086,-171.55 -160.516,-257.118 -4.004,-46.031 8.098,-86.699 35.008,-117.606 87.515,-100.515 192.238,-71.55 274.428,-18.316 -59.39,-11.773 -133.139,-21.738 -178.163,26.004 -21.429,22.73 -31.593,52.16 -29.379,85.098 4.192,62.608 50.813,134.348 127.912,196.808 81.61,66.16 169.69,101.08 235.5,93.47 32.23,-3.74 57.64,-17.34 75.52,-40.43 0,0 45.69,-65.06 -0.87,-176.81" /></g></g></g></g></svg>
diff --git a/conf.py b/conf.py
new file mode 100644
index 0000000..510943e
--- /dev/null
+++ b/conf.py
@@ -0,0 +1,245 @@
+# -*- coding: utf-8 -*-
+
+# SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
+# SPDX-License-Identifier: Apache-2.0
+
+# Configuration file for the Sphinx documentation builder.
+#
+# This file does only contain a selection of the most common options. For a
+# full list see the documentation:
+# http://www.sphinx-doc.org/en/master/config
+
+# -- Path setup --------------------------------------------------------------
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#
+# import os
+# import sys
+# sys.path.insert(0, os.path.abspath('.'))
+
+import os
+
+def get_version():
+ with open("VERSION") as f:
+ return f.read().strip()
+
+
+# -- Project information -----------------------------------------------------
+
+project = u'ONF Documentation'
+copyright = u'2020-current, Open Networking Foundation'
+author = u'Open Networking Foundation'
+
+# The short X.Y version
+version = get_version()
+# The full version, including alpha/beta/rc tags
+release = version
+
+
+# -- General configuration ---------------------------------------------------
+
+# If your documentation needs a minimal Sphinx version, state it here.
+#
+# needs_sphinx = '1.0'
+
+# Add any Sphinx extension module names here, as strings. They can be
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
+# ones.
+extensions = [
+ 'sphinx.ext.autosectionlabel',
+ 'sphinx.ext.coverage',
+ 'sphinx.ext.graphviz',
+ 'sphinx.ext.ifconfig',
+ 'sphinx.ext.intersphinx',
+ 'sphinx.ext.mathjax',
+ 'sphinx.ext.todo',
+ 'sphinxcontrib.spelling',
+ "sphinx_multiversion",
+]
+
+# require document prefix on section labels
+autosectionlabel_prefix_document = True
+
+# Text files with lists of words that shouldn't fail the spellchecker:
+spelling_word_list_filename=['dict.txt', ]
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# The suffix(es) of source filenames.
+# You can specify multiple suffix as a list of string:
+#
+# source_suffix = ['.rst', '.md']
+source_suffix = '.rst'
+
+# The master toctree document.
+master_doc = 'index'
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+#
+# This is also used if you do content translation via gettext catalogs.
+# Usually you set "language" from the command line for these cases.
+language = None
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+# This pattern also affects html_static_path and html_extra_path.
+exclude_patterns = [
+ '.DS_Store',
+ 'Thumbs.db',
+ '_build',
+ 'LICENSES',
+ 'requirements.txt',
+ 'venv-docs',
+]
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = None
+
+
+# -- Options for HTML output -------------------------------------------------
+
+# The theme to use for HTML and HTML Help pages. See the documentation for
+# a list of builtin themes.
+#
+html_theme = 'sphinx_rtd_theme'
+
+html_logo = '_static/onf.svg'
+
+html_favicon = '_static/onf-favicon-128.png'
+
+# Theme options are theme-specific and customize the look and feel of a theme
+# further. For a list of options available for each theme, see the
+# documentation.
+
+html_theme_options = {
+ 'logo_only': True
+}
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
+
+# Custom sidebar templates, must be a dictionary that maps document names
+# to template names.
+#
+# The default sidebars (for documents that don't match any pattern) are
+# defined by theme itself. Builtin themes are using these templates by
+# default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
+# 'searchbox.html']``.
+#
+# html_sidebars = {}
+
+
+# -- Options for HTMLHelp output ---------------------------------------------
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'ONFDocs'
+
+
+# -- Options for LaTeX output ------------------------------------------------
+
+# latex_engine = "xelatex"
+
+latex_elements = {
+ # The paper size ('letterpaper' or 'a4paper').
+ #
+ # 'papersize': 'letterpaper',
+
+ # The font size ('10pt', '11pt' or '12pt').
+ #
+ # 'pointsize': '10pt',
+
+ # Additional stuff for the LaTeX preamble.
+ #
+ # 'preamble': '',
+
+ # Latex figure (float) alignment
+ #
+ # 'figure_align': 'htbp',
+}
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title,
+# author, documentclass [howto, manual, or own class]).
+latex_documents = [
+ (master_doc, 'ONFDocs.tex', u'ONF Docs',
+ u'ONF Team', 'manual'),
+]
+
+
+# -- Options for manual page output ------------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+ (master_doc, 'onfdocs', u'ONF Docs',
+ [author], 1)
+]
+
+
+# -- Options for Texinfo output ----------------------------------------------
+
+# Grouping the document tree into Texinfo files. List of tuples
+# (source start file, target name, title, author,
+# dir menu entry, description, category)
+texinfo_documents = [
+ (master_doc, 'ONFDocs', u'ONF Docs',
+ author, 'ONFDocs', 'ONF Documentation',
+ 'Miscellaneous'),
+]
+
+
+# -- Options for Epub output -------------------------------------------------
+
+# Bibliographic Dublin Core info.
+epub_title = project
+
+# The unique identifier of the text. This can be a ISBN number
+# or the project homepage.
+#
+# epub_identifier = ''
+
+# A unique identification for the text.
+#
+# epub_uid = ''
+
+# A list of files that should not be packed into the epub file.
+epub_exclude_files = ['search.html']
+
+
+# -- Options for todo extension ----------------------------------------------
+# If true, `todo` and `todoList` produce output, else they produce nothing.
+todo_include_todos = True
+
+# -- Options for linkcheck ---------------------------------------------------
+# The link checker strips off .md from links and then complains
+linkcheck_ignore = [
+ r'https://gerrit.opencord.org/settings/.*',
+]
+
+# -- options for Intersphinx extension ---------------------------------------
+
+intersphinx_mapping = {
+ 'ansible': ('https://docs.ansible.com/ansible/latest', None),
+ 'sphinx': ('https://www.sphinx-doc.org/en/master', None),
+ 'rtd': ('https://docs.readthedocs.io/en/stable', None),
+ 'trellis': ('https://docs.trellisfabric.org/master', None),
+ 'voltha': ('https://docs.voltha.org/master', None),
+ 'aether': ('https://docs.aetherproject.org/master', None),
+ 'sdcore': ('https://docs.sd-core.opennetworking.org/master', None),
+ 'sdran': ('https://docs.sd-ran.org/master', None),
+ 'sdran': ('https://docs.sd-fabric.org/master', None),
+ 'sysapproach5g': ('https://5g.systemsapproach.org/', None),
+ 'sysapproachnet': ('https://book.systemsapproach.org/', None),
+ 'sysapproachsdn': ('https://sdn.systemsapproach.org/', None),
+ 'sysapproachops': ('https://ops.systemsapproach.org/', None),
+ }
+
+def setup(app):
+
+ app.add_css_file('css/rtd_theme_mods.css')
+
diff --git a/devguide/cicd.rst b/devguide/cicd.rst
new file mode 100644
index 0000000..009b4c1
--- /dev/null
+++ b/devguide/cicd.rst
@@ -0,0 +1,4 @@
+Continuous Integration and Delivery
+===================================
+
+
diff --git a/devguide/conventions.rst b/devguide/conventions.rst
new file mode 100644
index 0000000..2e612af
--- /dev/null
+++ b/devguide/conventions.rst
@@ -0,0 +1,73 @@
+Development Conventions
+=======================
+
+ONF has many (over 300) software repositories as of 2022, and to effectively
+develop across all of these projects, the following development conventions are
+used.
+
+Strategy
+--------
+
+The general strategy for ONF software development is as follows:
+
+Make it easy to start contributing to any repo
+""""""""""""""""""""""""""""""""""""""""""""""
+
+A convention we've embraced in nearly all repos is to have a ``Makefile`` in
+their base directory, which has a few common targets:
+
+* ``make help``: Get a list of ``make`` targets
+* ``make build`` run
+* ``make test`` run all tests, as they'd be run in CI by a
+
+
+Most ``Makefiles`` use the GNU Make syntax variant.
+
+Automated tests should be identical for the developer and automation
+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+
+The CI test runner (Jenkins or similar) that performs automated testing should
+run the same tests in the same way that a developer would on their local
+system, by running ``make test``. There should be no (or very rare) cases where
+a test will pass locally but fail in CI.
+
+Additionally, this greatly simplifies the configuration of the test runner - it
+only needs to run ``make test``. In some cases, it may be necessary for the
+Makefile to include commands that generate Jenkins-consumable output, such as
+test results (usually in JUnit, xUnit, or TAP formats) or coverage information
+(usually in Cobertura XML format).
+
+
+Style, formatting, linting, license compliance should be automated
+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+
+Code review should be about the structure and design of the code, and should
+
+To that end, automated tools should be used that verify and conform the code to
+a specific convention and standard:
+
+* Formatting tools such as ``go fmt``, ``black`` and similar should be used to
+ conform code to style guidelines
+
+* Linting tools such as ``pylint``, ``yamllint``
+
+In the documentation space, spelling and other checks should also be performed.
+
+Versioning and Releasing Software
+---------------------------------
+
+Versioning software and performing releases are fundamentally for two audiences:
+
+1. Providing compatibility claims about
+2. Developers who use the
+
+Two common and recommended versioning schemes are;
+
+* SemVer
+* CalVer
+
+Division of responsibilities
+""""""""""""""""""""""""""""
+
+Automated tools should perform low-level versioning tasks like creating tags on
+repos.
diff --git a/devguide/design.rst b/devguide/design.rst
new file mode 100644
index 0000000..30b3816
--- /dev/null
+++ b/devguide/design.rst
@@ -0,0 +1,35 @@
+Design Guide
+============
+
+Make the obvious way the right way
+----------------------------------
+
+A developer coming to a new-to-them project should be able to quickly learn the
+correct way to interact with a project's code, and the "path of least
+resistance" should also be the correct way to make changes to a project.
+
+Build on the shoulders of giants
+---------------------------------
+
+Another way of saying this is: "Avoid reinventing the wheel".
+
+If there is (acceptably licensed and maintained) code out available out there
+that could be used to accomplish a task, consider using it.
+
+External Dependencies
+---------------------
+
+Upstream code changes over time, and you should design your projects to be able
+to deal with this change.
+
+
+Lifecycle
+"""""""""
+
+Testing against new versions
+''''''''''''''''''''''''''''
+
+You should embrace tools that allow you to test against upgraded dependencies.
+
+One example of a tool that lets you do this easily is ``tox``, which can handle
+running a unit test suite against multiple versions of the Python language.
diff --git a/dict.txt b/dict.txt
new file mode 100644
index 0000000..091ed2d
--- /dev/null
+++ b/dict.txt
@@ -0,0 +1,25 @@
+Ansible
+Cobertura
+Hadolint
+JUnit
+Kubernetes
+Makefile
+ONF
+intersphinx
+lifecycle
+linkcheck
+patchset
+pylint
+rST
+reStructuredText
+relicensed
+repo
+repos
+shellcheck
+sublicense
+virtualenv
+xUnit
+tox
+codebase
+unittest
+unix
diff --git a/docs/sphinx.rst b/docs/sphinx.rst
new file mode 100644
index 0000000..05bcba9
--- /dev/null
+++ b/docs/sphinx.rst
@@ -0,0 +1,132 @@
+Sphinx
+======
+
+Docs are generated using :doc:`Sphinx <sphinx:usage/index>` using the
+:doc:`reStructuredText <sphinx:usage/restructuredtext/basics>` syntax.
+
+Sphinx was chosen because it's widely used (Python official docs, Linux Kernel,
+Read the Docs, etc.), open source, actively maintained, has code highlighting,
+and a good client-side search implementation.
+
+Writing Documentation
+---------------------
+
+reStructuredText syntax references can be found here:
+
+* :doc:`Sphinx reStructuredText Primer <sphinx:usage/restructuredtext/basics>`
+* `rst cheat sheet <https://github.com/ralsina/rst-cheatsheet/blob/master/rst-cheatsheet.rst>`_
+
+rST creates headings by underlining the heading with a series of symbol
+characters. There is no specific required order for these, but for consistency
+most ONF docs use the following symbols/order to represent heading levels::
+
+ H1: =
+ H2: -
+ H3: "
+ H4: '
+ H5: ^
+ H6: +
+
+Linking within Documentation
+""""""""""""""""""""""""""""
+
+
+Referencing other Documentation
+"""""""""""""""""""""""""""""""
+
+Other Sphinx-built documentation, both ONF and non-ONF can be linked to using
+:doc:`InterSphinx <sphinx:usage/extensions/intersphinx>`, which allows you to
+create links that will work even if the other site moves or reorganizes
+content.
+
+New InterSphinx reference requires modifying the ``intersphinx_mapping``
+variables of the ``conf.py`` file.
+
+You can see all link targets available on a remote Sphinx's docs by running::
+
+ python -msphinx.ext.intersphinx http://otherdocs/objects.inv
+
+More information about InterSphinx:
+
+* :doc:`Read the Docs InterSphinx Guide <rtd:guides/intersphinx>`
+
+Adding Images and Diagrams
+""""""""""""""""""""""""""
+
+There are multiple ways to add images and diagrams to the documentation.
+
+Generally, you should prefer using `SVG
+<https://en.wikipedia.org/wiki/Scalable_Vector_Graphics>`_ images, as these can
+be scaled to any size without quality loss.
+
+If you're creating diagrams, there are multiple tools available.
+:doc:`Graphviz <sphinx:usage/extensions/graphviz>` can render inline text-based
+graphs definitions and diagrams within the documentation, and is best choice for
+simple diagrams.
+
+More complex diagrams can be created in `Diagrams.net/Draw.io
+<https://www.diagrams.net/>`_ format, which is available as a standalone app,
+web app, or integrated with various other tools like Google Workspace. When
+saving these diagrams, use the SVG format, and check the **Include a copy of my
+diagram** box. This will let someone open the SVG later within Diagrams.net
+from file saved in the documentation and edit it without any loss in
+functionality or quality.
+
+The last resort is to use raster (bitmap) images. If they're drawings or screen
+captures, use the `PNG
+<https://en.wikipedia.org/wiki/Portable_Network_Graphics>`_ format. Consider
+optimizing the PNG files with a tool like `OptiPNG
+<http://optipng.sourceforge.net/>`_, or `pngquant <https://pngquant.org/>`_ to
+save space and data transfer required.
+
+If you need to include a photograph, use `JPEG
+<https://en.wikipedia.org/wiki/JPEG>`_.
+
+Building the Documentation
+--------------------------
+
+The documentation build process is stored in a ``Makefile``. Building docs
+requires Python to be installed, and most steps will create a virtualenv
+(usually ``venv-docs``) which contains the required tools. You may also need
+to install the ``enchant`` C library using your system's package manager for
+the spelling checker to function properly.
+
+Run ``make html`` to generate html documentation in ``_build/html``.
+
+There is also a test target, ``make test``, which will run all the following
+checks - this is what Jenkins does on patchset validation, so:
+
+* ``make lint``: Check the formatting of documentation using `doc8
+ <https://github.com/PyCQA/doc8>`_.
+
+* ``make license``: Verifies licensing is correct using :ref:`REUSE
+ <policies/licensing:REUSE License Tool>`
+
+* ``make spelling``: Checks spelling on all documentation. If there are
+ additional words that are correctly spelled but not in the dictionary
+ (acronyms, nouns, etc.) please add them to the ``dict.txt`` file, which
+ should be alphabetized using ``sort``
+
+* ``make linkcheck``: Verifies that links in the document are working and
+ accessible, using Sphinx's built in linkcheck tool. If there are links that
+ don't work with this, please see the ``linkcheck_ignore`` section of
+ ``conf.py``.
+
+Some sites may have the ability to build a PDF file of the documentation using
+``make latexpdf``. This requires that you have a recent LaTeX installation and
+``latexmk`` installed.
+
+Versioning Documentation
+""""""""""""""""""""""""
+
+To change the version shown on the built site, change the contents of the
+``VERSION`` file to be released SemVer version. This will create a tag on the
+repo.
+
+Then when ``make multiversion`` target can be used which will build all
+versions tagged or branched on the remote to ``_build/multiversion``. This will
+use a fork of `sphinx-multiversion
+<https://github.com/Holzhaus/sphinx-multiversion>`_ to build multiple versions
+and a menu on the site.
+
+There are variables in ``conf.py`` to determine which tags/branches to build.
diff --git a/docs/write.rst b/docs/write.rst
new file mode 100644
index 0000000..f1e5c75
--- /dev/null
+++ b/docs/write.rst
@@ -0,0 +1,55 @@
+Writing Documentation
+=====================
+
+Documentation is an essential part of any software product.
+
+4 Types of Documentation
+
+This site is an example of **Reference** documentation.
+
+
+Where should I put Documentation?
+---------------------------------
+
+The README
+""""""""""
+
+Basic **How To** Documentation should go into a README file in each repo:
+
+1. A high level summary of what the code in the repo does ("This code is ... ")
+
+2. Licensing and community information ("This is developed by ONF as a part of
+ the FOO project, and licensed under Apache-2")
+
+3. High level dependencies required ("Go version 1.17.x is needed to...")
+
+4. Examples of how to build the code ("Run ``make build`` to create a binary
+ named ...")
+
+5. Examples of how to run the code ("The output binary can be found in and run
+ with ...")
+
+6. How the code is tested ("Your code should pass ``make test``")
+
+Generally this should be fairly short and easy to reference
+
+Design Documents
+""""""""""""""""
+
+Design Documents concern the Why ...
+
+One option is to place these in the code repo
+
+
+Tutorials
+"""""""""
+
+Operations Guides
+"""""""""""""""""
+
+These show a user **How** to use a project and software. Generally these
+should be located in a documentation repo, not stored with code.
+
+
+Project Documentation
+"""""""""""""""""""""
diff --git a/index.rst b/index.rst
new file mode 100644
index 0000000..7c47461
--- /dev/null
+++ b/index.rst
@@ -0,0 +1,47 @@
+ONF Technical Docs
+==================
+
+This site describes various technical processes used by ONF across many
+projects.
+
+
+.. toctree::
+ :maxdepth: 1
+ :caption: Development Guide
+
+ devguide/design
+ devguide/conventions
+ devguide/cicd
+
+.. toctree::
+ :maxdepth: 1
+ :caption: Tool-specific Guides
+
+ tools/ansible
+ tools/docker
+ tools/go
+ tools/k8s
+ tools/make
+ tools/python
+ tools/shell
+
+.. toctree::
+ :maxdepth: 1
+ :caption: Documentation
+
+ docs/write
+ docs/sphinx
+
+.. toctree::
+ :maxdepth: 1
+ :caption: Policies
+
+ policies/licensing
+ policies/conduct
+
+Indices and tables
+==================
+
+* :ref:`genindex`
+* :ref:`modindex`
+* :ref:`search`
diff --git a/policies/conduct.rst b/policies/conduct.rst
new file mode 100644
index 0000000..27766ed
--- /dev/null
+++ b/policies/conduct.rst
@@ -0,0 +1,63 @@
+Code of Conduct
+===============
+
+Version: 2019-11-07
+
+The Open Networking Foundation (ONF) is dedicated to providing a safe and
+harassment-free professional environment (meetings, events, activities, both
+online and offline) for everyone, regardless of gender, sexual orientation,
+disability, physical appearance, race, age, religion, or any other protected
+category. ONF does not tolerate harassment of any participant in any form. ONF
+participants violating these rules may be sanctioned or expelled from ONF
+projects and programs, including but not limited to online communities,
+internal programs, and in-person events at the discretion of ONF staff, with no
+refund. These individuals could also have their permissions revoked, and this
+decision would be communicated to the violator’s company. In addition,
+violations may be turned over to the appropriate authorities for resolution.
+
+Expected Behavior
+-----------------
+
+* Be respectful, kind, and professional
+* Exercise consideration and empathy in your words and actions
+* Be mindful of others
+
+ONF is an international community and assumes good intent, but also understands
+that written communication, including emojis, does not always convey nuances,
+such as humor. Please think about how your words may be misinterpreted by the
+community before saying, posting, or sending them.
+
+Unacceptable Behavior
+---------------------
+
+Intimidating, harassing, discriminatory, abusive, derogatory, or demeaning
+speech or actions by any participant, at any ONF event online or offline as
+well as in one-on-one communication carried out in the context of ONF will not
+be tolerated.
+
+Harassment includes, but is not limited to: offensive verbal comments related
+to gender, gender identity and expression, sexual orientation, disability,
+physical appearance, body size, race, age, religion; it also includes stalking,
+following, harassing photography or recording, sustained disruption of talks or
+other events, inappropriate physical contact, and unwelcome sexual attention.
+
+Consequences of Unacceptable Behavior
+-------------------------------------
+
+Participants who are asked to stop any unacceptable behavior are expected to
+comply immediately. If a participant engages in unacceptable behavior, ONF
+staff members or volunteer leaders may initiate any reasonable action they deem
+appropriate, including expulsion from ONF online forums or summoning event
+security or law enforcement.
+
+Contact Information
+-------------------
+
+If you are being harassed, notice that someone else is being harassed, or have
+any other concerns involving someone’s welfare, please notify a member of the
+ONF team or email `conduct@opennetworking.org
+<mailto:conduct@opennetworking.org>`_. In case of an emergency, please contact
+law enforcement first and then notify ONF. ONF will be available to help
+participants contact local law enforcement, provide escorts, or otherwise
+provide assistance, so that those experiencing unacceptable behavior can feel
+safe for the duration of the event. ONF values your participation.
diff --git a/policies/licensing.rst b/policies/licensing.rst
new file mode 100644
index 0000000..0e3c01e
--- /dev/null
+++ b/policies/licensing.rst
@@ -0,0 +1,91 @@
+Software Licensing
+==================
+
+Software Licenses used by ONF
+-----------------------------
+
+Most of ONF's software is licensed under the `Apache License, Version 2.0
+<https://www.apache.org/licenses/LICENSE-2.0>`_ (commonly referred to as
+Apache-2 or APL2).
+
+REUSE License Tool
+""""""""""""""""""
+
+ONF uses the `REUSE <https://reuse.software>`_ toolkit to verify that licenses
+are correctly applied to files within a code repository, as an automated step
+in the CI process.
+
+REUSE replies on the `Software Package Data Exchange (SPDX) license headers
+<https://spdx.dev>`_ headers to be applied to every source code file in the
+system. These are put in a comment at the start of a file, similar to::
+
+ # SPDX-FileCopyrightText: 2022 Open Networking Foundation <info@opennetworking.org>
+ # SPDX-License-Identifier: Apache-2.0
+
+License Compatibility
+"""""""""""""""""""""
+
+Software licensing is a complex task, and attention needs to be paid to how
+code is incorporated in ONF projects, or how binaries generated from that code
+are used.
+
+If you would like to use external code in an ONF project that uses a license
+that is not mentioned as being acceptable in the lists below, please make an
+inquiry with the project development team before including that code.
+
+Code Level Linking
+''''''''''''''''''
+
+Apache 2.0 licensed software can incorporate or link directly against code
+written using the following licenses. A few examples:
+
+* BSD with 2, 3 clauses
+* MIT
+* Most "Public Domain" licenses
+
+See also the `ASF 3rd Party License Policy
+<https://www.apache.org/legal/resolved.html>`_ for additional details.
+
+Runtime Usage
+'''''''''''''
+
+Code with these kinds of licenses can be used at runtime, but can't be directly
+linked to:
+
+* GPL and most other "Strong Copyleft" licenses
+
+An example of this would be running an OS like Linux that is GPLv2 licensed as
+a part of an ONF project, it's used but not modified or linked against.
+
+Licenses to avoid
+'''''''''''''''''
+
+The following licenses have various issues related to additional requirements
+placed on it's use that are problematic, or favor one party over others.
+
+* AGPL: This makes requirements on releasing modifications to services
+ delivered over a network.
+
+* BSL: this is a timed license, which is proprietary for a period of time,
+ then automatically relicensed as GPL2
+
+* SSPL (MongoDB, Elasticsearch, etc.): makes requirements upon business process
+ and deployment code.
+
+Dual Licensing
+""""""""""""""
+
+It may be advantageous to dual-license code - code that serves as an example or
+templates that a user would copy and modify. This also could include any code
+that is within documentation.
+
+In cases such as this, it may be advantageous to place examples in the public
+domain, or with a less strict license such as MIT or BSD 2-Clause.
+
+Contributor License Agreement
+-----------------------------
+
+Contributing software to and ONF project requires agreeing to the `Contributor
+Licensing Agreement <https://wiki.opennetworking.org/x/BgCUI>`_, which gives
+ONF a copyright and patent grant to for all code contributions, and the right
+to sublicense the code in the future.
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..09c76d6
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,10 @@
+# SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
+# SPDX-License-Identifier: Apache-2.0
+
+Sphinx~=4.4.0
+doc8~=0.10.1
+docutils~=0.17.1
+reuse~=0.14.0
+sphinx-rtd-theme~=1.0.0
+sphinxcontrib-spelling~=7.3.2
+sphinx-multiversion~=0.2.4
diff --git a/tools/ansible.rst b/tools/ansible.rst
new file mode 100644
index 0000000..4847684
--- /dev/null
+++ b/tools/ansible.rst
@@ -0,0 +1,3 @@
+Ansible
+=======
+
diff --git a/tools/docker.rst b/tools/docker.rst
new file mode 100644
index 0000000..4509fde
--- /dev/null
+++ b/tools/docker.rst
@@ -0,0 +1,21 @@
+Docker
+======
+
+
+
+Security
+--------
+
+By default, the docker daemon will modify the firewall settings on the host
+machine. This is undesirable if the machine isn't behind another, separate
+non-host firewall.
+
+In general Docker workloads should be run within :doc:`Kubernetes
+<k8s>`.
+
+Linting
+-------
+
+Hadolint
+
+
diff --git a/tools/go.rst b/tools/go.rst
new file mode 100644
index 0000000..f1e53b9
--- /dev/null
+++ b/tools/go.rst
@@ -0,0 +1,4 @@
+Go
+==
+
+
diff --git a/tools/k8s.rst b/tools/k8s.rst
new file mode 100644
index 0000000..a105056
--- /dev/null
+++ b/tools/k8s.rst
@@ -0,0 +1,2 @@
+Kubernetes
+==========
diff --git a/tools/make.rst b/tools/make.rst
new file mode 100644
index 0000000..ed8b71e
--- /dev/null
+++ b/tools/make.rst
@@ -0,0 +1,28 @@
+Make
+====
+
+Make is a unix tool that provides a dependency-based way to execute commands.
+
+The make command takes a parameter, known as the **target** which is usually
+the name of a file you would like to generate, or set of commands you would
+like to run.
+
+
+Best Practices
+--------------
+
+Include a ``help`` target in the Makefile. This can be automatically generated
+from comments in the Makefile. There are many forms for this - this one is
+recommended::
+
+ # makefile example...
+
+This will work on both GNU and BSD implementations (``sed`` specifically).
+
+Formatting
+----------
+
+Each line of a Makefile is a new shell invocation - if you need to maintain the
+state of a shell (ex: entering a virtualenv, setting variables, etc.) you
+should wrap lines with ``;\\`` to separate individual commands while retaining
+the same shell instance.
diff --git a/tools/python.rst b/tools/python.rst
new file mode 100644
index 0000000..2b02ee4
--- /dev/null
+++ b/tools/python.rst
@@ -0,0 +1,30 @@
+Python
+======
+
+
+Formatting
+----------
+
+Black
+
+
+Lint
+----
+
+Pylint
+
+
+Testing
+-------
+
+Unittest
+
+
+Tox
+
+
+
+Taking a codebase from Python 2 to Python 3
+-------------------------------------------
+
+
diff --git a/tools/shell.rst b/tools/shell.rst
new file mode 100644
index 0000000..cf047fe
--- /dev/null
+++ b/tools/shell.rst
@@ -0,0 +1,12 @@
+Shell
+-----
+
+Shell scripts are frequently used for automating
+
+
+Lint
+----
+
+Shellcheck
+
+