From 04a325758f28f8b2e06017b1e36a6fa9d47bc2ff Mon Sep 17 00:00:00 2001 From: Ed Balduf Date: Mon, 9 May 2016 09:21:30 -0600 Subject: [PATCH] More documentation changes per Mirantis request. Change-Id: I2276be3f2c5f1bf7a6769ca0bf200ba521b84f47 Refactoring for the new structure for Fuel 8. This change now handles multi-backend in the face of the default options (lvm, ceph) and the NetApp plugin. Note: I removed the multi-backend option, so it will always put SolidFire in it's own stanza along with everyone (in the above list) also. Change-Id: Ibc3ffe202fb405da9b566498c23f6bcda84080a9 --- components.yaml | 7 ++ .../puppet/manifests/controller.pp | 17 ---- .../puppet/manifests/hiera_override.pp | 22 +++++ deployment_scripts/puppet/manifests/site.pp | 6 ++ .../manifests/backend/iscsi.pp | 45 ++++++++++ .../manifests/backend/rbd.pp | 49 +++++++++++ .../manifests/backend/solidfire.pp | 58 +++++++++++++ .../plugin_cinder_solidfire/manifests/init.pp | 41 +++++++++ .../manifests/controller.pp | 71 --------------- .../plugin_solidfire_cinder/manifests/init.pp | 16 ---- deployment_tasks.yaml | 21 +++++ .../figures/cinder-solidfire-plugin-2.0.0.png | Bin 0 -> 94196 bytes docs/solidfire-cinder-guide.rst | 82 ++++++++++++------ environment_config.yaml | 21 +---- metadata.yaml | 18 ++-- tasks.yaml | 11 --- 16 files changed, 315 insertions(+), 170 deletions(-) create mode 100644 components.yaml delete mode 100755 deployment_scripts/puppet/manifests/controller.pp create mode 100644 deployment_scripts/puppet/manifests/hiera_override.pp create mode 100644 deployment_scripts/puppet/manifests/site.pp create mode 100644 deployment_scripts/puppet/modules/plugin_cinder_solidfire/manifests/backend/iscsi.pp create mode 100644 deployment_scripts/puppet/modules/plugin_cinder_solidfire/manifests/backend/rbd.pp create mode 100755 deployment_scripts/puppet/modules/plugin_cinder_solidfire/manifests/backend/solidfire.pp create mode 100755 deployment_scripts/puppet/modules/plugin_cinder_solidfire/manifests/init.pp delete mode 100755 deployment_scripts/puppet/modules/plugin_solidfire_cinder/manifests/controller.pp delete mode 100755 deployment_scripts/puppet/modules/plugin_solidfire_cinder/manifests/init.pp create mode 100644 deployment_tasks.yaml create mode 100644 docs/figures/cinder-solidfire-plugin-2.0.0.png delete mode 100644 tasks.yaml diff --git a/components.yaml b/components.yaml new file mode 100644 index 0000000..0577f4e --- /dev/null +++ b/components.yaml @@ -0,0 +1,7 @@ +- name: 'storage:block:backend:solidfire' + label: 'Cinder SolidFire' + description: 'Cinder with SolidFire backend' + compatible: + - name: 'storage:block:backend:ceph' + - name: 'storage:block:backend:lvm' + - name: 'storage:block:backend:netapp' diff --git a/deployment_scripts/puppet/manifests/controller.pp b/deployment_scripts/puppet/manifests/controller.pp deleted file mode 100755 index 09857a2..0000000 --- a/deployment_scripts/puppet/manifests/controller.pp +++ /dev/null @@ -1,17 +0,0 @@ -# -# Copyright 2015 SolidFire, Inc. -# -# 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. -# - -include plugin_solidfire_cinder::controller \ No newline at end of file diff --git a/deployment_scripts/puppet/manifests/hiera_override.pp b/deployment_scripts/puppet/manifests/hiera_override.pp new file mode 100644 index 0000000..a03fe2c --- /dev/null +++ b/deployment_scripts/puppet/manifests/hiera_override.pp @@ -0,0 +1,22 @@ +notice('MODULAR: solidfire-hiera-override') + +$cinder_solidfire = hiera_hash('cinder_solidfire', {}) + +$hiera_dir = '/etc/hiera/plugins' +$plugin_yaml = 'cinder_solidfire.yaml' +$plugin_name = 'cinder_solidfire' + +$content = inline_template(' +storage_hash: + volume_backend_names: + solidfire: solidfire +') + +file { $hiera_dir: + ensure => directory, +} + +file { "${hiera_dir}/${plugin_yaml}": + ensure => file, + content => $content, +} diff --git a/deployment_scripts/puppet/manifests/site.pp b/deployment_scripts/puppet/manifests/site.pp new file mode 100644 index 0000000..0dfe623 --- /dev/null +++ b/deployment_scripts/puppet/manifests/site.pp @@ -0,0 +1,6 @@ +notice('MODULAR: fuel-plugin-solidfire-cinder') + +# The manifest is executed on nodes with cinder role or on nodes with controller role when Ceph is used. +if ('cinder' in hiera('roles')) or (!empty(filter_nodes(hiera('nodes'), 'role', 'ceph-osd'))) { + class { 'plugin_cinder_solidfire': } +} diff --git a/deployment_scripts/puppet/modules/plugin_cinder_solidfire/manifests/backend/iscsi.pp b/deployment_scripts/puppet/modules/plugin_cinder_solidfire/manifests/backend/iscsi.pp new file mode 100644 index 0000000..f1fa394 --- /dev/null +++ b/deployment_scripts/puppet/modules/plugin_cinder_solidfire/manifests/backend/iscsi.pp @@ -0,0 +1,45 @@ +# +# Copyright 2015 SolidFire, Inc. +# +# 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. +# +class plugin_cinder_solidfire::backend::iscsi ( + $volume_group = 'cinder', + $iscsi_helper = $cinder::params::iscsi_helper, + $backend_type, +) inherits cinder::params { + + $network_scheme = hiera_hash('network_scheme', {}) + prepare_network_config($network_scheme) + + $storage_address = get_network_role_property('cinder/iscsi', 'ipaddr') + + cinder_config { + 'cinder_iscsi/volume_backend_name': value => $backend_type; + 'cinder_iscsi/volume_driver': value => 'cinder.volume.drivers.lvm.LVMVolumeDriver'; + 'cinder_iscsi/iscsi_helper': value => $iscsi_helper; + 'cinder_iscsi/volume_group': value => $volume_group; + 'cinder_iscsi/iscsi_ip_address': value => $storage_address; + 'cinder_iscsi/backend_host': value => $storage_address; + } + + ini_subsetting {'enable_cinder_iscsi_backend': + ensure => present, + section => 'DEFAULT', + key_val_separator => '=', + path => '/etc/cinder/cinder.conf', + setting => 'enabled_backends', + subsetting => "cinder_iscsi", + subsetting_separator => ',', + } +} diff --git a/deployment_scripts/puppet/modules/plugin_cinder_solidfire/manifests/backend/rbd.pp b/deployment_scripts/puppet/modules/plugin_cinder_solidfire/manifests/backend/rbd.pp new file mode 100644 index 0000000..3c9912c --- /dev/null +++ b/deployment_scripts/puppet/modules/plugin_cinder_solidfire/manifests/backend/rbd.pp @@ -0,0 +1,49 @@ +# +# Copyright 2015 SolidFire, Inc. +# +# 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. +# +class plugin_cinder_solidfire::backend::rbd ( + $rbd_pool = 'volumes', + $rbd_user = 'volumes', + $rbd_ceph_conf = '/etc/ceph/ceph.conf', + $rbd_flatten_volume_from_snapshot = false, + $rbd_secret_uuid = 'a5d0dd94-57c4-ae55-ffe0-7e3732a24455', + $volume_tmp_dir = false, + $rbd_max_clone_depth = '5', + $glance_api_version = undef, + $backend_type, +) { + + cinder_config { + 'cinder_rbd/volume_backend_name': value => $backend_type; + 'cinder_rbd/volume_driver': value => 'cinder.volume.drivers.rbd.RBDDriver'; + 'cinder_rbd/rbd_ceph_conf': value => $rbd_ceph_conf; + 'cinder_rbd/rbd_user': value => $rbd_user; + 'cinder_rbd/rbd_pool': value => $rbd_pool; + 'cinder_rbd/rbd_max_clone_depth': value => $rbd_max_clone_depth; + 'cinder_rbd/rbd_flatten_volume_from_snapshot': value => $rbd_flatten_volume_from_snapshot; + 'cinder_rbd/backend_host': value => "rbd:${rbd_pool}"; + } + + ini_subsetting {'enable_cinder_rbd_backend': + ensure => present, + section => 'DEFAULT', + key_val_separator => '=', + path => '/etc/cinder/cinder.conf', + setting => 'enabled_backends', + subsetting => "cinder_iscsi", + subsetting_separator => ',', + } + +} diff --git a/deployment_scripts/puppet/modules/plugin_cinder_solidfire/manifests/backend/solidfire.pp b/deployment_scripts/puppet/modules/plugin_cinder_solidfire/manifests/backend/solidfire.pp new file mode 100755 index 0000000..4d69256 --- /dev/null +++ b/deployment_scripts/puppet/modules/plugin_cinder_solidfire/manifests/backend/solidfire.pp @@ -0,0 +1,58 @@ +# Copyright 2015 SolidFire, Inc. +# +# 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. +# +define plugin_cinder_solidfire::backend::solidfire ( + $backend_name = $name, + $cinder_solidfire = $plugin_cinder_solidfire::cinder_solidfire, +) { + + include cinder::params + include cinder::client + + ini_subsetting {'enable_cinder_solidfire_backend': + ensure => present, + section => 'DEFAULT', + key_val_separator => '=', + path => '/etc/cinder/cinder.conf', + setting => 'enabled_backends', + subsetting => "${backend_name}", + subsetting_separator => ',', + } + + notice("${backend_name}") + + cinder::backend::solidfire { $backend_name : + san_ip => $cinder_solidfire['solidfire_mvip'], + san_login => $cinder_solidfire['solidfire_admin_login'], + san_password => $cinder_solidfire['solidfire_admin_password'], + volume_backend_name => $backend_name, + sf_emulate_512 => 'true', + sf_api_port => $cinder_solidfire['solidfire_api_port'], + sf_account_prefix => $cinder_solidfire['solidfire_account_prefix'], + extra_options => { "${backend_name}/sf_allow_template_caching" => + { value => $cinder_solidfire['solidfire_allow_template_caching'] }, + "${backend_name}/sf_template_account_name" => + { value => $cinder_solidfire['solidfire_template_account'] }, + "${backend_name}/host" => + { value => $backend_name }, + }, + } + + Cinder_config <||> ~> service { "$::cinder::params::scheduler_service": } ~> service { "$::cinder::params::volume_service": } + + package { 'open-iscsi' : + ensure => 'installed', + } + +} diff --git a/deployment_scripts/puppet/modules/plugin_cinder_solidfire/manifests/init.pp b/deployment_scripts/puppet/modules/plugin_cinder_solidfire/manifests/init.pp new file mode 100755 index 0000000..cf818a7 --- /dev/null +++ b/deployment_scripts/puppet/modules/plugin_cinder_solidfire/manifests/init.pp @@ -0,0 +1,41 @@ +# +# Copyright 2015 SolidFire, Inc. +# +# 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. +# +class plugin_cinder_solidfire { + + $cinder_solidfire = hiera_hash('cinder_solidfire', {}) + $storage_hash = hiera_hash('storage_hash', {}) + $plugins = hiera('plugins', [] ) + + if ($storage_hash['volume_backend_names']['volumes_lvm']) { + $backend_type = $storage_hash['volume_backend_names']['volumes_lvm'] + $backend_name = 'cinder_iscsi' + $volume_backend_name = 'volumes_lvm' + $backend_class = 'plugin_cinder_solidfire::backend::iscsi' + } elsif ($storage_hash['volume_backend_names']['volumes_ceph']) { + $backend_type = $storage_hash['volume_backend_names']['volumes_ceph'] + $backend_name = 'cinder_rbd' + $volume_backend_name = 'volumes_ceph' + $backend_class = 'plugin_cinder_solidfire::backend::rbd' + } + + if ( 'cinder_netapp' in $plugins ) { + plugin_cinder_solidfire::backend::solidfire { 'solidfire': backend_name => 'solidfire', } + } else { + class { $backend_class: backend_type => $backend_type, } + plugin_cinder_solidfire::backend::solidfire { 'solidfire': backend_name => 'solidfire', } + } + +} diff --git a/deployment_scripts/puppet/modules/plugin_solidfire_cinder/manifests/controller.pp b/deployment_scripts/puppet/modules/plugin_solidfire_cinder/manifests/controller.pp deleted file mode 100755 index 8859cc3..0000000 --- a/deployment_scripts/puppet/modules/plugin_solidfire_cinder/manifests/controller.pp +++ /dev/null @@ -1,71 +0,0 @@ -# Copyright 2015 SolidFire, Inc. -# -# 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. -# - -class plugin_solidfire_cinder::controller ( - $backend_name = 'solidfire', - $backends = '' -) { - - include cinder::params - include cinder::client - - $plugin_settings = hiera('fuel-plugin-solidfire-cinder') - - if $::cinder::params::volume_package { - package { $::cinder::params::volume_package: - ensure => present, - } - Package[$::cinder::params::volume_package] -> Cinder_config<||> - } - - if $plugin_settings['multibackend'] { - $section = $backend_name - cinder_config { - "DEFAULT/enabled_backends": value => "${backend_name},${backends}"; - } - } else { - $section = 'DEFAULT' - } - - cinder::backend::solidfire { $section : - san_ip => $plugin_settings['solidfire_mvip'], - san_login => $plugin_settings['solidfire_admin_login'], - san_password => $plugin_settings['solidfire_admin_password'], - volume_backend_name => $section, - sf_emulate_512 => $plugin_settings['solidfire_emulate_512'], - sf_api_port => $plugin_settings['solidfire_api_port'], - sf_account_prefix => $plugin_settings['solidfire_account_prefix'], - extra_options => { "$section/sf_allow_template_caching" => - { value => $plugin_settings['solidfire_allow_template_caching'] }, - "$section/sf_template_account_name" => - { value => $plugin_settings['solidfire_template_account'] }, - "$section/host" => { value => $section } - }, - } - - Cinder_config<||>~> Service[cinder_volume] - - service { 'cinder_volume': - ensure => running, - name => $::cinder::params::volume_service, - enable => true, - hasstatus => true, - hasrestart => true, - } - package { 'open-iscsi' : - ensure => 'installed', - } - -} diff --git a/deployment_scripts/puppet/modules/plugin_solidfire_cinder/manifests/init.pp b/deployment_scripts/puppet/modules/plugin_solidfire_cinder/manifests/init.pp deleted file mode 100755 index e72173f..0000000 --- a/deployment_scripts/puppet/modules/plugin_solidfire_cinder/manifests/init.pp +++ /dev/null @@ -1,16 +0,0 @@ -# -# Copyright 2015 SolidFire, Inc. -# -# 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. -# -class plugin__solidfire_cinder {} \ No newline at end of file diff --git a/deployment_tasks.yaml b/deployment_tasks.yaml new file mode 100644 index 0000000..da84e45 --- /dev/null +++ b/deployment_tasks.yaml @@ -0,0 +1,21 @@ +- id: solidfire_hiera_override + type: puppet + version: 2.0.0 + groups: [primary-controller, controller, cinder] + requires: [hiera] + required_for: [create-cinder-types] + parameters: + puppet_manifest: puppet/manifests/hiera_override.pp + puppet_modules: /etc/puppet/modules + timeout: 360 + +- id: solidfire_cinder + type: puppet + version: 2.0.0 + role: [primary-controller, controller, cinder] + requires: [post_deployment_start] + required_for: [post_deployment_end] + parameters: + puppet_manifest: puppet/manifests/site.pp + puppet_modules: puppet/modules:/etc/puppet/modules + timeout: 360 diff --git a/docs/figures/cinder-solidfire-plugin-2.0.0.png b/docs/figures/cinder-solidfire-plugin-2.0.0.png new file mode 100644 index 0000000000000000000000000000000000000000..cb3491781255bfc891dfa99f1574235416cd09ac GIT binary patch literal 94196 zcmeFZRajn0vj&P2f+1?f`Uje+27zt-~=m9;#@UYUfm;l>Zx<+HgRBPb{l zWK8<^FWZ0>=4ZxCUG~MQ{v{?~IfT=mAki zM%soklmuD;kwB<}2u+96)9{@i#0aC{uY(+*4aMs4o$40pT<-WX7wg+B0nx~jN6*Ed z-5ZyRh6!U2i7-s>O5Z?FPM^$#POr+i&&Zybs~qq9iE|H45!EQ)B%YidM2JQRN2|^AZq@T3OC$4COVV!{v-NKQMj^zLZ$<)4%3NLuj zfF6p#bb z-ridG-`?88{cb_Gj``t$h+WLqBP@{M-*HGcQ&e?Sm6qZ(u(6`mGqlk+qII>hea8t1 zh})I({npCJQ4inM%F^0_)0Kzt&o?;V@BesAM~MIDD~=XCgsReV_(C@JM))kW%(V1` zydUxL@wx2{jXA#vi~gtj`!60sQ%6TzPC7al7Z+L=CR!VN6FLSC4h}kcMmk1Dn)f$o z9NerO^;~JJ9ftU~knoR={`>dWIE`G*{^`lu z;Xh)%3rP1z2^|A1J>7rXey_^?$5T!@Ggl)^RbewLBWs8EK6p7;Ik^9P|F@EVdiQCC5-2MCBCNJ3aZ(G~c( z6-rad>Gkc6kv~zAFdSqvDin)?Xg3vem(!a;x?pOGmHd%UY&`OGDDIz5K{r2;|*&k5LmhpNz~gj=Pr8 zCkNhw&T^yb;8A|5f=-ng5?O z)^e2EL)ZT7Us6K-ozv-~XilYQubYQQjz~CaXn1%xESuci+y_GBSRkmF|9Lf#jIXOe zSsTm{cD=ql*}Xoy1+tid;AIAXi=!;_OU$8c5(t2>HS#ygM4Efp8_N#co~X5$Q&)AU z{f2pQQU_p!sISM%RGs>XvRPgE!&1q&Ox`G+Ek|SIMpLuwplU2-c^F8U4`Ni^XBKgyGB&gu+ zhm}i(@t?$364>j)3|;7j`NDl6T3TBXa1s5!Ba;=;ev8~Y7a3B1{y;L49ypw5x@-hw zeY8A1C?jjbsC)M{Pn-gXw(cbCsR`Vz2B>?%ky^VE>ce=>*bk_4%hNJx8gU(ezVJq#qNoF|2OYauOKR@0@=0giz3e#hPZrO)IxJr!`1@s6 zY_FtG5Q~ZrvbS4o6f;YKb!aMYDxDK~l_R&Z9*sCzC9T@D2CE_;9q!jo9ghKzsCz!N zGb6V*t%!ghT-hdLWu|B-ATy~deWYk7%2>%#lE3(#92E#lYgM^@_7L>((UHo|{SFaj zc8OqjaN7)4nbko5*MvfZz0xDw>=zWILEq7ctn4P0^@DY*QRaEE=7u}R+p^1MMcXe+ z37Jk1Bvre1v6>C=Hp$@js$+J^93?EHxZEEy%h;M33uWr|ET715y?iWsTi}htY*zzC zfCFNw*~rW}`8(9senM%OJY-?^3rG)@e8@A_D3e-%I97Xw(^gB{SssXR%q;=?mf?vN z$8}_DWLdQ35O9@hPxXtn@sofZY7!S$C6K9t@1WGVhRoc3^fqdSJyhE*Z-2$~dc2;P zEWDrj_@!D`B1_o5>)dXiREKuSNKV}yLt0;B-s%Cigfh<^TuAk3EnB2RA`m{Rw35GM zMDyiEDGpy>)lO3`=SBqH#EuyE=fSy12!~=_N^ZHJ#!eEQk5aqg) z9&vzD6Dn<_&sN}9aH2nGBF0*}K`d;dIIE@xRqOuky3F$LTEB(uS^@ zOf5sq8sDege2k8SRtTh529yspx63p7d$i;|;!C^|_Vs_JMfR>y!5Bfu2g`EO} znP~wg9N+9#xX(!U*UYVpk&%q~dP68>Yd(AAU#|WF`#R&45Pe80|^K zYMmDN6Kp^*!JZ`d)7=|TdY|s;wYPKKVQi%}IBNOAR|S!LL8t6k)7km&0%6>-O9GQp z2awyIQT;lqpzW)1=bQ1`nEC;AR-l^&FW}wJ@as7~*8J{e0FODBdvqz>HTdj=8}1kQ z`Ntj9lC_3zL;h1t?rTR<|GZ<=Zj+5p;j3-KV7!XgI3v~6M5CPm-&u4nGw!|{8=bO2 zY0bE+t&2YB96S4!epjDCnJe38)sd%rC`a;sajIp;c%C96{SuIcWpr}_kQp_lOGdta zvCOjArnILZ;m9yNKfYJDny0$B2GXb~OC`H1u|=|lQD=-YEX)wI>OR2&T+y)^LXHPp zA8dBI>ceGo2Wmy-+mB||Ca;rdYbBb&ER(Z|V&q*vkm&UeU136D?Y`(dNe790>0~UZ z2#AujJaw@LrnMzJT_=hOS*CGYC;%2qi=?FMtog?7pEm3<)@3Y-qE)Ayks?a&}?bA z4KxV*HWu7_RjGHzPRz&hL$up=ER#3jd6~)8)V;`H_3}iqkCdB(2M50Of)XN7WzsWP zlARoF@Zlbpub9ndLF>6#Dl+L(WL`2Iet}Qcvf~lWL^pOBK~4Z|1``kyVp&O|acBe8 zl$B{HqYXudy2ZjcSm}Ba!VhY2bLE!HG&N+N$naayzpx47)ug=~?=nzwB zi%DrLQfL9Zd=_TTG&X81*h{*o1Fz^$b9?k{8VWS-+PfdQ&x<4~WYgb(gT+$5sJ1Nm z7DILGUyMWhh_0EY(9Elb@?^G>#gXE~Hp5y}ybf5Q9|_LybFM}14EhLf0H^RgDO~_j zo~=Fk2%DzBK#gm9xtF*u5XKNO+zhIrQ&-1Z80C6~swjUo;V_`swK?|P3trR?Gup_4 z+8zhveoeaA$J`CV6LD$&R?_6Wf*7J`2z7P0%k58OK&E#*uKmF!mfy#)Rtdkp!H9eJ znF4X6ZIygvCB#K!ByU(csMi7Qhs9-%sS&V^)h81w);jP5suByj{JG(M!3dWjx5b_&UZJR+nXN4{CNgjRiy|&yU7$*=T|Q?lpuAHIa@X5gq)( zsx(@Y=rj=nVkA!GH&^Plb{g&?a|P+e(mp8w2#4M=%(I&*n(HtC)gUW;w21P5#P@Q3 zzJOj0y`()>@^U+O_a@R9rLxZ-+8=iLY9?mcerC`A@R_;01bOJhVCo6bEDAFNTxk-; z$>`pg6f!!pp->zhzp8jeVW$lh8;^=w>eR|hB0CSixSq<8#LTGZIHJ4b;kJtyL&a6N zJvcAX>sm?P@H+Ao%0AL>A+F%GVTo;0GencQ4Dp)8p)x57cn3o-Oj$0%tk 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

hL6J~h zrG($akUxT)5ZDX*3xqMhO5~|$M!=@IY*wVF^gvw%<}ieB%rc~qt2vo#$qGF|)r0Av zOp|c~f*XERnl3UDe_t1h98_&IFq*2GK>wR4f`<O>sw zYFw9^egD3<_A~0%?Ay6$D?&57SR`~{NFT1(=X8@MdFAwRL(3E04yp?o8IjL8GD+2S zf4W|Kj2!~MwC)?+OY!AU@VveH!!Z(#wh zTNZ;WpOe%&Pzqe;*2zb?o;m>M)o;H{$pXbK{UU-5QS=#Xs^K@dpywyFn&bIhbktr- zVpyH?>M|tK2n5^AdUZ`pZxe3dPB-zEL8C)pzHkK&e^C?x_wZmQ7UA+9_h9>0tp z)u8oq!i~>r^ z*L(GDCTc=VLOcczsXy5wUk;q)sQ7!RRc(BTko2?lW6A zg*flMI{QQA8?9Y1SSqV~+J9sz;0*bvvbg19m8hU!JG{R^rtjzL=Fvt6H#hNX*u;XLK z;$+j&G1&|d+ba?|p0cxJ<0b1-DO#Q$dzVV!DO!B6(vjoq;~d2UMZ}2ntc|F0dq0*g z71nN@MV^Ko>%O7BUY$>NpXRsDPKJ9gxhV$>7JlWR3tG2ETsx&dn$1OmuPR?t!+(d} zD?8WJ;TQa{S`@!oUws(38YaL(xbfZfD3H*$o=RQ`KbulMk@DN2$g~AeEp+H@PGm4@ zkJB0xm9_`MeYoPgv=&UZ{P*f$T48bg?Jj{UwAz8jgQN0AmG(Q6b>xQlcV&s<2PH4t zs8CiV37U?$vEl?*hA6o>2q=`V@@56>!MPv55Q_(^^%QgQr5{sgem~uT?`AJx^jS>^ zCK^JNPQxV34(Rn`QaaQ{O+$V~-qFl-9ABP?dg%0Kpc2xZ3`8&Ki8iVE6^#>Ov#|e; zk|>?^z0uSQ+CIpdkpF%;xcIpe#k{N*o9+pwu?#(0gMlGP$tu`%cuf4QB3Wj7 zTtM=aO)v(}Nks|A(Mt^3InOxVCty1|!tJn+l_McNX3Y`eYWug_C{$kr7m%c9aIN&5 z<$NW12j0-D9vLCG9Mr%FZfctyJuXUblSgT*_2zt<7JK`3JUR624ujzV^clZ9-tzKc zoQpBLj20h(==UhACHI^T#D;XX?J3TkVvdL<1PqBsn=w6KtODydJgC=bLheT_hq}ov zA#@EpYl{0Sjn(fz@-iiOgm&|q{e_}XdLh6;AX0YEZCwc>qD`{7gDO8Y{VKoi1Gf+f z3uh-Dd)fuU!(L*Txuu%6K^RIvKDU};+?X-BA8yP|>Y;C+o)^a!w+9PjclFk?lnE{2 zD?h33XL}iRFR}j3^IoI&gTrRi-ycmP1FQXYf0*rS2mnFUf9V53!;JCsUp8c>(O37w zDQZ~vf!qTxYh$}sQOcLGw11HgUM*}=5JO8WevB3Hfu1%RGP06p@c@7ASzbW*Tjx@$ zg7bjKi=JkD-!?DoerZ0R0=*wtk~EqwSK$MYG;*b8iKYjpcSn{SJHFpm*8YmG zy`!Hvx|@-R#K#Yyvq_1oXVtOjBKVu3F;AVg@-?_~JzzSNXy+J;T9RNj|MC}RWMs66 zy4H)mVxEAPHu8P#ClYV{2(WYNM;mU!yVb4ygmOVYg z?m&Ui2vY5`PKS1mJWIL^Y=7Y6yLmyB90>I8k>u6F) z$c%8e;i}W4v)8Ff73F*3Ve3J>8l9@fCDf!Fv#!XVnoH%Lg`U;NIAP%=gc*T)bs@wS zM>LV+pPTM{%owwA$>%<#svy z5fufOdGaql4Gn^h00zs$S9y$<#VRZ2O=dap$;v57tRj4p>ha7iSFC-wz zJ~?CIE&ws(@D@PKFbCw%{}(aC9E#1Z(6uHjk?NJ8Dt;^cWJ}5r&FuQD4)IZLKYs8g zsZ*&PiJ1x5A#&yySdBGU*A--0v43p=tdHM^gv>+&or@li4-T7kKE>z>v5Ex=Y+{D^ ziODtQfM5MXu)KE^p>fm68+@zTCU8EnFrl&De={>E^G;;MsYvn-kT*R)FmaGbWaw?? zI8mcZB@xqBT7>kd)l1tg^%v8MzG3LJ{;;IddwO<`eM9}gZx)F3a27%-XG&zXl+?u^ ztl6X|E>J-q;3`G%_Ag+S(k23*rj?c&*H%X7YZ_pnqAn6?6M^jxs^1^}t&pqN6fL3a z3A#**OX1*!8*;py@)1Wym%79vjsmi6HTN~ZXSfSS`c`3Ic^eRV3U^7_gpR|DoV#+= zY4Cb5!8^a70N6@t!9DMX4NtsUK}A0B9Ikf^Q}q~TD5T);%&u8Kv5T*YT8Ha%huX&h z+sPV{;ptcl`=H!*mQo**t>UX;qrcJ^#xJw+TMFfrY2IE{r?FZ)9kmTGX4R@*V`svC z!^MRK*_~ul&gVPAHY9nB3q9q!hbRs)%WX~vpeQDi*dCko+|TY{=x3EC zz^$*KvUuoP8<}N&7^dGol5ZR+Vo%=jxeJN^o>FceZc1|ABob<=ypjSHxjlZd?fyU) zt%zKMX6p@Ir_4F*PmYG7*B-TPXQcg{R)=I(|CgA)U?0XD!nna+S$=gF)2}C3XN-GWuGH(zbpDIseoMcdsX1Ho7hv}3T*1B4u9Ns8{M%r;n6bES6Y;04u zbW#%G9a7hWi=HHEFO#~#sfg^FIaN1|s9D{g(LVSZ$}=@%ZZy8a+I#XwtK_@a>(fMB zSmDo~X+gb; zoL{_!y^mJ)WcU3vuGb4icFOj_t(Uio6h(=C#si`UJhh~%j22(q3c}o1*rG`~k8h)k zHZepXvZcnH7Q?s~KlU&0GW32mG&rBzO=VtEUK3;U!EWHf0%Lkcj9sWam zmSG6m5Dsx#N2~gQE*40+YWRRp%p!KxL#=-)2{C_+viH2HHF2bUc@2F5hOjORzatT*aWo3!s}sFjYr@4H^`;gc|{VipT6MN|S1Wx8$_m zvm%%&)sKcj0YV#HW~{z4Cbjy0ez+y)<-I;$idXA)0E$XOP$YfJ;Bx-fOC(Yc2t6s1 z{^|d?>8lsc14wfDxGkPwjop{ssi~;MJhez)?@!S@778F}XeTEm(7yHMUzs*TFN?bp z8^{5#rOAnZKV;g~P&W~(Xy{&Ihmb^)*Rj5)TmO`PS=3g){f zbA|S7{6+k3yeloV$RJ5n56SsVdX+*nvLZbKu{#DV+7vEtL0_&)NMJjXt{C(-mNMKd zC^D51QxH9F0wt`n(qJ7Pnu{_m?3{_0@-^hV+}H22Koxm2y02)~il&1m#Y-`hpR6OL z3-d4qf6+S3PSkxSHviwb87$|m1Gi52uI`*Q`~S_&z<<$gv1Iy-n6di*otUwN3h-9Z zMY^xB0z1mz_N{JG19}hyHN$kMjLx-v%7N}jifg=b^IPvL@u!Nw42;zPi3bR`@;XA7 zOO?nazof+JpDfoEZ=^h&ug>;!f5 zB3w{;d^ig7p*mew2&4Gk5TdNYn@U|flF9&K6s^2?#(Oi#jvM1~QPOT{2u+6ZxhYcO zGT)8aXxKw`JC)V;rRh9GN4)#qrVf5dDryH|(71vcqCxpJr%55JY zEA?Nz&VW(eC_p_PFQNh<5WXo@tu|Of5XL(?I$l2?W=mc6ma>NIudERmCXMl#<)+)}JBL0A-bNf(1nZl17Fr^Sa;@paUQw7-m@=D&s_5{) z@iJ_t4;6!(_#1p>=w?fVQD1bQuRrTt*}kZ#9KZO6(*q@dqC%o6ASp2Uc{(~@|1cVKu9{(0=%N&mYVB+sSCWzLM=nQ`&b^SWX)zlK)vy=pf)c}fn&py z6@N;Kr*>bgx8=5rRTa7Ksx@<=%K?*2fr7%;3Jh*^c$!R;lp8ce(Wud`6sk6Ke;%rau3B#Qlz~t-`=6Cu0_5qab^f_Qf=?EyH4adg`Bq80b>n6Dj&~Z+}|m| zS*>vKEb_Wg4AHr#%2jC37zOowO&S*~9h)UfxG|RU#7$Q5<#iETK3lLZcdoy6a9$0H zr@1lRWEuAne<%7)UDy+SqrPadvG7tQ>q%YXJni|EyQnUWXXc@9FroixU3R(iI$o9o zZsoF~T26FgwcvPBN)B<--bs^wPF3;9Q+HbY?Q7=tMypNs3fhPcpwPh>Nlse`T^*t+ zpxzb1Uym6U@F;bK?&%$1+wC?i>Iy3=A{!b3JaIL83VW}oD}#zS(Vy_RT!FE%h}OCe z5$emWvbQ=ps@pac6oLl~6g{Ubqq-z4RaLF`bJ>%kb1lRufN|r2b9}3`sO-vWb(zPr zM}mAHTBKT_H2U6H-Y$Et+`FlPVnN+twVbRJ6(6sdF}faTI~kGEr3V76k>n6}uR+zg zVU`1{gziLTp{+|dw-6t#dm%DmP+4tO%Thgg^kA(1I?SvqBIvBa}82@H}}9Cn+5H+8YwL z1&>8YuwK}xI@zDH?AjWDBJFC)^iuy!k)IS1A__{rOoO}H?L_36@06Bhd(QwmTKnF>t)<7xZ)6+Rl|0&w;Cx&e2=r{{ngFNtO z0DnK@!a1ZJ?0N2*zcv3E$lt^H`?DJgDBPG_KkdT~4gPE;3S>Y+nV#bz^N_9jgN{2zh-Empv1Nz4~f2X7~=uWHGUq%)15>b58Tkxf^5>a8>g8^T%L-h_DY30L|kNDS@~yxPw06-g)SD3h|$z@0CMtFr70y#J%MR+1@0 z^b4lM{oPr#&+gXhn;fy>-g0I#eom0b`x{n2`aTSNy52k)_m|FoInQJFHR8Nk`F4zm zO^wL$5b6ew%PQgPm9uNe&u2b%}MTp7# zkS1N4GM{dIe66Uxrfl&79PWA#yyT3qe%{JQgXt9<+Bn}uLARTqAya+D&{`W=L13@@ zS0C(*_HACScp(V7IN+9)+Rf*mIS#Ve(^6wGWkwR7pWX!*9Hp0@4Wcu|llqEh)+O1( zU<(~LRN=31V702-j!K?JVzNEIAua=3pgeLPvJct=6y8Ot*f7f6wi%zH0A-HW6PsbV znLonjPwVWi>J5*>fJS1rYNov#9w=g-wJr+?hDcaC0`eK|!-f#atA*B5;=+T*8n+Tv ztp5Qcs$STh_xfA*!a>-F*WgogsH@_C^-J_hRdXd#%tgY?C?J&vgTV5Hxv@tg5! z>pWZXh0V%LgQRWC_&oC@AIj9m|9b%Gj%i}<)x zYp*S7Wm@R!2NI;#4c5o?fKNZ~(yUkN=6|i*f4=Ao=M01zFT(H>S-PUdlkrF60VOTn zG$GXN&36&d?7KTTR`!0c=J6vX5=%0RKq%|ks1Sy1R|!-b@Zq@y6sGCPWHcXyeEQ6Y zv6Thw(bH6Ie+S`du)}_P-HhRU4Bl>r93vgm?b}XExhh7|(Qmf$7M3rw^Cz)2+4owF590!V7DjODG45!N=1uT^=>} zGNiGJ^mfms=pBM+*B4yZhs{qCV9qZI*&gV)I=+K`=RY}&%Bp?fXVz*Hp1d@mxysny z7v_o@B5HDU$bWxp9#;PjM^Mlt9-~b{a#ym^y&_0Or0WK-N zTla8k9FEGj%b*N1Cg=?)0myvfXX~0P!sTjV0yYtc=;MR9X*b6a9JEEidXtb`BbYP zN;V8j{U>g;V-n-hM;JM1gffDaRw8haZeqn;7 z569rwbc}EvYX9OYopDP!b1P=3-Aw6dNA&S>fEh8xTkjF)_Ny@F<1KYVe0#m-%OQi~ z&x=L2eIabUYntq8bl-;tG@H(6Q_KPcZ5^$NeGhA-f(F1od;pCUBerQhCVTAzWMcj2 z3_t{?JydHF41TeBA)l#x*xp;N<0yoCoHwyjX+h?;zCQhM7R|{ml5VfBIWoD#VnH>^ zhJ}g7LNec7K2JiVc2sKG&7dHq<~QOc51^3hG7Gc-){rZTpkYVh3Ak{ss?zg#er;r& z-wsbLVC=@Zj+I^WFKN3FcbMS~g=K?Ft_lfQmiUbQQXcIX)K-jzx!$~WX^GcaHRDOZ zBt~IX@e6XOmsf9RHcIQd+Q_7&qCE%B8(}`)W$5XZYxlmM{aQd1F@BK$hiAxx=nuQ= z3m0m&Fv%;ZiNR4 z`m@Q=S&=R*EMJLxQp2hBKp~aWbxvU1Yszm@Nr)+s$MBy|8|Z!&Ge?I4kuvztt``)H zvqe^18b4wwIPi zVoUx@)2M$AWfC#rui5|g6hRAFdsL%U7w?GYtww>tBadd=>I!sqJ>w7 zGtP?W`pXxdL$g2$oP0ME;rR zSNf=_-PgauKHyRI;d-Cx3^D~i+!WIFVkF!t7!VSd5$?<3V%UgF+AOPVU5P7T z^qr&YWmGt#0KN3{pMR>Pk^*NlCgY`kCeIDMcMAP}^fOQHfQsf+|`Z)L98{rOR z!-*bSaWktJ4<*Z0E2la)6%A zTL=l$O_ddz-dkUIUSS32wsN~yPGyd*c0c)l0|5DG`7Nh zI7(1_bE)n-YariOk&dx+RD-KDo+gj;yDYZq_WdLS58iFNN>=HZNX4|miLbiqMB_+m z0DIlB71dHh0EI{`Orz?-=6#VkZN#4qrh5%lp3r@F#d(Mk>$)PSNA`@ti8r>k6)gwn zNIh>+9%@XViRb3)Z@+KS7qUWxw|#D7TjaJ-^sSizX&PP89G)1Q@ZUH((F~lw>@wG^ z)Qlc0+r+0?3euHy%`5k{%;0uFzNtpNY|A>8_%?4YIg%-tLp)`{c04t{pG2{OzQ&#y(5u| zk+E4E{aH~+7wq-HH3FaJP=M;=@Z9Nb(H5e+!7L<$UyG#h{>m66JYr&)(UrQo;Y^oU z5Nf|l$Hbo<Uh-%Y?4pF)4^Rji033)oU=ThoQ&YX6{OU z5uz}j#&xblTS@@yN^g)~D_*LV>1y!4c5)>8xb)YyvL@EnV^6HJEuB3pbMi23`Mt(H z1Y@z$_UfwE$Z9a@j%PIlu6l$QyUdDNQM!GRB;0x8`=BoC%KL2b)19+nAlPv zICn(e9oB6!C|$`b8MbpJ&+XHU9F2y2Mb%TYLF?>bb;b&`Xoli){V!*z?R=-^)?K?g zVVHJoI;+7_)EQ%|p)HQmk^5#tZG$70<$1<>j<%I-nQA)WYm*z~vE z?1tUz?=;%IJ9|st%ctz+S){Qv*1El~2hZ$NdCAe}dCV`yFx#KrP~V*uigwOdFR^%F zZ;P^erD~BMl(<#ROTi;?0%scd=N^m(9@Po^I{M;`Xf{mi8s5nMbxi)tRbuu_|Df$@ zcbxAkr;;b^E7IZZuQo3Sp)FETIf{^O8MR|f0B0Wfx_2+JWA0>4Dm-juq+cSGq|i~g z2(}RoZ6nfw4w7Llfs3XX5)u(oA!L<(ME)E56Q?uU2Q-_9dPm+rw+uR7`zsiNrzib9 zUQKR=P@-KX!G?{!O?BEe2h;9%gX@6xTzk}NR~@`w1^pIiY6OUivVOLPr3NhEOM`%A z0u!u4PH^*>M-xxWdmr?+^W{17^m!nqR~@ZqiMER9u>-=Nw(r`SUv=N~v&{FcR^2Y* z{?nKvk{6%QQK2DA+11O179~ z)o4a3;Of2|AubJrwwehUi4s~#>SDNL+gQ5kU%3FJ>JJ4@XxguSVkuhT^N8Yfmg2L} zdZ^HgL+mVR=Y=epQb&(7*2<@SL7X`NNx45?>+}du;=5v$Gi{W0dBH{+79WV2ReEXqv0kBzqGtf6sU?VUT(0~evrFAKMmE`45K{l#ciah zO*SOAmB9{tkGg`nvNn(ls$z|;Px&_|w#paa(=Ynsr)!!CHlLu|8&SMA2COwQ^6zc zoa8^ZD6&~B0L=&pP5t*(@@JG=VuS*5Uio({tCIh~D*rvcDFVPufg>>j{g3JWzf@pb zEBerX)o1|)7Y|7#v z(Kh$~1-w#gLqq_ajb>QjZv=3PuGXRCEhXoEnzz+@y2_cJ55>U+|_zS~oMg_JY2}d6NMxv&o zk_!m-OHqWq{bylzJInm&tE@h~Fxjnw0JaEq1{gzY>+8p&op^vcZh%6r(gI<7TDBc% z5D0iys#1|A&r8mbp%<%Q7iz7h=0?s9NDjM!+z^}Ez~|rgE=LA)vqz`-+WB7spR|R( z{+=NKG9n$N)|qN`p4CR0Pugc_Z3_O*oPB#g?|Hn~f%M$w3Y0s2w6n_MW%0WEEm=nk zrm4#Mk7{xGoPNRn@#E%Ao?!C}?l@Vz05g(2vEm%>{72#F@Vyf+8jWUf6ZmhB;g~_@VLCrfh^%zF@HX*kzU`yK7>{I7RQ zZ^)2Fz|vC)to6vHe{#ZB0?sqT)7rA;Gt>MfQ`bw5o(y*5;qeE}}m6M|SE=G|RM8?D;)slVqYgJcHZhEuJwV1<+9^{6$R$!ggey*&wvhmatQ5Ij;RPk`4qku1 znf+F)vfsBdGW}$?yFQs5l-k{o~@eU^YS*4g~(P@s=i1Mg2@qsF%$ADOAbUi5R`=o~FaQv_m=&z50rR&&(jZAyFRU%WPE_O0(ja9AZ zR#vh_ZK?oGsYlH#`Y-*O6NF-CdrqyZU}8+FIfkIU=puM^J>Bsm>2Qx+e4MXB<7W&C zd7}P}(A<>*Ci+)13ze@f6}mw*<1lBzp@dyXai-BqlG)4_MuLR~Vpn*T(TOopTt4kqC8`d-%{NyZ0R=I#5Vfmuh>iak}prkxh6is?mD>f_z z+D3WyGURpb@%y8(0-EVs^(*K`2GZ)C%oJvVkNS;CL_&4u!2lVS;JCz_`doi5b6h%e zzq}q0VXzK+`vT2azQytw0SifYJx91y58l|SJX2D6v*JSSFw(Bo0cBf_#%Y(G zFhpYA;_sX{zOvFg)B5tmTq}+5s~8R4pepyv2?&LfL%S3kSr?UQfSK$D80OQLNj(^- zSb&Es2Wml(e7K+zSq0as8p(N3HI`p2x57HIAG1LuahliN-8SxzDQpmfW4PG#_T1|B z`li9jnFv1j*xL8gqP}xs7`-<3g<|98!dvzbWH;5{ClL;1nc;FGhVgsH)bENq%&Ez3 z?ac-!B=WkPn1Qy9an{RDe6a}Nh{jxHuxeV9|%h;L{ek#upDA^o%x zCq2arl;llzLW)v8bMvxVbTv1Dfkvnb%m_)fs|~!T>*tsJQr*3I-eMyitkw$^xsm77 z9Nurk$$KUS&zj6_@+49CVGOhP@)U>9Lk?NxTPRpDjQOu)^P22)`ySaUM4TZh?{FC4 z`~^DPRC%p-)O>HiZe}wA&BLs9WVC%w9Uvb_eQ}6aARpUDE6!$eMpbbyuNFGG*iL=A z#s?YxzGv#v;V_L$dYA8I6TFmIv&Ezm={S0m&*>=!?;{L67F_rZo^ulmn3xW*o;naC zAY!+WK}=TawbBz&pNR^1FC9yUQ_l50Xg{j*CybT;F==uN5#@KpeI!?ZDg`)NU-s`& zCd8p)|Hz2EAI1>>1^uc@FQ{toNg|i!9~R~v+h)$$i1w4{o+MfBRZ*qCWwvmK5>H+{ zM}w&pZc(#F!>39czP^Xn8Ak;i75Dexh)Vz~cZhh4!D|}Yu*yg|Ok7%g^h|7zoBB#D z4+rS-G3AnK$r;Oz_A=C0&9oS9v8aJS1y=&9&Mq9+zAcEs?d>pPL}L}TwyXd~jyX7+ zT*ZYxgxzTPEFv=YEhD61-r$&lL`oDy&oPAxjapT&y@#IAY)c<>gpTKCB$MJXJHZ1( z;ow4QzqRjkeW^^(1|)DFXj~A(2pUF&s)fegh@3bH#d3qOHaqTmts7NVu7R7Jn7N8p zM?c~WQLk zu|$U^`zo!m9s6*6(m9>6<7u>q44=9wo?5YM#50A(z2jKynaJcY;e{v2-mLosmA=kY zi#ymA?efl4qady3VjkmH_l)F#F8g8%6IsMIxD*fjpwW?8^Li7KQu2w{-cDV2Le1bC zA?>>WAD6p^(j?NAQi*HCan;NPfOcG3uNL6J0iAmwB;8s=55galEe>F{n66Ea^|Ywa z9SXE?LF{Q;r3P^gUCvDG7A(OJPmii3rv{LF*>c95fsi+V?1Q;;C@2MFT*8~HHPn#c zi(9NA9-V?ac0^B@cd#5TcHmt$^L``2*jKOP_IECKa@l|Gm72I+Qb1wc-&Qd5C4w27 z8TYof32>}xpd^u5c7I=C#AQ*{>3&wiFs{bh3>Ba|PYb1-Egoj&1?A;>-enVCwBdc2 z^NnIzQzPHwnV>li-K#;lIyF0m2pQe-xKMMxko4Zxo#d^MdeeVGwH`WIcNn7F4B7uF zz9(pkL)2>{tTDlcns&iHn0FaRJee!Bs@Daq5mzXoiu$K0_TNtx0}yFCF@uYGft#Z@ z;zC#T6Nja7gEc2j??pQCO+NJle7!4UZ=I2vOv(BCVpv4&NM%yU>>b@rMB9NKI-8Zm z(5MN_FP2?MU?T`&v9=Yk^$7@MA{K7qko6dbjG?%M{SuyQUfD1c1hR*q>UzQgTcTj6 zFD~b_zY>v>c!0dyK#3WqAo$K#B(c}0R6D&_pO;`+U9azgx*VFCEMWBXt_#9{@TDby zu>aKKrD0O%DfbJN!lQhS(O2uFTc=5yYuhGr|FJ9X8>nysdAh2XK3i%YsSYS;n6p`C}XjWk^?^xOgF%q_}imNaP!^Fk#>)z^ab*vskAU;J!M4{Yp z*<>(qhu(aXr+!UB=rbwklT5S_ z+A^Hss+~GXy|RzMiuN<;9VEvL2oVD^*-w*LK>bBo+Q%lD@m)d>HsZ7@lbf$6v%XVh zQTo(lf_DGjI#m=CFSfD#R=o>dR5M*9)+RoKxMR;=@9eo^y9U6cl9K=~&Z5 znH86w_#?IBYQ?4G{JqX3Q{ld!!ZgLGb~soB^A=iMiF>$K$bEu6M)5DLB7>6H&viNj z{x6F)C>oZSiyfs2C%4pHk~o3uTtKKm@mVO+KoS{ zvKcm6bH^2E7MRh*G31_~CYvuROC_Er%zA{y~A3xmMwh-f2}e zIv}$>qMc@<5(KTm`J}E<(w?j3_pe!&bK$RF4+jRyKbb7FS5{C~7LdoXuAr{k25K!Y z9LJn<1~@F0SRL4_1w9_1BuVq(L0zKMtuhyvTMC1h7sq-lRjfH>p|6iCd~AJ#P)vfJ zK1ATarE!91DJh>ib5MQ6jgM?6x7il`Ey7#8Emn~$s>#Wnf6lImaGR)wF`wLVBn6RP zn*6Nm9p|ralvz>uu1%|fW2=s}9o-y;VrMXpRiW{cMR5LOJ3k)rD@E@b*>{i!7P~(> z&iXXF$!2`<#fOw_p@p2)j<@LoIY#}{%8GwK0O?UARdX5MRm_v{{1oJ-ofvj=e>BfW za@(cC`iC|KcZ2H>^r?*6cBeOk2`YD01B`ZLQ3A5jT^3H=^P?iOl+GR<5SOYqZmLV1 z5J5tWM+Cb7QN0?_lS5$?FkwbMtu`=-v3zX$`0{AN^I3fR%>Y-nIQg#BM(v1qXU20Q z%|EVWvmoSfjA)3UkA0a&-uob*pI^@ca<_p+2!!o5ih05_>kT#WmKmdQeskek>qb~$ z;7doM<~Hj>7i(m5&e?(wTKR5c{QcYVZHajy5$+Og*Hb2|M)}Y|9|{vIhD~J>{t{|r zAqN@Qn(0Qx5p;k_EOU7YiFQq-qj(+njl23hfCPoj6S49i9cIl!=S!@KmZcxMF44 zHAroK^D)eBQ0yrDe|Y=KusD;Z-2`_61a}DT?(XjH?yiG|pur(ng1fuBdvJGmcZW0C z-RyqfyYF@Wo%3g|XRe;e;p-n00cs@WQ%64ZAAs^pUgJTZ23-09y zFT~5I^TaQ@96Vzwi0GK=akT0!d@ppxZb%!xViF-J7GpFSxF=Fu#ma!)iEeXyzo2K( zpT-C{{uly1*Nm+pzjFL;ZHB|ygU!?mq>;(AjT=9`M7`)Gx8(*|H~rguPuDSqYKZuA z=JNB{;EaW%k(G-`aUZFTHs>5|Qnfj+D)(fw!vTqkh%JQT+^*Fd6dR|~H>kp_WDa`UY_%>YF`?W#V#N|;*Iv@jm;UXG`Y;jdSj@*!aIrj{5shCECe!|)}{4= zRywk`@V@oM&yH`HKhvExVkVw^a7?5P3NN@*fbit8C#=2#&Wcx^0+uO$&@+}wK~*!L z3z;e^r&FMh6P0|}snQ_|OBv?l=_<7+k@5@o#saVOvlHaSLnMeyK^*FFhbZPIHWFG+ zZt2wqpjf=-YG6>wgrh*~qv1#+(dx(o{P#(q1~U=f(O@&!hOhfJW`8fsWgCwVuD5pT)%EmGQ#E|1;lX_v8sHe1!t_a5$>BDK41OwUPM?F86@|Ms|pFhD$$=0oImniPc0`OrI{+7d= zZfHhV1~2^r{jWyn$J4@KR#B^z(UtZH2sfS}a`0!<89ISlZ$aPB?51FRoE_09N8P$` zHt;NVX&DmgBKAY%5_6A!zGR(WGbw#QS4^(Zf1+%u9iMhJ@H)#OJ3l`^mBoxoy5-uY zc^okC{r+R9T=WC^>Mi>7ofqJe%Np%O- z$l;LrpNL<+)r#x2^&sz{@W6aSY1;4Va;({i$Y#9uJSFAP`2}swUL_`3tyzl*?G>|{ zr00{0I{Lr`)7>rHqx!a;A+PsLIfQ>yQ*~JOj5FQLx6C`*PpUnfsuBK3`d7S*tQ+FB0>d^-q&7hSeCj0FWM|}^s5?$x`Z+>vFWWE|4UdWG;m|>f7Q888L zS}P!L=F&Jb`Lmo)S7V1bju-NXM2j86+B!y4vvcT@O(s%w3(vhbiphhe2D01gGesY_|7bx>!vdeT8;}A9i^vhBD6G+f=J(Gh~ib zfi0gI0bc%X9AfMFO=AK9CR4&CUbnVWG83zmJTkkuV}=)J9$7?o;H0Aqf#`fm!RFNv z#fx-Q%QT(J9JAHtG=1&Y6cC^Iz8GxOuV2SldjalQkwO{nH;!c7rG$(2bhggL+gZ=y zBLwPI`PLuA)_MfmF}QhL3R-dvdC*Em1g3L1?z5o=L(kL2K{~IJuZOe*)00`sxJ~ugO2VY`6oE3#y-`)$_;`;O9}5 zYtVfYgCUctvgvIO2>{66upa%+^%tje37Pe+?RFHrK4Lu5P{;x=?LRVTS6|=f(Je!~ zz1|u1wHmOe)xt<^8wk$d{{ic>KCYlYokGd=#JNsPf0fIB(QxEBJzH(XZuPvI-JQ@; zd>U%&RdVD_iT?ST{f2!O5m7_aXW)g}_F^1SQsapK7`Tu4CA3|pGn{SCsK?j$^VgVL z#9-^NZ9L!|+Ayg;Jw}DwneO$;QhhI`rcU8=5v~25bGx~Lm2LQ?aB+OP&N9zV>d0<( z#8X+EishQtStuqG%64$o^V3lU9B~oV4tha%L(>hp=k!zR3N9wGE`2L`@vUY5r{H|E z7dUAEPhh;ae3~;$OQUUy!VeXA^oNO~alEH5)KBPhrc!lO4F)A;vyTg}+7pj@0|4Dj zw_{FgMIP@B`qpp$k&8JxD3f|=2&3s9V>E?ZmQ@vJ=wvc=9Lw^a*2u-UQ?--hwWlG) zHX3ukNx6d#Km?x=!mb*6cw1IDt4uWmkYt%Y37j{KOT`6XR_>L@$cnq(HH28u7 zu@PxMQX49Cq&E1jXw?0tw0~Sk;o#<@{jmYHdVFBj#+FFN{`YL*@fQWK)NFn7RZf+k4e1xmJTfdC27_VnOYs7I{Q2H?G_txsb`2gp-D) zuysF1HNC#e= zO{fF)O<96a%4_v+_x(;s#Qsk2s~e6^zkcT#N-ZN%w^?`jBSlNwCO$Bk766RH0B19! z-I8io^#zRbd=Lj|U`2GR5|68LlG!qkHLBVj@!C`0+JQK=(L#-tcu7qmLzgrC&Ea^EYgil zBc2uo($&tcI95LLtNLwFo6Gd$%aw0B?8F5%t?G)s&OJbSa5Q9Y@VU6gN0 zoBbR*6*wPv>9%n4xj^0{rWDgL8F)|0NxVJ@qw80;d1vzL659_=HUsliE%#|Vb$Tt7 zKY=1A`%(QU3Tc@dynRC=d{e(VwcTBy3vT(fRUQpU2Nlb=L+RJYK(sH!zb+q{k7 zs?}Lu%YqM(G?CaT3Nz~Mrkp=54C!O2qx_OA3xxs0W-z;UM|fLVKQ1TR?(OQNgcYjR zdn)xk@=c?h?^)r=KV4m&t5pD3{|~i~!ati0@Jlx{7f)}#ha6F&JO4_o}H-{h@KB^D|1ntR~HJENfDx$nc zKJ&TGjk_Wa4fE~E{31vri(*77cCnheKu-M%Z9+uqx%}-D-WE4E+m?{X@G z?romUn?iX5QaT=?KfUbrz+RQ5>*4H+Vjly}{I@_8Die`?kIT8y{0o7%Oo4)XOWxIy z`KT!qK7+kO@I`L38R}|Zt<^V#%I)=D&Hbo!?xN}0yW!^JsPDHgZvby-MzvXdUv*zf zu(Qt}053v_!u=~@2X9>H-8nzU+Bs|sgR%bsg#22vTaoCSgv--pg8|5zw#y38vfDDeK%F+eVd0 zw@|nwET)xmS;;L)LoboK53iDCxDO;`Zr|zo| zrU*MkOkNZ^Rq6y@PsnCz`>r7Ao)R%E{o|8@cG?kQ+qx@{H`kjpzqU({Xf0#7fXU`l zRruRzodjem$%|5{wJ#zBhraE)wJ}FSCzVQ*Lng)EcR-mCAQj z(Nst;!&^NsAYOz+w)yB_`8n9%5e^lVh`_k4q&`>%7u8W4TntbXBIB1^21B0d@vz{A{{2UI9oq>?IusMBEVu=^o9M80z$z8Hp=tO-kK*Or#JJ5~Pi{8Q0WlQZI7y zQe6jx#ZtHNprsI->guU2@+3H*O%o} z7PJ`gv=K=5{~p;Q6d+vdP{+O!!hJn$Va%|?cP?ziU1ZAB883)~4oa1`G%Rxhf9I)l$;eL@9_AZC=S_d{kaH22LEaL{5&jsDzN6XqU)ym5q4eC8 z(X4x$T39blzqSti z|Mgseq>e@}@)D1sp~49TA?;3Z^4bEbTGvl;xD)X&6q9)p5KGn_uBi^A1{Qp0ZNU09 zed38#_}0?Fbb{cI-}vo*l20v%-sa85>nk^&==&Co&_$BLqEFpZ6bFZq6>Q{aEr#>p z2tJuuCe|^PZ9*Xqn8_@e1rX6=4H^Y+C1?#*a=Ovneq4?S_>k);buM#D0XDE1xATC_ z?1#f;No3o8gTwmf4WE$vWN2y#`PZFoKp&~0ptx2|oo;0X2WAEBpQ2c$@rMDxr&;7; z;eWlXf4M2xX`f+R0y;0U`MUNG!YbNcCPV;Xa$ZqH7k7O(2h>)?4FuO}?Xk*a^4eve z3n_4M=^X??1iygp=p3)un-#P$*xwnTem(qxBXJPbw&LyJB^TMUN{H9`h1|p!besh5^#WrQfpJKm(e)7TmN6~Fb%++*5 zp|=}XJDBQ?6c~suN~@dl(g_*0{%_8z)mD_|5Sd>8&?3H{~iftZaLlx&&k17-;+MstRi z9cFN9GalEalmWBqA4i!Yi~3edwnvIZm2}=5s%P?)DSm%7h$Z(qZM(19Q1UOMCGdNM z!Wi2ucClbLktHrxCyRi3&#iObyzTClk`URuaNtoQ$0vP;Tw>?hcqo)N^03X-;HKB$ zo&3H%X*EHm%$rDzpwJn9wp0V=>a*3G&)_~XM!+m1=3|M9j|L4KA0A~F64K<%i%^G4 zi}kvF@E>Ai;DNBcXbJLMgcAX;TZX`@s;iNZko;6jHFZp+)Omoo*Bin0u0YsJZVQxImODUF=*)v7>SKZ^a_lwaUE91n9UnKX+uP{c}-A~HXl zZ;fpf7h+wS0?|_*HZ9_}jFBNN^oLpK%X}tU_yJKbkpYejgfRBW@x26OWf5V(SzciO z2{2>^0mcJ9B{@vXI;HuCjOzkz-{7J{$}I>&6ZshnOG8~fB;EHFv;Fx}Dy%vR0*I&9 z#s>RE!5Z-|0b|U!*T(i1rTP;T`y(B=pjZKIKrM_{1Ev)8-EYyr}1YX z{4Y73!|K1_cr$+?1I_!#ssB?i0>51{AfEX7rv~xArHB1RLKfr-GW}0j`#Wf6J|M<- z*K8E)-vDJza$phKA_H^Szmm|BpjfM$=oS=koy0!NI}q^UMwh z(M|Gw=kPEz5|@jJk`jh(P5Q-G;=}i^|EYtm{vVT5%KQx&=0HJF5#-JFWPNv+mXxB} zc2Zi2bk%uE#@@7uL-y;D5(!^sYTQJ#+gZXm_2S>-^!I~3Jd!!Xsp^h^E&hjhh=_$2zR5&~yAGiAD%$X00P&C|4 zR{J;)&R)8`xEK5LM=!#7GxAi_RI_zk4=F5)j${<%Y9WrbAIw_XSmorlNc8q@Mk2TL zx}K4A4hNU`l|k#&P`#tZ+80A+q3;MjEjRmhVaWWaInE*Yp^?PKyQv5I4*RkV`W|W_ zN^;N9Zs$f8&Qz>1K^xb$-%iO*RGZ25^z;<01o;;y=U9ZHqqq8*PxS19*UrE!$Y9cX zzXQCeezemmfi^x%yW6TI6C+ZeDpDc;NyT40nn)O3TI6Ed>{hdU6hx*NiVkI9gtj)jy}GLE13G$s`_N!Xl+2F@bO)05r%^$#n;BK9h;~`YuFnnc z3knM>ajbp@B};rHH1W05zY*xSKjqTE8R~Kzea^KWh&Fn zql4>S3*Ub}cjxxrN2u~#1gTil`>-3db7Muu6MlgV5hC=?@PaF>a$%bHuLuIMYsODv zSJAf`k*aCFW0~%*eeTXmh#y1SJCD&_4G)*(GJ`wV|7W}aO{K>&|MP7o#LVEqhN(5X zj;?yem~22Z&jiE0sxn%daI|~tn>&ZDos!kVzm`N9feh7nRuPLtji5`s;x}H&2Pmhv zXESQ|C!6Od^p_hs&G7Jg)p9@0^II?Lg{odftyrk-gDHIfPV;Dk`8?DX>dG4%?T)b> z6?$crOvzVDO5>%tmaOAXym|>=&R&9zMvu)H0ODrHn#~xntZ(KN=k~L-_dRP-=qk_N zspl?>T^d zJ=qf7m#?Ouk-H9Y2jsXPa@^x|j6-UXV9{E1#0dCq@3(#os65coDjS}DQ?jYzzUx$6 z&eZNj-!9)1etx)f6A}o8^92Edl0cGS#)ejHF8BN$=*GU;DM7WPa`Ac!`JmHF~gy}bFcyJ0c-9i{yT0(c&&9aoPqw|)m$6dKN z9z1ck-J*aGD`r*Jsj1;;C4ExS8aeP>%wfY>p>hFiHU=XjWgTMiB5lpub&K8;&F8nV zs#C5*{O3E98TQw@(fc+0{RL=r95eFKZ0XE9V^dShwf46c6n8D|fn9GG`CQNCPto!D z51amEr0wV29(53w%nnDP1XLrt_{bU1#;w|F4a0(3mZdaKbd-LK+6D8}ru)0c}#8+EY?h>cz^wpX#H&VAKnnqRT9p4|9z$Hb z4Vqxq@ryH6U1h73NNqzxC0{hi=THZttUxq!8J?m?)(+LT1gQXPj$4Y0c|{#Ek5e5p z{MK>9Ut@V~dSQ&$Zd&R%>un-M7u_D|WkbDJer!+|aF98BM0S3$U;w5y7yX<*;_jq% z)%f?0>$l6G_O+u|cC$6hlv1whmJA5F?oK!RnFPJVP={dY3k*~WOs-NTp7@%7S!l!4 z?(+CpFK0NFXIJ6$#5SMzTIb_0lyBAAFq)c;*Py~7aA#&@CO{#Je%cS|v^uSpTc=#G zJOyw+l`FO{Xn+f>YPvdRt9#d3xu3;cMX~SVPHe0EvBHQU?adw(0rfTHOZU^of*Aff z)3BiaF3#Z+q(syj-5S8%WKl_cr3F10=F(yPX+^!>5fr8ftFC-WU!zfLfz1s37FFCE z(0sA5`+|Uus>Fg-G-I~q@BLWa8(V+>uFiHXu)NO8uVx0@K4bn+KwvA(^zXgcZ(qE@ z5bQ^1@VxtyovKlZ3cWWb9Lo;^)!;a>1z?_|9TvGo9AhO;R9|3RMMeO4tjezE+Xp{e zA5JtqJ1uV8A&wGowVuedkedYxckkJ$#h6Gp62p!KXQh_c9bBG|ZZ9d3duhzLh>_jJ zbdi-BF^k$_;$6}|Iodx~tL1Dq%Iq308ZPo{VgF=U-5`#+)coAiMFDOhwM#sL<7eOE z@m2wG;soD-?F-0MR87?lT&OnIutfcG*5473Rz;M^JZ($vy0m`lfi;{DF6w_!4Ab5# ziiwGk(h*6MZ#;Abj>AWjwo@Z_aou(IflSxopWXgnmTL|TW*e(U`F)kw%Vp%@dP)un zAOCC|ij9rUdZh^!6cS;2)!+JV(O5<)IjRt3nk(U~T@RpH?o6MNHALPWth2tcq5hK+ zcKRrHdfOQBOjO#3b)dK)oDoFp65!5E)JoZ&1p;xCWmed|lo#1IPi8UHlYO)}1dO}Y zLLmq~X&ec#%>SzXP|~K@plUheBMrEh>3KHb#XB+D(X^KZ|D>mwk5^- z&_#|i3A|jR72A0KMu#YRre4y>l_0r2epF3&e|PSQvAGVq_5&4pK2*g_C}A zn8V}A#tD4sJ*NwEAFsrglZi-C9opSk{35k=DJkHC{rXXP?Z$zPUFD@XmklBDzg%Ph zR1HSV@#$$9Ks!EzIZSW39!fu3f`F^r5N&?Qs(8rIoC2&RhTejFa<{b0H&V~UNO^jo z-@$i|b7++m-tAxYaX{B3ZOj4y0CHMd(R$kz95^Ob$Ax1(RrjAurh3(p($L#N!3cx| z{HkFHh;xXS)g~VbC`CFal-S7-xwN%vMdgEK&og;#F};PT{-bhgFwJoBS0F8r*{@i* z%;WAN7i>pBl}PKQFun})KYsh`>$>4D-Mkn?nf^Qi{oAYl;{h0N%eh_`x`_JUab1#^fW@?htc$3y8_k8eXn+2n?1x7 zKqIQlnvuVs(e!z~)igzE?UeC)zti{*S@Y!MvcdW@{?g`kx*b}^$F7EvpS9GcBEsT$ zb*8xu%ZhO7uZ?%d4S&athj~wL9bthLI*?H&tJ+W4gG--)Ctw>97n>Y5*+YLnln10^ zh@5xf3aqkkl0t6d{+zQd_?v;Jor9W2m=w+Zo;OWqj%bdmYhd*B@u!PJ%%e&r!31kLo{k|4p-sDN_x!eoZ4>TLSlhYlZsbEj$0muk7-Yz!j}5UaLEP$`$8>IUev zEs=S{64{H7u^r#?sx;bx91wwbT+{n}jm7s#4l~?tvf6%62$85K_Z=1APr;?KH1=pG zVa4~n29rUbW+0&BMdn*P;H$#o3~bLY9E27CdY|OtTU5U&zsT2`Ztvm;Li#YleNlrA z^kiNC=Eh@gLq(F}WDY@5W_Pymy?V=^UMfPKqNyRIZT^f)7jRWVulI6rgO>&w1eQUxfI% zqks^Drz9$sJnmKRmQ5SuIXY*KP#N8}H(2i-q6`+)m}M^yN_{|0tQk{NE0RzwlB*Bf ztPNjQ{8FYKax7$!Kq}1)$x{U-ixA)2@;3M52{}j9a_yGYB%|~m{5n1Z&K5E;ZjA<& z;#0)|Y`uJVss}!dDvcN*3PXFo5gKyLlhERkIUtU!Oz9KEW&H~ZW;22y-%K3O;C>_y zwa$;inTyV4?R(*<$$O4AUdxk-y71ijCRdiWnNceaNFk#g&d}z9qk^XEcdU{(D5O2_ z!L=$q?!aqGxx=+jmQk_$Z@UM7-Z;`)nQ?4>>(BBHiJgvI%GSxhNqd7&7b~)fEIVoF zkR&@%*%fbmdsZGTSE6jzrWK-pSY>s*DZKJzncX{_EA*Y$=Z>D9yOhsRNSSFo+g>i6 zPQn~7BSqv`j2M7daP-AAZE82~3&F1&eKGDcpVxbfXcjvp`N0^b7`8L{zl1T6>6}_j)U)9QW+BXF8O<@DE_w zXT=m-|7Dbf_VmDcF|v#>Pl~$1n~D`@o&wL^20b^y$2F$fev8Felq_01K zna6)`ay}D-ux;C0H9%(OlXsk5Nd`)=_{?hsAVA+4=tHhIryz5f3j00t--I3)y|^pz zy$f@^{6$7fVgyiUEl29F6yYvbv|c{L|KN|rWkFKH!wbA6tE%|PZ2cr?f*EP7wa4Xm zJ>$WfJQ|H}T1as~4jh(Zo+TA-UGTSbcq;n z`B7T>`08ze3%{W#^!m-WZFnv0)0Yeka*(X73c-7_khqKv_3mDB2AJx7sm1i#pDguN zcBctTkEJE7!+HsWriVopRY8RZu`%~^!h*OQhUngyafw(9D+}l-_;m}(d)em=3*-Ps1MgC(C`3y~MRb(BF-%5e zF}OQ0bF<*v?gU{jhK9rixoRiGmZ+{Z;L{^|iUM5=uLYJCzwA2EG?jmO;)t7jAV^(g zzD+zk(V8F z!Ko@H=Evt4p%xpg0gu)00fO}S?~yrQHwd(_v&s`tPlcb7jE!^h4Ws>Q8Eg(jRYT6+5VK-1@*3zwk?^vcS4U+y$3jWF~&{wcOa}g(>`EVak{yi?&rP`2cw5 z*&j2HYh5tIrB$DOYm7+?*M_ShDE7uguAUhDL*U}t8x2`-NxlZaM`Lo}5AYTqUO0Ta zy(U)2U79^C7C8_-)I%*3mmJH{88Hrr$IVhhCi6YU$R9xsoX^G1zjYv8V0|jnSN(#O zu62MF8yIKq8z(XMLFmF+AE15M{}!)H93N}9&llYSxQuRof;x;xL_5NS=#lWq?FG-s zA%OHO8o~Fo;9ld8iVsPc+WbKC9H))UHMNiw&xyoQ3B{+nP=aVj&u0w<;6&&v}P!*0{I#ubRirO*)I!r9zMCX9(!X|x zvmX~^VNd#rw0=H!DVsw{0P~fhn}m3<+YX8Yf2tkm2Jh&0AJ(~5fV_0J>S9pL=;0fbsO`pJ2=qk^1_`Mc zN_KYv5!Lon6(f6K9udP&#M9HZ5Q${T$CMrc#xK^X)j9RGoG?7w9-jz4yJmTPAtm6L zgwIDD8Y4Ko3CNoy74qhc+E6$r4Sp&Y0Vhvkcm7-#o{c1IL%{0Moi8f@b#ZwP-yJ?} z&#Z(yGUCw6ypj*inrY`e`RN|e&`sx6Q{#l6=GC0jZl?|>c<|gij1}^#AZ2Dm6g2rG z5){O)>Fa1pALgNP7rVvl#;4ID+;!}ae$WP&Wt=1x7{;p<+uk4ey*r~GtwLJDNaCO+ zfJim@dqq8`f=b;y^&+UyuVTudA!YVeps-|Gvu?Q~up#f=!)UlGh4#Sd+|1^2@Fn4K zy*_-y0QEh*L!h(+nxX7j#eW>t36d@(N<0+7`YoEku<>+F0G>uJjmUjc!;JLS0??+3}MT3HE>zG`;fl zUb5GQRY%)YpTU?CHY8&J8a)Y&1>-ibh$u3ij4ZTuZ&(xw=gBDHEgTFT%&}Ez^n&6a zo^ozuFd+;*9OH7-_>~!v_pw~g?c<5+2MK3f_!fFL2EXN|TF^D&Eep(n9uN_dp!PXp zCQzkG>9#Iawb*+wlTZ#Iwzc7n&trs1!k0uci4ZMZEmlpOu5U_GjAcAp6YI2teqbRC z7mWu_2^SmsX5Rv7T7DRv`{=(jdD4^WKOoqov`4&bJSd(8xa@dk!(b1I_d&whUj{c2N~P)=+7VGqx!>BxB_EqB z-DUa|kJz&uxcn{phX-rG^J1DLYk(@?w?kizn*p zZ>UsFTZyV-tXo2{+FF8=0@oTB=D09B>HQoC2SFF32FZ^&Cc zQ4M%0ee005D)s2TKU3p|L$N&=oQ2>xUKdM`W%NjXx*hCgPoDnrZ%EXm<$g5=pHYyw~unCLi6!19CB8i6s6CsTl(SHE1o8^1N6@L%+X)I7{gH%OW zDvZgHL9m`a8)b&HHqeoK0R#Q?(V4aHyR5Al{wZPol&lZe<<(q9l82`GvhpVp@T71$ z!rmrcpOTe~@WrF(=4NhT z15i>zVeN~maM&7xqMz2l_VFrN(6YKMA8hUZpqfEKC)iudslsL?5rdO%!rUO2nC3>U=!=5ZzO1BoZF$z+ z0(rFuTVv(yBe8#)$PI}%Hjn{m7%Z!$pyw}DTzWB)8IM8rRF9fT!wv3)(#tfjc?@vF zM4)u3W`B)i%`txS zUNL2~Ww>D19PsHLk?_p22PWD?1-+KIj}rZt_-=4SXILWTa}jnT$WubtTUo?~Hx9GF zOg}Ms8iz`km}UVzIr_TcSSrDe8N99uaFN}@3D~TWyn?|oPPE6Zg%d>|Ha;5|4Qw=e!QQG&j;)%r zn3oib=592K$IL47=E5;LL4d^ql>NqTC+yrO!D{@Br!jrXB?tv}q8M^k{YsbQS2BWB zv-8lyF;u`dMhkuvo=Ev>e8w ze;nKBdBrBp|NAQIA$jrV?k6b$?2>V2<&26P%vCmcwluIMQ8p95LTOFRW+DHxZIeLTMk6DSfZGY zcE}>Be;(}*F8RJ)c1C%lI<4jv=x^w>DE@@75}rllrI4qLhfNm$6w7W`%&Yp;o(c>S zJ71@%H$xDfcXA4v6$F?|bUfV|#^xqeEEV`k+O|9!_y!pEb!Hm_bX2OI(1{f;!` zm75Hh;4;T&ikwA^up#Bt2&M-tdVTYE5%E|SB_UR(2dAx{gxgHnRHvjqSsiE=t4!nu z;$dbm!FQc>ntLrYu{!ThO;BRtP^b&dfe+j6;BwrD{QauE?>+rAWeqAM8tv!V1m6jB zr@R&&vmK-p5F_x&mOokDz`W38zNi+E%HK(B4WoE?6`fuWBjWh6r9XGVc9$Ue!C7Jl z@lJj@T`@T7>gv2sR@`_IM>wq7);JsknTyy|6as6mtg|V8Cun~En&WzTML+z;O=#lB zPAs17E8)3Ia|Y8ui@j0<+vT9lQ*G+??xt8Q9DoKl!kvXi}fXycQ8=v zn0bQs2?Z17V;EEyOVX;>38J;m4baQ|>i){~-A7ksQ9B|jbo)yD9w;*I=fJ@x_qE&23Z`zhudm}Xh^c!AWAUAoL)oR))z1E)^KSUye<0RNAsODuaD_dX4&;fWD~SibqK)+ zy-sPF9(#r_fXgpY;sTRVzWuC1TJFRrUol~Ln`%^tbIh2;`a2SR%E-(XtP~A>Jyh2Y zN>b!@@FV5xkv$lemYCVa`>CzAgc?uE1h;$S4@eY-!4%2#z&yAnP`(q*>Uqt)k7D^m6vEqTksKy^3I>zj6a^aJ<>o*+zP0m31P_N^NJ0eaLD{= z2S^#|c^4zzuZ~KO5VOj0sg5+U${cC#r-V@pukv(2b7!cagn&or&=9ZfuBgO~|v{ zZ`U#^;9FbB9}m+EQy)G}Ntjw%%S*VTGIFUZ@Q$}3pG(wK?bp_7h8&(v5$@A|q`;{b zjovxH{C5B{$s_w^{WDk)!b=c+7 z12>Ti&PKGGV_==^C@0pHZ9Rg-l^LF)gCu>{UI+a~W{>h3SeyN4=ZEIRynm!-r+-hX z|Mhc=hRFe3zYga6A1TohjuC!vv|NEu{sW2?Xmpd3qG7qxvzr55nXPgu+`56-piePJ zdm4^Rw3#-==J)ChZ9SvuGo15=##V`^ca6psl#<~mex7W8Cg%zWG3kzhb;(2@X{ zOxzB#;3g*wRcMkK3M68Lb#h0gK7Qb%BBDv?jsa$k2ddlw=2HmfPWF(vc>C!S5!4HSfa%MLLBq9dP+alD}K`qb2MRbxhPZCj1}& z`2D+a>|X+5YsMV?Bga3j>j-|1*rx3q5d6Eczh|Lz2HP)z*lLL8{QgTnGzGlF9@O~~ z6ZlVMf49zWM*tMa&RnGIpQDn0T6czi&l(F1$pj0`|NdL~-<|Kb$`2H1bv#rX^1t;0 zGO+*LpheNT{&xQVX}#4CC{SxAY9qqGY6TwDko@XD*$D65s)*69GuagmH z%verLPX}D>jT!ZXAX$^Y8RuyHO4JVQspk~vikN37Tb|h$bb)nX`Y2$`)0l8$1A?$r zfzlu4-N?ESXlV( z7UL=85A4nk7gB=oZJ(FN%&e?UPOGk7V9vEa3}OE}n7dSwSskoZFBlwH&nP1H00fQ~ zu&9Ft`2!xs=8vv3wg%DYl+-_m%Y)|E2-!?I_IjYacda~?DIIh%0GUgFr>9iri(LWn z=ZKFx0aaOcS_)zTYW*+EvLyxDBpc}7=6@UHJ!GJ%@72Lu_5ByiT9M8W!x)5DSu=R+ z>?WsRd24@LXEQfHGo@_WYzpzz zjlJVFe2&AUyVBP{>;)=EWX(O5Wn=Tt<#62t$-HDS*abUmTwlHeRHE9H@aJ&n2P4-E zj<8e_u9(XsDECa{VYO{yz$kY>k+hPfy}KFVqLL^<&oHJ+v#OENAV;=vX5m7^LlemqUuIe-?&RmX9+At{JX$65F#KuCE41BPiv^0XAUr|Y3r|Z3df9r~<+p|aRYTAG( zZse&wu9Fg#UQ^bnwAUXHA1ojq19FZt-!47xiPxpO5vq2lV)88)aNdGl8I&g8V3<8# zKAHVCl@s_Uqg(W+%4>}#z@&j@&tsg0?t5MHt7}cwcgf=*obvaB9TxGea_OxTi2AIh z0ME-z|2P}h*Je)d^Rf8=XZVe9j?>NtdX8cPARa${TwYRO%x#I`G$!z6^;GewHcU1T zCj+>tNyV0FKFSiHnAjxWTr^lh@Mf;>Q6Bc^O*JQu5Mp$uesxbyP*W0})`pfZWx3B0EExt#)%x63SI zMFO8*@x&ey6v8|t@?ZdIQQp4V<5YiAFvAAAyKAp@-SCu@FZtTI;9aP<368~fd}l})VA`wv8h2q-TY$) zG#3|q!8_pK2)uHcdM_;zk=1{2BCv^W&wbpZ?w2mz_io29zd27Ie*z_74W(dus4%-*|5-%-AP2*H!g5VjigW3<=NBO(xCIH6 zhwS(=@^FNnfsnjd$!g@2aF+`~<@zgfwUBG)7BxW)^x{wx73S_xNC47m60pU>Ae+L)2f>GIC zt&K-wi$<7XF$S6ocBnb{MZpbU)d414G$G&><6|t~?|r%{#<5QUxTHm?zZY9U#>AM* znOla99Wf7qKR3fy;BJ}HpFD}4LV6_F5doH;QobAn&jyB{$bblLC04$)ZuJ1($dyQm z#UVSNav7{&2%A_~5)Y*QV9&)YTy>}^)H2z|MG9_H%5w@Qgk4JR`YwW63-53122?~U zIxLOK$RG8F+Qvrw*)2i2z}KH$khZ}?bDa*RPqK(h-J3Q}T7s(GON&7HC?gV53Gb=` zu=b`@sh~<2_5N&da1$;vF!73+?<^_mO!q7S%{oD*s6w?qkKVhpFQHuXLz4Io-(OT{ zDEN!3pgwqYJD)d*u~f-}fb$-&A0+j`!U22pma-AI{MTBA#KF5cMigUst9eNWTlqTK z;-W->j7Ujfrc*xa+@oi($Js_kI57D>>or6~kv$r5G?PQc#^W(xNr#afLUas>k<5h@ z?X(2;p(3`_O~g<>NaE)YUpkU0VwX6sDmiLiUCwBjJ|^*zwD9DtPVnDxK-}+dCdWm~ z9yMUa6UqAbCq(@`l84z(v|y?LUr;%k?zRE8t&u}CgAH#6_6A$vqytsSf#ch9t#|tV zm_NyY>`*&rOdZW9#wfMr$X2(vA5kqZL-AeN(TDgQz$dmYdiE29><`#c$Lb?9!ke!P zn+83z%NU0;2l}&YM%?kfYm8{O;=$y_aDA0>Njq|@KGll*E+~iS-`?ZxRA-F(m43sv zMN!Q(8k}YyNP^wan!_u-GcvgMM_!$iC*Q*)Hk|hJ|MA+f|C62?5t1vkB?ESoy7PF= zj5&M)*)w?&|uj zuJDB%n7p&w@v{xLqMnt@X+|3Y9dhIc;BDH9I}2+NtahuXhsw9emUrM~ZC3?7qTJ+d zL{3@X`ocw7t8te7edNBT>Q~m-EblwVPkO?wvuK44{*l(`n&P|#v!?PI1FnTwUv5T9 z+~sA=kj`z-y^6I6kGkJYd7Ujf6J?bNFh*akm7wkYSInW--KQE^^L({5_NSs|zuG{l zv8A{qGuf#Y&|^_cpfkqgD>23LP@@9NqU$>g1g7dS-flA;!2KDW5cTN&k#PA(sL%~c zN-45|1GMBZTx76Zx`0eZ_*XE~oik2SOpto&v3ME=oW9)AF75pL&9X&3%aJoGm6?6% zdE7;+6)hdxVqW+YM5$9_KuO!8}YG7EN_;$V*jZ2e84OJ7a24PazLalJufvy;$q#}y6 zQaaAJVzW^MyPy5#2+avFH%{Wghk>(kdeaNIJwSXGVqbGL3Ab;HYrlP4mOQpgKYLE~ zytK<-mHi?Dy1)R4A#vrb^75EIr-_)F3wip(RKA)Hp2dIX_?3nvpfT6% z)@S`Kaz-T~XOKK}zL$TQ^% zW<;>J+5@G0#emi1-r8*CQlyQ&HCphuS^OU(_Dq^V)kK3viSvfom9kz`iR08gj<|@L zTp^ehbsNL25VKt-;FzSu$Ul1!Skac%#S879SRmKmk(ah&nwM;yv>L#I6{``LyFF%S z{K4~MzZ20&*;Zsef&n7u?R?&|`UYFiYGKTc^Fy>W;(EGCB74Z(_#B11W@{atL5F}J z#h`#m=IJJ$$Ebb7zsV<=2D4J1SVtHzKI?WL-?jUMJ2?}nq$9whEtXh|{ZT(NE#H1O zF$)p@n+@vLGOR{#h@&3i&#w@Sfcr@SnI*Lde6F>aaQI4k-`_l^R|mCP8A)??LOVi} zJ3S-Bg%_K$&=Oq$cX}ixpqNkn$}^d5+`txSJhq!61V$ZF%o&X;O^jOICtM^y5pqkx zj~#S7mp9vA>wvz8-J3ZUixn;I%1vCfw)C;h{ucvv;AVHjQ2<|XKx2j5Nv5Dg*%`QN zZVLxQxC(9W@B{Kvy9w-vx|?toL>p|M(Bz-Kz3LA|jcth<$NhA*n)i^m%n8%3J0hEf z%y~eFt&ap_}6mrk&4&DiPBPe~R069ZY?Y@b3=ADY zV#6E%q8+|#ctECLP520z&HYsHSh1|&kX#gwli+HNlcra{K`f1;RNnmR0j15n=Qiey zPZ;SM?ynO!EeaSSB_$jdQ>OBRDa>5*zM;Vp6xyQonp`y}UmtTL*EVu`ye9O{+>*%d zl~+~0AkGXmc0l2Ilwno)+FXxHHhkQsTKNu-s9p{ZDyL7u`e}z`IxmEXg7V#6H8qPaY+-yn?B@!aBEx*zM4k9eq8Y2=5_RgRqXPS^=!#&Hwv@*T*gu)`!Sh8QfhS#q< z-G(UeaT^A6L&t%IB=u&A_43i~N6q@m2Sgu<>Zow zg3G|teRAMaYgd_acgrn$!DQc_1A~SJ_r0)FiT+?&n{QBFpW_NBF|qQJMg3Mm@09?Q zm|Qe}1nJ|TKe`5uO5XjO>(WCs?$Yf!q*e~|iHQd6X_X`FVxttbdzwqEDr?+odO*tM z^;*7MU%IqJiI)8Zw+JM)+-T^mLS0^v#D`SR!lVyTJg0i6kz^6FK=+Ah? zk$4pC_t55M_vLdeiv}Ft>7O7IXX;VUV^AXvcARKmjU0=^d3%EK>GHH=NZm+DF)Gk4 z>|WLg!>ET6&H^zme@1t8wE&GBbp7fq(@9=Co5WX>U~Dv0+Yw4ZUd8{M_@Z~90pRm( z_=G`c3kTuFHSc|>SLnt@C!@pKL0vB(dIEmX zjAVo9y>Io?Ph6evhMf3fhv)+Dms;h++F{Er%;+I)_~9R(Kce2=W%er7AUj#N)_)4C$bCNcUvylhq(lWGez4c^q2pKT zh6&`WZp%`0b6N6rXnhy~X-jtZKqD)f82A-^-}mGb>X~r1yZ3^qtT$deAVt%1?$Q6| z7Z_=3l68bURcw^eBFUBbqNZOk@`xXXI7#w4YeUyk4t4rd3bQ={`}d2qY!=k6Y9#bd zntde%bu#*~Quhd#JlzCBzQA)OH%dZA5ynbQVVf2HG>2QKnOtX5x2d#-oo=%OqXy4=)* z#u>)Y_?s3>)8l9Fx`VNZQR(Bc|%m=+Pq_myVr0ITDou(zMo{pi|uUwn&& zmFqkIY*Vgz7dbqXMv8hec~}4BNT?{n_3aN5CL8(=r|GDL7cN-ujDq#ueJ(D=*H&t> zBHU@Oevryk{-NPE69vAGUr(dQQYDlGc1m0b*G%-(>FAZX)J98D^q4x>CD9$^i03j67)Q+X5-ic2L|a zFsh(4r=rl4dJBfHU>Y(`w*e=2h-d5@f~*bHn2X(}>5oK?R<#0db%F_mia1AAs-m$` zH%6LQiXgkTVaTn03$v(kJ#=*9K{;%~Fo<4XE0WB)N4tW0OYd&Gr6{HF0g+yT+zw+S}-yiTs?s#m+O`{8UkFR25Sln{cetUUvb_EImO22?UY}FoY|h(f3#A zcto_a&x|56Vk|UIxxZo|RXU)WO9fhsjfKkLSWP ze#xmAf_K92Quth-DYgQon83hxGEls90zMa>PARDD>#X2d zYCMpF$xPP6S3*Vw?VvUgdQKEA6BOZ`jZnI~l_s2-AmPYp3nh*4JtF7r2Ma{O*%Ex@ zWi#e0I6OL*HO7;ER)Au7Z|#|NGZ&sPGtEW{4V($$NImy5c~^4+YaDu1JH`@-b$mfaz)|nb8!BtmC$Z7RK5TRfWI{FSMJ3^<@xA`!)Df4SraQ zm_f_+XswL95{Nvsx50pm*hmzcd~LQ%QO+4)E8$Jc?#>*}xG{IaQQY1zARkcyb)8TN z@D<{Ssk%2Ua{NGIKsIEMc#G~#<+Ux!+?n{(0XOcH{3{A#WtM88V@n{+>K)J14CFV> zFgM_=`mX5M9pHmye$7T~)o;hHtr#+c%gHs$wT^50VvtZ!CTpAfxszd5hzt{bxf^x{ct*SxFa?+Q`e z$7zzVZ)6VX?K-bryiZ+u)B4pyrd+|Jt&4qi6VGLAFF;i`rvpuFGIm`g`a8vWq3#Je8jS>T$RoU?V=LRz0%97M@!U)$1WS&YiI&muRV>A1tMH*O`Dy0l2Jmquqm8XFZNin z;r{5pnk=VsQ=Cp$s;KMgIlDZmBwsXci;=gOTq3Me8Vba?Q56EA?*Z-%%n3W1F(ep# zoQ>nv1mSbWTe5@OCzd~KbtrJ=RTPGPzpfT8=K}{tbUGt^>hs4=YPlo3!*Bn18r=^~ z?ONn9-FJWG4}W-G@R=2aKW;0_K49O!Hfvh_zF~HXNscLqO)gn5-#IeY$14l6p{tsL z!@xk1EFJ;j{I)5GV=j4;Y>ybjHaxPPTk!k+iGcOFzw}dsmb8?bK4EX!vshsT9Cru~ zgEc4%ns(FAJMrGg$$UypHBz#V>5qr?URgYJhrQ|<68>_FKiRSDOjNoBKLPH~tvc_! z)i&mQ+nhIN<%;gYFr>OmjaYNcF(Vb$!j$e2F{q@MYNtPI z9wa`xtdr?uTb6jf?epGmF$3Wd*QlMH%*FkYLL-)=XDfz%1V<*}WXf~MA)^xJ8 zHbiv^mCa#WiFC>*!$T4GJ|Jm4qY@)-F|j;4Y@?zsi+oHkxmbAVu#o_V_VTrsiVZ{b0Hb(JL0V1x!;H=hzEKUF#4(L^7G|7M_4b5=B zc}saJtZZQ9BO;)O4b#?=<}&16q#uw>Z>)N>9ULp~(?bjlOSs9WKHa>vuQNqMI+^m? zm6IQ}FuwE?g3Xr1yqYZ$Ma5Kq(wWz!i!1?hlov<2mp?q}xg_}}dq$B_L~fmrkw|rm z?c4y6WDn4Oo?YKD+&!UQtaJn>F*^O-9hDHbR{TzggRg`(HKl!|nsGgw-uwe(daZkc z)EkvIx*=T&_B#BBU*E8$(|n*6Uu^k5bae*0H%$q{lz+cGXqFIt?JT;2S95?v>%4%_ z8xL#;C1H6f$=J?D;RmKrZZ9=+f=fBP?&JpW&*6>^g{NCik#E}{KkvAxww}aXzw1o6 z(6qYJtjOW^V^>|~vd>}{7sPGLwM{n+BYO9X>P(}vBdx+`MbTYhQ@D(=YvBVucpx;V zx+x70X6hWO*#DqGtUHQ4i_1>95Z=sXb`J+7M^MtSp|2f=xAz*g~Y#tVmDBtFS4 zRO6=`J=o@U$jXSMJv?&XG(T>pwxXCDa;UcA!Hf^fS%_p2Q69?0UiV3t+kI~UujaPQ zK-qLShM^i>xfDaQfDT2Pc?nn#GutEj4Bu^jXPaM=WxFtUjXIApbRltg-u?KLC9Xnf zJv{|(!NN+yAQ934^xhQP%TPqNr{###kkR+@qbD+Vas%3q;nnIt*jpOqdhXP>F-lqk za2!OMP%9hWtws(UrMro~pBv+>l)er?X!~{BQ-%~ak#K=ai#WVeW+)9aICbp;V~T724mz`&O-jwwV1lw#ILS)uGKv1S-Mzfx8Oh zd{@-;m2L9qvQ*;P%`WV5I3@LGBZ=Am_JPz>Ii(}Xzoc%X2$R_aC}RQD;Mp<|p$k3} zr(h}@$Ice&QIxl(xU+FKGHX67@_(qP*=0UXR0+aS?mTJJHEvS4%?ir?uti}(@+YVR zi?9Anm>l>6hr*nQ8Aq8Gp|y)yJkpfGsS}M$;>K#9vpv1v6&?$Ar6)M|+P(QFws1rL z%!Ne#Y31EQW8Img^hnvKF3jXz5t%Rbt?hB~*4@njYLc;Ufl)v|Q9%m(>3lBjogk^HWYf z*2b-8w^R3rI8JqXSN{s1ROPy_PwGCDIn2o{+mA#*?*&$}bwpP+Kf@z0X$M5Lr@e_x z2{NPhIhgjDpbi{pezJ1UfL_jo1NOE;F}naN9t(;u7juMthH5m5e&I2n8%SPcvJd#- zm`Y-LwCj8%E#7_%O!^c$tF1tCHlSpmKA3o+&6u{I3X!Bz4p%GC;QK^JmrJR8r=>6z ziA$}~S=d>a^esMAa=sfyJm)H?I_ov~hsAs$sQ?{_@$9ed4&9HC`PKlYAQ?fUE9)n~ zWa;%#GTYWbAlDv~PuGAjV;pc?R{yOG^;K~sU_b!3Jtjb!#!GFXkAVPhvKTk_*7ABU z*|M;`X${l=rQ$}8MjR0et<_-rn2jGGo=w-hf3az>tNY=Lei-k2?gH+hvazVoPoa3D z&xT-kC;F|zdk^moZK{PVTv0CRqPWWg9thD9&a=ysKji~fWe)u@uI7-cof5~JA;Spg z8Z%IWfq|$-qPl(6JT4^Yl0SktdCxw+*zgb=UN3M$L|w;7VXbAv)Z>z4Wh(QP?4W-b zng-SafaEHSbSyq83+WB7%Bq*4qnqE`UK8RH&cg>lmGf>!858S}aR4JC(1%MR#~>}B z_i1)a;|n_$QA=mpNx}_Yh3Nv26|+1-9S2YM6D}#w{R9-BjRAe{;FzPT(Z4XU&@1 zSM(_XLefVl=4K^v5FPG6PH_z{5BFy}HkTL89>!(ZQ{h&T0i%9ruNo!sRUH=Q=D0*F zG5=~B%SYo*CTNR(PwuF+UtX3U**ZHGxnnvZM3X4ww`HXq#Q>d~T2hylFlq~wm4Pi` zwO4zWHkJ(sA(0W0{Xe{WaWZc{Ehi#S@Km~fy ztXQ1;#fY2MOkP*NoF_6G;Lo3|cQi2UcI;Zo8imdGd-#zouzH8D;hyGdIMN!5& zaEu@hGudw0E+@g5%7g3gA4sL21EJi)m4;q{Td`*xcC6gw6^r3~sonF)Q!?X~I{d1K zI2`Y&R%tc@zsDj|7(SiXW>-M2H-N-eN}UklljQ9%?crIy9ikP;q#Q(fuQ(kd6k!El zlqPooN8^n$GUs+@vtk}9BH2cJ%rk-QjD=f_AWWalIL9(G8!%cg!(5%_VA|RUw?8`6 zIWzBw>(l`o{t=6ORqc^`W5_z_RDCdyc9deMrUw25Vt`UZTy)xs(2Jz9G3O>S6X^(I&I+kM3!a zq3!S9xxWyhwd-}?>Xw8T4ZM%!%6d3B;-`g;o7tOF7L~GN_}YB=@r7q?#SUhq8g$m@ z(BU`m0$Tmu)iOM>Y(j5I;ek3J8@)%$Aha?fe`tiRHyS{u=GriqVo@Grc(aYD)xZFn zw~_EVnQ)?L(d9qpZS>xxr=)5N`B@thr=sFy@N?rfQg~eUBJHf75y`13N>%w7XMKBe z*}iKwZe@ep^jNdC#ytk+qv+ODVayW`<`&*iw>Q?uD89@BPL%H2)|A@$29rqX^}BnA z5cWl~Q1-=g!=&>zUFSftvV7tXcXHq1xB86f^_{LXQ;eQ}PGh*QDmU+U`rogb*JbE{ zu*%a5!O%eIUh)NK^7uVHIiz1v+kYuem=;>JaiJ;SyBEXxg*AZ=B473T#85 zb=Ja3)n5KOjn>^ZR?z)4ziX?(MKbQBJ0fS@gvTX8zlH$eSRlB>^{`hHV|2^{e%EVz zf1z-=B}6{b0D?2hDJc&{0V|%5S7Fqa!K2QL$UBdrh7mXwz)(LptXS9-b#EN2sr3C( zPFtckoWs@+gBWM8U+FmH{vNyE8d|4vN}gR`8cnhuH<7ec(69O+Hn&*0qAkE#caN+| zwX6=mQWBv zt4MRaD4U4_7^_JvWKE{<12CHEC2DE}`!t970sRYls?@jIBMgc9+p!navEAlvA^hEY z?rKYStVvVYG4K`1fpAiP27xlMYdce_DOAhVm~|iLv1idc&8~_d#8ZMrWIo};`92V! zM^X~}*=or{b?7wXb;w}pGT`=dMBd>)2R&*9od;&g%ux>L#p7Ob#!A$VVHaDZ(BpRN zu+b_tLW7SYHNqDGA;n>QB#3wMKOg1#y7Z9}Z^^!a6 zQ+%@1_)M$mrdAQ#$c_yb2dn5EzX>U7d^Vehbe4>XG2oeS^9dG=Kg5Ucb^QnCgN9&l zjyr9>CRXamQPBb=vs;IFTl`dLwkgyd@=K5M3HX!T)qQ(eC1|v`Qngs4qUB^uVs|t} z7=g(Y)J`6t?}6&8;z#3-!0g=ySBG{!v?Hf8Bu>475;P+obcKL`)!eM6ZNfmJidWy% zI6CPOD`RaQD{)hc5KirJ33h|VaAPJ9HH+J%aaB+qbC#C3QVP?d8uC>lt15``FHw&Wt#CxU0)Ff@)*pzVl-J0;gsu{qBMbA6+S0;#+2g1^^ zj6EzKP?V9f6gn1lV?%0kATA#40uSYxk%3sP%{7#{P5i^|Krb+1BXLY|hz~=LqyNs9k1Hr6T*&6cKZ(2I17~yHY z$_Mm1y$I)DH>fSbucg%A5ct1oWj)znmoW#@>_L!s6hPju4+DYF=pG5OxchkXj9=G0JtHD;4ew|WRZ{M( z^!{&}`Um-y?x$D}cbegs7)KHy8X6k%+S-v)$#mO%pU-k~ijiNGtMrzs@E2Jdj{C*r zwzal?L@=BF{2Nwx!vEr8+oD;L`~O?x|3R&JGQPEGK3;(t-2Wd|{P#i5>t9&7cX;di{|UjpApSyd zA8QWc{z;%<Xq}I`4}o`!y`y27fu;KhXOBH|1iF@U;7?@%)qic>m(m@h#~>|3M%R_P3 zYw|ji{C_ER-J!;gBtYb{8Nb5A!;MIwfz{7I?EmF_TCm@@Ly2IF^+}o< z8;RK2pDgK8!O=}FQW2GERx65MR-(H z)J1hdWb}R$0q2|G~yiOn=R2 zOm_5tngu+`U%t%KWL+6;a@ROpRHRa`n?2K_{P$h{k3V%glTPJt*sObefa7q!(N3^5 z^;J}%zxf9nrevcB#F@%^`TriXwo}})@P{HM3hEO=912#I+gi20+-jKzH~!u;;>Oqr z3kz&3CfWb141JX2@8^vc%XbzkDJi=*D`>EYknWK0RP1HSPtTtk?VUQ2%2kjd5KoXM zj4NOXc-*0chQwQ-12w2_SPfWqc16jp>Jm9tLWNe~v~!Ub>}_qDX6UrPrKG00NpJ{t zCL|#ThrTHIc{n@Qrr1Gta6p|nfB2{nb2M~>a18AR+U*LqxoP?e^@KsI?1}ySy9jio z1~BctvMK7jLC8QYAZ?f$OV_1z3X-_Z$c{)8#3LfstLTaNkNYb$lXhKFXEfKl#`SVs z;jk?$&w1$KCIC0qTY48zw5bW`9t6CFa20Px*i%rKW*Sdp28Rm45}eK7g^3zlK7si3K=Zy6Pw zA(_}?2x*+)BLY?x&~|B8+A`2_<1< z#s|mIS@nPBlGh#Tpr0r8aaF8*5mQoHBJ9XO7Cu#iJU1p zRVa22p8QGUg7KA3h<9HI=-T;E)NKK8aUT$U=jJrVG7xN!_&qhRYZXbq%c*NV(uk>D z$}DRun-h#NBC~W4i8+ecyW{(i9J5|^_S1|cH7|d*gk$V&H%5KaX{Imk z_L7i=Uev>=VcKYu{`moKb9ltw1>AXqn0=JX0eZnuubgQvybl0#M$5-<{`{g6C;2~q zzb=-OsZtM&9FxcnlNO}Je&zoCMum&$b)=t~`B#0(OXc?uNOkcjghwJ;AKV{U7at}` zDfg``352HOn151}rCpn|kfcxVk&i|A?)ODM3v#$wsVd>J<9s8oNQ~C8V8CUFWpVlZ zeep8YWF_5ye={mD?(QSfTfrqm?-uP~FSYI0R}mzr$Eqj@9qq%t@V^jDqc3EcsX+HR z4*EEv(4xCDC0a?$&{9qCDwY&+{{+lf|wx8HYCKBfyQl5$xb=DE}(tK!;N$5hI>0o7Dj zb2YB}&SfIipj!i%50gCB~YG%{5DWu<_(d1Fe$gBtE?G9-DiO%xlVS$(-U{A|d04#P(HDM!Ei zrcdj$vRholPIwz%Z~WzXtPx+_&w!!>Lbv00Q$&;c!t!K9@bN>-nlcR% zRegsAEp8+}t-K3{Te+sW`rT4bLMUx%;z`1>~eCIWY#c*a5ohvMsSd_@vM`nqc zi_mDsGK2z)p6&%0N+ybD>R;r0a)beW0$RC9O~^_IR@FI9Nd1`_&W1t&L+Y&kL-_oX zBC?+tqXEfo(}O(S!kOz(`EqEzB^CI8knqm-PYn)kA|(bU-jFpwli}c;0&g{7~X_%cQ2W3NK z0U!)MRBGW(Dvzx*UgbPzkzyvJ-teuRNbllce##D>^KejpFXE6EBJs`7#O@wgLHU2m z`6eK2i(EE~EM2>~m?4?s`UspkN{i-zTQh>uA1VO&d5=k5k7!UUd%PH1Rvnis7D}0E zF@sy*r+sg)RxJ5R+`anahk{w6Uc7o&yS1{-5y14;YlzC1%MUR^5?+gl0tSB?@m z&*2^i*(;G}m;w{f0tCdfH=rGLvQ8YYej$mHiTSI(+{%bdEXV5*>#P)1bPXq%e-zVgO!-gR zJ@ykdigG7Y zxF~E{XOM#sySSC9!j;Kbd0ZZbC~R|#)`ymq6r>I$#j3M^QlF%kY74747a9>ram_l` zBCwU<#;tD>F6_iMHXy?8q0tAsWYDdK_O|wjOHFob$99^P7q}1ub8xaCFV`tDY&jvS zpev`0AazU-K}SZ_=+ZEn7!$FW69EOhb|t!LI(K1=CGVb16L=*?0I;AOFv{-85NM}?IG9_1FI)3&2wikaJm46x(KeV zGyR~Bf61A*7q74|O@E096Vl2-&HyUKpLN5Q!^3Z6A9Y3s(4G=U?5!}84#f{|R?D53 z;=YT_atO)5Qkm7za#J zM#6HePT`5-q0dzz2hHc}&7-Y53x)qfp}=CniYWRq=c1n?5$Nw^U)ccfrJGi?g&QKt z?CZ{!YJyk|s+@6TK|-IyEyNvS-|7jPy|fYA4V1nj0?Ylf=<3Onc8_P51E-$MNgCn( z>?FP2RY1XK{VUf!uhAPT8u0yUSEZ3K`u3HEEM#zGvs<^NB#?rpOblFbcLsN-4JRk8mawLQ@iTudEfO# z)o&$<=?)MhgNv7n(RCmuUw9(oTXBR*z(-Ff9vUr)T*&_tZQ-q->M4%ow1Kq^171Xy zB-fS0=+&!E_owu9TU))su7`tZv=;_o;qY}Anxf@0`swv>Q-AqRLHsK+o7eU6z0$N1 zO#xA6eZ1dLdLQBq0d4Y$RNd4J5@6X_66c=DO1G??wVsND|N9j!+3jo6WL*zj@BONv zRl*T9d$_VC)#ke=6K>l-p&`y#G!QWAG`zLuspw`JJ@n1vdxDGI56r=T6T}iY0X|O9 z*4H@S=;>RrryZ+p_H>a0wxJWekkZdMfbB}xm5daLqynr5o9u;k``$t2Ks0S=PWqRj* z-kU3^{_;JFk>STMNzvYGhcjL+5w6S|*>Xgt7Un+PpZq9D!1ZP*^piK(f~`LVmTofJ z)}Rn4LRtW5IK1!VVK<98YAd0g=`J_#R~@t}1xbZDMGrOz&Jr;3F77-##oNjw4t?|{ z?Ch<%6%j62WA`mQ!|4R!X#97Z1I20?|Ed6Z=ee?9Xk0&z_0`f|S(y#Bm#AIAev1Sv zUMNDVzM@8cF+^-sob3EUg0aJBJZQM>+1@oE-^!3! zMqB1JUv!1m`d?-9f{7?7fE?gR!>RZ6*M2OxHNQT|^V$26drJ-`MRsCy{BcP?X>gWz z@6mi(Xo@fX7RmMn^C?HMF?kRB=dDwToveg?5JenMU;?4jLGSjsMT|jXTi>|FzGzci zM8PM%B#7X@I6b zxN2TWw5tS#%A@FSIcIltrMX8`^L%V|Jw~~?W@GVMr4^niQEUS`r8?xi&Cp#5pvPWoZvg+?1z+cTD5VhaY zwcw0p!PTcZLprl~)EIQBJK^5SYroLH84lTay$b=)ouHY!s+N<6Pi=@&bJZ27u3`#U`QN{F_Yhcg{sV^4EXhj z+=0}Js$Se?(fg=~O3<>c{zk9v>bfpl~y47!}ao!g;Y|LNV(B#v~;^Nq}?-++2_Jj_` zrxEw{A5b9D=Bh>KtwLm=ftx)VlsYyw=f50||+;=b9ijk}r>OpaZA0A81q zO#!c;mjKnDbcwnbzmqE>?^o`cv}{_ZD+ea(X{JZUbtfIv$=}?wu=@QZ(t;k@Q~9Cl zp4wjuN^?a|us#d$&1tiMvghO7RpAivS=P(SA!|!^RMh7d31zB|z0*9)NUOFq<6P-f zD3b;Az#Nssxb0<^rkStkRwzDDThtEVmj1tmfqP&3he8 zs(;uA*2n)|nwtnu$j&}=$vd^Y>1U{k%hRl)q+%EylBO$UyUa7 zn5Gtdk!!WcnrOH#XL}iBf`_a4YLsXRM`(UI1v@LLc3ap#Kdmj`d(rj&u+|_U74|Nb zo_AW>hG{Uiwnzp$$wM4j6zMa3N0##{`N17YeuA+Yeg=6DsIz6cYe50YI_l9YyCv;Uiw`BRg2KD^x1Ix9zf0aF=)z|^zeGf zHvG=D87GCNP0zOJQ78=uAo=`=CvTrEVE+()Jj<#Z!Pa*&aQtQupS$-y{@&2JaALa& z_E%#`O2+dcZGUIUABLe`o&%^JK?u5oHA=-TgIGt#fObl+?2CRF2!dbVfFMX9gzKRw zn0GDI8~;?^+X1Y7yaywk-yu%b8?vBAdw;r)u?$Q|7+V3wV;16bYCf3zSt<6xm3}(M zm+LZ6yBj$!RFZc-AS3}*Y(Yh`-gi$RaM0SGPA(VcUm|}DT9((AL$6KiPEKohdY)$9 zHiTX&JkLjYxVzZalz$o&8B3(pyju7FnNKgue%^}67-#BPg)AES^D_5b_1b(k4dTB2 zdv#t;se9Po-OEw?E@6=8pu5U(@XNUpZ#K5aXJ*mkD23{4p{kPxv=dx2HOdVCkWkKG zNk7Ka7x5HhaJcLTHhyb16=@gU;OV&Mj1LTzq9%$vK~nPJ?LRNLj3}09X^2E8Dcp5w z&N^4%8>Ngh-c+NPYF(|L-*qY7yv9y-nM{t4e-`j;CSmdrmWIQ^XRdU5)ps3>eR5l% zzT}j7nz?s@h)SdM*qLrIa&k&!%+X&U>4;X}o9`Q{Zy2_EOmH|GR_N&QuAE<6TUpgQ z93tDlWDro-O)-<)Z}haO)ev_x*_mS)h+97*$%?&;H2s`OC8KdXwQOS+po?X3T_ZV2 z+LfDOJn0ihSZ?$EzK zH=C2HKv-Xzi*cDGNo($`!VMvrpmNPi zIJq>rt%=X78BbrkJ~)wXYqzkm2!SQvFGP2ma4hn4NjZ|MS?>6}YgF-Un*cS4FLKvc zJs`s)ixcB@)}X%}4Dxw4bTr`b5b5dgT8`g$aO`s2My)M)vru;!-&yK%_xE8n?813E z4BkUcB`c#wALjD-d}{2oiB{up=l}K{1Oek1=zSs87z=dKbsLG28s&Kt{p8+f*XI0M zjqB0EJT7T=BGojFBW1$jx1|rYh}7apW)poflZ^At=6L08;E_`i+VL6JjZQEx_RsK4 z?hfVj*M*T>6(*Z(<}L%y6skFs+0wW)rkhv3jOv5Ag?c%x`@`jz$VF3-CbQdeS!*PY zO0ys>6{AX?(?65;>b>Zba~k<3&+`J-WEF+ZN5rWQX2^HyOzSK{bah9y>VR|nS1s!F z%cOkIN3&XFhxs6PQCXjSbjTf~vp~fmXe7ORdu5pJ0^ZAvj@~`UVZR`olt#i> z60!YcBbgjYHBZjdb|d%~!(g*%8c7)-|2BwMyDLndozzEihu-<y(;7h5&S#bRn^C ztK@83YqZjNFRH2s&O~-pC{aHKWrW{+JHAe@HW>-N-qO_V_QHO1MUv|KYJA?3Oa7e- zAxz;Ma7wzkG3k@Bzv2bhZU|O=@lkQ{Q1h= z4gPI>(Rw%LmAA~V{f=-%j#(W9BXt6rPPP5i*z)zipWNh%@7ICy@7Saq)_k@xsEh z=){b!_+?)DUW>YeyiB6eZ7O9+$KN9Z{px+q&8Hq^@e3&Exa%)VCsxVb{LKo6?pPcq zfgD?59at8;-ef%(|W89GA9lJb`G#B4u*Jz3LS zl<^~5P^xfu2k8j`+BKc54M*oqd&N^g=21w9)4C%*Lyt zoxn}n;aXoDv8KZ{KX|K7*y+WBds#US z6XL8Jm=(0}$gGQbrOSX53iapU;3{{Ba^XoUiQ*`uUyw6Lb_{8K+YM2hNK5aCGI?_M zQ(#HWyGaNisUu}>>ew86YAGlU6*Wrp(03%s0x2{~QIxY@ZNd_Mu9(d%*bK;EEu*a$AA;kumr7+8jX>BIA-qDN2qvaFJ%26&C=G_Q)d zYu7__>>1~Y>SX2ZIX{zi_sW|S71j|;R|~dkV(tevar(-@cbXW|8&9UM=WoWgyjGyZ z>CRoO(^3&rZ#EOHzwO!xTyak^eSLE`LY+{B=1BLu{%nt*cY6@)cbBkhKzN5X5B;>i zTYM?VB9Y6&aVMfBwVO>6vVzIo3WaV4uh^6|&Q`A(oBXw?yjk#u0UfRN1qD5wiIbV3 zC@#X^-d-jGvY-s-}s-huE8IX<*uorX_g3C7xIlKKa=#z5unt>~=ut*-Vt9x%a+ zR0kHh_gb;Q%`x2bfkxWUtfczsz=?DZE;Wf-V!;G7H5TDpy!rkZ_0y}7N|Z(+!A*3J z5`tIS>@13$rNpsmF#2_gXMl|DxU=WU1MPkpnW*I^WO$^oZPE*k59RfwXv^i}J&ohR zM#G-2gGBKDg)=BxMqv{+jXh7@j)>T|1uQ9grY)7s>8~=c7~E;LT|y=)54hd57!Kw2 z(y7}EphZv$PDk<K9?L0xjXwjqI}HHZ^q7aZ69~WcD1vsg&?0Iz~BPuI28qSdP#z za6`|6^30;aQ6hNeMw=~ABAwMYGMG)9>ZP)&%qfpo30B1RW8ZqL&f|+U_suU#`a5+dVhbj?x z8^N_`>F+{1eH%2e!iyY}^bmLc!$n2#ZD3MIhC71}^3A5bA6UJwr1)!7;{1 zdfOWmN7K?leKqGYiqVzHcRLWNFFXSXou_Q zv@Z`xE|k85DR)1!W##^oHhq5e830r_gkWBcC+##_c>oZR>p5CDtF2Z7zUEfPvfiV!Z-*OoklKHff3;KC|Pfeu*UxRDRcMz0fzQ?0gz2{Hs%0)7{m;`_b0Ri z4iNN-$@8v@A>;sjh#vqszWuY9>W^CgyD`ZU?7?h2B0v6>F!W)Gu1_%2Uw?!(TiNt5 zN1E?&aQ*G!Hyy1ShcIwPg*4}nFkq4?<&f>A$e3?Y^LG$UVp$+~^l)0_k1+QwW=Mrq z0opEqE(5+t>U(II1XTl}uk|C$@stJP(`wE=b>?#s`#n6jr8F_iSoz-$z^qnb5=#H4 d{eO-2ZS-x%kuzDex&{{J1JN`_. + or clone this repository, install the fuel plugin builder with the + following command + + :: + + pip install fuel-plugin-builder + + and then build the plugin using the following command: + + :: + + cd fuel-plugin-solidfire-cinder; fpb --build ./ #. Copy the plugin to an already installed Fuel Master node. If you do not have the Fuel Master node yet, follow the instructions from the @@ -96,7 +125,7 @@ SolidFire Cinder plugin installation :: - # scp fuel-plugin-solidfire-cinder-1.1-1.1.1-1.noarch.rpm \ + # scp fuel-plugin-solidfire-cinder-2.0-2.0.0-1.noarch.rpm \ root@::/tmp #. Log into the Fuel Master node and install the plugin: @@ -104,28 +133,28 @@ SolidFire Cinder plugin installation :: # cd /tmp - # fuel plugins --install /tmp/fuel-plugin-solidfire-cinder-1.1-1.1.1-1.noarch.rpm + # fuel plugins --install /tmp/fuel-plugin-solidfire-cinder-2.0-2.0.0-1.noarch.rpm ... # fuel plugins list id | name | version | package_version ---|------------------------------|---------|---------------- - 1 | fuel-plugin-solidfire-cinder | 1.1.1 | 2.0.0 + 1 | fuel-plugin-solidfire-cinder | 2.0.0 | 4.0.0 SolidFire Cinder plugin configuration ------------------------------------- #. After plugin is installed, create a new OpenStack environment following - `the instructions `_. + `the instructions `_. #. Configure your environment following - `the official Mirantis OpenStack documentation `_. + `the official Mirantis OpenStack documentation `_. -#. Open the *Settings tab* of the Fuel web UI and scroll down the page and select - 'Fuel plugin to enable SolidFire driver in Cinder.' on the left. +#. Open the *Storage tab* of the Fuel web UI and scroll down the page to + 'Fuel plugin to enable SolidFire in Cinder.' #. Select the Fuel plugin checkbox to enable SolidFire Cinder plugin for Fuel: - .. image:: figures/cinder-solidfire-plugin-1.1.0.png + .. image:: figures/cinder-solidfire-plugin-2.0.0.png :width: 100% #. The default configuration is that the SolidFire configuration stanza is a self contained stanza @@ -133,11 +162,6 @@ SolidFire Cinder plugin configuration section to enable the SolidFire Stanza. This option allows for multiple backends to be configured and configures Cinder to place the proper routing information into the database. -#. If you would like the SolidFire configuration in the 'default' section of the configuration file - (not recommended) uncheck the 'Multibackend Enabled' box. In this case, Cinder does not place routing - information in the database, and if in the future multibackends are required, all rows in the database - need to have routing information added using the cinder-manage tool. - #. Enter the Cluster Admin account information (account and password) and the IP address of the Management Virtual IP (MVIP) of the SolidFire Cluster. @@ -152,16 +176,13 @@ SolidFire Cinder plugin configuration cluster and the cached images will be contained within this account. The account will be prefixed with the 'SF account prefix' if defined. -#. 'Emulate 512 block size' will cause the driver to create volumes with 512 byte blocks enabled. Otherwise - 4096 byte blocksize will be used. - #. 'SF account prefix' will prefix all accounts on the SolidFire cluster with the defined prefix. The prefix is useful (but not required) when multiple OpenStack instances access the same SolidFire cluster such that each instance can quickly identify accounts that belong to that instance. NOTE: Accounts on SolidFire are named using the Project/Tenant ID, optionally prefixed as defined here. #. Once configuration is done, you can run - `network verification `_ check and `deploy the environment `_. + `network verification `_ check and `deploy the environment `_. User Guide @@ -176,8 +197,11 @@ cinder-volume process log file with the 'solidfire' title. Known issues ============ -Due to Fuels lack of support for multiple cinder backends, only a single storage vendor backend may be automatically -configure within Fuel at this time. If you need to support multiple vendors, hand editing of the cinder.conf is required. +Due to Fuels lack of support for multiple cinder backends, only plugins +designed to reconfigure the base storage and detect other backend plugins +will work automatically. The SolidFire plugin will reconfigure the default +storage and detect the NetApp plugin. If you need to support other vendors, +hand editing of the cinder.conf is required. Release Notes ============= @@ -189,6 +213,8 @@ Release Notes * Version 01.001.1 adds automated install of the open-iscsi package which is required by SolidFire, but not installed by Fuel if Ceph is selected in the starting wizzard. Supports Fuel 7.x. +* Version 02.00.0 refactors the code to support Fuel 8.0 + Troubleshooting =============== diff --git a/environment_config.yaml b/environment_config.yaml index 05aa635..3c1ac35 100644 --- a/environment_config.yaml +++ b/environment_config.yaml @@ -1,10 +1,6 @@ attributes: - multibackend: - value: true - label: 'Multibackend enabled' - description: 'SolidFire will be used in a Multibackend env.' - weight: 10 - type: "checkbox" + metadata: + group: 'storage' solidfire_mvip: value: '' label: 'Cluster MVIP (san_ip)' @@ -44,19 +40,6 @@ attributes: description: 'SolidFire account to use to hold the template cache.' weight: 52 type: "text" - solidfire_emulate_512: - value: "true" - values: - - data: "true" - label: "True" - description: "Enables 512 byte emulation on volumes during creation." - - data: "false" - label: "False" - description: "Disables 512 byte emulation and uses the native 4096 byte block size." - label: "SolidFire Emulate 512 block size" - description: 'Enable/Disable 512 byte block size emulation (typically left enabled).' - weight: 60 - type: "radio" solidfire_account_prefix: value: '' label: 'SF account prefix' diff --git a/metadata.yaml b/metadata.yaml index bdad43e..f4d792e 100644 --- a/metadata.yaml +++ b/metadata.yaml @@ -1,19 +1,21 @@ -name: fuel-plugin-solidfire-cinder -title: Fuel plugin to enable SolidFire driver in Cinder -version: '1.1.1' +name: cinder_solidfire +title: Fuel plugin for SolidFire in Cinder +version: '2.0.0' description: Enables the SolidFire driver in Cinder -fuel_version: ['7.0'] +fuel_version: ['8.0'] licenses: ['Apache License Version 2.0'] -authors: [ 'Ed Balduf ', 'John Griffith '] +authors: ['Ed Balduf '] homepage: 'https://github.com/stackforge/fuel-plugin-solidfire-cinder' + groups: ['storage::cinder'] +is_hotpluggable: true releases: - os: ubuntu - version: 2015.1-7.0 - mode: ['ha', 'multinode'] + version: liberty-8.0 + mode: ['ha'] deployment_scripts_path: deployment_scripts/ repository_path: repositories/ubuntu # Version of plugin package -package_version: '2.0.0' +package_version: '4.0.0' diff --git a/tasks.yaml b/tasks.yaml deleted file mode 100644 index 31bc6a1..0000000 --- a/tasks.yaml +++ /dev/null @@ -1,11 +0,0 @@ -# This tasks will be applied on controller nodes, -# here you can also specify several roles, for example -# ['cinder', 'compute'] will be applied only on -# cinder and compute nodes -- role: ['primary-controller', 'controller'] - stage: post_deployment/6101 - type: puppet - parameters: - puppet_manifest: puppet/manifests/controller.pp - puppet_modules: puppet/modules:/etc/puppet/modules - timeout: 360