summaryrefslogtreecommitdiffstats
path: root/doc/book-enea-nfv-access-guide
diff options
context:
space:
mode:
authorMiruna Paun <Miruna.Paun@enea.com>2017-12-04 13:08:25 +0100
committerMiruna Paun <Miruna.Paun@enea.com>2017-12-04 13:08:25 +0100
commitb3ce8ffb11a8be15b1998f67dc9f388dc7278287 (patch)
treecdbb125283419771f23954e9e373bcb1c95f5149 /doc/book-enea-nfv-access-guide
parentded640f3226d49a120abd0bb71189254eca9b01e (diff)
downloadel_releases-nfv-access-b3ce8ffb11a8be15b1998f67dc9f388dc7278287.tar.gz
LXCR-8047 Created a copy of the NFV Access Guide and Release Notes for intel
Diffstat (limited to 'doc/book-enea-nfv-access-guide')
-rw-r--r--doc/book-enea-nfv-access-guide/doc/getting_started.xml360
-rw-r--r--doc/book-enea-nfv-access-guide/doc/images/select-linux-kernel-in-grub2-boot-loader-on-ubuntu-14.04.pngbin0 -> 6403 bytes
-rw-r--r--doc/book-enea-nfv-access-guide/doc/images/select-linux-kernel-in-grub2-boot-loader-on-ubuntu-14.04.svg3
3 files changed, 222 insertions, 141 deletions
diff --git a/doc/book-enea-nfv-access-guide/doc/getting_started.xml b/doc/book-enea-nfv-access-guide/doc/getting_started.xml
index ed74f48..b6cf927 100644
--- a/doc/book-enea-nfv-access-guide/doc/getting_started.xml
+++ b/doc/book-enea-nfv-access-guide/doc/getting_started.xml
@@ -5,254 +5,332 @@
5 <title>Getting Started with Enea NFV Access</title> 5 <title>Getting Started with Enea NFV Access</title>
6 6
7 <para>Using Enea NFV Access requires access to a Linux machine, which is 7 <para>Using Enea NFV Access requires access to a Linux machine, which is
8 used for preparing the bootable drive or for developing applications. System 8 used for preparing a bootable drive or for developing applications. System
9 requirements for the development host are detailed in the <xi:include 9 requirements for the development host are detailed in the <xi:include
10 href="../../s_docbuild/olinkdb/pardoc-common.xml" 10 href="../../s_docbuild/olinkdb/pardoc-common.xml"
11 xmlns:xi="http://www.w3.org/2001/XInclude" 11 xmlns:xi="http://www.w3.org/2001/XInclude"
12 xpointer="element(book_enea_nfv_access_release_info/1)" /> document included 12 xpointer="element(book_enea_nfv_access_release_info/1)" />.</para>
13 with this release.</para>
14 13
15 <section id="sysshell_config"> 14 <section id="sysshell_config">
16 <title>System Shell Configuration</title> 15 <title>Default Shell Configuration</title>
17 16
18 <para>Before installing Enea NFV Access, ensure that bash is the default 17 <para>Before installing Enea NFV Access, make sure that bash is the
19 shell.</para> 18 default shell.</para>
20 19
21 <para>If your system runs Ubuntu, you can use ls -l to ensure 20 <para><emphasis role="bold">To verify the default system
22 <filename>/usr/bin</filename> is a symbolic link to bash. In case the link 21 shell</emphasis></para>
23 points to dash, which is default in some Ubuntu versions, change it to
24 bash by running <emphasis role="bold">sudo dpkg-reconfigure
25 dash</emphasis> and answer <emphasis role="bold">No</emphasis> to the
26 question <literal>Use dash as the default system shell
27 (/bin/sh)?</literal>:</para>
28 22
29 <programlisting># ls -l /bin/sh 23 <itemizedlist>
24 <listitem>
25 <para>If your system runs Ubuntu, use list to verify if
26 <filename>/usr/bin</filename> is a symbolic link to <emphasis
27 role="bold">bash</emphasis>:</para>
28
29 <programlisting># ls -l /bin/sh
30lrwxrwxrwx 1 root root 4 2012-03-02 11:53 /bin/sh -&gt; bash</programlisting> 30lrwxrwxrwx 1 root root 4 2012-03-02 11:53 /bin/sh -&gt; bash</programlisting>
31 </listitem>
32
33 <listitem>
34 <para>Optionally, in case the link points to <literal>dash</literal>,
35 change it through the following steps:</para>
36
37 <programlisting># ls -l /bin/sh
38lrwxrwxrwx 1 root root 4 2012-03-02 11:53 /bin/sh -&gt; dash
39# sudo dpkg-reconfigure dash
40Use dash as the default system shell (/bin/sh)? No</programlisting>
41 </listitem>
42 </itemizedlist>
31 </section> 43 </section>
32 44
33 <section id="access_installer"> 45 <section id="access_installer">
34 <title>Enea NFV Access Installer</title> 46 <title>Enea NFV Access Installer</title>
35 47
36 <para>The easiest way to get up and running with Enea NFV Access is to use 48 <para>The easiest way to get started with Enea NFV Access is by using the
37 the installer provided in the install directory for each supported 49 installer provided for each supported architecture in this release. Each
38 architecture in this release. The purpose of this installer is to guide 50 installer guides you in the creation of a bootable Enea NFV Access
39 you through creating a bootable Enea NFV Access installation on a physical 51 installation on a physical media.</para>
40 media (e.g. USB stick or HDD).</para>
41 52
42 <section id="installer_prereq"> 53 <section id="prereq">
43 <title>Installer Prerequisites</title> 54 <title>Prerequisites</title>
44 55
45 <para>Using the installer on the development host requires the 56 <para>The following files are needed on the development host
46 following:</para> 57 machine:</para>
47 58
48 <itemizedlist> 59 <itemizedlist>
49 <listitem> 60 <listitem>
50 <para>a GRUB .efi binary</para> 61 <para>A GRUB.efi binary - available from the <ulink url="???">GNU
62 GRUB download page</ulink>.</para>
51 </listitem> 63 </listitem>
52 64
53 <listitem> 65 <listitem>
54 <para>a physical drive of 16GB or larger</para> 66 <para>For booting from an SSD/HDD: a rootfs that needs to be
67 installed on the board (e.g.
68 <filename>[path_to_EneaNFV_Access_folder]/[architecture]/inteld1521/images/enea-nfv-access/enea-nfv-access.tar.gz</filename>).</para>
55 </listitem> 69 </listitem>
56 70
57 <listitem> 71 <listitem>
58 <para>For USB booting you will need: a development based rootfs, 72 <para>For USB booting: a development based rootfs (e.g.
59 provided with the release (e.g. 73 <filename>[path_to_EneaNFV_Access_folder]/[architecture]/inteld1521/images/enea-nfv-access-dev/enea-nfv-access-dev-inteld1521.tar.gz</filename>).</para>
60 <filename>enea-nfv-access-dev-inteld1521.tar.gz</filename>).</para>
61 </listitem> 74 </listitem>
75 </itemizedlist>
62 76
77 <para>Using the installer on the development host requires the
78 following:</para>
79
80 <itemizedlist>
63 <listitem> 81 <listitem>
64 <para>For booting from an SSD or HDD you will need: any rootfs that 82 <para>A physical drive of 16GB or larger</para>
65 needs to be installed on the board, provided with the release (e.g. 83 </listitem>
66 <filename>enea-nfv-access.tar.gz</filename>).</para> 84
85 <listitem>
86 <para>Root permissions</para>
67 </listitem> 87 </listitem>
68 </itemizedlist> 88 </itemizedlist>
69 </section> 89 </section>
70 90
71 <section id="installer_usage"> 91 <section id="installer_setup_usage">
72 <title>Installer Usage</title> 92 <title>Installer Setup and Usage</title>
73 93
74 <para>The <emphasis role="bold">Enea NFV Access installer</emphasis> 94 <para><emphasis role="bold">To install Enea NFV Access on a physical
75 shall be executed on the development host machine with root permissions. 95 drive</emphasis></para>
76 Once the <filename>nfv_installer</filename> prompt is displayed, press
77 <literal>ENTER</literal> to get the full list of built-in
78 commands:</para>
79
80 <programlisting>help - a guide on how to use the installer
81list-params - lists parameters
82list-steps - lists the available steps and the parameters that they depend on
83set - sets a parameter (e.g. "set drive=/dev/sda")
84clear - clears a parameter (e.g. "clear drive")
85list-partitions - lists current drives and partitions
86dry - describes the steps to be executed and checks if the files exist
87run - executes the steps
88q or quit - exits the script</programlisting>
89
90 <para>Enea NFV Access creates a bootable media by performing these
91 steps:</para>
92 96
93 <orderedlist> 97 <orderedlist>
94 <listitem> 98 <listitem>
95 <para>Create two partitions on a designated drive (e.g. 99 <para>Go to the installer location: <programlisting># cd [path_to_EneaNFV_Access_folder]/[architecture]/install/
96 /dev/sda):</para> 100nfv-installer/script-installer</programlisting></para>
101 </listitem>
102
103 <listitem>
104 <para>Execute the script file, this will bring you to the installer
105 prompt: <programlisting># sudo ./nfv_installer.sh</programlisting></para>
106 </listitem>
107
108 <listitem>
109 <para>Optionally, press ENTER to see the list of available
110 commands:<programlisting>help - displays a guide on how to use the installer
111list-params - lists all available parameters
112list-steps - lists the installer steps and the parameters that they depend on
113set - sets a parameter (e.g. <literal>set drive=/dev/sda</literal>)
114clear - clears a parameter (e.g. <literal>clear drive</literal>)
115list-partitions - lists current drives and partitions
116dry - performs a simulation test run
117run - executes the installer, using the values you set for each parameter
118q or quit - exits the script</programlisting></para>
119 </listitem>
120
121 <listitem>
122 <para>Set the required parameters depending on what steps you want
123 to run:</para>
124
125 <note>
126 <para>When using the installer for the first time, make sure to
127 set ALL parameters in order to be able to run all steps. See <xref
128 linkend="example_two">
129 "Example 2"
130 </xref> for details.</para>
131 </note>
132
133 <para><programlisting># set &lt;parameter_name&gt;=&lt;parameter_value&gt;</programlisting></para>
134
135 <orderedlist>
136 <listitem>
137 <para><parameter>drive=&lt;/dev/sdaX&gt;</parameter> - the drive
138 to partition</para>
139 </listitem>
140
141 <listitem>
142 <para><parameter>grub_binary=&lt;file&gt;</parameter> - points
143 to the <filename>GRUB</filename> executable to be installed
144 where <filename>grub_destination</filename> is set.</para>
145 </listitem>
146
147 <listitem>
148 <para><parameter>grub_destination=&lt;drive&gt;</parameter> -
149 specifies the partition where <filename>GRUB</filename> will be
150 installed</para>
151 </listitem>
97 152
98 <itemizedlist>
99 <listitem> 153 <listitem>
100 <para>a 512MB partition for GRUB</para> 154 <para><parameter>rootfs_destination=&lt;drive&gt;</parameter> -
155 specifies the partition where the <filename>rootfs</filename>
156 will be deployed, used by <filename>GRUB</filename> to boot off
157 of.</para>
101 </listitem> 158 </listitem>
102 159
103 <listitem> 160 <listitem>
104 <para>the rest of the drive is reserved for the rootfs</para> 161 <para><parameter>rootfs_targz=&lt;rootfs.tar.gz
162 file&gt;</parameter> - the archive of the Enea NFV Access
163 <filename>rootfs</filename> you wish to unpack to where
164 <filename>rootfs_destination</filename> is set. Which file you
165 unpack depends on whether you booting from an SSD/HDD or from a
166 USB drive.</para>
105 </listitem> 167 </listitem>
106 </itemizedlist> 168 </orderedlist>
107 </listitem> 169 </listitem>
108 170
109 <listitem> 171 <listitem>
110 <para>Configure GRUB on one partition (usually the first 172 <para>Optionally, perform a test run before affecting the actual
111 one).</para> 173 layout of the physical media with the command: <programlisting>dry</programlisting></para>
112 </listitem> 174 </listitem>
113 175
114 <listitem> 176 <listitem>
115 <para>Copy a root filesystem on the other partition.</para> 177 <para>Run the installer: <programlisting>run</programlisting></para>
116 </listitem> 178 </listitem>
117 </orderedlist>
118 179
119 <note> 180 <listitem>
120 <para>Running step 3 will implicitly copy the installer on that root 181 <para>Exit the script: <programlisting>quit</programlisting></para>
121 filesystem in 182 </listitem>
122 <filename>/usr/bin/install_nfvaccess.sh.</filename></para> 183 </orderedlist>
123 </note>
124 184
125 <para>Each step mentioned above is executed or not depending on whether 185 <para>The Enea NFV Access installer creates a bootable media by
126 certain parameters are set. Run the 186 performing three steps. Each step is executed or not depending on
127 <command><literal>list-steps</literal></command> command in order to 187 whether certain parameters are set:</para>
128 understand the built-in steps that the installer can execute and what
129 parameters they depend on. The command will print the following:</para>
130 188
131 <orderedlist> 189 <orderedlist>
132 <listitem> 190 <listitem>
133 <para><command>Format drive</command> - Uses the drive set for the 191 <para><command>Format drive</command> - creates a 512MB partition
134 <literal>drive</literal> parameter to create a 512MB partition for 192 which will be used by <filename>GRUB</filename>, and another to be
135 GRUB and another partition for the rootfs. The rootfs partition will 193 used for the <filename>rootfs</filename> (it should occupy the rest
136 be as large as the physical media minus 512MB. This step depends on 194 of the physical media minus the first partition). This step depends
137 the following parameter(s): <programlisting>drive=</programlisting></para> 195 on the following parameter(s): <programlisting>drive=</programlisting></para>
138 </listitem> 196 </listitem>
139 197
140 <listitem> 198 <listitem>
141 <para><emphasis role="bold">GRUB install</emphasis> - Installs the 199 <para><emphasis role="bold">GRUB install</emphasis> - Installs the
142 binary pointed to by <literal>grub_binary</literal> on the drive set 200 <literal>grub_binary</literal> on the drive set for
143 in <literal>grub_destination</literal>. A 201 <literal>grub_destination</literal>. A <filename>grub.cfg</filename>
144 <filename>grub.cfg</filename> file will be created that will be 202 file will be created that will be configured to boot off of
145 configured to boot off of <literal>rootfs_destination</literal>. 203 <literal>rootfs_destination</literal>. This step depends on the
146 This step depends on the following parameters:<programlisting>grub_destination= 204 following parameters:<programlisting>grub_destination=
147grub_binary= 205grub_binary=
148rootfs_destination=</programlisting></para> 206rootfs_destination=</programlisting></para>
149 </listitem> 207 </listitem>
150 208
151 <listitem> 209 <listitem>
152 <para><emphasis role="bold">Root filesystem install</emphasis> - 210 <para><emphasis role="bold">Root Filesystem install</emphasis> -
153 Copies the files found in <literal>rootfs_targz</literal> to the 211 Copies and unpacks the files found in
154 drive set in <literal>rootfs_destination</literal>. This step 212 <literal>rootfs_targz</literal> to the
155 depends on the following parameters:<programlisting>rootfs_targz= 213 <literal>rootfs_destination</literal>. This step depends on the
214 following parameters:<programlisting>rootfs_targz=
156rootfs_destination=</programlisting></para> 215rootfs_destination=</programlisting></para>
157 </listitem> 216 </listitem>
158 </orderedlist> 217 </orderedlist>
159 218
160 <para>Parameters can be set through the <command>set</command> command 219 <para>After using the installer and setting up the bootable media,
161 or cleared using the <command>clear</command> command. Since some 220 connect it to the target machine and configure the target machine to use
162 parameters are common for multiple steps, as is 221 it as a primary boot device.</para>
163 <literal>rootfs_destination</literal> for the GRUB and rootfs 222 </section>
164 installation steps, you can get a list of all the parameters, by running 223
165 <literal>list-params</literal>.</para> 224 <section id="examples">
166 225 <title>Examples of Execution</title>
167 <para>The following parameters can be configured:<programlisting>grub_destination=[drive] - specifies the drive where GRUB will be installed 226
168grub_binary=[file] - points to the GRUB executable to be installed 227 <para>Below are a few examples of setups that the Enea NFV Access
169 where grub_destination is set 228 installer can be used for:</para>
170rootfs_destination=[drive] - specifies where the rootfs will be deployed 229
171rootfs_targz=[.tar.gz file] - what file to unpack to where rootfs_destination is set 230 <example id="example_one">
172drive=[/dev/sdaX] - what drive to partition</programlisting></para> 231 <title>Partitioning a drive</title>
173 232
174 <para>Before performing the actual partitioning and copying, a dry run, 233 <programlisting>set drive=/dev/sda
175 using the <command>dry</command> command, can be executed without 234run</programlisting>
176 affecting the actual layout of the physical media. Once all the 235 </example>
177 parameters are set according to the intended scenario, simply execute 236
178 the <command>run</command> command to set up the bootable media. Below 237 <example id="example_two">
179 are a few examples of how the Enea NFV Access installer may be 238 <title>Partitioning a drive, installing GRUB and a Root
180 used.</para> 239 Filesystem:</title>
181 240
182 <para>Example of partitioning a drive:<programlisting>set drive=/dev/sda 241 <programlisting>set drive=/dev/sda
183run</programlisting></para>
184
185 <para>Example of partitioning a drive, installing GRUB and a root
186 filesystem:<programlisting>set drive=/dev/sda
187set grub_destination=/dev/sda1 242set grub_destination=/dev/sda1
188set grub_binary=/home/user/grub-binary.efi 243set grub_binary=/home/user/grub-binary.efi
189set rootfs_destination=/dev/sda2 244set rootfs_destination=/dev/sda2
190set rootfs_targz=/home/user/rootfs.tar.gz 245set rootfs_targz=/home/user/rootfs.tar.gz
191run</programlisting></para> 246run</programlisting>
247 </example>
192 248
193 <para>Example of deploying ONLY a root filesystem:<programlisting>set rootfs_destination=/dev/sda2 249 <example id="example_three">
194set rootfs_targz=/home/user/rootfs.tar.gz 250 <title>Deploying ONLY a root filesystem:</title>
195runs</programlisting></para>
196 251
197 <para>After using the installer and setting up the bootable media, 252 <programlisting>set rootfs_destination=/dev/sda2
198 connect it to the target machine and configure the target machine to use 253set rootfs_targz=/home/user/rootfs.tar.gz
199 it as a primary boot device.</para> 254run</programlisting>
255 </example>
200 </section> 256 </section>
201 257
202 <section id="troubleshooting"> 258 <section id="troubleshooting">
203 <title>Troubleshooting</title> 259 <title>Troubleshooting</title>
204 260
205 <para>GRUB might display the following: <literal>error: no such 261 <para>GRUB might display the following errors if the default
206 partition</literal> or <filename>error: disk not found</filename>, if 262 configuration is set to use <filename>hd0</filename> as the primary
207 the default GRUB config is set to use <filename>hd0</filename> as the 263 drive for booting:</para>
208 primary drive for booting. Due to this, the errors described above have 264
209 two possible causes:</para> 265 <itemizedlist>
266 <listitem>
267 <para><literal>error: no such partition</literal></para>
268 </listitem>
269
270 <listitem>
271 <para><literal>error: disk not found</literal></para>
272 </listitem>
273 </itemizedlist>
274
275 <para>These errors have two possible causes:</para>
210 276
211 <itemizedlist> 277 <itemizedlist>
212 <listitem> 278 <listitem>
213 <para>The drive where Enea NFV Access was installed is not 279 <para>The drive where Enea NFV Access was installed is not
214 identified as <literal>hd0</literal> by the BIOS.</para> 280 identified as <literal>hd0</literal> by BIOS.</para>
215 </listitem> 281 </listitem>
216 282
217 <listitem> 283 <listitem>
218 <para>The BIOS has assigned the <literal>hd0</literal> label to a 284 <para>BIOS has assigned the <literal>hd0</literal> label to a
219 different drive (e.g. a USB stick) than the one where Enea NFV 285 different drive (e.g. a USB stick) than the one where Enea NFV
220 Access was installed.</para> 286 Access was installed.</para>
221 </listitem> 287 </listitem>
222 </itemizedlist> 288 </itemizedlist>
223 289
224 <para>The solution for these errors is detailed below:</para> 290 <para>To rectify these problems the primary boot drive must be assigned
291 to the correct partition.</para>
292
293 <para><emphasis role="bold">To change the partition for the primary boot
294 drive</emphasis></para>
225 295
226 <orderedlist> 296 <orderedlist>
227 <listitem> 297 <listitem>
228 <para>In the GRUB selection screen press 298 <para>Restart the host and in the <filename>GRUB</filename>
229 <command><literal>c</literal></command> to enter the command 299 selection screen, enter the command line by pressing
230 line.</para> 300 <command>C</command>:</para>
301
302 <mediaobject>
303 <imageobject>
304 <imagedata align="center" contentwidth="600"
305 fileref="images/select-linux-kernel-in-grub2-boot-loader-on-ubuntu-14.04.svg" />
306 </imageobject>
307 </mediaobject>
231 </listitem> 308 </listitem>
232 309
233 <listitem> 310 <listitem>
234 <para>Run <command>ls</command> to list all of the available 311 <para>List all of the available partitions with
235 partitions</para> 312 <command>ls</command>: <programlisting>partition list example</programlisting></para>
236 </listitem> 313 </listitem>
237 314
238 <listitem> 315 <listitem>
239 <para>For each available partition run <command>ls 316 <para>In order to identify where Enea NFV Access was installed, for
240 PARTITION</command> in order to identify where Enea NFV Access was 317 each available partition run <emphasis role="bold">ls
241 installed.</para> 318 &lt;partition&gt;</emphasis>: <programlisting>ls hd0</programlisting></para>
242 </listitem> 319 </listitem>
243 320
244 <listitem> 321 <listitem>
245 <para>After identifying the partition, press <command>ESC</command> 322 <para>After identifying the partition, return to the GRUB selection
246 to return to the GRUB selection screen and press 323 screen by pressing <command>esc</command></para>
247 <command>e</command> to edit the boot command.</para>
248 </listitem> 324 </listitem>
249 325
250 <listitem> 326 <listitem>
251 <para>Set the boot partition to the one identified in step 3</para> 327 <para>Press <command>e</command> to edit and set the boot partition
328 to the one identified previously: <programlisting>edit and set partition example</programlisting></para>
252 </listitem> 329 </listitem>
253 330
254 <listitem> 331 <listitem>
255 <para>Press <literal>F10</literal> to boot</para> 332 <para>To reboot to see if the change worked, press:
333 <command>F10</command></para>
256 </listitem> 334 </listitem>
257 </orderedlist> 335 </orderedlist>
258 </section> 336 </section>
diff --git a/doc/book-enea-nfv-access-guide/doc/images/select-linux-kernel-in-grub2-boot-loader-on-ubuntu-14.04.png b/doc/book-enea-nfv-access-guide/doc/images/select-linux-kernel-in-grub2-boot-loader-on-ubuntu-14.04.png
new file mode 100644
index 0000000..c28d643
--- /dev/null
+++ b/doc/book-enea-nfv-access-guide/doc/images/select-linux-kernel-in-grub2-boot-loader-on-ubuntu-14.04.png
Binary files differ
diff --git a/doc/book-enea-nfv-access-guide/doc/images/select-linux-kernel-in-grub2-boot-loader-on-ubuntu-14.04.svg b/doc/book-enea-nfv-access-guide/doc/images/select-linux-kernel-in-grub2-boot-loader-on-ubuntu-14.04.svg
new file mode 100644
index 0000000..319bf7e
--- /dev/null
+++ b/doc/book-enea-nfv-access-guide/doc/images/select-linux-kernel-in-grub2-boot-loader-on-ubuntu-14.04.svg
@@ -0,0 +1,3 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid meet" viewBox="0 0 640 640" width="640" height="640"><defs><path d="M0 93L640 93L640 547L0 547L0 93Z" id="b4lgbdl3I5"></path><clipPath id="clipbKzvApRlV"><use xlink:href="#b4lgbdl3I5" opacity="1"></use></clipPath></defs><g><g><g><g clip-path="url(#clipbKzvApRlV)" opacity="1"><image xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHGCAYAAADkJDrPAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH4QsPCjUWZQ2x8QAAGJBJREFUeNrt3UtypDoCBdB0R63DK/CCvBKPalijWol36R5ldz4e6IM+SOiciI5+ZTsFSEJcxCffPh7vPw8AAJbxH1UAACAAAgAgAAIAIAACACAAAgAgAAIAIAACACAAAgAgAAIAIAACACAAAgAgAAIAIAACACAAAgAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIDATH5//112u7fb/vz3qnWyep+Aq/xSBcx8kPjz+fWP373+e/uz2O9rLH8rd/1Cn6dt/8ktY++zqf0zt9/lrt/Zskvrp0b99ugDpevVsv1AAISEQXf7s94H1u3PSgNm6ednccU21ToBOApxOeX/+fwKBslR96/W9TvjSQQIgMAtAvRRUHv+7evf7JUXC3qlM2ih5fesv+e6pK7D9u+OPne2fl9/d1THV87QpQbEo+1PneEPfT5UPzknmEIgAiBcbO+g2nPW4U6zG2dmWM9cYj86gJYu/+q2qlF+Sf3GLi+nfn6kPlgyQ5tbP6vt7yAAQuUDWMkBY/R7qHLXp/b61yqv9eXXs+W3bO8z97rm3r5QOjNWuv0CGgiALBS0rpgFPFp+6SxDy3uotvUSu/yWu74j3td21Hat+0brYNny86H1j52glPYnQACEpOBx1QEmtvzel6Jrb1etehlt+2cOf6X1mRL4Y+tvhg3uw3sAuW1ANPtwbf2P1gazh7/Z6wcQAKHaAWvk5Y8YQp/rlHqwz1n/uwTuvZc177Vni8CUW4cldd66vWL1c/Qg0EjrD3fmEjDT2HvFQ2iQTvn7kpvccwNeyvKvfAikdv3Etm97mbh0+WcP6me3MeU1NjX6WG77HK1jSv8tXf+Ue3Nj25O6/WdPsGrVzwz3u0LI28fj/Uc1AACswyVgAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAABABAAAQAoMSvFoX+/v6rZgEATvjz+dV8GWYAAQAW86tl4T0SLADAHfS8gmoGEABgMQIgAIAACACAAAgAgAAIAIAACADABH71WpCXQwMA/NNVr8wzAwgAsBgBEABAABzX5+enFiuoi571p60wVgCM69dIK/P5+fn4/v6O/uyK9Zjt4Ndi/Wevl71gcHZ7juqiRvnPMko+u7f8o1A0e5sCMHkAJN3oB+0R16/WCcZRkKpR/uvfl3z26Ge122XUkwKhFiDsskvAJZdoPj8///e/WJmvP3v+d+jz27/JKb9VnYTWM2f9Y/VXcztCdVXafq3q/+rAsxfWRruUGes7r78/at9QGaWfz+n7LhMDK+s6Axi6bJZ6UN3+beksyeu/z8689A4aR8EgZf1L6y919iV1lqxnXddYTqiMq/tM6+XH2i5lBjL079LPx/rfKLeYACwXAJ8Dc0kAKB2sVx/sZw4p2/5z9uD9Gg5a3St5ZX2Hll/rHsir+l+LkxUAAbBjCHT2TWn/Odt3esyAtio/JcDFZri35YUeFKl1f2Srzxs/ACYJgM8Dzvb/gesDT+wSd2x20ww9wBy6PgSSc78OhPrQmX7Tup9d3Y97Lf9Z/wAIgEVn97kPcYx+wPeEYZv67fWUbOv2Oyp/uz2tLx+Xrn9Keb0vCc8W2gGuctl7AI8uH8XuQQpdhtr73ZkB/ug+s9Tyay13bx32XosSqqMW730LtWXK+qVsf4uAl9K/crZ/u301yi9pu9jyS9cv9hRtafkztA/AXbx9PN5/ahf6+/vv4/F4PP58fv3rZ6twbyMr9Gn9HKDMXlZ6/VkrvglE+IMkZtAA7qNbAOyRZkfx8Xhfant5LNW3V92vAe7kP6oAAEAABABAABzDag+S1K6LnvWnrbj7WKGPz9fO2gz+79doO/P2nqK9n12xHrMNii3Wf/Z62TsAnN2eo7qoUX7JU2Ch5R8d/NzHt+a+sKI/n1/aDkYMgOQNZNbvmhOMoyBVo/zXvy/57NHParfLqAdTB3iAGwbA1wPwdoYjdAB8/nfo89v/zim/1cF0+/OjGaLY+sfqr3b7HNVVaftdGUD2tqFVmBpxtiLWd2IzkKH2r/H5nL5/tv/H9tOz21f6+5T9o6R+S/e/bbkp74sNbf/Z9jULCJMGwL0BrWSW5PXfZ2deemzn3gB2NOsR+mxp/aXOvqTOkvWs6xrLCZVxdZ9pvfxY26UGkKN/l34+1v96nECUbF/rE6Ba9Vujjx6dmOds/7aNR7mFCATAQQ9yqw8GM4eU7UHi7ODeawb0qvoumYFabf9drbw7jY+tZuJBAITBB/2zB6seM6Ctyk+9xLW3/JzbC84GgtIDcu7nZ7sXtmVgSTlBulv91u5/IAACUwSKnuWn3H9nhn7s7VO/wJMXQTPdGf6fz69Tl39azw5cPfvQa/nP+me9k4+9B80AAXC4g9xVB/zf338Njg3q9+gp2RbLbdl+R+XvHWBbXj4uXf+U8npfEu5Rfs1+FyvnzCXbZ9uk9J3W5V/ddqkPA8GKhroEvDewxp7wCwWCswP10X1mqeXXWm7sNQlH98LVuE8uZ0DNXb/U9q8d8FL6V872b7evRvklbRdbfun6xZ6yLC1/hvZp2f9at1+t7W9VZ7nbnzJeCHpw7O3j8f7T6sxs5Z3PWSYr9OmV+7l9fL460GbM0Ed75ScPgRhkIIkZlsfy2z57+xuXQQA0yIC+jfaHZXkKGABAAAQAQAAchFerlNVFz/rTVhgrAMY11D2AozxlOPtDHK3W/w4Pt9S6if2oLmqUX/IUWGz5HuIAYLgASLrZvgP1TicYoReAl5Yf+y7Xku1rcYI16kmBYAsQNuU9gEffRHD01vftf4c+v/2bnPJrbFfKz4++hSG2/rH6q90+R9tR2n6t6v/qwNPrm05a7Ht7vz9q31AZpZ/P6fsuEwMrm24GcHuQLJ0l2X6TwSizGqF1CH0DSeyzpfWXOvuSOkvWs65rLCdUxtV9Jrb80vWLtV3KDGPo36Wfj/U/L7IGmDgAlg7Wqw/2o4eUlGBZGtSPvkqwZni/sr5Tln/Vt/WMtv8Kf4AACJME2NLw0mMGtFX5KQ9x5M7K5Zafs36l2yfAAQiAIABXvoybU/720mosfF6xfQCk8SJopvIMMGcekGh90//VDxXEll9rNvJZ/wAIgMMc5EY44HvCsE399npKtnX7HZW/3Z5RH1DIeYq29yXh2UI7wFWGugS8d0CPPeEXCgRnA8LRfWap5dda7t467L0WJVRHtQNE6Onj1PVLbf/aAS+lf+Vs/3b7apRf0nYpy4+1X2zbQ/cTlm7/DO0DcBdvH4/3n1Zn1SsPrl4vwQp9Wj8HmDM/eQhE+IMkZtAA7kMAbHSgBH0bgFF5ChgAQAAEAEAAHIRXNpTVRc/601bcfazQx+drZ20G//drtJ15hKcMZ3+Io9X63+HhlloPMRzVRY3yS54Cy30NjHv61t0XVrT9PnEQAJlyILN+15xghF4AXlr+69+XfDa1vNKD4agHUwd4gBsGwKMXQaceAEOf3/53TvmtZhW2Pz+aIUp9CXPs+1xrtc9RXZW235UBZG8bWgXUEWcrYn0nNMMYa/8an8/p+2f7f2w/Pbt9pb9P2T9K6rd0/zt6yXvq+pX2v5H3KxAATwy+pbMk228yGGVWI7QOoW8giX22tP5SZ19SZ8l61nWt78EdddYptvzS9Yu1XWoAOfp36edj/a/HCUTJ9rU+AapVvzX66NGJec72x74qcpSxHATAQQ7iqw8Go4eUlGBZGtR7zYBeVd8py7/q23pG239XK+9O42OrmXgQAGHwQf/swarHDGir8lMvcYWWH5shLgkEpQfk3M/Pdi9sy8CScoJ0t/qt3f9AAASmCBRnDpBnL2On3H9nhn7s7VO/wJMXQTPdGf6fz69Tl39azw5cPfsQW36t2chn/bPeycfeg2aAADjEQW6EA/7v778Gxwb1e/SUbIvltmy/o/L3DrCjvk4ntY56XxLuUX7NfpcS2s+sW2rfaV3+1W2X+jAQrGioS8B7A2vsCb9QIDg7UB/dZ5Zafq3lxl6TcHQvXI375HIG1Nz1S23/2gEvpX/lbP92+2qUX9J2KcuPtV9s20P3E5Zu/wzt07L/lf6+R/22rLPc7U8ZLwQ9OPb28Xj/aXVmtvLO5yyTFfr0yv3cPj5fHWgzZuijvfKTh0AMMpDEDMtj+W2fvf2NyyAAGmRA30b7w7I8BQwAIAACACAAAgAgAAIAIAACACAAAgAgAAIAIAACACAAAgAgAAIAIAACACAAAgAgAAIAIAACAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAgAAIAIAACACAAAgAgAAIAIAACACAAAgAgAAIAIAACACAAAgAgAAIAIAACACAAAgAgAAIAIAACAAgAAIAIAACACAAAgAgAAIAIAACACAAAgAgAAIAIAACACAAAgAgAAIAIAACACAAAgAgAAIACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAgAAIAIAACACAAAgAgAAIAIAACACAAAgAgAAIAIAACACAAAgAgAAIAIAACACAAAgAgAAIACAAAgAgAAIAIAACACAAAgAgAAIAIAACACAAAgAgAAIAIAACACAAAgAgAAIAIAACACAAAgAgAAIACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIACAAAgAgAAIAIAACACAAAgAgAAIAIAACACAAAgAgAAIAIAACACAAAgAgAAIAIAACACAAAgAIACqAgAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAQAAEAEAABABAAAQAQAAEAEAABABgXL9aFv77+68aBgAYjBlAAIDFvH083n9UAwDAOswAAgAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIOz6/f1XJQCAAAgAgADIITNoACAAslAoey5nhBAoiDJiXzvTL/XltnUxU/vN0n/0WQFw6UFptZ3u9/ffx5/Pr8fj8Xj8+fxaagCYZVtHX8/f33+brqODkvpbuf9rXwRAmniGv6N/Q24fso2MVn+pyz8TplLKbrl8qOWXKgjvkNsdOfb71LKf/733+de/q7n81vXznF1MXf+rDxKvs6E52xcqo3X/KG3/lv27tPzU/SOnPWNtFNr/Yvvmmf235f4Vq7+Uz8f6d842nK2/nDoqab+jZZeOUa2WX2N8GGn8RQAcLvyFBsDSATJUTuhgVWv5resnd/1HuRRe6wDYun+0Xr+ry0/ZP1qEwb1Z8aPbRUr6f+v9q3R8qTn7drb+cuuopP3O1HfN7c9dfun4MNL4yxhcAk48KN91ebXXLWf9r9rWnqF59LPsWS7Vjbq83rdUlJY/Wn88E67sD2uMTbRnBvDgzC1lev6q8LLy8luHv5LtS+k/d+/fZhXm2r96B46R9w/9BwFQCPzHjjTaQxNXLj/lnrlZQv5RPdaaYRn1QNe6fzuwP9TfoPtH7P7kOyzf/kcOl4ADO9Jqr0mZ8Qz37FN8NT4XKmP0/qN/U9K/Z+5/z2Vfve+BADhwuGj1mavXeZRll4awknv5Ug8+e0/VPd8DNtts6BX9O/b5O9xScKf9O9S/Zx6rtutx5bv8ei4/tIyj3139nkP6WeoS8N5B/3WQK/39mfXIfWjiytfA7F3CyBkoSj+//VyNy5WxF2PvLSN0+bhl/ygtv0b/Dr2Kotb+U2P/OFtGyfa1Hp9ajy81tunK+ostv9ZTyEfl91h+yfhQa/zlPt4+Hu8/qmE9PZ+EVY+gf4+4LaO9Rgt68hAInJxhaDGDAfp3G6NdQTF+cDUzgAAAi/EQCMAg3JMFCIAAi6l1Y74gCQiALMMrRbhDnXo6M95+V9SPNlFnAuDknXH7PzulQaH3+t9h+1tuw9XvtgyND73Gj6u/8cf+Cfe33FPAHsOH8n3ojgfJ2Gs6vMZj3HEcEACrHABC39eY86LcM7/PPTvdvoQ0tP6xl5iWlp+z7meWf2Y5NdsnZf1Lt790/Uv6z9Xl1+gfV37Xa68xKqV9SvebVvtnjfZLWbcV98+jlzxvv3/56Pc1xv9Y+3kNjgA41SxAzgxA6xmElM+H/h1ajxrlp561lyz/yvaLrX/p9peu/9UzXK3rN7f8HrOUPQ9grWcgW++ftdrvaAba/rm/DbF97DXYlYz/sfYzgz6e5R4C2d7Ds+18tTtjrLzey5vpgHfH9Rtt/a+ur5bLb7Fv+Z7UtfflO++fKcvK/WrGu4/Xs1v+HsDcvw8N/rHv4Cz9js4esxq55duB+5/AlAaYULuNfgP91eFrezmtd//3pLvtm3X9axz/EACHDpCxA0TpAWT1GT7976vK52P9c9T+M0r/LL3cuOr+effxZebtO7pEe6cTKP7JewAbDgShpyVjv4cr+yf7B0jA+CMA8q+DQqwzt+jsd7/k5iBdb3vP1E3rS8Ity7+qL/S8T/DOlxzvsC/P/E7C2usu7I3HJeDMs5bQY+ylvy9d/plyaq7fCMsPvaagVvuU3sty9vOt+09K+aFXZbSu39zyc2cYWqx/z/Fn9P2zRvulvKpl5f2zZv8q3X9SynMJ+FpvH4/3H9UAUHf2xMENGJlLwADCH7AYM4AAAIsxAwgZ3MgMgAAIi6l1g78gCYAA2EnNg+6IXwk10vrcOeCM8P4qX0l2736ubbHf0JrXwJzsvCvf5O0m92tfX6D+73Hwm60NQy+1P/qb2DdLnKmD0fu//RMBEAHJYAq7+0ZsBmTUPh9ar6OvEgt9bZ792/EBAfCyM9naZ6ihzz8Hu5bLL92+2PqnzGIc/S53+0u3/Uz9154lOSq/1QDYevtb7h85/W/vZb2x39feP1u3Yen+c7cDbcr4U7L9pfUbW7/UgHy0/NL9t0b5KftPyklB7NhxtnwvmhYAs2aUcs5QS3fw0uX32L7Q70N/lzrDkbN+pdueW/+1+1aL8lv2v9bbV2OGaO9vY3309cBWc/9sdR9Trf1nhBm22LJzvykjtE1Xj5+p4+PZ5bcYI3sfn0L9u/X4ggBY1Blq7OCtO+Ponf3q9eu9/Npf1XRl/2v1tWMjtUXpV3fdff9J/aqyWQ+6o49PpevXunztKQBO7eoB3dNRBoiRt3/2/tl6/a++BNV6+1IDxOxBcJTxebRAGtr+7Sx779m3O5yACIDOAJeu+x73WHE+XMx8wtJj/Y0f/w6Cd9qPnTDOcYVJEEzjRdAMuRPbcWG+E4Qen4HUY4j+JQAWDTgjvPB3tQH1+ZLju2yLfWnM+ild9gxte3SzvQPj9X3oijaovcy9Wx6e/av1Sfx22fp0viUfAjm6zLh3xlB6U3jPz5duX+ryQ/dapL4q5miHLnmKq0b91exbd1v+Xt/KGXRr9b9R1v/MDEPKk9xn958e/W9ve1+fgu3RvkfjT+/+kzs+1ug/LY9/PfpXqH/n9p+U+nQlKezt4/H+oxoY5WzaY/wAfcZX1uYhEIbhDA4A+jADCACwGE8BAwAIgAAACIAAAAiAAAAIgAAATGCp18AcvTTy6EWse78LvUjTe+wAAAFwQHtfUv4a7GIBLvZvAIDRuQR8MkACAMzKN4Fs+EJpAEAAXIwZPgDg7lwCBgAQAHlVckn46LO/v/+61AwAXMYl4BfbV7w8f3b283vlAQBc7e3j8f6jGgAA1uESMACAAAgAgAAIAIAACACAAAgAgAAIAIAACACAAAgAgAAIAIAACACAAAgAgAAIAIAACACAAAgAIAACACAAAgAgAAIAIAACACAAAgAgAAIAIAACACAAAgAgAAIAIAACACAAAgAgAAIAIAACACAAAgAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAABd/Bd3tasDZYM0pAAAAABJRU5ErkJggg==" x="0" y="0" width="640" height="454" transform="matrix(1 0 0 1 1.1368683772161603e-13 93.00000000000006)"></image></g></g></g></g></svg> \ No newline at end of file