-
-
+
hr.recruitment.stage.treehr.recruitment.stage
@@ -385,8 +374,7 @@
-
-
+
hr.recruitment.stage.formhr.recruitment.stage
@@ -405,8 +393,7 @@
-
-
+
Stageshr.recruitment.stage
@@ -422,8 +409,7 @@
action="hr_recruitment_stage_act"
sequence="1" groups="base.group_no_one"/>
-
-
+
hr.recruitment.degree.treehr.recruitment.degree
@@ -436,8 +422,7 @@
-
-
+
hr.recruitment.degree.formhr.recruitment.degree
@@ -452,8 +437,7 @@
-
-
+
Degreehr.recruitment.degree
@@ -468,8 +452,7 @@
action="hr_recruitment_degree_action"
sequence="5" groups="base.group_no_one"/>
-
-
+
hr.recruitment.source.treehr.recruitment.source
@@ -496,11 +479,12 @@
form
-
+
diff --git a/addons/hr_timesheet_invoice/hr_timesheet_invoice.py b/addons/hr_timesheet_invoice/hr_timesheet_invoice.py
index 54257f5efba..a4f08a854ec 100644
--- a/addons/hr_timesheet_invoice/hr_timesheet_invoice.py
+++ b/addons/hr_timesheet_invoice/hr_timesheet_invoice.py
@@ -126,6 +126,25 @@ class account_analytic_line(osv.osv):
'to_invoice': fields.many2one('hr_timesheet_invoice.factor', 'Type of Invoicing', help="It allows to set the discount while making invoice"),
}
+ def _default_journal(self, cr, uid, context=None):
+ proxy = self.pool.get('hr.employee')
+ record_ids = proxy.search(cr, uid, [('user_id', '=', uid)], context=context)
+ employee = proxy.browse(cr, uid, record_ids[0], context=context)
+ return employee.journal_id and employee.journal_id.id or False
+
+ def _default_general_account(self, cr, uid, context=None):
+ proxy = self.pool.get('hr.employee')
+ record_ids = proxy.search(cr, uid, [('user_id', '=', uid)], context=context)
+ employee = proxy.browse(cr, uid, record_ids[0], context=context)
+ if employee.product_id and employee.product_id.property_account_income:
+ return employee.product_id.property_account_income.id
+ return False
+
+ _defaults = {
+ 'journal_id' : _default_journal,
+ 'general_account_id' : _default_general_account,
+ }
+
def write(self, cr, uid, ids, vals, context=None):
self._check_inv(cr, uid, ids, vals)
return super(account_analytic_line,self).write(cr, uid, ids, vals,
diff --git a/addons/hr_timesheet_sheet/__openerp__.py b/addons/hr_timesheet_sheet/__openerp__.py
index cc788d95a83..1acaa5780b8 100644
--- a/addons/hr_timesheet_sheet/__openerp__.py
+++ b/addons/hr_timesheet_sheet/__openerp__.py
@@ -21,11 +21,11 @@
{
- 'name': 'Timesheets Validation',
+ 'name': 'Timesheets',
'version': '1.0',
'category': 'Human Resources',
"sequence": 16,
- "summary": "Attendances, Activities, Timing",
+ "summary": "Timesheets, Attendances, Activities",
'description': """
This module helps you to easily encode and validate timesheet and attendances within the same view.
===================================================================================================
diff --git a/addons/mail/__openerp__.py b/addons/mail/__openerp__.py
index ee22b0c153f..323a647c334 100644
--- a/addons/mail/__openerp__.py
+++ b/addons/mail/__openerp__.py
@@ -24,7 +24,7 @@
'version': '1.0',
'category':'Social Network',
"sequence": 2,
- "summary": "Discussions, Feeds, Alerts",
+ "summary": "Discussions, Mailing Lists, News",
'description': """
A bussiness oriented Social Networking with a fully-integrated email
and message management.
diff --git a/addons/mail/data/mail_demo.xml b/addons/mail/data/mail_demo.xml
index 274259e544e..f9edb8b9e2f 100644
--- a/addons/mail/data/mail_demo.xml
+++ b/addons/mail/data/mail_demo.xml
@@ -29,10 +29,10 @@
mail.grouphtml
- sit amet, consectetur adipiscing elit. Pellentesque et quam sapien, in sagittis tellus.
- Praesent vel massa sed massa consequat egestas in tristique orci. Praesent iaculis libero et neque vehicula iaculis. Vivamus placerat tincidunt orci ac ornare. Proin ut dolor fringilla velit ultricies consequat. Maecenas sit amet ipsum non leo interdum imperdiet. Donec sapien mi, varius a consequat id, consectetur sit amet nulla.
+ sit amet, consectetur adipiscing elit. Pellentesque et quam sapien, in sagittis tellus.
+Praesent vel massa sed massa consequat egestas in tristique orci. Praesent iaculis libero et neque vehicula iaculis. Vivamus placerat tincidunt orci ac ornare. Proin ut dolor fringilla velit ultricies consequat. Maecenas sit amet ipsum non leo interdum imperdiet. Donec sapien mi, varius a consequat id, consectetur sit amet nulla.
-Fusce tempus elit volutpat mi auctor adipiscing. Nam congue luctus suscipit. Duis vestibulum dapibus enim vitae dignissim. Sed tellus libero, venenatis ut mollis ut, luctus quis dui. Sed rhoncus pulvinar orci in consectetur.
+Fusce tempus elit volutpat mi auctor adipiscing. Nam congue luctus suscipit. Duis vestibulum dapibus enim vitae dignissim. Sed tellus libero, venenatis ut mollis ut, luctus quis dui. Sed rhoncus pulvinar orci in consectetur.
Nulla turpis leo, rhoncus ut egestas sit amet, consectetur vitae urna. Mauris in dolor in sapien tempus vehicula.]]>comment
@@ -54,11 +54,11 @@ Nulla turpis leo, rhoncus ut egestas sit amet, consectetur vitae urna. Mauris in
mail.grouphtml
- comment
-
+
@@ -76,10 +76,10 @@ Would it be possible to learn more about the author ? (second comment)]]>mail.group
html
-
diff --git a/addons/mail/mail_thread_view.xml b/addons/mail/mail_thread_view.xml
index f07e1e467ee..68727832e53 100644
--- a/addons/mail/mail_thread_view.xml
+++ b/addons/mail/mail_thread_view.xml
@@ -9,7 +9,8 @@
sequence="10"/>
-
+
+
News Feed
diff --git a/addons/marketing_campaign/marketing_campaign_view.xml b/addons/marketing_campaign/marketing_campaign_view.xml
index 6a06cb33f1d..66a62c5b12d 100644
--- a/addons/marketing_campaign/marketing_campaign_view.xml
+++ b/addons/marketing_campaign/marketing_campaign_view.xml
@@ -4,19 +4,14 @@
-
+
+ context="{'search_default_campaign_id': [active_id], 'default_campaign_id': active_id}"/>
+ view_type="form"/>
marketing.campaign.form
@@ -43,10 +38,10 @@
+ string="Follow-Up"/>
+ string="Segments"/>
@@ -61,10 +56,10 @@
-
+
-
+
@@ -146,14 +141,9 @@
-
-
-
+
+
marketing.campaign.segment.formmarketing.campaign.segment
@@ -202,7 +192,7 @@
-
+
@@ -248,16 +238,12 @@
{'group_by': []}
-
+
-
marketing.campaign.activity.formmarketing.campaign.activity
@@ -285,7 +271,7 @@
+ context="{'default_model_id':object_id}"/>
@@ -344,12 +330,7 @@
-
-
+
marketing.campaign.workitem.treemarketing.campaign.workitem
@@ -358,10 +339,10 @@
-
+
-
+
@@ -464,8 +445,7 @@
view_type="form"
view_mode="tree,form"
id="act_marketing_campaing_segment_opened"
- context="{'search_default_campaign_id': [active_id], 'default_campaign_id': active_id}"
- />
+ context="{'search_default_campaign_id': [active_id], 'default_campaign_id': active_id}"/>
+ view_type="form"/>
+ view_type="form"/>
diff --git a/addons/marketing_campaign/marketing_campaign_workflow.xml b/addons/marketing_campaign/marketing_campaign_workflow.xml
index 4db60dbfa27..ad3fb0ddcca 100644
--- a/addons/marketing_campaign/marketing_campaign_workflow.xml
+++ b/addons/marketing_campaign/marketing_campaign_workflow.xml
@@ -1,16 +1,15 @@
-
-
-
+
+
marketing.campaign.basicmarketing.campaignTrue
-
+
True
@@ -32,7 +31,7 @@
functionstate_done_set()
-
+
cancel
@@ -41,19 +40,19 @@
state_cancel_set()
-
+
state_running_set
-
+
state_done_set
-
+
@@ -72,15 +71,14 @@
state_draft_set
-
-
+
marketing.campaign.segment.basicmarketing.campaign.segmentTrue
-
+
True
@@ -102,7 +100,7 @@
functionstate_done_set()
-
+
cancel
@@ -111,19 +109,19 @@
-
+
state_running_set
-
+
state_done_set
-
+
@@ -141,5 +139,6 @@
state_draft_set
+
diff --git a/addons/membership/membership.py b/addons/membership/membership.py
index 06b84ec80c5..b75a813f285 100644
--- a/addons/membership/membership.py
+++ b/addons/membership/membership.py
@@ -146,7 +146,7 @@ class membership_line(osv.osv):
'date_to': fields.date('To', readonly=True),
'date_cancel': fields.date('Cancel date'),
'date': fields.date('Join Date', help="Date on which member has joined the membership"),
- 'member_price': fields.float('Member Price', digits_compute= dp.get_precision('Sale Price'), required=True, help='Amount for the membership'),
+ 'member_price': fields.float('Member Price', digits_compute= dp.get_precision('Sale Price'), required=True, help='Amount for the membership'),
'account_invoice_line': fields.many2one('account.invoice.line', 'Account Invoice line', readonly=True),
'account_invoice_id': fields.related('account_invoice_line', 'invoice_id', type='many2one', relation='account.invoice', string='Invoice', readonly=True),
'state': fields.function(_state,
diff --git a/addons/membership/membership_view.xml b/addons/membership/membership_view.xml
index 5eea7170367..26fc7883ef1 100644
--- a/addons/membership/membership_view.xml
+++ b/addons/membership/membership_view.xml
@@ -19,9 +19,9 @@
-
+
-
+
@@ -177,7 +177,7 @@
-
+
@@ -288,7 +288,7 @@
-
+
diff --git a/addons/mrp/__openerp__.py b/addons/mrp/__openerp__.py
index d7a14237eb0..eae0d004836 100644
--- a/addons/mrp/__openerp__.py
+++ b/addons/mrp/__openerp__.py
@@ -27,7 +27,7 @@
"website" : "http://www.openerp.com",
"category" : "Manufacturing",
"sequence": 18,
- "summary": "Manufacturing, Production, Bill of Materials",
+ "summary": "Manufacturing Orders, Bill of Materials, Routing",
"images" : ["images/bill_of_materials.jpeg", "images/manufacturing_order.jpeg", "images/planning_manufacturing_order.jpeg", "images/production_analysis.jpeg", "images/production_dashboard.jpeg","images/routings.jpeg","images/work_centers.jpeg"],
"depends" : ["procurement", "stock", "resource", "purchase", "product","process"],
"description": """
diff --git a/addons/mrp/mrp_view.xml b/addons/mrp/mrp_view.xml
index 3177d578997..0449f590127 100644
--- a/addons/mrp/mrp_view.xml
+++ b/addons/mrp/mrp_view.xml
@@ -686,8 +686,8 @@
-
-
+
+
diff --git a/addons/mrp_operations/mrp_operations_workflow.xml b/addons/mrp_operations/mrp_operations_workflow.xml
index a728ee6f3a4..8d022558cf9 100644
--- a/addons/mrp_operations/mrp_operations_workflow.xml
+++ b/addons/mrp_operations/mrp_operations_workflow.xml
@@ -1,112 +1,106 @@
- # -----------------------------------------------------------
- # Activities
- # -----------------------------------------------------------
+
mrp.production.workcenter.line.basicmrp.production.workcenter.lineTrue
-
-
- True
- draft
- function
- action_draft()
-
-
-
- startworking
- function
- action_start_working()
-
-
-
- cancel
- function
- action_cancel()
-
-
-
- pause
- function
- action_pause()
-
-
-
- resume
- function
- action_resume()
-
-
-
- done
- function
- True
- action_done()
-
+
+
+ True
+ draft
+ function
+ action_draft()
+
+
+
+ startworking
+ function
+ action_start_working()
+
+
+
+ cancel
+ function
+ action_cancel()
+
+
+
+ pause
+ function
+ action_pause()
+
+
+
+ resume
+ function
+ action_resume()
+
+
+
+ done
+ function
+ True
+ action_done()
+
- # -----------------------------------------------------------
- # Transition
- # -----------------------------------------------------------
+
+
+
+
+ button_start_working
+
+
+
+
+ button_done
+
+
+
+
+ button_cancel
+
+
+
+
+ button_draft
+
+
+
+
+ button_cancel
+
+
+
+
+ button_pause
+
-
-
-
- button_start_working
-
-
-
-
- button_done
-
-
-
-
- button_cancel
-
-
-
-
- button_draft
-
-
-
-
- button_cancel
-
-
-
-
- button_pause
-
-
-
-
-
- button_resume
-
-
-
-
-
- button_pause
-
-
-
-
- button_cancel
-
-
-
-
- button_done
-
+
+
+
+ button_resume
+
+
+
+
+ button_pause
+
+
+
+
+ button_cancel
+
+
+
+
+ button_done
+
diff --git a/addons/point_of_sale/__openerp__.py b/addons/point_of_sale/__openerp__.py
index 9a39871f0c0..9d985d40408 100644
--- a/addons/point_of_sale/__openerp__.py
+++ b/addons/point_of_sale/__openerp__.py
@@ -25,7 +25,7 @@
'version': '1.0.1',
'category': 'Point Of Sale',
"sequence": 6,
- "summary": "Touchscreen to Manage your Shop",
+ "summary": "Touchscreen Interface for Shops",
'description': """
This module provides a quick and easy sale process.
===================================================
diff --git a/addons/portal/__openerp__.py b/addons/portal/__openerp__.py
index 70791995958..6dd22a46ca2 100644
--- a/addons/portal/__openerp__.py
+++ b/addons/portal/__openerp__.py
@@ -22,18 +22,20 @@
{
'name' : "Portal",
'version' : "1.0",
- 'depends' : ["base", "share"],
+ 'depends' : ["base", "share", "anonymous"],
'author' : "OpenERP SA",
'category': 'Portal',
'description': """
-This module defines 'portals' to customize the access to your OpenERP database for external users.
-==================================================================================================
+Customize access to your OpenERP database to external users by creating portals.
-A portal defines customized user menu and access rights for a group of users
-(the ones associated to that portal). It also associates user groups to the
-portal users (adding a group in the portal automatically adds it to the portal
-users). That feature is very handy when used in combination with the
-module 'share'.
+A portal defines a specific user menu and access rights for its members. This
+menu can ben seen by portal members, anonymous users and any other user that
+have the access to technical features (e.g. the administrator).
+Also, each portal member is linked to a specific partner.
+
+The module also associates user groups to the portal users (adding a group in
+the portal automatically adds it to the portal users, etc). That feature is
+very handy when used in combination with the module 'share'.
""",
'website': 'http://www.openerp.com',
'data': [
diff --git a/addons/portal/portal.py b/addons/portal/portal.py
index 399377e8ccc..2c8b2db587d 100644
--- a/addons/portal/portal.py
+++ b/addons/portal/portal.py
@@ -32,7 +32,7 @@ class portal(osv.osv):
_name = 'res.portal'
_description = 'Portal'
_inherits = {'res.groups': 'group_id'}
-
+
_columns = {
'group_id': fields.many2one('res.groups', required=True, ondelete='cascade',
string='Group',
@@ -53,40 +53,40 @@ class portal(osv.osv):
string='Widgets',
help='Widgets assigned to portal users'),
}
-
+
def copy(self, cr, uid, id, values, context=None):
""" override copy(): menu_action_id must be different """
values['menu_action_id'] = None
return super(portal, self).copy(cr, uid, id, values, context)
-
+
def create(self, cr, uid, values, context=None):
""" extend create() to assign the portal menu to users """
if context is None:
context = {}
-
+
# create portal (admin should not be included)
context['noadmin'] = True
portal_id = super(portal, self).create(cr, uid, values, context)
-
+
# assign menu action and widgets to users
if values.get('users') or values.get('menu_action_id'):
self._assign_menu(cr, uid, [portal_id], context)
if values.get('users') or values.get('widget_ids'):
self._assign_widgets(cr, uid, [portal_id], context)
-
+
return portal_id
-
+
def write(self, cr, uid, ids, values, context=None):
""" extend write() to reflect changes on users """
# first apply portal changes
super(portal, self).write(cr, uid, ids, values, context)
-
+
# assign menu action and widgets to users
if values.get('users') or values.get('menu_action_id'):
self._assign_menu(cr, uid, ids, context)
if values.get('users') or values.get('widget_ids'):
self._assign_widgets(cr, uid, ids, context)
-
+
# if parent_menu_id has changed, apply the change on menu_action_id
if 'parent_menu_id' in values:
act_window_obj = self.pool.get('ir.actions.act_window')
@@ -95,7 +95,7 @@ class portal(osv.osv):
if action_ids:
action_values = {'domain': [('parent_id', '=', values['parent_menu_id'])]}
act_window_obj.write(cr, uid, action_ids, action_values, context)
-
+
return True
def _assign_menu(self, cr, uid, ids, context=None):
@@ -131,26 +131,26 @@ portal()
class portal_override_menu(osv.osv):
"""
- extend res.portal with a boolean field 'Override Users Menu', that
+ Extend res.portal with a boolean field 'Override Users Menu', that
triggers the creation or removal of menu_action_id
"""
_name = 'res.portal'
_inherit = 'res.portal'
-
+
def _get_override_menu(self, cr, uid, ids, field_name, arg, context=None):
assert field_name == 'override_menu'
result = {}
for p in self.browse(cr, uid, ids, context):
result[p.id] = bool(p.menu_action_id)
return result
-
+
def _set_override_menu(self, cr, uid, id, field_name, field_value, arg, context=None):
assert field_name == 'override_menu'
if field_value:
self.create_menu_action(cr, uid, id, context)
else:
self.write(cr, uid, [id], {'menu_action_id': False}, context)
-
+
def create_menu_action(self, cr, uid, id, context=None):
""" create, if necessary, a menu action that opens the menu items below
parent_menu_id """
@@ -169,7 +169,7 @@ class portal_override_menu(osv.osv):
}
action_id = actions_obj.create(cr, uid, action_values, context)
self.write(cr, uid, [id], {'menu_action_id': action_id}, context)
-
+
_columns = {
'override_menu': fields.function(
_get_override_menu, fnct_inv=_set_override_menu,
diff --git a/addons/portal/portal_data.xml b/addons/portal/portal_data.xml
index 2cba3a1945a..74e08bc5343 100644
--- a/addons/portal/portal_data.xml
+++ b/addons/portal/portal_data.xml
@@ -1,13 +1,42 @@
-
+
Portal
-
-
+
+
+
+ Company's news feed
+
+
+
+ News
+ mail.group
+
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/portal/portal_demo.xml b/addons/portal/portal_demo.xml
index 1776493eb32..e5b5ea2fe70 100644
--- a/addons/portal/portal_demo.xml
+++ b/addons/portal/portal_demo.xml
@@ -2,18 +2,58 @@
-
+
+ Demo Portal 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MTE4M0E2RkQ1MjM3ODdBREI1PC94bXBNTTpJbnN0YW5jZUlEPgogIDx4bXBNTTpEb2N1bWVudElEIHJkZjpyZXNvdXJjZT0neG1wLmRpZDoyMTUxMUFDRjU4NzBFMDExQjE4OEJBMDcwREM1NDg5MicgLz4KICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6MjE1MTFBQ0Y1ODcwRTAxMUIxODhCQTA3MERDNTQ4OTI8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICA8eG1wTU06SGlzdG9yeT4KICAgPHJkZjpTZXE+CiAgIDwvcmRmOlNlcT4KICA8L3htcE1NOkhpc3Rvcnk+CiA8L3JkZjpEZXNjcmlwdGlvbj4KCiA8cmRmOkRlc2NyaXB0aW9uIHhtbG5zOmRjPSdodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyc+CiAgPGRjOmZvcm1hdD5pbWFnZS9qcGVnPC9kYzpmb3JtYXQ+CiA8L3JkZjpEZXNjcmlwdGlvbj4KCiA8cmRmOkRlc2NyaXB0aW9uIHhtbG5zOnBob3Rvc2hvcD0naHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyc+CiAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICA8cGhvdG9zaG9wOklDQ1Byb2ZpbGU+c1JHQiBJRUM2MTk2Ni0yLjE8L3Bob3Rvc2hvcDpJQ0NQcm9maWxlPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiB4bWxuczp0aWZmPSdodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyc+CiAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICA8dGlmZjpYUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WFJlc29sdXRpb24+CiAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgPHRpZmY6TmF0aXZlRGlnZXN0PjI1NiwyNTcsMjU4LDI1OSwyNjIsMjc0LDI3NywyODQsNTMwLDUzMSwyODIsMjgzLDI5NiwzMDEsMzE4LDMxOSw1MjksNTMyLDMwNiwyNzAsMjcxLDI3MiwzMDUsMzE1LDMzNDMyO0Q1MDVBNEM2MDlBQzIyNUVGMzcwM0UwMTE0NkQ4RTYzPC90aWZmOk5hdGl2ZURpZ2VzdD4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24geG1sbnM6ZXhpZj0naHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8nPgogIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogIDxleGlmOlBpeGVsWURpbWVuc2lvbj4zNzA8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogIDxleGlmOkNvbG9yU3BhY2U+MTwvZXhpZjpDb2xvclNwYWNlPgogIDxleGlmOk5hdGl2ZURpZ2VzdD4zNjg2NCw0MDk2MCw0MDk2MSwzNzEyMSwzNzEyMiw0MDk2Miw0MDk2MywzNzUxMCw0MDk2NCwzNjg2NywzNjg2OCwzMzQzNCwzMzQzNywzNDg1MCwzNDg1MiwzNDg1NSwzNDg1NiwzNzM3NywzNzM3OCwzNzM3OSwzNzM4MCwzNzM4MSwzNzM4MiwzNzM4MywzNzM4NCwzNzM4NSwzNzM4NiwzNzM5Niw0MTQ4Myw0MTQ4NCw0MTQ4Niw0MTQ4Nyw0MTQ4OCw0MTQ5Miw0MTQ5Myw0MTQ5NSw0MTcyOCw0MTcyOSw0MTczMCw0MTk4NSw0MTk4Niw0MTk4Nyw0MTk4OCw0MTk4OSw0MTk5MCw0MTk5MSw0MTk5Miw0MTk5Myw0MTk5NCw0MTk5NSw0MTk5Niw0MjAxNiwwLDIsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsMTYsMTcsMTgsMjAsMjIsMjMsMjQsMjUsMjYsMjcsMjgsMzA7MTM3NUU3MDc1MjVBMTE0RjBBRkNBNzg4RTM2QzAyN0I8L2V4aWY6TmF0aXZlRGlnZXN0PgogPC9yZGY6RGVzY3JpcHRpb24+Cgo8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSdyJz8+Cv/iDFhJQ0NfUFJPRklMRQABAQAADEhMaW5vAhAAAG1udHJSR0IgWFlaIAfOAAIACQAGADEAAGFjc3BNU0ZUAAAAAElFQyBzUkdCAAAAAAAAAAAAAAABAAD21gABAAAAANMtSFAgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQAAAAM2Rlc2MAAAGEAAAAbHd0cHQAAAHwAAAAFGJrcHQAAAIEAAAAFHJYWVoAAAIYAAAAFGdYWVoAAAIsAAAAFGJYWVoAAAJAAAAAFGRtbmQAAAJUAAAAcGRtZGQAAALEAAAAiHZ1ZWQAAANMAAAAhnZpZXcAAAPUAAAAJGx1bWkAAAP4AAAAFG1lYXMAAAQMAAAAJHRlY2gAAAQwAAAADHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJUUkMAAAQ8AAAIDHRleHQAAAAAQ29weXJpZ2h0IChjKSAxOTk4IEhld2xldHQtUGFja2FyZCBDb21wYW55AABkZXNjAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAA81EAAQAAAAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAG+iAAA49QAAA5BYWVogAAAAAAAAYpkAALeFAAAY2lhZWiAAAAAAAAAkoAAAD4QAALbPZGVzYwAAAAAAAAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAAE6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4AAAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAjACgALQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACpAK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIBOAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHyAfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oDlgOiA64DugPHA9MD4APsA/kEBgQTBCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUNBRwFKwU6BUkFWAVnBXcFhgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1BwcHGQcrBz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJJQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtRC2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCbELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJkEoQSoxLDEuMTAxMjE0MTYxODE6QTxRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJFmwWjxayFtYW+hcdF0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqeGsUa7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7pHxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgjZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgNKD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4soizXLQwtQS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHyMioyYzKbMtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w31zgUOFA4jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6gPuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJFVUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwqTHJMuk0CTUpNk03cTiVObk63TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19TqlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeSV+BYL1h9WMtZGllpWbhaB1pWWqZa9VtFW5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9homH1YklinGLwY0Njl2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3a09rp2v/bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5ifsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASIaYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJnPedZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWpphqmi6b9p26n4KhSqMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4s660JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/er/1wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXMtc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbnH+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M8Fjw5fFy8f/yjPMZ86f0NPTC9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23////bAEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/bAEMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/AABEIAJYAlgMBEQACEQEDEQH/xAAeAAAABwEBAQEAAAAAAAAAAAAEBQYHCAkKAwIBAP/EADQQAAICAgIBAwMCBQQBBQEAAAECAwQFEQYSIQcTMQAIIhRBCRUjMlEWQmFxMxgkQ1KRcv/EAB0BAAEFAQEBAQAAAAAAAAAAAAQCAwUGBwgBAAn/xABBEQACAgEDAwMCBQEGAgoBBQABAgMRIQQSMQAFQRMiUQZhBxQycYFCFSNSkaGxJMEIFjNDcoLR4fDxF1NiY5LC/9oADAMBAAIRAxEAPwBpl9TsR2bvwLGOQdkD9H8f481CAQD8gqCAAQRs/WYxwspJMrLigy3ZNk5ojNc8jxWB1cfTJ4d7yGJNcfJHnji/4rruOfcZndZX4LjYmQeGMGO2uyQ39QVYyqlWbZ+Co8ka6lbxSNe2Zq20TbfqJFHkkkDHFfvyHoQIwd6iTKkFzubBJxWcVkHkUOK6qt+6H7yqnIpLvAvQbhWBxMZnuY3kXqRbo0Hv30i92F6fDkhjCQY6K0Gn/n8xn/mnVDj6sGPLXsg/p9IFctOwdhwmZL+7bmLvQOEZgi1fIUdeVMXdo3YAfpQu6IgPjaBuYf8A7azglrUXVpksWbN2eTMZ+rdyT2ZbOSmlMeQmmsSS+/KblzIyzkTq7+57U0Lk+4ZC3bsjyvrSbBsjKjaQtAxjNIDSAchaCK1ZvLEkj+jGxAllQuLuzbcGxZY7BRAA2n25JWzQyvJDRRocbmsfFLHW96GvIa3eWLr2JWGSvai6KfasQTQJCyzFBAsccxkZDgmi6F1BBuyQprdW725NcEkjOFPRQZUG1WU4BsFTtHAJGWIBrgH7XmkDclrR27B7fjZlVrVjbIolRHjdKik/0WMS2JbE5Kyujg+51KIPmcsbHA27Q15DsCSSBxaoeAdoahYy06i2VRd1uNEKCcWoxtokbj/WBQBGSQx5Ge29ha0DP7T9akMatplEjpIxK/1CzddovZezL2UsAe3t0QCbJNudx/Tiqsg0psHyCR00ypYpSKW2YDz8Ei7wCbBqqySSFG9hj4o1FE1UkVA4EQrv7hHUDTOzAMxI0Z3CJvxINsPXDvncSSDjcNu0HAObo3uFih/UR5bt46XaqAk4yCxNY9wUk/IFk5q6HQZ75Ud5HVVIKqLFeNVkOiYxsO6skqA+04kQF42Idu3REKKwQWJDAjPtzkgUT480CTQvNPUQAKY7qLEMeBd1YH70t+POOnG4b6mf6bs41crBLNhqE6shrntPVjaEwqldhIq/pYCQ705w6x9A0AjYmGx4yh9yhqamC7r+OVNGifm75sdPRSRxMrbbAItTfg5zVC75F4s11J6lnRyeSfI45p7MVcL2ru0paBWjLxH5Oz0O4HClJWH4E6/EDZJF7JArYJBINXySKF8cA0P2s9PTOJpGkVnVMbUUgqATXPJqhubk4JF9Lj0tp4jJZC2mZhEleO52lYkJKo89lDkNIGUsRpf7SfP76+07KFkFqhJY0QMsQRd3WV5sg+AOmVBUMdoJuxuyciwQaI+9efGcdSZbjXo81uj7JvmSO1X/AE6tZufhJ+pUqV7b12dtEa6ks2jrx9LtixoKQENkDdkquQbFAV8gDnk30wu8Kd9CxbVf7Z+Pi7q6HGetfNpmFq5tgdWJGiI3sKrygkAb3+XXyCfG/C9SfqmSggMBgCgrEGsngkXm/jyM9COF9NqW/a33Fk1fzZsZqweLwD9DMPbGhox77H/b/wBgefyB/wCdA/OtD6YmP34LA/GCfP8Asfj4469W9qULO1RXzY/3H3xX369xI8nhdN2lEX5EAB2JIYjbaGnU/J1seP2P21pVtBuWyCfFryD/AKVzefg9KLBSL5yQD8j7WP8A4PFdKKoRDMsIZJGlgd5RH/8AE6SGEpJ4/tLAMmgRphrR+X9Mm1wNwIkU2AaIK82a8f8ApkdNMdoJ2mwwNnzZJIBv4O3jj7kV3klM0sku12ZCP2ABCxgBf30Pj4GwCfG/D5hKzKxIbe24gWCBgXzxYN5zwLo24JVeNlogKKB/8pqsk34+M/IrromQNGBJJEZ/dboo8AKUG32B5DsSHIOvnegCB9PRptdpFa9wrkggXYHH/wAsdBuqlI/UABAYE+WN2MYwoIW+bx9zmenmkrz14ooWmMx20oZeignsCw8b8DWgNEAjYB2Jv1AyHNAeCDk3VCqP8ngWPt1PutELf6lB3YzkA/H/ANY/et374/uKy3F5bHpJx+wMUDUqX+X5COXd3JVclE0lPB1IgCI6bQ+1ayPfubqPHSkgECyJcktBCJow5olnZUWiFpFJdm8+VFA8cDkhidzAdi3vIUe1SSFYhVO6z7hRsnAU5N56qSt5+1kpusuSyqQSnax3bEUkbrKGQbhhljgUExtGIUFgH30iEdlZX9uYVViBAWJn3ZMYqvF025ybPttqqhYZsxxMs5a3faGUBSyMGUn3WLAUfCi1W1sVZAyLHXGeSRZ6wgihCtLdsMIolYRf+3Cr+nqJcIfu0Sri0AliIVgS/wBCNN7tuWN4CCrK0dzMxsoKpKJasnbYUFxwgKzoy2KslmO2wFCqrWqvgWoERDEkiQOpJrBGuHrSdvalmmchpo4PbDl5Nn2xGGl/pf8Axjuzf+MhkH4qxM7SOM+1QQFB80DZoAFuf2BA6XGpQbkFSG1DbVFHybGCQCckHBObsA4xeHtZCHItXpvYmp4a9fuSQxFxUqxVlhaeaRR0jh/WWqsBXsFmtWoIQxmswoUuyxqm6gztsU58MAwJIrPIJ4AOKB6fVHclU3OES3YH9Cx5s5wAzRAgf4hi2PVrf8LX7M+K/cSPVbmHKyLlHhMnF+PrjovdhJt8rq5zISZYTJ2VZIjhkqRrI34w2ZkiCPJ3Wj/WX1DqOxnRQ6ZFMmrEkpkZlIQRvGFiAx+oSWWvFDjb1e/of6Z0ffDrdVrSPT0hhh9Mkr6jzRtI72owY9oU4IoE1ZN3F47+HT6GYGaP9FxaJlEPWzbtJj7d23MyQdy7W6U08WjBGIvYdFEZHho2YnLtb9c/UGoaRXcxoz2FS1VRHdEEPmuaOCQWYUca9pfof6fhRWj06KwH6XCylt65YTNGdrb/AAK24/TjpsvVz+Fp9tvPalw1cFa43lbMc4hzFCxL+tr2pVX+vLKHjjsVTMpmlpWIpYejlqa05x7jP9v/ABB7/pGVWkTWQqob03VUQg3agKBWCfd7R4KupHUd3D8POwa0SCOKWCVrYTQsQyObFbG3A0wYkFdpUGyMbs7P3YfZ56jfatydMRyJ487xHNy2Rxbl9CMw0sq1VBJLRuVS08uLzEdfdh6c8rR2KwmnpWLsVS5NDs3079S6H6h07SQJ6Oph2nU6WU3IoNKrRsKSSJmG0uCXVqEiR7k3Yx9TfSeu+mp0TVBZdJqCfyuvjsRykG2jZATsmRCpKWRglS21kRsPRP1Abjl8Yi5O7JPNHXhjSITmzRncRpFGYkDxtj53inEkolRKLWfaWtBC2prVRtt37Sa9wyfcKJXyP1hXUWRRU0LG3qrJasUN80aJoA+f4r+bNA9SOoZ446jlP0zOly3bf2wjlWiHaQs7SDY0rkDqpDMG2DpQwjNGqushdRtLk5HN2KPHBv7DH8FTyqmOLBFeLUAE+Bir+Meckuh6cSySci4rgM7mZhY5FyPA4+vPNHLYasMlmKVD3FjBUSGESvIE9yIya6e7GOzKWDt9UjaQFYKOP6ML8VfnN+OOht4UMXa/a3OeMgfH+1c11t3sSKZZ9nTvK6rttlSzsSdE/l4Y7Oxsk+R4Ip70yKCdqvgYPIyOMiyOfsfPQUTWKAoDcQOf6hQz58gmv44PcSgQsV05ITz41/YB8bO1AOyDs/JP+DHsCCQxuyT/AP2z8DBNkCvPSwbRCLFKAKObFnGLHNXef9xuNkYhDsa/UxiQt8jfVR5bwAfk9RrY+Tr6KgDpG4qtpJarsGgTxVCybyDZ8Z68BDFGJNqKWwSPGf8AXzwa+3RhVliisWvz9yyJrAdepVRC06iPTKx7EhCzeAFChhve/p2BlUPm2omgo9tsOKF2R+33+Ok6gURmwW+2KFGvizePOPjoWGBkb2lPtmU9A/zrQ0CNEfJXR1sAn4J39PMrOqykkOgpQpG0++9xr9RwBt/2oW1GwVjGopWJJYmmAAs8EAeDzRocV18uzRwOYHX3FVy2gFJDMAP3VlA0ujr/AIG9qR9PSggew7aNHxmv2/38V19FKJK3KCKJAK2VyMWT9/jIHjrNjaqyGoK8DssoZY45FYB104XYZtBd+fJHkbI0R4mwoDEgX5Px4N8f6ngjiupygwCsRQs8ZJAb+KyTyDiq89Zl/uR9QLXPfVnn/J/1vvV8vynIfy+WKSGtJBgsUThsCZJIo4JJHgwtCoPds+xKXkMa/qHkb3bNooBHDGpUKVX3XZBDDfWDfLVtUFjtsgEAdQutJDuSwO81SgBlVeLKkELhTZxXnhS0eOzVJHSstQyySv1gMTma9KCvSKOB5GUKHTfuRsKtEmazGwi9+NHekiclmDbbv3G1Cg5ANYBJ4YW4NAY3dJikiIAI3MSpWssRZahRBCj9RrYBRrbnersHHlslkq0EsUOOrQf+7eCpPAZUEP8A4YGZKbwyREv7jCNq8kbtOys7O7WGTGgT9YZqVS7Koo4BO1TuQggckgkbioLUCEeWRxCFCKTuYKwa6sqT7BuBBLXutAaUsoJZfz1Afcld+kdPu/ZNsiykxuWVgSGYBKyjqT1mVTJ19tl+o0g76IOLGD973H7/APM/x1Ioli/CigMEFic7avijYNUxwDyJ2/ZB6fQeqHDPvB4tWxYv8qP2v8t5VxFwSJza9NPUn0d5lnsRFF7qLI+TxUSUa6D3HtItmFF8NHLW+/ar8rP2OWVysA7zDBMSMbdZou4RRu1E/wDZvTXwNqtd1Vk+nNKNdF9QQogbUf2RLqIeN7DR6nt88kIBwTKoUrndsL8AkGyf+BDyylRqfdRw97cMWTmf0kz9eo7MTZo0j6i4nI2aoO+xqS28THb2Aq/zCiNhu4jpv4nesR2mVVJRjrYGIGA+3SlFLC6HtlZaDYVjjF3T8L2V37vAzAGIaKZaH/aCtQsj2RYCvs5A/WuB4vzlmjkjb8VLOrCPYCaBILAsDvrrqBs9htAuvxByJY5HUszVuLCrLBtqYIJC48/a8/HWwCQK4RaDKBu2mwQvkEZJPPFc+T0hsqocSKoUMpYq3VVXt2A7DqxDbIBYHRUvsaZvobZRIXIrJW7vNWDgA0aomzjHPRyVtsth7zuI5/pJxRx4JwDZABPUGfun9IuO+unppyn065JGsUOUqe7isrGim3gM/UVpcPmqo0W7Y+97TSQArHeom1Smf9NZkVrH9O9xn7RrtPrICxMbASxsxCzxMdsyMeRuSyCSwWQrIoRkVuoX6h7Rpu9dr1HbdVSpOKhmpS+n1KAnT6mPcTukjlAIVtqshaI7UZw+N7mvHc56dc1z3E+Q1P5dn+J567ictWV0lWC9jbrwSSQTOjxzV5vbjlo2xF+ns1GrzvDJHN0bp3Szw6zTQ6qBy8OoiWVG4LJIik7l4UrZQqf0FCopRXXKWt0s+h1M+l1KmPU6aaSGdCbUSROUbbhbj3AtGQtFCpAo0JacVsvyTHQ5pYvbW1Gt26ihQsLSdJHVFEk/SNzIrIGlmKowDOzhtALEYfVUsMyMVI5q6C+Dj5+P8umpCZmU0R6aWSCCtnO7gED4F3+4A6kLxGzjcz6h+lFqu0Vc1/UHhkSPINSOp5Hi9VyIwfx7MOgOgrnyT8lG0gOSQcFjXgC7/wBOLq8A1z0MwKq5JsU3+Xu44+Kz/HW2qQiSd2JBIcn/ALVZG3o/kN70x/c+BrXxVGCsqst0pK1QBrjOcVXH+XPSUSgwBreWu7vK7fOOcCwPNjx1+VghZGBI6NvyQPOwDoHqW6kg+PGwQ37/AEK4J9Q4ULZBzncB+rPH3F0QTnjr1K2Gh5JB5yDRvND3D+OOeu1SeRHKdSVIMh/zskdvAI1tlXXwSW/4P0yjsG9p85skXRXBxVkHwTwRz0tUG0AmhgC+OfOR5APnF3XBERzyfriWADtPLLKvx4ZI+qkA/BK9gCfx2Tskn6WrEMKNH2iqN4AGDX+V/ufull3Ag1VDHBOQcHA8Dn9/HR8kweQgEgBCw8gsG7DWuu/nZ2d/A89m+pUkb/TrlN1BhdhlGLPABujnA4IyCylaa6Iuvkc85ocfN/er69hQ8rMfLdFBLnY+WPgKNk7JO9n5/wAn6QrMHZFyReLF17aLWQLu6rgEfcBQ2hbYlWO3N/q/UDWOPaB444x1m+xNiK+0BZgJDIheNXLMV9wL11tSu9gg7UnYP/BsFMGYm9lDI45yQT4/evFWeJxWUD2glrItixBwTdXxgWABi+L6yR83r33zV9Pamlgx+SuUoImeR4oY8fZ/RLE7ydbLmOOsqbtEyAxBYWid2U3aN1HkAlFAJrmgxAu9lsSTt24oHgDqt6mKV9rHcw3MVU0UwSpsWDgirIxWB5AniOKl/WtkMiXZolk6RJG8E00axtI6yM8ZRYUCsf6sb+2qsW7xoIgJq5rTZHYBos5IIAurAByNxGQxskqAbPRei07bt8i+8AhVoIwXBDWQuBjFHkG8ZkDxapAkEtqOtFX7lE/JITYlWPse08yRrO5WaRykczzlAeiSSKfcEdliFdnIOVJ9qMSVACLhQBliwIySCQBXUpEFLDaKX2hmNbmBFk7iM2bN3kC8AZWvJOJX6XAOKcvWvKtDlHIeS0oZVVilifDnHRRLEGd2lKM90t10rWEaLyYwAIZ1m1UsO4B4Y4XcAV7ZFJFYGao/NUaINmQk0kseig1TB1jnknQNzRVkQEAeVJlNVTMCM7aE8v4a2atemPqlyfkEvYU19G/VPG5GsymSO1Hf4fkeUSR+yxMUryRenTooZBo168bvFELBep/WEY1Xb4oY2/vT3DRMGWgw26mLSlmyDROsWgvtIDVTAnq2/RLx6TuE0ri1/s/XKylmG4mGScqBYBv8kyryQwXcVWj0f/w7c9yD7ffvSwvCMzFPBB6kSXPT/LwIW/Ts2ary5XAETiNUnFTM1MajSxq0ErGYwBlkjsRDfWGmh7t9NPqlIP5StZDuw4VG9KTmipdHdtrLYJUV+non6Nnk7N9Trp3Ubdbu08gBsD1R6kXA2tucKq7aTawKWSCNUquIa0UZLR9/x6lfyIUAr8KejlWKgE68yHf7/WAuArOMlQWA8ZJraSxNHhas5oDPW+RbpXZgOTQbK5JJBN1zzQAJ+BjpM2dF2Vis0fypVtqjEtvZQHyAFDAoQey/jo+fVkIQIRRG7ahu6OOeTjGcHokxttySSMnaxoDxZwAACaz58WB0zvOatBa1m7cuVadGukn6uxZmSvBXjRmklaSaZ0jQJEG8kLvpryV39G6feXWOFGlYgCo1LnIFgDBP6vcLIArIWiG9QAsTPKRCgKsHkICjbe1y5KlVNFrLAVZJI9oy7fxSeE8Bb1D456remvJOO8mpcwpWsBzf/TmaxuTOJ5Xxz24sbfytarcnlqnkGHkiq1WhijrS2OM27Fpo7uSWW5vn4f6nXfkpe36/Tz6dtM6TaUamJ0EmnnILrAWC7hFKGLKw3KdQu1dkZA59/EjQ6P8AtHT9z0U0E6a6N4dU2nkWX0tTAQsMjqCSonipQRYYQOWKSyKzRS+2zk9bIVszwLJX2q2ZFeXDjYY2Krsnv04y4b86zr70ehuSEzNsrXIF018WypgoNim20QGGCaPjNePOCesxindVmTHu3CqH6M8YBIsGj8jGb6mp6X+mWTn9SPS2A2la4/qLwd6dZWSNJpf9T4o14w8oSNTNKEi3LJGiMS7uiKfqOLj05QRkxP4GBTXiquwASRjixd9elAVOWyjUDXGR8Eg/v+4zxtjIRZHVW0WYkkgn/wAjswBA+PwCLr5J2QfP1TJmKjaoxuZmNgUbBXnixVfPjNnpIxwDyT+xOSbPgE8eMAAY65a7O6+NsygHxvXjRA/yCG/Hx5bxvWw0ztgsPaSCwBGQBtI8ZIYmgQcXdZ68G1Vc0QBdCycmjQyfJOM/PFdfWkPvP7eixYxhdAdQBvR0OpBBI2Pgjx5I0Mw2yVdYXHyWRbJ+bs0eBWCOOlgExirznIugM+fg5zRJ6NYqsst/K2u+v0lWOx7YI3IoMcUhVdaJLSqAD4HVv7SDqTEStvkUC4o1lIz71AQGj4INg8V56b9QBYxXuZirEjJIJ8YrjkYOTVVZtxSWOfNx17URlWeCyF7BeitHDKwLdyTpG8L87OvnZ+vICZNQL5ZHo22CVYLVHkGseRkDA6bnX2WCqhaJ5o5o+DRzk0KAJ4oj2ziCaWJ9gxu0ZPbe2jPU6/bXjxrx438n6HjLrI1tWGFsMmmA81fHP+Xnr4xhvb5WsihisDybsk/z8V1mV49xSHiUNmdMpkLjSWFmeS1aknAQDbonukkKWAOt9T42Trza0LybwzMfYSMFbxjJ++fPk31NbFT9IGWsXWCDuoWattoUVm2PWZD1OxfJMH6mc54zBhprSYTn3NMWciabRpJJiOT5jGlY5NtKq94HaZDI0Zk6942VFP1bYnhMSyNKoLRpcd5Fopz5BF1jAJ+buG9aYOYooL9NnTc1KoCuyg15LgbmNgWSRnomxWNzssimz+kxFcSIJoIg9q1ZSORG/TyWWREqpIyqXKTSyKyKDE3iP6akeACqeVqtGchY1u13BAx3NVgAgA7snHSwmoYguY4l/VSe8vtP6aIG0E8nPFVZB6lT6VcAzvqJn8Jw/jdK5kL2ZyNPGqldYllY2ZtswaT2K6M7pI0KSSJG61zG/wCRXUPrtbDooJdTNIqLHGzKZCWHtF5Qe4gteALIFgc9WDtmgk108WnhjZi0iCkAG0PbWN1KLAcJeCV2miQDYh9x/pDjMFhuK8Nwt/H2cV6P5qhwSri6SRxwZfm2S4xjc/yzktq6A1228WfzsGEFedYocbDxnKWFMT2cs1mndm7lJqHk1U0bLJr1bV7pLLRwLM8cERGFUFIjKGvJmiTAWJRbO/aERRw6OFlMPbZE0Y/wSaiTTq+pmumdmjkcwKoLKiad6q5N7DcU5BylMhe476UYie1LknKXMrLYfGQ5njs+MyPDZcBiBHRsZG4/KpecWcQUo1hNcqtfSoYYqFrJ0Z2WKBohJrSxKANsFOY5d8eojllQlQEgOmMpDsFDiMk/3i7ofSTTLIyaUbTISrFbQyxGGTTCJSoLD8wmoZDtB3Bto2bWYSq9c/tY+8jAcTwvqwuP9N5ea+n2cn9S4k9N6uVXmWHkmGEtyYOi0cpx+QxXCocHQlxeJxqqlI4+5Fg3yKXBBbquj+ofp19TL29vzkel1sSaINrGjGlmAMyLISW3xPqjOQXcAvvRmCemSly7h9Od+/s+HusUmgk12inbXlNGs35qyVdooQy+lNHpY41KLEbLJUXqOwXqdv2mffF6w+uz4efn3B+NUcJmqc8lXk/HL0sNebJUzNBej/QSZC+8Xa5WlRopFrNERE0QnhsROaR9S/THbO1CRNHrdU08Mqo2m1CeoQsg3C5AiKQqEOpZySoNjcpHV/8Apj6h13dYIp9To4IIJoxs1OnkXa7Rkoysu9hXqBxiiTtI9rKTY3luR06WKs3ySAsUkqL5G9KW0FQbAJXwyqzbBBUD8hTFhJoFwWwQTW6waWuLAs4I8gmxzannZVBIpTmh/UBwTge0eaIBsDPVRHrj6dZr7h+cXLHqT6qX8P6TYy0j1eGYSxcmjs1UZ/bjOOjkSp/MbSyPWjtTRXbftGIsoZWi+tC7F3GPtcKw9v7dE/cHX+81sipYAw4MjsW2Dml2ogutxoCm980M/c39TW6todAsigaSLLMzfqcqhVSxKlbcu6ncCqgV1E77m5vsgPpFzL0W9N+O8EwPNsZgbOW43lMZmcNe5hHyfjdeTMxw5WdbM120+cXGPjMvDLLaeCvavFYY70MZq3Psy/Urdwg7rrNRqdRppHVNRG6TDTvFNtjLKrqEG0ESRuAEbYp3GNs0L6i/6vSdu1XbdANHHqY4mk04jdWnGoiUyWxDFt0u305AD/3jbaIs0x+leKkn51Uu1JRFNh7mDyrhpREz4x8xBh8j7Y0FeeNMtXtvHIR0pV7uttqF9K1Eh9HYQrb7jNg+2TYWNWTxtoWTnN+eshUb3Y4I2Rm+CQH2kgcm7TNnBOc31an6C+oC3PWL0fq5I9bMnqx6bVKzr5T+tzbAQRsux2Ll3XahW0GJAI+orUaYpFJIhsejISCcmgzMLFk+bJP7fAQzsQ+01SGgADi2NAn7Ch985xezQTye9Ku26l+utDQ6syrvwCP9p8j5HyfqkSkEAkbd1Ekj74v7jxya8fCYXJLEmwHoVXBFkUfFADHN4GCR10V8nyS2/kjzsDY1oDwNnWtb/wA62OzAE5BFNxxbIVGBYvIPPjBNGiEwWWuTZNjnjg3dgYxxfxjtC/UydkLOVX2yNjTb7ed72Py1rf8Ayf2+m4z7rYBjtoFhZNFfJrNCz+3npuUG9oJUbgbH3BBr4+L/AIvoJPZmsXUhUtHJYmjib8ugQF1U9ySoAIOwCSAQCQNb+nLZnIv9RIJAx+xr+mgCRXP+fXgXYoJs1lSQefkXxWbJoDPHHSw46sq52vAHUiBLMPudh1MixSAabR7Lrrt9bKjud7P0TpQxmVFKkjcAQALIwTu+ALaifF18NzMPRcsOaJFZrcAQB9754ujVY6DXJHa7KGIaI92jddsH1IQ5U/uoYnRHz2HkkfQ8jOGNreWAI/8AGxv9jyDQ/wBunRycVnOQf9gPFeBz831nBgt/zCOzGzMVjP8ASiD/AIsf2c7HkdlBADeBs6IKn6uwZTfqEAD2qfmzx4HAOc0M11Jkg0oyRxd3+pc5A48V8Y6ob+5zHphfWv1CrvIiRZHP2s9W9yRndq+cp18i0jNL2X2mtWbYRY2JiaFogsYQBS4GBiXYwIrZe0m9poDB5AA4s+bIz0I9xtltpzV3ZJJq6okHgXf2Gb6jhJaq15El96NY5PMMndAZO5ZkUEeJJD1aP20QKJAuvjsCArEFQGNCiADSkHddVyKOWHll+3XpkUhG3+4tgE0Lo0tGslgt1n7EXd8P8JjheCV+W85ykcaZTG1461S3dVD+go2YrLWp4llj61ppIddZEZ5FqkjavK6rlX1xqZZZoNKrXG7ElVzvdTe3Fltha9oDAE5XFdbN9AaCOLTza2VTvRUAJUbliIa2UkWjE5IsbkK83ZZP1X5nhuZ0sGaeOvZnE1r3IshXx2Ke7cyHJ+aepeby3JsxEYKEbW7c6RckyvFcdRrTQXP1WcykdeaJ+MWY4Z7RaeXQvIzssUhhiV5JCgWDS6OKOEMC5xR06zM7q22NF3KzTjqv6/URaqOMRo8sKtqGURMTJqNTrpnnlUhB6hJ9Y6eJFKvukkMZQ6ckNl6XZ71I4v6p1uBcB4TNzL7n+aW57mB4pPlKWFwXAsbBDkkaxfzFy7XxdA4nHS2Wec3MbRoJYzEVG3DcuxU70hPBpe4aUTTaiOLtEYWNpQheXXTO6FQoWt6u4QsshZ2CoWG3cBE6XUT9r1ex9M8vdnBdIWPpxaGKNGuWZ/cCQoJVVfYvvVASw9SXPJeUfcjw7kz8Hn9ePS7O+qEFwVDw3Ecb5O2PnuY3mTem15KvMbuYw8kVSL1Cg/kctyxiqeRGHf8A1fc4nRwX62ao7/1P7ZPom1ixTJG8Mmo9MvHlSjuoksP7xHuZFO42VRXVKDi//knXDuX5MgiFNQkP5jZQR1ZTSadJFkLqHAPpmO1J9qkbQnvtR5Tl8RzTIUYOO2ONrynmGZjfi4hQ1eHepeMUtyfiVdooQ0S5LGV2yGLx1qvUnrLhJqqCRLMcdagfU8EeqhGyUSz6OBI3ZgVln0ZkZIZpboBoZFaJypbc0wDi1DHU/pedtLKyzRelpe4udRptiMYItY0QkmijJSMhNTAvqwK4Qp6BUUqkC8T1H49m7PozlJ8axbNxYmWyIow3eV1hb3IQe4EW+pi7kH25QOyMAfrJ9NKkXcoBIzGJpFViwA9MWQWAvJJIIPG2ybrGnTRepoZWiSp44meNbYF9qmTaosgEgMBZySAMAjqmPnXBOY85zF7A5Gzm8b6dYLjVLl+VFKlfr0PUfJWstj5bHpw2cryVJMfFc4vHnJBaW3QhsZFcbisllsZVy0lyjsn01qOy6bVRtq5NPCWleFXkkAMSRAn1QpopI8jISzMCVUrGTKQwyr600v1BrO1yjtUM00voRyqkcahpjP6m4B2tJGjjRFWJVdQ8ymVDGrAt/wAn9JMB6qel2P8ATXI8b4SvLcVzX03y3BOQennphluPWeH1cFzDlKc6y65zOpPLiMVyDhX+k62Z4qJ4jyPlmJxvIrGOy1+lPyeO/d5+oe1aWMy6TXaeYR6bVIYI9RGyappIdsUbJA8irsb1ihZgUVkjIHtUZH9NfS/1PrNQ0Xde36zSxyaiB/U1ySpqYW9RJJXi9RVBIYDcsausqIjB2l9WNavec+msXoz913L/AE+RJoMTxXlVk0A25bEnE81STNYAKdAymTDZXGt3ZlkEaSe4zyBllJ7Zrz3LsOj1xYFp4BvYV7dRC5hnaxQJ9ZHBwBm1ChWHTH1B27+yO+a3t4Vh+X1BSLcBY071PAGJJJ3QyRuxBOWRbxRn/wCjPH8BkPUj0HyOLrPWEXrP6U5GJ37d5HHPONu/ul3f8HSJUP7IGcqOxIZTk/lnskkQyXtLEG4yaB3HBJJF48YA6hJAyK+7FALQUEihbXgmjeSTgKeKPWyGR2S1abwR3m/IhegJLgBSPx+PjW/+x8/VJ1JBxXNA+K9woVWCP/sdJhA38YDOOObCgAG81V4J/c569h2LoQQdRn8Qf/zeiQSfJAH/AD43r6DY5OPsTV/ypODxg/bxnotcbicC7sivn5rHQmCWVLCoyk+5NCkZ/ZC4VdAk78sPOv2Gtgb39tOAFs0bGbyfI8CiCDj9+OkOQRYJODkeR84+M+Obuq645Kq0WScjYZ5EdmA30f3HYr4GwV6r/wAAEEHX0okoHVgQwBrxkffHyf8Annr7fagZ+BWPb+1i/Pxj78jaludbayw7QgyAuF66DKwPx+531dtqNeGB87908hDq6NRUOAQCeQQ1eDznFg1RvhJCgVJQQ1f7A4r+RirsfvXQ6MlCXEbyAqoXxsKGAYhVIOvgdiPgjz8j6+c7ACd1YA2gsQAMA4PA8nJFXfJUQWO7FNlSSosXV5r7fH7DrMPbzFuC1XpLRuPATqSeKIlYw/ks/wCSAlSQGBI66IYg7+rhJMaArhlAIprvbbEe04Uk/qzgcZEhHGu9tzAE3V2ATfFjANA1uoE0MA30Sn7dvtS9RLmE5p60elXq76p8ryGAzeJaHiXL8hxrh/HeP4HOX7q37ON4flMHy/Ncpp1/5jK7T5iTDwYfIrFLg7N2rjrCUzu/1V3bRaqbtvbNRpNGIRDMxmgSfUOZowDZnhngj05YhWpBKTHuMiROwOufSf4f9r7p2mLvnd9LqdfHqZtRpI4E1kuk0aNC+1GYaaeCaXUSIxO5p/QEMiL6bsN3UCfu7+xf0V9OKGJ9Zfty55mcv6f5Lk82Jy3DOQ5DGZXJ4Oxcr2bdKvic9Djcbkr9fGT0sjHkMNn6t3P0Korm7lbklWeaSV+mPrDX90mm7X3bTRx6qOASx6mISIkqKVSRniZ2RGkBXZJCVgdlKhU3AmJ+r/oTtvZxH3btE7rp21O2Xt2pAMumnljaRUjlKRyukTxyhknVpREUcvIqnbNj7duM8k9MvSmepdfI4KKWG5n8q8KTQ5KzRoRQx2LTrGhyFWqIKMpo/wBOOeYmQ05Kth62Rq1rXamDVdwVqjlJZYow7exXkY0qkAW11vyFP/eArGF6u3btDqNH2plkDwRlDqJmp1leCMV6pA2Oiemr7Ar+rvBCMjMsy2n/AGs/az6TenfAeBX87xqnN6nVeOUGyuTv/prk/HsheoM2QweARVWniqtR7NinavU4f5hmZFlu5i/kb1iWdq33vvWs7jqNUsU8i6QyOUjjJVZFRj6c0ovc7MoRgrFkQqEVQE29S/Z/pvTdr02kkl06/mhCm9iqu2meVLmihKgLEELMnqRhZJWJkmZ2s9CfVX7UOActz0HNOHw5DhPPccqxVOV8PvWMJmpYmZ2apcv0Ja81uhMJO1ihY/UVJ5I0aaBnDdovtv1N3XtqNDHKDpgblhlVZIyAFb9DqaWwSFBI3BTftFF9y+me0dy2yanSqJRe3UIWil2Hd6iErbbXBojNAFlHurqNFz7W/UCvy08gz/qTzfMWmzcHJIYK8GAxWMkz1daMUPIp8dgcRjaX+pK0mLx9ityA0lzKXqdLJPaa7WisrZP/AMjd1n0p0qyxQx7WXEaNi922PehIB4cHBUFK9N3Q1eP8MfphNYdaNIdTO+12lmaQ7pFFIzlZQJDGATGWVQDTVY2iUvoh6I4TgbUsnkMPXtR42ylqG5kIY72RkyG5ZIshZs21muWLlexYmmivTvJMk09hxKvd2en6rukmonWQSyFyrlirMVZSu1kZQcoTTFBgMoauruvb9PHF6OxRt2FAUQhRGQV24HuQBgjAKQrMo9uerDqHAX5rxLIZ32qlPGiq+oZ50iayJYz2Zu3VCC5RVjjfszHRAbqWC1Hb9RPC/cUCwrEF80Gs7WZQQducgE+44A5p2DXxafUDQlpJGf2j2kqpN0CbJAK7hYuq8DArVsenlipyPOcMsJXWfHzTz1EL9obWEycrPDZhk6lZIXkSapMh7GGWpMqn2iGK11ojii1JJkST2OhGRMqqGsmrui+QFyABdUQIPSZ4iWwRJEOQ0T3tKXfH6SCQRRsAZKmo+ldLHQkyQV4Vi1LFHCiiId1b3XduquSzEr16uSGbbaA+vU1zSFTlVNgFtpvjwCRY+5GeD02dCilpVBLEgkAnx80c/bgeKOeqD/vp4lxfF/fFUyyVYT+s9KOPXMpO2o45MpDj+VYNLUuwEZxheN0aEfvtIQViljaOQRL9bn9BSzaj6fbT7iyx6vULGtkgIzQTMKzQMmodsX+og0K65/8AxPhhg+pF1LKFaTQaB5GANu5XUQhmzViHTRx1RJCfIs8ft65rgb/rv9vOHrew0Uvrx6M0mjKpJTkST1L4zH7EgYGKaOwCY3jkAR1JDABihuGpilTSzq0YG2CW6IAoRtlaB4xXOaH36zGWeJjIVZzuBAG2gLBFg/vVCs1jNdbK7MAn9xVCpISpI0AVaQEnZ1+Xg/J2O2/jQH1R5lZ1AFDJN8iqv4/evOL6+iYIctgkj5zTe7nN0LHAsGz16WuUkk00bCN1XqdgbdPx2dHfl/28j4GwNkPY6NHYHuINXYoGjYHnOMjGQfPTizLIpHuII5POBeQP445BrwB11tysJIHBKsr1mC615WdW2dEnf4sQANfkd60QHGba7MRtp8mvspFg+AATVi8fyhACmwjjdn9mdeL/AG/5ffxccjIqwBaNyJerbP8AUeMCbZ8eAO5UbGu2ydefpGpIDF6wRv8Ai2KqSP8AOwSARdYz0tB7VxVgWDyKFUf2FZ8/vfXzH9e8vQ6PuO2guiEBCsV+AN6B15BI8+QB9N6RgSCg2gszCuQKN1gDkjH3PxhLW6svwQM/amwfv/pzno2M6woBGP8A6hmHhmPX99Hz4Hn/AAdjZ19ETTIiAL7QGpmIIJYA2LBz/i/dj8W3savgMQQFoAWdoHjAPPOf+ecw+R/mOOPvSw/qFn2yiMNuMnRZToEbLAMVY67a/bX1awCWIr2FRijeMZoZx+5/e+pH1VYWqsSpAIFCxRs0M/Y+Pjx07X2y+slWtiebLneJZCPK8UwHLKeJi9r3K2WTkzYuCOU1HiikiNGjDmTMSskEhs0QLaz3Iqj5r9W9vfSd6XuRcPp+4dsfSItBfS1cDHBPDiXTs0gFoXEEigARlpOjPwu7zp+4/S2t+mQBHru2d1h7qbcMZtDrHihMqlY2eP8ALamNIZRTKF1EO0u8xGmg96+Y7N8t51wLNcrhoYzB845BSx3DuE4jF4vjeJoQ0c1jKVXL3YMZQoSz5mvHyO8cnlskt/K3ZcpXhtXJEjSIH9imhg02pjjb1ZdJo39TVE7zsMU8hhTaCFjLQBnUbN0imVt7MZFT9b9tdpO36jUu1avXPFp9Mx2sdkulX8y9gvvRNWFAmIKpqY40SJUYGd3Lmkr5ORqvtinet49fDExjHR36stuqyOyI8XsrYUo6gGMFGhZp5kapgqqq4fcypKbqgZGjcWCazbNkUd1HBwJ+KdpE2n27pId4AIuESIDGaokAK1q2NpyKBAfTF+rNiv7DpOw3pQkZJJVWU9fkxshJQDqdNoKQRsmFeJ2+w+3xXGMj+ceQOerAJYXYEgbjyWxk5o3zknNnn9rf7i3qVFfWIOwLSqF6jejoHx/tYODtSHJ6667VQdQ2rUrvKrShaYGgFBxuofyB7h87GN2+umSYKpO1gSRtxfnB/wAjtHP2sdPFTy1PIlRKsbN10H8HtvTEhv71KgjZDKfyOuygfQDLYCqQVFmr27qAsq2aIJAOMj4HTg0u00ABVAgDxnORRJz4sUP2BJzLkeJwVGD9dYOPrXL1HGtejjMyUhkbUVd7TRe9VE4qrMbCQNPD77r0E8OxIrmijkn1EUG4IHcKSQcKWouOS5ofpIzVX0maFBpppFCs6xyMochB7FP/AHlEICcGwa8DlSz/AKn/AHo+j/ptSxfAcFzR5qoWK/ebK5SF83+jaX2Y71ynUISri47KvCLc0MdOSZpYVld4mX6vOq0U+s07abt8M76QMP79wyeq6iwtlVUA3vCAlqIoCi3Vbgl02k1A1PcNRp0kACBIyHKLlWdgSXBNBWJobgfcxaumKp/cZx7mHrh6fYDjvu5zK5aPKY3KvXjnt16GEsyUnV7FuBBTSxXu162QjR2msw4uK9L/AEYbYd4V+0Saft+rl1LKgiMcyA0hlkW1O1GG4oyu4HklkBA27VPk7jBqdbpo9GDOWMkTsqnZESpZd7gEK5ZQSDyiMw/ViTvPM9+goMiMsewexAAYAEkgM3ldAlGPyDoft9Rel04cqVJYDN5oCwBdecWc4NnOD1J6i1R2O0EClUUKJ8/cg4oUOKByOs133sSQ8k+5mea9alStR4ZxeufZnCNIkI5s9mtMq9ZHDSZ6k6ElUUROpDCRfroT8P4/R7QzhQAdRqRZJ9pYaZENHFEadiP3BOeuaPxSZdV3hI2at2l0llQBiFtc5BINhidSoAJsov8Ak2P27Yyt/wCqT7bZq8/WnH9wfoaUgSbSmaP1U4s8bPoglAxBYabfQr47fV81b/8AB6o+2/y2oO8USB+XbAXyTX8nF4HWYHSkBqkG2rAPOLNeKsGryR1uLr2w8sgLbIMYbY/tZeoH5EjfwR5Otk+CT9ZzbMUBUBTu25ycgixVfcZNfvwgqBe0m9xrFDIxR++Fq+TddGcTrIbQXe2jJ1rZ2APG/wDIPn4+fGgQfoUyZDsgoEqDfABBujyPHOLsGjhaBvaCaCsCwGDk+c/GP3vovtsVBDEoyKiHsuwwHYggHQAIXt4O/HnwQPrzUKQoJ/qZmo+PHnnBx9j0SAGplohiar97o/Hz/nfXuwwNiFv7klVIkYEk9mKRkn/Hzs7O9/8A79Mzi1Cg1aE2b8ngnj5+Mf6oUkoVaw6EhvFbsgmj9h9hxY6G0QixzzFuoUSMoIGpHDhQuwSV6/mdtsH4PnWk6RVjX9VFVZlsXvYsBsNkVYLZHFXdZCWY+0rRyQfAqib5+Qo5zd8DoSr+5Ej6KF+rMh34PXQP7DwNft5B3+5+lsd1lVGTZyGF5BNn7beQDz46UpsfNDB+3xwKIxYOeswX+t8dlWlqUZTNLBZjitIIJo/bYoxRj2HVl/yV/EjW2Gh9W+N5Q4wDuBKnFgVYu7rjir+D8GwRKzkMwBYFiwsAUCaJxWRV2SMEdCuM81fBcox2Ux4/VCnbU5Ja8sUNl6Z2lmGKaaOxCtkxljUezVt1Enjha1TuVhNXkC7toU7tpX003sLrujdwCFdSCGZVolVZQrhWVjFJIgYb93Vj7D3ST6d7ppe5xKziEyetEHI9aCZBFJEWJKIzEI8AeNkTUxxyuG2mMzQ9Z+WcW9U/t2x/FeM2uMcx5XRrNmMdYg9OeJemfLMU+Gz2A5KvFJIePPPib2SyuW4fxrIyZS9bae41S1VpZTEQZm3NFm0aa3s2v9DWQLpoP+z3RxqIGil082l9dX06r+YgkSSVncK0ivIWeN5YNp3WTXab6l7Y2s0esl7hK+1gkkzGdJopYdYsW3VGQaHUAx6dXRTHG6RK0Z9ICTpracOP5lx+HMY6ytqvcijuVABYglhM7yw269mndgr36Fqjkq+Rx96hk6lS/TuULVWzUgtRywLCyo0XqQvlomKkmnsFQ6urI3plHRkZWjd43Vg6SOrBujopI5UjkQ7vXG9Gb+5aiSrRvG2145I5FkjkidQ8ToyMo2tSZgq3sRZeKR+8bsV0VIMTEb0GYaAJXqPOmb+/ZHYsgoVAuiBkZ9383isk1j9hjosyslbkohhRLVf2BY0aoZJXiiQR06vGM8IGhDv1aMaI02+3bt2LKxYDseo6HxsHYC6AU8KuCwI5prH6lNCs/wCEUcg5xwb6mNNqrUA2rKT7cWv8qSCCKzu4/kCRXE+Uo7Rkz/iOoC+SSQVKka2DvbL1Cg9iPAHxESpSkKmLsnFi7NVXgD+fgVmWTVeqqjcLAAo8GvnN5J4Ix+2Q6WTqYTlWHuYLMQwXaGRgapZrzBgrxTbVgWQxvGVPX25UaKSGRUlSRWRWViLekiSqGVozuRtpb3Kysp2lKIFGwdytZBsY6Dn1CR2CUvJwV2shwwIYMCCCc7WzmiL6a8ehX2++m3GLlXL5DE4uDNJJXtZLkWQglzuRlYSmlWmzduN8lJHA7yxVICzQ1oWD+07Rh1lpu5dw1bAKX3RlXKoGUoQBRAiIRd/6qAXfdG8nqK0uk1GsYw6DQyTIAyfoknG2QhZQ7yGmURhUJd94AUEmwobGxe+3b0rg4Jj+Ocr4xQy1N5rePoYu02Sq058hFPTjt2c1DF+jgs2I7tmCae3IosQXJGaR/wAiHHj7vrl1LSJqJlkG6feCjBlkDbQXILLSqwRB7Nm05Dbyouya3RR74tAUXT2Y4yBHILDAlNOzBw5tqbB2NICCXJ6LPUX1AWbDTvNJHJLJDIyyRspEjFwA8ZDeOxP5bOt9mGh5JWi0bxlA9UaJrgLgnJo2o/g3XPUfqO4LqY5PTDArQcPimyKIJtWBGR44rz1np+4qSzm/V7lmYnntmvdkxUeKVXZY5a+NxWPwVwjqQY1GbxeYrqgXbNAZNGGSOWXb/p6RtP2uCNAA4L+oRYILM8qbs5PoSRGyOGKWCCeucPrdjL3ydnBKskJiAND2RLFJVf8A88MwBJyQSKGOnC+3PgNep9w32l3q63K0mS+5T0Bq3TatT2yjXfVrhKGRYJnXSQB2f21ZVcHqCoBIn5ZpX0+pBK50soBC17WjYWebs5o0f4x1THRU3sATSGhusGuQN188jjmqvPWzhbccMxMiqpZo9ft2YSBlJ14+f7f3Ojrwx+qa52+1DZUGrFn55xX71WTd46ZVVNF0IJYYBPPivHR3XZxG0hUo7uSVV/IHwNsNLvyPnZ6+PGvoWQ0p93JsqQCb3WRYIx9vNGzd9LQAFmu7ayCLyD8X+5++Pt1yuyyMYg2mMz6bYAJVPIUeSVGhoHY8fJK/TbSM6kNftII8/qFmyaP+4vgi8uooKGsbSKzijmvvkDjjnr6jyPNCN/gsq6QrsFBIrFlGxolV323ogjXgbCCxYjccChj4/YWLAP7/ADfSX4bjcAc4N/uMcFvP7Ek2ejncSdkAVV/NQDosCx7n51obI35B3+RPU/TyrGHcIaQXtDkbh7qBvHF1xknxXQm59gG3PJIFCrONtkg4Hmh+nkiuck8cOlUglQqsC2tEA68aUf50fn5J8n681DGJIzXkqOAT5u2/jA+3O3pzTgybkF+33CqH6iSRk5AJ8HyBWMZgq+Jx9XI2LtZI1Flf6zKmhIUj0jk612QDqrDe1GwNjQuTooY7TYAFAUADd8ciqrFDOfvJDCg1tYijdEH55wL/AHvx89JungTintvUdDNemMrsys2gQSQSpUhioGifj/P+UQxyDcTIzG+SzHaMAAXZAwBihgfw8ZGNB/cAPaAABSgAYNi6sWPA8AV0Zx5H2XFeCzZrXYgHWWpPNBMjCPQYPGydlBbsEcMnuFWZS0asqtRp9JrIfy+rgXUKCSpcAFXYEEo9h0ZgArMpG4KFbcuOidF3HW9tmGo0Opl00m2m9M3HIi2VWWM+yRAT7Q4IRm3KN1WG+1vlNy5m/WSnmMmzcz4dzuzV5dTWzK0Oe4fmHtZXgHJnxszmpSyq1bGVxdjKYmOD+Z1aEUnI0u5RamUSgfVXbYNA+lXTw1pJYW9BgQxhlj2x6jTmR7eSE7oZESQkxM0iQbUFdaj9Hd8m7jHqm1MwOsjmInICRpLHKGfT6gRoEWGTeJYXeMKJliT1Q7kMJZ5Zq1iWOWuyOHVGOivbe/DfI2dEdhrY6lCWCFfqhvGyMQRRJsjJA+L55HxjJ4z1pSToyiSldiArgnJAsbhR+aJv3DGLz18giWNUljIViQrBiP7o/OgQ6lewYAHYHU9wd7AZku6Zdwwd10QDhsEePvfAoDjovST7FO0AENxzYZji+fcOeAbyfhdcZzFms6lZlO/mI6CqSQSOwLHt2A0T/neyfBE1CD3MVraVB2jJFHaa/pIF2Rk46PE6F9pXaTZu6FnwaHyPPijjr96m+uvKeC4urV4dwLOcuzWQ96GtPRhIwuPuNH2r2uQZlzDQw+Jg/J5bGRuU4H9p4EnjLMUM7XoF1s5iaaDTxqFYvqXETMPIj9VkRmIY3TBloFq9vTMum9UqXE0oZtoGniaZs+3a5jDkDiiRS/qA5uHfFsH6x+tebs8k9ReZ8FwNgR+xUr8kzwyGSEk/9GGjhOK8Wo5Xj1PH1kE5ydnLcqxmTf3K5goWJjZnguI0nbdFHQkZ2c7Aumi9VncFSA0shhQRFTQ/vJaKn01ANNcNAncIY4dPotLHpNLh5JJ5QHZCSxISH83JLNVXFK0OwGtwG4A69UvQq3x/ikedT1W4SbNWlHVt4SjwvK5mSaXu4Ye6/JcRHO7AqZ5Dj1hG29uGJihDMDRBlAilJYEsHmRCBQva3ourYsgBlwaK3dE6qLXVJNNMIo4VLFzpzs27fazP+YVwzE2RTKjDAO1SxP6d4HO8f9GBLneUvySU3Mg2OrS46apDhaiXLEq0BJLlcpNchdJhLBILAjEBigjCrAT9Nalope5MsUBiUIqkliVYEKNyhUjAFY2gEmj5I6yTuWoQGWaOdZjNPIzEIY7MZIJVTIxdWVgTJ7CxwwDbQK4OX2cNl/UfILavRvT49NQxSiZo/caSlj4RcaeYALJKuVnuPKwH/mMihEUCNdQ7Pp2Xt8bGMhphLMfaaIkZglWOCgQgfpraQTWOf/qXUrN3LUAMCkSxQKWK2CkQdtwIHuMhcWaOSpq6Mjvt5zOIf7k/tprGeC1LH9xHoS8aRyRTLHKvqrxNonR1JUOsgBB2OpVSda39SupZV001L7hp5iKB8I2CQD/AJrNAZA6rBDMWYuu1UKlQwybJugSeBRIFfbArWQ8a2JXJ2G6iSMjWw0fbr8bAPdN/Ojrx5+KbKbRWW9xdg1Vmw1EWQPI+OBYxXTKklmsgrYK5GCDVAE1jzVjnnoy/VyfpWbztAHIA0xX8l+d7DeFK9gCPAO/oeaNUY+4kVQv5wbq/4r5FnHK43tsgA77+zDdzeBRo3x58UevtyQ+1FKoACHRI12Hxrf8A0BoefxOiP3H0NkbgQctu4J280PJ84OPjzkkYBojlSfsAp+/+V/J+ehNaXUPvu7BtQRovwNOwQk/HySCdnXx/kkOoAUchbZCBkGua4oD7fcj9+mJAdygD2tZNg5o8fzR5Garz0bRlWUMfHbuCfx7EfABGvjw3cj51s9jr6UoX0lBwSaDeSwBoms0DYHNYPk9NSAgHixRGQAF9u5T9+CMYrJHPXpeoG2jQnZ/u3vRJAJ1+RJ6kknx8aHn6c2CYlZQGK0RtF+AD9h/Bv5AJPTYZkt4yRftIF+M/Y0Lxd4oXjrIXyj1blrPR/khisQy1+0sjufLhV2AFJDdC2mO18/IC+TcFjYglibGLIOcknBPjHxQ8c9S8hbDAEAADI8+QfuPHHPHXDhvOuYStNNfo2MrQlimnSzqM9B36hQVeHaLvoPhvHga12cQrGbBBPkH7V8Dnx5/bHTTb3A8gWLz5v4z/AKED96s1xXqCvIMzPRioCpdU9VaUMGSPYV/cCyMgJkBZQgYlR5PXY+m5Nhtw6m/dtByDxkD4BN3XxR8rQuPaY/aDhjheDjFkfPPjAz0Xccy6+kn3U+mPLxI82D9aMbZ9H+ZaeRfZ5E7xX/T/ACtivErw3JZsjUgwUbTIho4sZGVZSQIpIvv2kXW9l1IRiZ9EF1sQIJqNbGoTNbQImklr3EyLDYz7bD9L699B3vTh9wi1qnQyUWC7pTuixjPqBVBHup5PdVq0seWcjbiWYaBnIxkryNTZl2sCsxAru/Xa+0wCVztWNdUVmkKdmzaOBNUhI/VRvOW2ivHIHnkDrXpNU+mkUf0kA5HHH2vjxxYOfHSiw/OMfkIl1YRWAVt9gobsBsgMerbAAOgz6VSOjEfUbqNC6mkG8Ek0AAy+LPyOWNcHwej9L3IWCGCnhieME1g/Ask+CK810ucXbWd9pISjuAxVjo7PUNvfYOp6/uSAxHyQDGzxkVYYEACqrIPx/Lf6EVRBk4tSJaJbCkYBzZAN/wDm+fgWbz09eNr05aUdPS9LCoJhI3ue4zMy/ksi+Rt9a6/0xvQCsR9MJuR1YhrX9JyQtkEFRZCngk1nFiujhqZSpjRyoBBwSTd2LANXxisZAA6T3KPQW3zARPHyazxqsVLmfGVYZcgf6gLCu8zwwwzP3Co7JN0k0/VjH4kotZHFuZ9P+YkI4llZFteNxAJYCzV8AtXnoUv3YSg6XucmjUCiU2SsVoih6xZUNMaBJOTQ6a639qPDcdPBfyPKec5m3CHLDLclsZGF9kkI0EiGOHs/ZXWFkHWRge4AEZKd1I3JFotHGTRLrCN3NgAnPn7MQD5x0JqtLrJhI2p7z3OYLtWSKTUBYnDkk/3MaolncQ2DV4Oemq9es3ivT3h+YkikjjxlWCMw12ljh96dENStXTopCz2ysNaMIj9pnTqFVvM32vSy67UwRKoDzyUWANKCQzMRX6UCtIxvG0jJYdVPvWri7bpJpXbbDpoZH2s27eKFgXkOzhAoGXfgHqlGzPHkbOQv5FkfIXrE1uWb2gqz3LEjWLL9Y9KolmkdiuwqhyPGtjY4wsMaRKWVI0SOJSbKxKNgF/A4x9+QesGlf8xJPLIwMkrPI9WR6ju0jYUtQ3NgXgcGgepIfZXSmsfcv6BSx1vdNT7gfQ2zII0914q9f1O4xaszCNQ0ntV68Ek80gHWKGFnkZUQsGdYwEE43Nf5eYDGb9M18ACxxjis5HQ8aGMTM6/qjKjINj3/AMcfzZJ4odbOa8CuhcknSR68gdvhmI+QANDe/Gtn/unRtcQJr9TWQM+B/qSLOcDgnpkgs7LgsCAALABb3cHyCD81446EziREZfbATTkk+d+ToHfwdk6B8bGgfJJHk2mUG+HC/wDmIuzZND9ufjz0VkeoFFqRYNiq2qKs4AsePJzZ65t+dcqf96DQJ3ptKfG9AAHyexP0I4BLDGSc38jArFAcHH8eOiIxQDWa2gH5/UF+3j5/y8DvMkaGBAD/AFf06No7VWhaRnbfYDyUXYGuv+Na06ERYzQpigVuSAyNk3dm8eOfnpCsTITd0xOa4bwRd4vgEf79HcRYGL4JGwEJPwoJ34YAHRJ1v9/3BI+vqJI5tRQXIBHu2k2byCbuqsGhnoZiDvWiAaJYg/1FVIF+eD8fY56CSzf1XR2CgdXVvOyJOxC+PkADQ1vRUj9x9LkL+0ICrVbbTX+o5s2c/wD17GilbIBByPH2Njwf9fJyT1kYtcFocnxkc2KMdaSmZq0W9Kxeu5jZZFOwquyHTa11AI3sbt8cheypHv5JFmji65rxnjHF9Skgf+uhZBNEnJBOTnnnOb6XRavxyli8BAYv1k8aRRKSumZwBK5BG2jWVjskNtj534+kOWVqJBDXVVurGcZu/wDnnN9eoNynaMKPcaIv9yQL+R/oBx11s4d5b9C7XjrIsCf1WRFjdjtm+UTz2B8bI2PnQGx5sYkMKC3YrHGeMci7P+/HSWvFeOfjJAF/PPGTXiumN+4CHN5jAQ4HjMFqLkte5jeS8VzFMItnD8s47dXJcfvUZJlkhW5XvVoSPdieIQTTAr3IKO6ZY/d6pDRSb4ZVfcFeGVWSUMR7gDGSjAHdtJqvDju6GOSNikse2SOZctHJGd0bC8e1huo2DVEV1PTNUqXqfwLi/Ma9eKvDzbh/HeW1YIFZY4a/JMLSztaOD3JrD+3GLwii9yxZ8J1ad2DOuMs8nb9bqNOXLHT6qfTuL2srRTPGSxFL7wAwCkkAAMFsA79HGnctBp9YgAE+mg1A9xNLOiybVyWADMwXm1H6mANRDzVblfCr2qE5uVOzFYpCVY9fy69lDdHJOgrI6HZ7FFIH1OxNDqFAf2t7fepFEHBOcmj/AIQeDVeImSGWFq2k/a/GDdjBJ8Zxiz0sONevcuJKRZetYqdfw/rKwVZAw2yyqXjKMQSdv2HgnYDbHn7QJ2LRsrDm1wTVYYVdgj+DZqyKIi7g8RpgRWDdVS4Fbl8XWD9+SOpS8I+5DjFn9Otq5CrqUCsWQgFiSD22rD/cPB0f3GtAQs3aNQl0hNXgX98kkBTfxeRnHUlp+7LQJtGAydoK3Yqq+x5HjPPUlqXrfxZ6aSSZWiymIFZfeVWAYHsrgspI2SwB6+QVA0N/QLaDUO1GNrvgWBkWLoFTxxZPJo+Thr4VLOkgtlN025sZI2ZIWjVEEYvHHTd83+4DgOOoXZ7HIMZAI4XZmmtqkcSoNDtI/QKo/u2i+QECdW0Afpe1ap3WoXJODtQvbGgRgY93tpiNtmwKPQer7zpY4nLTRqALJLhVBX20WI9oABoYAIrAsimj7j/Wt/VXP16ONlki4rinszVUcSRy5G326DIzxFlKQsjsKVbrsIv6idDNMqQ6x9M9qj0Ss86VqnjvG1hCl2VBzbkYcqao0DeTiP1b3qbubbNPIV0qSZJBDTSbgtkA7Ag5Qb7N7if6TG3F0Yrlisb1jUM0rRhIwRIQqbIDDsBs9dEr42B1A2fqxSmmtqKhfaMg+fNHir83XJIHVXhjQA7F9MHBs7rarsV424sAfPkdTF+yzEy437r/AEXWL86A9W+Ae2zq3uH3ORUfZTbaLFANPpf7ip2p6kiapg8E9AioTtzyAGY5/wDDZ5yBRu669kXbG5bPtHGM+7P848cgDPHWvipMfyD7KCKNkHhSGUhTseN72PkbHTyBsbqKHcgQXasbyKPuBzz4o1nnOb6HclH9SxtcA1ROAc82QauvgDAJvo3sMzxhY1LBoEmkIBIADEb7ADXZh1+BvYHx5DboWkjCj9aqW8DdVE5rNqauz8cjpRcASj9RQ0MYojis8cWaAxY8AJEzSe2rkq/bWvgqGIGzvr878jXggEeDv6HmTaxwaxX3NA1zYx818HnouJjtyM7RjzmqPNfOPGLqr6GWJAs8Fdh1ZpCdjbdSEfuvYDYLAA6/5+PA16rqwIJPvayTYxfjFkHORdnJxfTe0qbq8Ys8gZ+f5zX/AC6HrIwkXQbyq6B15VANnfnz/k78+fkgfSnIVwTlGUAHItRQBxkHwAaJyDg315sR0NgDNmrobs1kYyeKzV4vAeWdFA2CzMexY/BGteNDWh4AGvH+f2+lMGkr0yQVsMQDZ3GwORigDzVk4568tVFWoHAFjFeL85s3x4HFDLIMjisWJielGKV2cu4VIjIT+RVW0PyYgnRG2860ARbA6oCy8nHjGbwKFfcknHAuupMI8mMrYs5BJAoeaF55qvsQa64Lj8fcytfJWLyy2o67LUUuoURsY3DKgYg/lo/2nsdH9vpaKs2Wcqy3WLwfgiv2oZ+fnposYVIJDKcmsWcY8/bz8/v12uWXjl9tJwhIIUKVZnJ8A/kCQRo/Gj/k+NfX1hPaylqI92aAonwwJyfjxZ5BCgu8WHZQx/TtBFih5OP3NnNH5BVbsRxPEzwNK0ZV1ZYhIFKeAA7LpT4A0Suzs7H7shj9yDftrNEm65GL8k1k5rL/ADXt3Hg2B/qOSD9jwT1K701w2dxvoB6UnkeMmw+VXC52KClZnjtSHjFfnHKq3Bbyy10EaQ5fg1XjeYq1zuajTyEFK1LPcrTSnI+/SxSd/wC6CF1aMalWZguBO2ngOrjDe7MWr9aMlrOLAqut3+lVm/6udrWVSsjaQbULbmbT/mNR+VaxyG0phdFAHpxuqGmFFM5DidfkIYGsPcA7AdQwLIFAEhKtpiNAMF/yxGz+IcWpaCVmLEoNygCgTfBviheRgbuOj5Iw5NgEk87Tuq8ge6rPGQReDi+kK/pDjMmzUL1dFb3Gj79W9xTs6KgR+NovjsSpI6jX7m/2k8QDxsCGr2ngAWODeKzzYP8Ahuile3xTBYirFtoQtS2LPk1QNYvacXjm0tlftIkkdpcXlJ4PefcTbeN0JP4qohaIdvj8+pOyTvQCkuDv4ohkDEGicVV82bH3K5J8YyI2f6fJJ2SNdEYLNkXml2/xhbA8E2Osf22QcVxc13knJuSZmzI5r0cNXzF6lVaRwRCj/pJUtHrIy9/atKhKhfyZmCuP315pBFBFBEB+uQxIxCDkgvYBIHkcVWemU7BCiNJPJLKFql3sq7qG26CsfduNFjir87kT608Gpcf9Ks3icZjayW5kpGRoYYxPZvDI0LQV7DIHdpJK6xxLM4VUCqZAF2pfZda03dYZppH9PcwUsxIRPRaNiExXtJJoUAP0nA6E7/oFj7HrUghT1WRaCqiu8iyLIiB6H6mQD3GrosfIrZyk8st0CSOxA0AMUqzArNDLGAkqTIVEkUiMjRyLIoZXVgfKsBp+lCWGU2rLvVrBVkYBlKkFhRBBw1fYCrxDUO7MyOjIUIUpIDvV1ABD3RLA3YKoQRRFjovjNupZgWmWaEbm94/kyyHyXAUqdHqpJ3pdEj5JWQEULoWJbcCPIyLAIuiKq8A2QKweo19TKrAbVAFhuQcXkDd7gaoH4AzzUxvs150Z/um+3HAzQFruR9bPTmr+sCMEIscrxnV5G2Q2lUjZ+SW2RsaC1MH/AA07Ajb6Mlhv/A9n73ur4FDByenTJvSm3bmUGqxX9JNC8E/IGBjrYzXxcqzEOQR7RKdfjQKly522z2IP4gAKGOvy39VHYqsdtAEfuePHj/fplzIaVlqyWWiCfuD9h44qsnHXdDKTfKtsJSKxA9d7ZijeBvfhi40CO66BB2QhY9rbgx8+2hVEkjNc5P8A7X16W/VgKf6hRzZHB+TjJFcdBoPdlsw2AP8AySRsRvXTbDY2RoADYOh+xG9kEizqS5FgAE1m7/Sv3N2eft8cPwMFVhkmkv4FgcC6x588+OBlqCT9VXJLMwl93sdkEfmreSd6A8gE62f7j514IHV0HtzQsAgCqIuzjx55+xy8JFYHHFi7wDxRwTkkcc/bHQ1lnLxdfIVZGBOwNFeut6352SDo+ASdFfpckcjER0GABKk0KG4fbnA8/eh0kMgVib920A0LuxfxmhXFV4vaOuZYQSdZFj2Y10CUJGmIbewT/wDXXhT5O9+Pr3TKRvFsDYBPK4sY8fA+RRx0POcgAA8nzYFkZ4x8ZPnrKrn6FXLTmkUE0IfcY/BSZQOw/JlGuvUAed7/AAIXevq1SpGXKKofzbHCuCRi74s5+PnkTEZZFDE0SDd0RRPAGTzk1xnm667jA46GFCzgTpCPbHu/kAigMqkAKSdDwTsjYC/RKRgJQb34AoAkfPOc/Jxz5Bth2LMBRoki8cmrwT4+Of8APAHGiMe7LkAFsI7JGoDABAx6lUJLeV69z5JJ860SUDY+71GBAYCywAIFgsDdUCQDR8mx56WCwVdpYWMkgKecfq20LBAOLqheLWHp76a899YOWRcN9PcDbzmZt9ELos5x+JhlL9s1yG/HDNHhcDTSKaa5kbSqgiqypWSxZMVeULW63t/bYDq9bKungQEqHJEkxBsR6eNyjTSm/wDs1HtB3SenGrODtDpdd3HULpdFE88zMoYC9kKuDUmocArFFSsQz5egsQeR0R7NPXbjdPCZOvgcJJO2D43j8ZxrCm0GaRsXg6UeOoh5Fb2/e/TVlLSKW9xnkP7s31g8EsszS6iYJvnkkmkKDaN8j73IRQF5ZRYFnLE2SOujoUXSQ6eCJCkcEK6dcKDti/ugSSA7EhLYt5NUoCgsnx3GA23SZEBIAMTAdfCkkEgEDQ0QQfOxonW/pxyDivdZzecC8k/azkijz0qTazKY8g0pajktgAX8Hmv3rwRljBQLlO5rxo6OVZU223OtOrOzL1Y68ADrrYHgfSWZglBsUDZ/pGbANH4/yHHHTkFqxCqNyge8g7gTYNDwaFG/jFeFN0kRUUxxkfOyGQjrGWHkuQSOzMNMNH4AB2fIRSKQb3MSbIwCSeD/ACR5GeiJ32OxJBHp7dwWzuwaJ422RZObtukZm6AtXcY8iA9Zy0ngyosYTuzKCejMrAHRKqS5UEDx9P7mXfRA3gKMc5F3/mftijmrDlVjFGR7l5CnGclj82L+3HFiuo4+s+IGW4xmFSs8v/uEJPkOkkcqSRMB0baJ1LnajrretMfqW7VIY54gWrFVixhgSAcWCxGSQR/pC9zVpNHIgXeGKmhe61O6xRB3Up22avJ46Qdr7T+KetOLpZytlrnFM9drVEzOSxlOpfr32r11q/qcniZnqM9xOkQS9BepSPB7guQ3pWryVZLTfVmv7I00DRRanTB2MUbu0UkQclgkU6hyIrJJidJBZsMp3boHW/R2h736er3yafUyrGZ3SOOSOQou1Xk08hiUy7ceojRg0N4ZiskTxfb/APwc5vVbnNzhnHfuP4ji81lOJ8kyPA6/O/TjOY7Hcg5Zh8dYy1XiOZyWB5NyKfA0MhjK1yWzyfH4rkt6u1Qw0eFZF5AhuX0j9XQfU3dD2eaE9v1csE82mB1DamDUPpY21EiA+lA8Tfl4ppQAs9rE1KSQRnv159LH6N7Q/wBRK/8Aa/btPqdHBro0g/K6vRQavUJBHME3zxTEamSDThTJCjST1viTaeiLgP2MetX2r/dr9uFr1Q9NIP5Bf9XeKNg+d8Ut0OY8Gt2f5nfXGSpmMaHs4Gzbt4q3NhqfLcZxvMXmx1izRoyNTmevde5aTU6TSzGVWZDGW9VCrIQfDHlCwwPUCNQ4FUc30Pfuz92haPRalROyqfy0qtDql3kLQVrikUNVtp3kjjG0XtKM+kvIYfN8dsPjc9iclh8gteC2amTpWKNyKtcrxWIZZa1uOKaNZa5jkUSRgqQ0bKsqMi02aN4GZJFZHJU7SjA0wJWweALo3QFVgggE+oH9wIKq7FgM04PpspIH+RBogkgkC+iGaVP6bRsQjVVkbW9sVMhKkkgaPXe9eSf+QCycA45OfsDyf/fi+Qc36wqqxuAahnNtX+RH+xroNSupsDye3Tw2wVHx5+NEsOx//ltkj4Af2udxZVLkjgUScqBkZ55INDoyOOlX/EQu/gUfH74P3/8AU4lcS265dm2ok0OoLFdflG37gMSNEDwCpGiR9P8AqM0kY2lR4s1djkCqyMgfF/z68dxvRwu3I+5Ygiro+xvnIrz0admV4SNP+OlXsCTsnQOz4IBAII2CB+2/p+q23RNgWLFk455q6weTXFdN3aEBqKgEtXNDNV45vkYxddF93v8AqiGLKFQqSSC4YMNKT+XgAtvwB4H02P7pmjYMCpuhfJsmqJwCSDnwDwR0oxmRVK7T+48fNWKs3g5/16y+fav9rH3u/ex/qdfte9GLvqJV4JdxMHLuSZDmPp1wLCYG3mEt2sfTkyvqRzPiEWYuyQU57NnGcXGbyeMrPTuZOlSq5DHy2rbD22actLBb1QO54kUEg37ncBiKJpbJUEcAnqR1XcNJotizyRxs9lFZWbeoFsSFUiMA2F3n3iyAACOrHvUr+Bf96fBvR7j/AKhY71M9JvUH1kzHL4MDd9COL51cJRxGGux1RHmh6zc/yvEOIW+R1b1l1vcQlwmNxj4yNLPGub8qz13HcXtPanSjSxwu86FpZo4jtdQqNIyxx75D7beRlQkA00iA4LuoEXdI9Tq30q6cgx6eXUKaLNIIkMzqIkRttQpJLZk3bVCCMSOim1P0/wD4K32ueiHopyoevE+T+6H1zzXHvbl5PT5Dzr0x4JwDKiq0taH07wHEOVYfJ5oUuRPjZMjyrnN3KT8lw2IWOrxjiOLzfI+N5Wxar6eEXaO6CBmfuz9v1f5OcFv7jWjSynSmNGtHqdUBM6SKLojZujagJ9fxyfUnZd6CPsY7t24dzjCi5e3vqIItcZXRUn2jTvNIRA0KEJ6mz1kjeNpuK3eCenvF7HFfTfi/HuG8fszrduwYCjXqG/bZEia5kpgps5S10jggFzKWLFpa0VeCKaKtGIRx7J3PUa2cTaqefWTMqrv1Ds7RRqv6IgT/AHSUxb01CqWO8ruJPXccHbINCno6TS6fSxKXYx6aMxB3sgs+za0j0oO9yxLKoO5Qo6iV6u1lyd2Swn5o9ydmIB0AzkhgD0D6LMNhG2QA7N3DGU07KEYAg8KDgbcC7xkkgElra7rAoe2SbPuJjSryTVg35o0LF/JABOWSq1lo2dyMCJh+DdgHjO/bPcgggsG6A6KhQmwFcsfWAJFfq2k/FNfgE2cEeMn/AFdSW2UsChF4IpSa22BihjdecljhcAdMgeeKSVVdQBHNJ2CqV2SrkbGip0p2CdFlAOyQO0gd3hJK5VjQzZZVI80KN8fJJ6MhJYlg21qyKwbRTYIu1O4qTgncM9dLpWCIdnHUd3Xbdz4Kgr7nhux7b8l/IPnSgEnTjfZClQaAB8ADJxY8Z4//ANH3VR7UULTAsbIyeAtNzQtc3R5wOekxb1MzsPhUmO10XUlSqnYKqVA0wCgHSk6b8SPSKbDbsljYsjFkVgg0DsGCSKoeESe1CtgbAqn4DVTMpsWCCRZugDVHhAzYAcgwuYgCh5w0yOpT82RgVkXX922ViAANuGYbP5aJikEcyMCaDBvOEv55Nj5OfkXRBlBeF0vkEDAoXnJsc5Gfmv2VHpJjpMIRSaNoxFMqyAkL3/Ng/wCIXQJ34B2eiMCTtth90YSbnWhdsCACAosK2R4AAxVk556Ro1KLtY7aBAF3Q9pBO4GwxrA81fjqwP0EqTN6uenFelK9S03I6tyCWJpQ8UWOgs5KYr7RR1Vq9KdH+V6djKDCsmy/w8hfU/XX0yqEho9ZJOze4MYtFotVrZ13KQR6kUEiN/QUZg4277p34rzpo/wx+s5ZVBR+2rpFsizqe463Rdv0zgNaF4tTqInj9pO9VEdSlGV3fvYOax/21+unJsLksngcjxnFj1E45k8PZnr2qWZ4jzjlfJuO2qtqtapWaAoWatuWKetZjnpCzWlpSt7SVn6n7qvr9s1sDi2l0rKA6oUKldY8ZZD7Tt2o0YIIUqDRBscJfSmofSfU3YdRGWVo+76BSYXMLbHniRwJ4yHVnWVlNEFtzk/razrG5jnHPPSv7N7UecvfzDkXpPw3LclmnkNxsnVn4JxkZGvaNmFkMjZTOVry2URZYjDKsVhfcnLZ5oIGn7b25NRI0rrooT6jAMWdkhUsZaGZGbJJIJLElsySbp3eWMfUf1GVQQwp3TXxJDD+hUj1U8aCiSKHpDa1gDfe1AdnXDFchgsgUrRSrl6mTyGIuVJOsQFrFWbWNnkrq09gNUsz12sUozPJN+nmr++onDqK6O7dvfXantv5qJdZppWhaCU+kzMGXYYy5p1kDrsKBmLH9Aptsoexd2h7fpu6nRySaHVaePUJqoNuojijeyfW9O3gMQDbzIgQMACQCpJ9T6fqrSuvhjEw8nSDtoAeSd91O/OvyK78eUS2Xeyf14vnBAz96ujzVDoeMDYhHlFJvk0oAP8Alz0pox7qVZmVQ8UZHuaH5FliZSRr9j5I878aA8/RUduwLH9DN9uBj/TH/wAoNk4fItwmBf8ASXFmjz7ibP8AkeuskrRSQPHvav3cE/iwUN8+NrvQ8b35H7efpySVoyrAD2sCR85Yf8hx8n+G1o71OABtAHm6JPzdX/F889AJ5VknMbMDIFMhDHQVC2lKnak9iTvZOyp8/wCGBI25rG58ELuyEYsQbya4AvOP3HToJVQAABYAN3wOCK5x8AfYX1O7iHKeC+itTEcY9G/SziHpP6d4nMVMnf43wbj2OwMd1I6dahdyeQkqQV2ymflw9etUsZ/MW8jlb0ECJbyEmhLFSuz/AIi6mL6g7edTIdL2qWT8trFcs8MUE6r/AMRJLbEHTyLDPK5YsYoyGIO4NpvfPoWHWfT/AHCLT1qO7rANRoVRRvfUwkSLCqYB9aL1dPHCVVBJKjja1bJLclwWJ5Dj81gY2eXE8nxMgWQEyKIsistrFZKJXkV4Z6sht1TPGnVYf5BF21GI16Imhj1ME2nZQKiZCGAZgkpCKCM/9i5ZWBH+FbslTzwNXOp0+t08xin08sbRFSpIkiKsjowH6kqNwQbpXYe6iWiuZXI5Pj1fH5mR/wBWtWzx3MN2lQvcxrtgchZiZo42c2LFdLtadUTaMsyARzAratBqnl00EkhBkSOP1KIBE8YO9lsblUMszEEWWCsCKW8l7xp44ddrYY4ysDTzpArHcywSPcKsSDuIidFd6ALgnKHd1Q5yET4fk/KcPKkcUuM5JnsTMK6fpq4/l2Xu0p1rQr+MNcmuRBCmhHEUjB6oCeMfqftMXa/qbvOhgRI4NP3HUnTwjCx6aZzqtGi+0Ui6aZFj4fYBa7q6/Rr6G71L9Q/Rn0v3XUy+tqtX2TQ/m5XIYy6/TxHR62WR8e99dpdQXoH3/Ng9ILkWOlyCF4kMi6YPvzpS2wybGoyx2Wbem+GLN1YMRuQjkH2iitjKmqII+A11jjOLrqwMhLhFUAn2kHCscmx4rn4o+Oma5LiLWPMZaFgHWMr2AJALaG9AFdEs3Yj8kI6kMNhcU4e0YKSikHmmJFUt88ZwBjyCenCjMEEh2sFJB8kUD4zYB4rkEfboFBGdqrqAvTQLsVUSdSSq7/E9gCVPkhgNuD1Ban2l0UEg4FqDfH7g1XJon9WOjtOhRGNXdBEJNDaoUhbFgWNxJ2n3YHSN5HZsRkwwCRmVnIj8jqo6u0aKFHVWZhqTfk/jsr1H1IaZlK+9iwwoKgFseTZFDyM3ef2H1LtuKu1gKSBdkF7sE4B+ME4NkDnoxjp6oDv5msESSglj27k7HbsQdKH6jxoKWIUMOo7uVY17huKJWQTVAeRXN83YAtj0+GJgJX43LZwQNoo1fAYFsAXQBJJov4bUdcxapMp1LI0etFgNv28b/IAsy/3Agg+dj5XLlVZaVh8giqAWift5zVYF8dCKVDVv9rBme6XBFqRRJyM8V4O3p4K/EWx1qGzHFoSOQzdPP4HsGJP77b5K+CPOtLsaRy6bFC2Rb5IARs0Lyb4Axmjm+hlZBIQpsWdtn4Hkea/iqsfHU2vtQxgt+rAtsxMeE4tmrpICuPckFLHq5kYERe21twAo7nRG+gIk0L8I9EifUur1J/Xpu0az0Rt9wl1Eumi2mxgHTvqAAvuZiWJWMNuwv/pCa51+h9DoVO4dx+odCmoBc0NPo9NrtcpVQ1EjVwaUncrKEb2qHqQDv4mec/0j9mvqlXhnapb5zS456boUZWknq8puUMZcjCMPb/pUeU5m04I2yQmbs3RBDuX1Pqxou0dzmIUyRaTUgGrVZRpV0kQo4J9dHagDZLKMkVzT+HXbm7r9c/SehIZkPd9HqZVAPuh0Uo7hMNwN+6HT5thSmjt34lPwTh1anwn0VqLGKycY9B8NTij200cKHE8GikcyMWDBBjjDGzf1HEkmm6Suz1PQQxppYIkz+X08sKnbsG1JCiijRDGOOIEEAl93tBUXf5tS2p1vctS9mTVdz1c7YFh5dVqJaoEf/qSCxwMhWACiOHqhjaOP9VeeYeIkvUzUNlyiBFMuUxWNyzr0LlgzNfJPUKQ/khewI5y+v1/L/V3e0QgAvoJSLwHm7Zop5LXNkmU3ZKkfAO0dT/hsX1P0L9OzSZBh7hHeLC6bvHcdJEAwC0iJp1XABUhh7iCT6w/8zhUvJXsz1mKAShTJKiIwb+5fyYeGbsvZlDaCFuy/QPbPq/u3bwFeQayGxceqLzFQtYWQsZVBBY1vaNWK2jFL6X3n6I7J3Il1QaLUkNU2kAh3M4oepBsMLhSBfsVyLAnQuSHASeN445I5F9ti0hGyCgKLpRGwjfQ8MSqa6jbBSev1ova/rHtPcZAry/2dIyp/dahxsZrt9sw9p22SDIsLG/avgZf3X6H712xTJHD/AGjAoJMmkBaVQuVaTTks5aslIWmVL22BTtyM6l+6Ojq+m7AghQwBVdgaJ/u6+T4K+daP1aiVkJZHDgqrrR3LTAjFfIurrABGDmlshUyIyMGDspVgUa0IVrDAEEHBBAINA56501VyzSJ7kxVSX1siIH+mhJPnqDvYOtkn99loe1iEBLEAknyB4oA5Fi8c3/KlW75Aux5Gef8A5/yrp2sx6r27ePOMycUcw9px7oHR2JU67FuyKpOhv2069SQCpIfnKbWyTIUlJYHcCyAAm6UUij3WWFbQw3tYFMQOpoO1JDLviLjdwu7eAVPIBN38C+L8V1KP0F5/e5rwPil0WCt3G5bkXp9lVsSEPWsRTSX8FZYh555FTJ0MTFAzkWJak0kj9JJnT66z+je8t336e7Nr2VxM2m/Ja0OQ3/Fw79NqZqse2ebSjVx+9nTT6pVJ3gg8lfWnYl7B9V987WQo07zpr9EEUBV0OuQamGLxTQRTtpZDSr62nLKu1lPSn5RHWr8jyArSloM7Ux/JK0DSN2FmzBXwuQMUbE+zWilqcdmswxrEq27k0sgE1iT3b/2uWMNqVYspdkmjA3EmgwlPtulVTHuv2f3j0DbgYx9S6crLpyEH6Hhks17i5MZsjO4llOSaQKSFx1T59xfEI8L9wfKv0wLVeWUeO8ygg/p+zXfKY9sHcjjKdvwtZLjlzJyOAS1nIWXXfbf1h/4taOOH6i0uujjRU1vboiSo2tLLpZZEcnAV29Bo4QWAKRxxKNoVb6i/6Pfc5p/o3uHbpJS57R3vUppod4b0tJ3CDT6rYgq1V9S2tlFkgySTEEHd13wXAobNaPtF2DKryhxoSPvr+TkaO+uwpJH7keNHL3JYbdtKKYDAxeb+a8X9gaHW6BvevJYkNuBr+LwAeOfPm+G29XeG0VqKYUBCdF9xvBQr+BTYGgob8TGxG2GiVdQPodCqDfHZsv5GHIJUfJFFa/fGepONTKTuxIKA+dpA9wHgAUSMg0COTUWb+N/SGMupKh2DFSR2XoSgjB3+Mb6Ib57bOjoEPEl7Y8qoAXyoOST8Ej45Hnx0XoyzHaws+47myTQPijlvOeRzzbc5Rz7zEg7ZdliD2Kx+4nzoEkdfkdgZCCVbWvo6IiOPIGSAMAnIxx+4JNYJ/cdCTwf3zYIBJZVuxiNS1mrouxJ+3HmjCiss8cEXzoaHkb+DH8EkBl0wZixX8gnk7P0MctliArMa4r2gis1zdm/t0+i0IgKUA1RBPtqgKAxdHdd+4EDOS6fp5xJZM2srw7dujbdCG2wBDDY/2p3J35Y+FACjbDSuzsN3sRjV37hjnOdw88+RV101KFFuy+5gFJINLjcQLPmxQAvi8UepQWOKV2runRRI0YHVepk0Ao91Nedr4B1pj/b5B+ko5oYrYcmzlR7aNGq3BjfNUPFmJkAVrU83QHCji9x4/wAs+R1I77UOINQX1F5CwlaUy47jlZCojSMVK8+QuuX7bd53v41de3H+nWBD3m/VkQ73+D+h3aTvevYgHVavQaCNSKUJpYtRPOd7GyXXWw7gtFBGKLB39PlX/pHdy/4z6V7YoUDT6Pu3dpWBJZvzMuk0mmGw0qhDodawayZfUYUgjHqxV/i33mb0z9EuNd3apyP1yRbq+3DKZYcLw/nmWjV9tHJsXcNihGigxyNX6SHRLC0fiDIkXYIhd/ntf2+BkGTs1OobUFWyCLN2xuwORRHVT/AnRif64k1YVTJ2X6e773GJjY96aeLQkjahAoasC7BBcYzfVodKADHYiKsU6Y70ulqq3URQq9l8dBUjC9wNk05I440JkZvxVgzAMOlbGIHtEZyBeDbqMg8qeMAkm7zbmkHqNI90GkEhVmAoe2RycVf96bxwSCKx1DH1PvVbHrb6nT1/6rJnaVaQiEqP1NHj2FrWUCqGI9u1FNECUPdoiwZ+oX65k/ERSfrPveRRft5ALE2f7H7dZGaNfpvjB89de/him36A+nAynK93YMTZpvqLvBLXki73ZO488VXSpy/LVo1jgZApXYCL0I/uIc9eshBGxoN4IBbvp/qnpIVAAsGypFqfnOfBPj5Pm76t8mnikJLpjcRZN84FE/sLIAIyKsjoiv57JV7dWw69qs9gxNKnbpXmKsV94KA5Q/0gRv8Ap9mZihIRlmRDtX9LYAtUsAHFEkZYkrfIHAArp6PTuRIEWwEsxkKS+BZHO4gkkBSKWibK31w5BlMziFjyeKhS1pVOQwzTGBLkagP7uNclhUyClkAZhJXsDvBYiMpimq2rsH1Rqe1SLDOzajSswR4mc3GCw90TEMY3AskgOrjBQtTpRvqb6O0He42m06pptcV9SPURqC0jZuPVKF9TUQnbYKt6qH3pJsV45FHw/nOE5TTmuYa2J3gk/TZDG2ENXLYeynxUy2ODPPSmKgtAxD1bUQM1OzZrhJW1vQ6+LWRDU6ZlkVxWbBUXYDgcP5OSCCCCRnrCO6dr1nadQ2l1cTQyAgh6LRTLRqSCQqoeNjYGQ6bdsiK4ZVTg5XFLZ92Ry7FZCVCBkDMA2t99+B0YMEBkbrrX5BucREu7cQbILWcAgZwBdkc5Nkiyc111oYhF+peFULTE4GDjFbuCb4JA4HUwPtX5bHk+O81pVwobCc04fyCf2w6IsiZSnahZNNE4mWOhIxCrJHIPZEnfcqN0h+FeoL/TLoTaaXvOpQli1FlXQavjAG71DuokbQAaZj1yx+MUH5f600jEkjWdkgnN1dq2s0oFmrW9MFpzuCoCoKgDqT3MH93IYfIxM6yY/P8ALeOlG7RKuNlvNyeEGNSEZkPF8YK8ZDLFBasRp1DSdtg0LFdbGR+p21UMhUn3JNAzFipWiQ8cYs+4bnAzg4B9SKHgdj+pfy7IxWyrP6e4lx7lVi5JAIBYqRfiCP3YcYalzDg3NkQLSGAyvG81KTG3V8TlK1zj8bKSQFEWSzahiz9S6bbtKHelfi1ovzHau1a4D26PWSaUsQuE7hpw7WSu5S0mk0ygmlJBT9W0nSf+jx3Q6b6h+oOzMQB3PtUOs9xJZp+zap4l2CwCh0/c5WYFR+kFsA7mjxvPaaKVjT2leIKPz2B7ZDP+BCKRpW2PhuqroAj6waSNBEx9wI9vtIrBya5HOfHg3kDrFcPk7rsndY4quCSK4+4sWBkN7zfKjPEp7ikM6gopBbuoPwp/FYyCHJ+D/d419DRq8pYN/hIyfKn2mhwduAfdZ5B56lIZNlUbJJJY4sUuMfcULNAAfNBgs3xztDKziNVTtJGVYNJ31shQDoofx7psq34eAOw+lxqVqwTtvcMWVogggkX42gHHkgEWdFLbB4wQ15s0psgWtk8WSccX+/TG2KBkeXv17EvtkA2SpJ+Ou/lifyZgA3wWOvpaahVWsFjQC/4RXNeCf6lwozk8dHhL95oUpOa91iqB5sHjyeMdK3inFzaQ2EOpI5wCpYgsi9mbTBCCEPYgAiPZUtsqOi69RCeFP6hQG4DcCq3zwOaG3J/UegZHWPagLGmJ3D3Mt5psYu/8WaJI6kVxOjHi5O/QhiiqApUaZOwLOe3YbIUADYLMCdAHQhjWiATZJBFDG26qiLAqhdEjNnoCeYEYK4BvcSTnFKKOQbrdRHnPS0vcheAIVbswDdkCFvwUuzMEBcn+wAj4PnSkeSSsarGSUF7QS1k1eQCp2gjNi6zk+OowM7OwNEe3buIAPPkizVf8scie3241a8fpbDk1kdzyDk2WyTh4+nSKu9LGhQQ8jlCcE8wkMSPuZkClfzl6X/DHRDT/AEjo9QxI/PavuGrAChdqwSTdvRQorcrHSlt7GyzOi2gEh4t/HTWDWfiFqtKoTb2rtXaO2vtcMS+oU95Ja6PqIO4iMohNIAWZf09VufxN45s/yz7Z+J49DZyEXK8xyCvVXZ9+1lLEHGaKqArRtZL8uheEFuz+5MAAm9D/AIiyGfTdm0kZAkk772tdpsWmkhKTEvdbQ9AAbizXjqV/AQpou9fWXcZnUafSfRHeFmfaKT81qINTH/S1bl0MxYlSoCgsCPabXTCYpDBGWcyT+m+KcRlEISXl9a1drtLGWYhMdaV5a7u3vVZUEp1NtvIkZonZuA8VgVR2UxqjZwwN4XIIogjoXReyKXeCCul1ZAOc/l2VQGIPutKUUTvrHA6rj51M8Xqp6jMs7SN/q/Myr2lDNr9dMpVdHQ9qNfbTqxZVVUdyE0eXfrRt/wBU98e/aurWMjDbPS08UIBwoxsAJUZzYs9di/h8gj+ivpqDaFb8i8hIJAIn1M+p3ZJORMCWwPNKOulHKQFVaXQIGvbeMMGV1c6OxplLsR0HgjRZQWANWVd0gwLQsFAJoBxS4IGCQAM0KyMHq3upJbYKOCaO0jaykkEcHkggH44PSgGSjkjVDHC4jIKRydHKGGNAjRq7MB/tePaM34ICyn8meKxgAZJFCqJAznhuB+3ij02sbx7gS49RSWIYhveSMlSAST+ogBWU1kYHzIk3K7gJr24igbqCCdhSwI1tiR1lRW6qg/ZfLKRAXLFroFwoAJVbUVtGDWSxJsfGCQLKAgOwMADi8UTYsci/NE8sfgkxH5xHmaOZOSwOYyPHcoBLQlyeLMcN6ehK6TPSnlkSYS13sVoZ1UjcbwgBvL7sHau4ajQMz6dyu6PYVu1BDAt7TYBtVogf4uL90N3Ps+h7rCkOtgGoWKX1FOQwfay4IKkCm93uIZiL/SOns7ipBZk/MhY5pG6v52schbQIA2WcDsfJUeQCBqsC7UXX9I8+dp+Bm/vXjPVsnYvYs0NqgYwCKP3vN3d9Tw+w6tHmOCc5tmOKNpvUXH1n7CQl460fHbTIxSRWVJA8oAVvxeRn8rpB0l+FunVfpg4B9Xueqle79wB0UZDXYvbEVAoqAQ1Bg27k78YXeT62hjZi35fsmijXdVEPJrZBwOA01m7JthYG2pKeqtuehjuR2YCpfF+rPppFCHB1DU5dkeCYHMJBo7WR6nKcvNESVUTz9WJi2DpiSGLUCRSw26mEkAi/eyXRrGCykUAwJJyT1ineNOH0rIxstoZZjgUTB+ZKggV5gAwKChCBuBPUfvX+Ns76NchawUE9LGJm45+oZ4ZsdSkzj/p+4kAa3LgzSn31L071rb95PBH1xok1n0t3mBiFOn07yxOFFxv22Ya1NpGT6iQrp3Jr+6eRc3u6G/CvuUvbPr/6Z1UVt+a17dt1CFiqyw92gn7cSwTbfoyTpq0S9nraeE1tDI1VuN5JYtKoWIBtFezNobUFe3VVPk+C2iASDoKST9cuEspokNZrjFMM/wDt8HPXe5Rbs88/Izng/ANfP+/RvZvzyNGe3VgHkPUnywPU6+NbJYgkE6Yjx+7SgIwIAtnF3nCtnzzmx4voyNCCwJBAsAUD5NeB/wDPB682pffqOZRv3G6b8bAYHZBI3/t0F31KgBtknQbzKsjHa3tZgKIBwCRn7ECvBzuvo+JRQIwSCcYo7iDQ4ojkVWLFHpEtx+uZIthSHLE7B2OpBGiQTtgT5/2nzp/oetzgbmAwxzZNsLB4vJHPI+PJ/rAK/tvaAfgEkAjAOAMfNm7B6UmHqw49J4Y12JSAN66poNpgpB2yjfUnQ8LseD9FiYEJGAckrk/povkHyT9xx+3QUg9Vkdgo2jc1DJJFUPFAChfyT9ulXWZoYZJezfB8g/ntELMx/ZifJ/bZ1saJ+kqCWXdXjgnPzeRz4qv456j9UqbjQIBonPgkivgeaoDx4wEzlMlb9qUBx1C9m2AG2RslSAP9vZepJUg+R/h9jmiWNyKh4UFbA4Gbo83d5u+mkhSwRdFbF/c1kGx48H+erWPRlpKPotw8hy8kfFmu+6dszTDGQTlishkUdpJS3UDooPVAoX8us/pWMaf6W7DAtEf2R26UkggltV6E75tjQknYrRXaCVFgAD88vxBnOr+ufq3UOKZvqHucSAUNq6OaXRxYAC36OmRSQATlj7iSa7PWCmOffxF/QHiV49aHDcVk+WqjuTFYkwj17eOiEaptiMjx2nNKHZUEMksQLeD9Vr6rhMnd/pqJtrJu12rKsLojVQIu1v1blEhok4smyaq5fhvIdN9GfiJqV/VrdX9L9jBBIZYJ5O4NqTfCiSI7bUFixpqVV6t5gow1FjsKCHu8syMkwDB+/wDKsXkMdXXsyqVT2uO0ZAmnEcgbRbZZiWi9mnBY/wB5MwJoWNrOErHACIp4wvz04D/wknn2rz5JeMEn/MnA+3HVNuYyzWeRckzZQu+Y5LyHIH3fylCz5CZ0jdux6lFZEAV2VQCpL9VY8md6dp+996mahv7p3EjFkomrlRd+4t7vaTg1njrtv6ahbR/TX0/AWDGHsXaA5AABdtDC8rLQX9UrOwJAOQcHAHfqGICITGH9sAjy2vgbIKkHTjyD/wBDwCYwQgAHg5JIAvIBJGOcGhYA8V4moJ2LBiMlWYVgUHqiDZJ4ySbz+3Soxzs7RwBmDRKXDkk/I2AB5+V7FgNKzHqV6kkN7d5bJAGCBV2DyCQebzVf7kvsWr1MHcaokijdiubq8XePmh0fLNK8Z0esnZlT8j7fRYkOioUBSAwIIDaYdRpPA9Ql+LUe0Br95JHmgALrJHxwfA0kYViCFIoXyTZz5ORis8DHHTN83oqs0M85UNI2u0IIJ3GHPZHPVfLFdIddUT53oHaMXvjBNpyWJPkjBBBzVm//AFJBmJ3ApjcLIOBdsCRXyAL+/X//2Q==
-
+
+
-
+
+
+
+
+
+ Our first company's blogpost !
+ mail.group
+
+ html
+ sit amet, consectetur adipiscing elit. Pellentesque et quam sapien, in sagittis tellus.
+Praesent vel massa sed massa consequat egestas in tristique orci. Praesent iaculis libero et neque vehicula iaculis. Vivamus placerat tincidunt orci ac ornare. Proin ut dolor fringilla velit ultricies consequat. Maecenas sit amet ipsum non leo interdum imperdiet. Donec sapien mi.
+
+Fusce tempus elit volutpat mi auctor adipiscing. Nam congue luctus suscipit. Sed tellus libero, venenatis ut mollis ut, luctus quis dui. Sed rhoncus pulvinar orci in consectetur.
+
+Nulla turpis leo, rhoncus ut egestas sit amet, consectetur vitae urna. Mauris in dolor in sapien tempus vehicula.]]>
+ comment
+
+
+
+
+ mail.group
+
+ html
+
+
+ comment
+
+
+
+
+ mail.group
+
+ html
+
+
+ comment
+
diff --git a/addons/portal/portal_view.xml b/addons/portal/portal_view.xml
index 794c8ed788b..c8db077edc7 100644
--- a/addons/portal/portal_view.xml
+++ b/addons/portal/portal_view.xml
@@ -2,21 +2,6 @@
-
-
- Portals
- res.portal
- form
- tree,form
-
- {'form_view_ref': 'portal.portal_form_view'}
-
-A portal helps defining specific views and rules for a group of users (the
-portal group). A portal menu, widgets and specific groups may be assigned to
-the portal's users.
-
-
-
Portal List
@@ -28,7 +13,6 @@ the portal's users.
-
Portal Form
@@ -63,42 +47,23 @@ the portal's users.
-
-
- Company's news feed
+
+
+ Portals
+ res.portal
+ form
+ tree,form
+
+ {'form_view_ref': 'portal.portal_form_view'}
+
+A portal helps defining specific views and rules for a group of users (the
+portal group). A portal menu, widgets and specific groups may be assigned to
+the portal's users.
+
-
-
- News
- mail.group
-
- form
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
diff --git a/addons/portal/res_user.py b/addons/portal/res_user.py
index 127c3079b29..9ed95a8a740 100644
--- a/addons/portal/res_user.py
+++ b/addons/portal/res_user.py
@@ -30,7 +30,5 @@ class res_users(osv.osv):
string='Related Partner'),
}
-res_users()
-
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/portal/res_user_view.xml b/addons/portal/res_user_view.xml
index 492c2ec5559..d481b865b79 100644
--- a/addons/portal/res_user_view.xml
+++ b/addons/portal/res_user_view.xml
@@ -1,6 +1,7 @@
+
res.portal.users.form
@@ -13,5 +14,6 @@
+
diff --git a/addons/portal/security/portal_security.xml b/addons/portal/security/portal_security.xml
index 37e94581d77..4a493204d67 100644
--- a/addons/portal/security/portal_security.xml
+++ b/addons/portal/security/portal_security.xml
@@ -1,11 +1,11 @@
-
+
-
+
Portal Member
- Portal members can access information provided by the portal menu and the others module it's linked with. Also, portal members are chrooted in a specific menu.
+ Portal members can access information through the portal menu. Also, they are chrooted in this specific menu.
diff --git a/addons/portal_claim/__openerp__.py b/addons/portal_claim/__openerp__.py
index 9fba57ba9ac..197227cc45f 100644
--- a/addons/portal_claim/__openerp__.py
+++ b/addons/portal_claim/__openerp__.py
@@ -26,15 +26,15 @@
'category': 'Tools',
'complexity': "easy",
'description': """
-This module adds claim menu and features to your portal if claim and portal are
+This module adds claim menu and features to your portal if claim and portal are
installed.
""",
'author': 'OpenERP SA',
'depends': ['crm_claim','portal'],
'data': [
- 'security/portal_security.xml',
'portal_claim_view.xml',
- "security/ir.model.access.csv",
+ 'security/ir.model.access.csv',
+ 'security/portal_security.xml',
],
'installable': True,
'auto_install':True,
diff --git a/addons/portal_claim/security/portal_security.xml b/addons/portal_claim/security/portal_security.xml
index feff94ed43c..e902bd043ad 100644
--- a/addons/portal_claim/security/portal_security.xml
+++ b/addons/portal_claim/security/portal_security.xml
@@ -3,7 +3,7 @@
- Personal Claims
+ Portal Personal Claims[('partner_id','child_of',user.partner_id.id)]
diff --git a/addons/portal_crm/__openerp__.py b/addons/portal_crm/__openerp__.py
index 044f3280ce3..4fe023ccb48 100644
--- a/addons/portal_crm/__openerp__.py
+++ b/addons/portal_crm/__openerp__.py
@@ -26,18 +26,20 @@
'category': 'Tools',
'complexity': "easy",
'description': """
-This module adds crm menu and features (contact form) to your portal if crm and
-portal are installed.
+This module adds a contact page (with a contact form creating a lead when
+submitted) to your portal if crm and portal are installed.
""",
'author': 'OpenERP SA',
'depends': ['crm','portal'],
'data': [
- 'security/ir.model.access.csv',
'wizard/contact_view.xml',
],
- 'installable': True,
- 'auto_install':True,
+ 'installable': True
+, 'auto_install':True,
'category':'Hidden',
+ 'css': [
+ 'static/src/css/portal_crm.css',
+ ],
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/portal_crm/security/ir.model.access.csv b/addons/portal_crm/security/ir.model.access.csv
deleted file mode 100644
index 08145a00f54..00000000000
--- a/addons/portal_crm/security/ir.model.access.csv
+++ /dev/null
@@ -1,2 +0,0 @@
-id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
-
diff --git a/addons/portal_crm/static/src/css/portal_crm.css b/addons/portal_crm/static/src/css/portal_crm.css
new file mode 100644
index 00000000000..0589eb92e71
--- /dev/null
+++ b/addons/portal_crm/static/src/css/portal_crm.css
@@ -0,0 +1,42 @@
+ /* Root container */
+.openerp .oe_portal_crm_contact {
+ width: 800px;
+ margin: auto;
+ padding: 8px 0 0 0;
+}
+
+/* Contact form section */
+.openerp .oe_portal_crm_contact .oe_portal_crm_contact_form {
+ margin-right: 10px;
+}
+.openerp .oe_portal_crm_contact .oe_portal_crm_contact_form input[type="text"] {
+ width: 40%;
+}
+
+/* Offices list section */
+.openerp .oe_portal_crm_contact .oe_portal_crm_office {
+ background: #DDD;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+ -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
+ -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
+ -o-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
+ -box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
+}
+.openerp .oe_portal_crm_contact .oe_portal_crm_office * {
+ background: transparent !important;
+}
+.openerp .oe_portal_crm_contact .oe_portal_crm_office .oe_fold_column.oe_kanban_record {
+ float: none;
+ display: block;
+ width: 100%;
+ margin-bottom: 5px;
+ padding: 5px;
+}
+.openerp .oe_portal_crm_contact .oe_portal_crm_office li:last-child {
+ margin-bottom: 1em;
+}
+.openerp .oe_portal_crm_contact .oe_portal_crm_office ul:last-child li:last-child {
+ margin-bottom: 0;
+}
diff --git a/addons/portal_crm/wizard/contact.py b/addons/portal_crm/wizard/contact.py
index be21decafa9..505bb62bb16 100644
--- a/addons/portal_crm/wizard/contact.py
+++ b/addons/portal_crm/wizard/contact.py
@@ -1,33 +1,90 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2011 OpenERP S.A ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
from openerp.osv import osv, fields
+from openerp import SUPERUSER_ID
class crm_contact_us(osv.TransientModel):
""" Create new leads through the "contact us" form """
_name = 'portal_crm.crm_contact_us'
_description = 'Contact form for the portal'
_inherit = 'crm.lead'
+ _columns = {
+ 'company_ids' : fields.many2many('res.company', string='Companies', readonly=True),
+ }
+
+ def _get_companies(self, cr, uid, context=None):
+ """
+ Fetch companies in order to display them in the wizard view
+
+ @return a list of ids of the companies
+ """
+ r = self.pool.get('res.company').search(cr, uid, [], context=context)
+ return r
+
+ def _get_current_user_email(self, cr, uid, context=None):
+ """
+ If the user is logged in (i.e. not anonymous), get the user's email to
+ pre-fill the email_from field.
+
+ @return current user's email if the user isn't "anonymous", None otherwise
+ """
+ user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
+
+ if (user.login != 'anonymous'):
+ return user.user_email
+ else:
+ return None
+
+ _defaults = {
+ 'email_from' : _get_current_user_email,
+ 'company_ids' : _get_companies,
+ }
def create(self, cr, uid, values, context=None):
- """
- Since they potentially sensitive, we don't want any user to be able to
- read datas generated through this module. That's why we'll write those
- information in the crm.lead table and leave blank entries in the
- portal_crm.crm_contact_us table. This is why the create() method is
- overridden.
+ """
+ Since they potentially sensitive, we don't want any user to be able to
+ read datas generated through this module. That's why we'll write those
+ information in the crm.lead table and leave blank entries in the
+ portal_crm.crm_contact_us table. This is why the create() method is
+ overwritten.
"""
crm_lead = self.pool.get('crm.lead')
-
- """
- Because of the complex inheritance of the crm.lead model and the other
- models implied (like mail.thread, among others, that performs a read
- when its create() method is called (in method message_get_subscribers()),
- it is quite complicated to set proper rights for this object.
- Therefore, user #1 will perform the creation until a better workaround
- is figured out.
- """
- crm_lead.create(cr, 1, dict(values,user_id=False), context)
- """ Create an empty record in the portal_crm.crm_contact_us table """
- return super(crm_contact_us, self).create(cr, uid, {})
+ """
+ Because of the complex inheritance of the crm.lead model and the other
+ models implied (like mail.thread, among others, that performs a read
+ when its create() method is called (in method message_get_subscribers()),
+ it is quite complicated to set proper rights for this object.
+ Therefore, user SUPERUSER_ID will perform the creation until a better
+ workaround is figured out.
+ """
+ values['contact_name'] = values['name']
+ crm_lead.create(cr, SUPERUSER_ID, dict(values,user_id=False), context)
+
+ """
+ Create an empty record in the portal_crm.crm_contact_us table.
+ Since the 'name' field is mandatory, give an empty string to avoid an integrity error.
+ """
+ return super(crm_contact_us, self).create(cr, uid, {'name': ' '})
def submit(self, cr, uid, ids, context=None):
""" When the form is submitted, redirect the user to a "Thanks" message """
@@ -36,5 +93,6 @@ class crm_contact_us(osv.TransientModel):
'view_type': 'form',
'res_model': self._name,
'res_id': ids[0],
- 'view_id': self.pool.get('ir.model.data').get_object_reference(cr, uid, 'portal_crm', 'wizard_contact_form_view_thanks')[1]
+ 'view_id': self.pool.get('ir.model.data').get_object_reference(cr, uid, 'portal_crm', 'wizard_contact_form_view_thanks')[1],
+ 'target': 'inline'
}
diff --git a/addons/portal_crm/wizard/contact_view.xml b/addons/portal_crm/wizard/contact_view.xml
index 904326ea409..96d55722752 100644
--- a/addons/portal_crm/wizard/contact_view.xml
+++ b/addons/portal_crm/wizard/contact_view.xml
@@ -8,16 +8,70 @@
portal_crm.crm_contact_usform
-
@@ -31,9 +85,9 @@
99
@@ -820,7 +831,7 @@
-
+
diff --git a/addons/project/static/src/js/project.js b/addons/project/static/src/js/project.js
index 510fcbb99e7..c8250edcafd 100644
--- a/addons/project/static/src/js/project.js
+++ b/addons/project/static/src/js/project.js
@@ -1,25 +1,61 @@
openerp.project = function(openerp) {
openerp.web_kanban.KanbanView.include({
- on_groups_started: function() {
+ project_display_members_names: function() {
+ /*
+ * Set avatar title for members.
+ * In kanban views, many2many fields only return a list of ids.
+ * We can implement return value of m2m fields like [(1,"Adminstration"),...].
+ */
var self = this;
- self._super.apply(this, arguments);
- if (this.dataset.model === 'project.project') {
- /* Set avatar title for members.
- In many2many fields, returns only list of ids.
- we can implement return value of m2m fields like [(1,"Adminstration"),...].
- */
- var members_ids = [];
- this.$element.find('.oe_kanban_project_avatars img').each(function() {
- members_ids.push($(this).data('member_id'));
- });
- var dataset = new openerp.web.DataSetSearch(this, 'res.users', self.session.context, [['id', 'in', _.uniq(members_ids)]]);
- dataset.read_slice(['id', 'name']).then(function(result) {
- _.each(result, function(v, k) {
- self.$element.find('.oe_kanban_project_avatars img[data-member_id=' + v.id + ']').attr('title', v.name).tipsy({
- offset: 10
- });
+ var members_ids = [];
+
+ // Collect members ids
+ self.$element.find('img[data-member_id]').each(function() {
+ members_ids.push($(this).data('member_id'));
+ });
+
+ // Find their matching names
+ var dataset = new openerp.web.DataSetSearch(self, 'res.users', self.session.context, [['id', 'in', _.uniq(members_ids)]]);
+ dataset.read_slice(['id', 'name']).then(function(result) {
+ _.each(result, function(v, k) {
+ // Set the proper value in the DOM
+ self.$element.find('img[data-member_id=' + v.id + ']').attr('title', v.name).tipsy({
+ offset: 10
});
});
+ });
+ },
+ project_display_categ_names: function() {
+ /*
+ * Set proper names to project categories.
+ * In kanban views, many2many fields only return a list of ids.
+ * Therefore, we have to fetch the matching data by ourselves.
+ */
+ var self = this;
+ var categ_ids = [];
+
+ // Collect categories ids
+ self.$element.find('span[data-categ_id]').each(function() {
+ categ_ids.push($(this).data('categ_id'));
+ });
+
+ // Find their matching names
+ var dataset = new openerp.web.DataSetSearch(self, 'project.category', self.session.context, [['id', 'in', _.uniq(categ_ids)]]);
+ dataset.read_slice(['id', 'name']).then(function(result) {
+ _.each(result, function(v, k) {
+ // Set the proper value in the DOM and display the element
+ self.$element.find('span[data-categ_id=' + v.id + ']').text(v.name);
+ });
+ });
+ },
+ on_groups_started: function() {
+ var self = this;
+ self._super.apply(self, arguments);
+
+ if (self.dataset.model === 'project.project') {
+ self.project_display_members_names();
+ } else if (self.dataset.model === 'project.task') {
+ self.project_display_categ_names();
}
}
});
diff --git a/addons/project_issue/__openerp__.py b/addons/project_issue/__openerp__.py
index fa7d002f571..8aeecf2985e 100644
--- a/addons/project_issue/__openerp__.py
+++ b/addons/project_issue/__openerp__.py
@@ -25,7 +25,7 @@
'version': '1.0',
'category': 'Project Management',
"sequence": 22,
- "summary": "Multi Level Support",
+ "summary": "Support, Bug Traker, Helpdesk",
'description': """
This module provides Issues/Bugs Management in Project.
=======================================================
@@ -39,7 +39,7 @@ and decide on their status as they evolve.
'website': 'http://www.openerp.com',
'images': ['images/issue_analysis.jpeg','images/project_issue.jpeg'],
'depends': [
- 'base_status',
+ 'base_status',
'crm',
'project',
],
@@ -66,6 +66,9 @@ and decide on their status as they evolve.
'auto_install': False,
'application': True,
'certificate' : '001236490750848623845',
+ 'js': [
+ 'static/src/js/project_issue.js',
+ ],
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/project_issue/board_project_issue_view.xml b/addons/project_issue/board_project_issue_view.xml
index cedcd85d4fc..8bc34177d7d 100644
--- a/addons/project_issue/board_project_issue_view.xml
+++ b/addons/project_issue/board_project_issue_view.xml
@@ -18,7 +18,7 @@
-
+
diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py
index a7c9d2b5bc3..4c973eed068 100644
--- a/addons/project_issue/project_issue.py
+++ b/addons/project_issue/project_issue.py
@@ -236,7 +236,7 @@ class project_issue(base_stage, osv.osv):
'date_closed': fields.datetime('Closed', readonly=True,select=True),
'date': fields.datetime('Date'),
'channel_id': fields.many2one('crm.case.channel', 'Channel', help="Communication channel."),
- 'categ_id': fields.many2one('crm.case.categ', 'Category', domain="[('object_id.model', '=', 'crm.project.bug')]"),
+ 'categ_ids': fields.many2many('project.category', string='Categories'),
'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority', select=True),
'version_id': fields.many2one('project.issue.version', 'Version'),
'stage_id': fields.many2one ('project.task.type', 'Stage',
@@ -279,7 +279,6 @@ class project_issue(base_stage, osv.osv):
'section_id': lambda s, cr, uid, c: s._get_default_section_id(cr, uid, c),
'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.helpdesk', context=c),
'priority': crm.AVAILABLE_PRIORITIES[2][0],
- 'categ_id' : lambda *a: False,
}
_group_by_full = {
@@ -304,11 +303,11 @@ class project_issue(base_stage, osv.osv):
def convert_issue_task(self, cr, uid, ids, context=None):
if context is None:
context = {}
-
+
case_obj = self.pool.get('project.issue')
data_obj = self.pool.get('ir.model.data')
task_obj = self.pool.get('project.task')
-
+
result = data_obj._get_id(cr, uid, 'project', 'view_task_search_form')
res = data_obj.read(cr, uid, result, ['res_id'])
id2 = data_obj._get_id(cr, uid, 'project', 'view_task_form2')
@@ -351,23 +350,6 @@ class project_issue(base_stage, osv.osv):
'nodestroy': True
}
-
- def _convert(self, cr, uid, ids, xml_id, context=None):
- data_obj = self.pool.get('ir.model.data')
- id2 = data_obj._get_id(cr, uid, 'project_issue', xml_id)
- categ_id = False
- if id2:
- categ_id = data_obj.browse(cr, uid, id2, context=context).res_id
- if categ_id:
- self.write(cr, uid, ids, {'categ_id': categ_id})
- return True
-
- def convert_to_feature(self, cr, uid, ids, context=None):
- return self._convert(cr, uid, ids, 'feature_request_categ', context=context)
-
- def convert_to_bug(self, cr, uid, ids, context=None):
- return self._convert(cr, uid, ids, 'bug_categ', context=context)
-
def copy(self, cr, uid, id, default=None, context=None):
issue = self.read(cr, uid, id, ['name'], context=context)
if not default:
@@ -376,7 +358,7 @@ class project_issue(base_stage, osv.osv):
default['name'] = issue['name'] + _(' (copy)')
return super(project_issue, self).copy(cr, uid, id, default=default,
context=context)
-
+
def write(self, cr, uid, ids, vals, context=None):
#Update last action date every time the user change the stage, the state or send a new email
logged_fields = ['stage_id', 'state', 'message_ids']
@@ -463,7 +445,7 @@ class project_issue(base_stage, osv.osv):
# -------------------------------------------------------
# Mail gateway
# -------------------------------------------------------
-
+
def message_new(self, cr, uid, msg, custom_values=None, context=None):
""" Overrides mail_thread message_new that is called by the mailgateway
through message_process.
@@ -485,7 +467,7 @@ class project_issue(base_stage, osv.osv):
custom_values.update(self.message_partner_by_email(cr, uid, msg.get('from'), context=context))
res_id = super(project_issue, self).message_new(cr, uid, msg, custom_values=custom_values, context=context)
- self.convert_to_bug(cr, uid, [res_id], context=context)
+ # self.convert_to_bug(cr, uid, [res_id], context=context)
return res_id
def message_update(self, cr, uid, ids, msg, update_vals=None, context=None):
@@ -515,7 +497,7 @@ class project_issue(base_stage, osv.osv):
update_vals[key] = res.group(2).lower()
return super(project_issue, self).message_update(cr, uid, ids, update_vals=update_vals, context=context)
-
+
# -------------------------------------------------------
# OpenChatter methods and notifications
# -------------------------------------------------------
@@ -588,18 +570,18 @@ project()
class account_analytic_account(osv.osv):
_inherit = 'account.analytic.account'
_description = 'Analytic Account'
-
+
_columns = {
'use_issues' : fields.boolean('Issues Tracking', help="Check this field if this project manages issues"),
}
-
+
def on_change_template(self, cr, uid, ids, template_id, context=None):
res = super(account_analytic_account, self).on_change_template(cr, uid, ids, template_id, context=context)
if template_id and 'value' in res:
template = self.browse(cr, uid, template_id, context=context)
res['value']['use_issues'] = template.use_issues
return res
-
+
def _trigger_project_creation(self, cr, uid, vals, context=None):
res = super(account_analytic_account, self)._trigger_project_creation(cr, uid, vals, context=context)
return res or vals.get('use_issues')
diff --git a/addons/project_issue/project_issue_demo.xml b/addons/project_issue/project_issue_demo.xml
index b3fb4582cf2..298dd6a25d9 100644
--- a/addons/project_issue/project_issue_demo.xml
+++ b/addons/project_issue/project_issue_demo.xml
@@ -1,236 +1,239 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ Little problem
+
+
+ PBCK
+
+
+ Deadly bug
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ 5
+
+
+
+
+
+
+ Bug in Accounts module
+ agr@agrolait.com
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ 3
+
+
+
+
+
+ Program not giving proper output
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ 4
+
+
+
+
+
+ Output incorrect
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ 3
+
+
+
+
+
+
+ Problem loading page
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ 3
+
+
+
+
+
+
+ Page not Found
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ 3
+
+
+
+
+
+
+ Programming Error
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ 2
+
+
+
+
+
+
+ Logical Error in Program
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ 2
+
+
+
+
+
+
+ Constraint Error
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ 2
+
+
+
+
+
+ Error in Program
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ 2
+
+
+
+
+
+
+ Patches Error in Program
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ 4
+
+
+
+
+
+
+ New Features To Be Added
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ 1
+
+
+
+
+
+
+ Add menus to the module
+ info@opensides.be
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ 3
+
+
+
+
+
+
+ Include Attendance sheet in Project
+ contact@tecsas.fr
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ 3
+
+
+
+
+
+
+ Create new object
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ 4
+
+
+
+
+
+
+ Improve Reports in HRMS
+
+
-
-
+
+
+ 2
+
+
+
+
+
+
+ Improve Reports in PMS
+
+
-
+
+
+
+
diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml
index e730805fb46..4cd5bb9ba6a 100644
--- a/addons/project_issue/project_issue_view.xml
+++ b/addons/project_issue/project_issue_view.xml
@@ -16,9 +16,9 @@
action_project_issue_unread
-
+ action
-
+ project.issueclient_action_multi
@@ -34,9 +34,9 @@
action_project_issue_read
-
+ action
-
+ project.issueclient_action_multi
@@ -133,14 +133,12 @@