From ea80b52b7124c03244c54beb86e2c0218119d426 Mon Sep 17 00:00:00 2001 From: "pawan.sharma" Date: Wed, 31 Aug 2022 14:44:30 +0530 Subject: [PATCH] add auto db backup module --- auto_backup/__init__.py | 1 + auto_backup/__manifest__.py | 36 ++ auto_backup/data/backup_data.xml | 17 + auto_backup/i18n/ar.po | 314 ++++++++++++++ auto_backup/i18n/bg.po | 158 +++++++ auto_backup/i18n/ca.po | 157 +++++++ auto_backup/i18n/es.po | 166 ++++++++ auto_backup/i18n/ko_KR.po | 395 ++++++++++++++++++ auto_backup/i18n/nl.po | 380 +++++++++++++++++ auto_backup/i18n/nl_BE.po | 380 +++++++++++++++++ auto_backup/i18n/pl.po | 178 ++++++++ auto_backup/i18n/pt_BR.po | 183 ++++++++ auto_backup/i18n/zh_CN.po | 298 +++++++++++++ auto_backup/models/__init__.py | 2 + auto_backup/models/db_backup.py | 329 +++++++++++++++ auto_backup/security/ir.model.access.csv | 3 + auto_backup/security/user_groups.xml | 15 + .../static/description/emailnotification.png | Bin 0 -> 46361 bytes auto_backup/static/description/icon.png | Bin 0 -> 35941 bytes auto_backup/static/description/index.html | 95 +++++ auto_backup/static/description/overview.png | Bin 0 -> 23200 bytes .../static/description/terminalssh.png | Bin 0 -> 87569 bytes .../static/description/testconnection.png | Bin 0 -> 4479 bytes .../description/testconnectionfailed.png | Bin 0 -> 4139 bytes auto_backup/views/backup_view.xml | 105 +++++ 25 files changed, 3212 insertions(+) create mode 100644 auto_backup/__init__.py create mode 100644 auto_backup/__manifest__.py create mode 100644 auto_backup/data/backup_data.xml create mode 100644 auto_backup/i18n/ar.po create mode 100644 auto_backup/i18n/bg.po create mode 100644 auto_backup/i18n/ca.po create mode 100644 auto_backup/i18n/es.po create mode 100644 auto_backup/i18n/ko_KR.po create mode 100644 auto_backup/i18n/nl.po create mode 100644 auto_backup/i18n/nl_BE.po create mode 100644 auto_backup/i18n/pl.po create mode 100644 auto_backup/i18n/pt_BR.po create mode 100644 auto_backup/i18n/zh_CN.po create mode 100644 auto_backup/models/__init__.py create mode 100644 auto_backup/models/db_backup.py create mode 100644 auto_backup/security/ir.model.access.csv create mode 100644 auto_backup/security/user_groups.xml create mode 100644 auto_backup/static/description/emailnotification.png create mode 100644 auto_backup/static/description/icon.png create mode 100644 auto_backup/static/description/index.html create mode 100644 auto_backup/static/description/overview.png create mode 100644 auto_backup/static/description/terminalssh.png create mode 100644 auto_backup/static/description/testconnection.png create mode 100644 auto_backup/static/description/testconnectionfailed.png create mode 100644 auto_backup/views/backup_view.xml diff --git a/auto_backup/__init__.py b/auto_backup/__init__.py new file mode 100644 index 0000000..0650744 --- /dev/null +++ b/auto_backup/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/auto_backup/__manifest__.py b/auto_backup/__manifest__.py new file mode 100644 index 0000000..597b91f --- /dev/null +++ b/auto_backup/__manifest__.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +{ + 'name': "Database auto-backup", + 'summary': 'Automated backups', + 'description': """ + The Database Auto-Backup module enables the user to make configurations for the automatic backup of the database. + Backups can be taken on the local system or on a remote server, through SFTP. + You only have to specify the hostname, port, backup location and databasename (all will be pre-filled by default with correct data. + If you want to write to an external server with SFTP you will need to provide the IP, username and password for the remote backups. + The base of this module is taken from Odoo SA V6.1 (https://www.odoo.com/apps/modules/6.0/auto_backup/) and then upgraded and heavily expanded. + This module is made and provided by Yenthe Van Ginneken (Oocademy). + Automatic backup for all such configured databases can then be scheduled as follows: + + 1) Go to Settings / Technical / Automation / Scheduled actions. + 2) Search the action 'Backup scheduler'. + 3) Set it active and choose how often you wish to take backups. + 4) If you want to write backups to a remote location you should fill in the SFTP details. + """, + 'author': "Yenthe Van Ginneken", + 'website': "http://www.odoo.yenthevg.com", + 'category': 'Administration', + 'version': '14.0.0.1', + 'installable': True, + 'license': 'LGPL-3', + + # any module necessary for this one to work correctly + 'depends': ['base'], + + # always loaded + 'data': [ + 'security/user_groups.xml', + 'security/ir.model.access.csv', + 'views/backup_view.xml', + 'data/backup_data.xml', + ], +} diff --git a/auto_backup/data/backup_data.xml b/auto_backup/data/backup_data.xml new file mode 100644 index 0000000..2253df9 --- /dev/null +++ b/auto_backup/data/backup_data.xml @@ -0,0 +1,17 @@ + + + + + days + Backup scheduler + -1 + 5 + False + False + 1 + + code + model.schedule_backup() + + + diff --git a/auto_backup/i18n/ar.po b/auto_backup/i18n/ar.po new file mode 100644 index 0000000..b4042ad --- /dev/null +++ b/auto_backup/i18n/ar.po @@ -0,0 +1,314 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auto_backup +# +# SaFi J. , 2015. +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 8.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-03-26 14:17+0000\n" +"PO-Revision-Date: 2015-12-13 10:46+0300\n" +"Last-Translator: SaFi J. \n" +"Language-Team: team@daleeltech.com\n" +"Language: ar\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" + + + +#. module: auto_backup +#: code:addons/auto_backup/backup_scheduler.py:137 +#, python-format +msgid "%s" +msgstr "%s" + +#. module: auto_backup +#: help:db.backup,bkp_dir:0 +msgid "Absolute path for storing the backups" +msgstr "المسار الكامل لحفظ النسخ الاحتياطي" + +#. module: auto_backup +#: field:db.backup,sendmailsftpfail:0 +msgid "Auto. E-mail on backup fail" +msgstr "إرسال بريد إلكتروني تلقائياً في حالة فشل النسخ الاحتياطي" + +#. module: auto_backup +#: field:db.backup,autoremove:0 +msgid "Auto. Remove Backups" +msgstr "إزالة النسخ الاحتياطية تلقائياً" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Automatic backups of the database can be scheduled as follows:" +msgstr "النسخ الاحتياطي التلقائي لقاعدة البيانات يمكن جدولته كالتالي" + +#. module: auto_backup +#: field:db.backup,bkp_dir:0 +msgid "Backup Directory" +msgstr "دليل النسخ الاحتياطي" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_tree +msgid "Backups" +msgstr "النسخ الاحتياطية" + +#. module: auto_backup +#: help:db.backup,daystokeepsftp:0 +msgid "Choose after how many days the backup should be deleted from the FTP server. For example:\n" +"If you fill in 5 the backups will be removed after 5 days from the FTP server." +msgstr "" +"اختر بعد كم من الأيام سيتم حذف النسخ الاحتياطي من خادم FTP مثلاً :\n إذا أدخلت " +"5 فإن النسخ الاحتياطية سيتم إزالتها من خادم FTP بعد 5 أيام." + +#. module: auto_backup +#: help:db.backup,daystokeep:0 +msgid "Choose after how many days the backup should be deleted. For example:\n" +"If you fill in 5 the backups will be removed after 5 days." +msgstr "" +"اختر بعد كم من الأيام سيتم حذف النسخ الاحتياطي مثلاً :\n إذا أدخلت 5 فإن النسخ " +"الاحتياطية سيتم إزالتها بعد 5 أيام." + +#. module: auto_backup +#: model:ir.actions.act_window,name:auto_backup.action_backup_conf_form +#: model:ir.ui.menu,name:auto_backup.backup_conf_menu +msgid "Configure Backup" +msgstr "إعدادات النسخ الإحتياطي" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Contact us!" +msgstr "اتصل بنا!" + +#. module: auto_backup +#: field:db.backup,create_uid:0 +msgid "Created by" +msgstr "تم ألإنشاء بواسطة" + +#. module: auto_backup +#: field:db.backup,create_date:0 +msgid "Created on" +msgstr "تم ألإنشاء في" + +#. module: auto_backup +#: field:db.backup,name:0 +msgid "Database" +msgstr "قاعدة البيانات" + +#. module: auto_backup +#: help:db.backup,name:0 +msgid "Database you want to schedule backups for" +msgstr "قاعدة البيانات التي تريد جدولة النسخ الاحتياطي لها" + +#. module: auto_backup +#: field:db.backup,emailtonotify:0 +msgid "E-mail to notify" +msgstr "تنبيه البريد الإلكتروني" + +#. module: auto_backup +#: code:addons/auto_backup/backup_scheduler.py:106 +#: constraint:db.backup:0 +#, python-format +msgid "Error ! No such database exists!" +msgstr "خطأ ! لا وجود لقاعدة البيانات هذه !" + +#. module: auto_backup +#: help:db.backup,emailtonotify:0 +msgid "Fill in the e-mail where you want to be notified that the backup failed on the FTP." +msgstr "" +"ادخل عنوان البريد الإلكتروني الذي تريد تنبيهك من خلاله عند فشل النسخ " +"الاحتياطي على FTP." + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "For example: /odoo/backups/" +msgstr "مثلاً : /odoo/backups/" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Go to Settings / Technical / Automation / Scheduled Actions." +msgstr "اذهب إلى الإعدادات / التقني / ألأتمته / جدولة الإخزاءات." + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Help" +msgstr "المساعدة" + +#. module: auto_backup +#: field:db.backup,host:0 +msgid "Host" +msgstr "المضيف" + +#. module: auto_backup +#: field:db.backup,id:0 +msgid "ID" +msgstr "المعرف" + +#. module: auto_backup +#: field:db.backup,sftpip:0 +msgid "IP Address SFTP Server" +msgstr "عنوان بروتوكول الأنترنت لخادم SFTP" + +#. module: auto_backup +#: help:db.backup,sendmailsftpfail:0 +msgid "If you check this option you can choose to automaticly get e-mailed when the backup to the external server failed." +msgstr "" +"إذا قمت بتأشير هذا الخيار ستستطيع اختيار استلام البريد الإلكتروني تلقائياً " +"عند فشل النسخ الاحتياطي للخادوم الخارجي." + +#. module: auto_backup +#: help:db.backup,autoremove:0 +msgid "If you check this option you can choose to automaticly remove the backup after xx days" +msgstr "" +"إذا قمت بتأشير هذا الخيار ستستطيع اختيار الإزالة التلقائية للنسخ الاحتياطي " +"بعد س من الأيام" + +#. module: auto_backup +#: help:db.backup,sftpwrite:0 +msgid "If you check this option you can specify the details needed to write to a remote server with SFTP." +msgstr "" +"إذا قمت بتأشير هذا الخيار ستستطيع تحديد التفاصيل المطلوبة للكتابة على الخادم " +"البعيد من خلال SFTP." + +#. module: auto_backup +#: field:db.backup,write_uid:0 +msgid "Last Updated by" +msgstr "آخر تحديث بواسطة" + +#. module: auto_backup +#: field:db.backup,write_date:0 +msgid "Last Updated on" +msgstr "آخر تحديث في" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Local backup configuration" +msgstr "إعدادات النسخ الاحتياطي المحلي" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Need more help?" +msgstr "هل تحتاج لمزيد من المساعدة ؟" + +#. module: auto_backup +#: field:db.backup,sftppassword:0 +msgid "Password User SFTP Server" +msgstr "كلمة المرور لمستخدم خادم SFTP" + +#. module: auto_backup +#: field:db.backup,sftppath:0 +msgid "Path external server" +msgstr "المسار الخارجي للخادم" + +#. module: auto_backup +#: field:db.backup,port:0 +msgid "Port" +msgstr "المنفذ" + +#. module: auto_backup +#: field:db.backup,daystokeepsftp:0 +msgid "Remove SFTP after x days" +msgstr "الإزالة من خادم SFTP بعد س من الأيام" + +#. module: auto_backup +#: field:db.backup,daystokeep:0 +msgid "Remove after x days" +msgstr "الإزالة بعد س من الأيام" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "SFTP" +msgstr "SFTP" + +#. module: auto_backup +#: field:db.backup,sftpport:0 +msgid "SFTP Port" +msgstr "منفذ SFTP" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_search +msgid "Search options" +msgstr "خيارات البحث" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Search the action named 'Backup scheduler'." +msgstr "ابحث عن الأجزاء المسمى 'Backup scheduler'." + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Set the scheduler to active and fill in how often you want backups generated." +msgstr "قم بتفعيل الجدولة واملأ كم تربد عادة توليد النسخ الاحتياطي." + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Test" +msgstr "اختبار" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Test SFTP Connection" +msgstr "اختبار توصيل SFTP" + +#. module: auto_backup +#: help:db.backup,sftpip:0 +msgid "The IP address from your remote server. For example 192.168.0.1" +msgstr "عنوان بروتوكول الإنترنت من خادومك البعيد. مثلاً 192.168.0.1" + +#. module: auto_backup +#: help:db.backup,sftppath:0 +msgid "The location to the folder where the dumps should be written to. For example /odoo/backups/.\n" +"Files will then be written to /odoo/backups/ on your remote server." +msgstr "" +"موقع المجلد التي يجب كتابة ملفات النسخ عليه. مثلاً /odoo/backups/.\n" +"وحينها سيتم كتابة الملفات إلى /odoo/backups/ على خادومك البعيد." + +#. module: auto_backup +#: help:db.backup,sftppassword:0 +msgid "The password from the user where the SFTP connection should be made with. This is the password from the user on the external server." +msgstr "" +"كلمة المرور الذي من المفترض عمل اتصال SFTP من بها. هذا هي كلمة المرور على " +"الخادم الخارجي." + +#. module: auto_backup +#: help:db.backup,sftpport:0 +msgid "The port on the FTP server that accepts SSH/SFTP calls." +msgstr "المنفذ على خادم FTP الذي يقبل طلبات SSH/SFTP." + +#. module: auto_backup +#: help:db.backup,sftpusername:0 +msgid "The username where the SFTP connection should be made with. This is the user on the external server." +msgstr "" +"اسم المستخدم الذي من المفترض عمل اتصال SFTP من به. هذا هو المستخدم على " +"الخادم الخارجي." + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "This configures the scheduler for automatic backup of the given database running on given host at given port on regular intervals." +msgstr "" +"هذا الإعداد سيجدول النسخ الاحتياطي التلقائي لقاعدة بيانات معينة وسينفذ على " +"مضيف معين بمنفذ معين خلال فترات متتابعة. " + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Use SFTP with caution! This writes files to external servers under the path you specify." +msgstr "" +"استخدم SFTP بحذر ! لأن هذا يؤدي لكتابة ملفات لخوادم خارجية على المسار الذي " +"حددته." + +#. module: auto_backup +#: field:db.backup,sftpusername:0 +msgid "Username SFTP Server" +msgstr "أسم المستخدم لخادم SFTP" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Warning:" +msgstr "تحذير :" + +#. module: auto_backup +#: field:db.backup,sftpwrite:0 +msgid "Write to external server with sftp" +msgstr "الكتابة على خادم خارجي من خلال sftp" diff --git a/auto_backup/i18n/bg.po b/auto_backup/i18n/bg.po new file mode 100644 index 0000000..c44799f --- /dev/null +++ b/auto_backup/i18n/bg.po @@ -0,0 +1,158 @@ +# Bulgarian translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2009-11-24 13:49+0000\n" +"PO-Revision-Date: 2011-03-30 07:20+0000\n" +"Last-Translator: Dimitar Markov \n" +"Language-Team: Bulgarian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-04-20 05:35+0000\n" +"X-Generator: Launchpad (build 16567)\n" + +#. module: auto_backup +#: help:db.backup,name:0 +msgid "Database you want to schedule backups for" +msgstr "" + +#. module: auto_backup +#: constraint:ir.model:0 +msgid "" +"The Object name must start with x_ and not contain any special character !" +msgstr "" +"Името на обекта трябва да започва с x_ и не може да никакви специални знаци !" + +#. module: auto_backup +#: constraint:ir.actions.act_window:0 +msgid "Invalid model name in the action definition." +msgstr "Невалидно име на модел при задаване на действие" + +#. module: auto_backup +#: model:ir.model,name:auto_backup.model_db_backup +msgid "db.backup" +msgstr "" + +#. module: auto_backup +#: view:db.backup:0 +msgid "" +"1) Go to Administration / Configuration / Scheduler / Scheduled Actions" +msgstr "" + +#. module: auto_backup +#: model:ir.actions.act_window,name:auto_backup.action_backup_conf_form +#: model:ir.ui.menu,name:auto_backup.backup_conf_menu +msgid "Configure Backup" +msgstr "" + +#. module: auto_backup +#: view:db.backup:0 +msgid "Test" +msgstr "Тестване" + +#. module: auto_backup +#: view:db.backup:0 +msgid "IP Configuration" +msgstr "" + +#. module: auto_backup +#: help:db.backup,bkp_dir:0 +msgid "Absolute path for storing the backups" +msgstr "" + +#. module: auto_backup +#: model:ir.module.module,shortdesc:auto_backup.module_meta_information +msgid "Database Auto-Backup" +msgstr "" + +#. module: auto_backup +#: view:db.backup:0 +msgid "Database Configuration" +msgstr "" + +#. module: auto_backup +#: view:db.backup:0 +msgid "4) Set other values as per your preference" +msgstr "" + +#. module: auto_backup +#: field:db.backup,host:0 +msgid "Host" +msgstr "Хост" + +#. module: auto_backup +#: view:db.backup:0 +msgid "" +"Automatic backup of all the databases under this can be scheduled as " +"follows: " +msgstr "" + +#. module: auto_backup +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "" + +#. module: auto_backup +#: field:db.backup,bkp_dir:0 +msgid "Backup Directory" +msgstr "" + +#. module: auto_backup +#: field:db.backup,name:0 +msgid "Database" +msgstr "База данни" + +#. module: auto_backup +#: view:db.backup:0 +msgid "2) Schedule new action(create a new record)" +msgstr "" + +#. module: auto_backup +#: model:ir.module.module,description:auto_backup.module_meta_information +msgid "" +"The generic Open ERP Database Auto-Backup system enables the user to make " +"configurations for the automatic backup of the database.\n" +"User simply requires to specify host & port under IP Configuration & " +"database(on specified host running at specified port) and backup " +"directory(in which all the backups of the specified database will be stored) " +"under Database Configuration.\n" +"\n" +"Automatic backup for all such configured databases under this can then be " +"scheduled as follows: \n" +" \n" +"1) Go to Administration / Configuration / Scheduler / Scheduled Actions\n" +"2) Schedule new action(create a new record)\n" +"3) Set 'Object' to 'db.backup' and 'Function' to 'schedule_backup' under " +"page 'Technical Data'\n" +"4) Set other values as per your preference" +msgstr "" + +#. module: auto_backup +#: view:db.backup:0 +msgid "" +"3) Set 'Object' to 'db.backup' and 'Function' to 'schedule_backup' under " +"page 'Technical Data'" +msgstr "" + +#. module: auto_backup +#: view:db.backup:0 +msgid "Help" +msgstr "Помощ" + +#. module: auto_backup +#: view:db.backup:0 +msgid "" +"This configures the scheduler for automatic backup of the given database " +"running on given host at given port on regular intervals." +msgstr "" + +#. module: auto_backup +#: field:db.backup,port:0 +msgid "Port" +msgstr "Порт" diff --git a/auto_backup/i18n/ca.po b/auto_backup/i18n/ca.po new file mode 100644 index 0000000..cb9e2f1 --- /dev/null +++ b/auto_backup/i18n/ca.po @@ -0,0 +1,157 @@ +# Catalan translation for openobject-addons +# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2009-11-24 13:49+0000\n" +"PO-Revision-Date: 2014-10-20 06:41+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Catalan \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-10-21 06:30+0000\n" +"X-Generator: Launchpad (build 17203)\n" + +#. module: auto_backup +#: help:db.backup,name:0 +msgid "Database you want to schedule backups for" +msgstr "" + +#. module: auto_backup +#: constraint:ir.model:0 +msgid "" +"The Object name must start with x_ and not contain any special character !" +msgstr "" + +#. module: auto_backup +#: constraint:ir.actions.act_window:0 +msgid "Invalid model name in the action definition." +msgstr "" + +#. module: auto_backup +#: model:ir.model,name:auto_backup.model_db_backup +msgid "db.backup" +msgstr "" + +#. module: auto_backup +#: view:db.backup:0 +msgid "" +"1) Go to Administration / Configuration / Scheduler / Scheduled Actions" +msgstr "" + +#. module: auto_backup +#: model:ir.actions.act_window,name:auto_backup.action_backup_conf_form +#: model:ir.ui.menu,name:auto_backup.backup_conf_menu +msgid "Configure Backup" +msgstr "" + +#. module: auto_backup +#: view:db.backup:0 +msgid "Test" +msgstr "" + +#. module: auto_backup +#: view:db.backup:0 +msgid "IP Configuration" +msgstr "" + +#. module: auto_backup +#: help:db.backup,bkp_dir:0 +msgid "Absolute path for storing the backups" +msgstr "" + +#. module: auto_backup +#: model:ir.module.module,shortdesc:auto_backup.module_meta_information +msgid "Database Auto-Backup" +msgstr "" + +#. module: auto_backup +#: view:db.backup:0 +msgid "Database Configuration" +msgstr "" + +#. module: auto_backup +#: view:db.backup:0 +msgid "4) Set other values as per your preference" +msgstr "" + +#. module: auto_backup +#: field:db.backup,host:0 +msgid "Host" +msgstr "" + +#. module: auto_backup +#: view:db.backup:0 +msgid "" +"Automatic backup of all the databases under this can be scheduled as " +"follows: " +msgstr "" + +#. module: auto_backup +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "" + +#. module: auto_backup +#: field:db.backup,bkp_dir:0 +msgid "Backup Directory" +msgstr "" + +#. module: auto_backup +#: field:db.backup,name:0 +msgid "Database" +msgstr "" + +#. module: auto_backup +#: view:db.backup:0 +msgid "2) Schedule new action(create a new record)" +msgstr "" + +#. module: auto_backup +#: model:ir.module.module,description:auto_backup.module_meta_information +msgid "" +"The generic Open ERP Database Auto-Backup system enables the user to make " +"configurations for the automatic backup of the database.\n" +"User simply requires to specify host & port under IP Configuration & " +"database(on specified host running at specified port) and backup " +"directory(in which all the backups of the specified database will be stored) " +"under Database Configuration.\n" +"\n" +"Automatic backup for all such configured databases under this can then be " +"scheduled as follows: \n" +" \n" +"1) Go to Administration / Configuration / Scheduler / Scheduled Actions\n" +"2) Schedule new action(create a new record)\n" +"3) Set 'Object' to 'db.backup' and 'Function' to 'schedule_backup' under " +"page 'Technical Data'\n" +"4) Set other values as per your preference" +msgstr "" + +#. module: auto_backup +#: view:db.backup:0 +msgid "" +"3) Set 'Object' to 'db.backup' and 'Function' to 'schedule_backup' under " +"page 'Technical Data'" +msgstr "" + +#. module: auto_backup +#: view:db.backup:0 +msgid "Help" +msgstr "" + +#. module: auto_backup +#: view:db.backup:0 +msgid "" +"This configures the scheduler for automatic backup of the given database " +"running on given host at given port on regular intervals." +msgstr "" + +#. module: auto_backup +#: field:db.backup,port:0 +msgid "Port" +msgstr "" diff --git a/auto_backup/i18n/es.po b/auto_backup/i18n/es.po new file mode 100644 index 0000000..6c56d1b --- /dev/null +++ b/auto_backup/i18n/es.po @@ -0,0 +1,166 @@ +# Spanish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2009-11-24 13:49+0000\n" +"PO-Revision-Date: 2011-08-23 19:48+0000\n" +"Last-Translator: mgaja (GrupoIsep.com) \n" +"Language-Team: Spanish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-04-20 05:35+0000\n" +"X-Generator: Launchpad (build 16567)\n" + +#. module: auto_backup +#: help:db.backup,name:0 +msgid "Database you want to schedule backups for" +msgstr "Base de datos que desea programar copias de seguridad para" + +#. module: auto_backup +#: constraint:ir.model:0 +msgid "" +"The Object name must start with x_ and not contain any special character !" +msgstr "" +"¡El objeto debe empezar con x_ y no puede contener ningún carácter especial!" + +#. module: auto_backup +#: constraint:ir.actions.act_window:0 +msgid "Invalid model name in the action definition." +msgstr "Nombre del modelo inválido en la definición de acción." + +#. module: auto_backup +#: model:ir.model,name:auto_backup.model_db_backup +msgid "db.backup" +msgstr "backup.BBDD" + +#. module: auto_backup +#: view:db.backup:0 +msgid "" +"1) Go to Administration / Configuration / Scheduler / Scheduled Actions" +msgstr "" +"1) Vaya a Administración / Configuración / Programador / Acciones programadas" + +#. module: auto_backup +#: model:ir.actions.act_window,name:auto_backup.action_backup_conf_form +#: model:ir.ui.menu,name:auto_backup.backup_conf_menu +msgid "Configure Backup" +msgstr "Configurar copia de seguridad" + +#. module: auto_backup +#: view:db.backup:0 +msgid "Test" +msgstr "Prueba" + +#. module: auto_backup +#: view:db.backup:0 +msgid "IP Configuration" +msgstr "Configuración IP" + +#. module: auto_backup +#: help:db.backup,bkp_dir:0 +msgid "Absolute path for storing the backups" +msgstr "Ruta absoluta para el almacenamiento de las copias de seguridad" + +#. module: auto_backup +#: model:ir.module.module,shortdesc:auto_backup.module_meta_information +msgid "Database Auto-Backup" +msgstr "Copia de seguridad automática de Base de datos" + +#. module: auto_backup +#: view:db.backup:0 +msgid "Database Configuration" +msgstr "Configuración de Base de Datos" + +#. module: auto_backup +#: view:db.backup:0 +msgid "4) Set other values as per your preference" +msgstr "4) Establecer los demás valores según su preferencia" + +#. module: auto_backup +#: field:db.backup,host:0 +msgid "Host" +msgstr "Host" + +#. module: auto_backup +#: view:db.backup:0 +msgid "" +"Automatic backup of all the databases under this can be scheduled as " +"follows: " +msgstr "" +"Copia de seguridad automática de las bases de datos en virtud de este puede " +"ser programado de la siguiente manera: " + +#. module: auto_backup +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "¡XML inválido para la definición de la vista!" + +#. module: auto_backup +#: field:db.backup,bkp_dir:0 +msgid "Backup Directory" +msgstr "Directorio de la copia de seguridad" + +#. module: auto_backup +#: field:db.backup,name:0 +msgid "Database" +msgstr "Base de datos" + +#. module: auto_backup +#: view:db.backup:0 +msgid "2) Schedule new action(create a new record)" +msgstr "2) Lista de nuevas acciones (crear un nuevo registro)" + +#. module: auto_backup +#: model:ir.module.module,description:auto_backup.module_meta_information +msgid "" +"The generic Open ERP Database Auto-Backup system enables the user to make " +"configurations for the automatic backup of the database.\n" +"User simply requires to specify host & port under IP Configuration & " +"database(on specified host running at specified port) and backup " +"directory(in which all the backups of the specified database will be stored) " +"under Database Configuration.\n" +"\n" +"Automatic backup for all such configured databases under this can then be " +"scheduled as follows: \n" +" \n" +"1) Go to Administration / Configuration / Scheduler / Scheduled Actions\n" +"2) Schedule new action(create a new record)\n" +"3) Set 'Object' to 'db.backup' and 'Function' to 'schedule_backup' under " +"page 'Technical Data'\n" +"4) Set other values as per your preference" +msgstr "" + +#. module: auto_backup +#: view:db.backup:0 +msgid "" +"3) Set 'Object' to 'db.backup' and 'Function' to 'schedule_backup' under " +"page 'Technical Data'" +msgstr "" +"3) Ajuste \"objeto\" a \"db.backup\" y \"función\" a \"programar copias de " +"seguridad\" en la página \"Datos Técnicos\"" + +#. module: auto_backup +#: view:db.backup:0 +msgid "Help" +msgstr "Ayuda" + +#. module: auto_backup +#: view:db.backup:0 +msgid "" +"This configures the scheduler for automatic backup of the given database " +"running on given host at given port on regular intervals." +msgstr "" +"Esto configura el planificador de copia de seguridad automática de la base " +"de datos dado que se ejecutan en el host dado en el puerto en intervalos " +"regulares." + +#. module: auto_backup +#: field:db.backup,port:0 +msgid "Port" +msgstr "Puerto" diff --git a/auto_backup/i18n/ko_KR.po b/auto_backup/i18n/ko_KR.po new file mode 100644 index 0000000..beaf9b5 --- /dev/null +++ b/auto_backup/i18n/ko_KR.po @@ -0,0 +1,395 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auto_backup +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0-20180205\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-02-08 03:22+0000\n" +"PO-Revision-Date: 2018-02-08 12:47+0900\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.0.6\n" +"Last-Translator: \n" +"Language: ko_KR\n" + +#. module: auto_backup +#: model:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "" +"Warning:\n" +" Use SFTP with caution! This writes files to external " +"servers under the path you specify." +msgstr "" +"경고:\n" +" 조심해서 SFTP를 사용하세요! 이것은 당신이 지정한 경로" +"밑에 외부서버들로 파일들을 쓰게됩니다." + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup_folder +msgid "Absolute path for storing the backups" +msgstr "백업저장용 절대경로명" + +#. module: auto_backup +#: model:ir.module.category,name:auto_backup.module_management +msgid "Auto backup access" +msgstr "자동으로 백업 액세스하기" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup_send_mail_sftp_fail +msgid "Auto. E-mail on backup fail" +msgstr "백업실패시에 이메일로 알려주기 (자동)" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup_autoremove +msgid "Auto. Remove Backups" +msgstr "백업제거하기 (자동)" + +#. module: auto_backup +#: model:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "Back-up view" +msgstr "백업보기" + +#. module: auto_backup +#: model:ir.ui.menu,name:auto_backup.auto_backup_menu +msgid "Back-ups" +msgstr "백업" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup_folder +msgid "Backup Directory" +msgstr "백업디렉토리" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup_backup_type +msgid "Backup Type" +msgstr "백업타입" + +#. module: auto_backup +#: model:ir.actions.server,name:auto_backup.backup_scheduler_ir_actions_server +#: model:ir.cron,cron_name:auto_backup.backup_scheduler +#: model:ir.cron,name:auto_backup.backup_scheduler +msgid "Backup scheduler" +msgstr "백업스케줄러" + +#. module: auto_backup +#: model:ir.ui.view,arch_db:auto_backup.view_backup_config_tree +msgid "Backups" +msgstr "백업" + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup_days_to_keep_sftp +msgid "" +"Choose after how many days the backup should be deleted from the FTP server. " +"For example:\n" +"If you fill in 5 the backups will be removed after 5 days from the FTP " +"server." +msgstr "" +"FTP서버로부터 몇일지난 백업본을 삭제할지 선택하세요. 예를들면:\n" +"만약 5를 기입하면 그 백업본들은 FTP서버에서 5일후에 삭제됩니다." + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup_days_to_keep +msgid "" +"Choose after how many days the backup should be deleted. For example:\n" +"If you fill in 5 the backups will be removed after 5 days." +msgstr "" +"FTP서버로부터 몇일지난 백업본을 삭제할지 선택하세요. 예를들면:\n" +"만약 5를 기입하면 그 백업본들은 FTP서버에서 5일후에 삭제됩니다." + +#. module: auto_backup +#: model:ir.actions.act_window,name:auto_backup.action_backup +#: model:ir.ui.menu,name:auto_backup.backup_conf_menu +msgid "Configure back-ups" +msgstr "백업구성하기" + +#. module: auto_backup +#: code:addons/auto_backup/models/db_backup.py:129 +#, python-format +msgid "Connection Test Failed!" +msgstr "연결테스트실패~" + +#. module: auto_backup +#: code:addons/auto_backup/models/db_backup.py:124 +#, python-format +msgid "" +"Connection Test Succeeded!\n" +"Everything seems properly set up for FTP back-ups!" +msgstr "" +"연결테스트성공!\n" +"모든게 적절히 세팅된거 같습니다!" + +#. module: auto_backup +#: model:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "Contact me!" +msgstr "저에게 연락하세요~" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup_create_uid +msgid "Created by" +msgstr "생성됨" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup_create_date +msgid "Created on" +msgstr "생성됨" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup_name +msgid "Database" +msgstr "데이터베이스" + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup_name +msgid "Database you want to schedule backups for" +msgstr "백업을 스케줄하기 원하는 데이터베이스" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup_display_name +msgid "Display Name" +msgstr "표시이름" + +#. module: auto_backup +#: selection:db.backup,backup_type:0 +msgid "Dump" +msgstr "덤프" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup_email_to_notify +msgid "E-mail to notify" +msgstr "통보할 이메일주소" + +#. module: auto_backup +#: code:addons/auto_backup/models/db_backup.py:98 constraint:db.backup:0 +#, python-format +msgid "Error ! No such database exists!" +msgstr "에러~ 그런 데이터베이스가 존재하지 않습니다" + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup_email_to_notify +msgid "" +"Fill in the e-mail where you want to be notified that the backup failed on " +"the FTP." +msgstr "FTP서버상에서 백업실패할때 알림받기원하는 이메일주소를 채워넣으세요" + +#. module: auto_backup +#: model:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "For example: /odoo/backups/" +msgstr "예: /odoo/backups/" + +#. module: auto_backup +#: model:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "Go to Settings / Technical / Automation / Scheduled Actions." +msgstr "Settings / Technical / Automation / Scheduled Actions 으로 가세요." + +#. module: auto_backup +#: model:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "Help" +msgstr "도움말" + +#. module: auto_backup +#: code:addons/auto_backup/models/db_backup.py:132 +#, python-format +msgid "Here is what we got instead:\n" +msgstr "우리가 대신하는것이 여기있습니다:\n" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup_host +msgid "Host" +msgstr "호스트" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup_id +msgid "ID" +msgstr "ID" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup_sftp_host +msgid "IP Address SFTP Server" +msgstr "SFTP서버 IP주소" + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup_send_mail_sftp_fail +msgid "" +"If you check this option you can choose to automaticly get e-mailed when the " +"backup to the external server failed." +msgstr "" +"이 옵션을 체크하면 외부서버에서 백업실패할때 자동적으로 이메일하도록 선택할 " +"수 있습니다." + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup_autoremove +msgid "" +"If you check this option you can choose to automaticly remove the backup " +"after xx days" +msgstr "" +"이 옵션을 선택하면 자동적으로 며칠(xx days)후에 백업을 제거하도록 선택할 수 " +"있습니다" + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup_sftp_write +msgid "" +"If you check this option you can specify the details needed to write to a " +"remote server with SFTP." +msgstr "" +"이 옵션을 선택하면 SFTP 원격서버로 쓰려고 할때 요구되는 정보를 지정할 수 있습" +"니다." + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup___last_update +msgid "Last Modified on" +msgstr "최근수정일자" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup_write_uid +msgid "Last Updated by" +msgstr "최근수정자" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup_write_date +msgid "Last Updated on" +msgstr "최근업데이트일자" + +#. module: auto_backup +#: model:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "Local backup configuration" +msgstr "로컬백업환경설정" + +#. module: auto_backup +#: model:res.groups,name:auto_backup.group_manager +msgid "Manager" +msgstr "관리자" + +#. module: auto_backup +#: model:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "Need more help?" +msgstr "더 도움이 필요하세요?" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup_sftp_password +msgid "Password User SFTP Server" +msgstr "SFTP서버 사용자 패스워드" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup_sftp_path +msgid "Path external server" +msgstr "외부서버경로" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup_port +msgid "Port" +msgstr "포트" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup_days_to_keep_sftp +msgid "Remove SFTP after x days" +msgstr "몇일후에 SFTP 제거" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup_days_to_keep +msgid "Remove after x days" +msgstr "몇일후에 제거하기" + +#. module: auto_backup +#: model:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "SFTP" +msgstr "SFTP" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup_sftp_port +msgid "SFTP Port" +msgstr "SFTP 포트" + +#. module: auto_backup +#: model:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "Search the action named 'Backup scheduler'." +msgstr "'백업스케줄러'라고 명명된 액션을 검색하세요" + +#. module: auto_backup +#: model:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "" +"Set the scheduler to active and fill in how often you want backups generated." +msgstr "스케줄러를 활성화로 세팅하고 백업주기를 채워넣으세요" + +#. module: auto_backup +#: model:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "Test SFTP Connection" +msgstr "SFTP연결테스트" + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup_sftp_host +msgid "The IP address from your remote server. For example 192.168.0.1" +msgstr "원격서버로부터의 IP주소. 예를들자면, 192.168.0.1" + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup_sftp_path +msgid "" +"The location to the folder where the dumps should be written to. For " +"example /odoo/backups/.\n" +"Files will then be written to /odoo/backups/ on your remote server." +msgstr "" +"덤프파일이 씌어져야하는 폴더위치. 예를들어보자면 /odoo/backups/.\n" +"그 다음에 파일들은 당신서버상의 /odoo/backups/ 로 쓰여질겁니다." + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup_sftp_password +msgid "" +"The password from the user where the SFTP connection should be made with. " +"This is the password from the user on the external server." +msgstr "" +"SFTP연결이 만들어져야하는 그 사용자의 비밀번호. 이것은 외부서버상의 그 사용자" +"의 비밀번호예요~" + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup_sftp_port +msgid "The port on the FTP server that accepts SSH/SFTP calls." +msgstr "SSH/SFTP접속을 허용하는 FTP서버상의 포트" + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup_sftp_user +msgid "" +"The username where the SFTP connection should be made with. This is the user " +"on the external server." +msgstr "SFTP연결할 사용자명. 외부서버상의 사용자명이예요~ " + +#. module: auto_backup +#: model:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "" +"This configures the scheduler for automatic backup of the given database " +"running on given host\n" +" at given port on regular intervals.\n" +"
\n" +" Automatic backups of the database can be scheduled " +"as follows:" +msgstr "" +"이것은 정기적인 간격으로 해당 호스트상에서 실행중인 데이터베이스의 자동백업용" +"으로 스케줄러를 구성합니다. 그 데이터베이스의 자동백업들은 아래처럼 스케줄될 " +"수 있습니다:" + +#. module: auto_backup +#: model:ir.module.category,description:auto_backup.module_management +msgid "User access level for this module" +msgstr "이 모듈용 사용자접근레벨" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup_sftp_user +msgid "Username SFTP Server" +msgstr "SFTP서버 사용자명" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup_sftp_write +msgid "Write to external server with sftp" +msgstr "sftp와 함께 외부서버로 쓰기" + +#. module: auto_backup +#: selection:db.backup,backup_type:0 +msgid "Zip" +msgstr "Zip" + +#. module: auto_backup +#: model:ir.model,name:auto_backup.model_db_backup +msgid "db.backup" +msgstr "db.backup" diff --git a/auto_backup/i18n/nl.po b/auto_backup/i18n/nl.po new file mode 100644 index 0000000..305dce7 --- /dev/null +++ b/auto_backup/i18n/nl.po @@ -0,0 +1,380 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auto_backup +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 13.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-10-20 13:29+0000\n" +"PO-Revision-Date: 2019-10-20 13:29+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: auto_backup +#: model_terms:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "" +"Warning:\n" +" Use SFTP with caution! This writes files to external servers under the path you specify." +msgstr "Waarschuwing:\n" +" Gebruik SFTP voorzichtig! Dit schrijft bestanden naar externe servers onder het pad dat u opgeeft." + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup__folder +msgid "Absolute path for storing the backups" +msgstr "Absoluut pad om backups te bewaren" + +#. module: auto_backup +#: model:ir.module.category,name:auto_backup.module_management +msgid "Auto backup access" +msgstr "Auto backup toegang" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__send_mail_sftp_fail +msgid "Auto. E-mail on backup fail" +msgstr "Auto. e-mail bij mislukte back-up" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__autoremove +msgid "Auto. Remove Backups" +msgstr "Auto. e-mailen wanneer backup mislukt" + +#. module: auto_backup +#: model_terms:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "Back-up view" +msgstr "Back-up weergave" + +#. module: auto_backup +#: model:ir.ui.menu,name:auto_backup.auto_backup_menu +msgid "Back-ups" +msgstr "Back-ups" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__folder +msgid "Backup Directory" +msgstr "Backup folder" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__backup_type +msgid "Backup Type" +msgstr "Soort back-up" + +#. module: auto_backup +#: model:ir.model,name:auto_backup.model_db_backup +msgid "Backup configuration record" +msgstr "Back-up configuratie" + +#. module: auto_backup +#: model:ir.actions.server,name:auto_backup.backup_scheduler_ir_actions_server +#: model:ir.cron,cron_name:auto_backup.backup_scheduler +#: model:ir.cron,name:auto_backup.backup_scheduler +msgid "Backup scheduler" +msgstr "Backup planner" + +#. module: auto_backup +#: model_terms:ir.ui.view,arch_db:auto_backup.view_backup_config_tree +msgid "Backups" +msgstr "Back-ups" + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup__days_to_keep_sftp +msgid "" +"Choose after how many days the backup should be deleted from the FTP server. For example:\n" +"If you fill in 5 the backups will be removed after 5 days from the FTP server." +msgstr "Kies na hoeveel dagen de backups verwijderd moeten worden van de FTP server. Bijvoorbeeld:\n" +"Als u 5 invult zal de backup na 5 dagen verwijderd worden van de FTP server." + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup__days_to_keep +msgid "" +"Choose after how many days the backup should be deleted. For example:\n" +"If you fill in 5 the backups will be removed after 5 days." +msgstr "Kies na hoeveel dagen de backups verwijderd moeten worden van de FTP server. Bijvoorbeeld:\n" +"Als u 5 invult zal de backup na 5 dagen verwijderd worden van de FTP server." + +#. module: auto_backup +#: model:ir.actions.act_window,name:auto_backup.action_backup +#: model:ir.ui.menu,name:auto_backup.backup_conf_menu +msgid "Configure back-ups" +msgstr "Configureer back-ups" + +#. module: auto_backup +#: code:addons/auto_backup/models/db_backup.py:0 +#, python-format +msgid "Connection Test Failed!" +msgstr "Connectie test mislukt!" + +#. module: auto_backup +#: code:addons/auto_backup/models/db_backup.py:0 +#, python-format +msgid "" +"Connection Test Succeeded!\n" +"Everything seems properly set up for FTP back-ups!" +msgstr "Connectie test succesvol!\n" +"Alles lijkt correct opgezet voor FTP back-ups!" + +#. module: auto_backup +#: model_terms:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "Contact me!" +msgstr "Contacteer mij!" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__create_uid +msgid "Created by" +msgstr "Aangemaakt door" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__create_date +msgid "Created on" +msgstr "Aangemaakt op" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__name +msgid "Database" +msgstr "Database" + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup__name +msgid "Database you want to schedule backups for" +msgstr "Dataabse waar u back-ups voor wilt plannen" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__display_name +msgid "Display Name" +msgstr "Schermnaam" + +#. module: auto_backup +#: model:ir.model.fields.selection,name:auto_backup.selection__db_backup__backup_type__dump +msgid "Dump" +msgstr "Dump" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__email_to_notify +msgid "E-mail to notify" +msgstr "E-mail om te verwittigen" + +#. module: auto_backup +#: code:addons/auto_backup/models/db_backup.py:0 +#, python-format +msgid "Error ! No such database exists!" +msgstr "Fout! Deze database bestaat niet!" + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup__email_to_notify +msgid "" +"Fill in the e-mail where you want to be notified that the backup failed on " +"the FTP." +msgstr "Vul de e-mail in waarop u wilt verwittigd worden als de backup mislukt op de FTP." + +#. module: auto_backup +#: model_terms:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "For example: /odoo/backups/" +msgstr "Bijvoorbeeld: /odoo/backups/" + +#. module: auto_backup +#: model_terms:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "Go to Settings / Technical / Automation / Scheduled Actions." +msgstr "Ga naar Instellingen / Technisch / Automatisering / Geplande acties." + +#. module: auto_backup +#: model_terms:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "Help" +msgstr "Help" + +#. module: auto_backup +#: code:addons/auto_backup/models/db_backup.py:0 +#, python-format +msgid "Here is what we got instead:\n" +msgstr "Hier is wat we in de plaats terugkregen:\n" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__host +msgid "Host" +msgstr "Host" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__id +msgid "ID" +msgstr "ID" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__sftp_host +msgid "IP Address SFTP Server" +msgstr "IP adres SFTP server" + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup__send_mail_sftp_fail +msgid "" +"If you check this option you can choose to automaticly get e-mailed when the" +" backup to the external server failed." +msgstr "Als u deze optie aanvinkt kan u kiezen om automatisch een e-mail aan te krijgen als de backuaar de externe server mislukt." + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup__autoremove +msgid "" +"If you check this option you can choose to automaticly remove the backup " +"after xx days" +msgstr "Als u deze optie aanvinkt kan u kiezen om automatisch backups te verwijderen " +"na xx dagen" + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup__sftp_write +msgid "" +"If you check this option you can specify the details needed to write to a " +"remote server with SFTP." +msgstr "Als u deze optie aanvinkt kan u de details invullen die nodig zijn om te connecteren met de " +" externe SFTP server" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup____last_update +msgid "Last Modified on" +msgstr "Laatst gewijzigd op" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__write_uid +msgid "Last Updated by" +msgstr "Laatst bijgewerkt door" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__write_date +msgid "Last Updated on" +msgstr "Laatst bijgewerkt op" + +#. module: auto_backup +#: model_terms:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "Local backup configuration" +msgstr "Lokale back-up configuratie" + +#. module: auto_backup +#: model:res.groups,name:auto_backup.group_manager +msgid "Manager" +msgstr "Beheerder" + +#. module: auto_backup +#: model_terms:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "Need more help?" +msgstr "Meer hulp nodig?" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__sftp_password +msgid "Password User SFTP Server" +msgstr "Wachtwoord gebruiker SFTP server" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__sftp_path +msgid "Path external server" +msgstr "Pad externe server" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__port +msgid "Port" +msgstr "Poort" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__days_to_keep_sftp +msgid "Remove SFTP after x days" +msgstr "Verwijderd SFTP na x dagen" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__days_to_keep +msgid "Remove after x days" +msgstr "Verwijder na x dagen" + +#. module: auto_backup +#: model_terms:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "SFTP" +msgstr "SFTP" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__sftp_port +msgid "SFTP Port" +msgstr "SFTP poort" + +#. module: auto_backup +#: model_terms:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "Search the action named 'Backup scheduler'." +msgstr "Zoek de actie met de naam 'Backup planner'." + +#. module: auto_backup +#: model_terms:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "" +"Set the scheduler to active and fill in how often you want backups " +"generated." +msgstr "Zet de planner actief en vul in hoe vaak u wilt dat er backups gegenereerd " +"worden." + +#. module: auto_backup +#: model_terms:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "Test SFTP Connection" +msgstr "Test SFTP verbinding" + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup__sftp_host +msgid "The IP address from your remote server. For example 192.168.0.1" +msgstr "Het IP adres van uw externe server. Bijvoorbeeld: 192.168.0.1" + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup__sftp_path +msgid "" +"The location to the folder where the dumps should be written to. For example /odoo/backups/.\n" +"Files will then be written to /odoo/backups/ on your remote server." +msgstr "De locatie naar de folder waar de backup naar toe moet geschreven worden. Bijvoorbeeld odoo/backups/\n" +"Bestanden worden dan naar /odoo/backups/ geschreven op de externe server" + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup__sftp_password +msgid "" +"The password from the user where the SFTP connection should be made with. " +"This is the password from the user on the external server." +msgstr "Het wachtwoord van de gebruiker waar de SFTP connectie mee moet gemaakt worden. " +"Dit is het wachtwoord van de gebruiker op de externe server." + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup__sftp_port +msgid "The port on the FTP server that accepts SSH/SFTP calls." +msgstr "De poort op de FTP server die SSH/SFTP accepteert." + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup__sftp_user +msgid "" +"The username where the SFTP connection should be made with. This is the user" +" on the external server." +msgstr "De gebruikersnaam waar de SFTP connectie mee gemaakt moet worden. Dit is de gebruiker" +" op de externe server." + +#. module: auto_backup +#: model_terms:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "" +"This configures the scheduler for automatic backup of the given database running on given host\n" +" at given port on regular intervals.\n" +"
\n" +" Automatic backups of the database can be scheduled as follows:" +msgstr "Dit configureert de planner om automatische backups van de opgegeven database te maken die op deze host,\n" +" op een bepaalde poort draaien, op regelmatige intervals.\n" +"
\n" +" Automatische backups kunnen als volgt ingepland worden:" + +#. module: auto_backup +#: model:ir.module.category,description:auto_backup.module_management +msgid "User access level for this module" +msgstr "Gebruikerstoegang voor deze module" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__sftp_user +msgid "Username SFTP Server" +msgstr "Gebruikersnaam SFTP server" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__sftp_write +msgid "Write to external server with sftp" +msgstr "Schrijf naar externe server met SFTP" + +#. module: auto_backup +#: model:ir.model.fields.selection,name:auto_backup.selection__db_backup__backup_type__zip +msgid "Zip" +msgstr "ZIP" + diff --git a/auto_backup/i18n/nl_BE.po b/auto_backup/i18n/nl_BE.po new file mode 100644 index 0000000..8cc89c8 --- /dev/null +++ b/auto_backup/i18n/nl_BE.po @@ -0,0 +1,380 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auto_backup +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 13.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-10-20 13:29+0000\n" +"PO-Revision-Date: 2019-10-20 13:29+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: auto_backup +#: model_terms:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "" +"Warning:\n" +" Use SFTP with caution! This writes files to external servers under the path you specify." +msgstr "Waarschuwing:\n" +" Gebruik SFTP voorzichtig! Dit schrijft bestanden naar externe servers onder het pad dat u opgeeft." + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup__folder +msgid "Absolute path for storing the backups" +msgstr "Absoluut pad om backups te bewaren" + +#. module: auto_backup +#: model:ir.module.category,name:auto_backup.module_management +msgid "Auto backup access" +msgstr "Auto backup toegang" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__send_mail_sftp_fail +msgid "Auto. E-mail on backup fail" +msgstr "Auto. e-mail bij mislukte back-up" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__autoremove +msgid "Auto. Remove Backups" +msgstr "Auto. e-mailen wanneer backup mislukt" + +#. module: auto_backup +#: model_terms:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "Back-up view" +msgstr "Back-up weergave" + +#. module: auto_backup +#: model:ir.ui.menu,name:auto_backup.auto_backup_menu +msgid "Back-ups" +msgstr "Back-ups" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__folder +msgid "Backup Directory" +msgstr "Backup folder" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__backup_type +msgid "Backup Type" +msgstr "Soort back-up" + +#. module: auto_backup +#: model:ir.model,name:auto_backup.model_db_backup +msgid "Backup configuration record" +msgstr "Back-up configuratie" + +#. module: auto_backup +#: model:ir.actions.server,name:auto_backup.backup_scheduler_ir_actions_server +#: model:ir.cron,cron_name:auto_backup.backup_scheduler +#: model:ir.cron,name:auto_backup.backup_scheduler +msgid "Backup scheduler" +msgstr "Backup planner" + +#. module: auto_backup +#: model_terms:ir.ui.view,arch_db:auto_backup.view_backup_config_tree +msgid "Backups" +msgstr "Back-ups" + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup__days_to_keep_sftp +msgid "" +"Choose after how many days the backup should be deleted from the FTP server. For example:\n" +"If you fill in 5 the backups will be removed after 5 days from the FTP server." +msgstr "Kies na hoeveel dagen de backups verwijderd moeten worden van de FTP server. Bijvoorbeeld:\n" +"Als u 5 invult zal de backup na 5 dagen verwijderd worden van de FTP server." + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup__days_to_keep +msgid "" +"Choose after how many days the backup should be deleted. For example:\n" +"If you fill in 5 the backups will be removed after 5 days." +msgstr "Kies na hoeveel dagen de backups verwijderd moeten worden van de FTP server. Bijvoorbeeld:\n" +"Als u 5 invult zal de backup na 5 dagen verwijderd worden van de FTP server." + +#. module: auto_backup +#: model:ir.actions.act_window,name:auto_backup.action_backup +#: model:ir.ui.menu,name:auto_backup.backup_conf_menu +msgid "Configure back-ups" +msgstr "Configureer back-ups" + +#. module: auto_backup +#: code:addons/auto_backup/models/db_backup.py:0 +#, python-format +msgid "Connection Test Failed!" +msgstr "Connectie test mislukt!" + +#. module: auto_backup +#: code:addons/auto_backup/models/db_backup.py:0 +#, python-format +msgid "" +"Connection Test Succeeded!\n" +"Everything seems properly set up for FTP back-ups!" +msgstr "Connectie test succesvol!\n" +"Alles lijkt correct opgezet voor FTP backups!" + +#. module: auto_backup +#: model_terms:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "Contact me!" +msgstr "Contacteer mij!" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__create_uid +msgid "Created by" +msgstr "Aangemaakt door" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__create_date +msgid "Created on" +msgstr "Aangemaakt op" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__name +msgid "Database" +msgstr "Database" + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup__name +msgid "Database you want to schedule backups for" +msgstr "Dataabse waar u back-ups voor wilt plannen" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__display_name +msgid "Display Name" +msgstr "Schermnaam" + +#. module: auto_backup +#: model:ir.model.fields.selection,name:auto_backup.selection__db_backup__backup_type__dump +msgid "Dump" +msgstr "Dump" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__email_to_notify +msgid "E-mail to notify" +msgstr "E-mail om te verwittigen" + +#. module: auto_backup +#: code:addons/auto_backup/models/db_backup.py:0 +#, python-format +msgid "Error ! No such database exists!" +msgstr "Fout! Deze database bestaat niet!" + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup__email_to_notify +msgid "" +"Fill in the e-mail where you want to be notified that the backup failed on " +"the FTP." +msgstr "Vul de e-mail in waarop u wilt verwittigd worden als de backup mislukt op de FTP." + +#. module: auto_backup +#: model_terms:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "For example: /odoo/backups/" +msgstr "Bijvoorbeeld: /odoo/backups/" + +#. module: auto_backup +#: model_terms:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "Go to Settings / Technical / Automation / Scheduled Actions." +msgstr "Ga naar Instellingen / Technisch / Automatisering / Geplande acties." + +#. module: auto_backup +#: model_terms:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "Help" +msgstr "Help" + +#. module: auto_backup +#: code:addons/auto_backup/models/db_backup.py:0 +#, python-format +msgid "Here is what we got instead:\n" +msgstr "Hier is wat we in de plaats terugkregen:\n" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__host +msgid "Host" +msgstr "Host" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__id +msgid "ID" +msgstr "ID" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__sftp_host +msgid "IP Address SFTP Server" +msgstr "IP adres SFTP server" + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup__send_mail_sftp_fail +msgid "" +"If you check this option you can choose to automaticly get e-mailed when the" +" backup to the external server failed." +msgstr "Als u deze optie aanvinkt kan u kiezen om automatisch een e-mail aan te krijgen als de backuaar de externe server mislukt." + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup__autoremove +msgid "" +"If you check this option you can choose to automaticly remove the backup " +"after xx days" +msgstr "Als u deze optie aanvinkt kan u kiezen om automatisch backups te verwijderen " +"na xx dagen" + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup__sftp_write +msgid "" +"If you check this option you can specify the details needed to write to a " +"remote server with SFTP." +msgstr "Als u deze optie aanvinkt kan u de details invullen die nodig zijn om te connecteren met de " +" externe SFTP server" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup____last_update +msgid "Last Modified on" +msgstr "Laatst gewijzigd op" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__write_uid +msgid "Last Updated by" +msgstr "Laatst bijgewerkt door" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__write_date +msgid "Last Updated on" +msgstr "Laatst bijgewerkt op" + +#. module: auto_backup +#: model_terms:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "Local backup configuration" +msgstr "Lokale back-up configuratie" + +#. module: auto_backup +#: model:res.groups,name:auto_backup.group_manager +msgid "Manager" +msgstr "Beheerder" + +#. module: auto_backup +#: model_terms:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "Need more help?" +msgstr "Meer hulp nodig?" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__sftp_password +msgid "Password User SFTP Server" +msgstr "Wachtwoord gebruiker SFTP server" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__sftp_path +msgid "Path external server" +msgstr "Pad externe server" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__port +msgid "Port" +msgstr "Poort" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__days_to_keep_sftp +msgid "Remove SFTP after x days" +msgstr "Verwijderd SFTP na x dagen" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__days_to_keep +msgid "Remove after x days" +msgstr "Verwijder na x dagen" + +#. module: auto_backup +#: model_terms:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "SFTP" +msgstr "SFTP" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__sftp_port +msgid "SFTP Port" +msgstr "SFTP poort" + +#. module: auto_backup +#: model_terms:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "Search the action named 'Backup scheduler'." +msgstr "Zoek de actie met de naam 'Backup planner'." + +#. module: auto_backup +#: model_terms:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "" +"Set the scheduler to active and fill in how often you want backups " +"generated." +msgstr "Zet de planner actief en vul in hoe vaak u wilt dat er backups gegenereerd " +"worden." + +#. module: auto_backup +#: model_terms:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "Test SFTP Connection" +msgstr "Test SFTP verbinding" + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup__sftp_host +msgid "The IP address from your remote server. For example 192.168.0.1" +msgstr "Het IP adres van uw externe server. Bijvoorbeeld: 192.168.0.1" + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup__sftp_path +msgid "" +"The location to the folder where the dumps should be written to. For example /odoo/backups/.\n" +"Files will then be written to /odoo/backups/ on your remote server." +msgstr "De locatie naar de folder waar de backup naar toe moet geschreven worden. Bijvoorbeeld odoo/backups/\n" +"Bestanden worden dan naar /odoo/backups/ geschreven op de externe server" + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup__sftp_password +msgid "" +"The password from the user where the SFTP connection should be made with. " +"This is the password from the user on the external server." +msgstr "Het wachtwoord van de gebruiker waar de SFTP connectie mee moet gemaakt worden. " +"Dit is het wachtwoord van de gebruiker op de externe server." + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup__sftp_port +msgid "The port on the FTP server that accepts SSH/SFTP calls." +msgstr "De poort op de FTP server die SSH/SFTP accepteert." + +#. module: auto_backup +#: model:ir.model.fields,help:auto_backup.field_db_backup__sftp_user +msgid "" +"The username where the SFTP connection should be made with. This is the user" +" on the external server." +msgstr "De gebruikersnaam waar de SFTP connectie mee gemaakt moet worden. Dit is de gebruiker" +" op de externe server." + +#. module: auto_backup +#: model_terms:ir.ui.view,arch_db:auto_backup.view_backup_config_form +msgid "" +"This configures the scheduler for automatic backup of the given database running on given host\n" +" at given port on regular intervals.\n" +"
\n" +" Automatic backups of the database can be scheduled as follows:" +msgstr "Dit configureert de planner om automatische backups van de opgegeven database te maken die op deze host,\n" +" op een bepaalde poort draaien, op regelmatige intervals.\n" +"
\n" +" Automatische backups kunnen als volgt ingepland worden:" + +#. module: auto_backup +#: model:ir.module.category,description:auto_backup.module_management +msgid "User access level for this module" +msgstr "Gebruikerstoegang voor deze module" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__sftp_user +msgid "Username SFTP Server" +msgstr "Gebruikersnaam SFTP server" + +#. module: auto_backup +#: model:ir.model.fields,field_description:auto_backup.field_db_backup__sftp_write +msgid "Write to external server with sftp" +msgstr "Schrijf naar externe server met SFTP" + +#. module: auto_backup +#: model:ir.model.fields.selection,name:auto_backup.selection__db_backup__backup_type__zip +msgid "Zip" +msgstr "ZIP" + diff --git a/auto_backup/i18n/pl.po b/auto_backup/i18n/pl.po new file mode 100644 index 0000000..f35e6b8 --- /dev/null +++ b/auto_backup/i18n/pl.po @@ -0,0 +1,178 @@ +# Polish translation for openobject-addons +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2009-11-24 13:49+0000\n" +"PO-Revision-Date: 2011-02-15 15:01+0000\n" +"Last-Translator: OpenERP Administrators \n" +"Language-Team: Polish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-04-20 05:35+0000\n" +"X-Generator: Launchpad (build 16567)\n" + +#. module: auto_backup +#: help:db.backup,name:0 +msgid "Database you want to schedule backups for" +msgstr "Baza danych, dla której chcesz zaplanować robienie kopii zapasowej" + +#. module: auto_backup +#: constraint:ir.model:0 +msgid "" +"The Object name must start with x_ and not contain any special character !" +msgstr "" +"Nazwa obiektu musi zaczynać się od x_ oraz nie może zawierać znaków " +"specjalnych !" + +#. module: auto_backup +#: constraint:ir.actions.act_window:0 +msgid "Invalid model name in the action definition." +msgstr "Nieprawidłowa nazwa modelu w definicji akcji." + +#. module: auto_backup +#: model:ir.model,name:auto_backup.model_db_backup +msgid "db.backup" +msgstr "" + +#. module: auto_backup +#: view:db.backup:0 +msgid "" +"1) Go to Administration / Configuration / Scheduler / Scheduled Actions" +msgstr "1) Idź do Administracja / Konfirguracja / Planista / Planowane akcje" + +#. module: auto_backup +#: model:ir.actions.act_window,name:auto_backup.action_backup_conf_form +#: model:ir.ui.menu,name:auto_backup.backup_conf_menu +msgid "Configure Backup" +msgstr "Konfiguruj kopie zapasowe" + +#. module: auto_backup +#: view:db.backup:0 +msgid "Test" +msgstr "Przetestuj" + +#. module: auto_backup +#: view:db.backup:0 +msgid "IP Configuration" +msgstr "Konfiguracja adresu IP" + +#. module: auto_backup +#: help:db.backup,bkp_dir:0 +msgid "Absolute path for storing the backups" +msgstr "Pełna ścieżka dla kopii zapasowych" + +#. module: auto_backup +#: model:ir.module.module,shortdesc:auto_backup.module_meta_information +msgid "Database Auto-Backup" +msgstr "Automatyczne kopie zapasowe bazy danych" + +#. module: auto_backup +#: view:db.backup:0 +msgid "Database Configuration" +msgstr "Konfiguracja bazy danych" + +#. module: auto_backup +#: view:db.backup:0 +msgid "4) Set other values as per your preference" +msgstr "4) Ustaw inne dane według uznania" + +#. module: auto_backup +#: field:db.backup,host:0 +msgid "Host" +msgstr "Host" + +#. module: auto_backup +#: view:db.backup:0 +msgid "" +"Automatic backup of all the databases under this can be scheduled as " +"follows: " +msgstr "" +"Automatyczne kopie wszystkich baz danych mogą być zaplanowane następująco: " + +#. module: auto_backup +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "XML niewłaściwy dla tej architektury wyświetlania!" + +#. module: auto_backup +#: field:db.backup,bkp_dir:0 +msgid "Backup Directory" +msgstr "Katalog kopii zapasowych" + +#. module: auto_backup +#: field:db.backup,name:0 +msgid "Database" +msgstr "Baza danych" + +#. module: auto_backup +#: view:db.backup:0 +msgid "2) Schedule new action(create a new record)" +msgstr "2) Zaplanuj nową akcję (utwórz nowy rekord)" + +#. module: auto_backup +#: model:ir.module.module,description:auto_backup.module_meta_information +msgid "" +"The generic Open ERP Database Auto-Backup system enables the user to make " +"configurations for the automatic backup of the database.\n" +"User simply requires to specify host & port under IP Configuration & " +"database(on specified host running at specified port) and backup " +"directory(in which all the backups of the specified database will be stored) " +"under Database Configuration.\n" +"\n" +"Automatic backup for all such configured databases under this can then be " +"scheduled as follows: \n" +" \n" +"1) Go to Administration / Configuration / Scheduler / Scheduled Actions\n" +"2) Schedule new action(create a new record)\n" +"3) Set 'Object' to 'db.backup' and 'Function' to 'schedule_backup' under " +"page 'Technical Data'\n" +"4) Set other values as per your preference" +msgstr "" +"System Open ERP Database Auto-Backup pozwala użytkownikowi utworzyć " +"konfiguracje dla automatycznego zachowywania kopii zapasowych baz danych.\n" +"Użytkownik musi tylko podać host i port w Konfiguracji IP i bazę danych " +"oraz katalog dla kopii zapasowej Konfiguracji bazy danych.\n" +"\n" +"Automatyczne kopie wszystkich baz danych mogą być zaplanowane następująco: " +"\n" +" \n" +"1) Idź do Administracja / Konfirguracja / Planista / Planowane akcje\n" +"2) Zaplanuj nową akcję (utwórz nowy rekord)\n" +"3) Ustaw 'Obiekt' na 'db.backup' i 'Funkcja' na 'schedule_backup' na stronie " +"'Dane techniczne'.\n" +"4) Ustaw inne dane według uznania" + +#. module: auto_backup +#: view:db.backup:0 +msgid "" +"3) Set 'Object' to 'db.backup' and 'Function' to 'schedule_backup' under " +"page 'Technical Data'" +msgstr "" +"3) Ustaw 'Obiekt' na 'db.backup' i 'Funkcja' na 'schedule_backup' na stronie " +"'Dane techniczne'." + +#. module: auto_backup +#: view:db.backup:0 +msgid "Help" +msgstr "Pomoc" + +#. module: auto_backup +#: view:db.backup:0 +msgid "" +"This configures the scheduler for automatic backup of the given database " +"running on given host at given port on regular intervals." +msgstr "" +"Tu konfigurujesz planistę do automatycznego zapisywania kopii zapasowych dla " +"określonej bazy danych na na określonym hoście (komputerze) na określonym " +"porcie w regularnych terminach." + +#. module: auto_backup +#: field:db.backup,port:0 +msgid "Port" +msgstr "Port" diff --git a/auto_backup/i18n/pt_BR.po b/auto_backup/i18n/pt_BR.po new file mode 100644 index 0000000..5207bac --- /dev/null +++ b/auto_backup/i18n/pt_BR.po @@ -0,0 +1,183 @@ +# Brazilian Portuguese translation for openobject-addons +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2009-11-24 13:49+0000\n" +"PO-Revision-Date: 2013-07-20 09:39+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Brazilian Portuguese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-07-22 05:50+0000\n" +"X-Generator: Launchpad (build 16696)\n" + +#. module: auto_backup +#: help:db.backup,name:0 +msgid "Database you want to schedule backups for" +msgstr "Banco de dados que você deseja agendar backups para" + +#. module: auto_backup +#: constraint:ir.model:0 +msgid "" +"The Object name must start with x_ and not contain any special character !" +msgstr "" +"O nome do objeto deve iniciar com x_ e não conter qualquer caractere " +"especial!" + +#. module: auto_backup +#: constraint:ir.actions.act_window:0 +msgid "Invalid model name in the action definition." +msgstr "Nome do modelo inválida na definição da ação." + +#. module: auto_backup +#: model:ir.model,name:auto_backup.model_db_backup +msgid "db.backup" +msgstr "db.backup" + +#. module: auto_backup +#: view:db.backup:0 +msgid "" +"1) Go to Administration / Configuration / Scheduler / Scheduled Actions" +msgstr "" +"1) Vá para Administração / Configuração / Programador / Ações Programadas" + +#. module: auto_backup +#: model:ir.actions.act_window,name:auto_backup.action_backup_conf_form +#: model:ir.ui.menu,name:auto_backup.backup_conf_menu +msgid "Configure Backup" +msgstr "Configurar backup" + +#. module: auto_backup +#: view:db.backup:0 +msgid "Test" +msgstr "Teste" + +#. module: auto_backup +#: view:db.backup:0 +msgid "IP Configuration" +msgstr "Configuração de IP" + +#. module: auto_backup +#: help:db.backup,bkp_dir:0 +msgid "Absolute path for storing the backups" +msgstr "Caminho absoluto para armazenar os backups" + +#. module: auto_backup +#: model:ir.module.module,shortdesc:auto_backup.module_meta_information +msgid "Database Auto-Backup" +msgstr "Banco de Dados Auto-Backup" + +#. module: auto_backup +#: view:db.backup:0 +msgid "Database Configuration" +msgstr "Configuração do Banco de Dados" + +#. module: auto_backup +#: view:db.backup:0 +msgid "4) Set other values as per your preference" +msgstr "4) Defina outros valores como por sua preferência" + +#. module: auto_backup +#: field:db.backup,host:0 +msgid "Host" +msgstr "Host" + +#. module: auto_backup +#: view:db.backup:0 +msgid "" +"Automatic backup of all the databases under this can be scheduled as " +"follows: " +msgstr "" +"Backup automático de todos os bancos de dados sob este pode ser programado " +"como segue: " + +#. module: auto_backup +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "Inválido XML para Ver Arquitetura!" + +#. module: auto_backup +#: field:db.backup,bkp_dir:0 +msgid "Backup Directory" +msgstr "Diretório de backup" + +#. module: auto_backup +#: field:db.backup,name:0 +msgid "Database" +msgstr "Banco de Dados" + +#. module: auto_backup +#: view:db.backup:0 +msgid "2) Schedule new action(create a new record)" +msgstr "2) Programe nova ação (criar um novo registro)" + +#. module: auto_backup +#: model:ir.module.module,description:auto_backup.module_meta_information +msgid "" +"The generic Open ERP Database Auto-Backup system enables the user to make " +"configurations for the automatic backup of the database.\n" +"User simply requires to specify host & port under IP Configuration & " +"database(on specified host running at specified port) and backup " +"directory(in which all the backups of the specified database will be stored) " +"under Database Configuration.\n" +"\n" +"Automatic backup for all such configured databases under this can then be " +"scheduled as follows: \n" +" \n" +"1) Go to Administration / Configuration / Scheduler / Scheduled Actions\n" +"2) Schedule new action(create a new record)\n" +"3) Set 'Object' to 'db.backup' and 'Function' to 'schedule_backup' under " +"page 'Technical Data'\n" +"4) Set other values as per your preference" +msgstr "" +"O sistema Auto-Backup genérico Aberto ERP banco de dados permite que o " +"usuário faça configurações para o backup automático do banco de dados. \n" +"usuário requer simplesmente para especificar anfitrião e porta em " +"Configuração do IP e banco de dados (on especificado host executando na " +"porta especificada) eo diretório de backup (em . que todos os backups de " +"banco de dados especificado serão armazenados) em Configuração do banco de " +"dados \n" +"de backup automático de todos esses bancos de dados configurados sob este " +"pode ser programado como segue:\n" +" \n" +" \n" +"1) Vá para Administração / Configuração / Programador / Ações Programadas \n" +"2) Programe nova ação (criar um novo registro) \n" +"3) Defina 'objeto' para 'db.backup' e 'função' para 'schedule_backup' em " +"página \"Dados Técnicos\" \n" +"4 ) Defina outros valores de acordo com sua preferência" + +#. module: auto_backup +#: view:db.backup:0 +msgid "" +"3) Set 'Object' to 'db.backup' and 'Function' to 'schedule_backup' under " +"page 'Technical Data'" +msgstr "" +"3) Defina 'objeto' para 'db.backup' e 'função' para 'schedule_backup \"em\" " +"Dados Técnicos \"página" + +#. module: auto_backup +#: view:db.backup:0 +msgid "Help" +msgstr "Ajudar" + +#. module: auto_backup +#: view:db.backup:0 +msgid "" +"This configures the scheduler for automatic backup of the given database " +"running on given host at given port on regular intervals." +msgstr "" +"Isso configura o agendador de backup automático de um determinado banco de " +"dados rodando em determinado host em determinada porta em intervalos " +"regulares." + +#. module: auto_backup +#: field:db.backup,port:0 +msgid "Port" +msgstr "Porto" diff --git a/auto_backup/i18n/zh_CN.po b/auto_backup/i18n/zh_CN.po new file mode 100644 index 0000000..8178604 --- /dev/null +++ b/auto_backup/i18n/zh_CN.po @@ -0,0 +1,298 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auto_backup +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 8.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-03-26 14:17+0000\n" +"PO-Revision-Date: 2015-03-27 00:16+0800\n" +"Last-Translator: <>\n" +"Language-Team: Talway <1473162392@qq.com>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"Language: zh_CN\n" +"X-Generator: Poedit 1.7.5\n" + +#. module: auto_backup +#: code:addons/auto_backup/backup_scheduler.py:137 +#, python-format +msgid "%s" +msgstr "%s" + +#. module: auto_backup +#: help:db.backup,bkp_dir:0 +msgid "Absolute path for storing the backups" +msgstr "备份绝对路径" + +#. module: auto_backup +#: field:db.backup,sendmailsftpfail:0 +msgid "Auto. E-mail on backup fail" +msgstr "FTP备份失败自动邮件通知你" + +#. module: auto_backup +#: field:db.backup,autoremove:0 +msgid "Auto. Remove Backups" +msgstr "自动删除备份" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Automatic backups of the database can be scheduled as follows:" +msgstr "数据库的自动备份时间安排如下:" + +#. module: auto_backup +#: field:db.backup,bkp_dir:0 +msgid "Backup Directory" +msgstr "备份目录" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_tree +msgid "Backups" +msgstr "备份" + +#. module: auto_backup +#: help:db.backup,daystokeepsftp:0 +msgid "" +"Choose after how many days the backup should be deleted from the FTP server. For example:\n" +"If you fill in 5 the backups will be removed after 5 days from the FTP server." +msgstr "" +"选择后多少天备份应被删除从 FTP 服务器。例如: \n" +"如果你填写 5, 将5 天后 从FTP 服务器 删除备份文件。" + +#. module: auto_backup +#: help:db.backup,daystokeep:0 +msgid "" +"Choose after how many days the backup should be deleted. For example:\n" +"If you fill in 5 the backups will be removed after 5 days." +msgstr "" +"选择后多少天备份应被删除。例如: \n" +"如果你填写5,将 5 天后删除备份。" + +#. module: auto_backup +#: model:ir.actions.act_window,name:auto_backup.action_backup_conf_form +#: model:ir.ui.menu,name:auto_backup.backup_conf_menu +msgid "Configure Backup" +msgstr "数据库备份" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Contact us!" +msgstr "邮件联系我们!" + +#. module: auto_backup +#: field:db.backup,create_uid:0 +msgid "Created by" +msgstr "创建者" + +#. module: auto_backup +#: field:db.backup,create_date:0 +msgid "Created on" +msgstr "创建时间" + +#. module: auto_backup +#: field:db.backup,name:0 +msgid "Database" +msgstr "数据库" + +#. module: auto_backup +#: help:db.backup,name:0 +msgid "Database you want to schedule backups for" +msgstr "计划备份的数据库" + +#. module: auto_backup +#: field:db.backup,emailtonotify:0 +msgid "E-mail to notify" +msgstr "E-mail邮件地址" + +#. module: auto_backup +#: code:addons/auto_backup/backup_scheduler.py:106 constraint:db.backup:0 +#, python-format +msgid "Error ! No such database exists!" +msgstr "错误 !这个数据库不存在 !" + +#. module: auto_backup +#: help:db.backup,emailtonotify:0 +msgid "Fill in the e-mail where you want to be notified that the backup failed on the FTP." +msgstr "FTP备份失败时,邮件通知你详细信息" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "For example: /odoo/backups/" +msgstr "例如: /odoo/backups/" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Go to Settings / Technical / Automation / Scheduled Actions." +msgstr "点击 设置 / 技术 / 自动化 / 计划的动作" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Help" +msgstr "帮助" + +#. module: auto_backup +#: field:db.backup,host:0 +msgid "Host" +msgstr "服务器" + +#. module: auto_backup +#: field:db.backup,id:0 +msgid "ID" +msgstr "ID" + +#. module: auto_backup +#: field:db.backup,sftpip:0 +msgid "IP Address SFTP Server" +msgstr " SFTP 服务器 IP 地址" + +#. module: auto_backup +#: help:db.backup,sendmailsftpfail:0 +msgid "If you check this option you can choose to automaticly get e-mailed when the backup to the external server failed." +msgstr "如果您选中此选项,您可以选择自动收到通过邮件发送到外部服务器备份失败的信息。" + +#. module: auto_backup +#: help:db.backup,autoremove:0 +msgid "If you check this option you can choose to automaticly remove the backup after xx days" +msgstr "如果您选中此选项,您可以选择 xx 天后自动删除备份" + +#. module: auto_backup +#: help:db.backup,sftpwrite:0 +msgid "If you check this option you can specify the details needed to write to a remote server with SFTP." +msgstr "如果您选中此选项,您可以指定需要写入 sftp 的远程服务器的详细信息。" + +#. module: auto_backup +#: field:db.backup,write_uid:0 +msgid "Last Updated by" +msgstr "最后更新者" + +#. module: auto_backup +#: field:db.backup,write_date:0 +msgid "Last Updated on" +msgstr "上次更新日期" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Local backup configuration" +msgstr "本地备份配置" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Need more help?" +msgstr "需要更多帮助吗?" + +#. module: auto_backup +#: field:db.backup,sftppassword:0 +msgid "Password User SFTP Server" +msgstr " SFTP服务器密码" + +#. module: auto_backup +#: field:db.backup,sftppath:0 +msgid "Path external server" +msgstr "服务器目录" + +#. module: auto_backup +#: field:db.backup,port:0 +msgid "Port" +msgstr "端口" + +#. module: auto_backup +#: field:db.backup,daystokeepsftp:0 +msgid "Remove SFTP after x days" +msgstr "多少天后从服务器删除" + +#. module: auto_backup +#: field:db.backup,daystokeep:0 +msgid "Remove after x days" +msgstr "多少天后删除" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "SFTP" +msgstr "SFTP" + +#. module: auto_backup +#: field:db.backup,sftpport:0 +msgid "SFTP Port" +msgstr "SFTP 端口" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_search +msgid "Search options" +msgstr "搜索选项" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Search the action named 'Backup scheduler'." +msgstr "搜索计划备份调度程序“Backup scheduler”。" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Set the scheduler to active and fill in how often you want backups generated." +msgstr "设置计划动作为有效,并填写备份间隔时间,间隔时间单位,间隔次数,执行时间等数据库具体备份方案。" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Test" +msgstr "测试" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Test SFTP Connection" +msgstr "测试 SFTP 连接" + +#. module: auto_backup +#: help:db.backup,sftpip:0 +msgid "The IP address from your remote server. For example 192.168.0.1" +msgstr "SFTP服务器的 IP 地址。例如: 192.168.0.1" + +#. module: auto_backup +#: help:db.backup,sftppath:0 +msgid "" +"The location to the folder where the dumps should be written to. For example /odoo/backups/.\n" +"Files will then be written to /odoo/backups/ on your remote server." +msgstr "" +"转储应将写入的文件夹位置。例如 /odoo/backups/远程服务器上,然后将写入 /odoo/backups/.\n" +"Files。" + +#. module: auto_backup +#: help:db.backup,sftppassword:0 +msgid "The password from the user where the SFTP connection should be made with. This is the password from the user on the external server." +msgstr "从 SFTP 服务器连接该用户的密码。这是SFTP服务器上的用户密码。" + +#. module: auto_backup +#: help:db.backup,sftpport:0 +msgid "The port on the FTP server that accepts SSH/SFTP calls." +msgstr "接受 SSH/SFTP 使用的FTP 服务器上的端口。" + +#. module: auto_backup +#: help:db.backup,sftpusername:0 +msgid "The username where the SFTP connection should be made with. This is the user on the external server." +msgstr "SFTP 连接使用该用户名。这是在SFTP服务器上的用户。" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "This configures the scheduler for automatic backup of the given database running on given host at given port on regular intervals." +msgstr "配置适用指定数据库备份 在设置服务器端口定期运行" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Use SFTP with caution! This writes files to external servers under the path you specify." +msgstr "请注意你的 SFTP服务器网络安全!数据库备份文件将备份到你的SFTP服务器,文件保存在设置的目录下面。" + +#. module: auto_backup +#: field:db.backup,sftpusername:0 +msgid "Username SFTP Server" +msgstr "SFTP服务器用户名" + +#. module: auto_backup +#: view:db.backup:auto_backup.view_backup_conf_form +msgid "Warning:" +msgstr "警告:" + +#. module: auto_backup +#: field:db.backup,sftpwrite:0 +msgid "Write to external server with sftp" +msgstr "备份到外部 sftp 服务器" diff --git a/auto_backup/models/__init__.py b/auto_backup/models/__init__.py new file mode 100644 index 0000000..c7355ba --- /dev/null +++ b/auto_backup/models/__init__.py @@ -0,0 +1,2 @@ + +from . import db_backup diff --git a/auto_backup/models/db_backup.py b/auto_backup/models/db_backup.py new file mode 100644 index 0000000..eb60d40 --- /dev/null +++ b/auto_backup/models/db_backup.py @@ -0,0 +1,329 @@ + +import os +import datetime +import time +import shutil +import json +import tempfile + +from odoo import models, fields, api, tools, _ +from odoo.exceptions import Warning, AccessDenied +import odoo + +import logging +_logger = logging.getLogger(__name__) + +try: + import paramiko +except ImportError: + raise ImportError( + 'This module needs paramiko to automatically write backups to the FTP through SFTP. ' + 'Please install paramiko on your system. (sudo pip3 install paramiko)') + + +class DbBackup(models.Model): + _name = 'db.backup' + _description = 'Backup configuration record' + + def _get_db_name(self): + dbName = self._cr.dbname + return dbName + + # Columns for local server configuration + host = fields.Char('Host', required=True, default='localhost') + port = fields.Char('Port', required=True, default=8069) + name = fields.Char('Database', required=True, help='Database you want to schedule backups for', + default=_get_db_name) + folder = fields.Char('Backup Directory', help='Absolute path for storing the backups', required='True', + default='/odoo/backups') + backup_type = fields.Selection([('zip', 'Zip'), ('dump', 'Dump')], 'Backup Type', required=True, default='zip') + autoremove = fields.Boolean('Auto. Remove Backups', + help='If you check this option you can choose to automaticly remove the backup ' + 'after xx days') + days_to_keep = fields.Integer('Remove after x days', + help="Choose after how many days the backup should be deleted. For example:\n" + "If you fill in 5 the backups will be removed after 5 days.", + required=True) + + # Columns for external server (SFTP) + sftp_write = fields.Boolean('Write to external server with sftp', + help="If you check this option you can specify the details needed to write to a remote " + "server with SFTP.") + sftp_path = fields.Char('Path external server', + help='The location to the folder where the dumps should be written to. For example ' + '/odoo/backups/.\nFiles will then be written to /odoo/backups/ on your remote server.') + sftp_host = fields.Char('IP Address SFTP Server', + help='The IP address from your remote server. For example 192.168.0.1') + sftp_port = fields.Integer('SFTP Port', help='The port on the FTP server that accepts SSH/SFTP calls.', default=22) + sftp_user = fields.Char('Username SFTP Server', + help='The username where the SFTP connection should be made with. This is the user on the ' + 'external server.') + sftp_password = fields.Char('Password User SFTP Server', + help='The password from the user where the SFTP connection should be made with. This ' + 'is the password from the user on the external server.') + days_to_keep_sftp = fields.Integer('Remove SFTP after x days', + help='Choose after how many days the backup should be deleted from the FTP ' + 'server. For example:\nIf you fill in 5 the backups will be removed after ' + '5 days from the FTP server.', + default=30) + send_mail_sftp_fail = fields.Boolean('Auto. E-mail on backup fail', + help='If you check this option you can choose to automaticly get e-mailed ' + 'when the backup to the external server failed.') + email_to_notify = fields.Char('E-mail to notify', + help='Fill in the e-mail where you want to be notified that the backup failed on ' + 'the FTP.') + + def test_sftp_connection(self, context=None): + self.ensure_one() + + # Check if there is a success or fail and write messages + message_title = "" + message_content = "" + error = "" + has_failed = False + + for rec in self: + ip_host = rec.sftp_host + port_host = rec.sftp_port + username_login = rec.sftp_user + password_login = rec.sftp_password + + # Connect with external server over SFTP, so we know sure that everything works. + try: + s = paramiko.SSHClient() + s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) + s.connect(ip_host, port_host, username_login, password_login, timeout=10) + sftp = s.open_sftp() + sftp.close() + message_title = _("Connection Test Succeeded!\nEverything seems properly set up for FTP back-ups!") + except Exception as e: + _logger.critical('There was a problem connecting to the remote ftp: %s', str(e)) + error += str(e) + has_failed = True + message_title = _("Connection Test Failed!") + if len(rec.sftp_host) < 8: + message_content += "\nYour IP address seems to be too short.\n" + message_content += _("Here is what we got instead:\n") + finally: + if s: + s.close() + + if has_failed: + raise Warning(message_title + '\n\n' + message_content + "%s" % str(error)) + else: + raise Warning(message_title + '\n\n' + message_content) + + @api.model + def schedule_backup(self): + conf_ids = self.search([]) + for rec in conf_ids: + + try: + if not os.path.isdir(rec.folder): + os.makedirs(rec.folder) + except: + raise + # Create name for dumpfile. + bkp_file = '%s_%s.%s' % (time.strftime('%Y_%m_%d_%H_%M_%S'), rec.name, rec.backup_type) + file_path = os.path.join(rec.folder, bkp_file) + fp = open(file_path, 'wb') + try: + # try to backup database and write it away + fp = open(file_path, 'wb') + self._take_dump(rec.name, fp, 'db.backup', rec.backup_type) + fp.close() + except Exception as error: + _logger.debug( + "Couldn't backup database %s. Bad database administrator password for server running at " + "http://%s:%s" % (rec.name, rec.host, rec.port)) + _logger.debug("Exact error from the exception: %s", str(error)) + continue + + # Check if user wants to write to SFTP or not. + if rec.sftp_write is True: + try: + # Store all values in variables + dir = rec.folder + path_to_write_to = rec.sftp_path + ip_host = rec.sftp_host + port_host = rec.sftp_port + username_login = rec.sftp_user + password_login = rec.sftp_password + _logger.debug('sftp remote path: %s', path_to_write_to) + + try: + s = paramiko.SSHClient() + s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) + s.connect(ip_host, port_host, username_login, password_login, timeout=20) + sftp = s.open_sftp() + except Exception as error: + _logger.critical('Error connecting to remote server! Error: %s', str(error)) + + try: + sftp.chdir(path_to_write_to) + except IOError: + # Create directory and subdirs if they do not exist. + current_directory = '' + for dirElement in path_to_write_to.split('/'): + current_directory += dirElement + '/' + try: + sftp.chdir(current_directory) + except: + _logger.info('(Part of the) path didn\'t exist. Creating it now at %s', + current_directory) + # Make directory and then navigate into it + sftp.mkdir(current_directory, 777) + sftp.chdir(current_directory) + pass + sftp.chdir(path_to_write_to) + # Loop over all files in the directory. + for f in os.listdir(dir): + if rec.name in f: + fullpath = os.path.join(dir, f) + if os.path.isfile(fullpath): + try: + sftp.stat(os.path.join(path_to_write_to, f)) + _logger.debug( + 'File %s already exists on the remote FTP Server ------ skipped', fullpath) + # This means the file does not exist (remote) yet! + except IOError: + try: + sftp.put(fullpath, os.path.join(path_to_write_to, f)) + _logger.info('Copying File % s------ success', fullpath) + except Exception as err: + _logger.critical( + 'We couldn\'t write the file to the remote server. Error: %s', str(err)) + + # Navigate in to the correct folder. + sftp.chdir(path_to_write_to) + + _logger.debug("Checking expired files") + # Loop over all files in the directory from the back-ups. + # We will check the creation date of every back-up. + for file in sftp.listdir(path_to_write_to): + if rec.name in file: + # Get the full path + fullpath = os.path.join(path_to_write_to, file) + # Get the timestamp from the file on the external server + timestamp = sftp.stat(fullpath).st_mtime + createtime = datetime.datetime.fromtimestamp(timestamp) + now = datetime.datetime.now() + delta = now - createtime + # If the file is older than the days_to_keep_sftp (the days to keep that the user filled in + # on the Odoo form it will be removed. + if delta.days >= rec.days_to_keep_sftp: + # Only delete files, no directories! + if ".dump" in file or '.zip' in file: + _logger.info("Delete too old file from SFTP servers: %s", file) + sftp.unlink(file) + # Close the SFTP session. + sftp.close() + s.close() + except Exception as e: + try: + sftp.close() + s.close() + except: + pass + _logger.error('Exception! We couldn\'t back up to the FTP server. Here is what we got back ' + 'instead: %s', str(e)) + # At this point the SFTP backup failed. We will now check if the user wants + # an e-mail notification about this. + if rec.send_mail_sftp_fail: + try: + ir_mail_server = self.env['ir.mail_server'].search([], order='sequence asc', limit=1) + message = "Dear,\n\nThe backup for the server " + rec.host + " (IP: " + rec.sftp_host + \ + ") failed. Please check the following details:\n\nIP address SFTP server: " + \ + rec.sftp_host + "\nUsername: " + rec.sftp_user + \ + "\n\nError details: " + tools.ustr(e) + \ + "\n\nWith kind regards" + catch_all_domain = self.env["ir.config_parameter"].sudo().get_param("mail.catchall.domain") + response_mail = "auto_backup@%s" % catch_all_domain if catch_all_domain else self.env.user.partner_id.email + msg = ir_mail_server.build_email(response_mail, [rec.email_to_notify], + "Backup from " + rec.host + "(" + rec.sftp_host + + ") failed", + message) + ir_mail_server.send_email(msg) + except Exception: + pass + + # Remove all old files (on local server) in case this is configured.. + if rec.autoremove: + directory = rec.folder + # Loop over all files in the directory. + for f in os.listdir(directory): + fullpath = os.path.join(directory, f) + # Only delete the ones wich are from the current database + # (Makes it possible to save different databases in the same folder) + if rec.name in fullpath: + timestamp = os.stat(fullpath).st_ctime + createtime = datetime.datetime.fromtimestamp(timestamp) + now = datetime.datetime.now() + delta = now - createtime + if delta.days >= rec.days_to_keep: + # Only delete files (which are .dump and .zip), no directories. + if os.path.isfile(fullpath) and (".dump" in f or '.zip' in f): + _logger.info("Delete local out-of-date file: %s", fullpath) + os.remove(fullpath) + + # This is more or less the same as the default Odoo function at + # https://github.com/odoo/odoo/blob/e649200ab44718b8faefc11c2f8a9d11f2db7753/odoo/service/db.py#L209 + # The main difference is that we do not do have a wrapper for the function check_db_management_enabled here and + # that we authenticate based on the cron its user id and by checking if we have 'db.backup' defined in the function + # call. Since this function is called from the cron and since we have these security checks on model and on user_id + # its pretty impossible to hack any way to take a backup. This allows us to disable the Odoo database manager + # which is a MUCH safer way + def _take_dump(self, db_name, stream, model, backup_format='zip'): + """Dump database `db` into file-like object `stream` if stream is None + return a file object with the dump """ + + cron_user_id = self.env.ref('auto_backup.backup_scheduler').user_id.id + if self._name != 'db.backup' or cron_user_id != self.env.user.id: + _logger.error('Unauthorized database operation. Backups should only be available from the cron job.') + raise AccessDenied() + + _logger.info('DUMP DB: %s format %s', db_name, backup_format) + + cmd = ['pg_dump', '--no-owner'] + cmd.append(db_name) + + if backup_format == 'zip': + with tempfile.TemporaryDirectory() as dump_dir: + filestore = odoo.tools.config.filestore(db_name) + if os.path.exists(filestore): + shutil.copytree(filestore, os.path.join(dump_dir, 'filestore')) + with open(os.path.join(dump_dir, 'manifest.json'), 'w') as fh: + db = odoo.sql_db.db_connect(db_name) + with db.cursor() as cr: + json.dump(self._dump_db_manifest(cr), fh, indent=4) + cmd.insert(-1, '--file=' + os.path.join(dump_dir, 'dump.sql')) + odoo.tools.exec_pg_command(*cmd) + if stream: + odoo.tools.osutil.zip_dir(dump_dir, stream, include_dir=False, fnct_sort=lambda file_name: file_name != 'dump.sql') + else: + t=tempfile.TemporaryFile() + odoo.tools.osutil.zip_dir(dump_dir, t, include_dir=False, fnct_sort=lambda file_name: file_name != 'dump.sql') + t.seek(0) + return t + else: + cmd.insert(-1, '--format=c') + stdin, stdout = odoo.tools.exec_pg_command_pipe(*cmd) + if stream: + shutil.copyfileobj(stdout, stream) + else: + return stdout + + def _dump_db_manifest(self, cr): + pg_version = "%d.%d" % divmod(cr._obj.connection.server_version / 100, 100) + cr.execute("SELECT name, latest_version FROM ir_module_module WHERE state = 'installed'") + modules = dict(cr.fetchall()) + manifest = { + 'odoo_dump': '1', + 'db_name': cr.dbname, + 'version': odoo.release.version, + 'version_info': odoo.release.version_info, + 'major_version': odoo.release.major_version, + 'pg_version': pg_version, + 'modules': modules, + } + return manifest diff --git a/auto_backup/security/ir.model.access.csv b/auto_backup/security/ir.model.access.csv new file mode 100644 index 0000000..4dff0d0 --- /dev/null +++ b/auto_backup/security/ir.model.access.csv @@ -0,0 +1,3 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +admin_access, db_backup admin access,model_db_backup,base.group_no_one,1,1,1,1 +admin_security_rule, Model db_backup admin access,model_db_backup,auto_backup.group_manager,1,1,1,1 diff --git a/auto_backup/security/user_groups.xml b/auto_backup/security/user_groups.xml new file mode 100644 index 0000000..4f887b9 --- /dev/null +++ b/auto_backup/security/user_groups.xml @@ -0,0 +1,15 @@ + + + + + Auto backup access + User access level for this module + 3 + + + + Manager + + + + diff --git a/auto_backup/static/description/emailnotification.png b/auto_backup/static/description/emailnotification.png new file mode 100644 index 0000000000000000000000000000000000000000..14fce118843f545ec183876283a47dfb02c2855f GIT binary patch literal 46361 zcmbrlXH=6-7dEPoB1%;d>7XLLNr%uxdY29%fb`x8y(o$(y(5HP3@r)02bA7Bp$F+D z^e*)aKJR(Yd(MyZ=de~5>%KFYnZ5VSo@-xw&$oAK@`QL)cz5pHAyib5(Y$l#pFel* z+--dL5B5!OE~g{*-(7c2`L}oA12h}hhx^u2s#16ElttrTn&M!eAGs(PxZk-$)O!25 z+v!|japz7YTv0|!+uL~S3Rhdly6GnRW?~nyG+mejEejn}2TidS@wSMg=Cv?7UQ z>Ohl3BF*kSA!{&`e}ltrWE=eTh)vcv5&KCV5J_mwzMNkZgKS%6zJ2m^(BGK7H|^@^ zz$atyV#+$R{{|8L{9*9(hi|=Jz@#7FmwNn}OBxvZ_m$C?N+PM-SM>z8wAd!W&pjwd z0NCgIQtP~V;M-pX4_PW;ZkycC?u|jc_}fu3r3^+Pf5fVPw!sVWWgS{k5l=1f_vami zpKQ{DgM%w8D?JE5fBroC{QTqWf?VWn*I!**e*>Y7jg89pTwPt$GMWGFx2@K~1*TtMR5HkEf|aIKTPJXkYH;`k?K6%S5M4s{RIe7u}GZEfJaUD{Vo_2_0b{W zDxf#*F2P5-rBt#A3W~ikAeXnXQ*`|l(R-`XOTRZj>oIQ@Ae0<0r!J@TwK#v*)d3Gf za_x`mXR_W)$i><_%Dsn4NlB}rYWj5`B337zAG*(zQL9j#DdTz_gLLwh6-#@cuFE4^ zd`c29HK()o!e%Hs*$h%^csg*}_;6P*HaIyPXn{9bK^F6ZsTPz z2d8>wwQ$+s`%YFw+ww=HsM`hNb89Gu5dad2JWx|q_OsU0BZk-eSvYdW5v72bFgDKi zwu#k>sfMmot*pfDj#1|xh(q$e6Ds=GlCCCl4{cPUT)@pPg8WbumZR$B)s8=@24Bd9 z7`@Z0nl|au(HxkB*+_u72jg!~C7qzDH(F>u({@Hv#Xn%#s)zQr_G&IOfm^;7#(~PR zim5mG+q%C(;s6Hj3!F97$t7@$u9^DHF#%0Y2>EVMOJ8$omF|@~YN#k@9sff8JMFBa z|LWo$*yzltu2JTKX`Ov|Q#)Y@>X$yas;1Hl3_d+k4BzY-&2_&3ka?wsjrz}}^&7R= zT>$<--XgbYBYmWxbEJ4|PsMMS_;vbo7@u8)0>%YB$0x>2s#aT7&e*=4rK12cRr22> zBq!zTWViMN-ft&EDb^j`;WB>d$l3LcxLU|fQM(xIf4P-LQhec@qJZyg`MJUPn{%8+ zeP#pIX1YFld~{}R7)0sOf|h)70MBwz_0a+_(x%6N+(LZU*KPWVMO<6BxwxBOi}P)! zmYFL#7MDP4po~Hss7}<&9C(!$93K10j#lkYRkc-zx3>vx7B~;=#pj$+9!@A3G_?KW zE#`g6h!~M?-imhh$#IWgeZzB)gd*4r?%B=>&n%QJEN0eIatY!EtxqRrxRq7)Ke8Tm z&0uznB^`VO#9l$mU~J5z0rOJHV-aByGR_U|4N>U_ifVoEqGUE_eS)ld4)GR^EO31) zJDYjB16M{><;flaG60%m@L)UZYivThJo?}$yfA*Y!P0V@l-d{iC>zOJ$kD!Yd0g-z zqF(B-qxz)#tU=OI0A_$@j%xU9sgpo1!;E7jLGunhk{u&=aL_jPdSWi)PycoaGDq$$ zX7&K^{=Hez8BuQsJ8$`$%SlzqkV5n|-9NBVeF_N8*47iyJBV9*3&Y!NFt8_;gf^0f zbhP(D7&5hO4>Q3fEQ?M&?yeK`;!j?F1rWwf792+>OJeTHS-Slw#P0n-gv3>f5 z0$v<{fG$Zi)N^)L00eyo!O1S){m@K zBGYJUDx6G(;@IjhCJzBtQ6In6;Ngnl=Seu5aF5A=TXbsdGdyGSIbgx5l@Sl4x1(&q zBV2hl-GtG{Rg$DS+zV7NS&WC?tGS2L?r!I`esAvmu8L|b<`x>+sZ5EDgBeC139UO$ zR_=e#HIf;=vX1v#aU2(+L_<&NnAqv&Detfy)D^C4&@=zMJw}80=#*ikj~_oKBTM}L z{d>+UCZ^TZe#pmr1B8l*PhS-sPkpEy7=YK? z5YMlFO>k?EZmbtQFOp8<0L@;GC}URzxqLd$aU?Q+=H(fYq82)1py}L3{bs$iP16?o zdq=_E*y;0HY&xA{|28b3KcwdJAKLU!Y<}m?SvJFf{Ea{-u4ig5#;12NN8sab(fl|R z6C-$B_0h?y+TES9_L2ILi$Nyk@Et3;G_WeX#92!r^KRD5AoU}K0m)UBzvt-wqz$c! z$^72lUPMI1$cSb^*q1L~R##V_F-As49v>f%kB^6hgcKGQnwpwQNJxOHL%Z(Tq&HRf zVVaWFXv#gB1NBgF?+=#WfzYy2;hp*eS>7)!k(=u{d8QI|HZJb_$xM4oHM?Ixs5KFmeVO!|^C~9RNKWZYtobCR%kcU-KcYg87 zwOGfC_AD+TQYb0t%Y?ylQ~bT*Y7@v2$jpn;R~y4k*U7YtJr_X+an9>p||`#y%lj;gTq*0k>KAC=_?1GomDm+j^%vRnwEecXK_)93mP|h% zbh`iez|If1>^HKTZ5Kp0snBkppvA);CLdoHrq8Q0bahEHUc*)ajdl+s+f{ug2H~)0 z;Zh{jN$Pp>n2y@;Rifz@fGzy+VDxh|8!6T?-dIK0!*X4KcklA>@W{%_Y8L)3BZ0j+ z;ujKHTU(Qtm%sSK>i=4Amf{c#nvQHS4$agXi9pb>*yZVcNd@Cu97$mkVFJ4sNkTz^ zUEq^rV`FpTTf6l2_4S*Zn@)4}E4#ZlF3SVLqyIux7K&yd^YiD=1q5{15>Ji_g3M$^ zu~_7t0w*VDcXu~S7`q3@f1vMDjB642^6F}IWQ2-}N{-3HI|d1d6S;LxOeC}W_C5a> zApdPeLPAnhTr9sgp2+4_M`J{Rkq^J~FG!{cjSz(`ZEw>)eX0!vPK)?*AIWR5ycQPr zR-vE$zXyVXFE1}gMn??|Wu2P?-o5+1JyWA0tk+NR=3n&P@nT8&);)!O{>(2Z7}Zmw z_jcLMM_T$G9({wM=)dUOjE1+VQtkcw_jY!6*4EJJ8XSp-ERWlNK%uxeIIfA2g8$ph z+uPf~V5(q#%rr~CE4Hgk0bV}*AAlbr-4To0KRJntj7(H`l^duP`paqi)vH$#!zR5i z|0{If?Tj_Gv^o{m_be8Yvf5lY5w6(YE=;^u3MpI(9G1exa#9X}pDw6>g|NXnZ ziOC?DxK(9URX!Bzt`o)fzazW3xtW_YU`HOFno3DY>DCb``ZpHA4&I!OitSyQnwt85 z_nDAz^th=tuG_-EzySMQ7?B;VqLh_I%;|C0(P|T%jw|98ve9v4H6vw9EXC#F;bCE6 z;es6+PynWiXGr5t2W*h&&P*u&6~tSNQXa?*0Ms`&reT*#jKV8hTU%_uJ?6#W<@AyB z&ETzIyF%?en}5TaXvrl7%;(V1d8FU%%CfPsQBYD^ETYk&GlVe|_J`NHdiO3+|M96x z2T^?b8}aO)@nMyWwY8kw1FWbYciP(8ZfEm9iinDiR)708ScQptRPtM5ax(d|XC42m z3#=iY^YWHgS64%=OD>B*T6(4Bc$7z4L|Gl{udk}U;?&pJpKYgkwFUPuuT0A*2g@TTb z4#OI!+nvEM3YepX<-cI&h%#xU`EKxH(vte z6Tg#FBr3Df;}1{z_v+>>lt(O_I#Dk+^SJ$RJxd>t?g3VO&6#T+(&G3pw_GQt$tz4MbThjV-(td zN?UpIaIn^pn@q5-qV5NPfp;PGxZ7R#Sx??G=s-$_8=e{mi@og{$rC_CBeHnGNiAt! zz#fCoocJuO6i^|3@?wGV^yX4|2Dv!mo%x2jH^3?h`ULTNxzK%0&FGt2Ur9-_r&~{L zF^s#n{h+izh5fFEfkutL19w`*Tg`BDX0^;}a1=WtRzQc0dA5GX!Fd3$Osr|*GRIy) zrP&ATzF&7FqxSdrzkU6RUE$`g_P8W$%*@QMUVSchsH9x*(icw;IM&!%g>s36v`-MO zgPr}r=BRPf88zcbuAi*Wl;lyM^!3v1bvotHER}0SUXt9jFpaoJ--u*>g?xvgcL>TA zP#cICugkrFf5x#!u}LpTxiL7Z(ao6#9w_-+s+-jCdX(;#a?#CI&ySpp5v?t!DHX6j z$0R(J%bfA~{WG6ETcqkL{|M}r#0YA(t9QQ$M6@M&CRJAPQWK(^xtlanV7O z^ozrS26ab(u_-P-kcAKkt87nyGd5gYI55t=mmEA&vDt8+Dwmi2>|jL;T5_KLQ4=${ zZRA|K57PISGU~iKz0)JgZXQg_mBH&3UB7EpX-|8YK0_q6o-kem2JJf? zJZ@NLK0N%midQM=zL%F9q~TYb=C@o_V>k_jtOof*R>o~C?_@V9gyWf~^?7XxQv;K{ z5XyT8-5GGMIuN`uspfRW*9c%5FwDoKJVJzT;Tg<7XLP#R`}T!bA3~;+B~Kgyj;P6K z+f83-A+3b$AM#>m?Q-vtd-8Jysjeq$ z_1n@9pB?m)L=YbLO=Om3wylfPMKp|#xK&(NJAuItdLtSXqGG%|9u+(;(Qs6IJWhG~fO zcQs72l^YSK0DXKrl37c_MgdHr+y5}&`Zu#3PAH~JR_4NQ=UJ^!kaKv4PaR43w?~^|bSBeQiPr?b9 zCp*i3b+zkR1@#}85>AfxEBR^~4V_m*O8KsjcGd`pyrET<>}qXcjZvWlM8f%1+HC4w z|43vLPPY(6ciT@BCVt!8j`4c=Jec#&D#Om?F(x{VTi9AxPAj?L^8zr*^e+fKoZS zcI)HdwlaIgD17Vnq$}g=hVqa2<^`!j*jTc54DcKaJcNY2w41s&H#Tf-Y-$58PA2Du zO~t;VHsYVY@)MobpEhb{x7U*>88V=O{B{lO{1y{|B3fb5PR=)Ju9TYZ6A z!t$uEqgJhR&gp+?*rgv9Ppmr&&YIce5yc~MFX-_CWq_SB&Pz=9-~wzhsA0#ao-01r zeTfknf(sL>_imwRTdwJ)9qkFEBqt~5NiXd~+7y+f*w`mDG-4USi>E%r$9+E=VhwM^`;)E%Z_ znx*{GgAl8SG{K6m1rr>+x432B28*R}&(6=kgoduIu3~`%(W!PvNuNr0`d)nVv$o=eDQbvZch6Ybtr&oPLLw2N+l2Tk;T*pzU-b*@d z3=6+}~{ocu3CHbVwGr zSlJp`{yV>``;z))cl1{m30s!~IUxAr=lr7s>}D?FO+QV^Z1Ux-zVFEwqn1+n{JO=M z{bK01%1SX(5vwvDr3ePtJ&i>S27{1!_3kkpEp2*criq>&F74>>@Lj1^fwzk4>gsxW zdVYR>%F4=EeC+AzX<_jy+2Bst@!{d8JO7;h42dEkE&-oU+qqRZ(TF((jrS}U#QQ1q z{XD2o?d{2Rh;|fm-}}~VG|Dj)U^H?bwi&nBgOb=G6mA^_(1N|p|4|`4F;eR;h#_#% zl*W3BS2)?%g4XJ(fQvP4G-h*$8w!=@!m{J=0v$0v)pdef1}4O(E`;pVgl9%MEsfq@#Q~j&xjt?S zLD|2?Ssb>fH4ehk{cp0cK)=1C1G`+_?tg9aYhfJ8%g;|tNWca-Z>QcId9cMQysE0I z!iMnJAV5k=3iRM^0nXGDoc@G_gwGadk7;Nkd|%|rjM!O-)nc8&xZ;j)CeL)G!C*@V zcY2VriDbE&qQ+6kRcAHC&?Nea7=>0G-R7pH^;&zgq@y>M+VNcK6|JUsBUC~fPK}N9 zG%q^}1EB~+9m`35c=vU>D0gU*&Z(r9wxOYq=vkk{X(CQVBFu52uKlfw$K@!J}T1yqaoL?j@ z$%VR(+fJ+Y@{GQoy@SofW+mj$#?+N0D74GneQIRD6EdK&o8y?ZY}&vnhr%vxGn zTpo=FyQsF{Xec}qAHzb1qBlk`7;I%_<*|Be4m|t-m*60uo4rc4 zXb=jmoshKZ`+jY}@v50@#;(zNK7a2ZSSpj}B^~>iT{?P)%fKD1++xW-di5X;$3cL1 zL=wy(UbWbC7wn}pgJ(`6)+gl1GacrQV|bD&ww5rYImdws5*NCS;^ZRbe}JE>#$4^p zHEh`z!r@%rZg5b$5WV>J_I3e)kx}-To%2OtV3=fKzmd%yGZsF+itKEus%I=2NlDLG zV4_|-SidUPMQ)gz1wMbZ-LII@aLj46XolNJRxT3P@pm)DrcI_Fe3J`MeoD{iLxR1CXP_yhlmpFcxNuo;=k%A6dZ z4_`Mn5|oPFEBN^ITi;meswqm7BTG#>-yPCE%dKfZRFw-$hC%`vL&iCK5T*A$1Z%X( z-G-Ii4sc9bcx!WdlyLpci{IE<;Y{I-pWeJ<2?ZW9VQI#6`7E%1K!EdHePVq4J=Z%@ zt%><7KY}8-| z_}j7i^yqlKB~FS?k_j7^J~UGh)BejcU`dden0G)RUSh7S|K4*|EQ5k2zd#_+yLUrb zH7?#+df1hO^?^fy2|vk%C>$Lfv7}3kJVWiT!=FHTw1FRV==4afc<=1x%I>?{o`b#L z(-ooiPfyj=)SMh0X~TM+1Rr6!wT+F9U%!66djUiz-{ZNTh@}`^FeupNrGG)%0&0A2 zE?^gpTwh;bK+pNSfwf-y9*#@Ts6Tl6Y^?B)z0_@nP%7d>C=~qs9hO3<3QEqyIdM>x zmX_AlP5Oar|J>uPwDb$8lCm-*$u|%ey@65JLtF6Ssw!uWQX=jcU?k`JI{WHOwFtVz z(J@b+@UIFIyuE?UJUnIf_2*L8O=O?({YoE%;lkLsxa1Cb6PH(47fC*X!C)-U^G>!k zV6gnL_SpEij;`(l4S^%)er(7)Ni7c-HL4W0^4Ur2{Fyw8og?;;%Mv4i-K)bo8xU5j zk6Kpz-#_=Y;5ESdXLonLwn%NZ_LWcT)K6kWZ5(xVbrlpIPDK8qNI`8R_U6f!l`Y&w zqn~Je3ppAw{mWGu(S1SfA0MkKDt>&qP%bWkO^R~Acwzdr#*^-B%Hp=kbGgjWY%q4` zV|_wHJzaB6H`vQ-ZDoaUU&!FU(fukAOF{{;vDtlXeoY^mby4Fqw+P53`!^lSLqzEg zBc-89OH4c#Mvs|d{VBRB0D_6o{ZA5A*rKmW4NCxFO@I1RQu&%<7>$mS`u+dxz#VH& zESIWr88RmQfQ^vhb;2oL-2X-5e78@ptrZ?Nnf2c)Kp=?m@u`pghyJPlJ3A4PKV{DV zS%rnHSOJIrhoq_oGQWQPnt|by^3~+X^mLdp!FjLyf2VE;Bc-BBg+O}q108Jb?Ry6Y zPqCzgZ~oo?Z9z$Cpsn48ZLzVn#lgu+EZ=jjeVpn$yV0Xo%guH1q37o2hK3$fP;?zD-TSX*v6B-KsVggsy={RdQKzQ?KY&oN)iB5k z{H}hz(Kpt$9C-zG6BFsA%*gb_^hguk*4A_UO>tgZ=|*HfE2+m~TOE57P5`YN*XE0t z@rvO~+tF#|^{esvfTSR>uJ*8Wv7UmFj?>rPYv~IkO}FA#J&)m(QB9A&@#ezAN6|Kyjb(ZDf?o#r}b)PZV|>)|%umbmw_hk~o?r*enL0^7ViHlcRQiR`N$ z%_y`9RgZwMP4O2?bgn)1B>@pyA^5pW1PrC9tQ@aUx%)l(E*7|AodkBPW3{;V9LU^h zp4?p|a+u^Gx%m72+V9^kZWl=~Lp?fIyl%(snCLU|i@AV+L=D|9a>bDZu$v#@k|b)?{RXMnHrDFg@2>SWUi_DRj`Zzt^t4+J{zY{yR#)UfOp3=oz{ zAgvMKzHNw5_l8@|JlmiZTXPphRFfLTC?1kHsvC*94-E2vm^iyBPDP|Q5Z0tusg@-4)MLs6#8kW}okd;Q$~1GjEkdnt4N@Ri zm$p_iGP4qUpRqlJ^gfR;cKP!1@rjC#Z_7ke)6&vrXJ=2FFrQ&vcWFo>u20(RQEy8m zX1lyN--zmTL~4DWhCT zd?yCYjw1v_x6^Za83X#aIrr&sxp3Oa*qyQzdLSfR6dad-YLEj?-vrD;rx_DSGRfYaBD{wRR@Q7HvFdOX|6XI509s3=d0Q}rrMT-f4r_d5g9xy6QAfZY>zqS z1Na3sX$( zw@j<4=&oh1EU%~T?0jP>?QUpo$ajt4Xei6pn4TK#4RZc9%4u)k)j;N0WwAP@2q_8v zhxch@!tqI0USxkH=bN1MfADM_XlJX*WMfm{ zyq(Z(SuUs;&UgEfTA)Gm z&)-=A+PdoUUP2Ky4fi~MyeU?8Vsj#>0aeV72n_AFQ09)GT7GU6ZrK?bAUpK>V=Z)= z?2#EP3}u)JG7_EO_)%X~A)j)VbIr|1ZbV=oBj{>-t}%hbwJ8x9cmAf=hc8f|yt(9D z2k}F$hwtUq2{pIS?1EP7k%4`6X68m}rnPfj0!sUCx*lcn@7kb~5>9eWs-BrP-TdxG zff+exXLUV!Wpk|xnduk1lyRzITXlv^jvLX9dh^4XG%0pQu15A6Af7eZ|(C9%Jh;gVf=Vcc>;|KSe@oQI>*)6(afHH{*JXSsfF7I zj704`4kvJ}w6N~*Du*b|O?_FO@+-5)PY#wZyi+<;vW#+22S=y-4HSKUz|(E?OlsGz zn-K=ewIW3kNEgpeL2>is@9-uyim=99)t9z#q#t)Hs=$QBL)+3~29bJoNZg3paB^ll zoGrK9NOepK9474gAslzqj0P2>Heydbl&Gj*IVLU`->Zyz+rMRETiTAy%U0F#4{M85 zI46)XBCjpDZ~8kxF2U*%l062ic={cuHvt2sFW zX;(B%*$>)3?=K=+0pyq*OZBpoS5A?e!Isg~ky@0G{9G?_RB&qjEy!AK9bu>1c=hqR zOZKojZL;cmLI8^@%+4aRQI7}+I5;?#<0Mw!V6Yi@yPK&$EOzNh9D1FfAbJ>DamdIk z4GAp+GJ3iln+*zbFLo|2uCDVVwX1ym8t0m5ZcT|ZgX93d^)0zpfo7@<;(Y=syxpI# z=^LmmM@}w)P!JQ6+&ReZqJ`{S^i-sMMZ3lW%_Y2Q2xL0`7;N$KgMxm340_Org<_+ziC?}LdWv++X%igj z41RbxUr^6wYyYGFQS=9D^uzEYLa<1s?{tn%1I^sHKhJQGh}W;i{!k)OUw1MX2x)dv z=YEfk_qCv4*e2*}{fXL4JQ0mOe!Jnl{tur4v_7?r+2mv9}$Gt z(eu5YtZ<)!_hYId6q)<#TuyP_I=jSdl#@7IrSytAayhN%iKEqN2dcexI)^`rJAcYm zw;5*g86)*?^6X7bsC%_DlQvyl_A5moX@?a>!xJZ|TaWcxH}E6GrFUnk!+hrBtA7wr z2(}5#Ffsf1G9P~mV)Iq z2_QUU04(TWWMl-5bkf+QkBw<>OSb#Ihq>QOExY4RP*ZKAeOUit7W0&I;^O4&9q3SD z*@>)4WU7bk7}wjN>^i@9RO@=y*`Xsiq5qUK5^jer!(cjfb*gSYB2cgj@?iJA@pQ9C zcE+$8VIa1|Vg= z5jMP0d9N1eZsI5F`$a%0gFoPy67$uhu3h zTUsTh^4RI8&S<2vuA`(!MU|{8;s?C0t`4qt>_f}1@rQOraDjmB$)k{yupb2WAo%q5 zW`_O@Y63kRM`l%SHeS+QtU~j^YTE%;N4s0E9yHBOar!=@fk_4k)gE3oS>>E@X`4b1 z?3aIPrHtnk6@rZk5r0E$+9cMDuQJLA>!%B%!IK@U!L1@%TBDyjOAud{Q3U~llm)|p zuxqRNqeD-Z+V_?|-V+(4g4y3zdK8D-e#)U_4OkH+PTD7|%`L$q)<68{O|A~N#;Yke z62lTl^&gXaudh*J9FU{zI?B2NyRnmBCYe&iTQy(76qA^I*@aR;o`VHX3?01WO)S69 zHR*)^z{Z_lP5Hh6nX&omM$k&}QD;0H4##Fcva+7Toj1MT!wwIRM0$m`rY%c^Nu1H1 zLzkb8w95}p@Mn@5@*+zBtmfSz?Uv86ILXr{u)6`=_BfrwOAmJnoQR5to7~ryqur!Z zn~}PjiI7Y<#igOpCmOGQeX;oQ;$NBl0urkvh(_~Zv_P97HRVl?hsJ@RL3U2gc*k1F zF0s6cPGc|Gl7W`BW2uq@M?pVwWFxj%X$%p zXLxZ@Nw4PbQ6DGmPI*lWuyFCR_4N<9OgWEQ6Ez|j>|xzXdt#R5>zyLKL{qYJI<@+$ zUn|w3LO*pEDQf-c47}LX6ocs5i+W8A=`eJ`P?~6@JU+YidjFFe* zWpBr9Xpd^1ul9(v_fnqFh`7w|1KVI{4FUqvO$ffHu-w;gM}7E`(~lK6waT0XR{JS3 z90@ABLk!i^JqfieR-Nv0>05bpuszplH^ZeOu~Mc~dffJoLK;R&N~)!!)6N*s_Yu`S zFhKO^(ZczUD2)JP=yUYS_x-e$it1V@e`OW87m&x<-km++c~iMJQRj{=iW4{A9P7RU z%5PY$VnZmEO>^}ZN23U^?m)^3re#Iz$93sZqqUt6!|Chxn5uy*WyVOH$j3)!AxEA;Gww}>fNGOzR-9Hvr+KD1&c zC|NQmG^{kl9vG&rd$w2%FK4cD3%PW6Yxumkyz>$kzvlC2FEu3?YrG!w#qG$zOP>?G zuCHSssG)>;n*A>A4#|iK3bW)e4{g}&YJD8K(=wmYo*dQB6)f1lc4eT> z88mP*M0)hv4weVPMiX3TFzaEN)`*J1fdb8=8rY)ebpCjSHBDJ`b8(SR`|8#6>S5>j z9{HdI_2r{nZzYcBQn230H2dI1V^C*H$Nv z*BM>itxuZ+8Bx-k+2;t^x3`$6BIY=eh9;R$T+nu-So1WBjQ-#TH64Z0|0oeS9PC@j z@R!jX0Z3!(TgN%QK&rZ22EzSA%bIVnWGvWL>igp9J98*_85=9vy2W%3?7r~&G4Q== zC85Fjqg@bBv*i0&fr_Nv=eOL;QI+|Me;^qh^*uc#yW56IySmpz_+>0b zOz6OQbh~7~LG`1z(8}zJV#D&60$weZR_apH>io&39E zDfx6w4(g4v&ySFkjr47T=Z>0x;<;9cVdol`=LkSF_PmaGXs>_QO83JG# zzgs$ZevGFG7%I{{E;%Sz-fsi%J8%{GaoTHk6##F~cRYYMCC&bHf7XlZAIf+xp`h4| zGN=xW+-J?CW-9(MXyA6EXgro%1jZvfjbF7J1u$F@*=M~RKBGnTrARtTkj14>NE89( zXT0>4^_(gm!R;|D?+(Y~g0FW6P&7x4v8d-8@!-m3-0k!VHy$v9x2S$A{NF-2Z^Ex0@_A!G6L6w@EoSatt=J0x1 zUPD7eWhK9uSQ-Wbkki48t>7AF8Z^6gDE0o-R5bsx$koMhZ8~0`_a0+Z3_Z1{-4U4& zQ9hk{fQ~H+5}ay5l(I<-fr3`>0>rh5>Dw7Z@zg18ZEF+7(~A8Ss$paEa~`cNw)d(A z$_*sBMO|3oIXOD$2?N8}EuU_eg+cqiMD@q)(`*(6K>5~+?p6CAocxVc-?e7?0z(CW zK>5RpZaHeN?FwZQG2W7z?UKO{*72hwQ;+;2E%gbGU2Cw1a^-O}S*5R*lar5qaf|RWjEu|`g`0F`bZVPi zMfR$`!B?2T-=so8j)n82G4}36NK-X%c?yYVHV4Qp%uz8d!{}|oDplALyOudlve1=S zj8p-%8(x^vkRqak?|j2?qsN^H>^>MdOymt*Y zGEuQ-sxF?~mL^&g(7u`2Fd3c6;FMM~S!ecfy=fq>P-_)7<9kx1r;xXpypZJgY;e9{ z{>BOP1e>J=L24X8)#qOgSuXnjjECb+Am*)~bX|817ueCZ!|>a8{nRN+cqQ^KaS#V0 z??}y;#G!}_OV?Aq9&@-bjefc5C-jH;v6KsnNt^}1&COYaZ0Ox~BU zTn~+&FcdYFTPq#8MZnG(8s<0X8dS~7{0cB8f7W_N%RD#SMQ30y-5AncFK{lZZWxNT z;+y=wX;a}f^Tko{mukSN^Jd}05Kr4*grd;WHzBSv=f>`m)#L96StstVgvVVtzqqVD z`2B*qT^)MSJ;3c8bJW~zb?tSp)1UG!!%;%yVl_a3uCbyd>) zuiX~GP=*f75hwhMtlZ0!+5Jz3r#nm6z@!65&H1?+Yn(+c{%S?1x{PB&jY%aC=&N;? zPpioU#g2QJ)^&kPL1alU(Lvd3&>;qX_(DiJq1a*YMC%x`p&zXD>ODG^lVaYP)=t=;ylea3md>0Qv;3rMl6D>f<;nv32w7Il7h zwVL*q2TI3Q!&X;ckM@|WsjCx5O~=N@V%_Zib6_ZP(fQ6j6E3}P((E@*b@$*<4)r=Z ziaoXFAB)Q_6+XS>u8QaLjQWM%eYUk5nO!WcVSAEiAm zsU6W0Tg)~$gd1g2tl}YwpgNnlN9Uqy<-CE36GZDaDZe}770-hA3vkZ%{@HC-ek}|I zzDT*qjC>8CrpfW2Nll8=F<$C;LA6GBCA&{Rv3BkC=tM7%0BGMh%PThP<`aa>39B3v z{e2v5$FAAIqS=6N=yMYi+U0Awe=dLjpknATy*GN&=2Mx0w!FLb4dza}`S?8BPNdhp z`3HsGy`@uBfmA!KfXP>m1T}^g{;+lMSHdvsu80RJQ&&@ZR^-T?@+tuHB)C_M%k4M- zA`_Y@CtRwt$hFu1`^>VthZF8~PM<~R%YZ9r{*w(8Oa4XPcvfJ00y!|nX_wiDazOWt z$T?B>Y()_Im%OhhyE1BO7nt2CDC@S{_mg=POp$;E4p_o~_k=u(J}3*kiNWONop|BgGlA$zzYx(YD_=FMil z{mr&{gMSYh5Z3wrPcSuOSR76eL+~h|qS{!!u%yIlx2QQ&kMJ@xz{WPdjE!u!TkksZ z;V`}89jfWRm%BHS4|f(~ujd>2l>w9U(&L)E;ZGYgGNt(kBLAcM<|o4@Pw?%WVmv&R zsLnBDI(hl%yFn;vN7)_<*-b%H_T8Ho_!irmmj=YQnrC1qsHv;9UqSeND)+g|Mpt~T z>nbh2hwx`X^Uh9pska8`COIffd)0SymPi0KG`t5_COX%L8!W5{)tHzc zIV+ejMH%VO0UVN?dsFrlkPqt*`{%)R07dZg2bNf$DJvV|bjibky%#q*>5V~g-bQ4P zVSL6KhYq|v=yzASkhX^`(Pd?5N1NKEMtfJSnE=+e*o&pFYf;_3y`N?^!jpDA{Qdp0 z74&}N^w;!~Szv4lQciAe-A*C4+Ij!0jT4J{xQiP&jD@LSO#19-Uz@J`VSU-`)uZZo{mq@Qg5z0Ufzlj`3b$-Ui-NZ!nzWJMG z=818Ifi(@|$SwOQk0f6$@&0`)MPOkAghI8rU|fA%1qI1UE1*f~_q9Oi-(qBFQB!`M z*3@eCbW1~(>d1g8woDkAU(L}_D#y0FrGcb*klrtFtka$d3z$QK6f&_j!et!LtRI1s zFwKvUguXrxIW=81OKH8DMg*+xM|IJeG5dqh%ICkc@=$*5jEQ8&{YIe2x2bxuX9S9v zqiQ{&HE(?fN#8$KPENh+B169@;HcOdp*7#FMqfV8!W{YGRWWD2@ZW900M>9iwsFgi zk0*wG{s)Hk*(q(wtyzL|+&zaS=Bc1*1hFqfY17$=xB6ieooDd_?7gya5YXphIwhdN zlZr>>gziYm!Pa@3y`O;SuqwQ-{ew#(J&nh6_Q``rh`Wp%1G&s!+u=x$0LtrwM?U06 zB@aM+Eoa&MpVNzTd?^N>*XJGZcUEL*1a4H>xVx5y6ndf4H&0B9Dl|p`;$(`pLWrHC zE=Q*|ZFzeitD=gsZP;{9M+WXlL{*B&T{XXxx-ZFk$wEATi{ZqP$bdN`+H_jtzwF?OcshU-ss;pYP~#{?=G!ULzEx{PR{e$>CiPKe404}nI6grL`;@l zB^%ezkpnR*4{@%t$2;{ftyF5;wI}3@*m8iE>u(KAb7~G3kTWRCEeR`ERu;aBa{X+u zApQQM{R(8sG{bltj>j`{CS1dmGpibpN>(^^v74C~aYnPji^61OHa-Svni$oO(hu1- zhi2J^PvzozmWLpEaN$lJR9C$YzpARKnReUl{f8ZR#t8rX2Sa0_w{PLZ(3fqiGSfzy zM<~WFA(&MbYQgN&Qdr`gj_T~(1hnw)ogD8;0x3*ak#fZnmk9xDQd0Y@3qIkueogOM zbd!XwrImw2OifMA#WBXyT5Vp1)ggvuC-@9B{ocX#PknJRqUKQc!d=&oyNz7IvbB*p z=lvv5KKrL#MdKEt0RTF9dE+3Coms34&-yRG5w{iX}I{K#e*33^WT&?U_yz*Zek|mIwVwKEkE(rSyUdKxHr=zux?{C z-MtE4kI#&6RA)t533v3D8{D?L>p(I1w)B5n*tq6!vGNFa8ie~Eu`2iVp_CT z*eIMW&a>Mu1@$P3qZUHCy1L=Hq^ql%D5GpvbxeZwN^PxHF4$6^_|zwUtvxl`Bg00d z=DTaVe&Sj_@&8oL6|?p$t4AwGAU)-7(t_Mv>u7+T7mFRV7jt}W_S5H7?ry>9Cr(xP zh(tl6n}LD7s;GYyqr9>pb=?NcD67hHVbmOEc7adA_FJLG#K3nEzt0`xEmNJf6poT+ zv{V@rlM}k*ae?D)zh}X4{G8oV{$mBl?h-N@M;(!=3|yF#?o(8+Xt;U&r*sv6Wy7a1 zO`EW!&6cC1u_F)q&{jb`1oNt=t!-ktu$;NuXGAknnYXAV%Tqv4`>7QaYHejjuFFoB z^~^S%)QUMhoy7he%UdV~Y)2c;5Nc{z2bhAshFsf5PY%_7zrzgaU8DV{rvXq;2JGBV z`()@cM2L&{T;#bT{+#pMII0)$*MSm8OI4|P$;Rn@jjs!Ms|7aF(yFg%Sc~Ml`{$qu zE#cF^&%FL+`;jz5E9}byYSdO$bXRY30Upl6%HD0Uj=fr>hq$HhS&5;V38ba2<d^xv;klBRQ>pDz2ZQ{;d|zTsuRC&Us}UqUs+`(W zq};ki7;Q`qVj+lrf~^N`U=>QEQB8kabdezR?)QZeP4v{ooMVyWJF&KzY1Hr(Y;KC! z2vd+0!T*o%j40LanPD1{65b)+*CY3DoXPC>l}v0cO4kIGCng(I!Gx-h(5t#!(i4F7 ztmqjs_tS#&rh$y64ETwst(0fUME(WL_YI8ny|v3ML)D@aEJurz#I~WaSTFYUVdcQb z(duVUj$yOAyH&54{uc8@;6E4z2=KfJ%z)Ac*Ll_ELFGZsiyIcZel@VA>hOH`uH&`? zu6Cj4aHa>LT*O>YzjQvtl5)7ZPc^d;h!eGf@QRQ`ux5pJM^Nk!tRNbg0!{;&=tkuA z&T;%e6jaTa$RoNWhBXts$xd)`aw4&v%#PVv*YR&R_xwN9y=7PxYSb-Cv*=!Q3xaeA zNH<6*C?Ft>G!hC(cQ=ZFNMj&^EJ{(jkw$41K_sM0q&aixcfWIg+~+*^Ip4YWp8IF- zXaCr`*1O(!#+YM_>9Y(p&~om}Jj44ZBJcKg-U==-BduSv=&gzyet-X~DdeS{v6DW~ zX>j>B>AUZ{ZAccMd>ee<2@>f$;}5g`3baH7=~P#NDtd5q`~eY|enEj_=KBo)v$9(L zj?S~4&V<34CYHQBS~7QWPZsnKqW?*nnZ%ER!p$h=dc8$`aQhb-39bsQLytGy4niOS z+n2u+cqDr6TJ?hEm4Jzk`>m(qpAV}JMZ{ue3);>!GHHgs)|nbh`5*iG9e*)dyJ9a# zT>kl@3r`c{=8~(+>e_-gbJ52yQ)6S>Uk``-r%7L(U;+ok^il4Ho#)BkW4<>$G8}(h zEndG=aM$rv^9Hp?)9wBD5X8Y z{li7XK>zGOY5#CH0~2#%z2e)A4riCgv2PaRdyOwXP3X-UYK<9&-i)YMu9Zv}nUI{r|qQSh<;uRT@%AN*AR zlP)j+`+XvM=5o$Q9|8OXi@W#IO!mwDL* zKfwU!TZ7+j`R#YlZt!NtqRE(uABAGsrW&9H>+5@6RaI41#xEkW9m5)YaCW@O%*0fu ziYAFFk(1?)j7o!;Fey2?%g){1Js_aIx%s?EEn#sm_i1M4#mqj6jkPt|+I*0&!0?p! zKA)qjYlH7L2d$)cX?gkGt5*ryo@Qt3@r$xtxrZ~CKr7_t=xAl~@6+Ph>C}*_aHJ^? z2cG_(n5eLf*#mj*_~*|NdrE9slJ0rHv7{2mPwN@l(xUP((MbbgvkbfhOoySoTv@-JCt?o0eSL*i83MPFR8;Ln1x`lg zrrzt*mwo(ZTQD6Q90Hfu)`-c-&i6iF2Tktw6Q|riGXa}zQAGS)f4_dmF#YZF`Po^F zI9oS279?_iA=A=rs_J=FzILXdfcXcnp*%VM=Q`XjuCA(50pm-XA?L?kNsK^oeKI~( z|G?eeo?H7W`W$gYyt<55bFSQ9tlw;!uN|biF54RX95*j;=i|E>|AYx?kQ?&ddUHpA zNd9;&o|f)S)#TcWq3D7*X)`tJ!3~ zfysT-z`*P5yz>Pfs+9~ zOtiGm=r44|;|XW&?Rg1$2{(WiC*5O0MTPqj7dN*>z0cicn(f4IZGIl=5)7tv+egf5 z`J!dz7RH+;DP37RY!X+zx*SzlaLaGrx)mevrMo*u_i5^vckTgxey6`HLK=OyZS3s0 zGObl}q`g@!Il)w3{UQ$f#(cf>C(y580rL}F^5_(YH_Iq_g(seSFOCU|t zBkmMl2FFy3>rK=tgcUl9>8BhWtz%bd@3WgeEMB-7T|Y*&%KUpI^kvIRbZYp_Lby8Fx&$v)04@`< zi%IuKxOjv)kCYVMQ%a*Ly7zDOhovX~Mh998U+cC=g6p!|9U*5+A@aXRZ$i$H6$F{b zP_B&RrS;&on!&Nxw7Oj(s#)3 zRf_td_BLi36F7e*2sOnn68w?bLxkh4GDit>U(Z{coelNK845m_!#5I&Y4A*m0*T2?)zb3D4N6PVqbSe&US0;TyGDIjt-cmuzqpor^z+g6qEv;` zU)R3}?vku1ixm{Tb)5?TMK`LZ)JV_3AZS|SsAq_yqpPcrt4_(OAR6-GTgB+a#Q9F2 zP!?j3TFwSLV7`mwt=z+LeKqf^$r;z_H;fcsnBvD{maZ<36e}A_ni6ZTwivcrTldd3 z)UgdHk_BzG;y;yizow(Z)NBfVc~m57)fhfWDGFzkLqiqMp5bIlJ)iq2^7m&UOSk&U&oQUPew|BqjC3rNesA*^LKM}FTBeVuB3z-|s&O+m#nRaB?N)#$fEy^Gl=BlXZs=;n8{eM?25i6_M9|!`E5v&%R8=K@c@tcGyX4 zS|X7!YP4T zW;+Tu{v=(R2=n59r@X_QK)U#6*0TSVsE;YW3;iW5J|c&_?bqIsYhT`N_6arXXlg1Z zm>|Bpxq3{xVfb*&wIcE<+KMuSER(AXrk}d^%e&sayEK^FN4fd+J=HO_%r6^Kwo+p$ zse3;)jf{|eh@9Nq_pz^T>SK9jd5C+)DfU~MnK9|$#8v7qE-Z-L2IXR9b#*&SJdc@w zKtQp_GgW`10u((l{Ch1=D!KW1qkgirQrpH|nVK|rc^;16cm^Av6vdChHGd~GT{DG8 zJR)Ivwf!oCiQcs3*$ypJnn;g_TJdGnazRuSt~Ore?;<~b@-HRt-(LyQ3stk}*3crx zWlhkXZ)W+T<5$ zqc_|Q4QVpu+#fB!aNJirwPPb%QO}3sESb_w)Wk-kfUEOtz$}~GBY!a z71#Qf(;S;4ektP%Yw+Q$xv0LO0rPn7**5##fnRkCA2(_tBt$RggWoO$Y4^#NOJRJ%-6O%aqTIkElz*>5-)U4B3~#F2fdt^-bi@iws6fLqkBUbZ#QYwBn_WY;K5wXq}1dKbmg!% zDU#FTk*&&q*6G`-v}50keXOXS!z;3(8Rt!U|BBzv1?{+MUjJl|P!;wUkq<7=k>&(j z4e-X|{esXT^R7Oce+e^$Xztf}NJR}K(T8F)l`6f>_?5yUr zgv{zfRm6Nad}*63#0f~+QT(^x5{H#dxw*Mbs!;U#eA;Y2XUS%+#3&}22v1Yx&%mda zBORdI2eTV%nkZ(yN#(hW0slx-9Y2+hu8KX&dp$^zDM}Wvm*~qt3iVeOz7T_Jh-8 zUCHTPxPp&JE@Nv`@>V(n!z-p7`Sh|sCe2Po$Z21HKQUgv)=k`Yj!)9cs6VZ5P#&W* z6V{F^@=O@o7}haYyOq@=Ml^ZQsj07{H5 z?2HS&8ZwpIoaBMK1Cn&c7Q?Y`UFgX6aTZAp|6XH3UF{n+3q{qFIFpi3dph5)^4@$g zYuRBl)U6lGatHZXcCXyx(OrJi8UzhHQ8ZCTG=+-3uy=naK5JlT9!G$ZQtKP@`m?>4 z3Y80q%BTV8(W)gRBoZL64$5pI>W7Bi9+@U$E^#oiG@b6> zP9*+7M$)0B-X2}WUM*;qspk^8%-ywAJtVJ!PgBmsK&Gms+gb#j(=>@aX~ zbUxL(Ow8H~UtP0qpPV!%=1S-E;j`N~F1V$6#p%-ppZzw|&fdWD(?69(s0HhYMH&|^ zEkboxiTEciMV+BG+y{)rk zey}4fR%)K*_M7AH?J7}@V?7kLhWOwJz*2_DAEf0e?8~+GXdk7$uzAyDZ ziO{!c?^&ZHu!^ngP_$MG-tMFwCe)16E|W`CD5K(yF-%7UW1?ctM=W*dWh4tYd8lGs zSy@?q?es%D>#Q01%EFm(g-whv<_90~A}`1%WMu58jT#6MzW4e?nU0ymqaZ{)vX*eL z{_cALu8BAC8nbB)X&J?9=B6i3+yZ~R={Ow7zC_Tsm(CdotD-_&hbLW7PvRwrbdYB9 zZ!Z!PsmBp9BeLOM3!B$*Aeeh_*R<9SqQnG|=BlbVK9b9fzGcuSTN76bTf6qlxhNa1 zS|L%*#Zy*LgYnS6&Puo$Q*u1HSLtr^r$e)Y4-S_NpNnhsnAV)}aqeY)7xqvjWyaB>AcFty=AImSw6#q71a!(en z6pdLtGC8AM@h0u8r3OlDtHe#|P zN#18KMPJ>SI#28<_vsn}n#y&CW7)FI!(dSAW{Ff)bMdM|9C+)m`!>wlx{9n;k(c9Lh zT!y*Fz{ol%cU|r`b%tbLa++-5fpCWO7oRAfkG+^u{K{v=hQ=$CUZ}7iJPK7sz6Zu@ zQj>iazH_+gEk(jwYvR~xIQks%3rY_P9#ACLChcu)^f$gTH|3W(qe*_2;V)uy>y4S; z!sA=1czu+}Hr6=RY9XvB+naUXtH=lC*H*1!50<=zpQ0ShoIgx(DF0l;BqqKYDz=Bi zwdD|U(9VhqAXLLW*7_MogsCXWF8rWV1)gkWC}V;6PC};Bl)bs%VxN70=F))lMbI zw0=A6g`nb8ij~8xzPXgFtGI7r3fZI;ySTo*kNH|-7Q#p>RH-WFo$;E-|8do9_!OU3 z##y^onipF*GQVMd{8%%3WRW?HT>oSH^vaZ@m4RAyieK1N$e(Wy7$sa4*R%ANDepwy zwT<^=K-Yv4MDH;wvGSi+R1C3vA>Xh!m5zNLug-yFz*P);` zTRKiZ9-WwEK8AQ79zDc4EPasp>Vw}d_x+FO+pOndBX=0-%P?&(o?zmpI8LKteuyl|I>U9o=YC%cO0169mk;NJ?WsjUf{!jVUFF(*i>T_eYXr~G5RSMI|VWO z63&!!Y>w2p66oT`>04WhNHkrot+$~IYCE@n8G5>{-XC0pmF4m?#GkW9+laJ<4KgP~ z0M$OjS-LD-sL0#LwYQ#KT}A0WdEUy6TbZz)Cr6z)bgRNbjen5cL)%!l zpX;@n;c5Y)L8)t95soqMIn_nMPDQ*iY2#@rIol^hwWNVhSFq`o4JO!jY%oSR`$z5% z$^B6{-&HstIXq z2M^y#M?@{@K1sh6ca#&eYhRg1X#8Z#&VODSLqeCYfk@DU8@2ANwF+2F7bnEQS zxrOe(UB!hB~}12k`>V{hU~x?5Rc)+(dYZT7@qy7g?%e3EN+S6x-r%7NlBzfG*E0}eKkiiZDa z!iWmC)m@K^{jpFy4cHllo5u-UEHtlD#u)67qUSfO6PA->zD?H8ocm*<9Top$&bHFd z)`E?9^3-E^YAVjhrq*hm>*B=(8_dBCscoy5# z3|wJKY^JL05|9EmeMoE7B4j&{2*HE3pxJsU3jN| ziM`_abFTFG((WHXLRS_(lNzy^viUyYwR?3mNC&t^jHIUxlxiW^SXkWGa(sXGP*C@H zVG~ElkrWV&FsN2S)C^l{u~-9~cx^55H1a#)=#iL!3nm|KoFxR`rnDkYWa~6BU)xpY zD8=WkPTSZVW>ThavDVG${_|$B5!H9#Bime(F7p(RWy{L*elr(e$`0z`>?hSR0B)inYZZ$m21`RU{^3 z2oZ+fx5Q61UU>^6>8hGf7KG^7h?%r22z0){WCT%dHNzky8hrqTTla_F$&`+_slw#wF~%HYWf%;i1=`koa^jd1RJ3G8MYU!%LdM>|8UjmwAmnzXq4 z=(d4D@uLOujeC zC9k;8p0xbLQJju5A}t2Hi>Z)Fhn~?GDA{4=tr?Ld?Q3Z8UKIBYGcq~oQApKe_7(XT z1OZq-dGBC~Dd#-&3{~1Sj?l*qz%evPMt~iu{&FV-te8gJRoX}43uS7nv#M|G1Y#ND zv_S}RW8{88)&qk`?HAs|MEoRnnAqe3OuDzj_61Sm?bGzWsQ^leCfF4hmU>UVllc7d zdUtfc`-JR&UMw|2)Hl~p&#q=s8+vm7P{$NIelts2@kyhUrA*?-#ZNwCbmAoev zX^S&iJ*F9Y87nOOVKcm)8WWR4z1nL4l8nn-WA>OLHY`jrGj*lRoKC{*qe`IO#idWu zeqp46V#h9|P}brQ>Ow9)^9lLfQ9LSL*D-1RqH;+2MvDg~DNmNcm@d=j{Vqm#E4Q4S zoK)h^#4(=Ahc`VCa{D+^e3%+t?#-vj7e;`M(o})9C6lprAivM<;=rU(Wcdf5bp}!# zDR!mmVv8KFCzoO@x+LOtnIr&&f;rI&pkMG`&k3HkPJiSy#lZMAhhhBjfEc@NdVV*4 z?FJ4Wp>5v>GJ=$KTLU~~Zrj-)B}S~QF=N-GE7){MhL4?o0oDF#+K!oJOn8I9IXw{} zy-&A(a+Y6{SjH1AjFfAuYUQuSryLP7v$;2AazR1@`H;H3?2FhW76mGjK8-#Rt%JnqIobGDu%c9)D8Y z4&)2Q9fVkCuRhT<=cu%Y6L`Z(W!Y5eabM~*Do|UsTCS;x0>8q8Uoa12L#o7tc-jLF zeipVv(Z`Q0jM|zc%ce2rZBo{hCq5*@ zbZ3jhP?2RM6n?m%c3ZHEFz9C{O|L@=s%6&1TMxVQ)LnvhhwZl9s*F1$ox=h39i`_e zzeofZf>d+TJX6SWP=danLEcsomCq)l&B;U}z#KW=>Q5`kw=9rF$QP+muj?#{XF&Kq zTB$`n%z~Pl+Uh-ti%QpE!8oE4qmsDta$!WTJ!zc&xb&o%u=ujTz8*6CIU*rOR58RO zE@YdY{e-epeYX{#6(zJ4`r?7Sa!0HGK}AOEkIsbmQVVyIdq9r&(w_sf&8V_M06>;PykR9lwUCcyW|piUy3}~)Y^PM{vRu;K z75P6kKpPJJI49G#;Gh!CV>DU(;CoPJK6R*flnS2DU1T34dlze0DES)2R?}99FkV(9 z>Zf(mGnB>8g?vivwk2=h*EeO>0MTs=rxi4CB_zi=5#uS+ra<}hGfbygcqpB=6j|LW zlOr~3OCZ9>FOXTL{*+LbyZuR9XaK<887v8cs~rlZiAHnJ`nYazFp&^*(@I-oJ!BWb z8VTORV#rO|oM}FjPvi&TjZE{-7AptFaN=6iRq{ORNL>|}B_s`MvVbMqnWMILt z;ndJ+yG}YUF^Bhbf7?!*GQC<46M}ax7-B~C7g+DSb_lvvOEPm{A{FsO@)Jt?ZGf#4 zqA}V-yvB>1T`E}70=0tS9Qjsd(;qkG#O2-9Xl`3_LFwRSDB4t>zq+i&N>|;*>boP5g8n+JlJB9$_BM!(FD#E=Ny>Y zys}rV7Ck=36bI%67$>dm(ApZ2nqHS@UQCORq|2Q4C1sijK~*ZAMD!vlrwpVJF-hzWnz(bosX8l?_FJA4THT>GBc>9^aF0rGD;*VFqRB^b z>uuJpXDO4YNl6tS7(3`=x!;nd{6vFp}yanf~QE(GdP`yZ0iwWa}-{^+? zLj#3qv<+j!cC`l{p_0C4yC6lv73J@Tf*5m-j=$JkgP~0T%+q!Z6QRLlo|dJeE+Fx7 z_Desx5B^=Ngk)CflLTe*@K32Xj-wMzM;X{D+jr6|CP$U%?aGUHV>bvXI}j~L-Ad$3 zbo@?bw*}LEsedjlZBA9=U%YkZs!J}Nl9V(sUF#C1Kp_>dzqa@5Gq`K9i`KDy3$Gd6 z0{_uOLRuk<9GM4iVq);=KNWLby0ik#*+NK_Hu*W}1um}jnZ|&b2EX|3hmV(k{aT-{ zT^($pRavEc<{cgLZg%LahZ2rRAZlWkZ9#aeVu+k99~>g1h-krq%*WaHy13Hvg)O^g z0Dwk=*@A5Fnodl+(Wa+BB>1l{sQTZJy7YhN6FuoxUrmSA4*2*1zP>f@-obphrW;Ki z#@Tl7TXsa-zk<)-qeq`%)@+G~i|fY+)ENR2lJeKDZR0f5y}b6u%WtFkPhdSLs2RFH zS&99rw4fl=n+oQA^|iH+)zJK*s3=bgEpl{iT-Xxop@c<#8wxrqs`=H`K4nlm4Oa{f zUNf4tC5gsmj=b6;Y{kNlf@wLVc46Vv-?W_ARLX4H`MJ3RZAv$8Jj{4vR~_ovzI<6i z;$ERvDv{s&8x4)~^Ybpw&S1})miX@a`aF1uphf--IYfrMR|Eu-=$lPp8Vh#&ipABG z2DZQ}iPg9Esv+GES|%x&C?l&yqZHMjy?psJD~pX@oy<8p>d*eZ z@>NA6;K<}Z#zqR7A=IMw73msxdilyMBnI`gb?gbkI^p?DeEdit(A{C)6!-*2g1dkI zIB?k>3HLRh9l3z*pme9&pW;`?7%P`JIkCT?2X6X5GL0rP3^3_)}M zU!S-l#lV#E*$pRMU6Oh*;OPSnNB@%A8t~DUOp1RaVwJ58` z?5~OP+xS9F{=c2k=QJ=dkV?9>2N<#n{)nZSGE(JKaf31xz9A1 z)Y8Kdbwmh9o5nP|y13l;_C7sYtw>>2c%u`{%5?Ys{rjHNd8Igva)C7UNx*5EeFOez|=J?NM_eVxjg37_cK}2MJgvOm;P+o2TC2k?iL(k9)C^snOh322UNp;;7!VSXo@ z=VwCG?av5a(>{8fmexwSWu>fd1^&e!$n-fzr5#xq;>c1h$sN9joXaI*=Gs)sW`9U2 z9RjW#%yQw*R6l=?%g#em9t7hlm~K8cLBIErIq*|({o_HrwYs&@`|}Tchw!Gb6xC74 zN1lN(?JfFr`apnUlyu7xwTrK;tSl^KHz4{-uz9JbI}fNv?PLlao=g|r(-S*D|1Q-% z|24%7(b~NA-D3r=IM8?4+1aJ0=1-D7krN5cfal}auZfSOwbTz0IQ{RoTg=xXG|n*8 zLa>ehx)tHV?7IpqHw7TcYz^>ZVoRfGkYe`zvoWO1s#4FM0^cff9v%mIY*Rrq3^KvN zIJUDnKjiF+I>CI|a(`1$DnrQz)c>(|r%`<|&N@KzFw%eV;su?0&x<&!i#A88iUPuT zh1J02lN1pF>eK}I(M@GO1=^^+y*%g--pHIH&f`>?b}4)k#6Crb*RQbyd(WU_Mg ze4#^9RPBs%=O?>cw}C!|PsS1{+3Cj|6I_yCtdXMJBzy~VsFVw-rnK5J)OsrX9ecBk?n+Z)fIFDU=Av=mi102k~ z2Qz;7*QURHWB!yB(m`_x=M%{pnG;=`ap<7)g!HgODkt>+Z?`R z%DVCO{VtGH3yt@=5YaY+IakP?*W^j4cr-C4paP6vK?8i)*x1kRkTOnF45;^7({v7d zS;lDmTobuWN=k}G{`NP%5p5=KSH62^*&Hl)#0VQys)UEHm8c_x?&t@xMFUO^i~(}- zA=zDG=~#knxNKw!CtI1#Cw6}}zR`(KVyuMwhHI)JJ^)-LE-*CsdQ5uF(^mX=W$d-% zOgs(W)|0JQmn?g$%WkLQhDn6bt_A&5 zl)H)5E#xmj?`G(`aqG4B@P#u!=4CO2)EK^$9wJ9Pnwqc*g(8=yk}4MhjvW5!67~v#5%)O+@G)aJ-i#n!#KkV=03f0WEQBbgAI#kkozM}H}DFOXAUxu zHhVhHh4ERwfgQJ`=EzPeVnzw6 zrOtqASDZF{{T%)mpY>_nD^gWOcxvJr7}FFC3B2YQL`qnR?8Kp5p~o>ZM{_Z(Y~kBa za7)!5jlcJp!>V^d1X0n`qd8P--EXAXHxt zD={)M?onG%Jr)hCg3LLtgm-R4SBr%^7~C08Lqsd6bNzbEg(#tzgW1|aR6GOq2-7P{ zMn)MR0G!DqyFL#NZa{pA@}s7qsT9v9cVgDzQDz(I@9$^RAP-mS(z9)0SG=AtpEQ*S zR5J+^J-rsUHYa}`osZGlQ2 zuyf9Stl)muXL*JdGjQ!NJM(rY{(9nRv6nTFCrl zJnY?K{scYszT!4S8jSPYvY!y~Vjj>+Jk%&xY#oMNHSZ3g3y8GmXMdWjW5PuoIe7?o zsI@3K`^{e$n6FyxlL34?L?H-SH>Cq=sSXFhG|CH#YHj%`m}%pfjz6KE4&$}TZR>Bl z1PsV{iP*e2@FR@o2>}KJ1kAK=)6)z^8op#Vo_Vu91Fz+RS$1+0EKpr3xX;M$&&#LJ zE-rFAzb!e=l0tAIw2XPHucp6+AeBQtENn-L)*g8Irkmm?1Ho$_%H#;5FzkAdxwddz zqO5Une2%!7CFRKxI0mm^PIeX#I3!{-hK?yTPRtk@RreNpxwJD-x4AKzRt9rrwsgv| zEl291-d9UNvX?eA$clb$PI#rf$m(;uX1_1J{$-!o*mw%%?MW|Rh2kD`!qqJl)X#rC zFkUu~-{G3(A=HgRdfmI%)`Fy=QPT7TD!*;r3!NuzEC!ovYtRR@&o*p#G4@MfXenOd zAu%lAFzD_bGHl9c_)I8(Rt*4Q4cy4HjQR&5UXTzIr+(|~#H}qx_RB2lALxij?f~_* z23iX`0)G5xoCSP=@U|x;sFx|w0pF&MvbX95Daw|K?{}i8Rq$cIFgXih_RGWsEf+9} zv|w*rl;V>6ypl;Uj9DBRLtdg6IMdOnYpjZ2vdoIU?`LCEwDKHz?}&9RSJ)csD`gGV zGcp;E`DIrpr;mBGhtL8LP7wWxwwZc&ZQ8alcvjg%hc<5z+BErtS?mnlt&~~C@q$-o z%aH_YuZZrb?q7YxU8$%$v|7M1I`|1gO2LA-b;RwPe8@1$JSJx!pgNp`|Zr{2k>AhlL5Pw#cPTavUAhX#3rt%nZ?NOKL zjr2V}rIuzPHa@W06K^&h3*L&SB<3Hz)FA($9A~VOpH3z50_`-Jmep>;B|VB#+c=Ry z5cS|@Y7z)i^w=Bx7Y9V7`GQGBOgrfN&y5!+G-9q!^2lmBh`4yViiuZt*TMZs5J zTbn3Ag!!Kmq{C6gbSW(@E6aClR_Sch^si1u1POnsli^venv9IhSxT^2Lu2Eg&F{dR z8nVd0ju<(6&|EtYYNfP}GdEB)gaMm&ZKhF%n;VA0?7Y0c)~2dSdliNUa4Dd|0`CZE zQ~VjzbykU6rvdXgL$Hy2Ys*7h8_0JZN@^Dj(u#|VH6sYYvLCI_InQiF3tN=CeM?MV zLYE;RFi@WlK_`P4wiKa2I}q~B>DRf-P;PE64;AmDhY!ganV7!9fc?z{8JVYcm~BO= zTzq^930wQ>qWhU_YHEiE2a(ay<6~p6pHD+wy{ZHDBA!?><7b;jiR+Ppt3QNS8+KW6 zst4H>47>R`wSb>$A99QGy`DS~K9uB8_!sG!gU&!v5yJ+e^N5D#lk{|IBU9L`cpQ-y zXk%2hKVnr`qAZwM>=An*BRc7ho7+aEZ8y;4WdrtIZ{3=Jjknp^42cBU<}g7Ed4B^f z5BpKMFz1w;mzM{WNeHcSK;)xJhp5Fta$G+QW5N(XT*wcAj5a%CRuShlu=K)X#phnA&1x-S3Tb6!1` zajfVJJpei!3h{aH0NoJ0gNFF){h`x8A?JU9{!m(4nra;I8ukJ}XL<%gy~2q2OSp>5 z2Zx7^fC~2fhW@@-{cN?cw^!@gc{}S_XtXtXfiS=czU2`m&{iq?HJlx-_8h-dI3);* zEHbUS^YONOV^lJl8wlmMPCNm=(Xk^N5_XFeSZk!PoI+_ba`S>Mr{9l`ICN2urqLWF zZ$S=GJ_q2S@%-$#JB9Te$}3}bxJfwM2RmCegN*@yfEbS#lM72KVYNi}klQ=O8#=kt z-oIDIG^1O)+oV&d6n?7ZpT z`*XW_aslKP#>S2=E(vQqy0sz8;JxU+c~TToFw%Czt&$V4KM zu%$9NIoa{zbUUy;otOoR3)7|f;8w98Sokf_00gpp5soB|*W=#3BOo3QKkzCCDN%7T zwkiJf2K-VX6rF@<{c3D?CM@@u-JCmM7iw#7hnH%Cbub+pi>M2PQclV=Qc-;k)Nx~_ zhLUbyTezrrJZ50UKra*FYy%)y7nkXL{Ge4#4+Ij5&y&>DmZpwhD=XpZhj7_QNJ!Wz zRMpsV78Hj8Zzf&WAkv=)Vai~hoQ&h^n!p%blGY}cwx!b2OO6Q+`9a8?=YX)lH2BfQ z>rlpI^exbZfesDOHp>$4GpLbRWqnhFZUWGZcZjwAI5#)x6Ikq1z?|)r=wTWc(iwdU zdeVHi@NjToVUf}j05W6(*80R_OWp|hR zYU=>M@BDyynQIJ9L$ASFD`obcT2LlB^70Tb z6XU$O{f-p(-Yx(i_gQ;pMOYdxvHq3nj@}YV5L;$MQ3`5plE#} zJIGN%^tHXa8?fFc*|V`qW>#-=e7e0q#qtBzMKEN0+umoY2HZhh8hI7|W^C#;Mq zdhkhDZD*}|h?|>RIjVpJ4oPR#ihQ^Y$mE>b?(RaC91Y-!6uy zZ^b`@7TFw@zFGoV>a%oD6|@X6&YhT)ClXPUl*Pm#=bMn^~4=u6f8#pj_127wz7EM_VVbq@P#t!C{pJPY_Y85tS3n_fE1 zUEmBRGeaF|rlUt&rVIbM3-$@R!VL;^Ts;>i4i$BL3RZ_AHqHVxu z%LMXy5c>K|;fNO{Zx1Z{LmMb6pP-fjzHe0X(pZ~p$zzC2Kw zy{f1%F5TSfgI%<)B=;N-(kQ} z3C|G3-mpWvFI*fwL;>NJc4}T;6DY(%j#){0@G$J%yFX{A$0K+(IQoF=LsDZkv)WcfW6VZ`oHDezCDR?<6+NGFiKle zI0tEXavxl_&IDSO(^;|fcz6+LQacR#=69cKXXe4ksHH_QmPSn}C{48M5H4jQs(+^&- zj+Dm+z%Z=_1$oZa))th(Okw0#$yuRKhM7}TS=ew~V&d1v0LgS5@tZzA636>mQ{uR5 zZ-&H%WU+bi*uxtX&JH-Uds%Y9U|$UzJ+l-~dCq#YEA40u-IHiINUn=5N@`#{3yPS; z7P!Fgz4jVlDJdAaaey@eFqr*eP6;Bn2?$t@v>iXbx3siCJY`=2_KZgM`R4iYd4YE- z5v=x9-jIdTAAV{;c2)d)a)Eyb0&C6%m@NA2E$f$XM5^eNnbxkrlT2j;!57SM#4dEA zH4GFKbKpGW|9b_Bt+%zcN~<7=Q}N+3eF3vi{9e50O7<`YE_G&3@7f@!+ymbrurdgn zRBp!juyy?XJa0l8E|=B2TDpJc3_sF@vrQd91`m_Nh`cRWN2jgr;^d@c;NrrkI@Emj zy8@kZ((3B#^QAn0pjFIJo5`@bY`N>{rNR^!1~Nzi)AYYi98itI7VuQMdvo(C3O*hl zbr9F6Q(nFL1wTEg<3SPZa`$dhDjH}O#bU78Ujx^iF&=VL{15n{M4nu^{~{@gL`#L{=F4jfwWRV)(q6IJTK|F`3x(}Y zLvkv-i~krQkxLIFLEug<2-*I^XK6Ez=S)-3KtPQIWiQ*KkH%K83-sExL11`3fb-^| z>`8|^140{`qTc>~e(<>XEoh9I?MdSVi8wm*_u(4W*mjd@CJhhk`PlNx$pyhALQjqS z2G7lB-jkAMj_k_Are?}-2q5`9rLeQJGc+)GR#LzkTMCczY^$BD2ezI)%F2rEDwqL5 zNzFcRfFt}>j;G$;gHOHZD*E>t1$LRODi(YNIWY{^&>9o*j)lHV0J5OVBXDF!VD;eQ zh)TG9t#ceH0*DdLU8Nh<0>&MIFqd9yBGr2R<_#L0f@#)31U^~DFP-&_o_*IC4jT|7vZj@p%(9 zjIr+`WT)K-Ar+02Iii8rWkzaIK$S`aH5(znTze|94o{ckUuq?L0u>JwH=rtxIMdY8 z`5BG_(tlX70c9uVxf>KN@Pa+>-3xy>%j$!<=EpqOE~j|VKx##!w1Ecj9$s&_x1crh zM;BU`GMp_4$%@M!6hT1{Y4wzQdNz(ip%MxW4MmTy;tHL}(F)lhC^^C>!BJ#cY?;oG z3-Cz7s1E1W7^oycYX7dN2n#*Nfc0{$b3zSUSpG?PtkPbZlf>wvfQ*+O{IdedXmOafhrTVg3u7s7QrrthVpgl|_0KL>*lDbYVrM6oXnA zFpcDwQ@Qk5LR=j6!59(W$rZ0=bCO^zPIg`;TL0n0us!vssi}{jcG+kjR+?^M3MdJ& zd67p+aMC6ySBzkI8U3F>3K}Q~XY0E7AO0!BcK`MZ;uQA%*TJB_SkM1o|DZ%tXNZ(c ze;1Z}Z1@wWYCVTbQBw5RhC|Yq4~o9IH~2+z8Ejnw|F*b6`w0df&_*pPdy|&wN=i!Z zZ9{_$F%dkWmN;Vdak(Rv>-|gtu=~INDvbhMLT3X24+=VT^;ntnmLes0wLD|0Altv)!G(U ziJKt@oi{Db%^@cb;3maB)$nASm(sTUca3{~gpdb{- zBqet?&5zB^l;5#}Uf$l1Gcu|aVI^Z$Uf$q>e%R$tu;r4Q`vt6H#4XJr&LsXlWTOTU zcgd?))?654#)kia2LU#73LFVpk68>NRl%PNTKa89JPAQrCCq%$FRt8>kuotc(MVQ!a8r;^sSTBG2*|Kci#V0|Ns9#=CN1e$PR@L8OO-V-pYuMRgQT`8D*6{vR4UF*)n^f zqmn(76+%W?C5j@utndBwetjokkoAC#4&-6c<;`kN*%8hPFj|w1;xNJMY zn1oLLQX&cV4tor@X`*2SK*r#7EApGlg(+G#G|__MR@ZQmK|pqc-|Ca<>R)iRLX*iF zi;d}Q`-z<`WLQ>DhuGmHlZh_EV5-^yNqlOa`EV&@OS=p}7FxX-8O(ZtRecdc_O2Vx zY~mk)tEKY%qeQb6xQ9DGKp1ikE~xfs#`5V}b^TpI|5JcMfoeB)rocr0(U~(G+)B4M zg}*S2FmiDkv;d>kGCBDNu2t*i-~;&0#tbJAzY1S)D1jbQzvmj=&H%KVN*I6Q>{|LLDX_hl>u6XdT*yYrC@;e7=(UNz2Z| ziDRJbBYNWDg9n{Gxc-(Roko2I}3z%S6sA%5IXZxTqpO$a4JLgmVxKK;5fSGf8>WNgVngALCO7?S45?8m2yB*!$#`K%t(z#v{Jz=YuYdP?kBkmd~Cg$*$VqW%jRLbF37 z2Q@WP*fyx`-Sqb6Yi0`fx&pZ*I5&jb%Yf*{3Mus29~v|TzV}T|41`|S+!G}mZyKzE zT(dNBVF+Vk^;P%%ti+&%k<}s~MJNRf44X(xd~!)N>I}t7wx-zivFRB#9WsHgwlI7V z0*AhP0GZB`l%wPrgEN~E3=XE9KvT(?*DmW~BIr~sV#?xibGt3x)N*otX;tR?Ns%4n zVYr8A4@1L*2M>;id`4zKvgKSv(!|l$pSa2w-}Xn{mYCdD>)sXBT~<ZWPElB^-|h$P=!_!vZH!ZZ356S4L?o=Rg)Me1S>+GaD7V5bDn;5ClVGy+iYpx@Gd~jF z*%fE{ojl5Tw)O&K?z+0&&>r==-LA)NIfzQ%h1Lz8a`?Hy6Mi>t8!+{Wh8*z?GkIse z8LFKa?(z&z>&{{G3@^QTsXsxc#a?x)`mMc){Za~D;+uex{(gE}2N8~OohnU9O~eMp z1o^j?b@1<@x*6H9rkawll=@vtTvSv6QZ{{%kqa2aI*xbVmHEWP0r$nCQ2aL5=zXOu z(HKLXsoXb3h>~$Uh-au#n>D-vDp>!Nl-OAz`7^@-UZ7f?fx>4?>k%=Wj!*rfZXU{? z=R2J&)qePy_b7&Pb+R^oi?ybyp@Hiem`*V(o=vCjB5%|P2jh_kFVC10a&)RcIOra& zXEdw+EH4w{sr?ik?U2ED{ycB_H#le`{)8=*+scDt$W4wTb-|8vsHtbr>4o_Ca2J(B zkHl8P`D1xb6`D5%H8JvZ31wE5WE(9XgP?m~qW;77<`3dJ$^%dSv+neN% zb=tpt<4COg0kz#ZsV1E(i#5rlXz@_X8cW4fCMG0!p6ql!Ik_JOt4gT+)5j{BNYJ7? z+P36};=o(+xzukx+%={}m&`NG3pKJavU2;hCKTr61{&z$+$$^YR64!{@}P$pSC(b& zUu$rBM`(rDy%BY)y3b2TM0O8mBN%t@Q1`{m+*wr~=McvkdIopXzU<&-t?C9uG1eBv z=?53wSQmV}#G+37fZc{FK@^90HT$geg=c++QPpVL^j}~eT3c2_hYQM_Bfy$f5Y~S9bxZYA4RsYjv$qGq}x)yP+8Ol?+?D9>yIaUolj<9A&Sk3n-SYpYikPTFuZ1vVHs);C< z&9<(tyUKA?i?1Qu{LICqAd%r8s8?>a&(LBQu3S`fE6rz3uCd&JEIKDkePfpq!y_$NlSYz_*@zPJ+R`^jcWrs4*dFjm05K6wEw(w|nw1 zrY0qJf>G7uXA!4pIoZyTBbVX!ci3nndF=Fs`P?1%Cj2NAjg~)uZfD8G%A24+({sw^ z3bRqcK>MMu;I^iQk`MpZg{1ocZYkscSsX8}+%1VXsr@mCzw8h!MwxBDruRfrXVMBg zV}P+mA?f(G@s5!Wc42PJzfFpLjQRHI&2-0G0j`dI%)Zb<(Uv|N?HPMp@*Xsehu4j( z%8u@yg(=<PW!rVxAbu%E)NF!r#YL z=?C1yYU=_d);w)Sae1=; zl#K<<$DV$b=-Ec@9^ZCV8C+T(QRnts+GnnVq39hkE94u?P3~)y-pJVMN0bLaB%I~U zcy2B;|Euz8+M+Z+AhWlM_G9t1B3e-p1L!>9iaRpR^2oH`V!w>94oZmYmik=CQR(Mt zn+?~-eA=x7Y`ssUeuT9==rwqaGx->I#MGbF9L>p79z?nqAq+8Js8)Scy}W*bUlcTn zHRQ>DkXn7wc{s-W+EG`Jot-^0SNPgBqK(eV$2#e=XBoHD1@dXc7%9qs4gp)1q6qD! z?j$TqsopYwK_?@^?J>j245<0yle1NwFfPG+Ko* zzjA#DFD>_;pHBECHoSZGlAOW z-rn9sa#0F=7G-p~DvXN%a*kwEXUi$Z;>lMo`+;VQzZb@l!vr5kYq%~Q77dcBu!%cb6gF$Xv5H^TW@+dbfEM8^<7T#dTPRg)(6eomtwY+Pq0x${Dzb8a;23}jSGMN&!SBq-XPht?E;?PE(1&E9zZ20LfN|q!MvKI-JWyCS{7D9 z!mP;=&9mKEDOzPUju}W>xhM7wtd7G*;|oN&p88g{OOd*t0Y)+6pQwwSe{`-^_1ckm z4ju441apLhLkN7aQ)s5xp{sN4Wf4CWtxm+st|g0>bH9Z`f5j-2=s!WI+Tm5W&zYO}X!q&o74kHh^>b*_H@1fyZXIky?%n+IWe1F1^?sp*<{gZJwXt!i>{=E| z7QB(afT7xKXwvW6nwqv-@oD!<_PT2VHk`2{%V*V%Wt@2rS%OLFjq5$_I2p~Bb5p^k zpruB=c|52VOjPLv$c4LdM6`&n9zn-I$+ZzP3SGHlotdif( z?&e7w0t+4Ai=@RTcNj#Gr*ohRe6(;jL`}|oQJ1ha$MSY*;)_l%N+ml%uQOe)WDEyJ zbk0zuuR5R3{^FJE`%{OfL;fxWeorl8ifGy~<_Tq2$VqV4i~X!Z4%O5-R}zjj)Itj& z8**ZeUfjZ(Tc|SOovC^!(Hq1Hc0Ri>V>+tk`r3}qAWH>Xq08}Kc4u3<`8Yxy>^Q2; zW=;L?SoAhUXe4iIgU#2}ej`1d$bQOq-T98>e)cRqc_+84KJ@?i{``23PQ>Ocr$V~l z*S?1+$1ksMZ;3Xrs`FXCQaZ2;tZEyA^Qy2TGuLhZ0gp(JBhAQd%j>w zIh~j8;-K$h*4ipgnygmOO+Pm*B`?f03Wqu<+O1H9AOpgXn}Yb>!5jBh;=+&XJk?{Z zLi+6&+Aea0wmOtdD7z0us<)~x$edY^p0ARREd{ z2oP;Pw=hGs^2}qcNpYibV>RlTwFS>p{038(s4xms9}zcCuEaZFzrk*9^qf=gP(R+P z7XZoUwD)RQ`^EL z2@=l6wF=61imVFqNp-l|>WGc37ejW7o$Fuok?C}i7e`wh=d75zLzv@b3l`8qDt4S% zihkmX$c_Hl`p~E_^L`d^V#G2sap}Gj*UDw8I3_+7NsTR+ues?3WTP_eQ(j+{c5I%) zrJklC6d|?Eg1?|fmja#6tB3XgXR{L_F-UMdE=yK*u5B|87Ao8bp3qf`dy`M&SQ3~ZjkzzT}xnN7F&{4Wx=GbMcSm1w(BXf7tBA( z>A=Y5=E62qOyW`VSjll>sfd;8O{v~8Vx?&5GnDw=O3^H`<6WO`A2M9SAPTdgwS4nO zK6U5agzJ|0cY*dpXuOq9K8NQ0K?%%7!bMVZ_Vz(S9XM_g!IBppW6T-^X}crG3z4Jo zA`Wxv*N|=Il#$hg)?ga2+OWaU=7mu0wY9PFq?=XLRdR%vzbSk*ioq%ro;K+}*f;V4Lp~<$35?6PXQ{9>tAzR=}cZ&R#$Ax{qwjzY)7@-Xo z>->p5$&~0~q|RzJU^-7`6~0;VD^Pk@JU6u@UWl^oUUivQ>?U|~(6q*QO{DcZTT?QM zPax(ik_|9)#4sYUSB+D|{eh=27JdF+AU_?BmGMNVs%%{w!+L;MmgXxrZN5I*!C)%x zF@d>4e9nzPJN}h>L1V16kwRp+?BCyv+iAa+9n+R*3#&cjyz54la?sa?EVksu5)1HR+i|fRb4&L*`@kWRo-m!GKVVb zns)N&Y9-|zKHftLPXz!znfIre+6rTL)rjwAh?M+ghKqz$px z^9vPf=8eaL`Rs3%)~UBX$3wwK6w1G(9~)kthv8I*3XJul>v-cG#%;6T-*BX1n|Q6JugZK)=lo zsRI)Y#1Jrg08F~kOc0zqIy!3V==k~io)Q#<{2nL=NG)0e1R6l_X8;OkQ$3Jj`c;zr zkEW0DdEx$KB_&;mw_V#vYv;@F>0xI@MqWrrf5N;U|ICcT8 zg_W8Gwg9dlGcz+spfEx+ReL0d6@=>mtT?Xb@AW_bH$YC}u6%7&eMBt`P0Np&tS=UcLwVAifdJnq<7i zaybr>Hx`BgGEJu_g%rNN!NrR+1XnXVJH9q}GeD!iv$u3bGH}htEiK>I6~wd9BB96w z#g=Q*g4_ns*$-9S?-dVgYEp5-#j3&VkDSa_zba@>K%2;BX{1!Qi{}DNSWy45gr+<; z2bc0)VOF7O&;}VV1D6gsdv^S?$8qB0VoDeakmaaBNRcvR203(!&sDngWs-QAnV66$ zlOF))odkA#&kc&5XGe%CTVQsHR=p`iUj+bnjn!lRz}p4~m)95H!dHF{G;v{}panPM zKRz&jkzWc59`TN_N};6=Bv8n~@>PCj(KBZ*LfZ>T!3+SY=Sj` z8%S_a?Vn_$+KqUs|lBAs}z%PL{op9<{04Tmr z8D)_-MhO#;!#G&>@W+@1FGz^W$>9~$g&7?~1v>l*5YpkwH3OLKJv=}d)c`xmUbUyE z2P(sSpZQeyg2b;j5tr~1OZrYr7}?5&<5slQTf}ftY)*Q42*MISU>rKs`*Ty7H1M8= zhIHaX6oFl9>dUH9>1k>E8#zZdwQi%Z#~x7poe&}!N(4CN0O1Zf+MDtFF==jV`{Ua; zYPgelKu8n9C`KAh-&%d+lL8>v=~^N_1XpghUh!Wz2>mQ0GBs3>V-e#c}I+jVcR_k+5F^EF>oH^XjGQ(7!er^ zMOCAvMVS3_8*1a0S4Qe_?UXU7TO1KLfpr6_e$87ZBznFiDJdlpEj z#23GOskqwAW1hU?=R#BfOvO_H&){jtrV1e`*bfFr*Hzj$&eBfUjzO4 zR%_G#x&fX+yi`>V=onQVF|g>K&Wh(O9t)Ft1?FmZ2D;w9jcvT|8DoX4A#(P3YY??Y zb{;i1?gd0CC4H7Z^uX(M5df9cajuje;q|IyJlvSg%{bsv$40)72% zr6(pFJ$Pm=ub$?BX5B4b7}|Vbia;FRndnov{o2pZZ`lh>Pj319<6RX6 zR1G%Oa&jP#vAA;O@JWS0+$~=kouI~-J{I9(OE(gdlVK93bzMbeB{vt>_?`kh{UQ9N zD1Fys$Bu!{#KW0e8iOgUe`-?;rYO3CAly15D!S5;^ct@$dkBOUm=muqBM>Pf*_JxR zPoIMG1MqDgH*QpDG9JQ*Q|^7!)df^|rLjuDie`WazB2AVL!v4uez#I7Z(+2nY1^F6?JX*DsNvD z!|biBRB%5wQ5r_~9D8U@HGU%8{NdJ?&+@f!F}!$@Fa>+_N!Ffs?=DN2j`sG(v*;Na zCDPE+(7+r7KuJFTdL^a*HEEyv%GC#nfA;o9<>llqiKUfG~RoWg(o=@Wb+St%Q5Kgf?a~mh*%Q1+i zL2fSyY?(?MIdbRZoDm;S>+`|sD;w!F zOYpNEJeK&`E1o^u-rVf4mu#M2F^ny%tDCr&f)5Z?I)DB{W)^t0SV-$v351Y(w7NM& zloYx7NN-(!j`!u%A?#dLAVq|tUAW2by>-N#=-)rQbTSpfHESE2OQaj|2t*4~U^y@i zz#4z0>GAQU977)NAK$;9fZ;aV!R8Yl+o({&Z~`) zAQ0jL@G~MK6`o0GZ?^*cy^|w10x>I9!+=0|a#$h}h*t>}WC(AXinBkcZnp!Yf!o1;Lw*Gg}t zWu25z#sAk&SEI)eCBt!5Q&C5&=F*=fIuA&nHTJVXLxZ5nOCjERq8}Ixno-w}8TFea zE^hxU8KQ=5yjh?ujqavSW)AoIvcXv5=)NlKX|`I(>*$g=HTL|lsAl%@QZE78$YC6i zj!qtX()s7dD%ankJMuvEDkb8FULYq%6dJ7K|L4RA-u~e3d_fA}^YFQK`&-mq$-pj2qsksJkQ8R=5-?v|YXUH`$Qs{D&J%T`NrnVp)i@WS$s zi_NCXLUyqm@;w*E6VNuzVxt4QlypzUgr2G=GuLOIiW>BQ;oMS8*<_tqM-c(*Z9*|i zz&7YOoQAqdKbup2o88}*7`hA-_zpMmP%PH+6%Xi`&B`gFwmmyPTFVr6F5<+h_!1?~ z>)IenueH9v8nks_ad0X^7=RWM1NHHQbUp>74%0hbc1Gv91v}R_T;%8MF&J@UfB;D6 zvR&<=Ve%e$!!PoH?jy`}_sQxt)@UZUp4(Y4IR+w@7VGDys>%Y3r=JAmhb3@y$kHHf zCNWjNOJP-hTd}6HxdFvRR!gzTQ4GUMvDr#e z9nRkPKpL6m&0K}QgVVQMlo(glPXdOUX?|-g_pfdm*>tSskAk+$Bs9bLheUgycixE=Ni8xf@wU$Is7u#P1g4~!3~cd zac)kz_~?alX`lKoB6b4I1l8eIN-GB3B2MSpDV7mIy^*DKS=H}@x3JaWZ+)HCBZ6p4 z6wRa{! zAFZjK_*Z==>_(KQMb6Zho%V$^Bc}n->4%}hKU5ek4%>p#f-Sc7uiV+GH~X9B@K^f1 zO3$@&F z!B^75^hj4$x>>x}aPLPe%C! zsRcWJ-I{3~1a7SQJMIB?T6!(FxiM13zB@qQ;8l$Xkr)*As(qjS!aJHG^!Q`O?acUk z{OIPnp8U6=TAvN<`&{pu1@~Ir&%kD_#bcNS-=HXB@w`u1d-6P?-P<%7 zM*FaxY*n@XHkBSYbf3N@+SKXCKM?YHWw6qnO(HC zcotZ+yGc2I{T^+z(?E{m&O!hN-?_R z7!v-0Iz2Qi3k>MhX0v3A9ufm_9EAb1*dALJIg=8r75l1osw?zP0%3E-I6fnT&sN4@ zd*CAj_$rXY56~ZLcLeq0iS&oI2vahP)HpnUkT!{-E|{KXxqz!&+-AktF&tGU=&31b>g-&E zO7i`fL)(4WNb6k0ib2b-H4n2oggi@rv3~aUv^q+mpDsk-Np6-1Mmy4L zF$JoQmMF1SdAI#(lUQq8#_=`|QJ$jBF6LOm7e+9>EFNXm#b2cp)NFl(@|3&yZG)D{ zF3kOuu$iVwX)u<4iUu8n89wqD;090NDzjw*b?*>)}v4$vSh% z`-orte{!h0;!6q00v@HwcC$ji${eP00Zd(LW;(eoWmYt4;uC*>%bbR0j7L_TYc`*} zS^wHC4IyWWq%Cu@pRpc+I{#zZNYiW4^}5g>b>hy33|$@wBegjkUHEJz5z};?KRp)L z>AqoQ9_s&nCa|I&RA|qg#o&ta%y*Gte~ zA&LC^TzqJUzZo)>NMu9v;`w z;Z*PImc~FS6JBW5j(jKI_>X-7J5g(6v>B?3$OXTew1_q{MC@ALSyYY*YS38dRsb(!FI<|Nsmmbwlix|4|<{yB6 zsdhHLY@f{9u!&q=XakSd?0@J(?OZoEc(RJN!5KC}1`n~RfE5;Rp($dM(#Y^w{B+r3 zmO~dIV3aT%s5&-Roy@Fv;hZsCy8R}@Mlp--FJI8PE;1rB8XQpB3IjU2#*V4z?bZ5a zF2?G1M^MLr1JbQfql4_RE_i-9TVDV&1iTy5HnqEPS)B%PN4=4s-y#QZdrQX+f0Hh5 z*r5a;?~%CdoBXi;QhqsGdBE7MS-twxOsa$FS)@oA<@0YFqPOd2)uF#@s(WTyR7Iya zWw4xc^kh1o{gbCCGYoIupHv%0sw3w2+`-3I<;TSapBpaZz-iYtn*1?u5%UKq*g}l_ z$klOLCC`2#RpjVH3a2iKed8LY*oQL1K~CqhYUpxrW7oa*@9ujCYIL!-g=2*|PUqWy zuvJ-T_1Dnb1wjmhXN>e~QzoY9rqUgu;vCpsW_2pqHwTiRQv+KFDHXm!Jwe-9vZXYK zp0~iLPdP!yDvOupa8sQ5rLjTvxUiwx`wAmLG2}66{ztZO9gHm|`m?mU?vIYN=+jK} z!dUMXq*lp0F64o#h}G{SQ$9yG@Sq|{d8XVt2EQmyx@-mAq3;|JReV|>O;rC(0K>tt zch%@HYF>EmsBO+l;%{Qafu7ttal?JUk1u_7-3yM-0(4f7+aoVeOmLvG9UD4=93(Oh zpI*2wZ4^itGP-t3KvO$W#Ro&l^`ARZSGR}5h?q}kVZmY40qMORs%;%=zL%ovWd&M-Qsa-3xW+*v@PrK1Vgu2q@O zd#ng==e^*6aK!^Ih9i%2kGLsC_wOM_nx2RSZrYvpQWN%v3oBWCxH}hl%rL^2qS>_J zF$OZ~kw`Ba)6s3(6VuU{2}tj)pg3%Y0i)*OeKTNB?Wh^>-^xV5PEQ5-VLKbJ;px@} zb0ym)xRu7?rtNDfne-1;2(V=u@qeHgO5 zszC3TI{oy_7@@DvvhMg$WzZDZ(IfIKl45*;izp@khz{X9qH6;9gfL#FLyabSD3%Gp z@(^s^_aC@CFM|A)^&i-D2wq3lbpiPUJNiVB=l`2YGavQJvYZnGWog;6tmNf#6(q_( z5MWZkiE#*7Ui47*d|4?p)tQiw(wKv)+z{yRbGwiZIn>5hOlYcK%8CuF(h&^mP~4hA zq(KPNu_IUM5Pw@p^$H|`oCq4VC#Y+TLt2(~aE}OExHgngu4iDYf)9pj>)*MB2a zDUdNzJ1~R#6pVi5yPYBndUn99ot_Tq{F)*p6M#k%gdtr4(*~sdAHd%y(bW(;ca&`! z5rh%~Swj8BosJZV!3NYTv*I? zk$XWcYLuUIum3PmOyeX5iQTQ0ieNF-2QKmG+jK|YwXitC+KE54vh)m2MT4f<=Xj6Se$nZy@) zrh*B`Y+iqcq2l0fL`X04SY;lLDYd*ZPHAw*hYzwlOz;DKYL<&BP$IhPPGBGe1q74= zRyZ~Nr#6jJ^$AR!DF?;$aMeti+Gnb$Ci$bt@;k4mSgZoITc`*5)N$1p<4e`!-~zZL z&WFibK>T?IU{2G;KtdO(JC}1RfsciP3GUu8O_tS;NyaCm zR;tE5lN0s@4wRxl0fT@Q9q%-mtv8kPck3e|-#);5U?{;`kLfWj_|wpE!K(pkK-*$V z*}|RB)e|{#9wor=0{o}U*O6|iET0VmjKpY`rt8#H+}7%RPAoUCbSHToLstBW!~*;>Due!-qQ-dVuS^-4tl%12z}AcF0RJ`W z>Z!oKQ6hGo0W>hB-5q7><7s*v+Vhdv7mXju%_aYQ6zec&>6YvWgd8O>v>wN8(Rl@k zdz>Y>-*RAkw^kJ%2c6URHRr#;_U^6~;qYFUjPrQ)J-XFDF&Lj9U~J$<`0o)j&w8Vn zA!PK*pPCJP9qQUrRWuspde6BM)Apf^lV|QMPwd$d`)FsWieX_cg?~+)2|Z_D=I8g* zSjehavXmXKG3wqC1u|flXbJ@*SxTId5T7+EfE5IP8WJpW^%E2D#LI_0!|Xv`Z~8Vk zWVZLTBd?3NnzGv^3$kw(Z1Iuqd~>af`i~n*+eUzVFoS8kcwC;Oy65D$vOM&%x{F(E z%SZjZDj`AOyHv!7+UZliSthyOVaWlEkf4rYYd?nf?4ouX73^bgB}0Aap-=W zrHNFXYw)R?WIpopSSUm$96b(fYBf1NUe?tBTR)R_WI0m@oF!Z*FHINpKA%5SR){`r zl&Du`W!`x)IHl!flv+0NU>^**^T|e}f1b;_uCY7z*$A3Cy1KCdZ#tL_jAI3Le75^g znM9)7zEs-Rr$~>k^LfsogihwsU@wRnuZoYY=vXamPLnLob)n{fAxBH?kIIZtrQETK zIO}o+f0VdIL^k~BZCUj}P^*J9Ms}f)-CO!_&GbB`{#!CzJ0X)J6Aff!+_#R8&g21z z-{%i+lx+koj@mWQJu?o=l!M{gZYTwQWx8gAEIyAVxE&Mcar>jQZJ)HBb6n>$mM`SD zo;suz@Cz$@OnvPFmtC3>M7qzup13i5C;7lS_`pLW;-pF={n<0g$v)$jkT^f3Pf`|P zQH?}=ZW;UdBhD5DX~GxJ>7wYH{={ccIwrJe+D5;MiEYhq{bn>h6I|L*qaOg_EPmN6 zLV=^k@eX3M?7$x(ZeYhO@4E#>4DS{HiZ_%cU?Z)zbkj_wL3vDv@?t*%X_9#&3UF~` zmZdwtYdpkg8nrb6qBvlsOy6A^=nswrlw3XWs^+9LbFG5a+2YMcdhbIKyWe}vYfepb z14GCnC zIuM&zC6#Y3-I`bj`m9i4ykf$c-n@#)1PD~p_i~4;k~dlE1oXkE#1mkAINZdbAU`~M zP@roWbr(APB|inz&by)bl2;aiN5_OFIM z(IBLp4YPwA%(XiEpmgHgu|MRIVXG~(pss*22m+jXBH$CP1>hA-d(wdEgyRfB@aeu*9Bf0Lf2Ul=C(V7DrI-wGaA3{dm+ar z+4!%f_tr`)h~c!8VV_hp%&JyuqQtxLMdYX2Y4+F=O@6MzcwNzhN;k4yn zJyIZDM0|FFooB8|DD@5RLbCOr%L*xiuGLI_5@#3nI;^EV@Rj9q9N0E}UD84Fu#;Je zEMK@r1xp!fx(r_qNH^kQqMmFIlRvMD-Jyr}mD4PKoaHKE3)Fi~(nP(f{KF`Ajyoh) zrSm!bFyYkT&=xbZlHSDw@a|I(9OuXyukXU;@SHI1u_QcfiU>^BS4Qa5A*i$@xEHGuv3L_b@mTq_ zGc`b|sQYumz3g`bcdXXP{Ci4_Xdk7Nkh*kagD{fEp;y;E$m3H-8GKPqfpE&(3NUhNAzU@4Z-L6www#=kp+0h`K)wixz-Eh?3P=J!;^VBgy3#-RWs zE{s>eUz7VgyWbAJVid{7eOp-*n>#$+>7ue-&gaIk0Wbdg8q%ELK(b!{9BZ8-E7BnL zZv?nlR-CIV^ZA!p53&YjP%>>R+pbfYN0D0FSJ`D3h~MC0_NIY*FV5+Sip}-!rCr3z zTN&fPj`nr(Bp>f@ED85+pCDgFH52Xxrdis|0j$6eNoL~R8~j=`&Pe84Z5&le7u}6P zT#NydI6F+cwyHhAo6G71+qDnve>1>+u+O6C^53lrG&c;G!kS`}k9pvZ;134k;vX>* z=87B2I^B@Px7zYurSw>t%bBzo18k7lefYEPQ-8>=sOEV35om=?#yHe}m%Qxv`hAu` z_ZyS~1n{81h0EANJ~A-2Hx+`~E{W&>YB|jo!Gb zGS=~v{4)gURf~~x&@>+Eb;k!e3}|g2vJL-q z3wR@}<%xQs7Bj8KKJ){lm*aR})ZYt3Ar@E z;Q5|e_Sv&`UcN1sEP#)vp?csC8*Bp;@eNgFVg0qH&QSc~9#$3iAj@;4d6gFeR9+BQ zmPs=ZkpwDm;CoCsICaZ-^mzNVlLV=+a+>wJ;qaW5b|YvT^jCA*&V9*s$zvn*Ji~jRXe8XL)n;}*o5i-B_17A`_ zdzz-uAWJ8-%JYMZ$gRhk>lgP0thjA+IguzWAdzd#2kS7wjx6V>~cpU%_C8m>9OJlY)t(;s*t7J;~X52yVA*>H)SJ8W4G zey>&2f}8k7i>-8eA!TfjI?s=4oKE}7%29mXzo?PhvfeK{Jmp3Bb?t=C7mTW+n3HoH zONWg-B|)w4)ic{(N}di7ZhN0h$ozQgw`bb&)c64;b-?F1=;Zc58>iu<#S7F|BYGx( z`cQbdYUBsZYc28^B73lOe6xa>|2WOj4jj9x<66XLj|F0Av+H+#_X7thJ2ANfKky*V za@9J8ns@QE=)iy)?S`I!r)r}Ok9?I{Wz;zkD)A3gi1W6%daHS zq%C4);z$L9jwusfavX6)AAj+UcM4Bd1)vkr8V5a-KX{R-k!T182&0%a z)f`KYzH*yyH`s`YAimL%V|w_?1!$?HI^nUjMQ6fbi6n6CHxMHy__%_k8prco>M^O2 zINUsk^EeU`Mjv!#;UxtKDE3$1Q~<=|L$VvS)96tf{09C)Ot%64i$@=r-w#y+1wl5KDu^oko9^kyq=XFH-`I=(A6Py0#<%DO<9qvT(a%O(?B+3rsE| z((G8kO|0)Vtl;p7@@+aqE}jtb00!)YJ-pKm6k%$NMN>P%a53*cMeh+q=07qWmJX0S z7^d8s7blMX!ZoqvLJ1_1XrfRp$nd>0?Zc-{UW}?W7px!COFSR*r|RXs3uV|fr@bBK zFch_<(N1Z{yd{#DKD zt_!Nj&yuZ*J%39hsbNmHM@q(vf7k0t1rJ#eY6%U`RDYAP=O3_d(y*@-`JNhFCPO~w zNEWxe_xze&kHu6u#&sVtUXO!}jV3oaPKK}yEz%fjaAXAfc+{4Qs2lNwdZt=?DuN=s zyq{b@EG^XHq*#Zd4f#~X=&`I^OcvjyDa(IHarA^Z76&Q(G1I5qb!O<# zOrW}-U*>v})Q85R8TA|-q=;a0;N3zs)bP^~9mW&dvY(0H=M24-L0v2~%{qFCPMb(` zlnrur!w@m~5mNc>FEyDP_*@l$&TN|Jr@1ag{EAoJ0C|d9h4vL3njx16s5uv9y!6nC zmB|0(0u(Dx+%w84Y@46t<*MI7B3C2-#sht?8iSBqfLzxaZn&4DX20;C=2!Ky&Vy-q z$&1%2pjElvI;RDw^c?K8`l}*Yn~pF*a3Z9kAo_zvS5* z;YjS8GxXmZ*52@kngH1OwV%F;A@yDnLjY6pra34G|FX_R&$9Ef zVQF=bKmS;TiUbk@Y)$;J!Y=u>Z%U2V}R^QhuR-w=HgvmK1@XW9FNBWz`>zbN4N}zc+-3Aach9 z+;hxI!ciW`0%4mOUN@7B3lVqJ2FM#-^4;^ErD{o=rx1F7Z+NF|MUXP;bj-_%Oq>0l z7V7zU%hE^K@LB}p`2SArra-8nk;X-S4?xG)SQU@mvH%+iLY(I z!w1gUjJz)ttzRcIlj2Yvokm&?^B2}tmv1Z$W;zNfM6_skxAgtk`;231FE2vmKJJyu zw67)OzWT6St+o&dWjXaQA<3r=f%iWhkx2;*9V9vH5>h@r$mzf_UAcRUzOyj2GBR-& z$^3oq$HH79EoFs~e3y1ENxn!3{MN&vMjWUoW*j z=2nmT?B*X#fEZV0A}rzb4_IFhPDM8e07prG@el^Qvo%T)hs}zg{+dg^w3`~ExELHc z$77V+rIO@U{3CYv@HYRc*2J?VVM3FsH>)SF0UlB?xeVWFj?UGtgEm=M|C$~`so!?e zw+EmDHNLrWvx(DE&~4IFkB^v_Gctc4gC-jj?M)ZrXjKg^8J8`f}jwLkn`_P*S1 znLn)oo3cQv-3(a>-9cg`kCtk?N6e7)~~IB$z;$QN|AGM<3p%0?Uk zYsdCm`^Uo^d}RkNA3nJ3y|bItwl!*)hRY!HpDEL9N@ZDR1+Epf>+|ttv#X^30tzT- zgxZMO8}Yzp`hMMV3X6z}^8ZzO?UmFIC517_?Rqw74ax}R(6V1A za53IqDPA63UzGX{W?HOHM1ksSm2#B7vBt2RX)l}oPyjh1b-13s%lvr2g%|*Sm@E`+ zu} zUjQ&TNK4A*7egDIF)R*JqGtq%7~##@<|2`j0L5GhntUn8T_HjQSv8xJ$9&uzWcjLT z-*@qohzo-oLB+qm@Dv>N3ZQfOr#{Vr3qb`;XuHFEV)SB;7b9!&krVn?611|j%!t=3 zYIGNbo;LVBsza{?jMV==Uv6_&4(=J_;LrrGCQ$(@l+z(I^m&bU8$_>0-zQ)LUA@m9iQH;tb{`xI%p%GT}EA+t}G z!jpYnV6H%R+A?b(^iE=o7?bVM6O{YXK5K@0geybC=2j6sVO*KTt_T0jJ*LM|YHhu> ztK-dSSwGw57x}~b@t>AHKRY+c)~sq}s=hxr-zs15Y}w%jLUCuw*tGfe0?aJ?BkcgNdfI7KtJQ2t-%_m*>>C1+vT26KUVW%RZo;VenrLe>Fu6zJTY94 zbmuwQ!?SJ?bWJhCfz848K_(JozD7#?0B`KbG{|1qkz`s>p`yWGiI}=isbUw(u&#?O zP_ai$6$V4GIVNRcG-B01WqmWWXikX_vq0Fm>eTV=(lfg z@kiKQs_;R87x^m*4s_`@rU$U>D9Z1V8W&J(Hbx}B4>Ugjmdbanl>9CRNL!W$98c%f z&TEc6a+#TCmhK_cR024E=x+X$oho+1X&M7F#b#qg;&1S7-%K>uGi@rtcQY6WHQxff zmIbjg*4Jjkz;uH&WyQc%E6UQoj6|l7Fd5?a1>FB?{iXWJs%GvSY4BW4P?7c@#~H}y}DqV zzyz2wp{72->-T%n$?(U&SR=9^_&b-XRj3?i?KxDvM&K4;0^_2vcl`&+p&(guj~u|O zcT4SOEsg;VLxh^<00Gtv4Q-F~+E>-aZ+~WP(}*_57e1qMWU~D{+ZhoB=^PqYBsH2p z{Rk0gKKszJKj}z<2YBOD1%=5`+U_uDCOJIwQB1fPt==6rH4b>j`cI|&PX=4u^UISV zvyno$qKlHpAE%$45z&ydEJBI)Q!BWDkfDm;>7$|Gn(+^rxREm(;N#87MNy3Ee62t) zlZMEzPtH}QFu5?rV2xYW!cU9dF2-xoWww)p0cN_S7rTdw3tu7E8c=OTulYL_=KNk( z3k(C+vRAbqR#$siQrH{0h6lA8+CCK*6Q|3vAnQokULb>--)eJK-(*Vjrp!Bdoj%O2 z&_3nUMCQQkjS3oc0k$kE=74ZJVzut14P%$vgYXEl_)P(!mb1a=jB6R`o=Uk)vbTl1 z#?rDNBVUGmQ{En&$ca4;b^<0VY?MF5v!s62+O&^nm%*)r8nqZmwTgrdyK{Qd$@DB8(HSy>&VUT~m-rDN>DzB_bqTe6WLl`DtaPlfAaK zR-~F^k-4A-*LgYQ|s&}_R!Qc}OOB=35a0WK@B9#bACAv||b8ZT+*RgvG3se&@d0mbsylI+!i z|17ixl5GIHguGeUGa6#v^Zj#hVMk!#v=K7}tFx`8HynmmBnkr4#(Wp%MKjYdv4 zp=Lh7j%D?Y|T zf~C^@KNxtb`}B%SrbIslAD#MzXxBfl>tlgD#$NBUqtO^EE2F&eiTdY885x$Z=Lnda z3t8>V5}~N+6biW~MkEL%$28LMV?;*i4%l=peW5Ay1adROh7{?Yni<*Ntx(br|6|s2 zqvHBOzkYR+%~Fax5o!tp1UN{7#2zuf+twh-pMdiJS!g0d9`j`V8Vw-Rp%kzBM|z6d zgl{jv{AOEYiXxT$BR%Lb^s$*|Y(|I!@xKbvt0085PeAKp8rxnOgxt0@5|3IMIL^3> z|BSl*S*|=!cq){i_mqqF>+cm>RNK@%SVM`(CH6DEDrL!h<&BZ2cdA;Y?;8}%4}CkZ z>3t5~o_ZI=9gP}>P)MZUw$X1bwp55j$6dV)%fGHAT<%eh!^U~FzC`<zH%m^k(;0KZz8^__e`c^S82b>y>{pHZb5o zSKHr+RJnCyX{or3f^#L>TQg#}_Y4`pwCp@}0TegilI7!d+v*Pq<%z=n7o$&Rff5@i zGALkTFfy2jyi#W{DhjubEdC#Ny@tFW?q#H2_bCevJ)RpNIIdjy9@PXn!IIGQ*kBN4 zivw8*1!9{9Bt}v8JC)8W^5mG@s!X9_km1Z7^WqYt;TXvd zYy8Nm&WLb`Y27gh`OZg;JR!1pRZDD&+)(#IqIvCi;LALHxSD~ z*Xn?0T?kp1^_=P*)>NDp8v5WrrJUey4P>aNGNY|FI!S=6a%#H2Ft-^IhdRm^KFK#3 z71DkK&VOho&=TYduwPdKxi0C)P5TFuQ6MZ6C`fZuC}v)IxoG8KO~Oe2b8XDsIbu!{ zD#16n*xb*Jv(ue1%wK9neTzvp7)FdY9i1Jnw-iq^6^%oU?Ql(dIwNcW@kcej$y1<) z@7{oQ$C8Cxg{uM745C2f*Sap&YCDcjmcR@KwSGDN>{OUY?d|QYM=hhG>Pg)bc5D=E zBB=_F)=`DuIY;)W<=oJGtr1?as+EtY=YNecQpPrrw#X09DaIxh``#xqk}Zvr_9O*r zOkbfs6PfqbbC7=!F(AqBeB5~Lm?bh=_!Jjc$FE+b?E=o6P=+&pe$ymti?6ST%9*9| zYSeYA`f4E0feG!;fDqK4!_%ibI^>gpuF9aE!axm-we=rHO6PsvSz3U1YN|qxdBmHD zrAy`F#il@w*JEoG==^#p$vpPti%G2cz?OF|E{OAYk9C*Z;o#N4QGc=~XxN7m&eEnI zoq}=_NkSH;F^56J?Cd0L|7@d|TZ0GrsacgekWd8Hczrp_a;kEFy>O8P zrA9K}dEd7hI9^9k1>j_WHgNTwtG>%Ev>K3)h29b%GMMP)U8)b*j6kqaO8D4!hESTa z=bEB1P(7q;rp7XKQ}6h`&3a~UqAb&eu$QJR+WqcJUkYR>F)qmO#{G-cY5O{YeT$}y zz&z)2P~ZL5R}oZzcrcw%eo&0;2%Ax$q1&gZR1Fid{nqpxF&-cxM7XA6TlL*Glf}O> z{>K~aJ>1`e&v=@~-KS^~GOT(0LN0UPtyeE^SeHw;oDGzhu1U@oz*6?vo(Q|A`U}JX z!A%FH>#lyEuX;!RfTa%RR__X=Ns=@((7wJlOYXHt>1$8T#)k?ad1#cDinp?HFvD9_ z>c)J&APd_ogtWE(T$ zU-q6qA@+$T!m;nb!`@R^p~Hs?AepheUn;jzH498!wJXYjRB6gyg~fi#317!Kt;@@3 zQA2NiMP2M%7}g@e>xhy?Mf$OxmkhCcA({8L4Z{C4avHu52H=chrlcCi8`B?4pcm#Tzc+yw9{Fs2by0?zOmpHy73X zQ;LdKHEt4*C?jz>;{>_5j^J{3tbeh~yLb|{khqWIJ(AeA1nV9jpO@C9HOhf3p0S;{ zurt-!bPW`fkBevy6qKGULJ>TM7Je|ExS3L@uH4n{PTi8F-{Erc|H70Bo<xaj53?;?3 z9Rd}_guMkO#GEJfu@Ln=23e|GAAStXYI3V5?L-mLl7c%YxUqTH4pfu#QV z`1&LEw`4Vjuqm}ZH9JBJlW?BScVf)gw$TMb_$BmxsTsSwcbK-2>eOjK%O{Z@uKA}S zlc04MwJGuLkN%FF%}Mqh^()R!gj2Y8e!S;@rq-yC`34I=1!f|lq=$noxoz1r;g?h3 zf5A)m9T_&hq!R#VtW!5{r!T^U_P?NH_Yj5pe_08RKC16Li6%OAb%Ut!OBliyZEh6I zT4*q=1R@~l&Gjn#`eh7#c}CvKEc0zRd~q|1tNLX=D_vU{k~XMa%(9L!mz38ZP0lVu zVRFPyN%u8I-?{g$E&yXO=Px!ku_Pg>aR8i|egz|yvX^<2#v+JwSgTH5i!l%`r#l{g zXy2itd2=8|L9lv<@n1x;F^yh4#5fva%*1vdHnZ$jN&*6ab}T~BcH#@QkwN?B1~_Cj(LuLOS+Oe1ZY;Zn433 zJcIaSmVI`Cw5yJN@nz?F0M5QVQ>1t(h)(hwj!Vqj)f&%H70t+8b}mGRBU~ zY`d?$5i2IBUY1b|;2^0a64sS1NWz8J@{KpbGOM!KrS!?7-eDrhF`b46k$xF64%ZP2 zM_*nKQ?wP$Tr>qhX3+5bI28Mdt-kKs3{!khwD5bC9}cPd5-cR*%cY5$ zq%Yk({7ot`JZj1+LwJY*)X0{p$oan-O=4Z+P_2h-g}{eRFW9sOb!s#!6C~dB_%9)zn) zG~a(yHL5eghYO&moaCQpvjU#ZMOeUa=K5=>_cS0tmpZ2c5kkxUr{f%R{JWw~OoKLM zTEP&~q}HiKRO-5_6|=-!+$B6}l}wcsT!dPL*O>3jn&>!GmW;ZW0YG?(9~z_bj^V!$ zWw@ZQ21V_5yP%+YA1W0ELry_w5-72Daq`xn4>Znyq;|4z&XVr;p79kDWdEgQi9}a! zoydBvMX|0n@weR_s{kpE1efYa&x(fISfp`Y9($JXzWL5)hT&2X4!0771z*X1qIhL-aiAIXSQ$wdSon1io*i0`IilW;I@X1kg;EAPS9 zk_ZaeLPbM}h!az!=|S$WsN%Z;K(4l`QT@=#BGuQ-*B;9%2`-t^8QQ6NELnq$aW|Q^TZBJfB|5ds!tVc_Nq!K(C9h!}4jN zj9an^2n9wyIW!*%qAl|IED0L#K$oqJAm!pz94Uj_F-49Rfw>hzAv=yFCL%XPo?}%V zpizzqzC5~yL<|1sE}VXj^MU=19IJJYMvh-9pJ++OW#QI!EpkFbhh9SdDbyFusSiB0NOee zUcJ*^lDg8WjEQ)7C8|2j09B2zUyZCe0O2e8j|4Vb$@d)G2uw_neOAfHKyJrg%n6qtgrd87Sp<( z8JT{d&1OOERKuG+G~0QSwZ-@I`D#iA{sj`X8NI*7FXQ?2n%qdT_yw8Nk-0t4rQo4< z&5Ez^d3DeHJ^?>6f2Urn>hFYB@lw8qtGaFqWM0xuK5x-DIaHHQZjLyU?lF1&% zw`rla-s?QA6QO|`6g!WSpq`$>GJWi&gZSNv*a1rcv~3RgtTIcac0pJKKS+uTz_sq6Q9ELeEF1tZ5=qW*EcDKj){H+sPs0?(M?XqbZmF+^nwuIGM|Q;X!yPd~4oK z{KYm{C-RDyAotM*)T8$L^g|%?h7mggzoPi4=_#eOO7^+O$L1!%+hvB?(!=l4Rc>o;!7BGLbo3sB!OFZLlNUTWk}L4$cdLAu5j ztFEfXtzy(~f!!LJFB4n3-$e36nw;;p`NeO23wZh@T%GZafKC&j`Z!sfL=u<{*{Lto z@V1~sf4x2-T2O+y2X(3WhLbQP<-MIA+k$)#fhU*(0Pq#t?H*e*eMA{I=}#ji|G{59|A*TnXtAXKb2A7@uKg-&=|UNS{x!9$A4%L}#}j#{4+JCF zpNH<3byi+Cm5VPC=7g|eFySf1!MOy$PkGMuueit%QAhjbuD`zY|1Y+_GOVp8>J|wQ zJb3X0cXum61I68n7uVtxCN3Gx{@jmE3$5jT;pYAM?>oEu?CSZnd5&S+R>IdPw)cueRX zk}!tBvrP3Xo^*KGq3hPL+v&-V6;8KKl9>ZD(Yt@bo{ed_peg$^c4^RerBNB+I)0`N zuB}m4UTR^NKi%YPiQs%LDX1F%K0YZ|+2An1F&VNJAMD51F!z@G%^yQ-w+c5;4RTZ{ z9{)Zw^TZ;csl&60AWHsIu?hY1_^}2RM~Wg8B#$S~8j+O;<`!hiP3#yVvS&Ru#Ef{` z36&S&DCL3XW+u;Cs3h^ZF@rUfnUO>GeM%#b`T4!AdniEJ*~ zqiGfhHA#4L;L7*dSyBa5SU4eQ2;B$6C5`m}DiYFx`m@~RIgl7Zyzyn_MAICE|Bfa1 z2egp)sYJuWyD|Y(tKvFxds&O*AcX#nbrTINQ)O9P*(vl(1*li37H{!ht zSzoY@ZMBJ+?%{cm@E{7Jl|$ejSY9CSYhvFg{*>AKe&8ktIfjIBDL`e5w8ydVL@(Jq z9Qj+1Is?n*8T13p?`_D)R45eJR9%1VnQQxwNSeSAywO@c#cIUE&*DBlj1wVV{e^vR zPTq~2Zl)gr#EpjmCuVHKy28|Rk`ruDm-qNEH_WAq$7s#z#!^$)$pcbEs-hZbonC9o zNTIc2g$wydp?@tBpYD=BBsrs5QT>~_ET}ia|5I0(nDHV2LilF7eRIg{1q;mSCO6Il zEP?f9rXY2C%TW*gcS49tXsV(HXwah1q-WHj7h<0Su41HaNpoQ-8DBUOoh`EbjfrsS z8!&Qon6gK{36}=FA=kpwQCwF5WW?+1NVbo4{%C&PU-hXxxsrNQ--LpPNqkZqyD;FT zA2n!NFcm$&3KUCqhkQ@1+M1jiLS;f%K(5HLpfOpNIs9>4keDC4=FFuc*)o!nV}ITT z{S|t=o8+BoaR2w_Wk5(^;M=EVmJ<8-KKWdXfFf!5BRv|~DkO$?fD29bsZMTTTmZSX zaU8RTuS78;*U=yT#+{fYKnDq9JD^hL(6czMye)V_$+cHdPRwN|}Gn5DJG2a6B zp7b^;B%>#*4s5d-fG6!Es5J34DdgCDL%k$I1?Gl@2ey=qF&U)z{M>)b{c-^+uOG?` z8@Sif&LuQ5_~A?q!bUx#Hb_$qKqY{|dZP8i>5@nD6j8+dxWpGU8>HK+`!YHngZJ|# z)vp97925cs_Snpc{P%PR1#3bBOMlr?GQlpZqbQhXVz-(c^1*AdV@%+1oO;d)jSLky z)9gW-kGrvQ<@d2p>K0Mam3g0!B~|S{8|-lSVwq6jlM8mJ><6gVEj#q zSM$SVR8B#=9LTpNXL0_}OObVw3wq38Z1KI(<9V<~6afE(DvUglXkvDrijz8W@d?3uu6vlk%qc#9oK53ct=) zmWr`#wXdy(r@kow=hGz=6=`g>t0BBEQu&#^MmzwddC0f0Xni?ueZE^$UPpm@8-FKo zKcyVx;M>dvV#;Pb<1oCY3DbE5>_P!WGG2<*`CQZh$fY}X$}YzL z&&2eenO`nGNth)$w2;`Ggx}_9$Ao%o%NHm|ayl~H6bNWn*ByB!;|vtBW5hVn$e@KY zy<-~nA;3C@E1=}4`umZaC9$Zg=5xIQ6k*>m1l5WsxGpRXruvZh64dLS+O9DG$K9Y2 zNy4T4uGJ>~%>*L$=ooJ_GPvPPOyq$CN=GphtyQO1FL7&MJ-~@sC#j$?1Ki!mCOR!j z5o77h&unt;C;e2+8X3ZH1RlhL{s)=BPp%I43LlZY9MAf2R$(7q&Lvb75I zlO(r=(;R1XFxaEng*d_*i29GlbOx0nMsa6NqQCS*+@hqh!G9NAhc%kT)Gd5qRU<02 zK8anD_}}LE&``Ym!Z5WMP4PqAMQ-gT6V^!{C@>0C*-vQOelpgQ>rPUYQ-cc8I}Sw%@jGP*7_NI_@<=PqBjW z>Z^iA^l4fxuA~3judN|!$1{^6M;lKitihqpoiQ?K;;guK&JXJ3s+JVER+52Fcs684 zpLYrk1`zR^XL+>-K)5-VR5UpJ_6(;yU&b9h)o>8;b(83EDdxAHgd9LW&9Om}b zd9xTn)LOh=2exerptGRDnytCl8oU~tPJAE4n-{pBmeNy~h@p)O-m^>qYN>_B*QUmT ziRVEP1vE8OD;fr-0BG+tv|GJVklxgwVeKpS%-Xb;EfP!-bXKs13P{COU$|m<{GR)X z6(rjcj~9l7BS*qrC)e5++beGweeNwhbNSFpplKmtTt@^DSI2tV;ht|;_+&E4><)jEO!Gcly4NhPLOx`tF3~{|4Ogh8LpF%Hdjqzs_ADmQ zRb@u!3Ii0uU#8tAI?e92?Ly1No5VD|T$u8m{$~PsO#OGE%Gi-*_*IjoQi_c^vvyIK z*vxaqo_+bpo!$)GoCrXN-sJwfA+#P-dm(>zoCY>_5Kjz1bH@ zVnzvf{4^%X7ET3?=#v#b@!S2fVnIW%2CnqX_67ATz78Np+x@Y3jpV^UWwZP=`s`Ly zc_)6X28&2VNKkQWH1t_kyjn5)dGyaY|1xdi0VT{PKVmUF=VCvz;tQ6PB&tzLIzxx% zm=8qY>koD2UyCCr<8>62x&$)evJ-EnAfW<=v)PCa1G(#fe}Ar-sPzlz>|Mlns$#__ z4Qm55EyBBrrLfnmtWKRSrcX{z#?=*l-ikN@JapkQvNZd9aqRNm-R4^Tph6lR9jIkY zQ~Z^x4-R%EIsbg1*{w5%S($O~KP!gduY`)g!XPfh79uxBTEwg4_;vCF>4Kp0?&YED z$W$J863WCEG}qQ|(HknQ%vb^GsP!u~nt$b4QI54t1Fb$D_rxrJEuxLy&1;ELKjwRE zJ!i_C%EUoJ)`rQUr*l!eLZ_K~-xhjU(cSG52tK!Z(7lLsPD>KjaVSiQ^h0`;`af}K zhp8ymcP%_CS4+99j8HUxW0rR|nKR~5lj4n^d~Rm<@r<)S6A#+Yd_j*Za!cPd{sS_b z?%a6cm>cV?Qqwsfqs|K`CiPFRztxOem^rf^3%kYCoAummJ$8SN+`wp|Y@{MRDzNSC@1VL?Ajrh00w3n_r;F#-l zObV98l!+nl{I@NwhttxZ2^CQ`B`Ce>J-~GVca5^3#mnGIA<$h-cQ}!^FsWhByTM1T z;Z=jdeaTg-2EFu877hi$wMv#=l$aQ2*Y2a8T}+us44|tfn&}YZl5V6TGU|5;#d-Ha zp;D|2i^@xFD_SRsZST>j8mWXqss%XsWJ5}%W@-%Gia(tVKWaH4DMT+AX-8#MJx`Sa zNV-gAJ!vQTRI-xb_D#;O!`Z1NVtq1a3A+QgLd^9xYZ0|LB9G$Pk$VI(@P$ko?R*U37<=GY!%r$xi<{W>9Z3jUxPW)yUCaqxAW2q1DbGz9r;oG~ZQ`=NEsI(!VBmVcTxnE)dy5_~fCs&RgTtF;3v(YU}nM(|mvtkg) z(_~5(?GfMj&P}?tT-JK zd;e4A7%)Zk%jJu>d$D$D5W&Y2XbGOtM_HxT_kwt1kuP_{SKDIfI=-x)8|&|ySI~ro z1y#=f?#bz78I;Dv{qY)Fn$18!&h{%=Yc2#Bu(Mn(l(|t8-hGtcxlUokjmgj|J8aeA zWmTpv6WZsLw&nTGM`&;9+HP>E$4Cf|luqr-gD;ibL-I|ru`!&6B$D9QlR@eS!v&0( z!xUxV4o4>GG5s<>;|jinsG&)mZC3#;6q^R$yj_@k$y@ zlMJWo?#-G_ujq4xVjw-tpRxOdoL7<%VS3W^`zoz%|n z2ozC#D3b54y1cBy@XZHqLx*({IJM`W)cbS{nXPzf_2)CN?+P;)l>#e6j`dI6!7{gbLCN_+xvpx_0Fq19ktV9dzKa|peto{Egt8`ER9 zMBL;fk-{H?J&1xs{dE5X9^zc4Ll8v$Mt91jd$E@6(hDj?7DC(n|vdsBQwY^vM=1Q@R62JeG9`&+uMSZXr> zC$WMTiM1xC_0m!7N=<)D4NV=riXGHHnZ1v=(}K~9ShX?5Ffk2DHaktX2e`2g_2`;b z$T7UVQDjN|Jrjj;?p<*+5mGt<0h_)I_ZA1JJu}pOj1(k z`5(JVg`qvTsbZJQ=Y#n1Hk-F#^c^9Uc;?!(YEF9d1MxurIv_igHIhlA3NSHUvJHJF zzPi}|ei9g}Nv1I&oc_!3_9Z7Xxf^fcDPG67%233wX(AA1LCGsbFA7`&vDg{Z$}k4Y zz?Sew#kehA?Zj&wwfC~54@l$*y9ENB40Vutwpj2b#`;~DI+mHsY-si0ix)9?ZikGS z9NdTxP^j-i>+%hgbo$Kvz3DRZS?*4Xe28AP`c3<|X~rk2 zzq-d`c@neT$ zNR^O0W{o3|z?`VmlQ`u(@PXi;%xH1pTt;-3k_}ro|3Q91T0Iq-UarXuHRNxNju*e} zAb06Y6uHIPA|GQ8MNB{VPPh(8j41R;8(Qz~;>63zAGIwhurnVFG}2w06X|kjxw5f?ZsU za_l6d=3)P8oXC|=OdhuvzfS4G-+3}HgV7Jzo-Wc5VGF(*M=;+q#&<$31O$;1ur!RQ zrv0x!GQb?Epl9GLl1&*|-5~Jjx%&oKaG-e;rYwB0o0Q+H#KG1pv83ya=(Oj6eYix? z3?FM_bK+{grW^aVpZm=hklbxeUAZ=%5`6Y9JZ1kk5$wZ!gN3R|+>bd>l&eM5d?NTQ zgX`(ef!swyfg4}SGX{q?a}}9dK z+-Lo;IGy;W_JJ(oFlV*-WQa0ooL8MpEAh#`V&C%$O>c?XvX<^sSO;ibu$ z6=1(i5SOl_v5m>Ac5RKtHq5o=-N7vn3EiQ$ah}KnRHJNNEtZ&gHT_zfyvoVZ?;LVv zX;`uHO8mLryb4v39qwUJ#D^Dc0?_$vG52X?#zyr~57ykdC9s~F1RA9DZkeO~#oFcz zfQLoAP9(S)VW=+r9us@t3!)wxn}rXRR>n6`M3w97MnRPV4e3B))<03Vllc})TEyUV z4qiv^?HlN8o8dtL;uJQz5ZF4Ief_)UZS)WO?nTi)Y?b8${c^%p940UB6J?{8$ozU$ zL7Nv+?OMw)JiDt@{?|VZ;mvN;DeG!iZ`VM_|Za9 za@iTyKdmaiFrZzZmgkhE2U1G&O1O=-kHRs%EeH)aNIBRMC?J*_k^d3wm2UU%(KN_z~Pi>w>E(B_03$| zn*lBO8$kzU(9bf$T+TyeN(xJmrpO5AduOE1#cX^f&%+gOzSljHsl-!INnXpndz#EE z5g(0E7IY_y?DYe?nEqs%BQYG3a&Lz5O?8l_w8yxNP6Nb%l6#0BakE5%)UiyP#K0ky zhR!AyCtc=4ff&Np}IGmVIp6?K61C!tR%WRM<+4UMG2uVS~ zh-J$96V0LSuO79EYXu&>uOW-BS;!Oz9&bfh5AdY;G zcdHIuN6`EuI9#DplEOZh0PUF$n~W&{yi6+#2gdfxMUoH+{EvV}>+Y670me~E$Seht zAx?V6;a1ARXkT5VfG{(|9*QcnR0Ff@@vt~vQ|zM>DM-C1Z6yv6aOsw_h{(wUXAZtC zez-h&{72qP{uCSvwIw(aaUYr3(7O_L8QPH5Ysv$kA6)CdgM|Dj<(1Qc&?pXMZUfY8T$HFfftL^Ma*G+(~pC_(!>HfD=ayrAQt;gqfo< z>zPi$By*DOwp+xMaGrmw#we~#j40x*p`HZ^wD3r-{pXV-P7{v(WFfrX2KLFnVQ)EO zk%tG&=BMZ*O2nj?bZ*66y}>#rpL{CTLl-6<0WNvyN-0eS_b;4u-u_C05KEe1wsG)B zdaG7;(F_M=%Ui-?-wHy{tws^#3VeVt3~;yj=2aOQnlcD3MXLWz4RMXHZG3PYI@pu- zMsk&SS&h=}YlqwpY6N&Ny8sQUMXgbvc1x$=Kry+>Iu`oVoG@%#{!HlwrydySHZ-n( zB!_Kh1(f^z3O3`iH;yl%7s~LTa;Gjww)`}Ul9FT?=M@x7P745SAg}kpwy`I-`;K*? zfeIIUloGLa~Rmh*Lz!FLFv z&K~xj6ow_Bd{!;AzxZE=SwjYQ;!aI}ax%n7{wA|P^llon#%Osd;9xgUfuIq;A^Py0 zPqwZ?7r$0Tb@mTNKmgMBq!M4KrS9FaQD>ttq@Xc}C&u>mPyFtl1+Q_xA24$-Z3;k7 zwIG_#AHYmMPMrCIWbBc|O%^2X+wJE{P%Eq63tVmACY|fKDw?k6F5?&Q&|6tP=v&_s zUvUh7W+WlcUJhIMgm)5AQM(jmA|<)rmSNy z2duxcp|WuRh;MTKbqq+^bLBqa|i=Iug>!n55VHSLd5PcEKiUTwC*HO_49pa zx+k?kd4Ew779g5bLh(=H2oKHW`k7}u20}kMXA6F4D+Ha)AsZY=33Cd7xGyWvO*}$^ zCjiNV^0$p|;HBQw+gAwxW|m7n-j+k*81PX}f`@Mw=LQ8zg*29mZcYP={{DpxD8MM$ zR5}d1IFXEn6?ha@s0f4}+w?f^{(9$;a$1C7!30i zR0vNd$Jmtug<>$rR3W7{Q%DU7eu1gm4bW6x#gQzp=-(|L;#mf@6}^jm7yTf2->r zJwN4;Xx$N)c4WJ8=FuZ38cGcZvoEo3V-$1S|4>6@gJ?s*vM9*l%t8S?==?u*KwAp4 zq^RjXvN>VoJ&eI*IH1(t{0Unm%BX3+g>^zbId3PV-6P^HmDQ%0% zGg3u9fVe8^KRdJ$&t_1VILcuwZzX{WVk8M3sFF&!`QhG#bxfQ+MO*KX7^;)Xc`EKo zw-x%C3@^MKOftA<}$JO zKqP?TYZ_{(PI$C@HR!BQH0t_eHQph`TnHgiv1w$e?mqAuEEZSI`rR)vVmgnY@7i)xazKgH2*vav}xL)O;{ObruimUzkNK3PW~j1Ji@*V#N5h;Ks)s z8+eu;tI8&=GPbqn0AG^LmtTCBroFDy&a;!imh)nE3-H?AYv!0_3j%HJoar?niGm_y z-63+(tTdc8RacmM*@`(;R9BcWYp8$x;LPyN_9Uw^6t0G9*U1vDd#!dXkxD##Sf1K! zC+Syv7V`zPub=E|d!mMDF39ewtfft2~6R6 zUgBxDpTXlz1b#ojdBW^jkNDao7w&22nFFp9WO{U|(oRG!4|Zd*so+AtUOppWwfdpp zhIko|;Zu=#B2ct#oY_PgBhoMnj59{w9ICcX2i2i?k-}tOe#nUN`gk)G2&Zhm9>!%B z{TYP;+O%bawckG}ix$dsd)aVgl3seF{ibpFKp|*5pm@{CUG z{C~w-y|%BiV+!w@AX^xfdxFtfQt72}*1E`JXALU9Cc-QS&L7s3Xj@1|0~T(>Dt#lb z3$$LQUjbFnmRy-(M82{CcqT)PXEK>6ajkUx`8fM4{Je^^-ZM{jnp5Xd zM_j5!la2&}|LGTv zGyF(4l?Yy=IKY%)FY)sId)@i%1o?F(bjSqJvoFfiAa`zwq6+{OUfQ*;%J8=$dEf32 z9!^Akc<(KII5-Y4ehMBiMlzF9yFpq1jl3&QAQ^6RWyL=yr$c67@c%1hGr_t*tIwy4 z23idQmlmduQd=XSOFyR+PfiIF^54n~rEvHa$h-@A8jS`Tf3R=^s-W@UP?e8h<+_5H zo*al9<%GI0CAjmQg!+xcl0i-M&XLHkQ?SA7C=`chwnSNhavvZKdw_76+8!*17Vb|z zRXvo?fUkr=Rb04O?WsF+ob-8z6zf8Kz7fsNeT;X#~dpu(GTbQP)H z`28RR`eTX<3m|;@>5iK+q;yiRrGr$s@cv^+V@$-7E?Y5XPxVKm#BvDiiI~3n8ku0k z47(;t4j8{pcN>AgiVPS-P~u3xM#QW!!_G*Oi-;Ljvxno1WB_j z24&_A!>)sABe@@S0VwN^494+o8i?!5=o~l2lxx`!M98VUW-=?cSb3UO9Bs@g>e ziLqNRfg%gr+z^qMzBj6lbRPlslg~51Qm-RonoyKq6=?9Usan;t4n~tVYBokHk4jG} zo>muO&mnR6{iDx=XZJ-N=0=e@ztY&clPsi&_|KE<6EZ8^BfU zo72TW@(r_|ipa0}b}As9+Ev)cezcR<{3hHaOu>{ZnA^yG{a!=Pha0LNsf@t>6E!>v z7ajDJ;@(+?YN)Ldp`5&vMeWNF9R(E3^Fkw)=XxLHP)cGjlS?o;7GD+|2#>A^0C-M` zTwwVzH4!8FRO<^tG;`p~cj^wyYu(mQ7pV-$S_u6*^yE5_fNTd$qE(tpt2y8wjTn@( zVBQ3{+IStUo)wcIkrAm*b0V`)x)^=GwMGguW3>S0nqY8IrZx>p7`LQ~uiWrBx>bXf zDQ?-H+hbQ+BO5&2AC01Uix?oPSMh|FJhk2ty(l>?Vb+=d@XRat=#3>l;L!=@6Ud-s zmwC5r(CC#F$!%lMU*y9PKYqMWnF@#o`zs5KS?a_0wb)35hCfxH$O%u%mP13@<#&o> z^W{|i452rtup+cvW3+$eLo^X(dg1!{qqzc@1Cptzwq3?K(+vT!*m-my4iEVLCMWb$K#t?dfo7_j8DvK3u8+FpQRHa#;|yQ$ zGkc{DXC!&U9s2xMHD_a)_cNu4u;h#IsY~a818J?Y44g<&(~oe(JGK?b%hwQ;>nNqS ze-6P3#+=^wLkc{7_L}d&`&6G%X88D+c|72LJel^u`K%E+D~#4d@c#Z4tP}n{0LN^B zdWPGblmyDug|qTlTLmQHxyTL5X39>q#j=p$DaqTUCI|fC_lFHSc2kn z$S8dXc0A?Q2>sp80f8fY(zzTy0SlRJ$q+m=42yu0S+;*@;q)9>*b=%~6K0$TA8Kw; zqH_QKP}hE2JnOg<=(pgA(5I&0OBXjf-B;-g&50B3k3<||a8pP+YnDT%XwtVNl^eS@ zxelb1Ls{kiY#6<5zOg*4Z0!XERSYl*SUBy9C>OSj*ME~`c#or~?--4Coo~0bJiy&C zmCRmis9GJL!JeMnXl@?;`Db!Av7K!C0I6%!;(uBi zRTQIXp$JGJse98pQ6?2Syqfr6x+?&nn@w28<1X##n*W3f`qcXh^CX8$`bA}I(?Gx7 z$(vdYb1`9r?A)&|yEKAv^!yS|#Q+k&_e`ZOr#p`$o2*#%$0QOT|E{MKh_PXj>Xxy& zr$jVo@Ej#^ZjoQRerfUM7YzGxTy^@&o=3FKqd=zjpdTg>xjT+DK%@9zxi1~xE-|Hr z$~LWY`vzQ=Zi=fAuKo*KMUtNaB6#fHoJ?A^w{hGW=B*T)RA`Ue3Hg|V&+7pHUn#Pd$?=Ss?mC6cwKe=uAtnuOrs2_ey;vz>A-&b;?L@_{FgF`t zBEP-E?t1ZQ8WkxNQD#6&6FsOiZ%^^2uUbdOQ&?HPr1FCxKEWKEGBNS9Z{+enuJodu za_v|r2^LF<%kcH5iGzeke73>y<`pEf(~_~KWQN5GGT6x`XQCCXEAImykRlucncQPG zjkG)1dfuO+z*)t`w^=9h{I>I~68>;y_9_6XjG2^-bdSssWln-9orYYWYEqbQISDyn z#w)b>{Mev4a3MZ&ouwOGB~tlQr%J z>Q;r-MNNjjW_;;)JN^TZn7EVtO$1WU2OHqo%N6o1r#U}sV|R{EJD=*Qo=*NqxN_9Q z?#fXMbb#kpIf`F1jilzty_1HcdGpi?Y++eO>+8n-mQ5$O>6H0OH}G70ib|j7ACeyB z=K4yQ*1*GoSqVPnAp#gR(X9|;mu3$J2+K|*lgBKXXqE&AMLD!Sw+5I`~i9m+10XS%#2O zH~uAAO}7z{)8?*h2nvjXdgNCB4}{VM`w3hynni`=duhv;u2n#GlHpNSjf0J z5iW&%f#&Sed>|vY!?N?ohXzZ$UH5EU|6J{K1!dD{%Z^5fU7t#FW(dJ3=vT#HrvJd; zgRw`-3h54&%qvZ-&_g*c`071se#w{1)LB5@unBum2Epw|c}8sO*VMb^bVM&S@$|iu z52LcmN{(K_=3cYQL~N`9x3K>3Ksq{PGJ=57{;!*{ehGgI8=W}Q3z+ir$BZd33nin_ zhh7J6f(Q&Lincsr8O#qV4e=O!F%3K4Gw&{Z<|I*!ke}VhgEPknOQxm9Qg;4r@oF4K zpo?O3D||-bWsS^X=s5}ViIx%!wPZ1~{ik}H?E7K$1CGU^+{BrV=Twd_#S)R)G9Hkf^9&Hj$KYYX)&+U39S7KJJr>5NZkv9rgdV7;$zl-WBkYv!C`$ z)|^iu+XBJMSJ-p*zqB{h=9Ad@yF?U?Gy#eix$1n;<@2O{)baBsE=xXP&9#(O zS(W}&)$}2xze?uliX|juKmE4A=zwOv#YwS>_PW#Rx+^{xU+>jQMXZeyCORQ-G=AneU~| z(J(r?^_5f6FdRGTj8WwVC+RDG<+n|aWL@tE_Az3P{mSw}+xIQVKDnE>y|d-G_bu6BSx(6UQ+X;Iy(!E0Y_qpxY7~^F4!s`fu??PP>y@Oy22I zT+g2zn!SrIUysg=?91INuV7@=m1`?fj8gj_zdvYv?gnntdkGiHC}tO_?SNMN2qc?# zx%yA$0lFw>{i=x7cPOni}cd>-cu<2ncofQ z(h??tI7|>m4Nff4O{JM$N;3LRQ~gWE=MQr|E-p2t+iVw~Ddh?PO_@LU4Zx>{;Cr=2r zyUjl1+fk3ZiI?1l0(u590~az$92U0HhOl&I)bDQU0+Hn))2(kDV=$VWP44Sfl6)`J zF#}eP8&mb2M@hHG`!NHD{>hO)+j1%jmF)@-Xc*ASvweMG>33az5)l3?=zY8tDT3Y2 z78T96`SgVVShm;Dut|ezL`-Rx&_=%ywfQYqXnw6kE-jG}##?1~mgRU^9KRabFZW#H zMQ654d=U&mF`IML4RNrn=*sR%cctJ9f`ue!zZtI?H=F@3m@Q0vjIKAv~-wW3M zxAj%+z~Y)?H!lkFWOI?qVzh z?M}mu&_GC|HOvqt&7j%+w@TetD*=nNSTEUic!-1vc^@vP zx~u!}t|Kz-29x~~TM*Yqlx4VX55sa{cQQWo%Jp2Rw6Y?Ej^_AAu}Ncg6K}nv@ z7)2UtB<^Aw2i9Et^iV=MqJo@M&1hRWG!@qPihlt#4Ir9lEU0wHmJ`HA;-RhIZf)$v zbvjHAO|XrS+|=!1B1F~7rbgOjrbcRY8a`qx#JN6^ze5%pEg3^hB*I!{iEjuGFFji4Lcu&dkW9Hr--Gsv51ZrRWW6!e&*nL zq`vY0n`tMP(N5R0qqV$Vj>Xje2L~Gp&#JJPm7S}PPN&3(ZeETp^>m)?BldcuFG$?g zZj7CNwdLAEQqz9-PDt$v9wS6)O$o+ zsdoFyQLkc@atsKt=fH?1Ip6Y)^txPkV#lQ;rx+H9&|{JScpEHe_(+z_O&8>7ar;0% z9=Ok|h_sDo0nw5u;1~;k;e0c#o}j5Gar@dD$fY`lrGSs8|K|7CN*dbh9{K?A5p~$)T@2^|h~x z^oOIgUMiw5<>p_Fgmh~|T8XLyl7%IU*TdU_zKFE|o8@`mMqT^C z3hPI05JLH6AfHnf^C*O({`Q)Y z=!gZC1S zZt23ci|M?qz9;uVNq(WEv|^uJ2gwnoynuY^#&vICN$=Sw+k2;Jo%a~|XNqMkGF*mf zc$5Q;)fo)mu6wP=KBYQQe=XH=(>A+V{>lD;c_(VvJbFWKT$t&x@MwZg@4C3RWid~7 z{l~K#L$td6yKCy+=1*<3iDZ$Q&d``$40MGa#<(V|~72CYsV`8P!DQfJj@(K$1O} z`?4-;cn_vs^^s1h_t~z@PaO76XsV$YSQq6as#gCcE#B>Of*Got`%txsvI{PQo@8JP zJyAglb&?kzKmV&6#?f4xiFf;fzMXP|+jaEwcUPZ6H28m7T0|oY}S1SnVSNtusaJOIaHcaH(f6l6Z)tO@_GM&?0=YN}@ zw=i(Kl6QE*lW!SQ^nu+fK0+hGNjR9lT(@aKc#gZA8d*LAawN+&33@qSpTjSa&6)85 zxM>}jGW&bTh`;pa2BiB8D0}bxQK3mq!OnY@3fW)KR+g2~({n!>1qC-wMFFZ;$b$a( zYFQ)FFD`=lT&+iJ`MBfq<^O_+8kczAXQnv0Y(1}~mH(xa&EV+R7K}`gztN%lBP1MA z8b|M{!?0~|^n29%;1MNdz!pSn)97p{HMW6%8Cbd5p*%2C3uDz)WJz7I|2gf4+{9_UpTUK&D2grbbKzb39~b$+69+$cd>xXd7R_PCb1q zz#S(|y))}VM$4*5JISg-kJ9uZzEvh8Ib8Q%gEu6{p;G7*4y9e z!#_WpcKk{~6A|4CSH`qwAdgBCqD7$n(s)xuz|hJoG}MA%ej;zs#4{f0mi~V2d#~); zREa4OGaEb-h;jZ6p78oPbm`6O`^T52An9+Yw%CqY;jm9%P5K?lqYzVxCr`CVUfUkwWb`r$b&giQZckIK3>!BX8`bD6l>XXCJ#}w^hD(U&_ z8i^7dj%n4x5(n(^-(9UZR5=-brZ4doZ(S4UvcC-wf?w%2gE+QxLep`r>3^&*#xB+< z{n{E$dF(Cg{6du~`!!4`jBeF7ABpQL(UakqRB)ZU$Q-g2aHr&2R!;0__-5qE=}E;h z^@fMLa8#pWW#i}G;ZN*J^yuxRAI?G<4-l9JFD~WwoSmAAFxkS>-cOTE_y1GfdB3xv zwsE|TAT8QNjN@3o zirOc(B1#1bZ{9!SeSUdYYrUKH+AgKB{K+rEnqk~mnd4JssB{${ z!|Qf3o6)J@+|YnT_NB&^9T~*VMcJ0pOu9al0b)`$3PQvhmQQ@%PnB7zSvzZ!iZQIs zzIw-T#Gs`IU+m2kwLA|m%(Kv?)W}x3G5-=TXV04g$pMDV9BkzuSo($S>o-J2sHtp( z61MtNGVaHa6Q(N!vP+z@7~a=%5-uz7!Rjmc!*{I$(u(Z{?-0?5`}B=o>7j+pHy z_;IL#+h1lK6a?D8uRpx%2_mspai3R9w2;lWh77>|QakDqUtF?BP1FiwPM_wB+|}5? z|Gsmu@jdRU&Pyu=6IjbBZcY@{!QZv(Q}~lb;!)E^=*qHWM*n83=QhO5qGvt-b3SAe zH|DR7e6or&_C*NYjW2Z0Nw1y|+ebnh8Y{l6=$M_rFQhUx$VyWbfyu=OunJwpWMy~P z{LyLNv0!+NLwmbv=DLPi3uCG-RI^7&=0!2+RH`tBDK!gz&%he&r_T!3;ik8^F3)du zqkZg)NDhXH-unaZHxnu+3&w<)g6)2e*pVP%iP*C`voPV|ZJ&@B=Vfzjz{V9zA_d+t zBOmQ%t(5=n?y%2hG)Xu|cBr6Mn&%}WG)&Oth)~!5&!lI_(VG;m_fD`gJcGHicz-(vcqXGf=V~lZ{gb$J?_Bqe8TWJ`ZNsErCshJ5|plN z^`gxQ*7x>2hM+!%48W0y4u-lHcS$5aT^QqE$x z!uJuwdb+pw+~Z>FaluEjPD*Q1M)_rum0!sS%9;h)TI`xVs0ugBnY2jC%%Ye}47l?P zyifM{M3)xV{}cWTX>;93F+KytODP~tH~&Mf_VCP>S;$kv)&ysAVV<0Oy%XzdMTJ`M zu|4@lLx)bQ9)lIdY><@E@x$mz$8bOH>+gLyY>l@5=qt|0taEXNkHbDU*Yxj>=PX)n zS&3DjwpGgVsY;IhsndRP0(Hd`r+7)haC8+qXJSXbK$l@?;OKq~?5Te-BG zBGT^7HBcyPkROiZQr{fRGqCp)`9op(I+H^C4zFQ|Gw(y1*T60G)XNP2MZcrplk|+x zT@dFsX8HK2et6i-NpW$xN*=c3H;UZ#v!AXCJRDl@TPZ^MNYJdikDQdu1X_bvADdMnt3$mLkioWp%4Y{(BYTvLsGVe8dJU1S^SSq9+hQ}XA<%$-62Hslw%T9824RL0 zd+5_>TibW*i|Y1a6jvSG%H}+awU(xuZ`@zUTHf0`suV{h2gtS=YN@ayN7TzHq-9u9 zQ_vC-6pqCP28M)(udI!gbh5dUM{|i|V`HT9jg4;soZZV$kM>x4Ma0L}B2UHEO*v5{ z_Zx>v5WF0C*_7iU8^f334jcrvS*(of*+KJDReZCy7eMSuiB<(D!zEC=NgifnQUG;Q z+PL^eW>+1Czj>+NMvT8kbDZW;4kA7Q9DKKEh$VM{T)`mai6NKUJ@$Z%O7r=6kUJtAwU!R3l2LFlQy|PApj8I3eo_d z4;~r-f>@od{Q^XwC+#i>vXd+K@nWIR;n{P5+^Ba_MP@o9>`PjJD${595pL3a)`;u@ zjdEwZ;2}I>iM)a8XkfSp=qJ4DekAfaK3{O*kpJ~bbDjb)Ji$ZjMt1$+$QpPjnJa1V z17kG|3T8Xnxv;6tmgHzi0oOM@X6Hl|IgI(Y52!8Hv5xA%N;^<2D}9AYy}VOWYNZA@6tur<>t|v@!j{sS{Ty`;6UBXeYES}olc6df>;_SPsq!nGZCd2#+jc^ zz)JwRf2tR4{uHW{Dy$$G{}c+zi(K_hwakRi$JcfUJgV!#MPMS9vL((&0Lf^o*rxNE zZ;It_2wJZ9I2S&#rE-4+bOzk?%ba9Q3Y%#QxnLtBUW+$gX)kS&$Qc}ctcZUun! zQ@hmG>xVU^4*u~V0-gV1Ez0zOxOTHxqpHsUAf|*qXxw)WicUBq0m!|kuyQ#bHQ9XG zPW1j4VZiom0jA`do0YXO{+{?pZymeLiKL| literal 0 HcmV?d00001 diff --git a/auto_backup/static/description/index.html b/auto_backup/static/description/index.html new file mode 100644 index 0000000..f425496 --- /dev/null +++ b/auto_backup/static/description/index.html @@ -0,0 +1,95 @@ + + +
+
+

Connect with an FTP Server

+

Keep your data safe, through an SSH tunnel!

+
+

+ Want to go even further and write your backups to an external server? + You can with this module! Specify the credentials to the server, specify a path and everything will be backed up automatically. This is done through an SSH (encrypted) tunnel, thanks to pysftp, so your data is safe! + +

+
+
+
+ +
+
+
+
+ +
+
+
+

Test connection

+

Checks your credentials in one click

+
+
+
+ + +
+
+
+

+ Want to make sure if the connection details are correct and if Odoo can automatically write them to the remote server? Simply click on the 'Test SFTP Connection' button and you will get message telling you if everything is OK, or what is wrong! +

+
+
+
+ +
+
+

E-mail on backup failure

+

Stay informed of problems, automatically!

+
+

+ Do you want to know if the database backup failed? Check the checkbox 'Auto. E-mail on backup fail' and fill in your e-mail. + Every time a backup fails you will get an e-mail in your mailbox with technical details. +

+
+
+
+ +
+
+
+
+ +
+
+
+

Contact / Support

+

Need help or want extra features?

+
+
+

+ Need help with the configuration or want this module to have more functionalities? + Please create a bug report on the Github issue tracker +

+
+
+
diff --git a/auto_backup/static/description/overview.png b/auto_backup/static/description/overview.png new file mode 100644 index 0000000000000000000000000000000000000000..f531afd4b9d28d70db96ba44e54cbf43a514dccb GIT binary patch literal 23200 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

c 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 z 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 literal 0 HcmV?d00001 diff --git a/auto_backup/static/description/testconnection.png b/auto_backup/static/description/testconnection.png new file mode 100644 index 0000000000000000000000000000000000000000..e6d5eea82f068ba9fa61dd3369656bb67c192e73 GIT binary patch literal 4479 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 NUG14_k@DMs{{WE|GK~NL literal 0 HcmV?d00001 diff --git a/auto_backup/static/description/testconnectionfailed.png b/auto_backup/static/description/testconnectionfailed.png new file mode 100644 index 0000000000000000000000000000000000000000..bdbeb81d5e45eab09ae987ca144cfa3aa4875acf GIT binary patch literal 4139 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 DCXN$s literal 0 HcmV?d00001 diff --git a/auto_backup/views/backup_view.xml b/auto_backup/views/backup_view.xml new file mode 100644 index 0000000..d708b0e --- /dev/null +++ b/auto_backup/views/backup_view.xml @@ -0,0 +1,105 @@ + + + db.backup.form + db.backup + form + +

+ + + + + + + + + + + + + + + + +
+ Warning: + Use SFTP with caution! This writes files to external servers under the path you specify. +
+ + + + + + + + + + +
+ +