From 8876b285ce7538d2e4a54533cbdf6202b13588c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Salvador=20P=C3=A9rez=20Garc=C3=ADa?= Date: Wed, 25 Jul 2018 13:28:44 +0200 Subject: [PATCH 1/2] Fixes #229 Adds email feature for proposals dashboard --- app/assets/stylesheets/application.scss | 1 + app/assets/stylesheets/dashboard_mailer.scss | 65 +++++++++++++++++++ .../stylesheets/dashboard_mailer_preview.scss | 64 ++++++++++++++++++ app/controllers/admin/settings_controller.rb | 19 ++++-- .../dashboard/mailing_controller.rb | 16 +++++ app/helpers/proposals_dashboard_helper.rb | 10 ++- app/mailers/dashboard/mailer.rb | 8 +++ app/models/abilities/common.rb | 3 + app/views/admin/settings/_proposals.html.erb | 37 ++++++++++- .../dashboard/_mailing_resource.html.erb | 26 ++++++++ app/views/dashboard/_menu.html.erb | 10 +++ app/views/dashboard/_resources.html.erb | 1 + app/views/dashboard/mailer/forward.html.erb | 18 +++++ .../mailing/_mailing_options.html.erb | 13 ++++ app/views/dashboard/mailing/index.html.erb | 26 ++++++++ app/views/dashboard/mailing/new.html.erb | 8 +++ app/views/dashboard/polls/index.html.erb | 12 ++-- app/views/layouts/dashboard/mailer.html.erb | 10 +++ config/environments/development.rb | 1 + config/initializers/assets.rb | 1 + config/locales/en/general.yml | 42 ++++++++++++ config/locales/en/settings.yml | 2 + config/locales/es/general.yml | 42 ++++++++++++ config/locales/es/settings.yml | 2 + config/routes/proposal.rb | 1 + db/seeds.rb | 2 + lib/tasks/proposal_actions.rake | 14 ++-- spec/features/dashboard/dashboard_spec.rb | 5 ++ spec/features/dashboard/mailing_spec.rb | 37 +++++++++++ .../previews/dashboard_mailer_preview.rb | 6 ++ spec/models/abilities/common_spec.rb | 5 ++ 31 files changed, 488 insertions(+), 19 deletions(-) create mode 100644 app/assets/stylesheets/dashboard_mailer.scss create mode 100644 app/assets/stylesheets/dashboard_mailer_preview.scss create mode 100644 app/controllers/dashboard/mailing_controller.rb create mode 100644 app/mailers/dashboard/mailer.rb create mode 100644 app/views/dashboard/_mailing_resource.html.erb create mode 100644 app/views/dashboard/mailer/forward.html.erb create mode 100644 app/views/dashboard/mailing/_mailing_options.html.erb create mode 100644 app/views/dashboard/mailing/index.html.erb create mode 100644 app/views/dashboard/mailing/new.html.erb create mode 100644 app/views/layouts/dashboard/mailer.html.erb create mode 100644 spec/features/dashboard/mailing_spec.rb create mode 100644 spec/mailers/previews/dashboard_mailer_preview.rb diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index 52495ee85..704b3a52a 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -10,6 +10,7 @@ @import 'pages'; @import 'proposal'; @import 'proposal-graph'; +@import 'dashboard_mailer_preview'; @import 'poll'; @import 'legislation'; @import 'legislation_process'; diff --git a/app/assets/stylesheets/dashboard_mailer.scss b/app/assets/stylesheets/dashboard_mailer.scss new file mode 100644 index 000000000..b59613568 --- /dev/null +++ b/app/assets/stylesheets/dashboard_mailer.scss @@ -0,0 +1,65 @@ +@import 'application'; + +body { + padding-left: 30%; + padding-right: 30%; + + p { + text-align: justify; + } +} + +header { + background-color: #3700fd; + color: white; + padding: 20pt 20pt 20pt 20pt; + margin-bottom: 0; + border-bottom: 0; + + h1 { + font-size: 40pt; + text-align: center; + } + + h2 { + font-size: 25pt; + text-align: center; + } +} + +.proposal-image { + width: 100%; +} + +.mail-body { + color: #838383; + font-size: 18pt; + margin-top: 20pt; +} + +.support-link { + display: block; + background-color: #004a84; + color: #ddffff; + text-decoration: none; + border: 1px solid $border; + width: 80%; + margin-left: auto; + margin-right: auto; + font-size: 40pt; + padding: 20pt 20pt 20pt 20pt; + border-radius: 5pt; + text-align: center; + margin-top: 50pt; + margin-bottom: 50pt; +} +.support-link:hover { + color: #ddffffff; + text-decoration: none; +} + +.share-title { + font-weight: bold; + font-size: 25pt; +} + diff --git a/app/assets/stylesheets/dashboard_mailer_preview.scss b/app/assets/stylesheets/dashboard_mailer_preview.scss new file mode 100644 index 000000000..1f967bf24 --- /dev/null +++ b/app/assets/stylesheets/dashboard_mailer_preview.scss @@ -0,0 +1,64 @@ + .dashboard-mail-preview { + + padding-left: 10%; + padding-right: 10%; + + p { + text-align: justify; + } + + .header { + background-color: #3700fd; + color: white; + padding: 20pt 20pt 20pt 20pt; + margin-bottom: 0; + border-bottom: 0; + + h1 { + font-size: 40pt; + text-align: center; + } + + h2 { + font-size: 25pt; + text-align: center; + } + } + + .proposal-image { + width: 100%; + } + + .mail-body { + color: #838383; + font-size: 18pt; + margin-top: 20pt; + } + + .support-link { + display: block; + background-color: #004a84; + color: #ddffff; + text-decoration: none; + border: 1px solid $border; + width: 80%; + margin-left: auto; + margin-right: auto; + font-size: 40pt; + padding: 20pt 20pt 20pt 20pt; + border-radius: 5pt; + text-align: center; + margin-top: 50pt; + margin-bottom: 50pt; + } + .support-link:hover { + color: #ddffffff; + text-decoration: none; + } + + .share-title { + font-weight: bold; + font-size: 25pt; + } +} + diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index c8509846b..2ae6e57fe 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -1,5 +1,6 @@ class Admin::SettingsController < Admin::BaseController - helper_method :successful_proposal_setting, :successful_proposals, :poll_feature_short_title_setting, :poll_feature_description_setting, :poll_feature_link_setting + helper_method :successful_proposal_setting, :successful_proposals, :poll_feature_short_title_setting, :poll_feature_description_setting, + :poll_feature_link_setting, :email_feature_short_title_setting, :email_feature_description_setting def index all_settings = Setting.all.group_by { |s| s.type } @@ -29,7 +30,7 @@ class Admin::SettingsController < Admin::BaseController end def successful_proposal_setting - Setting.find_by(key: 'proposals.successful_proposal_id') + @successful_proposal_setting ||= Setting.find_by(key: 'proposals.successful_proposal_id') end def successful_proposals @@ -37,14 +38,22 @@ class Admin::SettingsController < Admin::BaseController end def poll_feature_short_title_setting - Setting.find_by(key: 'proposals.poll_short_title') + @poll_feature_short_title_setting ||= Setting.find_by(key: 'proposals.poll_short_title') end def poll_feature_description_setting - Setting.find_by(key: 'proposals.poll_description') + @poll_feature_description_setting ||= Setting.find_by(key: 'proposals.poll_description') end def poll_feature_link_setting - Setting.find_by(key: 'proposals.poll_link') + @poll_feature_link_setting ||= Setting.find_by(key: 'proposals.poll_link') + end + + def email_feature_short_title_setting + @email_feature_short_title_setting ||= Setting.find_by(key: 'proposals.email_short_title') + end + + def email_feature_description_setting + @email_feature_description_setting ||= Setting.find_by(key: 'proposals.email_description') end end diff --git a/app/controllers/dashboard/mailing_controller.rb b/app/controllers/dashboard/mailing_controller.rb new file mode 100644 index 000000000..cf89fe4e8 --- /dev/null +++ b/app/controllers/dashboard/mailing_controller.rb @@ -0,0 +1,16 @@ +class Dashboard::MailingController < Dashboard::BaseController + def index + authorize! :manage_mailing, proposal + end + + def new + authorize! :manage_mailing, proposal + end + + def create + authorize! :manage_mailing, proposal + + Dashboard::Mailer.forward(proposal).deliver_later + redirect_to new_proposal_dashboard_mailing_path(proposal), flash: { notice: t("dashboard.mailing.create.sent") } + end +end diff --git a/app/helpers/proposals_dashboard_helper.rb b/app/helpers/proposals_dashboard_helper.rb index a4ec06311..9c7ebf92d 100644 --- a/app/helpers/proposals_dashboard_helper.rb +++ b/app/helpers/proposals_dashboard_helper.rb @@ -31,13 +31,21 @@ module ProposalsDashboardHelper end def resources_menu_active? - polls_menu_active? || is_resource_request? + polls_menu_active? || mailing_menu_active? || is_resource_request? end def polls_menu_active? controller_name == 'polls' end + def mailing_menu(&block) + menu_entry(mailing_menu_active?, &block) + end + + def mailing_menu_active? + controller_name == 'mailing' + end + def menu_group(id, active, &block) html_class = nil html_class = 'is-active' if active diff --git a/app/mailers/dashboard/mailer.rb b/app/mailers/dashboard/mailer.rb new file mode 100644 index 000000000..3000f7d67 --- /dev/null +++ b/app/mailers/dashboard/mailer.rb @@ -0,0 +1,8 @@ +class Dashboard::Mailer < ApplicationMailer + layout 'dashboard/mailer' + + def forward(proposal) + @proposal = proposal + mail to: proposal.author.email, subject: proposal.title + end +end diff --git a/app/models/abilities/common.rb b/app/models/abilities/common.rb index 4acd2e18a..d2e4b326b 100644 --- a/app/models/abilities/common.rb +++ b/app/models/abilities/common.rb @@ -25,6 +25,9 @@ module Abilities can :manage_polls, Proposal do |proposal| proposal.author.id == user.id end + can :manage_mailing, Proposal do |proposal| + proposal.author.id == user.id + end can :results, Poll do |poll| poll.related&.author&.id == user.id diff --git a/app/views/admin/settings/_proposals.html.erb b/app/views/admin/settings/_proposals.html.erb index b795a5208..c18d7bf11 100644 --- a/app/views/admin/settings/_proposals.html.erb +++ b/app/views/admin/settings/_proposals.html.erb @@ -34,7 +34,6 @@ <% end %> - <%= t("settings.#{poll_feature_description_setting.key}") %> @@ -52,7 +51,6 @@ <% end %> - <%= t("settings.#{poll_feature_link_setting.key}") %> @@ -70,6 +68,39 @@ <% end %> - + + + <%= t("settings.#{email_feature_short_title_setting.key}") %> + + + <%= form_for email_feature_short_title_setting, + url: admin_setting_path(email_feature_short_title_setting), + html: { id: "edit_#{dom_id(email_feature_short_title_setting)}"} do |f| %> +
+ <%= f.text_field :value, label: false, id: dom_id(email_feature_short_title_setting) %> +
+
+ <%= f.submit(t('admin.settings.index.update_setting'), class: "button hollow expanded") %> +
+ <% end %> + + + + + <%= t("settings.#{email_feature_description_setting.key}") %> + + + <%= form_for email_feature_description_setting, + url: admin_setting_path(email_feature_description_setting), + html: { id: "edit_#{dom_id(email_feature_description_setting)}"} do |f| %> +
+ <%= f.cktext_area :value, label: false, id: dom_id(email_feature_description_setting) %> +
+
+ <%= f.submit(t('admin.settings.index.update_setting'), class: "button hollow expanded") %> +
+ <% end %> + + diff --git a/app/views/dashboard/_mailing_resource.html.erb b/app/views/dashboard/_mailing_resource.html.erb new file mode 100644 index 000000000..84620cb3a --- /dev/null +++ b/app/views/dashboard/_mailing_resource.html.erb @@ -0,0 +1,26 @@ +<% if can?(:manage_mailing, proposal) %> +
+
" + data-position="bottom" data-alignment="right"> +
+

+ +

+

<%= t("dashboard.menu.mailing") %>

+

+ <%= Setting['proposals.email_short_title'] %> +

+
+ +
+
+ <%= link_to t("dashboard.resource.request_resource"), + new_proposal_dashboard_mailing_path(proposal.to_param), + class: 'button primary' %> +
+
+
+
+<% end %> + diff --git a/app/views/dashboard/_menu.html.erb b/app/views/dashboard/_menu.html.erb index 7e5d1e173..02a926866 100644 --- a/app/views/dashboard/_menu.html.erb +++ b/app/views/dashboard/_menu.html.erb @@ -32,6 +32,16 @@ <% end %> <% end %> + <% if can?(:manage_mailing, proposal) %> + <%= mailing_menu do %> + <%= link_to new_proposal_dashboard_mailing_path(proposal.to_param) do %> + "> + <%= t("dashboard.menu.mailing") %> + + <% end %> + <% end %> + <% end %> + <% resources.each do |resource| %>
  • > <%= link_to new_request_proposal_dashboard_path(proposal, resource) do %> diff --git a/app/views/dashboard/_resources.html.erb b/app/views/dashboard/_resources.html.erb index 5b3528e22..4cbe04dca 100644 --- a/app/views/dashboard/_resources.html.erb +++ b/app/views/dashboard/_resources.html.erb @@ -7,6 +7,7 @@
    <%= render 'poll_resource' %> + <%= render 'mailing_resource' %> <%= render partial: 'resource', collection: active_resources %>
    diff --git a/app/views/dashboard/mailer/forward.html.erb b/app/views/dashboard/mailer/forward.html.erb new file mode 100644 index 000000000..517dbc61f --- /dev/null +++ b/app/views/dashboard/mailer/forward.html.erb @@ -0,0 +1,18 @@ +
    +

    <%= @proposal.title %>

    +

    <%= t("dashboard.mailer.forward.subtitle") %>

    +
    +<%= image_tag @proposal.image.attachment.url(:large), class: 'proposal-image' if @proposal.image.present? %> +
    + <%== t("dashboard.mailer.forward.introduction") %> + <%= link_to t("dashboard.mailer.forward.support_it"), proposal_url(@proposal), class: 'support-link' %> + <%== t("dashboard.mailer.forward.share_info") %> + + + <%= render partial: 'shared/social_share', locals: { + title: @proposal.title, + url: proposal_url(@proposal), + description: @proposal.summary + } %> + +
    diff --git a/app/views/dashboard/mailing/_mailing_options.html.erb b/app/views/dashboard/mailing/_mailing_options.html.erb new file mode 100644 index 000000000..623679254 --- /dev/null +++ b/app/views/dashboard/mailing/_mailing_options.html.erb @@ -0,0 +1,13 @@ +
    + <% if action_name != 'index' %> + <%= link_to t("dashboard.mailing.mailing_options.preview"), + proposal_dashboard_mailing_index_path(proposal), + class: 'button expanded' %> + <% end %> + + <%= link_to t("dashboard.mailing.mailing_options.send", address: current_user.email), + proposal_dashboard_mailing_index_path(proposal), + method: :post, + class: 'button expanded' %> +
    + diff --git a/app/views/dashboard/mailing/index.html.erb b/app/views/dashboard/mailing/index.html.erb new file mode 100644 index 000000000..6fe0833ac --- /dev/null +++ b/app/views/dashboard/mailing/index.html.erb @@ -0,0 +1,26 @@ +<% content_for :action_title, t("dashboard.mailing.index.title") %> +
    +
    +
    +

    <%= proposal.title %>

    +

    <%= t("dashboard.mailer.forward.subtitle") %>

    +
    + <%= image_tag proposal.image.attachment.url(:large), class: 'proposal-image' if proposal.image.present? %> +
    + <%== t("dashboard.mailer.forward.introduction") %> + <%= link_to t("dashboard.mailer.forward.support_it"), proposal_url(@proposal), class: 'support-link' %> + <%== t("dashboard.mailer.forward.share_info") %> + + + <%= render partial: 'shared/social_share', locals: { + title: @proposal.title, + url: proposal_url(@proposal), + description: @proposal.summary + } %> + +
    +
    + + <%= render 'mailing_options' %> +
    + diff --git a/app/views/dashboard/mailing/new.html.erb b/app/views/dashboard/mailing/new.html.erb new file mode 100644 index 000000000..eb594a318 --- /dev/null +++ b/app/views/dashboard/mailing/new.html.erb @@ -0,0 +1,8 @@ +<% content_for :action_title, t("dashboard.mailing.new.title") %> +
    +
    + <%== Setting['proposals.email_description'] %> +
    + + <%= render 'mailing_options' %> +
    diff --git a/app/views/dashboard/polls/index.html.erb b/app/views/dashboard/polls/index.html.erb index 2ecb595e1..33cd277f6 100644 --- a/app/views/dashboard/polls/index.html.erb +++ b/app/views/dashboard/polls/index.html.erb @@ -2,6 +2,12 @@
    <%== Setting['proposals.poll_description'] %> + + <% if @polls.any? %> +
    + <%= render @polls %> +
    + <% end %>
    @@ -19,9 +25,3 @@ class: 'button expanded' %>
    - -<% if @polls.any? %> -
    - <%= render @polls %> -
    -<% end %> diff --git a/app/views/layouts/dashboard/mailer.html.erb b/app/views/layouts/dashboard/mailer.html.erb new file mode 100644 index 000000000..1d57e6bdd --- /dev/null +++ b/app/views/layouts/dashboard/mailer.html.erb @@ -0,0 +1,10 @@ + + + + + <%= stylesheet_link_tag "dashboard_mailer" %> + + + <%= yield %> + + diff --git a/config/environments/development.rb b/config/environments/development.rb index 1b401544a..0d00168fc 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -45,6 +45,7 @@ Rails.application.configure do # config.action_view.raise_on_missing_translations = true config.cache_store = :dalli_store + config.action_mailer.preview_path = "#{Rails.root}/spec/mailers/previews" config.after_initialize do Bullet.enable = true diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb index 9693a1f8b..556384c00 100644 --- a/config/initializers/assets.rb +++ b/config/initializers/assets.rb @@ -15,6 +15,7 @@ Rails.application.config.assets.precompile += %w( stat_graphs.js ) Rails.application.config.assets.precompile += %w( dashboard_graphs.js ) Rails.application.config.assets.precompile += %w( print.css ) Rails.application.config.assets.precompile += %w( ie.css ) +Rails.application.config.assets.precompile += %w( dashboard_mailer.css ) # Loads app/assets/images/custom before app/assets/images images_path = Rails.application.config.assets.paths diff --git a/config/locales/en/general.yml b/config/locales/en/general.yml index a2bb5b736..f8558489c 100644 --- a/config/locales/en/general.yml +++ b/config/locales/en/general.yml @@ -510,6 +510,7 @@ en: resources: Resources community: Community polls: Polls + mailing: E-mail form: request: Request create_request: @@ -586,6 +587,47 @@ en: add_answer: Add answer question_answer_fields: remove_answer: Remove answer + mailing: + index: + title: E-mail preview + new: + title: E-mail feature + mailing_options: + send: Send to %{address} + preview: Preview + create: + sent: The email has been sent + mailer: + forward: + subtitle: If you support me, we will achieve it. + support_it: Support this proposal + share_in: Share in + introduction: + "

    Hello!

    + +

    + I am writing to let you know that I am + participating in Decide Madrid, the platform for + Madrid and Madrid we can decide which city + we want. And for that, I created my own citizen proposal + and now, I'm going to need your support! But do not worry because + It is very simple. +

    + +

    + You just have to click on the button that you will see below + 'Support this proposal' and you can directly inform yourself about + before promoting it. Only the proposals that achieve the + maximum support will be carried out by our City Council, + and I thought that you, I'm sure you help me achieve it! +

    " + share_info: + "

    + And if you also do me the great favor of sharing my proposal with + your friends, family and contacts, it would be the bomb! Can + do it next from the social network that you want or from your + email: +

    " polls: all: "All" no_dates: "no date assigned" diff --git a/config/locales/en/settings.yml b/config/locales/en/settings.yml index f4334fab0..efbdd6021 100644 --- a/config/locales/en/settings.yml +++ b/config/locales/en/settings.yml @@ -68,3 +68,5 @@ en: poll_short_title: Subtitle for polls feature poll_description: Description for polls feature poll_link: Additional information link + email_short_title: Subtitle for email feature + email_description: Description for email feature diff --git a/config/locales/es/general.yml b/config/locales/es/general.yml index 44bfbc0a6..717e6bdc0 100644 --- a/config/locales/es/general.yml +++ b/config/locales/es/general.yml @@ -510,6 +510,7 @@ es: resources: Recursos community: Comunidad polls: Encuestas + mailing: Correo electrónico form: request: Solicitar create_request: @@ -586,6 +587,47 @@ es: add_answer: Añadir respuesta question_answer_fields: remove_answer: Borrar respuesta + mailing: + index: + title: Previsualización del correo electrónico + new: + title: Funcionalidad de correo electrónico + mailing_options: + send: Enviar a %{address} + preview: Previsualizar + create: + sent: El e-mail ha sido enviado + mailer: + forward: + subtitle: Si me apoyas, lo conseguiremos. + support_it: Apoyar esta propuesta + share_in: Compartir en + introduction: +

    ¡Hola!

    + +

    + Te escribo para comunicarte que estoy + participando en Decide Madrid, la plataforma para que + los madrileños y madrileñas podamos decidir qué ciudad + queremos. Y para ello, he creado mi propia propuesta ciudadana + y ahora, ¡voy a necesitar tu apoyo! Pero no te preocupes porque + es muy sencillo. +

    + +

    + Tan sólo tienes que pinchar en el botón que verás a continuación + 'Apoyar esta propuesta' y directamente podrás informarte a cerca de + ella antes de impulsarla. Sólo las propuestas que consigan el + máximo apoyo se llevarán a cabo por parte de nuestro Ayuntamiento, + y he pensado que tú, ¡seguro que me ayudas a lograrlo! +

    + share_info: + "

    + Y si además, me haces el gran favor de compartir mi propuesta con + tus amigos, familiares y contactos, ¡ya sería la bomba! Puedes + hacerlo a continuación desde la red social que tú quieras o desde tu + correo electrónico: +

    " polls: all: "Todas" no_dates: "sin fecha asignada" diff --git a/config/locales/es/settings.yml b/config/locales/es/settings.yml index 60663ee57..8bdf33f08 100644 --- a/config/locales/es/settings.yml +++ b/config/locales/es/settings.yml @@ -68,3 +68,5 @@ es: poll_short_title: Subtítulo funcionalidad encuestas poll_description: Descripción funcionalidad encuestas poll_link: Enlace información adicional + email_short_title: Subtítulo funcionalidad de correo electrónico + email_description: Descripción funcionalidad de correo electrónico diff --git a/config/routes/proposal.rb b/config/routes/proposal.rb index 7a6f8081d..a9637af9f 100644 --- a/config/routes/proposal.rb +++ b/config/routes/proposal.rb @@ -22,6 +22,7 @@ resources :proposals do namespace :dashboard do resources :polls, except: [:show, :destroy] + resources :mailing, only: [:index, :new, :create] end member do diff --git a/db/seeds.rb b/db/seeds.rb index 01ff6d45d..1c8c19ed5 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -137,3 +137,5 @@ Setting['proposals.successful_proposal_id'] = nil Setting['proposals.poll_short_title'] = nil Setting['proposals.poll_description'] = nil Setting['proposals.poll_link'] = nil +Setting['proposals.email_short_title'] = nil +Setting['proposals.email_description'] = nil diff --git a/lib/tasks/proposal_actions.rake b/lib/tasks/proposal_actions.rake index 627c581ff..681b4e173 100644 --- a/lib/tasks/proposal_actions.rake +++ b/lib/tasks/proposal_actions.rake @@ -15,10 +15,16 @@ namespace :proposal_actions do desc 'Initialize proposal settings' task initialize_settings: :environment do - Setting['proposals.successful_proposal_id'] = nil if Setting.find_by(key: 'proposals.successful_proposal_id').nil? - Setting['proposals.poll_short_title'] = nil if Setting.find_by(key: 'proposals.poll_short_title').nil? - Setting['proposals.poll_description'] = nil if Setting.find_by(key: 'proposals.poll_description').nil? - Setting['proposals.poll_link'] = nil if Setting.find_by(key: 'proposals.poll_link').nil? + %w[ + proposals.successful_proposal_id + proposals.poll_short_title + proposals.poll_description + proposals.poll_link + proposals.email_short_title + proposals.email_description + ].each do |key| + Setting[key] = nil if Setting.find_by(key: key).nil? + end end desc 'Simulate successful proposal' diff --git a/spec/features/dashboard/dashboard_spec.rb b/spec/features/dashboard/dashboard_spec.rb index bff5e4fc4..2afe1f2d5 100644 --- a/spec/features/dashboard/dashboard_spec.rb +++ b/spec/features/dashboard/dashboard_spec.rb @@ -72,6 +72,7 @@ feature "Proposal's dashboard" do visit progress_proposal_dashboard_index_path(proposal) within 'div#available-resources-section' do expect(page).to have_content('Polls') + expect(page).to have_content('E-mail') expect(page).to have_content(available.title) expect(page).to have_content(unavailable.title) expect(page).to have_content(requested.title) @@ -99,6 +100,10 @@ feature "Proposal's dashboard" do expect(page).to have_link('Polls') end + scenario 'Dashboard has a link to e-mail feature' do + expect(page).to have_link('E-mail') + end + scenario 'Dashboard has a link to resources on main menu' do feature = create(:dashboard_action, :resource, :active) diff --git a/spec/features/dashboard/mailing_spec.rb b/spec/features/dashboard/mailing_spec.rb new file mode 100644 index 000000000..cc3f640de --- /dev/null +++ b/spec/features/dashboard/mailing_spec.rb @@ -0,0 +1,37 @@ +require 'rails_helper' + +feature 'Mailing' do + let!(:proposal) { create(:proposal, :draft) } + + before do + login_as(proposal.author) + visit new_proposal_dashboard_mailing_path(proposal) + end + + scenario 'Has a link to preview the mail' do + expect(page).to have_link('Preview') + end + + scenario 'Has a link to send the mail' do + expect(page).to have_link("Send to #{proposal.author.email}") + end + + scenario 'User receives feedback after the email is sent' do + click_link "Send to #{proposal.author.email}" + expect(page).to have_content("The email has been sent") + end + + scenario 'Preview contains the proposal title' do + click_link 'Preview' + + expect(page).to have_content(proposal.title) + end + + scenario 'Preview page can send the email as well' do + click_link 'Preview' + + expect(page).not_to have_link('Preview') + expect(page).to have_link("Send to #{proposal.author.email}") + end +end + diff --git a/spec/mailers/previews/dashboard_mailer_preview.rb b/spec/mailers/previews/dashboard_mailer_preview.rb new file mode 100644 index 000000000..eded26aef --- /dev/null +++ b/spec/mailers/previews/dashboard_mailer_preview.rb @@ -0,0 +1,6 @@ +class DashboardMailerPreview < ActionMailer::Preview + def forward + proposal = Proposal.first + Dashboard::Mailer.forward(proposal) + end +end diff --git a/spec/models/abilities/common_spec.rb b/spec/models/abilities/common_spec.rb index 56248b482..09ca0ccd8 100644 --- a/spec/models/abilities/common_spec.rb +++ b/spec/models/abilities/common_spec.rb @@ -175,6 +175,11 @@ describe Abilities::Common do it { should be_able_to(:results, poll) } end + describe 'proposal mailing' do + it { should be_able_to(:manage_mailing, own_proposal) } + it { should_not be_able_to(:manage_mailing, proposal) } + end + describe 'publishing proposals' do let(:draft_own_proposal) { create(:proposal, :draft, author: user) } From 9eaa990145d9da45c51b8037aaf96157387f7200 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Salvador=20P=C3=A9rez=20Garc=C3=ADa?= Date: Wed, 25 Jul 2018 17:01:30 +0200 Subject: [PATCH 2/2] Added default image for proposal dashboard mailing --- app/assets/images/default_mailing.jpg | Bin 0 -> 89064 bytes app/views/dashboard/mailer/forward.html.erb | 1 + app/views/dashboard/mailing/index.html.erb | 1 + 3 files changed, 2 insertions(+) create mode 100644 app/assets/images/default_mailing.jpg diff --git a/app/assets/images/default_mailing.jpg b/app/assets/images/default_mailing.jpg new file mode 100644 index 0000000000000000000000000000000000000000..634a535f4e96ae17ad744325a7806374f3a0c7e8 GIT binary patch literal 89064 zcmeFa2UJwcvH-dXk`xgI6p#zI&*{s>Sy1Kf$y1Kf1cXjs$*Ms|ZEKkwADKrUBt_ zA8Ua4d)f@}*#l7Q-U9&6V?UmXP^3AGMav3_Mxv~c_AJWEEW(09k}T&n%pleXJdz8* zBcuf-q=m&;ghZu9#ifO$Kvn?JYl4IPaX0{YP52`pLc`ZYKVX71JRx|I5DT~%R@-;lZQCrPu^5F4%h*gz$d7ggD0*BHxC@yFNvwL20(yY0FLg50O&nD z9j+gE1RNnFBO@m}LQZ~!`Y^>|YFerzN2q8|oj5^z;>0QHBm39)$3fs9?*x>G4^tkc zJa+WxF`A=CkJ8|8M`;d{Q2!MMxc2}x8Q=)KCL&-32&oB(s0na`U?C}R)dUKll!plR zFHm6oMFbEK5+5QVB_pRe3>v{7BMAUPq92jR00LqHB0^%qL!=~Rhlq}dfRWTh#AlBS z9a6k*c7oO6zAy<*(3>13Hg;O=59T7Gjt^RuNjZXbmcA`RP-1j(xew1>4AF(Ee2hnn zpKQ|`fvw~{s%m!{T~*}_O?aFiR^2hSmRL~JIliuM;p`orR9M?Ju_2*mVCmu$kz7>Q zJ-JB@5E6pY67S1IN^(eSUxc$l$B97+99T~r622cqgO}igcI%P|yZJZA2f@lZv=Ef& zG6xA>0Mc_}AKO47;!i?V^u*Dyk)I;`*Aj645&_o-93k4zlNwL}=Csv0l5*79gD-2V zbN6m_Lm?0Sh(s7ic7@SQ>F2mTGxq585P8QJw`5wM5Z}|JT%Vsvsy}+`Qf+E>|BQTt zOTuG78~uoMkfW ztMiK~a!g>4V+L(sY`8J*-LNgz{rX6-`nl8t(b$7S zgVos+*@M-&@CYwl%P+yLUM0dP`DaeKj1=UWI4RGg0R^e9Z$8j&9ANq}_15WXTUoU` zmyRFtBm0^RDJ;*D{y?03>0!RB=KVDs@MYbrS?5`&d_H7Ef@dzwv&EC)^jx|TL`5{3 zdBd&WeY~r0QD?ggl85n{@-Z-)rM0Axek}Ps>s{Xt;?nEBTf8Mn^&+Qcuhoty^bLDW z(;=v?idbGtiYTcF(3$EsRP3qK#Q}XL(wLYv;~8ljaIL6pI$df{CgoLhhwzXbkE1k# zW3xDDMnodHYH+T58lsN_+*&qDthy95Qs%EdHr%;gwj_2c);-B@yLS3_W}nW-0ebTrB^UdzIg8x7 z(VycO*{`B6D)+ch^hR&i`w5Se8H?NH?df-ll1s5+w*Hec6d!9Pall9O-kDLk*iUe$ zG`%NNt~m{v*j!oDt$}46F#5T>sa@Sdt?TCXH#M`g_t5qjIz@#pWct0JovMddYCJBN z?dbW-7;lt*O0DHwGYWMp-jLY#ioeqHVw*<*BT^%<%d@?>Yi+QGZo8gUpOs>w@w_zI zgMkNit7^#u)}(!%4#ZJevmW6dzmtTD^u z2rC|a>rzM+|7Cb7+J)okvs-i=r<`IMYcs=09m;M~I>oNnVS}W7D2IwJxOztH)lmc| z1gocMgXR;9YyD+Cc*M&_NTb=`V?pzVnBe31bif*)r(OFf_`x9cXGq(}BGjhIcR_yEPrKKI$ zSeL#m=PRQ%86V*21#G!*_411+(BkULgq*(DpI7Sb#D;8t_LA74Rw+nptb8rOoH%hE zVIjnyo(zMK^rF&lugjgu;A<@Fs7l{%nA$rTKb?7oDZ8!oVWAnU(l=gxAi%^C@CnL=Y{K=lyCIz6}*XQ-|@PR z7<%KUuOG+=QFLYgR9=R(+~8G{D5xgBKf-eDj>FyHaLq1&A=guoe(%Zr4M1@SAachR0FRh&D!~s`knYi|7xAyeka9SvPHUu$8 z)j}bQH95me5najaF7%yivMg-~kAfr7c4H;mr1Sbx!+k~VI3P2s{Fjob-`(d|gFzAL5#gayPB5BZBCD5kjtRVYhxwg74Og4uygW*W#a&f zrs>`#$aBfj+fQqc-wUyOy&XJI*PE1Fi$%;}R3Ywl{^a4Ns(`goSzchBfK( ziYR028}jCvH?<33>|sX7oPj(1poKq(#kKu|$ya9NnW{@=T6@HZ?}$XU;($Yt8#rK> zWR@Bn;NNm6r8n`1KV)z#_7h`dd1=4fMu zs#}Y#V7=2%cPxEf!_;cd%O`CNc09XcV=IkhoJ)p{8B|)P-~fpH zg96je9U-r=yBV)S=bgK+Gj!b^cFv23b0aB-<5wh7{Cxg~JxdbGSUTbSfzY*>KWlrV44d_Y!MyN;^7nAoWKTZ4cr%G|f- zT9;#8Cgs!^7#L14y}NliT2+n>?o@P7R((g)y;8nzPgJ+DcRY}+_v=$xg&l#;aOCq3hYI!j!4G zZaSTL?M;VWt-Iiop}3m-vuFdU;L(qf6im}a595A2zN`!5J z-V-#y(9FtCHRf%wp}oKX9n6^qK6=BDosAixTQjBSIbP7)ZB+6Gz$1&VfoA@2`-PDg zSU-{JyWE{wrKzc*ZMB^m%5bN*$~RiKGs)lE-slp0^ZYg?-fEn&#{Z1l=Lom9U&PA5E)2)QBcWL zzmkzv?k?n672K+WI@BCb#lwL)|9a3k+M}0$M*tabIyLRpp10e;+udx5wQ3=QCL5?a~TJO zC;H5+Tx_(?kN3=?cjKsG-cwVEVeolXHFM-6vfs)h;6p_lWAFyz%PhUAV!=q;w5Nh* z;=&&Dj>4PWz3{C2+mRh3{b6CY=d({y6*TnW0F|X~1*UdTcU`9@-8@4SV!T$bysWR9 z9aK2i|0$1e!!E9(M8_D`(-ST35lxlQUNqOsP#(~bzUGy<+rYQ3x8T=OMX%8t>PD+I zYH{+K!|?RG)eh+pum%nE^0rOmt1R~l0&F9_Pf!OoqPNLHSG){%azPWIQrpfrgbVlIip>AvCA#ys3Nt4lK1L>e%!!y&o#TA))ew%OyS_ON^Yz6V zhU*oxq|a=vbDFS2gDFq$oLU=en{)54NS+`1e9yV0Fkf0h!UH~tnX1ijFs1b89`?!P z@;~92UR8%MZdj>-OC1%YN>QCPo})xg4J}^5P|)`ZRKul6t*YVoUp(?NGKr1L=ExrC z%6)g&M{gt676%xB_B9n2eB~*p_SN9H4dMD>JwK|f+LCa=rHNuXIe%>4nJ0lGBY`xU zX>6L&6W_p|nk(o~LjDt$4@_np6zOZJS+6H$b!*?sSCx#3l8_qW00c&^Vly@ApQjVJ zt~qT}*@XNq1!eY%JL(+&>j$nEH-Bp8mv2CXUl5Q~Qr95HdlUeG^bF{6z&joGaUA=& zV^hmFR|P(tdK2evnOOtvEZvWj-j7=Z@5jI&e%=lMhwU9f|AM9y+TIBb2JsFKKnsP| zF-Icp_9@g6Xc!FP1jk3<;r%Dvk_CKH?WfhTcEwXDS)=i3@X-f6VUE|#;4obkLtPMc zkl8^3Ek`8MLI;L+vez`Xfq;?JfFfW6H~}aC4Zr{v0J?v-2Pf%HAY=}h;h6#y_CM2s zp?!u*c4)+R*^ZbyS=*tl5&O)+c=CN}WeuY%2YQjgvmoRHZ@KgYk4F3`4xnsj?)WpHZHdzO8BlgaDE|r|(7ys#&FxS>W3E}Eoqq;Y;C2^(20)Ge zVyy(RwfwG<1APJ7YD&tWGZ41=JNju*|)X80293#nzPh5BJ1co<;i+j*tsRcnN|>$ z&<15vLZZ<~xE&H<`8~;zA2E0le#2A#z-wDuTKyhz_(udN+fRCYt09^{km0+pi}1&D zzeSzfk30H3Q}Cg1@1PwLt?c6{006gteQ%wV`&fLty|JI3{%4qJKd;sOF!}x+yb<>&l=y65$uQX9U8Fjdpu~rg8N}Yf`eGR z+<3|H7HGUrPqvTw-nI!ZfQ-Q3cdawwq2G9&#s`Vu;O(I7_#lAykrEn$z!^Xj>~n0u zo(Bye0T#d-Kx-*9;TKYg)(M(`8& zy&(87!pRQL8m|x%bEFdjiu#8>0)iF-gxxd68N=BAx92fFeOUT3cHG?4eb3@Z2@` zaUc&$Gbc1s4TgX@nxSD(5CQ1kvHvmDP#h5BG58qug8}E?U49}bN4q}^So_NVBSr&d z`Nu(x#LNz@Yi9Wes-qB?ot-Ys6|IiCq^oiDM`ua)1N{eLax0{xo1&eyYI%QYg&A%xS;#CU=H8qW^?k{|EYynVcK-=~7_4HeeVIOuQvR>+5k?#!9}*e zR~!CbZTNe&;qTRkzgHXnUTye$wc+p8hQC)E{$6ePUo1M{diQ7QXTdo)0GNP30{j%5 z3Utv!L3fxr==5R%v;Zp*#=FN*`;a|Iaq@qlU;&iDKNdh35Cnt(Nj&3&x&MI=juhN& zxt|yA+i_(pG}>NTKmdW_H^c9XP0&zYs2r<-n1-N+y)w+o`jVR?Ovmk-F2v0iA_ZktkY|x~m3D>O!(nJM7FW0(0wwJ# z$GXp48ies^0aliM611%x>;A4q7DEj!7GIwOeispbq@$&Pkd%~^ zfS|B|urMD;!H2qoK%2SpAy8~TI9!CGAdc4iD-$euj-c1w2`$G8N_tQPxcyJIf2ynB z2sJeRdr~+YuYi5FD71<*n9F}x2`IcbNkAKhLOMA@U@Fcq1e)zva&6eJ;{K^ze@qUN z|4a;p{LI)MbjIzg2?`N_*}>po9w^WPgnr6t|6{l8&m@1y>}T}8+2EzKmsWO!nSl!! zy5Qo)k6QkVe1amn!h+I*qS9hQJc7c~f`SL68lWXX z!R3)Z5(|sz{@Ahm2Vx}D+TzY%A=S{3R!5-FW(WvO{h}NzSQLJ1YpAq^In)9w1rg;F zlY$EJiHZn{@JR|oMfk);BrRYtn4p9>#A07AF#Sa�jrMeEI{!haw>$kDqFi7KBNd zOF|$JJ_(408K0n-D3ni1P~42qOb7~rNC-u5tCP^-Q!vVzri+jl$1y=N(?@dt$ z=I|Y|vu4@1Z)r0Ke!)+U6@oVj7?kxp+WJq_{MQO}z}5v^ruuKKez z!7BMtjz5^URMBre1!g|`(L1STQ~6%m(& zihyoZif6@T|YGM9y8~%?B{z{1;NCe(l|Er4Z%^blsaWu>kCC6&v zh=jA4+1rDQB4&6~6mUjBzmIo68vzR%$?{w4_%H1M3Ujpn%@Tgk=BErS|H=&iXT$qT zUDKZ#-oL-D1n^_&L6;!#kG;h~_~L;+Rq<7XLW2X8^q=($f7KrG>A}wSf9QUtBqgO_ zlIDVZl9Iw;_iH99!Y2h4g7S$-z$`?>%p_rwf-t=C;kg|wto)QKN5p)Re12{>zw?L z*RH>xe{0}x4g9Tvzcui;2L9H-|Bp2A%OM0qfHMpi(A|R@A-n+26HT?WHC5HGs_gr) z2n7`{Dya~HJFDQ}rc3;s(a`7y3u!aB32c9VB>*0Xi>h*p763{jN z!u`q!;^c_m5`@192t@$ke+vKN@$wV^XeNR?jCOzFME$^>MZBPEGwc`c9JrJ2m;eA& zy!`F(@&$Z;`-hhgjt2jwJK?X3=;!rYO8ik>!k-a;71%$#Opr!sNJIdh_WgBu`3iV= zISv$)gb+M{`|~0tBRND&PDBA7;sy^d10+OX{y!tZC?ZlqG6Hgd;_xwmkbnq0zD$Id zh>(Qbi2yvBIw$H#LI0su zjPsk0_=Dx(xQn_d6;%l}$ay_|gVVVm+eTKP578lyVDWiX?W0_h7OPI&Qqq^yFM|rV zw6eBwc5%Jq_SoC!$y49Zu<(e;7f}g`Ny#axY54_(Ma3nh)it$spFY=jbar+3^!AO7 zPfSit&#bL)Y;JAufW^ljw~690t+c*xX6KLRqkATYJkfNsLwnt&o0U!r<%@&v+3uUS{zm*&eN^IF{$JJM zjKomu>2`lwbTUhR!;KDRhm%8@43}H@j1s#iX_};Ij$60fq;|)+ypMf<^48%!ArI*( z^h_dp=3Cl}MBA%NvwF0NsE$~;Q^kL9)mP$L|6i?xS>xgH)`e5Of%F;l7p$Bb&rYy&C1rnlUZ5s1r0Ar{;-)tghP4JCzlwOM%wRUztCv zV>FG=x=)ZQW&KB2U)#U2`lep(8f`bU-~d74y@H~h;4+80m}$R`eu(q8BInb*B-dPr z(%F=iOYA#r1GA#i5zurYS|Qa{3b*0}9}N{*j!`NxOwk-w@vZt^N5tqC{f%VgFz>GW z9r(Bii}dv&a$}`KFX%3spS)>zI_EQsew%l*Lt%w=7on4C2aB&KWIUj#18raaF^2!o z`&5qMMul=5(2LxH3=bw>G1`!M5CAcN$3zRO$HmFbRzQ6$;cjWV#IkMXjwQvjF$O`D zJUJ{}tSC%@yF0d&X$#|2ul->Jo?Xno$>QH`YeU&MGju`yj4F%fNRX;JQ369^bDQDK zMk?nhs{F5>_1$r?y8+V7dz8D>y=4(+)i(Mg%0;#-dh6*S1((02M=_S?zFrBWpGp%i zB#C9Cz=qj93u-uS!CYBaY})Phj%l-?Uo+cw9Aj0uHRXO+H=|qi)m8p;u7=C3v}=s4 z%!!9xqK{oiPtvxcz|p|r#GtJ^V7lZ{O|>U!$S z!{d||%7+Fe=g`7plq9A+*OlBEZ$-rz>**E{2DrBH2!A#TO3r-DcU++&6C>n6I@GX` z*jQ1w(9VX5sJ9B9_aC!$9W~hD7TP^~*Q8LJ!0?SLW7=FfG4g(&gll$-mv56dMzaR1 z%9K=Y*Q;o%680wU^C|{G?J2(`alKk#9?B1 z?2`Ppo&!=Yv3esyE8pe13|l;5Mn;0SzD{7hBJr6A=iTTYoFb%DoG~bL8@{!x@F5SE_g#+aL`lILl2A5X9`q!l^3|*U=8?c!B(q7}(5xQ<9He3Ew&*-$E zwS$1^%cf4vj0^`HaKwmw&E{H^m&;I-*=LMIxtFUPmU+`42d;^vR(O)(W$c`$NlvI@ zd%7*-u4B9(nQ3H9k~?Fm$S_+64yaQb55Y+H@L0fk&wc2{=$Ow(DJm9j-0J%Pm#b7N zY*%~KA6a@+o;wVkmYF(re)Jk}#zSt^>+TS8`Oq05#Nro~zD5bw?8v5` z*ycC9RynFcujjM?42iV1JI~A>zHt9k+W!oM7p~*qXx(7XyR?<ezfQxm& zse^flzo=2~-U)(U22ZY;!ty(j-ZnPU)32^N*{1OAN|(MCV0VwgE_yBuyR$7+@}fG9 z%onP0K6F0~9=A8Ts`Mpv_v$_JI8r9j>mm2s80(vm8RJC?jNHksK2)pBL2}0g#vZT4 z3-x+17FX~&KkFRD#E*n4Za}wQezwZfV|393zs&KWN{6@xDi%%3r6Ny~CTb#@zoa$G zF)_&|kF97max7ASznWhOPI&3}g?jH&FmJU01#fT|+iAoowCs6^5#xfWA6F|KB6)X+B774-g#XrpbrvYRS>#r5rZ5FMTF39iBVZl#oxMawS&zpW_ zG!7q#JQH?qu*ty7g{#oNN5+N2=vw4lr@RiPDt5r3TsC+wBa`lRcGBRPi6OVKMP$Xd zmqGKx+$g@VW^t6tq@UNBYHUw-xUfW!ynw^6i z&fJ=4h>00?y{W5Wo!ro=T}85#6wEH96O}nxkP;#l;8*#@aw(+avd0CcG>?842IhB* zgLyHY^EW@EW4jssnN#~X0yoJzpBCQMxE5{Q)7Pk0W$ARrN~q-uO24m2QsPp?8oQ{y z++7@C^$8ounHjpV;dQul>6Bc1;fn5yn6eUwQv+C1Aw`xbAD+jJ*Oh~6#!@Eej<
    v3H}jA#kRCbaf2nsQjNMzE%?t+=%1@vy^KVWTpoTdH6O6}`-V$XM zC-|#yvFoVmbu*-XN;&(WRJb&qcvJuF(1nfFOo&3hP9ys5%&qJ`53Vlb6RG07wE6uC zS%npB*6@8s;b&FaYU)=z3s$k?db-b;Qcu^HK5a`Y)VlKJX74-Huo#L|3Pl`L zxLGpz*+J+c*(>%8qx{z&Q!;_iuRotl7$VaiI`uW+>jhx9^jNufsmuQ-eE_)bf461) zY0nzcpY8(Jc=jM`kf9$nKOa+=;~Nk>V4N=I*WbhIc4?LdX%f-U(FU2O9kYM^ne{<6 zL318oyao9FVPDke%$PKRaSClcTl91y>=W%-Hb0}jhmxd>dV_4*E0VfQ&=$}3Hqz`0 zB{VY}nkG1CFvO_X`@;9KWk!09(clzgqO7F+_EL(*8^fMD+sfr<8k%0;Kb*?em zHuz)jn1r>Jy`E=&IZW;@ku(ur>Y9ow)0cg)om!p2hG8tLTr!Gmo%KfG3xTyt0UqQ`}) zp?>H7g%s8j6Hg!TD}B-iE7@u($1bouAR|78Ad`JS_Vt0>=rZwXCb?7V|K(t#$GigB z?!3#h)%(t|+;tm1Jz(5^=(>Ub01cy}&&P?k(I}BiH0nA&*5tnhd8c=JR(w0<3A>nL8!vL z9IkpqoqrQ^Sk0tc=dYDk%^`gZztl{>d*$GGxTkE@ zmDifE9lE`l zJ8L)0$5-z`n^<I+j0(e*>z7q7-WXw34inn@S}|vAD%S7LXWiI;8A&p3M_11vMfv(gk7{8BuYPTf zu@N=RvQk29!p=?Fsf79d^pD8r*R-Pw=uW5B=5rb}`!v7C0TvRCUK1+)jK-~DCPD8o z0WR8*+2yi}8@D#H(mu}19y+2&?@?2{Ds?lX;99zd3b|W-*X4{%8|6d79@Wn@NOPFB znr*?rR;{q@z#}qZTq7+^L*X!oI{r_HhJ3SO>jWFalDI)N#155 zU5tp~)VWXN&O=QN-&WRX)>d^#XSie^`EsdSy`T|P?nS=q&ab?)IBUvfhv67`M^~D~ zyD7<6f3vUt>NO=bxkg7-a@`l~iL$yh_Ucr_aF=L(Noi4WYt47#RdjHcI>2SVb=|WO7QoGFovaGI?io1 z!xLlfFWGtBHGMO4<5g8}w)=K=XrYYDvvBBA)?8R*jA*CR{do z@zh+hPvG>%NBRV@h_e-~SO?|pHLvo~SXGn%=(*>=z-jwJf~mLPy^6}Hs0cCq5%H2l zRpF>IY4Nfs{X4n4YO}N!BAl9fDth!dKzpjHZ!gbjP~5mjf-l;!IDf!gOx-MKB#0`l zloqBSsHTTj)6ROGy22Wtmb>UR7Qe((ie0HZ*)7EsG7xrSz+%UeZ?EsQkwzbf3=hYZ z=$=6B_*iXih&4NmV*U`@&$w zim3?Z;hfhHVM|p}uLinHBKPCMM^S!O6Vod$h&JlDvts#;E62i8Q{0A~21Z};*zOf~ zMp9m;ij9p_kf!d$VkQ-oZvA*~nC7Z*`O-Wq_olcAivtE+W8(9~U-2i46mK#iQqSi^ zX27{;!sC)$cJhSC&sd!{N`(1~S;Dj(8g?toQTpqJj+6ZGkXwrp!5Lar$HRlw5Cj)? z8&0U`9g2KR?5oahAAg1Cv7d^%yos&Hs`B;*I%|4H{@YBz^GN@Glhu+!tfu9>=in!E zAqG?A^>f;VvGidB#-8E>K5nfI{M}KxSK(LJL}@$1YDulMQhC}JAqr(xuQvQqV_Ei_ z`kNLqhZ5^=HW#r6Yl@ue_0g|o(3Xpt+YcdKbN>-`kq z3psr@MLW=))`Ha>ZfHpHbU{>%WiDv+moAsNr&x*ehW0C1bdE05YqXn`&$#HN=hFA> z@FwIJ%ks*okAzd)a7uY)GZnpX+b~}jrZB9t$n_=Gr71R;Wy~+?i%El9@SIpv{kx#| zh3UwiAU4(0MjG#7ch1D|UX$fIJo6+O($6w*3ndendiBVO8{0b+cifhl%(_?MTMBP0 zj^2IHC!?G?d`EY^5C_cO;G29F>#EldJNJ6P0ijXza6ksd9GO@LQSsmx4q*0A&re&Y zKH{5RMtS7oFbe6p?K3w2E95H1*?bHheZINV@qlOL!|u+2&o>vdZ&>wR_9?#cnAB%(ij{6^2srkA2$yOs z^3}jrBl9M6{`vH&UOM{J$-&~6F|zm0`|A?lPxPr^bDwN5sOWZIUEu#*RBZ?CFPcuu zqt40DlC9Lc{i!pBb?DL=i!|3UwDj9B#0JI^lCFDOqVc{e_V#*`+RAQL)2N^Gm(u?|F0&XMBtVRH}}S?2XRP z$$iDdqbgSO2TpCw4jKF0x&K1u9S_XMS&!RFFVUBoteYpJ!#oDq_}FD!O*UErJMY=9 zi@n&L8C&^ELSL;{p`kk`cPi`zv^2okj=#OSy}fR1<+J)r1~$=E!-tG=N85*`PKVnv zkV%bAGecoZ=KJVv5 zeda=+?GvrXaKNL%jr6WLs^Azl1EZ@?3pYK#%=1znrlBq1yz_0=IcX;KiScI+CfT{0 z(v{MX;1uHsiBFn~3gd?!M($-!_Lw<#>l=t4ul#136olaG*e3BxFJWtZ(!AvVtVG|Y z#s#5CazsH$8B2h1lT`Q;GNM+W9kyrG(KGC)Cp>w6Lv?Im+hnhEX<>#jS$sK!L*;=+ zaxqJYR8ZA?<4X+hXzuy99i3`|Sgy1~&PRy3HcxFv^f6m*m%T)kw>>d#^0Fm%j+hu+ zIP_LEbU^8%I{PR7f{$0&VO~nXw8Tu|i(LjqfgkxOl|oW&FE71mB1rN=NOyB0?zUsC zhY41;=2OcyHJ#>m@7iiGl2mPz7Ydif!l4e5si$8_^S#~kQ8X}8zQ@GI9D+2^R;@2I zlBAoiot!frWL`W0LzT^ysn)nVUO8FTJLyl}rhe$kHQqtJiBC4SRL&BQqgsrRn|=ik zF0Gtjv%mCut#ce3>YphSr|?ZJ-_hfh$XIh-Z))U=Cg+u@-QpDQakV}b(wmDJkF;w} zf1(P9l#IjA&64vZ<}eR1FI30eb}X`kK?nNImlw6Xgx=wMoh1*&Bs_htC_5UxWO?um3M~BHi$6av$HA+Ol325UO;W zYhkq**Uo>5B^6->@C_*Q~73`MLg%Y*zJ#S+LeoE1M{wl4@vu2vmX#-x8i%#+q z^`<48x&4|IOv}BFiy}8ZOPn_{YP#e0WRcpn{pxj#lBlZ)8HlOdfD}kj>CfF=z}`4bQ+pvgUZBWI znBK6Tk?e*WcS@QKMKjIW+v-(M!XRzLd<$VdJn&m%s}tRyL6>!!cz;2Me$+sTpqfa6 zrO^V6yFk_4Fe$jYK=VrGX@i2IJD@x0{9%s-v^a)fE&gBPb;12R7gP7Wqumi$8j}i% zaH>&F4ZG(edTn!ioBd)s$jfQg+^qh&@Z=)PPjJ8TK&wPU?(;mh=}Di+IP@uXe7#k2 zo(*62DigWgD?x?c9`&ps!*mVjr4;A`VJA-zzk;TuI9)V!;-b0YqocJ)A{D1j*GAU; z)v|d^P@!QPtt?N91Go^+x8b{$n?6ozB}K1{$5d}`AS9rp4pIY%!?tsK<9Wfkj1dJW zU8kP3o|U%O#>Ijm9IbU7%#(eZx-Ue4(E8ig+KKT_GR?R0cD{X4B zYw~W2cXMboRbLI}dj7tG*FG*?-_R&wS+Cm0xX7+>vkV$>x@VA4_swf!d(!zDPc@p+ z7RKEN7=06;)wYM`@5JFHQQGlF9o-}0oykzP^T zRg4tN%85^1eE>unAK^B-xWJAqNsT_O1z3b8-^Qaj8Nc}j;DQjdw!{M8~ z*oQhX<+Q#ow_SdNy(t5%2iD`r@KUU2Pqh0kN261hGLPbQ)3(8qGI1;?74TH}R8zz| z>zrsDaMI{jP}*l+Ba`uB35pLq!G=1*L`i}GGp24^N}Sn~wb6n z{l*PPZUdkWPWb{xLu82Hb@K|hTo&JW5@a}VPhPFqOL)+BefOK&=-F1&Mz10f85DzY ze#+)6HH%Hp`cGA&(|iauN3-RE{#f*=jZtG7Z2qOb{ewqj$&bVAXb4(|OEg9L-5+k6 zjWsZSnUVQCXI|2`5O_~1;kdLSVz!FmZg{c6alvy1Q(_et;YCKh1X|USyS18_7CA&j z3D;W%0eKFK)VG=(Bz@Z=%M-=7lj}cL+(mE}yG^K7>2)igjL}YK)+ja)TBGA)byH_y zzAMnrG2juo8C+}f;bL?$_bT^RoQO{dyqr)^+gi{0aj1S6sk{f3A>Vw+p^qAL^0ha; zd@?Uog5UgwcB~hz5?9+r_1xv^k8$Z4v^AzR&Sy3Y`q=uRSGO(H@*?Kj^=_o9@B8S^ z-216M6>T`cRgI^niP`1w;0|erGyF^a_GRB$b;Dl4EO%>H4tB4K50a#>)%Y))4|Iua zwMJ~Xcs1wGy2jo;GNU*h;V_?B@=ovtV?mkyDUJ3b;ic0z3x@|>)6NW?;JRvbvmNSS zB*~q^bDRI(RJgeDJ$PLK#$vi;E@GoUtEsrzy5wVDd=xzs7X)!S_#*d=m1`<#S}D8l z^$uYs7TsB*}3{>w^>5ytOxzxQXyMw(_sgNMx_;T7QR zKrML+`I(dKkm89)60+HjVYb#`b#LYs#+mc|pLEF7ZKvY^KDU$xg$S=%fB;INqIM!DEKzh#4qH{nP!AtkGzN7yWTXNDkIKm%(gMkPFSmNLd=sRmg#sgLwqf)}D@qAH4C#U(_m9FljuGgwUS zNbn)nzGB?VH5Ms*XL8J1!XuN6Nxp0NM&>Q{3%*5f43S+N@Af0ChG1yk+$b;Q)VDWscBO)(?gftqHLbL6u$Jl zenye_;UXOZp2fSsnO}B)r1WWhsdN|`CJKYyrg$sKa!>KYRL`;Zv|^;Gp1rdk|0?Im zjV><{ZBJ7iAX52wm~`stXE@_CaBe-%ed?*;DUr6U<-wj^-@~)L_eUyy@WEz#~C$ou!UL63FHGp(-T3 z$^x>P6DzC`Ys_`;V1MkPdqnrZ4}p?a7zeATj<#g~OWqIgyF35An_BRjNs|{RV>=sq zh8u>xEJ7OB_ms=sa6rC8$I?ZZ7$qI76bJB(BN@N}7%}pA&)>^-C!WVknt4p~VhHwxdtWeA zx_K<(vYzJUrv(zVt#fl?GSUSot_ntN*5@Qk}b*jPsu5&gbcg2Ijam)A~GphIB_yI{dr_2QV@hrClCq zY1^g8+KA<81~knLMz;?0Pv>=P^{IxAk4_s5cWlqW#dtJ$`HYT^%$!M36f3?F<@P3J z8nr0voE!oE50g?+a>mA!{X;n5vmd#0vbT#uf?$~#L7UkC#HQtV0Mj9Z*O+$1&{2xI zGwaE({PeK4Sf(NptgVNM0vrbjc!l&k`{gWk&+pxnkq%F*U>0~FAJ=4FCc(#em{;Tq zi5l0vzA&_4?&C5&D+{tlk7a{}`%O73$RV{pzb_7K#sdoqO7-4hGS9UQYfV{b{B56% z-?mj`dVQFnW%7{uf3AZSl(U%W+ZnjV_6CxKXa;_aP9sSD=*Jsfh}sY8z8um5Ee%u93nfM99G1j-}oCpS$|=)5_m znUynb7g-A46;wXC+pS4}IshEJd|enBfcUO>L4> zd)rbHJ29IflX*u63NeV;uL!}m(2yB3)6}Sk_uaP^8Voq@BZ$#1Z<|Nq;p;ZJdYbh< zM0*o4HiN^n*v|&5Zi6!ZaWUrwV^AxV1pN=0pP-W-ORwHpxGG_lb=)tW^31V{+Cc@V zE+O0c*)!COneqd%>+6_^c^Rl9y}+itW;CLk!!WwRisS9_jS|k8%w4U!ONyW5h!(u6 zCF)R*jUGa_)G0N4th+EnSeMe^KW@J}(^92#B!8V+<+|o|n!sk_){M7JN7A$n6Q5SG z2VHuu%td_6&SOZ5iBsL&F&7M2Dbf>D2P%GI^SQ-ZEGwPmxrx;=C343~*T39Uxh>8# zmX>T~KDZ~VX#|_L2u8`4kXFx6jr88hc$v|7`fk#>^7^863RMkvkIib#M~q{ON|F10 zRPnr3r+9zF)|wsgTJyL$B2Lkl_arr-)~}r&69F$twYATlDNo)w!raJ|`Vib6`AxDc z$^Y^|Z0)PPs!8h`cg7NW2V0+}et@Q0Y0KGvl$dCWZ)mYt(UEK+`s$!XWNxA;jSA@> zUXi9WSRp43tb!Oo+5+p9*zA00z*Q?DjWjyG)K>B8~9Jr zVL8hJkDjGE8exo*8$h3==6yCJqq&lTRZdTw@|t|Qq)>9>8AFLg_{daDlK}@M>!=Kh zxZ{+1x{c0m;&f3(f69RSwPz>PB-=NQY+kCv&NkZ49DacP=JBCo>7_qsY2U^b#O=O7 z8P{lZ={QAlkzU3KgLjbkT^V%oo0JZF^}Qm&`SuoBZwYK*-8?M~#=0|eo^m$Nos>wW zw2*GTUuM{LO!=kfSRehI{`mXuC;eBwp9y)VW!7~PBaS{jT{pXUOd|7{`*?Y+M|@J`FhR zqG&$aUPI47?>eipriO+l!xg!UE1&dOy-x+^i5#O<&+d_k17?n@L?`-6w=ey`PfEz zeM~&o7|zQ<6sx{876}lrI1w$zi{5H;C!gaSZ2PEUoL^+z@HP3_`^Sb+4p*M_KTGvt zno`VEaig$<%t}yJIU;D|uwD~dq?28rUv0bmD_;-(ox1|}T?phdn2h$49f1<*r>~;u z<`%MsqbVq&imOA{^rEwE$Cg5kNVS7$?VMmX*D?s8u2ljlR1g6~Noonhz|l*Sf*Dmd zgPHvGsc&FKucVA*E5x)D&K$cW$(h7&zC1tqaH}PtkE<(M;gdn`#B6hHJ_A$MN%8?k z%N`GRUJ;p(`BEm88drMr*R@rg^wa$LD^e1)-uEx`9KE#J-@JHq96DiImRO4e4*MDN z&sw^Y0ki%Vw#UKcPjZQ;XOl5=chHB%OYZW0QuR75jD?h8J(90^ExkUPnFRiK8fmj( zQLbApn`+nRJidjdrd~MjJ=QM}HY=UsDXynQ&*j`zU#-a zuj1l{Jft*x-r1d)a=Us%ObV)k~*VLc>m9FyO9H z*QTmabZ=_t9%^@AZ0?tDC4#rj%YG0oJWG}#=!ye$ib~J4h0hZ|z3J=g`#_rB=u%O% zM_EY+lOV%{wJO$$(K>y%$k<^QinWQ6%Pq1Hx0aymTrgQ~!Q{~@8fG51$Sa=j@94}s z9R*8$P{jPG85&$1)_LahWilsX$@#^hd+=8?d#zI49=!{p@Q7%}ta&6`*468B6<_18 zSaYv@^yY01{j5Zu7RcY3)_&)K1Y^Tl<&CK96{%V4*h%tbQ;)m3TegvXCT4ya1B^c1 z(X)2WwVi!vDizvmbJ3*Av3=X`M2{PEv{h|7%$tk{W+Xo~Y|ztFXOy*R=6?8@xkR(< zW#!yr`G#?wxCuuQAHw}E#-pann+L(+YU!&@Z8$AK*HS&F8aW!2U`|UuWmaMI+5Prs zvW&D3_tp~?ncs$N>%4|+pF~rAVh)Hsg*ibq zrsQSgM2^3P#W^1i`GI6#|5vGIsW^Zm9CFOt3L1*q`^q$eaad3*9VjSvB-x{z_TOv48Je?tN+Dk>_Di{Tvpe`NBORP$Z1l&lVlESwM7k`LYI$YR zCp2PfJGw*@N@KS3QkK@Y?Cv@+uojYX3h~SY4vk97RbW>$M@SyD4+HIXOM1CG4%(CWfyIo<**98p(ZY zLfT>`5<8c+YRW|1y(xC#r|-<9rKfCgXozpu!6)v~p{C@4bf*={1SefB}4S-)DB`?Cd`8bDo{q z^Y3pallCpw^=VhH&g;QqiJzUew}-KbxI!=vCRclW|FCXgjIup402V)P)XA!=l7A6_t2RI*q#dEfZh%NGTz{OpoGF5R zVXhoC04x+Uh#HSW-5OTjR9aQ$15T@a{aWxCaLm3+NFr|h*gt}4Np^_bP-v2A9J^X& z!$u_wJBna%?(oOoyR+RTJ4i+wX|U3>B0v>()oeIXLl)pR;W1{_z4s+}3rC zhJY`Oi<&mz6)owa6Np^STLp_IdUfADhwl_6^!o_quvJP(L$?5T?K#LEedtv}(OiA? za&5C*zEVK=8ZMj3EyBs`s^hMzO9u|j=071GSZ$Vl9=*kInwD7f4bc=Qx$>ebi~n`OW@PL5JBe_?wLg5yc&8#%{M;U3)<` zUKbA_Kygnt9Em69|A8YhWg5+C8-MlTK8F5^(ryv0fenc*_D)xk(rq`aB~8Oma!Lqd ztSVf$(SOHoxl%t zH$=~iKYwJ^7Y5wVd8o$KQDXhElKLdXJb=lyWBw6_d|XT$Zw6Y*H>*X85IXNAYX9V# zx7|`;xn=6M=2Zg^5QP)4wDsj(!^4h>4D2wJ&7%L>1odx73jgyW@IOCP{Zq68)7{?$ znOi@`^zf|PEjR*rG)=Myu?+VL=ls>}kN#k8*&mi?VP+Nat_krzQKdbu*U0oCW+yV? zE*6P4gDxm=#5RGxWbwu{-BRgj2vQSbaV?>SUbDHG+>mOH-u_MS07>&XH-EL}l69{L zH&_JFzynROn@wt$UC<6g1-Zr8Ilz30Ah`4cS%58)E)}%p3SS}XU|j3nw6_>|FR15r zID<0%aN-rO#pA}M^=Mkzk-`zA958czLU9H60Rh1=`gE1Ot-T;Nh0M+jPM~@p4U2mM z%QHZDit^&)8iD4ab~@HP2BafhhP;ZW@~3G^B3gr1>09JSV`O37nCOM7&mDBXI@a6i zJPa`sn$3M%mYJR##hi!wG_BB01kLDXc4Z``hP1VBIe6QLQaQg+Xl77Ll_f@H+sh%F z5nF~J8TV_O*cx}oK#LD-mp4CuemD~J{6`SCz23lg^%&+5DW!>z8#BZ7j<30f>GW$G zLT62@UwL%pCuqt{$7JsY@?HAmqSLPx-g?fPPh$h{D$8kaJ%E3>52s^l?2=c7n=zPzv9hAH0}>PzvF>40Xe3fr(?Z)UMW_yLPU<<7aMQX{^Vk@m}RZVSaJ( z(5WGaowm?-USIn5^ud=~K)!c{`5|mlnK@1t-{f7J3u-oE1D;-^?z;es5bZ7-ySDoE zE237+!M$jnLW5|-gCH5GbGysPTl$+bU(KsQ}0u{rv6pKRt^vWo>(pB{c+ zk9Bu>iW@~&H5~O_hK#qQ!0$D=+|*URL|+*OT!$ z|3c6?UZ`+z8HlI=B=6i`KuSv|WSA@!L+1_(iVjf8PXzY9_N=p|l!07$6u3r&2lWjT zMpYjyD;_{Ute#qx{NKRa*8)Ht4}^KS`+F55dDw&2!nj|OMZj4R+&=715kAo_g-mjrfgy2UsRhAP0^)b}%BRJ7!& z(SkyLU&VJ~fU#b6E);CMTD>&m2i=AT47Ph6+iaJ8GJ-Zp>oXa@76$LtMC$lOCT8yd zFnU>UU#2uZZrO9ZL6YtGVcb9wx0y-J73mv-TQ6JC3RoMg!JrS?2;Sk9nW3Bt5E&xz zyCv!Qx@&E?TbyHe?K3PfV!oog9SsGp4lR{ztg{?<8=^SMB6c9>I@JBV8z)AUxV|b9scO{Fy{R-YN7}ab?kA?&vm}OBp(KUYizWufcwR@ZvD=}fcTa;Up zUtU-mO52pn{*ro-XzI(z?gR{QMq%_!r>;o7AzHmdNNx1zS&)aeBC|t(Ac-2Yv`C>&BPtY&S|?e_fGON9gb5%OcN8LVvN}D%r31-b!|s_Zn#b6({aqwk#L5@W%j1a z9a;OM9paInJ8cmb{JS{S45rPZih}EhXPp?P&pGrhs_I|Tqq2AQq|Q&6jvh#6q7aokbvDzjD3n5NBeN{76;8u`!)T1;0kcC7BZQhpmSgr zKB|y-0z3{-h%TQkdCqc^q_3GNRm9E9}=RGSQ8GkIp4H80if2DARat|=>%TovX>ml4FjPv z86B6vxMi>U^JT+(it9mU;(`rQ&(%UrIM*jlYQ?5mA6Fb(NaU zAxy6iG0y0VmL*_Vj`sj9V9XdVsJ@}WQ}xDe{HgZ+Jo-Zu0r9)kQ5zw;6G|zdPhtsx zrmx9v*XfQ*N4yu)72{Vw=f7?LKNPrsQ~S%=IePkN_@prKGxX1964%x6_v1)^NP#5=9&o|BUGMc(a3X$YQJhp^223a+&Do?C62blO#Ak#iB$Ad z?@u}A>MN3P&Hq%Uxx@NEj-}8R7PRU)ey{nmQ?_pUXfF$gr;D*au{9~MXVZ&_t3#}` z;G6oSwAQG$$m$ThC z^43fEGf(Bfk$(1K;1|NZGj~b929HU~abBZg-J8N1*C(=;Re1&R*Ny`nv0NzM9;p!(K^|$4ryxiP91Ij7n4_cq)$57ivsP<5+@xQ(v zh3+R3rU?;{DJXDvwTF#Ut_jUeG7Tdyx-JbyJ?*ql%^^O8K0qvJ2`+9{(&VG%YRO&G z*tVElU~HjYc1A|2xzwg+LZEuJiGq~d4d$p_{o)R1B+t^y9T4bFBYvKto9u3_ zte~8f|4TZ|MKgr2vSoQ1D1{wtD~lh}eR50VT|c}9TkE~?I+rp-R0A;&*YyCJOnnO) zs6S1V5;U{cx3PG}XpTz{*z(JC)L3^pD@AiFRwg%RObuDd%LBl}pZTa~sH5dcOP)ql zCW4pN0?54cFF#u1^d4UR5=Fc`lK*-ww=NrTlH+oUwSAT3IzRUos4*Hfuyy!&mXv~h z9MzlUa~qNT<>OjaK~WL~p^h7xZX4n(-E+3GzjJY%faNWHy-8X5)H6bnMuv3er!CV| zI3j>t&7v9FOk1&S$ixzV7Q=G9<9J52tMqSdhJWKF=Kni(wuW8&!A<353XWZ8((;~_ zqI|URs{_UcPpo&_E6Rs6q{Fy=6GY7EHEzjb51q?}@AgJ&IjwY_Wa8@lnxGwCP4GnP zc!PQG#ZO&DywXv_tEI8Blg&*YM_RD2{rCcS>Tc(dv@AQ#wS^}O9%cz_@e&*Fa?Szh zZ$951_DppIeIesx6w~VHKe*bdZ^4qqm4&}@(?~+RY(3GIG}pj;&CONEop6T})=J{6@e3k&QGt9vd zNId*!*LFVS_`|tQYx|QAX+;;j(=|4(3_6P~Ytq;{7$02aIk}$CWBnozYta$Pv_pEM z*BAcALUg{R)1}jQIlmfQGqFamm^b;fZz6a!etO)0T2A zYDr?DPYbdf0`(7dY|lbp=aRk?s^zl(rl0BIRo_7NnDWTlO0l@4E06ZqZHgV0lJ}Gx zS?2z-&E%purdE(t@36NJT4rYWnSG@;4dbBE8p#Bg_Oo2JLB_{#@5QY;j}6?@yRSP!f(e}V|wtF z4r_ulaSK;nZ7wID1_2FgHUYVyKlXn8z5cg)`0m$yD{XRSFu4-Wu!|H)*5}1OSg#Xi zpssr}%br17sPZ*`*wWw1{?1b%ADQ~|8#Pava`)47aiv#NH{VqEx47e}a;{2}9$dvJ zwT?;9S)XKuE*(BNleU!IU3Ki@;PtY1HhgmF!^a2)1!)Ta5z-)p!( ziY`~DiMSU51rIS*i<;dRg;C1WGQs6xwG@Z8aXE&qJor9i3?^CRyYaKc4<;z;IIOek`A#F_}ieAn{}`WL-WCH@MS!Vt2`5-s)q>-BC<1nR>kx;!PORh zaNT$f2h23puT7rWso5!A*5|Y1?KG<^?mX7cltXjn5aHtR?L(SeHJ2gmeb!&;vv*cC z_b$g2h>LP6q=r-Rc^a%tIc;~%uJ-m#1IZhUT`NRQB3(V__EYIv54n{DaK@nv%T`Wk zV^s*!bK|k%`R%@!Iyu>iHEM1=w=6bk#_~RjI5Y}9i zJmce(@dd;kDuGWu6w-gm6#uPi@m+!>@kKHIFNK8Rf^qQ+nN>d9Mcu6l^IrW!0ht*i zTir8VWpvgac!Lfa1C+n<+%QyRq@O_Q)6>i^$J7XFbO}Zij>Dxu!Q8&v1Z?Q<9*=c& zG(DBbqhSf|G|_dk$#OT6BK;8MfbQgl_;YKboF#kYc$xD#?l-|bzP;s5QQ3z_R)s#I zU8BCcoTb=U{TW>hL!O}l`qn$uGN)~>pST=nD`s7AIqvv^EF+`fV{AHUwia986XL-T;_)#yOlDe;e;ep~L-ktQgR}58 zQ&q~q4_XW2Im4wUoxcghv=Z>@IB*B(fPC{e!J%!y^ju@~;^(3Rz7bS}dXz8((Zv1D zG=EnAiSw8k@N`L3cvwWBtZK;GafY1oLEIBM2{H1f)Q0TQBdYBYh%eH6ZaTxZE^cuF zbr90(8rFS}EquEbGgY6_R;{UrbY4OQ#|y-vl(A-(Q{G?j6^V2yS)szxSHfN04SrOy+ji{PVO>Y4L=znvYJ z4_?LN!a^(|0%^rUBy=kv9joHf8I7Rhi-$9U1%idY3HGk)IxLD)UL|IXRW2V}QU%2u zDo1(ZplzY6W-&vuo8cjmF#?j`LTFO<6Ga$L95lnnk<`EF{)xWv3^`b-Szs8h#>yIb$ISF#fFZ4JweNix zmqt6MbquG3`i0-J#!HEK(%ie(XjP2wyAx=exf=7bvz51^8Q##Bjeh7Kxa@B5Fy{mv z8+lMhwq!#7{$#)F|g;8s<0Dgulo%Vo4!Y=VFy z=tA76*71s+J16mavs zv(J9!y=xj)Qi!}@nFMFrZrqZ3Fblda9Gpa7l9_==@N^3_bTh}r7P`gt+z6UhYdjQL z@dxnT7j7&GuJ&d2Xi>{q$1(|EANZyMx=II7FHwKq^oPddsYem@R3%^H)w2N}>Kb@S z2Umb0%NgwhS)ti!PpxtC&rEEL35kU`ToqQvz1_AbZ;A4P(>n%Nn$AKoP@hTdr~5+; z=&Vz+WpBUnDb9Io<)`^FQwy?9W-h#N8v=sSX|#)!ndXv2DiBRLwm=;!W^z^?DBJWr zA;883#DtuCL2T-OorZ95Xfxm+n(_bhPB$|j^=Ml^zxpZLhGi46k>=Z2fxDhkjmH?< zhUONDEfzp$KQt~{a2;;)15}GRl0T&oh{{}ECnm~z{3dV#EJIp3U@fNALMU%)^Hz{D zK}baZ>4dnHRm!Rb%-J<__%rtkC@>S$=n7tNU~;m$xQ9O+1@N%u*2$}}Gnmh1 z?mnt0YG1m5SN~25jTrl{vTLEn+9yNXR7HapqUfd26pQvcjjWp58e-Xw*7@ZZh|8RT zcZCR_QrcN%p?jwzo}4JrsoB5{bA_jJ#Kmc8ihOPHB4IgoXvbkAE;CAKCV`XEBrdHJwL5${Vdc+ zFI&V|TVSf|y5~d982#cPARKWanGPc>^W^+G?BK@R8giE?Pl_*UK$++po5n4<-4e@C zuSsFm-JMq~7pFQ5>zAJbA9&k{C}^2XV=6x`%Q|sQjn=`~KzmDdhJ(+%Dn?MzS2BT6 zUn}{1-F0{0v;*R&D;HSpY1)`pX#y*UYtOh+%$18u1MUY zZFM};DW(VHa>tmoe@?tv9(jF)tX{ts_UFZcw|tH@&&g8yfo6ziFwE9!-Ne@oN4-I{ zFoX`MiR)R*w`a*+8eQ&`JDX&N9h?yvbe#8I#tIsrcE#6RpeVXBqNJ(Rgpd znX0>qhgoa0Bp>_d8+j<^;7XqrIW`4j!lMx%sW6r1F4e`qd}ZCqfBDJ=NS_M>KsET& z;4fd<`l|W28?Em`zplYELT@2pTVdA$vM1Dr@{>#>!#{o#3{=(SFEBk7wUu?7yZ0o~ z*87%vn_Dyd**oIcN3nev@t;4@rk~#W)4yjQctf{yaEIe|TNkbjj789&XGWnuM8xxCy0o(V2xRc3u5Jd;0+!uy0p`j$ubjPBpZ{6eS_;=nl{1prl^WV+B6%U)>>2WXm2_jZpXW)Sl5-b9v(&5ZUx1 zu4#PP49#e^5opq~j14Q=?F^}pm^O|56u}?J$z~l5d2~NLdyT|?q;BY;wAO{R)_`5< zV?5Bjed~y1lN~+anR?W^0~~ER+PJEKc!Dm8D0)MSihY83X7AtRSMS!EcV>TdXG zn8#?V%1E=q+QZz7mdoG}2T=g%18xx<=44}Y$i4^^xc&CIx|XoTvS}L`Bi)_74vOX4 z`LD|@o3rbg0l5ox5E^9)cgU zJlkT1X&r4vfaqqs9TULejK=sTMP<3}fjFTF;VXh0S$EcB#C5E~Z+!hh@O9VtAgAn~ zii3adyZ?p`{&jr+@5H+1T0ehYTTj{8n#@DFaFEQVar<>>DQk90ZA2|~QE5R*=&M0t z$_L5=d!349wZ&jU!Lje*RNliLydP<5tJuhWqs*HTyoSz0r#%f zf55P*XrGbgUf6TJ=FNRGG;{a!I3Bvh2tR?3te-EU72C6vBrQb&Gdf~PA>`Y5OFtPo zU>A3>v8VL+-SZFp$BW+t&##r7UxZ)Lbx4laa9NqkjQ6Ur3z0T(Ys4dPx#c1$VA>Bi7yhg_F~~*#lE(W(##VF;SEY zB#K*hA3e|)J>tRNLJ-UTOQ+njkPDT|nT}NG>tG;AdT`~+E$kC1h{N8;U}XR_`VkP@ zulG)s_e*i zyG^g?dN~u)@A}5ds}@Qq!ZQ07UJDIGZqVyPc=eeu(k9ez@IYOxlg`dz2fK{Sw4UO$ zvJ)&;X>+q6;hqcaXRF{!?A+@TZZ4^>>1>i2x26IF+^oV^@K=gAD`}k>*bpsWc8eAW zGwQxEJ1Ca&xj;eu#Y9sT^%xndsrbi#GdO!(J-nQ1zjygbRRZ`8nW^iHRxNf&Kl5== zy|Qb}EiX%wr{ao-+4oz(7moJg;y3+Y|8%T zbO#$l^gx;Ulc(K$;OYM%61+hTkB~B8Tay8iUjv1$xVfk@A4U%QygSS@X7T4Lz3f%+ z9$FyX$#3-|RbUiyt>cC?yX(a9fc$Y+3+*fA0GG!0T|{T0aY3vT)R93o{!?@7w;yj6 z!TfhFwX3E0$+j{x8XCTe-!#7b*-_VWb_(hkgy+gm$aaFh6jtQnqzB;-46vcw_4|S| zS__dXI`v!kz6R8n%{5-q>%LL3&K8@s@_J%}UBHrDxwaolp?DtcFP(Xtm6E;<8rN=Q znqo4=s#kR8@p1`jo^iVr!Yzn=I`DfQ*nKUeS&p}JaGbdOQ)NA2hREuu^S@aFCT^Cz z?LQ#u13*Qk?2J~5KH+k2h?`LG|6stFQCJv}QY4gK;al>2J;j$fq0rMXL4<7vFz_Y0 z9UMI-1shm~(TZZ5&GH{Qv01&{ZdReuPk$dSufoD5No2rP{_5>$&mmlnx2Nc2LhsjA z@RslW5)TWAjLXNXS*?VHtmA6fH~@7pe`w-(hQx7GFG;&3c7JDYH4_CTI^uCw7}4y7 zwZaQkSIWnpQwt)x#Yf<=K&xwvY%2%zpwkHBiU$?48Kmv&oTKE$7P6N6yco{SLWe@jQ+_5w+bzVZRq zfrDKFq`$tPcXOF@?}%KjrjQate)I59{ez9#qgT;@_9IavTywZF=&V=Xja~FfRp|zK z?H{KGZ5X^1c^-o(Vz4z_|4jgL4n+2U*Wy(NJNZn`oTeOS=n5FQr8Q*~xjP?}4-=Bk ziloy^Im;VU|KUE5_eAiY?fcsET=i|huTnPCII|a1el6UyRk@wUXGMv(K8o=OEPK2L zXB#%DHq;NTPn_i(1z*HZitlKpbco6(n?u%{hwD2!Jn58x)`y2@9Q|#p88oA12}{O? z5vt3DUGai1HCn=l#}!G>55_3+P(>vlS&AJqEJY+oSJuE{2TCg#cxJZa<_pA;i{y86s{2htKarMX`vv3Ps# zkXZ4x{$)wU#iNz1f<<_Xy-GNI=E+!0@KXUvtB365lyZ?Jc<-m)tX5hdDr$csW2uzq zgD0g{d~t?LYuye_G^z+G^rh|FSp>QBRmUc8>9GGJ^&?P$l*$Ihz!A3;Pp(+@)9c6X zBU63P-e}!~>992~K5cCkGkhe;Mr=pGdAu&)7nFXyH`v@=(mY<^9V%<-CE5#T@T)s? zx>osPDJ?=>fjljjwV^>xgH|nWaMu2|e`#n+q0g!EK~Iiv%jlQ&QPa~l(_?D!<6A46 zZNrBeZY;_tgZG-FA5zsDO>jN!Dt@vv_vAfHj$R-n%8yX%G@$K{Om~3fKkfJb;e-Et z_Q2l+4i(IhEb{)9-gCrp4#&|8r`6JGICaA@98h~kb<`{O_WVH0*5dFy6(L^wYfFog zeK%k}I8!{HYMNKXUDzhdgU4(K7ln%-me~OlI-ycf9}j6C8A58# zuE!1nzYPQJ>y8h`*L0jmuBihGw^Bg{?`tkbpe|w&1C#Aj6`{3vOZW1C0vhyrLlfUe zk?rJ&L`Phc%VoZw3#6%SGkT9M_)gOV$TDT3liir{`C7yqOSeag!}QKvJHrc%a-ze{ zGTZbkJeD@ExiyJsr^7i0=A{9$tuJ@>|K9HR>ge2JeKf1DMJB>4EU2e9Gou{$U5n`X zl!nx?@-V%2FKvqLdrCbDjkXo>jSS`0P*Fd#KlBL_RD=l#6I42HvYxKJqLh+gHG^Fa z$&h$fu)V=eZ_FF&&*^5QW!|junDn;Ypwt`oP|yk5pIvSuwLWUPQ&_{fHWQ#(`Xqcm zF>pV}ml2#HekSV(v;J70LyLZ7bvxzqHDH{Oo-l!hZ{|mS+}#hjN(6{J+&lS%Sm!Fz ze0wf8N37iun{%vxajUL*zRWvtT_f!NY9jF@;zf*osnAQ)0>?oz#d9RZcWpPVW^RF< zBP|wG7Cy3FQ1{6FVK+Z)WyJY2g& zIdJdW2k_ufjcOY2DiMe-r0>v!Ui;h6{Wn??zjAVpbS@I1kfV)r0ciVOPlo&5DsD|< zlZdG)P~hrH(u0RoPM-I4Dfvhq>g(Xs$-P5Ii!xMA-A7oCT9YY5pRkpuu&w8;cp$H) zF}KjX{rt6fGR8peD;#LL^;|^1AYSe{AD=RXx*jx+IoLG(#!Fftz#TZ(B}J3T6QK3= zg8aqES{oC_cY8AD&mL$RWJeN;x9DF|t@f-7EvQ%U)Eldd+6JX^MhxnVHQVM_^&2Wk zv)S+rcPrtiLjQ_&EO)7b4i5)(16xy8uBplBYb2GJ`F{-T$a9l3=RcfF*PkhS&h;Vo zei=F5SC^>N`R>GV=x}Cy8W&TmY=)&)vQB+}XX?qK)C1?;=f?~V_cWCq%=n!ot2^Q- z=7;bZ)R#=YRW3cEzX|3awxK@Xd4MiC^(v{*7_i5L(?6!m{e#w_^P9q0H*{I=T!Lv< z;Ig&@&kbN8=bEt|sD|>POFwjU=HiTig1$cE+ySYVxf!}cKBvC-{ZYLjD4^;~MS|qJ z+)8zN+N!Qd^S?CoGKvUNs=!Tmk+WG>)sn_KuU6P9f;GM|$Tx}cE-gY@YH%lLJ9%5R zp?q)s&zu_5;EU;8;up!>`?ugy6~I9b%xYHb`QS{S7>8Jz67VU0KIeOXjEQa=*#z2BPE$(XqRT zkXDQ2b`o4LmI==l1hO|?7e?j2{wI-#&-qf$~da@fkF5x>~<8(aHmn^QUdT5PLjUk7y5{#qe{ikCLBru}Sm zmyT``LGJWIEUEzLb%Dl9Q8A{lp2@fCZbqeC>L4Ko1yau$y(hn(uoU2RdPU&|T>d5| z_9^0%uk;iMNXQ|Q^M;0E^M+!u#8z0M@))|OPO^z-WW?P#EkR|Fy{P0V!B?(`=L{NW z{r@b<+vRSDD$X3Vr8hSp2Ut4zFpjLiA-oMR#d|eHF`2wUqmvr3gA;=ytTU%ceg4J^ zJk^8rha%ZxO8OQq!?^3ip_Z-5k=Bk6XDyo{BOc$mChFaLzEA#PF*IYrRbF1sRbHTS zJ3%p_?@+lR`XiBl@LapuA-*)6+GQA-U37_+9&PilW8q0J-8n0~?w>qU92eAJO1=BB z$9k7-2@V6jFL5M{Flk=IG8l&hJNUe2+oi^Sum!Wcn?1_Le4yQk`8wY_-qi+g zGRXU0D3{wy9?k1>JoAU;a}VP?Do;wVfX+(GEThhkj7mdpt7e#Tgx;o|d!J|Cy1apG zFG8du033@xf$w9T!S(U1^(#M=nSDF+?%G+2F27ay5$jdbN9xu8M)v?*kmsa4{5Hvc zR3lKHEVi!lSL{U>KH1hK>cZGNa1YrK5PyH6cxbIQlYAp^sd71eh_r5O&>$T#%Bu)R zttR!(aPxSc`W1$Li6*Cn)Z#K5$%AX9l z5piudlGtDME!G&=dV6di)V?IC^|T3C(cmpJ4F@}MC2Je9YY_%_PFV3T5>*u16_%Tf zc=5R3wPIr>D^Vc=UsP|kO}njJu`EZC%Lo}&=NGX^PO&Y?2JAI* zzrFn+=Ie;n<|z8|`UMbZ4-1?dv-G)*Oyo@+nbTe`$rooGnVxnGaG%lVQ6^C)Jm|+` zQD!4D>o~RHd8wS?RLLAcAb1AE3=LI5lQs0b?dFdWPtFR9JQ+KAtQXbtfU50=pEp|4 z2`^gy6h5($aWCl3;DupD5LoL155T;5*ASuCd-iS{Rh~~tp*tS7HyWN*l`Lfucw#)d z&N#GqT95WMC>qoNoA18&`#vP=8rzy9+)UT5U%yyEBS&G5=n0llH}VH{%4k`lNG-T|BCQH} z`(D#UYn)<}OmnX07aJP!TgJ;xYc|*gA6_4V82(8!Y-|@zd_SUatCD$T`hW*AAiKj? z))9y|*P3rBtsn~(G?S!RxtKF@*TBu-b6PA&x-QN(!Ihf%lkb%D}qi zd7M3^;tXf|^36U3%?CBXaAVSq@HyoRZa4zz(P+pFdn;%4kn(&sZe>VrjdC?An^E9>)XOp1d4apu3PmkL2`^Zvp3V96l_Oxy;adFG=&MqUXUs& zgYbHLHpDaw)`Ca<88Q*}SIC6dVVkYmy6gb0Nm_`kUa@so`QyByv>k!hZvQ9WLX0l(_|a;zKDYW;fuwd5gp^XfT6rAs1o| ze)CyIXLpofG577&!k{0~I_@u0sALWTCIgQQ=5X(}o88ZLKOl=3pxgKGpl$Oeu)Tsg zt&RWP=u&9?2T#p8aNmMju5#p--Yi5~gb8Ct+a8YJnRh=_E%2(ups!M^CHKim#%9xn z3*J>AXK%kDA+>tZP;&}q=JGc*Gr0|?7<4bxaW!~`CB{Loa<-m{j6ZW}iRD|Vrqzbc zFWqyKp-02sRQCqLl)v9`zXu1|wnYT3iNr%zv`|le6GWYQGCaCGlOgr~k=O6yj7IHf z3`z6ui#%4eN+-AyIQv(R4`D0D2j91xcCuO7J{NJ$ zG4Q3#jTGH?gXz6;+EK@uEj+H9mD~CPzQvPAJ z0?q}!fE{TaTo}Hi_GZAhi#{>$u#bS7xEv3(n5cfNcMM`91(6p8C`6vJ$gy3TIe-H5 z2MywU18?2<&l~?RPonql(j`T54-{ z4~Er@GIZK_N)>s!AsD-ATpd8cW8_Owi&nvsAn5E^qOXTr%B~CWIoR>$+d-N#(jZ4? zgML@l_{ReRrXt+OqvXf?23p&0KgHHLdf0XukQ3q&S7C;Wi_(~=(Sy4_j81N=HihuV zU{HzA{abiFhT+R7NB{C4p_T0ADe3K76tFC`Ygc7{>%UaZ*k0~PI8P1yBXRqA6XPd zW%T2lK7in{M-ir@4h7&?@xjwoh0oVR?dlujAHELBUK?6+7%ZYrF?3k|QKzahSVD22 zc?2{l7-ZEWuNJs@MjB{l{F|UvYX|vvH0*D+-@o(VKRP4rA8y7{$hB_^tVvYqyVTs; zE^59>)UxQHB3gd&Wkp$hS@&kFsqM7br;>gMb$=^fE=ON@JYe~>_~$T9amZ5k>xofT zmy8@&U}l0Crj;^gajZqU;;f<)b&%VrkRV&}xtFUW^haK+_n_x)2|%8Zd2-TN`66UH z7G(Qz2pj#zVpoJda0wDzp({fU;nO_1IF!MrmejSm!T7KI_^23W(~-Df&R5S$mSw^0 zd?~@yuxiOvA!8lm+kz#N8$tJU&(MVyXS(y_5Sim_d^LKn zdY3|IP^k$hTh{Z0$ajNie3XNDaYrDRVXIz1Hzio*T{K^|}P>N@u?XCgFOVZYjxbZ@30jJY^948@nE>#ZY0#A zLazbBId?1Vyo-j~Xq6soSEjw!Gk-ZLPqsYus>VS%1HC2KVMtbfGug|2LwyR`poKf#$+cMmeIgA6i1I28c1 zdPj4E96gsz%jb5q4tX3`q9hdDpbLl@e6~Vt&P|*G`SE|Hj3&+-TbB=gaKQja>&iYo zQq!mhJ5ejO{Pgm|2-ufcAaIThE$Q%u#&1ryQ|U5`+5D`^rn4CFtbV_caXnS`HZH&k z>{5KY5x(K%pieMN=P)v<@$6;pxMO;K@nL zA>*gfSX`16V@TK=5L`G=(6T-t8&_&P^HKm>7xDn+*Ehu5kYR<{m2#v)n*zdaB5xuo zYT{=BveG%YSsVu@blsuuDCL63bZMeB(#G$mygQ|W^~8D)G(IR=J$-b^%%`%QgARg7VH=zwm=# zrkr;j9d8gPGO?@O%rx;Gen?*;Ng$Ho*K)OW1{euM9Wk!EGGU2Yn_2!yTwL$AA$geW>oPE<)E3Z-K>T5#L!BgE!Vmy`7-|p z0{~1216Ja57UlJ5LoWBb5UIVI(%}9SP5Az?qwS6I*D*Y=h)z{lmGk_p9TmSO1Q4vx zdYvjAM_#|nYDkSFR6rVC;issV4@^(VEiKUhCV2PWuCTvnnlveMSUNWBy_Ey^y8PMU zoDFB`hU1Uktlg*dgp)k0F}x)jP8wlXc6JnhNaX*4o!cDfhE^(uMLCByXMAKSbq~hKJ@`v zqEH8HA`;xaY-XCYp{#C2W?3X#KHOL6_Wi&^l%O*hDP)ANnC=Q0VXFIG7~?walhGom zsTyIMXg-_wLPZV5DtzND#^MR$X>qQT30j+)t7j9Qs@VHj6f(i=d$l(nzsuf4oHmts zWZIQG`t-YP`S7hLR#xl#o!87J8{5|k>Thu#wgj47>^oU191pD-T1>SFWO*aP5~Zs) zD&H@+)o*~GA1Jh9hn=9kM9gRUpPI{UZuGpfhj#t4W@w(oi$i&IWN5s!IXp%q4?8rT0;Ir=e$ zhSuAVhF0%t1sCehpqy=4hnLbM?ccLx|A*A>KM3>w`&{4uQtJK3M{@qHg3AS8ewV1^ z+dbDha;c(C$%WRj%mB(HgL4bCk7v;pvC3jA69v&cY5{$_a6S81wDpM~AleDn=;7i1 zqWyZ-<9V`G5bxFsr*Spa%5HnYX847iRM=FW`0o8}@);wuUiBo_fd7xT_l|0ETla-g zRFtX+B3%KMj?z0K(nX|%UZnTl2@o3~9qC1S4^3)-P*gyA?}P+_&`Cm(KnP^rtUbnB zXRmMV@0@$iICua1j*N`A%=yfx{7Mlg?(J-2-hPh7oLj?T03(XSndkW!i~Y_tF}uCNKBIO{I~_v$>l5kx6rq%V|l9c8;PMfUz@y4 z0KbaDwbNbmp*b-x?%cd!#~eqDc1w6MB&%5zU}Ctl)WK4eiyig~G1 zHTX1*xtIa0z6u$?t5IJ4RHbfuzQm3!O73zHm{nwPRDqVBNZ$}6(l@%&4Ke3mWR#(x zpO1RsFkbM?xL+!nrQs!>G-E#L!nUrehgB7V=+!cwiwSynsv3uuOKK;hwH=W>)SARO zQ$xf3hl~=2?Jr(kUAiUot~M=$P}I%7&FxL|%)HQp-K_!iI17XTf(9mzP7?kz%eQ~5 zrhi^u%Fqp(XSyMIr+skqTe{=QfO%8S`$`b7b7>N}H0ySBTAr8di&WoFs-j(1v51Ud z@~9d8hVI+kNPLQ1>Itof)5R>((zB4#8s;&v0U&9BsZmNezDX1taN+9zkag{KNSkJ; ztB`=8K*Alf(00|mdw%7Q4y|xc00%-FIS#s58v~SEH9VR6Ga_)WE1L~!+4#5>{L!D) z-#hB3lXYeOl8?bpTiVm4So@MJ1O4z0Y&vEDWhQ@sXP}YtE|13q%p0DhHuR|;>^=C% z+!Xb;!0>~zf14kpeCDl74y>23%nf!ecORhCWwb&vSPYNKiOt%j0Kp9yP=quMZrbf> zC0;uBbzgWL!ZgDgI}KScha10F&u{OJGd-Dw2r(Q7RAk* zfg_76-<2tEwbu`BzEfqf%9+RUzSAz#C2dowLK7$Fk4Qqxz~VSEB1i7ZY0fPD%sgAx zB6JQZZXaPARew60P#cW)z7hkV7u;IXr^jd2I6IAV2YS-#yew`9P`7D1Y&H`o?0py- zaZ?zY1p}S;o{5dtjyP^_XAw<%$Dl^{c!UW>oV*?IlwaDdv8(@(`j*My_|)+CjDk1h zjDu0(RM*gcC|P)gAmFM&DUtX|F?lcUTiU?KmU@;B!TIl#jARlX^(4QMRIq=3-$d9Q z1!z7^??j<#E%nwkxozS*JDIil^ww7ip$u#;X&ueZ3>QxnM&F;a-lZm*4Tf|0iN9?4 zw#3c^B(u}GPA8~Y1F3=URg_fz;t^gAU=yiSX62+E)|i>@fA^IyH?&W7>SCT{&50&z zz+xK(nc6uOaVh|JB;ur1*3@bnrqm+X=XTrmx!Tbflsq|Lcax(f6M}FmciKRQ?p4*L3Fr zXa;!MvXD#9(Gdv3`~hg|JUsV``*$(AgO1*cEJ;Pi%l2{Gy~@|g(qJXw@GBC$W;ho1 zc}MMai`YH~ztJfap>3JfxO0n{rvXUgVvh}5FNhB)$qkVQvCE4?P`s;+(||gqR~9$M zqwW(2{t>T2dp}nUQiGLee>hk13U|}sauf0hx@e8v0@pSWW#FkMOSA3J>%i_xA zxu0kteue$ZaU~=S^xf+uhf2%ca7`%WX8^Ud#$bh$xPz~ai};2EYfN;8oS3x7NRHy? zAMUQbTDtW#4{69=_Kc$s+i?)1s{$r9`qda z{XN0#7(X!{U_ZUPoM$GUIpIZ)~2kpaCZQ zl5uj6PE;x6RzL1~f;xJoVe*KOSYF#7O_(Gz84f}1#WIZ1Z1A-EShAHnHyEK85O9y# z96x~Am6qs{l}~*?{cFv2+!>wt!sP&0?|ASei0Co(mgVw$eVFdM62s**qX5P5yR!#$ zLFET*&|2RW{Tk*imMzM?IAEMZUcuuLS{f)ikCJoYttppVqS1hiM=gWU_-#&8@<=-X z?xz4qAupY+^DTnld6snc$7%mx7li-$FS`EUyFveXt2gh`za~#qykd4U@ZS4xSAg?G z8Im!J-Dg74m`B}08>sr`#4Mo|IOs6l*VlGt;Wjp<9%a6gJLbDTMl|@o!({i>UAdoA zYBCEjM!Gyf2954Ky%-LFZ+0u_wH&4}mp?~adAU)VrhjO>R=xJr>YnX%`P#IH1L1zh zk6g_s+WkpQ7ZDvEP|PNieY@1_8opr(1}5JY`Br$$*iHo8 zE%7E3&N*Xz**1(qw4lADPg)c{5j({<*cl!k)t9>dZ+wDa2Q_!dwpc(FO4-sW_s&cSK z_l}hl^FE=<3-j_EGN3v z>t!nC*l6nNrn{V8w6Lw*U2Kn)YBO;Rxh?j{%IeE8y&q*=zn*|9Ky-4aI-JZE1npji zY_jRLVJ$N@9G08;d<2r4OAq|v&Jho7bikv=w4zt4-PXf7HJ}cxZ4<*bkh}Q6w&IL)u~Ohmr)*QwPef4#C!p?1om-r6jt;2R`;Zpfa@b zC{3&F&R!Z*RF`wt6idzF_7dHwDbS*q0f^Yn@#9tZ*x~U*xpITeUz!%HkwGmZ=Ui3cWmKfbFPrxn#bf;ez zs?M-S_)+lrG$4d9oSSZ|hes}02Zu<<1-evISo!2CRzo+5OQ>dYi6w#hIn;(Ui2Nvr5aSIG=mvW6Oa`torgUZRD-VcmWRSrg)SDpSCVHn|MpiU(e-hs}DFQfPa&T6)b3&L`T%#^9AnLS9T18$N~XKPYZI z^64v-$u)w;mo5T6h0-_?{Md(mwaS5cxJrEmWO*nx?fgOa)(Xv3Wm>Fxr8xXUyZ+%yBk;Q`%_yoMnBQ{1;{A6txt^RT z0N7VrKO+O;(Ntmy=H+F##*nv<%19;WeDzrywRZZ}qW?u$g;;gZqnhU<(m=Bu&k>sPwT4Su&bW-#YW=&pPZsV)>~vPxn!Dq_;9ur!&zlrY3Dee9sn zueTDQQKq}n>9FpF3+-NNT7Vxl`tL0?7ZZr2;V@xv5vg(F;@#8xx79z7t~qnP19yUr z*(5DAf&*6!GIyS6rv*%lV)NKCMyVjT~3L9Ui!%O!CE; z%i;bVkucLQkbQ%Tw<1YTYcH)QWFDVKj@f#IbZ!Cu>`~A!XLP_8+1c72d0`V?{fY-7 zsSm#+AAeDu!~4H@Q!5GHK}HJX28YP=Nn}gR(CxIEewyXlL?ge~HV?CoaQ!#Nh0qz@=*9bBxhuM{3c9kTH1kO?oe zPWUkQ5d7%bhZGKStML_3d@*qC_PIwX)bh2zy_~f=*wn#2_N8+zORd|J^@EgD?c{F# z%ij+G-IQRpwix{PQ7`OnUT8=A8Fe7?qR+XNEBq{jE6O6*3(Bpo`m4xZ4;d^Qv4L3k zQxt9?DinK^J;Qu)(Ee{TGw0?v5n;Y}{@%0rAHu)>%%Xm`C;HoesN`*C&WUyCo%cwv z{rb_aPqCOSRE>9_cqnyMs-U*-mH5}1jEo6-ZxM$xwDa~|^GxvbSU-i%i_ovFS=65R zMpQQaxG-zs*@;JrykAk*EcXcTibTv!7LsR0q~%8$){oH%_kJ`Pupcb%R|mrt%4DdM zA;B?~G8XUh_O^gBHU6qrIupBxOd95!&2`!F;CsQ5&oUZs9%R3&co_U>S z9zFsW^fo*2K-&_4x~M8|XCe8cz7=O5nfpb6tGODXM5p;w{jk!f3i9h7Hd5VZ?=cL` zpAje46q*7XGi5$sO=T3T-SW`0fIT2a~Ex%@{7c zBlrjOfta{VOK^+`wFFE0V5kGPVyoalU*}y?4@Jc7Op%n0hC0p%&M>&CKMKJBqo+N4)NlX&j8dVSHd!C}!WM zF68n0%ZCveoBp8WErl7y&Dm7*GMFWi8v8k5@P#1ko0T&k(#fT07v1>7U`BP$T&!-f zG}RjxqmY_JA0d1jwJerf@ezOohloxeTqUr_C$udU4Rj8L4#<^s!X+ry<4BZ(LOCir zme7rmNXjSg^>VBiCz!k6%BtIXhn23s5z!9qMDX&?of__!9}yeb9}Z;65_jF%*N@Lz z&ys&y^yX4t(pp=RX<$_*v%xk$%TP8=He%#`xwts(J_+*2nhOLT3P_9S8w`FLGUTeJ zm!3K(!`wf~+7xOh8kav@Gi6h6NR3NF!~rz0rzey=Yj9!z^m|+y#`pDU?kBo5yLr0R z<;YEaL3+(fYB!vXl3z^su^H%%T1df=)kJ2HwOR!9-Z$U8)-y+ zKD0pQ1*xMj%bJ*5sFiojVZq7%i{r_^@P!x7O@X8`^$2k7iV^ygD!Cpjz1benZA2Y% zolpTg?_^(;E~P&CeRAb5es6X?OyZ|#=VZr2T$pcCW#c-&%K=+3w zMw3FyFpbzS>I}IU;fe=7=|pOr#Cpuc)v{K?GTdnFxtp1a9$EEEm z`_0JSJHHzP#$TrU8Nm@**uZwwMEf*Nlr2+xG}RI|DdU4xAXe+Wi+EB8yF8+9K&9(= zGv_6x_b{W5)&_BT86kio8_*vu4m%z8hr@hv(pe_{{dRn!L9&mZMr!DNrN-tO;X5wI zq!cnvpkk1DY)q@Hdaf}tYh!!O@G-1=O=d(&+2Q6lRwuCfT|h}<^C4PhdO~I9)7Sib z67qwG8SKJgV~VpxxcNE-%_oTWVx--NZhRof z$x+y}Qp{M4pW1wTJ6AI1iI(bH`6GNf5JT3+vPK-yK;FPoXUkVttszmg6pr(;A|>rQ zRk0-0E1xfc-zn8KnewT*rOc@f96#bBOa=?Htx>1`C7O)iT3Ws8nUDkL(stcGFMwZ0eFn3aXyiEY-TXU+v@Y`LW(~qF*f1 z58jeIfXd5_*MpAOv3x#mAQBP{SS?&JLi&E&3jns4|8G!?ETD@yWOfe%f+Oko2L*F73~0e|beNRl|~^$1Y=ZzRyE1P_UmhL*9C^5{)Wz=>X>L!0%K z=_2~3DpHmK2rOe4KS0r)C+dymCx|KOH@1+z<<*9LB9P7yQJP#e(=iQQ>1Fz_1`KtK z(|4+7u{-U^CaTIlL1qP=mgZxwYwMke7#sJh7ra!}`ES3n9pquw2B`+~g5*70i~#(Q zK!JekZ;oic-_J}Ksi{WaJ)4{DVDdgkh%a2P^`we9RKGl{#)Mn&ld_cj}kUPTIY1Tj1py5GnD9~k#1w{S-4?zbp+K|mx$Xo$BHL2UaMfWO}^w90hFq(~+w8zif&MakZZG&Q!&`KyeFO}S@ z`86M|vU|d7FGn}9Ez>H+xj!?7sXQx>e;hSVM{$8YEF;=~#t^jk^D=jREW<6Yx4Hb> z1a!}JSSAqe=M9nbqJQjFRrB9y!_z2e(tS+LQwMq4U$o1#fjo{X!P^lb%fJq<}9~W!~-F&`u=rY z$u;E%8Hpqe@_Qc-+f{Y@Hg(f3j*2*Qy0$}Ii!pI;-H~rd zhn~%OtiSH{sG0oX-ut~fsRAESIz(OD$MW!5p3nH}Z&dW5%31<~7QTVo(UTe8BEH!$ zOZ4jIOIPffg~O(xGc%3o(s$d&FF+7o;gmkeg1{?EBXli_R$XAaQq%ZDTL0a)4afT} z`}vVQADQk{%flr{0z3>SmumDu+$Ah!voy2P3y$oOK5C8uO>Q_xg1P9I3Zc- z83gpf;d#H9Yj)Fm$&H%w4Ze`O3HMCU&*|4za*GJIk>8iv6$u}sK~G==#o1M&FDza% zz)!ZgYVGU$KOCmF3rU^0z3n6evM^|6mJMsZfYmEzadQMjrZ-{n)>@w z{-v@qwH(&QCHXmg9f_{fzevMk%;(~=!rFGq`9#%TJ7lE>q@85t#HoHxlPMNR?I zDx$WxuNGBS6b-UNRpG$w&i$pY7DBY$Fuc^$jwSMGgSVYo(=3|4gNm{?5Ea^yv2D;G?8%I%<<=AWP;=4L#$_56w|NKFG7qUlI{70DuT29z38Q;L>Dc$@Xq=+t?ldJou zt}4P=CQE6Ce91Lw=Z;azxNCHP%E*RMQ)tL?p+V#kd*V8Dq6(Ox!p3bp{u zM7Q76Mw6GtP(kT|p;dYY&CVIfcAd18+w`qho*AdSc$)p=bk45Yb>Pm@jU&*J&`{LT zudQPcFFSI9%nan;`68qh_6dOH77aqwZM*hRh&{4=%%>L*?}$?7Z3JZR->jdoHWQVU ze^5b_G<8RUz4KHdbXzL#q_!z{7;Puz(8h-v6;WwF7xJ+0=5y+`YoT+gDt>MTfkb>A9HYI#^`5!iAFJvc25^$@X%Ggy=IzyYNm1-LfOPUG)TH^1PH_7QqInYPZ3}FN{@L z-pkEeIIc6HhM7wPvJ4;?#idhTM8-sp*edTU6B34+hAYl z{>gM6`rF2O(_v{tQM2`kFkScHRyt&$rCITI!>Jc>7C*)2*<# zPA!C7BK-(Mx~{M@hENJyqDvqJ!uBvJm!5W&x_%BB(sbbZaMq>S>hHne8W*x=Z;8X7 zQ@yNtgt+Ys{M)1cc|l*{NQ~eNq*!6QR$D91X&taR5VG;)K@UnIWqL&#opAppR{>lu z5?kNL@4-*Y|4TAFaHle{INqw%H|@n3QPzAyDrPz72bClK{55TCku54?Q|xmwL${p^>hB$-Kl}Q7r=? zU+JSdSC7^)Ukb(K#p)Ywc;`wxQTNT?93x+Ifk>~$K2g@D)QpB@EZ;~H)2=J1+>z+C zAOLMno+DW+lY_J!n`HY1eBGcg9!AmmSsfdGV09vks>oc3>)l)YUguGsd$S~B*{|J9 zc1mi$a%po6DerrpqKBkL!S7FWm>-N)`=99k!cGz8{F9sW4<>E4QaZH!Y@_plStG~? zGsc-?c3e-7#r&v`G-g{T!A0*w@MGsNw1=p>+1eO=nEis z{9O)nZO*)VvTsNlp4`_Vl}QC~>8f)^NTeB3FhwT?PnO{lh%gqy1P<5X6iiXz1*~P5 z5R*w~{|EyJh-!)daixzUA*~-YK1xCq!Pv2X>(FS>EVwz7(QddaAp>zqO(rFmMBQrL+kx zPd?l<=AE2d6hjnHXGI&6T}@Fy-QPano;^Fzq&rZRrBxLbQAz3+eOa%}uge{XjDP-s zP2$=0dx?rICr3S72T)axR6nkp%GWus+zh<6A^qv}cnltV@@J*-JCN5P?2-9kq0*m{*T*ScR8$ZEJGr103AqY7 z<{0Fh+ALsNbiqupAEgCV0{==>ep55x#=2=(oL#MK>TX7EMs2_r_8#E^3MS(g&30%q z!(ZX0Wh9mWc?Y+JAN1B=#QZeRYpUz{r8?N4gGLRklF|&3o%7AkTHwgWhyMI9|GZju zqKRpd$59Y$ncnfpoblk~eiYo2i;t(caAeb0cO5&Yp{#f7S}l+Ez1&ENc@7CG)#y}< zthkSP_iCb30HK%hMHj;oLIDnSM2@<*KxqT^+g(we09E-d{qrZERHH`=la_dB?p68s zJaJl~#xO4~L_nJF*R+q_%-i%(T<w_ebGrF;nV>>chUZ~QjCVNQ-Ktn0m-N{<7CEH8t45eax3y*3=9ZQ^ zBo)?_8b8cLrm6a`2#NR*)5}p)?Dh!D6jUp8n4v!NVXnb6`p5e{0N~Osx+`(?I`le# zr)S(n??j`yh_R1E+62h4J^C-VaXzFKUslyA@AqR36_0>tz_aU`J9sJv?CPn1sBd^G zv+>REtqx9*(R6=U1FCQk%1Uzbnhq57k+)Q(fK0b2e!{bgoc# zCURN%rGxjn?`Tv9^lJHrC?nOd*Q#;G08bC99h7R5v<$Q~L}*(PFu98tlR>wAH(z?d ztC_QuYdVJf(wikYzlk>oM>M{-NTstZ@5olPBYZ~?xzCn59~S<^QH1Q<9d40BT+_{ zf#>Dmj~%j?nG7?XrD9I1@yi|rqAkN<`h2CGH`<2poiXPhe95G&zc2zkS;&mL4%&O^ZhH6)rxRSlLu2}QG(3uQp z&xbX2!IMXJTY(N^?WtU&b20||>AX~qUzVTJ)5}|k<#Z=Xil!`BFEM1ycMb;zkVum016|^HOXvCcSpTwQr7Qu+LfR&?9H(idt#G@a1QKk{u_ZK^ ze)5i!EHm?p0!?`;x`zn?k)h&k%HxJX%g?2&`EwgQ?b#!d3MD%soe27a^BUq_ao@&S zru_){h!fM!>GtJn+LVd@Za6(R;ZDF-2d7n}`B+S+)o7!b&;9P#z%V_&+KDshHeab@wz z>@mGI+}7{n-?J-e()Lk4;pk)H29QtyR|spZ?#w?{fKd0jDKm7saAW-lUt`h`XA;qF z3E2Rx;~(xJ`bW+cEP@Nc9BfL!+k8S2qE4bgq~ zj@N85`@JyLka~iLC6_;8U=ir@0FaRWz>o&u+l;7AGOw+B9R9&CJI{B$OhcOY^Jo1R zwP|Cs#kb1kC3SOY=pSRqAZ+t^nG+#wm-jLxZj!6@7SED|RLTwX`sx?c9~8m`&M`o> zn7Y%P;$*W@h1RwX1bS9fNduezldM8v#pb-luc_~FgJ2SBxi4XJvC9&6hJnw-MX-HG zN%34aab)S$c{nhC3!uX5nJpL%7IU)YkRBd+?xJH@LYtHnlgJ*_)gdGvx)Sgk2}xi! z2x8!!?C_d-l>;nTGngX`7fzzn?{$r}jwmV3^2(iS>~8Ke6C0x5_>F|)jD{%6eviK! z!S~DUzY%!<>(Kl!e_{FWG0^_Y3M;5ReU+}4v%U{=!rI;8pRqmjfjkz=q|DlRMBgAW zE5q4X-~ToExiQtUI6}8?tH0<7QviZPM%i2CFbF9FV8%8e-N^Rmnj&M`!)_T_C`7C zDdYKs6xEY|*z(xYPR`lvZm(4qR+XlP3M=Yq@wPqwS@{n__Ts}alqoKKpk+Z(58d>bHLgdxl=h>-$_I5j=5EUA0Nk&e96RU| zbpf`k%6I4BWN1nLA9Lu04ydvRb*8I-W;$M>CmDU~3t{TLs(tsbeRtI;Bb#d&nPb02 zqb`qYUYmz{+dGIbqX88VuMl!UZ=Og(>Plu8Y(`Fp`iD(P&B_U6mId-bufEL6qJq!+ z>VC+Iw3aBVrAxQ0#7j6MeDh*8Ydj?q_?*xvX?c4M=>F- z4%B{GT_F!q&os%hQMZkwBCK3nzL93L6h_Ztblz!E_6F}rodJyT4(TU&gLob5ruE~} z2fCI7DTqqajdFSu<{`(4xF;FLhcok zx&(v+zl$;yxsfKxfpA+*&3*@iOH3}+;RQAm&kWP)Dg9YUeiBEOPXD=PMiaTVB_z0uJi(!Sfjb7zUY z*T=t;XSD~~*QqLi9YsO=nUQC#O~3fLYz`&vV56{KaKCP^2Q^w~Uy}5#UDRL0-JV6V zoyLv-hwkwo->F(fVMX=AY`$jwba!by%n=Dnyv>)wUtRs8cgI& zY8J+&sk4$ry2DSe;B}mw0$R)$=Z#DT1n^b9-1qrerzmdc+hNQ8Vlm^GLo$YB{(o@VsU$GaRF`~RqK_A9h z<2*8HWm`G&BgFgT)}k6O(DdXvKE)XC3k_%`ppBIkWQB2{9bNX%+^NT=J;FE)#yuM6GFJZE?QUX}b&g*_+T zoI9e}VSft`7KRlX1z0+xHF(o@!%F++RIk~1jz*|4h-GK$2Ed@g(beQ*mRzoOwvH7^ zPVae<9`HHz!f0OLOS?0<5~i^f0b9%JCDt49HyuN`!=GlYr}Nx=O?UIK{{EFTwCQJN zUz5BxYZ=4g^Rav!Veq)z(%i3hSZI^;Fi$9Nc)fH0aHk;jpzDw>)zhy`-SuH5*wtY9 zo6Q{`dQooq6|cJ*L0bL>RoZ$wJPJL+Hx{YwH}dS{kropRZnNSpboyQ{jQ@x zHQB-2gJq5>vm{3-P;-ydls3P9u4Cx|i5;Gici7KABt3s0CH83exXq)-BN8sQ4+U?v zb(eeQvP-}WFs$oIY7gO1yr2^vugI>cv1mO|fy0$Fu zo|i2(`5TErj;5RI2V(NAULJjgYqIg0I#a#ISCP8HaJB`bZ&ueMuHv;b<;%{O$W*eI z)F=OS^XSjo|BrqCzjEQr+87OPa$XLRxbERnu~7D-5t=+33bxq-Q31(MZyz1aiPNj zBR_v=&8`nVc7J=jHN3a+iMu@QxIQHA(ucRnx}BjaSkNl-k`uClZmi&e3!W-?IbeD8 zMECD@)%t!!kj~|u!5qxKeR}A)?%HBesZ4+^da21zIjxPgx{YJ-xXF%MYR`DYeH(Gt z$v)xD#FVo_K5(oSjojF3rU7lN??&0~pNwSfAVe+Sj9rR9Hop-4=H?9!iJ3b1oi6wy z+cWW!(b8=!Q|+nRu09bd!hTcUCH5>{f^$p?CE6s4^QW9w&K_=1B5f z6+ePQ-T1P({71YVetPueRKe$E%dsB@o)8?Gi?ue7UxQPj_f2+D)l6?-GR&}vdyUV&@mT!iF`0^Di;Pq$v|Kknp9}uZBcZ}xiYKKP z6pfl~sKqDL3LBroRr04L;n@pf!1zMDslIn)E<{_RlUt7v7&K@k9;$_rK{ar-Oa(O~ zxVS)CXxFrx3R5kt0v974%7`zI%Zda*$%gqfoib~Y9(^NABI!CSm$pY}2fooAh^lQt z%p7j=YPFki{zx}9YT~((LUNH-_ATBzzxLy+m*tc9Ue~KtWo>Nwsx2;}jo-0M>}G|w zmJLOcBBfh|kQ4{mtB}{T=$D6ZsYSVyL%ym8uTIh`k;a?f6lXJLi6rE!dwT%7BYi>i zpuxTQ8LTAlCzN>dhR z5XU9qu?rSZRoUA5$0-p&3cGEtfQeRg`yJ9Y1Zp#GTZ-{_vlOappvp{nc3Ur?svMOa{)2# zT6`*PoD|!{^nNJnqS$%)z+=^6PwX*0DzxJiql*HWp29Jjat6KE+9pC&4eiL=Z^&l>%%d@i-k_Ojl zKPouM7vqu%ebkXOuh~-mbw%>Rv*(D(6Edr#?1HA zgpl)IJOt$`oAHZo<6Rfy(+i;S{U?RINV}2a>8AR}P!at|n~H?a^U$wSS=8?MCO0Vk zU?%kh2ngwCnKM!Qjl`%(Z10vu)l<()?JFXeBA+fd8WwQQTb2d?^O3j}2NGeqL+W*Y1!tGA zR7q-6ac1MU=@kB~Qbh!Bk}EgTxS(`dcDv1s&Yts__9|zd&k5YpbIE_K-LL^7V{GLO zTW{BTDNpt7v00ePjR#a0Oux*byv?v+_Q(kB4Pk{0R+ryhh}wtj3eZFm3`uSat9Sj! z2D3x9HoD913$B7_XIZ{M1@%nsqvMquNItnP`7?!!O{~91zr`Gyx)T3g0I@16AI8#r zRziw2x$AO7nm@-|cNWuh{@~I@B>Re-8w?X`PSr++-z+%mMwS_%})$8f{N+6RW{F z62a=lAJyh42VQYSyb>K?{Kk0Yu>qwSOeuiko3w#A!IJ2fn{FZ%P^*6anV@YcC{9>k z3>s`%DXOj+IcBi$R(-q}T2_B2(0T~fF%%zf_jYHkq&zyo)5=0eKxBw+Un;_cX+UO| z$bgr_>z&ME9lRG$Vy*}tRGG#_SsmYD(0?fP)0?mOixWTk*|ujjOH8%kJtOQY0%Ox* zsDi5udVEB7PN|@v^gFEZ3c=G4G+L8gyl4K2%gB7?1D;>o>9`4C>&MvfzU|Rlq|xW? z=oe{oqoM5$*1|4K%BEMmIr#y;$G+3&n)q)(vXQ(1bU=1mz`Dp@!%ouoWBrdcKd+GE zKIHO(m%geyW>j9@AE2zK_D6kZ{c(vuFwrV~nEi;Ia})dS((K8VUsit$(KEyziKxfM zNMjhwsy8t#HA%*8ANmL-TsC6v{RHcfP_%qmue*5?`?OIEUk}c*%Vv0QLvTy0Z+Y;f z^!@!D1>dgL(Ibr8Iz;-YQO^jkN0}j|4tb=c5;1?E>G#?ISg=8P=Qu_4LEW{3jt9{h z_wLv9pQmqxg}pzLEb+shGM={sr*Ikmoer(|_ulTq0k5Xroeo3umNHu{YW@7F9beQY zF2b&bdeLI(j0wT4RLLOmpX0w-!yDZxFi35^XR8Sx@ohYs-EAR zsvmY?XS94VusZombA;TJd4aCTs7dm`_o7Yo0Kje8nbsH0Diw&r`ev{?c$e2Us4Pj{ z{PVugXQ{r-*561nB`n-GsWw~)RvpP^4Qk%nB;fq3@uIJ2C5r&@T;!j?g>T6AyXo82 zDY@^6-6g%SY&?*=9@cICKelE1qlWn(1?P!>E7S9j;M_zcLWFZ1E9s*Y;#k*|xFG8JaD@>W7ohYqfDIB{UO9C9G5~mN;cgN^Q)s3V z7CHjiel5Yzv(>DE>V1}fA?wd#iV(XvZ&k$UVIGZ~@X?l}9eB93JiqpYi{nPd`Qi>@ zB>}c;5hoSq!R-3Mu=R!>jwu1DYA}VNmj0{A7x)>`a+jk{PH%rQEVr!k1IF@`X$(X2 z!7okGiP=flj_kA^_lwQEglBhiGo2mlS~595rS!MH>u3IP<}-(H?`UY>qzU2Nbh@w5 z(rUk`4lgHfni=*sHGSsn%&e*HSxl}axtRD8PivZ_!Z!_O?uA}86 zv0+2jVk9;zwZ?Kf+Ohwqy7!K1a@+bwaigLrA_z!Fq)At*bdlbBjfm0%BuH-oRFo>c zccgcuh7hVs@4bZ3J0zh9AqLntp6~8GzBBgw-Z8#=&wKW{|2`vm>RNNHIp?qZ90nPH z#DtLxdhhf&j+JYacgYmvx|~+Mul)4pQKtQol2q9*@9y^PP6v67lVyKVP6~h(ze)1E z>Q^e1w{?`ix@81u-x=zfkZA~~PKDG)?9+I~v08kq^)})Y?g>NUUp5*B)ec&dDU@D6 zG&0cO7un;G9`7D^seg%b52{^2HM;k3E;_V@)|#f~T;D~82?4Zoqx4#@Ts}hToA&pH zb@FdyijRuis|GGZI*-`4E}2P~fNYiuN5wcXNPmO_=i$beuK9>B95w+#i%6~5DoZ}< z$9u96ZBxBR>6AkzA^j8OY&UmS6S490Yx9C_*xEbs9L`%sg=HB-#cvcl4K&r5^9xJZ zU{E(&+I5dzxrfJA?LFV+7A=B?E{Tts!0m@@8=*$${W}%puAVPdjQC%@@YA3S<2~CPfpqYfWkx!MX+Hey9|hF=1$WsUqw2xI~r= z31e4ry(w)}qEP9n^uS>WrlWx8opo6@TX}lS{OTvmiH&`}IGTIM^3SPWU43kP`R1%T z=9??T>+D-<&lY}^-Xtx03kTS@y$=qGfHM;4iNM1GA}PXW#qF0kx^!)c}}Aq%+CpMKDFVSRCxIlP?X z$>~hTepU>$hQYuA1+f)iZ~+Zc-=DOPos)6$eEi@_hQnFKd0R-OzyeRMK*%4Z19m1 zbmOo|gcbi?-(=2wTM)FKsm~KSBA5fz$WR@r?(+LKA=^sjR&fSzsd5>x=YWAE zZ(IJk=edtb2;%Y!U6s?{f)i{$ZhQj`KBG!)F{11=X%^33Er~GcLNR58Cg&w?iqjZ= z?b7X|mJzwhZ)7<6BUVR`Dh_4RAiaYTe2O|x=*7Flz=n|QQAY3Q?>>uP-F#NL@{LJJ ziw@b}MXDwe*S%APUatLEoK=!PFqrd9dgRP$9;w3y@)Sl)-Sa@ajDDWJ5iqqdWD&^IqLmtU+*a6BDAtL-yl ze0{6Nhcpw^pBHxTz|?cEM)5ctC7P~8R}lCOWW0$HW}gDs2pH41<1ptd>k%@6!(5Y@ zuEdqw&1{9ICOv`Kd&3EP%_{lxOs(}b9l8r+z&oHiN~K%MGx&j7YO%mduEon(Pxbx4&An2dqJ;Z72$+50BhA?QhNq0<2I-j~v*hd| zGA_251nBu%zwCIx=|ytQf*5>RUkS+P@|)lkDCP6Bc)I+l7fjsV&X$UY+wt5y{8ffG zZ_i{lrGp{0#bchBnq?g%*#{oR{FJvwO!oDcPN z6DKsp+1-#)d+n>CTtpEWICO$fNJEF+K&=Dg769E`0^)kS*8@EeQEev<=SrFe%1$dI z#Ie$X4-)4H`}HGvp|`CFo>_YK^?hD4xGL|Oo@XXdm%1u5m7XFZPorXnlxR2gF3 zU=QR=?z^tHHkX9A+XpW)y-B)O4^uVmq;7re(OrFf7D2E1lIvb%L2+)k)nOvl;kd4K z%_LP^mxhvpk_M&HFW?QMBlR;Pa)==u-rU{{YionWJIxgU+2fT3j-=v;(fb<0b(DjH zYF29O38Tvdi@3K`x9=4D>rDU8FjfBd%>U28{7>cPU%zPo8(`AEt{a+{r2HhJY1(+5L@yu-W#|y7l5K(6R>Nc=MU~c3w{w>!hfw49{PbckkOs$4_PL9b28OQ$2LMN z-U?qDuM0TbLGAN*5<2u^!X#?kvbO`sv$=Y0Y=28&p$f04AD{RpGO!<0({hLz5m)Iy z&#^C>ml5>#ejuk~e~VJI|661$tpaHdrJeEkZ|w08dGTjrXPR|lI@gY^kA5fOUY4^r zw*AY#AifYMrK&{(^;z?7|c}^q251~)MOh@S;cO~UKq<^ z_~=M!Erq=e#o~ju#<#l1qm5TJ+B8~iExz`OpVkD+i%5nUHGiPAwtC()b?=MGYtvNg}4;Tq)?9RxyjHinjbRWNoh~?86mO#N6XQv5$dTLUbI(z&0D8=>_zVv;Dlc z==Hbhp^Y#ipZ7FznkE!NXN?owud>-)?!B*Y0ebhwFWWDiT zk+Gngu6ZgN|2xqncVmqeD;uoo-VyUFKU_BB(+Ii#9Nd%4aD*j?tTjsi$v2dHmeXiP z$fuCr93^FOf+w6np+M8hPI8KiCbU!%@Su&!!~JR-b}8_Qv$&2^YaH@-qHh1ZHsoiQ z;DZ(hNaWdBMM{Lf5Px*Dc8oKE%)?@-=xG_t0rY|xA0Rnj@{jmRMD$z7l@6jiM8r!E zZ?ea0`_Z0Y{PvLlV`b~V48i~Uz~2Ci{$n+$ym<-iGC08Cnp`e0YV^}ewQcJAzZ1ny zK7Od7qh+B0cSE>0^Ss$+I~1Sqo|~%~zgnBaP?q8Ullhc?6S1u^TXt@$ zeAOi(8H(CY7;L(@y___d$OK(g1KqbqQu>b2-OD>ca?8ESieg!Uw`8i_bu=KF#;Ft zL8$Ir!Y?J@MKKBOl zc3*O=4<344y?8IJE!a*0*q=Py4rr3RM@8zs(#_K*I#7N3ru+`;y2BcJ8|t>OjL4hZ ztfQE3vq$}4k()D^&h;m+ZnFxK5KN-e+_dBt(65QQ=fZ>mXqXWA&MaT(t4eEp7zHHk z;w2>st;$C)jG1p*vZj>Zn;hYV^_mm|eM8e^67X^UO2F5)4iAIjJC#OB)lk3?@2Upx zD2??jSinqC?C{K0IYKrY`S!4jpaw-_ZLk?cDoB{H4_37UbN~gAXJ_scmZZ&92^GyT zWJQiS4V8;<1Q#PEc(G&Q?(;Fm?v?8B`=`M3T7GIObKs+gamnnrk6JPxV~ZCTeXuhb z1iM7{wtX!PCr3h${i#}YDCxcLqja{8eY`|3#`FvWtgWwocu0F6CF>lZgCj{%u3M1* zZ+h%y4=~nP5W8S`7bLq-@B1%r-`KEQ$flzgw@_73aE#CI z;eB7H+B?>jkGHvlk(#ZYasp+P+2HthZpZTb4VbuAY zS?zd^k;KMp!2ZY`%Vncw$(P0+()a|BUHUEPo^Tbwwcaz5$*bgbNbP5y@r*p?lMB>E z0UnBGg!VoGY551;{m5C1IH&DK*xbF!p`Ds+K~L5i>ku9hjkyZCrOr?@hY=S|UT#Yg z%@_60I2So_-kO|F@jh>qi+?G&R23TcqEl+8SyF!aQ zwFKlP2UhH)xMcPHJ*`vPWSwT^(sD;%hsS~#73={VE9{UEdyyA`b=r^$>t94_((u9y z9fLviJ?z=nN-a?tmQioWKPc*kQ!dLlxSch)y80MxlGNWW!KIHEPxQL>6^h-(4h?_! z+XLDk;`~8>1AzFC$W~U1D?Bf3lY=avE(#am$L=o3tfn`!&UUj%kqk}!|CWloL_?h-5dyrLi3t)a#K( z%&W+vf;<;p@x8}}}n_A}?1MvF9lUP&Tb8<(% zLOi6%C3~ad_>pL{rP&o$U$YB2D{^-mhWm4xU866kz?6m@6t1pkK zqs;>f>keH>r9F)u8Ljzz7Wi+xk7UwV6AEaRi?KAjn8y0g3&N@!;g{L;{cGkoKYw^r54-rdrW8rt32h#OAFN*v+Hb8=}}Sf@7tELP_) zFJH9NmzC5^y!x3^=r=+q;Ozw-++Tz=`tu7-=ue?#hGL5fCA3!Bph{NqS~@yfSCd2y zM8)J-G;1pPAG(qRZIXKh9tZ9y$n?K(kv?hee+Y$!=|8omPka52u0_g8^}YcdUZ$J} z$Vk(mD`IO}tDCR9L8akA&3?!=`7`1270H$9`hbk{lR!%^OrJ${RL&*14g-*Y9<0mcqR}O0$rdI& zkDSLW@=u{9(wuG5_gtel0saKqv-9wDsiB&6aCq{OgtS%qIjvC(_06F{lL=&Qt-4YP zQT^3M$OZ3qfx+bAo~s~4d;70)R-<~z)}<+ebVxJ8^>pM7xFv98j=?T<2oPUsH8E|Z zT77Ej%zxFqTv%eEpmeP;zgQ*Re#N*W_VK#x^UV==iG1gEwEEn7>r&NXL}aHSM8AKl z@lih0xavAjG-v&_jL0yMm2dGI0u@@8z> zf>;fvFMTvQ89=WO0p8$M*Hp6hcRhNq4}7HguL%f}hkUmN=I8fV9h&yj=H~URm2k7F zetu7-niut3*+(LO+(dhO8&c3kTxR$P5Y@eE9B*dp6|ZLF#doBN){ue|(rgW3N;UQq z4xTcevPY!Xh!}}*9$P4`zxuKN_o?w;a^-*dfxiLn`)9PwzjSIJRM&aWqyydd5|a!S zU1VxMVPuy>ievem&Ikxtrn)!2@|7(unsyc zEKkt}7_7d0uax+EY>4a}m|6dltU~9EIBXqQXkPDHVnlkBPXKK-2ckbJzG4Wi%8}P* zzg!@f8>n=Yy%{8!jk~nFfMuYy7Z>2Q!KL;KS1i--%f9R}gzX7?#NPfuJ>M>ZyYj z$&AA0`S*Nc2!xM=lCrhymScWtX+8q)7vUGP>faNHPEX}3Ne6EFZoSsCu+WWFGB9Ad zFQ%1%tR{%;HOB)GE%*@`a6FxTwt;GHxO%yk@Rhvzain@)*(1g4QvN>kDiNFveH__S zKm$dn{4)~D0FrW+<9Hu}ZVS%om}`CO*a#C?)8w8HaF(4`8Skr;k=r`n4AAjd$PeVO!tde08C zk#t_#c>n7QQ5G8)0%ltZzus+4d$2C9=}MnT4$xZ%ev)8nn0a5uo@h8}(EsBEm!i76 z$7&zK@jhM6DkF)-ueufc7=IWb$9uFD1@$+%np<#nC;23RY3lxxMp1 zpp1yJqO^xOAk>Q?0b=*Y?ZNMgMp=CtZYOH^hgKUR`V<3cN zq#yP3Ti`0(q|)!W{;^>i>1{3>XHa4Ln;#NB*2Vo}tI!Z)mL}I9X-`>`^Js;rexy;U z#j$&u5fgpCl}WZaY(Xei0XJV7EO16^TvWels*hV^?;Zze9>A4VujUI;7Q9uDRb`aC ztMDM5wn+DR^LyT&hphrKu^wB$a>g+rPU{F!Aj@>ps$=VIw-wg$rX_s7*Y%F+=~a|-7#@80#3x=9oVw%$>~Ds_0C8f$(rX$z!d`&+ z@7>w_-|Jbabdz-H&D4`3#KDX4FJB^NzuPwXk+W{<4JazX^uaXgFH0F7D z+_*G1Ni99TwieewO*tt&v8V%a!+#H0mzcoZ99(JRF_(?o@R?N&E%KR(k zOL$CGsyfAn+6FeFVnJg-&A~v#AsSxadCA%>}0=f+(@N) z`-+MMTeB0x8o>h3*@DAM0ciEeo7@Pzv#RK)1&yz$j&$4KE&U41vR<&#EFj~SzpbyQ zz#t1-Gv2euS{-kW-N3RS0I>WR-*i>)Td&lnBzb5B46TwvVjr9D+9u7CJ*gqO1VY_^ z%siufUl#b%`gH3Q^3&k_=A}pbeLt5K@XQ`~DQ_4RJ-R)V3%4Y$7poettoV#-c7`Nb zcI=*>nlNYy+`5)iQS3m#3-_gGzhkceI_Af_^QzF9EV7^l(IZm$9k{y+$B2t}Kcv%t zZOGmAO&Q+(sU@{t)T{;{k7vN+1~v8Xlr*M4t~;UN7nw9Ssg}d@&5205b`&~T%qJv9 z40{%`CXUu{@bjF`l^Rp}^Hc3S$MYZ)PqC$vMCa(@xrr$QF&z#IOWnjDZ|e9wj<%po zZe9G&HQ#6{47%hMbTT1vy=_AQg8?P&ZSVy)XuXk2`vNENF7#Gx5aMkG$wrRO#`Pw0sv%Bi36GSvzzT+-i``FA;yw}0=rL`E@B$>uqx=+Jedc+`Hd2}~1Ipq~s8DEH< z5c^1D36RcJzIedidjW%1&a4+3@eJ6WS8x|}Ze(~-MmmQp9NMK1X?f}ZN-uYKbWH4} z=w-t&jbGiXuL&Ao9+tb`7nHvnbU($Viv*|nI}w+9^w=c|l8pmGIrH|I41E{Nb}EL1 z6##SZG(Al(w%WIO?y9LwkL*AK1(fcAS%F(O!w)$vRF>{z8t!uko}A{-4Gr0BHj9|x z6Sa(LR;xjF%VX8biWBdR2k=h^UOI`H&v~(lMZ%{pn0bm1A&8%{!H2%5=YT8c-!EUc z)5((RgCdxhhi!ME%A3XJS@7xBfXLioj0)n5p_mMoLs_7jH@Iv0bW&8e`_qKJ;l$*)VGo(bbq%`MqV(jdbQ`r&$ItQH)E2ZiQZjK;sTb{=S(pR~D9B0M z3bFY_>)u_D24Y@bZl3M!0d{afd3XP=`WG3#_YPGLqkYV4zLd!AUW9Iqx!^jF>xwQ( zPd;QIY6yUMDYN#}l$7e1vg836;9 z@(={hUtMBaFxYpS4YR&>EX1~N%U>?_7IXqBWIforvN|5#vVArFg(Ll`zFEFn6ZkP` z^ejFdc4p|xbsjv4gA84nFwbB)7R2?Qmy}i1`?mb3>245>C*3#E{{ik0O%UavudPx$ zI8(Q`KU9>(@TZhbZ=oIOO|Xa^a6k;945vaRDu(yrQjekpOI2>hm9`Vb8&gd#6}z}F zCoxmKHpzW-ACFp*2K*9Rl|LUDJb_`p#(cEUI`A((MB2`X>?MyFbI5pGd1(boCP%uR za&9Ok_Qm&Bkn6h6zVJ6xyTeOcr$r+hyCbBddqQo*D282Hdg+Qi&I0?ErxiX%ZL6D^ zvDL}jUVjv>OAuQnbCoax7WA5~5mZWip|c9m4%RTE_ItiHzY~e)9x)dcWD341)@c4C z5dYJP@Gnn8{tvJ6H$k(1J$8Z1>yyo1R8|5^a;?^@o6UD0wDc*3qUm(nEy_KT^NjO(=NqBxqVQGZKXOCnNPw9;++a;V7!D=HX2@9<7#&avij@$!!xatLW zloJMjM?u(Nbj7EBK=Px_sMRE5<*y%@>oqUIEVuk-R#^J@VKtKPwUz`rmMm=LXA|F` z=YK-rE5g+H0l(#1fHiq?FjGu+9YxsZPCd2z$n=Ow^SI4yeTAId99VH1WDGOXfX{jC zo;P>L8i6&bwFZYg;RAx4cy!op7x?0(YeNoxD5`rYzon*F#J;9k@~Y`9|7tUpIXW3Z zy#46uR%Jdx6Uti~VnRp;4ia9SVohzt7T%nam|OYZhvQRRHx7AC=LYTQ_MqK@ZfNyj zHTj0d9248m)t_IuIsjdPY9b9}{4bI`6OJq~p2L@Dd<>@NiJPSuz~VjvYR1>tT1&e= zu_E2fZ}a|2DOx~q?Qy?dzM4cF<%8IY$K8T+%XJNi)$E5-2?j8>D50B2q>kJj1`?$r z)aMg&nb((bGDg|kmeF*4RkLR(stGIXogLM^Ck#38t6;0NGVV=vNc7TPS+eC3#JQZw zPMKHjWz8O*R+1a5icbc$O)5bBL(!fU;(?pglnP+=zUwo3de3jFRht|R7v_J2g9d;< z!-@U>p)gsgM$>Y0+46kgXccmCW%$x4r_b|oUt^mpWMKaDF_>Gp)qPYdBzo@ypi*1P z&1;dTln>YVV?YPWsb8<4bI2jesm^06j`7BBI;}PPzuphTXi${#A{S{cX9!ItkBFe! z)oQ<@+N~X(k43&F`-nSP_f2+?UAj2PEP-gPGBEO#hU0udEAX21kr84X<8@(^L6(`cv0zns~;ZIf@KCOl=lHLcM|pO-2AmbEEV~MenC)pm(Vz;~KZ_l;}%AM+iDX{IUcMD6XYXaN>Nw z(@)?4Y{@q(p(y;>dr75apJ;>QIe;A7n!iFn~;`HOvux< zlK99(*=c_Xbm)=^@}>3GrA^L`gr9#0K6<%kC;U-K&FpMG%^_#>wdki)X1TTibkVJ%KM5UN7az(9Y%G!ez~+UtZdPE_&ZX13{TeDn6t>XGafe^D&=X}QZ> zV`ZaAEZZ%nW=1+>%;D>k*yzHC@ZwgTbA={!YjvR2D&UKrQAP^V^_z zD)W#Lz!!+cS@lHDT}eVOsPzfd~46P&7_;i7cR0+^59%%KH8^M)YIrfVB zVNqciAJv$G4x_8!jf**~ch<$uCVtp$D{7>>&96d_!+3F;KK=_pS?yrW9GC1%;74NE zgySxW9ZemeaWP5TUs1p zJ{X|ICrZKITQ_cGOM-O5a5M)XeTVnnB==!_dEHId7Wj2bV#5Y#tM~`*w(DJoiR9Pz z2&o>z*=RSz%DoWx+}=I{30E27Ae}gt`KRa6nXR}(@h#}LfEc)!iz6y}Z1#d1R+sAI zErIZFE*BinnBc!=vVe-HSi%BCO&WyE$Yq~!<;8H__8gUV&~#P(tO5#vVM)Sc%_yl*nR!I-t3y<>%=olWv%P6s9!Ha6eqv%rH`i_Ca8bc6cUzdL@{W)sBA!>l zkgLC51kamY`R(!^{*Y}AW7l|!6Kv!9yohX_!2gUSsguOB*VnE7#BqJKb_e)3^0-Ei z%WB9a^kse&pahP}e=7N|V?f$!B`?ZMALO&t(zfoFI~!0j%NGAF9$N`3gtcfr*Z9ie zQ-qk7e->L1csoTs^u>-VqqZ^eLu~@r(0IZp#m!qg>RFpcLVWgd^p+2*&VCp8os-02dE0Dc0XwWxZX;)$7LW#8F0kUtcIwz8d{nku=Bd zXxW(8w`PL8hjxYekNG-{WG~B$7B@WBFx1}OL|WXj`uLGvO6hgc>W-=%YbDB5V|By< z*n-ipB5Q?R-;b&18vL0fkIU3$@^2#w5*XgSw6Q2p-p}qD0S~HZb-~KqT4BgE*k&KN z5|dq8fH(*7`DR^s_c63!l6 zmytD;*8>H)5+$F0DH&tLs?p?JAAiiv_(&g+Y)Q&Se-r%RHYmfQdrw${_woDIVV{I; z-tRfW9j>AsQa2$pxUIuAoRP=oy*0~jWMKmbDl-sCurBsY=IhgYyVuNfrg`WRI96ev z(!X9iXT~Y|H9PNfEv~OXR8*MV?PB2AWi|&s0t@mV_G-s!Ajvil+&oe^s;Uce(@$bY z=Vt}t=v8Q$DLmv|9P_`1(leye*s(aR$T+;TKmVozzX6djPeE)euK&4xL2x23M zG`9Pq1LyWpQ!s;98ZcuhOlnDve$seD=q0_ca?h;caTl`~+^vYW^ESbPsfrhD4Y{s5 zE?1LRwsXJr@*MvftFTU1o&Yl-sMB`yd!XQ&T)%AH^8v`B(F?d1bw{T1SDvy1_neE4%_VnSvD=n_*CIQiA(H_^kcRQ*J&N_} zy8UX5?HRR_wivOBZn{=^#p-2jz8`nmsfAO9XK`CH3a z7OtQ7S2rg>8;i&^sMvKL#mqHsAyIyVCg|qFjirPw`1$C_{&Gqte9f2M53{w=ZAYLR2hX&=fOq!de>ZbSO7pm7kBy zKFt{@V_9SwBH8R2A?r)p&DqEr^SvmqUn_k&hzY_7R>P2{j!qxe5A-v*z!($f*pAoT#)$4a>Eh?c8QZ?cTH<% zT2TXtS&QHmuD~BzaD5)oN*e6P!vi;JsC5exr;MtVR12Sp@aZusy*v%TR^!@}yvdzp zKCdIR%}(0@-i@{t-v#WTZxp)O!fyGiuIn3(v+{)$r4Z}AOq$)-xLxk;`y_dv{!oNu zMnVKP3TbX3_n{aK{il7yJC`^M@|rfSAH}bKm{=Sw{|91m-f_)HRX(bbCHHxJC zbULDuP!U0PZNm`K^?crsud;XNrQp7xjWb$<{bQ0Ni9L-w-Io?}gYC;uC!2Cfl`F`M z_oPYH-$9qivnKIuWzbL~XL54MgnbQwR6T31@k1r!^`c;Iq9T0L&G+UdtLh=>9KMUq zz&#e9JGu?QIpRzq^NQT;2(ODDy$>?4Tj;5I(JcBI)oT$u9Ux99Iqg0X70zQp%~qgk zg>`z#b;wTKDa%$**$yhZ4lPi&B%%iipACqt#|EN9_n6&S4YtOc>v~AlYrm_`6qA7Og%67~4eiP-lB~@zDWRAZR2`p`7AaVu;182Oeee9riy!pG{qJaRPQ!&S?vT}cK z&Na~^t*kDTbTUD$miHy$AMC!;`(I6gMKe@^j)_UE{W>k}i}?w%s7$yE3j1JoZfK;> zAr4`tSk?%4rYDNf_zXD%G5hn4e_Ne0Oe*tUHXe65E{boCs)?V^Cs{u6|{qi% z&)SmPdYj$5tBD##?~wQ-P7n3 zv=;JXacObKii0C)$FP3GDq6VWmSZ+6-hSR<4B$v4Imh2@MdbB{0?VQh{(7HwO zZIkz{%+1OG$rysk9PZ%+8Z_Iwbp8$Q?RuVwf@E}BSk$d7nBl}g>@_vXq_w0z70X=*NHcLeFKiBb#Ea72HgPmKqw5oFz4F&Q&L=oJ5@$LJYxMAtXRWZ!jP z+ql-3Dtv>GkJ{I-OH!}{DX&KTmP;T9>}c$lm;XN~4~=ZNQ1mKrg=)1$Uere;5-zEe`72JssS-(^>d_K3F042Z>l#mDU5 zIreULllh@z?Lh>qgBiz9uW5M*=e2-qIkdyA;>D?Xy7KLm82H>8t|C3YFv*3Hr1T=~(| zV`#<26~_~!(^9v^f)T)K_|4fMU>XUHtr>1{qzz-f0_)F}L^~NH86PdL`}DcBDcu}V zy6e`O_Y_#<=!X<===W{xdZ4nzpAg-AlviHOVrpLGP#+!yCKDB7N*!!#`Fylkv0H)3(66 z7>`1VE+uHlMK#P1k|@ILNZEx#!Zf@Cd-1{6C>jLDa~eT;#Dv^w3?D3Cts{w-yVrTv z!p5hsNZ;JRE$MN0gSNfVsr$?Az+8UqCwuBYM`!Xi(Cj<*|253|zud+C@zVYi{_=Oi zC4YUmoob1UE>s040q4T|x_jj@ZAFO7leiKN;Pw-rGPUwr>bfsiD@5vJrE1Q3avV?b zw_3+92b>YhKo_)~YQB8edffYmF&R&YAS32>H!21lat%+aijUO3+WHe*{Mww)2_;Dn zcMg-+n2O|Yb0Gbzp-gHy16}RnvNT*Ec>|Z_H3XF|6`vwczgD}6X4|FsY4!r%eP0DR zVxOfcWw)5(ZSGq6`O~~SH*=l3OQGYt1^MD!K+5F80-7P=Q=M+0T|uCN>YnxQM3Arl zn;-bEq(wf|3zT)(^3%WGE5!^wcgkV~wg`ql&S3GKU=jvp&BT8-9$$9neqa($Ueh$n`gVryPT8}%Sgb{`_0~)MMc;Bei*L!5-VDCr%8U=EJ3RGc6mLCqUl*K0ub0J3 z+O4q1-;C#);MTwLL!@)J=y#$7@xka0bX5499Q~!D-EkUAJPRX~(|{qPWYMU08pG6C z&+x?HQ}PRx?Th&74PiKohmtH$n=jph0>{m`MKh*otAMkBxQ$`u%{wMo6@&aD5!>6>HkWzcX%i>lOSG}I;Eq_@BQS{B5^b7-U(VF>q7$r%5I~wG zo(r4g&1}a?ZCcKys=ypjD)AE6t8+rDrdxj7v2)ryPh_hrxd#zoGKb8 zD(F@?XvvoaJ|c55gDXRk2%)?-_Z*TnYn53H`RL8;$2u;9FbZs&ywkmK6Zd8D##sb>z|of5J;U1T)uB`h*v`SSPbs-`>(Q&eRX4+U z)BDAhpG%_^#Yi;BA??W1te)3MZU35X-GD3B1qfIYaM3QQsbs0gn4FBII%aTzTxOaov%Ou4M(Tc^?!Nujo-w zT{AMGA$mj7_M%R>PWTC*mYTHMi45t_4UC2VpSy@Zf=nLjsAsKe8V5K$uJhya40~0y zh!1pl3=4mKtkwtx%S>?8Lq(tJZ3uoG8SfMc`>6S2RaI?_jhNG425pBT5Sn0&<>)&j zrG;N$*G)Tfvyq(|VdN>hUx&+7C0R7ym8z(@fb>tNo$Qytk&NP4dQbG_`iR$!xAPGf zg$MVVKh0Jxopt7nC_o90M;gY4`=;JkXOZ7NyjS5nDXsAikf#_ZSFoBA1L}#kbPdC}$G8M7o|-ixKIz;f z6vpFlEbA&J7)+MT&41GA`m>YppAf_U#%}*VB6aCc^5yI2vq6I<>%~Kt6N?!dK6<%= t("dashboard.mailer.forward.subtitle") %> <%= image_tag @proposal.image.attachment.url(:large), class: 'proposal-image' if @proposal.image.present? %> +<%= image_tag 'default_mailing.jpg', class: 'proposal-image' unless @proposal.image.present? %>
    <%== t("dashboard.mailer.forward.introduction") %> <%= link_to t("dashboard.mailer.forward.support_it"), proposal_url(@proposal), class: 'support-link' %> diff --git a/app/views/dashboard/mailing/index.html.erb b/app/views/dashboard/mailing/index.html.erb index 6fe0833ac..e9b3780f7 100644 --- a/app/views/dashboard/mailing/index.html.erb +++ b/app/views/dashboard/mailing/index.html.erb @@ -6,6 +6,7 @@

    <%= t("dashboard.mailer.forward.subtitle") %>

    <%= image_tag proposal.image.attachment.url(:large), class: 'proposal-image' if proposal.image.present? %> + <%= image_tag 'default_mailing.jpg', class: 'proposal-image' unless proposal.image.present? %>
    <%== t("dashboard.mailer.forward.introduction") %> <%= link_to t("dashboard.mailer.forward.support_it"), proposal_url(@proposal), class: 'support-link' %>