From 0e0054b54a1d8afb8b924e53daac7b1712e48879 Mon Sep 17 00:00:00 2001 From: Shane Loretz Date: Tue, 16 May 2017 11:55:37 -0700 Subject: [PATCH] Deleted code that was not moved to this repo --- ChangeList.txt | 32 - joint_state_publisher/CHANGELOG.rst | 104 - joint_state_publisher/CMakeLists.txt | 15 - .../joint_state_publisher | 440 --- joint_state_publisher/package.xml | 22 - joint_state_publisher/screenshot.png | Bin 11070 -> 0 bytes joint_state_publisher/test/mimic_chain.urdf | 27 - joint_state_publisher/test/mimic_cycle.urdf | 28 - .../test/test_mimic_chain.launch | 15 - .../test/test_mimic_cycle.launch | 15 - robot_model/CHANGELOG.rst | 74 - robot_model/CMakeLists.txt | 4 - robot_model/documentation/urdf_diagram.odg | Bin 52597 -> 0 bytes robot_model/documentation/urdf_diagram.png | Bin 176852 -> 0 bytes robot_model/package.xml | 44 - urdf/CHANGELOG.rst | 106 - urdf/CMakeLists.txt | 67 - urdf/include/urdf/model.h | 74 - urdf/mainpage.dox | 159 - urdf/package.xml | 40 - urdf/src/model.cpp | 193 - urdf/src/rosconsole_bridge.cpp | 38 - urdf/test/fail_pr2_desc_bracket.urdf | 20 - urdf/test/fail_pr2_desc_double.urdf | 39 - urdf/test/fail_pr2_desc_double_joint.urdf | 38 - urdf/test/fail_pr2_desc_loop.urdf | 39 - .../fail_pr2_desc_no_filename_in_mesh.urdf | 3377 ----------------- urdf/test/fail_pr2_desc_no_joint2.urdf | 21 - urdf/test/fail_pr2_desc_parent_itself.urdf | 20 - urdf/test/fail_pr2_desc_two_trees.urdf | 39 - urdf/test/fail_three_links_one_joint.urdf | 25 - urdf/test/no_visual.urdf | 14 - urdf/test/one_link.urdf | 19 - urdf/test/pr2_desc.urdf | 3238 ---------------- urdf/test/pr2_desc_no_joint.urdf | 11 - urdf/test/singularity.urdf | 31 - urdf/test/test_robot.urdf | 425 --- urdf/test/test_robot_model_parser.cpp | 172 - urdf/test/test_robot_model_parser.launch | 19 - urdf/test/two_links_one_joint.urdf | 19 - urdf/urdfdom_compatibility.h.in | 94 - urdf_parser_plugin/CHANGELOG.rst | 76 - urdf_parser_plugin/CMakeLists.txt | 13 - .../include/urdf_parser_plugin/parser.h | 62 - urdf_parser_plugin/package.xml | 23 - 45 files changed, 9331 deletions(-) delete mode 100644 ChangeList.txt delete mode 100644 joint_state_publisher/CHANGELOG.rst delete mode 100644 joint_state_publisher/CMakeLists.txt delete mode 100755 joint_state_publisher/joint_state_publisher/joint_state_publisher delete mode 100644 joint_state_publisher/package.xml delete mode 100644 joint_state_publisher/screenshot.png delete mode 100644 joint_state_publisher/test/mimic_chain.urdf delete mode 100644 joint_state_publisher/test/mimic_cycle.urdf delete mode 100644 joint_state_publisher/test/test_mimic_chain.launch delete mode 100644 joint_state_publisher/test/test_mimic_cycle.launch delete mode 100644 robot_model/CHANGELOG.rst delete mode 100644 robot_model/CMakeLists.txt delete mode 100644 robot_model/documentation/urdf_diagram.odg delete mode 100644 robot_model/documentation/urdf_diagram.png delete mode 100644 robot_model/package.xml delete mode 100644 urdf/CHANGELOG.rst delete mode 100644 urdf/CMakeLists.txt delete mode 100644 urdf/include/urdf/model.h delete mode 100644 urdf/mainpage.dox delete mode 100644 urdf/package.xml delete mode 100644 urdf/src/model.cpp delete mode 100644 urdf/src/rosconsole_bridge.cpp delete mode 100644 urdf/test/fail_pr2_desc_bracket.urdf delete mode 100644 urdf/test/fail_pr2_desc_double.urdf delete mode 100644 urdf/test/fail_pr2_desc_double_joint.urdf delete mode 100644 urdf/test/fail_pr2_desc_loop.urdf delete mode 100644 urdf/test/fail_pr2_desc_no_filename_in_mesh.urdf delete mode 100644 urdf/test/fail_pr2_desc_no_joint2.urdf delete mode 100644 urdf/test/fail_pr2_desc_parent_itself.urdf delete mode 100644 urdf/test/fail_pr2_desc_two_trees.urdf delete mode 100644 urdf/test/fail_three_links_one_joint.urdf delete mode 100644 urdf/test/no_visual.urdf delete mode 100644 urdf/test/one_link.urdf delete mode 100644 urdf/test/pr2_desc.urdf delete mode 100644 urdf/test/pr2_desc_no_joint.urdf delete mode 100644 urdf/test/singularity.urdf delete mode 100644 urdf/test/test_robot.urdf delete mode 100644 urdf/test/test_robot_model_parser.cpp delete mode 100644 urdf/test/test_robot_model_parser.launch delete mode 100644 urdf/test/two_links_one_joint.urdf delete mode 100644 urdf/urdfdom_compatibility.h.in delete mode 100644 urdf_parser_plugin/CHANGELOG.rst delete mode 100644 urdf_parser_plugin/CMakeLists.txt delete mode 100644 urdf_parser_plugin/include/urdf_parser_plugin/parser.h delete mode 100644 urdf_parser_plugin/package.xml diff --git a/ChangeList.txt b/ChangeList.txt deleted file mode 100644 index 6b88f21..0000000 --- a/ChangeList.txt +++ /dev/null @@ -1,32 +0,0 @@ -= 1.10.10 = - * [[urdf_parser]] - * Package was removed - * [[urdf_parser_plugin]] - * New package containing base class for URDF parsers - * [[urdf]] - * Package now only depends on the plain URDF parser (no longer on [[collada_parser]]) - * Plugins are used to load other formats into URDF. - * [[collada_parser]] - * Interface as plugin for loading URDFs was added - -= 1.10.0 = - * Banch from 1.9.32 - * Build system updates - -= 1.9.0 = - * Branch from 1.8.0 - - * [[collada_parser]] - * Read dynamics info from collada <> - * collada parser fixes with inertial frames and parent_to_joint_origin_transform - * [[urdf_interface]] - * This package is now deprecated - * The stub that is in place points to header files installed from the urdfdom_headers library (available as deb) - * [[urdf_parser]] - * This package is now deprecated - * The stub that is in place points to header files and the libs installed from the urdfdom library (available as deb) - * [[srdf]] - * This package is now deprecated - * The stub that is in place points to header files and the libs installed from the srdfdom library (available as deb) - * [[urdf]] - * Use the rosconsole_bridge library (available as deb) to forward output from urdfdom to ROS console (effectively making things behave as they did before in terms of logging, but without having urdfdom depend on rosconsole, but on console_bridge, a much lighter dependency) diff --git a/joint_state_publisher/CHANGELOG.rst b/joint_state_publisher/CHANGELOG.rst deleted file mode 100644 index a73376b..0000000 --- a/joint_state_publisher/CHANGELOG.rst +++ /dev/null @@ -1,104 +0,0 @@ -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Changelog for package joint_state_publisher -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -1.12.9 (2017-04-26) -------------------- - -1.12.8 (2017-03-27) -------------------- -* [joint_state_publisher] Handle time moving backwards - Without this patch, joint_state_publisher dies whenever the ROS time moves backwards (e.g., when running `rosbag play --clock --loop`). -* Switch a couple more packages over to Chris and Shane. -* Fix rostest dependency. -* Add recursive mimic joint (`#177 `_) - * Add recursive mimic joint -* Contributors: Alessandro Tondo, Chris Lalancette, Martin Günther, Mike Purvis - -1.12.7 (2017-01-26) -------------------- -* Fixed a crash which happened when there were ``0`` free joints, opens empty window (`#178 `_) -* Contributors: Bence Magyar - -1.12.6 (2017-01-04) -------------------- -* Migrated slots in joint state publisher gui to Qt5 (`#147 `_) -* Now uses GridLayout to support large numbers of joints and small screens (`#150 `_) -* Contributors: Bence Magyar, Michał Barciś - -1.12.5 (2016-10-27) -------------------- -* Fix initial position of sliders in joint_state_publisher GUI (`#148 `_) - Caused by a regression in 8c6cf9841cb, the slider positions are not initialized correctly - from the provided zero positions at startup. - This commit fixes the issue, by adding the call to center() again that got lost. -* Contributors: Timm Linder - -1.12.4 (2016-08-23) -------------------- - -1.12.3 (2016-06-10) -------------------- -* Fix circular logic in joint state publisher events (`#140 `_) -* Use signal and sys.exit to fix shutdown in joint_state_publisher (`#139 `_) -* joint_state_publisher: Change slider update method (`#135 `_) -* Contributors: Jackie Kay, vincentrou - -1.12.2 (2016-04-12) -------------------- -* Migrate qt (`#128 `_) - * Migrate JointStatePublisher from wxPython to qt5 -* Contributors: Jackie Kay - -1.12.1 (2016-04-10) -------------------- - -1.11.8 (2015-09-11) -------------------- - -1.11.7 (2015-04-22) -------------------- -* Added a randomize button for the joints. -* Contributors: Aaron Blasdel - -1.11.6 (2014-11-30) -------------------- -* Added floating joints to joint types ignored by publisher -* warn when joints have no limits -* add queue_size for publisher -* Contributors: Jihoon Lee, Michael Ferguson, Shaun Edwards - -1.11.5 (2014-07-24) -------------------- - -1.11.4 (2014-07-07) -------------------- -* Update package.xml - Updating author and maintainer email for consistency -* Contributors: David Lu!! - -1.11.3 (2014-06-24) -------------------- - -1.11.2 (2014-03-22) -------------------- - -1.11.1 (2014-03-20) -------------------- - -1.11.0 (2014-02-21) -------------------- -* Use #!/usr/bin/env python for systems with multiple Python versions. -* Contributors: Benjamin Chretien - -1.10.18 (2013-12-04) --------------------- - -1.10.16 (2013-11-18) --------------------- - -1.10.15 (2013-08-17) --------------------- - -* joint_state_publisher: do not install script to global bin - Also clean up no longer required setup.py diff --git a/joint_state_publisher/CMakeLists.txt b/joint_state_publisher/CMakeLists.txt deleted file mode 100644 index 7d56b8f..0000000 --- a/joint_state_publisher/CMakeLists.txt +++ /dev/null @@ -1,15 +0,0 @@ -cmake_minimum_required(VERSION 2.8.3) -project(joint_state_publisher) - -find_package(catkin REQUIRED) - -catkin_package() - -install(PROGRAMS joint_state_publisher/joint_state_publisher DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}) - - -if(CATKIN_ENABLE_TESTING) - find_package(rostest) - add_rostest(test/test_mimic_chain.launch) - add_rostest(test/test_mimic_cycle.launch) -endif() diff --git a/joint_state_publisher/joint_state_publisher/joint_state_publisher b/joint_state_publisher/joint_state_publisher/joint_state_publisher deleted file mode 100755 index 4ac5008..0000000 --- a/joint_state_publisher/joint_state_publisher/joint_state_publisher +++ /dev/null @@ -1,440 +0,0 @@ -#!/usr/bin/env python - -import rospy -import random - -from python_qt_binding.QtCore import pyqtSlot -from python_qt_binding.QtCore import Qt -from python_qt_binding.QtCore import Signal -from python_qt_binding.QtGui import QFont -from python_qt_binding.QtWidgets import QApplication -from python_qt_binding.QtWidgets import QHBoxLayout -from python_qt_binding.QtWidgets import QLabel -from python_qt_binding.QtWidgets import QLineEdit -from python_qt_binding.QtWidgets import QPushButton -from python_qt_binding.QtWidgets import QSlider -from python_qt_binding.QtWidgets import QVBoxLayout -from python_qt_binding.QtWidgets import QGridLayout -from python_qt_binding.QtWidgets import QSpinBox -from python_qt_binding.QtWidgets import QWidget - -import xml.dom.minidom -from sensor_msgs.msg import JointState -from math import pi -from threading import Thread -import sys -import signal -import math - -RANGE = 10000 - - -def get_param(name, value=None): - private = "~%s" % name - if rospy.has_param(private): - return rospy.get_param(private) - elif rospy.has_param(name): - return rospy.get_param(name) - else: - return value - - -class JointStatePublisher(): - def __init__(self): - description = get_param('robot_description') - robot = xml.dom.minidom.parseString(description).getElementsByTagName('robot')[0] - self.free_joints = {} - self.joint_list = [] # for maintaining the original order of the joints - self.dependent_joints = get_param("dependent_joints", {}) - use_mimic = get_param('use_mimic_tags', True) - use_small = get_param('use_smallest_joint_limits', True) - - self.zeros = get_param("zeros") - - pub_def_positions = get_param("publish_default_positions", True) - pub_def_vels = get_param("publish_default_velocities", False) - pub_def_efforts = get_param("publish_default_efforts", False) - - # Find all non-fixed joints - for child in robot.childNodes: - if child.nodeType is child.TEXT_NODE: - continue - if child.localName == 'joint': - jtype = child.getAttribute('type') - if jtype == 'fixed' or jtype == 'floating': - continue - name = child.getAttribute('name') - self.joint_list.append(name) - if jtype == 'continuous': - minval = -pi - maxval = pi - else: - try: - limit = child.getElementsByTagName('limit')[0] - minval = float(limit.getAttribute('lower')) - maxval = float(limit.getAttribute('upper')) - except: - rospy.logwarn("%s is not fixed, nor continuous, but limits are not specified!" % name) - continue - - safety_tags = child.getElementsByTagName('safety_controller') - if use_small and len(safety_tags) == 1: - tag = safety_tags[0] - if tag.hasAttribute('soft_lower_limit'): - minval = max(minval, float(tag.getAttribute('soft_lower_limit'))) - if tag.hasAttribute('soft_upper_limit'): - maxval = min(maxval, float(tag.getAttribute('soft_upper_limit'))) - - mimic_tags = child.getElementsByTagName('mimic') - if use_mimic and len(mimic_tags) == 1: - tag = mimic_tags[0] - entry = {'parent': tag.getAttribute('joint')} - if tag.hasAttribute('multiplier'): - entry['factor'] = float(tag.getAttribute('multiplier')) - if tag.hasAttribute('offset'): - entry['offset'] = float(tag.getAttribute('offset')) - - self.dependent_joints[name] = entry - continue - - if name in self.dependent_joints: - continue - - if self.zeros and name in self.zeros: - zeroval = self.zeros[name] - elif minval > 0 or maxval < 0: - zeroval = (maxval + minval)/2 - else: - zeroval = 0 - - joint = {'min': minval, 'max': maxval, 'zero': zeroval} - if pub_def_positions: - joint['position'] = zeroval - if pub_def_vels: - joint['velocity'] = 0.0 - if pub_def_efforts: - joint['effort'] = 0.0 - - if jtype == 'continuous': - joint['continuous'] = True - self.free_joints[name] = joint - - use_gui = get_param("use_gui", False) - - if use_gui: - num_rows = get_param("num_rows", 0) - self.app = QApplication(sys.argv) - self.gui = JointStatePublisherGui("Joint State Publisher", self, num_rows) - self.gui.show() - else: - self.gui = None - - source_list = get_param("source_list", []) - self.sources = [] - for source in source_list: - self.sources.append(rospy.Subscriber(source, JointState, self.source_cb)) - - self.pub = rospy.Publisher('joint_states', JointState, queue_size=5) - - def source_cb(self, msg): - for i in range(len(msg.name)): - name = msg.name[i] - if name not in self.free_joints: - continue - - if msg.position: - position = msg.position[i] - else: - position = None - if msg.velocity: - velocity = msg.velocity[i] - else: - velocity = None - if msg.effort: - effort = msg.effort[i] - else: - effort = None - - joint = self.free_joints[name] - if position is not None: - joint['position'] = position - if velocity is not None: - joint['velocity'] = velocity - if effort is not None: - joint['effort'] = effort - - if self.gui is not None: - # signal instead of directly calling the update_sliders method, to switch to the QThread - self.gui.sliderUpdateTrigger.emit() - - def loop(self): - hz = get_param("rate", 10) # 10hz - r = rospy.Rate(hz) - - delta = get_param("delta", 0.0) - - # Publish Joint States - while not rospy.is_shutdown(): - msg = JointState() - msg.header.stamp = rospy.Time.now() - - if delta > 0: - self.update(delta) - - # Initialize msg.position, msg.velocity, and msg.effort. - has_position = len(self.dependent_joints.items()) > 0 - has_velocity = False - has_effort = False - for name, joint in self.free_joints.items(): - if not has_position and 'position' in joint: - has_position = True - if not has_velocity and 'velocity' in joint: - has_velocity = True - if not has_effort and 'effort' in joint: - has_effort = True - num_joints = (len(self.free_joints.items()) + - len(self.dependent_joints.items())) - if has_position: - msg.position = num_joints * [0.0] - if has_velocity: - msg.velocity = num_joints * [0.0] - if has_effort: - msg.effort = num_joints * [0.0] - - for i, name in enumerate(self.joint_list): - msg.name.append(str(name)) - joint = None - - # Add Free Joint - if name in self.free_joints: - joint = self.free_joints[name] - factor = 1 - offset = 0 - # Add Dependent Joint - elif name in self.dependent_joints: - param = self.dependent_joints[name] - parent = param['parent'] - factor = param.get('factor', 1) - offset = param.get('offset', 0) - # Handle recursive mimic chain - recursive_mimic_chain_joints = [name] - while parent in self.dependent_joints: - if parent in recursive_mimic_chain_joints: - error_message = "Found an infinite recursive mimic chain" - rospy.logerr("%s: [%s, %s]", error_message, ', '.join(recursive_mimic_chain_joints), parent) - sys.exit(-1) - recursive_mimic_chain_joints.append(parent) - param = self.dependent_joints[parent] - parent = param['parent'] - offset += factor * param.get('offset', 0) - factor *= param.get('factor', 1) - joint = self.free_joints[parent] - - if has_position and 'position' in joint: - msg.position[i] = joint['position'] * factor + offset - if has_velocity and 'velocity' in joint: - msg.velocity[i] = joint['velocity'] * factor - if has_effort and 'effort' in joint: - msg.effort[i] = joint['effort'] - - self.pub.publish(msg) - try: - r.sleep() - except rospy.exceptions.ROSTimeMovedBackwardsException: - pass - - def update(self, delta): - for name, joint in self.free_joints.iteritems(): - forward = joint.get('forward', True) - if forward: - joint['position'] += delta - if joint['position'] > joint['max']: - if joint.get('continuous', False): - joint['position'] = joint['min'] - else: - joint['position'] = joint['max'] - joint['forward'] = not forward - else: - joint['position'] -= delta - if joint['position'] < joint['min']: - joint['position'] = joint['min'] - joint['forward'] = not forward - - -class JointStatePublisherGui(QWidget): - sliderUpdateTrigger = Signal() - - def __init__(self, title, jsp, num_rows=0): - super(JointStatePublisherGui, self).__init__() - self.jsp = jsp - self.joint_map = {} - self.vlayout = QVBoxLayout(self) - self.gridlayout = QGridLayout() - font = QFont("Helvetica", 9, QFont.Bold) - - ### Generate sliders ### - sliders = [] - for name in self.jsp.joint_list: - if name not in self.jsp.free_joints: - continue - joint = self.jsp.free_joints[name] - - if joint['min'] == joint['max']: - continue - - joint_layout = QVBoxLayout() - row_layout = QHBoxLayout() - - label = QLabel(name) - label.setFont(font) - row_layout.addWidget(label) - display = QLineEdit("0.00") - display.setAlignment(Qt.AlignRight) - display.setFont(font) - display.setReadOnly(True) - row_layout.addWidget(display) - - joint_layout.addLayout(row_layout) - - slider = QSlider(Qt.Horizontal) - - slider.setFont(font) - slider.setRange(0, RANGE) - slider.setValue(RANGE/2) - - joint_layout.addWidget(slider) - - self.joint_map[name] = {'slidervalue': 0, 'display': display, - 'slider': slider, 'joint': joint} - # Connect to the signal provided by QSignal - slider.valueChanged.connect(self.onValueChanged) - sliders.append(joint_layout) - - # Determine number of rows to be used in grid - self.num_rows = num_rows - # if desired num of rows wasn't set, default behaviour is a vertical layout - if self.num_rows == 0: - self.num_rows = len(sliders) # equals VBoxLayout - # Generate positions in grid and place sliders there - self.positions = self.generate_grid_positions(len(sliders), self.num_rows) - for item, pos in zip(sliders, self.positions): - self.gridlayout.addLayout(item, *pos) - - # Set zero positions read from parameters - self.center() - - # Synchronize slider and displayed value - self.sliderUpdate(None) - - # Set up a signal for updating the sliders based on external joint info - self.sliderUpdateTrigger.connect(self.updateSliders) - - self.vlayout.addLayout(self.gridlayout) - - # Buttons for randomizing and centering sliders and - # Spinbox for on-the-fly selecting number of rows - self.randbutton = QPushButton('Randomize', self) - self.randbutton.clicked.connect(self.randomize_event) - self.vlayout.addWidget(self.randbutton) - self.ctrbutton = QPushButton('Center', self) - self.ctrbutton.clicked.connect(self.center_event) - self.vlayout.addWidget(self.ctrbutton) - self.maxrowsupdown = QSpinBox() - self.maxrowsupdown.setMinimum(1) - self.maxrowsupdown.setMaximum(len(sliders)) - self.maxrowsupdown.setValue(self.num_rows) - self.maxrowsupdown.lineEdit().setReadOnly(True) # don't edit it by hand to avoid weird resizing of window - self.maxrowsupdown.valueChanged.connect(self.reorggrid_event) - self.vlayout.addWidget(self.maxrowsupdown) - - @pyqtSlot(int) - def onValueChanged(self, event): - # A slider value was changed, but we need to change the joint_info metadata. - for name, joint_info in self.joint_map.items(): - joint_info['slidervalue'] = joint_info['slider'].value() - joint = joint_info['joint'] - joint['position'] = self.sliderToValue(joint_info['slidervalue'], joint) - joint_info['display'].setText("%.2f" % joint['position']) - - @pyqtSlot() - def updateSliders(self): - self.update_sliders() - - def update_sliders(self): - for name, joint_info in self.joint_map.items(): - joint = joint_info['joint'] - joint_info['slidervalue'] = self.valueToSlider(joint['position'], - joint) - joint_info['slider'].setValue(joint_info['slidervalue']) - - def center_event(self, event): - self.center() - - def center(self): - rospy.loginfo("Centering") - for name, joint_info in self.joint_map.items(): - joint = joint_info['joint'] - joint_info['slider'].setValue(self.valueToSlider(joint['zero'], joint)) - - def reorggrid_event(self, event): - self.reorganize_grid(event) - - def reorganize_grid(self, number_of_rows): - self.num_rows = number_of_rows - - # Remove items from layout (won't destroy them!) - items = [] - for pos in self.positions: - item = self.gridlayout.itemAtPosition(*pos) - items.append(item) - self.gridlayout.removeItem(item) - - # Generate new positions for sliders and place them in their new spots - self.positions = self.generate_grid_positions(len(items), self.num_rows) - for item, pos in zip(items, self.positions): - self.gridlayout.addLayout(item, *pos) - - def generate_grid_positions(self, num_items, num_rows): - if num_rows==0: - return [] - positions = [(y, x) for x in range(int((math.ceil(float(num_items) / num_rows)))) for y in range(num_rows)] - positions = positions[:num_items] - return positions - - def randomize_event(self, event): - self.randomize() - - def randomize(self): - rospy.loginfo("Randomizing") - for name, joint_info in self.joint_map.items(): - joint = joint_info['joint'] - joint_info['slider'].setValue( - self.valueToSlider(random.uniform(joint['min'], joint['max']), joint)) - - def sliderUpdate(self, event): - for name, joint_info in self.joint_map.items(): - joint_info['slidervalue'] = joint_info['slider'].value() - self.update_sliders() - - def valueToSlider(self, value, joint): - return (value - joint['min']) * float(RANGE) / (joint['max'] - joint['min']) - - def sliderToValue(self, slider, joint): - pctvalue = slider / float(RANGE) - return joint['min'] + (joint['max']-joint['min']) * pctvalue - - -if __name__ == '__main__': - try: - rospy.init_node('joint_state_publisher') - jsp = JointStatePublisher() - - if jsp.gui is None: - jsp.loop() - else: - Thread(target=jsp.loop).start() - signal.signal(signal.SIGINT, signal.SIG_DFL) - sys.exit(jsp.app.exec_()) - - except rospy.ROSInterruptException: - pass diff --git a/joint_state_publisher/package.xml b/joint_state_publisher/package.xml deleted file mode 100644 index ef86f0d..0000000 --- a/joint_state_publisher/package.xml +++ /dev/null @@ -1,22 +0,0 @@ - - joint_state_publisher - 1.12.9 - - This package contains a tool for setting and publishing joint state values for a given URDF. - - David V. Lu!! - Jackie Kay - Chris Lalancette - Shane Loretz - - BSD - http://www.ros.org/wiki/joint_state_publisher - - catkin - - rospy - python_qt_binding - sensor_msgs - - rostest - diff --git a/joint_state_publisher/screenshot.png b/joint_state_publisher/screenshot.png deleted file mode 100644 index cb8a6079a3fde6f7abd651698e4a7c98203dbba4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11070 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 - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/joint_state_publisher/test/mimic_cycle.urdf b/joint_state_publisher/test/mimic_cycle.urdf deleted file mode 100644 index 233a7c5..0000000 --- a/joint_state_publisher/test/mimic_cycle.urdf +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/joint_state_publisher/test/test_mimic_chain.launch b/joint_state_publisher/test/test_mimic_chain.launch deleted file mode 100644 index 385edd0..0000000 --- a/joint_state_publisher/test/test_mimic_chain.launch +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/joint_state_publisher/test/test_mimic_cycle.launch b/joint_state_publisher/test/test_mimic_cycle.launch deleted file mode 100644 index cfec4c3..0000000 --- a/joint_state_publisher/test/test_mimic_cycle.launch +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/robot_model/CHANGELOG.rst b/robot_model/CHANGELOG.rst deleted file mode 100644 index c3103b2..0000000 --- a/robot_model/CHANGELOG.rst +++ /dev/null @@ -1,74 +0,0 @@ -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Changelog for package robot_model -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -1.12.9 (2017-04-26) -------------------- -* Adds deprecation message to robot_model package.xml (`#196 `_) -* Contributors: Shane Loretz - -1.12.8 (2017-03-27) -------------------- -* add Chris and Shane as maintainers (`#184 `_) -* Contributors: William Woodall - -1.12.7 (2017-01-26) -------------------- - -1.12.6 (2017-01-04) -------------------- - -1.12.5 (2016-10-27) -------------------- - -1.12.4 (2016-08-23) -------------------- - -1.12.3 (2016-06-10) -------------------- - -1.12.2 (2016-04-12) -------------------- - -1.12.1 (2016-04-10) -------------------- - -1.11.8 (2015-09-11) -------------------- - -1.11.7 (2015-04-22) -------------------- - -1.11.6 (2014-11-30) -------------------- - -1.11.5 (2014-07-24) -------------------- - -1.11.4 (2014-07-07) -------------------- - -1.11.3 (2014-06-24) -------------------- - -1.11.2 (2014-03-22) -------------------- - -1.11.1 (2014-03-20) -------------------- - -1.11.0 (2014-02-21) -------------------- - -1.10.18 (2013-12-04) --------------------- -* add DEPENDS for kdl_parser -* Contributors: Ioan Sucan - -1.10.16 (2013-11-18) --------------------- - -1.10.15 (2013-08-17) --------------------- -* remove unneeded deps (fix `#32 `_) -* Created new diagram for documenting URDF diff --git a/robot_model/CMakeLists.txt b/robot_model/CMakeLists.txt deleted file mode 100644 index 79a5b3e..0000000 --- a/robot_model/CMakeLists.txt +++ /dev/null @@ -1,4 +0,0 @@ -cmake_minimum_required(VERSION 2.8.3) -project(robot_model) -find_package(catkin REQUIRED) -catkin_metapackage() diff --git a/robot_model/documentation/urdf_diagram.odg b/robot_model/documentation/urdf_diagram.odg deleted file mode 100644 index 08e67342fee517569b17fbe380fdf20481b757ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52597 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 Af&c&j diff --git a/robot_model/documentation/urdf_diagram.png b/robot_model/documentation/urdf_diagram.png deleted file mode 100644 index 1ea365a0e9810915d5d6ec6cff4783a11f190458..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176852 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

  • EQxGPCMU`q~w^N>yv_n zKltfu)e~$?!SmHjFS7@KqhQuYSl6$9?y#q2N%;uuCo37VCW=+9vAI1 zXhDzJlL`A*HaX{P*1^RqM2)RUSTo(X?!h$QOe+o=_nPdFfpbmX<2Ilsn}PjK-s82A z=`2ks*X3$`qCwB@M;-XIaQxm;g|&Cr2{hYRHsaoj|KNy%`tOsLsxwY=3f7C~X;nqu zN4WcWe;3B)!=;CpFVqsUAKXfiZK{P51Z(Z>0i=S)^H}a9u^~l}2!VV2Pu3qTKNw6V z!W5xb-QM*iRUj25SdfGNA3`y!)c$Yr^0Q&WN~+peqF|ZT3%s|MN-uVn*PRq42OC=6o48MS#Z;vq0l7h}pKdy~EAn zyuMzJdg3s6NpKvJ;qOj&_Vr~j7Kh)~QrM#f38aRVVAvx&zN}N9760Xw#_xNc5_5pt z9){4w5G<0@jvHrA<7ittjb->^)BCUr1rKApQT*BAVf6lp{q$r9Bqd4-D9oFQ31jX` zE#qgwa?t{9T2@5;Aud*#5B{+YC^lM>!21N-?DqO$K2^r>iWYAtBPpkAmb>b8N#FRg zT6UcgZr^Y52KnR{tyEffplI=MpLnKPVwSi1heBM%;R?ciaK{4y>r~C}0kn2-K^62v zKFDN|;SV)v5TIA(;1SHRd6yI9;^ds}K>c@6Y!fwHQ-BSVzRUM9bfv0S7~QGLor!nR zit9@>YU>sOfmHy@&QNu4GuJwRq5<09sI2beMZIMvrRn&kB}%gE7Oc4kJw3Rv;+BlYaN6tc=U}#{x z>7~ZsMkz$~I%I9yD`l|8p9mcUlw{;>0+w*cKwB<-t#h$mWNLZ2u5~!UmI&I*<*r&qKn4x@fg~Ge+g( zLNPmqNNg*p*p(u4!2%4U%qwgN?N}Gqwcj&RcjTgfH!ONxm8-^(5GNy`MC^1S%~Q4C zL@-!lps3qs(zY-$If}ZUhl4%e@6xZf5F-mp5o%MWWRDrx1B69H&L^j(h26W8n)++n zG$dvJI$$b=<;^TDYel<<{qr1K?@}sPrrMy_Yi85@%k(e=`#H#b!oof( zn~*y{rl8Yi5Twt0#YAC$Ak?JM_rqe0%YzOYtNQQyDj}y#iGvOfE`NPMA(!cqvzwFD z7i5b$(!Vj(G=__dOVkUM9$DpP0Wr*kZ)95R{1Ah(xQfk|xU>|4fy<$Jw4Aqmj}aK6 z-D;BZnK7GTcwMpUzvMTD!%8mU%yO6Yxoa6xM3;2?!6fY?sfh7GOuY)jMn-zmK8b-#9te$jGm^>aCj-=rJpc0DmGtHVFZS8cHfl~O?# zLc2qLHxo+=fEjZ_4_+hrh-uY}zpB=Mtm5x$S!YdfMEND~R>Ads}+o6Z}~&kO9`m6yAQf2G8*%pXpS)Cb)yT&KwT!;!2E;fHyC*H#%?dfKR~ow z-Rx0Ie{8h;SgqRwXb6^;mIV2{*GuAf(|i`CvS6FR|4V#3SzS++;NfHCvpM9mz|aN3 z<^|A4B46Qy3k!h9*V`>DPphcE9b8e8na*u9;jq0X#(*8|AJ)HAEt_!g#D@*>iLbII zC*>$9OLzRg@fGI7g!~9#gQIs1aS-iS@v!)xq&{2vnBBu!3Js5aF9t=H^6RE51bZiy))_fc+6$jF8_uZ$C=&?(v_ zW@KzkOa~8jc%qC|t9S{Oi5%FxyJmNs7K{7F$AJs1k%Lwy2TzOdsgsJ6Jj1BeLCvk37`eq-R?=$0ak-)9^76WPeLJZiRVX$h}C*ZWli8_;cZ)gM8i zD~V0&3^?7?2;)@y$zD;^F{%R%WPE{;cg>wNk;fu;8VH|PWX@W$j~s+JAy3=b^)aW* zVxu@Sc@w_KESQ9npVv2Oc@b8+^Bx$+&Y{#X{4q7T^V_l=wC6{|YHw8H{S`=>+tLpp zK7llppg-gL3om6sdkQ52z>$zi5;0jZNjzI9keIF#)UGYv3F;^LNpo}kVB_+gKn%!G zfuDx}q_rTx9Bu()wRe~5Gq@<0vu7uS`WOOJAxk9 zn-sEOB18#!3xK4=ak+X8S-=#AF5+2MObj4rLAFqVBNV_(g8&0TA88Hd@ugVAxI&>w zUTd~p;dVK;TW^8}9Gm|_3kwYF2S`?okxi*+X$M7KC5lQ)+%J~t>FKWkpD`emOn9zf zqCy)l5RW!O7VSaKa0T>!z5e?9L5BhR?+QJDUZ(f-Ml6}4;RwT3QCz@vLPUTll_;SE za3LNpE+dNJNK{HA>wgix5D`6*0ZCm&1R?!Z@w*2{uI-{_8+!jY7Erya-Pn+IGml>bJ0sU3qDE^H) za-?SQ2|Tbh8g7Ad>dmI?J&j07qPJvcd7?vO<+6Qj4$H}DTC=Tzef)8oJ(1G|i7AF& zMD{+Psh+yJCYT3hVb>WkZHP{x{(Wzq$CxT5B0I?YcP$)8RTrtF@LQ}K8p%5&-&}%4!Ot`y4RUy7ZLH5E zT<<8HD<{W$XU{TTfJQkWiVr#(=N}?^QRn~tWxY_c)$NVRfV_HrI{s%UF8P4dPM_t# z(>}-JHAxr>>I^omO6$j%)w~pmZ1{bNd|t^9Ub_*dP6*46{&MSuEzFlu1#FALWqB>q zZOrcBpNE$P9@DXtAR~7Zr0Ec(3l@{7hsXpl4Z7nwW>N6@zb4OH)8rDg`A7@HI6Rh| z*-Il*RR__pe1$04NizCGu}tqC@k$1gmSCYr6KT`w^YAnE<>L+NYw`_cnmOH`$fnPK zg!BuiE$G)dqe9E4PYzAVtuY90xd1+`d(aGaTMc)24#4RDMd9*ZJ=2S8txYAYV&FD%rFmvmE5{M>0e!iAO` zuKBuHLCJ%Z!{K|hi_m5fcPh)>v%RzG8p2L9s4t!)I3q#4z}ceFHohK@-8VD_Fs2hT zTKfF#*NOLGsD-Zx;NG|1*fMF1UB~Ep=g++mKHD_xpK7p6iy)E@SIRw3CJh60Uy0 zgPyUiMRMG;iRBHpL6i>p_4DoF{QUgek#lyysu6xIwHHNiBqT9A`r0z;PBYORS@Zj= zai+{E?~ww{;$dAQq!&ChJPMm8<_1BXcNOE%V6*y~Iqf+%xx&YDqTCkAFYNxVT{iD= zIiw`N?dDZ~;7fJtjRxRsU<-Y$1P8EF}@VX zd>UQ9Wsmbifvp46rFlKwfj`qR2~u#v!B34CRVmEzJSn0jfZeb)@8vfM$?)%R2;KkA zfW0^wll4izQj$+97QQdF`wV^|D&U=QGRWx=W#80(>6^_e@_f*A>L$!Dbc=@>gnhPR z!oW%LB!0i1O#jK>{&2slec4@a8^->{2PC2;C;%> z(MQK7??{=o7Usbfd8Zewy$ z7I{^?k*Rw^tdZj$ZAI8MTwhWQmQMUn@r~jM`vJNijCOoCiYuOIge( zslK_{dmqNu5l_KH5SH`(l*Tq9j}PQ_oC?}E7Hhv6tx#eE)YII;Mzg?O9289*!)FfZ z(~b{s`NPdz`a2?6R{gl}e%cqXC%B{<*h&EreGl`!ei-+R!Od2r%5{u%<@waayK<2J46cw!tATIFU|;nlA&L z7@&OWOH{_j9RbORT;$&NxBj?Q!}M*-YomtJxhzAXwAB)5h;vTrj-!*_zk~41l?1yj zgI3?y+=Lz&-0*j6e#^M4jOsCe2E+Cw$rlaEWJ{ZX$-eOdr>os8ptUr2Ptm?TAEK(onweo4kl`<)de2okb z1ATE%ZfvS&CKIAs-6|O>88vJ$L2+c`&)4sb+5m@mjbeV+U*TmuPzA`#$g|#NSU{gC zw%=+QZ-s>A11M)LT4!ycD>S^`ac834y@Gq$9)E>H?;1^twURaThW-42fk5-0gn&JV zizQ+O@6Tw1KY0YG|FQsOt)@+VY%yv_y*{ltCJ2icVC zAFM(FRmiGR-@(9r{)Bw7+vEXF+#@;5d-}R>Rzal{g}_b--OegjnAI=77PqHnKi~lx zn1UW-$e4866jDmV})L(jJ2&&nc`-Pj`)SuOBL_RwtbPxsA}y-p@C}*?meR z1j7U28K1T`Pf{Cy9a?`2oG>1~hbG-XfzNZi?ZUe-E_@vMAofu&T;CyEJG93E)lu%< z01Nl9G(76C%qLB@CfHA`D@)LSTPt9fR>VQbT&xa=D1F}~FXo5d(VAQdMv3JI_kdpK zOp*&ggKRME&pS$fmTl95@m9RS;8k}IRNZ|W7v45=L&go`W9#3MuL|WUzpu`@S`Bia zqSGPAdthB-C*G_p5&&&62SJtz>&-hH_STmEW{82srIA)==e|^?a`0^xAY(!26kw_JSW-z0l5wKMWoh!o2*44wk(sl;<*GW$<@$ zila2MJ&CFDfm1Rw9i0*u7%$;f9O39*C0{!n{BZCqbWj=WA>nMKY+!zy>5X!btXXk_ z5GF*d89n4F*?AkV1Yx?nNL_stF_OiePI%#<#2)(WG9=<=!6c`mrdlJ8Z0E3J|2DSo z;~nqfJ!~+*_)HjMTyZ<*PAK8B58P1Nvd_=YGbIn~e0yJl{=>j$e(kS7Ff%7!zJTWN zxV-~Z6aEyi2axysj5KSyndH!;kn)(j?{(mpUFg`whbaYfvQL(?E48~!GWMwQQpxm#P!@6#<9b~y~g+o4OGNuA8n%K_zvqTWGgVkx09fK54ZfnNWS?4 z@!w#A!b0Y_C(gXSzCPOIXWtb&5)Q{qx{Uv@cf{cE-meF5tMkSoE<xN@5>ba;Eh6TOH7oMZ=W{sp~5R3I&@R)T_obVoK)#+zF z0uK2UC;n;2kSXz|Faz?Ii1MVZvgK9$%Eg%XFxB;MQY3gwj}@-Z)P{F=ZkZLDUtAQ6 zcTX~^XQkoM7S4P}ZF_g}+ywEN&n0GjMks>R_^D|tKu@>k4@o@VIN#)JOj35H1^old zcjRm6iaR8fiGNnWe3*aLZ@^ho=ay42zA01}qPL4_C%zT1r5B;$)hsIP*wEHU=J0%J zRW`~CucJmsG;)kIm}{1Ndb6y}`U#ySvo6s96T6UPhmU`G-^NnX`PzOAlxj+Er9*_Z z0r?s4Hwl@$c$D9Jvy_}yd)Y>Ic;`zxXsOH&FmOO9es5W#x~z#rFRN&=F;}#3!I|3-F!1%r7m+@}=?vQ0SF^A}{P z(Fm=(irj7K7N11*Z&OtU5_T$+RT+Rps3KzZ% zmUXVDz2_LmNvCa7pwW0g?O%|uHTi*BLJu*D!&*1%XA_QTe#ol6NCow$@*#3?RP|_c z?5AbbMk_A%V_H8AJ3Z@M?o}-Ntk!g+r{E&xAl^K} zh6x9zr+8RiYBP=N{ZwU*?`BUUWI>;bfEXJ={)9}f1+{ZM$c&G-uXY=)i)1_`aDNo) zjdKY!sKI0n*sHu^r!=m_q!Pm0`ap zrp9GgdBG3v71u7sBrr5Y<1-X3P}!x5VY?(kq@zm^y@(DQ!8WZaN*R|t>*~QUQ?WD` z^ylvSRKD(C#dD3Q|JBSwT3%2XKJIay6a*M&UgIj_GAug`4P+}Z{QTK0FPl4>=tyoB zv8ikZ{H}?kN@L6Ofk+%RAXhjrLLM;Ik68>(T89q|hzoKc78SAOVsE(24bVCQW6J_u z$w#bRd3Sx6(ENO9nXJ7@H2UM{t*=hklIfqc`=ybUXAd9r-nPvtY>=?(i5i4`f^Ug+ z6zf69QFcX?s@YgaRU4);!8=^$>S75lw~jL+1A@;)JBQ47p@U;(e@G4L_`8~>rLYMtiu zN)3X|Pn+W)nQe~suD1hBe7)u&hb?*SPhJr>lSQC{)nQQZS3LvUZGkLQ67jFm!6;QH zeRtG{bPq;mYYT^pt@A!0Imthd1dVNT6GAX0Iz3Atw;nA_Qsd73PR^S$%Z;kTkciHo zCb4&n$or7PA9_>bHsy=i{3h3P)x*IUI1{@^GlFeY7m&+V02AKxjG80?q^f0lpI3kP z;xBEbr8;0)7?e)s-dIhi(?t{7-FA2J7C>BPaFf}m9uL;w_nG5&G)`)cAmmF=_{XSq zOhzFl6BWfD&ZYbSw4aOF4*|6edm?~>R?w*dSP6ygC?K^X(UFyhhPfY#rG)l(>@9D&H4KxODhcwPQJnzbLT z`a8G0{)2z~b;^yag_IK-@XJT_k`k4}a85~I2$=(s?IntKEI`{OzIfe;4SNh=W1KXP zFJSr--hzg>?Bo{4k&eDg4oAoN06xYLyQ3I~EBE6TMuwq+*m(Ipn}V^{%+~i%%dVt_ zn*W==_DoiNLKC?bc%E{f1+MBS3Q%K=x2#MSSOK?fp;q7XG}z}yoV?5Osg?R8&zjx6 z_2jT+#KD|3g9JiuDB^SykNi>!$YhC42`_jG;SNsekgu{S4s72W?FUCk{En~h$e$u- zUYR%3sa*X&SigyF39*)6$kn-#jgoFmD?TrWHGjKkg`yts>YzkFtP4&mWw+RtiW`$| zPT>V(%qJY$Hs-9SJC+HStTAb&yG45H2UY>j|78(dD?AE!L-I4Yz=$Dyth zc9_Pxfl~%1sa#R;-EgnGerR61bEe?Yz)9%>*BCCkzh2b#?#j^b1iEYf0pK?4FjsoI z{}H4S2#n_l9FBQ)v3ltMafpzgJS=G9WlK`X=^4P#fdP^>i@I|}hEYy;4JOrR7>&=O z7gpH^$jKFq?<%<(mAa(wh;Q2H#w`pSBg&Zr)=s&3J~F9jI>sYj`S5WJis}v3ZcV|p zjR}@*SPBnX_{Endho7_Mx-3&ASkgT>m@6db)rhQsT}T1!!PZ75`ynpN#<~`rZPPJo z`87qlq+vz{A4XggqOIGqD4Q}ILTGjW3xmY!LSlT!ogB|9BJW8?U8dQp!Gs+CU%aT& zs%X4Vc{#sB_~c`dmp>ElP*`7owx1*&y>C#lp&b{h!n6bnknrdInJ+bc-NqPMlBFvO zJK4RTBI8Txh?Gp2h^YeRBSx)F!2~lGnqy$E$zZ zZ@@K4b#aXV-!I#dj^Y z(!kVA5-%``;aL0?M8z>hU5Bo5XGqm(!f6!>rXIlv1fxhNn~7?7H~r(&q)%s@F7;Sg zcK5%**Qs$?=}BX!tNx7gdBdlEO?JNCU_g-Iqxchi_!~V38Pj6w>z(WNt6-tE-hBQV zbA9q^>G=MgAUtX*@mjr>(zRG9i}f|ver)}DCTiLI?yxA6^F*cTwc7A^CG8`nj?Kr^ z!<-Px_noEn;1pB?A6+m><6ebx@h$50WGmDc@3?v?&vm;vxk-#xGo5WzaovlH=?Of* zMZjJOTbA8u>^#|9^CH>HRT3qVudU5}gx{qhekAOnXsSA8f#5_2F&6LjewtsWHnzO7 z1ev=v%m4a*UYHPRBEPY)4$C#lAgg0)`9D_YMWr7f_)AwlQU7=2^**gGmX#9(Z28I7 zn!yn-p+9VS4aRglS0_nc{)i+`<*h;5tR0*8siwc)G4yC9t_#gt(bvLLP0hGv*}bjV zVOKb z*Ui082TWcyjf0MET;xT<&LLTHVX9`A!bw-B>IUn)QsO!laZCrBGX3?q*Hc@ZMd_2h zWZ>b}Q$rzJdyav=fUPhSz^{cA8J1sQ!6^I^2eHIK`pJFp=p%BK|UeIY+f4FeM-Un z6qtjEYLH4Kl0Aug_{2EBiyj}6&JzFy!NjURe^m+m38%dQJCrVkxB0O5RGjCD`MoxP z)HABdU#x{-A`o{;;G&bM<6$*}3emdk@}3Kjn&8bon*W-6Yu!y%Ua|Oa*W-%SUP^u< z8?d3ksCZtjSG)ZmKi`LzvBpZ@1WmwZ%=uDSy4iADwK5LUxy6%Wzc)mu=xdH`rT7GW zZqbF&5q8#hkDKMA|L@EAxtcyEF1kTC6Jj4b^o;+P(~nwkg>F2dEp`ocMHKGHMbe%| z8glg%FhASI8LFfVpAdzi1V#*e7W@ah4AkncOpm)%dN?zyjNKnul>UOujI6;MyefHC zAIJ>nJO(d2fn{88Z)^p|~_jN&++~qLTwihv7ROLH2iZbj3pKfqj}X z6el-v36pA&JX8ig(+_nRO;0FGl!|)MV=_h8I{2xHF%%w_rE7=ofMo5Bg>EoLr^Xm+ znTs@oE&8OQ!2lh@${LFW=eULht;=@>X2j6((oJ|Q2gJaG-Xs;58zN6@>~|H8VRAAP zH3Q>R+U2m2?Zx6Rv%a-^3XHH>5zMYi{P=GqCf#60nFdb+ABxzE(fX zog>_l54AYah&WK7Qj8P$Uv#8?aPSu+elo}4enNw&b|_ug)GuvYkV)EYkV!K@aur2T z*p+lSNq9hNG(EpHMZ?JGVg{2K@m!1Ewwir-0shm6dK@=7%Wc$DKaA*Yfe&7A7{0Dl0In3Yt@Eim->McRV zQM!cADn7^wX*iprSovFQe_<~g#?O&1p9mvLa-MSX{f=q8g%I=m^A}{h;~|fp*Ge*- zE=Kq|C`QGUa^%%AN?VUTn8C}@n^LaUaxAUc4vi7EQ$L-*Kbq`v>uYNUlKJRl2V{yU z7^mO*fOl_`CZ|asJE>%g?Z(`lN^)fXtQ3&OUU#Q&)#-fZ%U!sw$_bqhlEB{AWHYP3rPy=Ur+=r`ikqc+vENxP zz4Bwkt@Sq&)FFz(#BA9;RXf|b!z-)z#RrF*7u3Y*+7GJ-4u!x!Tx^^W`)uY!A2#kz z<^LgitO+KM=R|Xkt}4%Y#W53}(5iF7TQlmf3TLdchNq&p`HYSnUklSXf|zoI1#hEJ zD-loG8>=!z$sh8Voe}c|tPqd=-?G#C=iH^`p84km>|#w&9<55j_9Pyx{n;sI1Wa^c z7toL)S=hUY&&$MKLO9L{Y9N?UE7zpk!$asz-#+-lwdpFA0MkVmvrRiA3)A@Vxlphi zxW{gZ=~QvnE#4(YSYirapx}n78yIv=+S*6;%<%C+cLVJNFcx9Jk$jK?2>wz zQFhHBUm{7;@MT*Q;kSyY>j#Hu)r+pVw3;U=O5oVbvMfwHgM1i{wynvM+c~C;u`CZCnqH?-+%KABqC6KA|FPdDWc;3T|^`m zxjs`8dQMt1oS}pZZEEl3F;#JE$?UW*2Jn|U0SP*P03jyXopv{P+R1ltUfzzPyJR(7 z|9gK^=ibDBQL$r*$Hw04-GQN*vCtRpm3`B-@di;R_9_b>_Ey+XE+J$iU6-qOUOvYP`&3RS7$`fknyT_#J5jn z3<=nyO;?l=e=17~#QbDk#*-*o)CKdBRbAUpUe2F=>k~yI(v+hL*7h%5dS}MWA10`y zl(Kww7GrkdI+{I72o{B&@h@k z@)5-WC%O%ta?Gy8!VdvmV{X_W*jb83w-P8&zN8 zYSp#W=)vO{o({*ggyDw>h`(|T$sV;?E;CK#(g&OWNqoA#H@{8@w7opD2%|RmT;~pL zzx6Jzvhrwg?@elCzu{MIrf+s!Y#do=|GfS!=$wCuEcZN_VG64mP6vH7@W%e;p6J~< zH(fdL;+BNR#4w*~&c+556MN}WjrrNhV)j2tQF};XCXM#*;@g8aa+hw)U0N}Nn7jT4 zSGQ@TbmbEC5n8itdvFWY9*sZTI6L@XhyLdKJlyeY9%@@|j6 z@>kXZHuS5!H;+j^4s)Lb^^-0JDJagTJd)p+NiPPlu7>_XQv&Mw42I-yjD3=4Yx2Xa z0n5wVQ~4V#Qh@UaFpF0oojHAR~?pa&H;mFcm2uDnQ@IVHFOhB*`@xt zs?Lq@z5Dje|9lg(z85Q!b}*x>r<+v)Iyg95L|m~j{rB74#&uzWjb$dglGh~j zc!Yp{24C0O_|C0z^uo+8nyOVEp1sC%2nZU&+~al6eP|%CWJ0T)dS{i?ljW|C`8l_k zm}|5IIvPu&_Bq5>H8(7c-};wW`^5*yXADo4q|*-p@_0t7E12Dt*^Kxb{#J$-JoY3|2h#9sj{7cIA^n^%@Jn#cFbw{*|4 zidq<@ee#^$kI)3$Yc-5bs$l{SlaM8<4m9W;Z&2A{HECd2dwcPHD0jYpXl?l2xq$3U zZmEUn3j0D=TW6U=hF`L51&0b}O+yfgdh#uP3v|DvLvO(=J&Qnl#h=So2~}LIk@?za z<*iK>B67WsE?va=Y`xq-Hr|{9Bl7zaUbXK$_+sJYVrcn$GfDT}otV1u$GKl5IIayB zc7Iz(qb_bRb>LQ-#~G+C0&AP$?^|1#RP0NzA8FKGnielQ-Y?VMau?#*d(>)m{?F*<4Q`_HN_q zdYCG#-1)C{>8kz#(b@TVaR!*11gsPuirp2pZK>k+XA`C(-1oQh2iux-Y6uQ?zc)7U ze0Xy3+j4$w^RnWQ$>^g57^F;dzeelqC7?c-$_adP$W<= z@-SkP7Vd%yIZw)}R2knVuwY$mVb!}_ePu;v6tq~xC~}D7bvZIGXq;GR45$b-2h=?- zDZW(hpIfX?nwSRc8cVNU;&<}R;L`jV^@bmQ;+3BqVaNN#NhtK#k&ClLGHv z@i2s?6CmJ5PmU0^!yMwH;>Y#7K^gZlWZU$EDrfIf*z&c1?>2<4_6%5FVPCE~pw}d9 zrsZLP4+$FWx){CJjCNOV#N&g2U7&Mt!JPIW5t_*Q-1dRi44uTf;b7BtZ90`Kw_;8J zW`hXEnGs<*6O6X)dB7j%?F=yB`SiF{8SW(9F{!BrCM)u)tK*D){NAu5(X!)RS_qH~ zi>PYw2Z|b0+Pw58m>CSD;Lowu2wxqGvaoshXr!MSfqy2}_EEq89P{+)A(bxBb=f@T zgj*KA*ag?>P6G_qr{(Nmvo++{cN0Y=%Iv4bc~kAjw?Sc1#z!e4yq5R=cU-uO zeSZMV5R=v2beefxx(k4-#fN)^uDhhsPZxK--~5R-D!HC+UE5DvYBD~?9}3E9&K+?pdZUlfk?A( zkL!N{0d&;)BVgyR4zCA_TYcQWk?C*|9#&zrALNr{u?b#q=K;VAjg8UydF6P<_Plo& zTgTLk)tZ*Gu>~ew#?*t5m~3K1?86Cbx?VI_*VaSLz`#J?F(E}gFqUeV_#XuM54D?q zwC8QI0N~dQ|6sYEc0f9({2w5P^zTIgzx{*Z|Lsu%5$^s ze9am?Y;<&VLPADQvwE!`OqJF6*(ojn_VF`Jn0f^$Bti^6uRDOSH5I=KtCOso#y6eI z|G~QhZcNjh4&op$ZHh7CAIC&NaZIXcwm%d}FCcjt!Eb)4jjGu7cDLE?qE*8rzx;W+ zyPNRqS50m7iIoV9Ojqtb{GS5r7Hy5Hd9S_~=SY zOG_s^6|bd1&Km!=vbY!mbC7<@XKgEKQagG)%8|WyJW65Y7Rj{wk1FPDcQq1ufY=`W ztg>63>6+nrM=zGh)$)uNX}PtYn1Lq0%0CrvVF9l?SY2J6jn|7jg_^{NqHW`6m+J`_ z6@W_bz7ZHe!37Bv0_>s!sJH*PXokRdk`7}Bk^%vyqgNZPtvQIhSMQyi04gv<5kK+Q zDZQtiAz|Ofjfca3+}nRAhXM!wkGG4|S1Thm4*M`F+3+ww2}5gjl?O7L?oE%C5=D|ErkJ#uw?JljxzI5&j8r%_?CFMOOJxDosaDY0W> z=}R7}{Ib01ml5M8GlRmf!1*VllfuoX>EyHX(OMe>b+}+B+meQwb-ahZ=$GbtC8M)C z?T%hjs7Qg$Lnkk11C3|BnZIT+P`qq4?RlvPY|kvFzcNZ9s&*$n(FtLEKa} zLt(<^(g_56zLLc!#DI8pW7l(ZdkG}YH#X~2SoNT^6GMEB`H%0sLwM&(0|W`wfT_RruZFCO)kK-nTQE%|&xg;!6XhSO@R*7UXHylFny9(E z*IOOC)ZG|;7^d_)gPE465h)Ub?B@DwZ6DFXu!2ATL(h7bG0Apm@7kT+%=QrF1< z(n$XlW@-h{aN7l--QVLQ_mTc&N^U=be>68bf64rmez~NJE|4D>8|xBu<#wo=*fm(~ z?6v1aoXoIdSFneL_IP&O_N1bPV-+frueO;cCp#?5=6QcUqj@IM%uY&3U??u*C9wh; zc3l6e8iy; z$o;ayL-$6&>NsuK6{1D})SF(fS|q+{=AZzUoPiNHk{aB#7eFzVBp9VeN9abRD=x7# zSR8y9LX3Y(4Y2tr7SXJ@2$5_Zo`0V=V4+n?p~0kY%;q)w{q@qK_{VWal7g+$ZDn9# zN#eR$sU@thL;ttLz(A~J#Kc0hjQPBu;V}NU!sfm7QJ!QXJw`(Rw@m4U9%cH!sQ$a~ zAu3Y0N}V9gf2Y31oQvi6{qKkru8HR-o&tF{yv5|oN^3<04Ff|B{IR@r4l=Vf1{%SC zOC45Dw~WWKsXwNjM;0_;jsv#(u!K1U?|+XBD6RksSls`8ia#(coDJsr+jpVw_mgKH zzs1Y(^iuX3|7c}_P2m1_@Bf*Qb=K45zi+h*+B6t41i~^Q6NN)vtqyA{6^}irO-I)B z;QM#>Uy14IGv-!Ie3VvmV{N+IO9k00Hb*f>TOGcWx};pcU~ye0Y>+mT`0I6jEsjFF zi=Xs{>f$>JE8&cNUT5ZcT6=y23iD>=YkHTSjx6bfD##cNrtUrj|1(2Al+z63YJ}EE ze82R3zW(+yMdQcIhHg62d0ZyTEtK8yfMdNZ6|HE?W>jMiJ)-=ofQe$I0KO#?AT5{K zSb-#D_W8oO)i#>+QBG*0E4;xwFw%7VAwALvGHkB{rs_!GT!}7tBVJ$U;KwH+?QRFbtDaCz;dI3d- z%e*jT(eYgXMpff~PjLg(!)0{fM?!E-;%BXy0Bnvip-jSUQC%9M0-v#yUs;-?r zY&wRYJq31w7e9{*EhdjrYpZRGBKbpm4D8!QQ6Psq|SL%1YTFi+-v z5WmOye`Xchm0?3u;&g3gyO`a5 z?1p;9@xvg}k0-Duz2K61KfBaxN#O$5;}%-3tQLPjZC#`Eo@wy(Ys4y~bW}okXp+}t{eP6bWmH^2 z*CtAY5G0V`?(XgqAh^3X!JWn$mk`|D9lG&`;0_7yE@-MTqN@P>|@)*EGW{Efrn*93#d05~U(9VT3)Yh&!M_#_vzQ z+z)09LK^YR{b;V>S%m*6rvKMs{feLRs&FQKSF2vyeiQ9dJ&}{um=sTxjWo@EAvxGr zT8_8k?kNtV=m3)|Nvg!0=^$2H->O!BD#*#Uw?uwO)u>4Avp<|)3)#-KplL2>UUk{z=MZu>sGAN0nf3vT-KX=d1h;#+4+-wdB0;?vBMtU za+k#ZV0fl*%~dq?d6k4Z$+u`_Jj|^{I^AtoC~iHs#AzMZlUBX(7v^){iUFKt)TJF< zPQUCjGSlR`eGjCzQB8J2%#mdjO9vZ>Q5fY$G6e2hL<1~2?HjXQ z!N#}I(XpYQh&USIqropcm{Vr01%JUE9UMz}H7=E?gVI^v%zWW%Kjn zS1w3wM|#qzY$08w-|y8_`|B&pCaRKH)LicWxQNvz1@TteQt9q%mMK?ZR&isXANO{& z46vL`(b7=={GTU&C5=%|K;n}># zV>zH~LLuOWupS#dJb}Nl50uWr;g2diJVVp#;`c{#`0H2#{oBFVN2;~-jFaQEG9f~;SLFtnjg&vTa`apYCrK&0Yk z1myJv^CkZ7y@OwfmVRJT91xUywjv!0b`x~q@a%3DCz`asxp;mSJt2z_PUW>*YJfJ% z+=sn|YU^bpewyK_y+?bd*nG|~W=3V>x%Q0FO|w;Xm>(rdVp=y4usv9RT+A+G@nqsR zZJ+J3UJL4-HAcnP(i$5dFVJz~4hJ3mT9&}sZF(~9J}0wLT&iLQxSbR>S(Dv;A7?QR zijy1lvC%#-u5h~|e&Sb|04?;AMP;TpH4`I!(%9I2z`otRjX+C0zIuf$fFyif2U<-= z@o3!Rp!@nfDQDa%;wQ>%dWj9cM4}I(uX9NtNnJBdxZ)dmjlVPr`zw^=GHNfiQB99c z!?Dr<*Gw(+>sW6{W#gQKsB*{#i_Dk$aC`}G72D~OGWFyMSyD;TUn-V=T*l}&x@V2l zO1>+|??rg;bvr68| zaZ0QC`wa*yxE6r+#jGJtIS5Q#f9BB)I;P+d^%GNe0Wk}#F#GjuL zrm)zoM{=3VQ_h-o7fjEl`-nAJ3`#x!EZxV!d0{KFCwqdLNQCOM4i1V9E_bVX7Sy}; zH#0HgR=$Cm1^tmCj&wZEz)Z26=RS)JvDe)#=d;I9{04RL`l99pz6}7(dX1O*0;aO1 z!mRozFVap5V(qZMFrX9$FCFGHs8H&*W5jG*vC6dW?(bWNa(7?nwfBBrOm9By0&$Ir zF{WQm13_ltG4aQX$~u68R2y=;sc#-rSu_ebF(QqJ2)(Ln!x ztl@bR!$vJJF$cGKyFl(EwT28BhG5i~*8VL0iJ)}4;_HMefa~8Xg z0!AWN$`(iFU7s1`F1F{lzZZl6xn1pQW4a0(jGw3i~bGN4q8|`1Kd3Tfd!gtTY`OHT-VyoXc=R3=LUzLbwiT&4Ao2;}L$@?@fCpQh;#AovDx>?d2oV z8SKr27y?*enEV1u@=<*ENQEDcD zu*kRf0qt80+wRlNR`|_q7q%lEqWSLkXT|NpqJsu;dUTX-g_UI9JhCL6j=tQd{cL$^ zuC7eL8bUZ!;-1(S`;|kzW``Tg%jS^Y9p*MS);CB0=Ad^vn4S@Cv*tuzN&vDd^<8plU4Si&A#jJ4W-wgh&4YKcTDwUBSWoKLsm`a477cpDwHc)hp>JBXKUQi9Mv&20s-WI?-@oT#GLF~fEn{S=EdLmz2u^=i{;U3suS4B^ zl$QQoZ&{H)Z1BRXFnEG`aJwL4*KaLJ5nD^EHPqIe#PzWbPa;eAEYrExitOd|z>r7I z3pYpmc}NcBK!IgAfOl)TZVeKw6YdOzvfC1cO@V=_LWt{5fhDZqzMg(q zwt=uhv%S91dG!;!TSP~!(haqEPltdabXYjRi*NJi{Jtdit^P|{NR99GTSpQj%Z-B& zwOt=h-%c6gxI9~t(Lv>)em{mAx6;gd=`@wmdmM?Dfv^KPKFnR~-HA=^VY-V!JL`G3 z5;M!?xh!=~ufHb7(~hm2z4@M4eX(g@6oRo7V=yNTdE@!QX<;peH#|1=U8$6T>J| zq#&g~bUQ1BaB-q~B-6O0gGB_3w@D)+O)3VjG^g?6xq;z6&F)hb$??F^LgwxanYjR& zxUc1c=kq`p5&k8zU;`ov>*G7KV}vBR28JIm)`6lb*>=c14z4)0$kQ1U3+)8QTCU@#p zG4tNZQhW+XZl|+-w(x&@#``&YLC8jSVbW}xHYFxP>v~I3@ziq8++1gbDBESpTb~2i zXtdI@>ew}VwE9-^L}}|{#%1x6v}$>ABoKwft^0XtWx{Tme{JfiA)OyY@7kGi?(#?Y zho5Uu)$uUk>?B*6&Sg9%Z3U!=kL@N+T*q3uz2mIyK`;GCKzLZ`Cm=$ZYTE2cmc@Ep zuPqE(bj!UhdaRvUhe-zXh=hp8tWCkg-P+T?64$&&UEp3nk!N4kh6Ov(k!2xN0I$g< z1le8$WMh`oBtvl>2@M=WgIhIxP0_fO9kF%vMR#e*3#Di@a`v43Ms}0@NVt(;YI;5Y zfct*zxa0U-?)Bseh-7SzMY=Ji;9A(pIz*53m4AYO0!22@e1Z8$`G-BO`sLyCyqpk0 zeU89OLq;@-2#9%aMTxEF0b3n!KVZZnKIK?MdsuhE!QV)<6Zzv%n9-wh;U>TV|LfV#W&ZYuY`qC6jV;KFpXCPr4cw|g1*`stiY4~( zQ(Y0%0H0lAFn2({?5S&duAQ6!5Ad%~9)9GDMfjG{yv^-=y-gkWl_KbWZS>!R0SDJEwtscB zAsPO{p1j2`Z%_u7Ub>ngTXf@aWj>;2RGZkmzbEz+L}@7H{AGrAGQ7vca1ER)l8V+L zCKjkYdQ9?D^B7Y^1M*6EW_KPzlo%oz<2Sk%)`4ve#iq|V>`HeO=K(cYS&xjl2n;#N zc)FB6n*GC}$s+u|kNj?Yg^_}HljV-0Tu(ykxIT+YFkIfP;m%`-NzR?rbuvpa*AJfN7-)$SKp_BvN546>{lSnm{nM zpp}hX3^qL2`fE!|G%l6@s zHkb3KD+Hb+Iv!T(m!KscXPqJvshm?FMuPRC(QNb$4t16giRL74>EvHEIzM~i+N1A( zwvi8J8P1Y|MEC{7?7D1hNAzmB_-lE8@~GBb)bU~CYLIH$B&C;@A1m`RGjIO(l5z{t z<-)YU4(YSTjd2W0O>Go8wjp`R)NiZbZ!lC{jAUW-dkQk)i4u}aNF4&QJeM+2Dm6Ef z3rcp?;~V_=*csNd#!pk047e|qmL5C0T>40%C;X?oysjaLHy|dm%})x$m!bz0m>_I6 zUQIi;#x1oYtff_rj+D-Aughww6S?#8;Dox<^0I5epG+kRql>@3M(@1;S+;-5V41|= ze#72sZeVN&8}TIMLnYUj6;hAW%=Z zFz>Lid=8DdDc=;}UTL0PTghtkEA}3-%Cv8`c#;TlDt}CbBEI3)-jv|cI z;ycxK>Q+grq#OYT9^a8|*HJ$URy^77oIxjNEf3F4Jj7-tQ&>Q^`e_sIvV4$eeEHda z`;A<1jnqec3HHev#n^!WE?5jp(gf4!Gfv$w_1xQc2m;H~tglo@Lu)#=j z`Mq|7?Px)fb|ObKBqVSvPPT%Ayr<+Xg<7v$db|4LnXTX!Z^7Ns-03Eb2+l<|_rW=( zo8$cNWtkNYG>O-UPZ>_9x4{}+G?4SxYReA`I-mj({@t z?Eg00ta)2voXj}~<^V_<3Up=?Ewd1l90Hv>W~>YDB;MlC&o6mmawY7%J{t2@>g@!` zIfYAM#jJk^!ne>uz}0VIwzUb3RAV@2(P)!=&1_GZ4(4iF$Y+`B96U*5>eXLGh zb!KB@dyB{GN%MLICL4{?MpHVD`=~bhHlh3?>8O-w_9HK3F16lFYBMNc*-xi8YMRjq z-NT9_tDbS7-*D#2&T6ojR06!`Jv7k z6)d`|=X$G|_M@_!8HsW~^f86oq(*#e~qtLx#^MYC&0z)RA!6{K=21h=zClQB89 zALIJCQ48K2iz}I=S4Ku7;F-tY7y`^N$%*Yy*5#l8yey($_{+WoeR1!^tc9w?elzfe zmhI=}Sb~%N+H^{WQ4KQHPC7h}V#ntDPcQO5`x(|H-tq|H2&Zw>4{CoI8|ny{)Ni(v z)9B~oGgvT@sM(ZMvGS|dG+(F8s%XW?>Bf-lKlidUmNk0_dJNIT^`1^c1$69`&3nyg zr<~#(JSAWHI$RtlZVCCIChd+-<$K)-m#ft<)$m8q-2m-Z+Rfy$3?T3Hc5ac%?r*{j z+dU6<*=VFnX0Hygwi>Lxwr%Z7xkz|j{{FzP$I16d$((KRg?jZx6AjDO8O&ts3V|+x zjx#rm4mbO=un|!Mi0;Mnd9?^fl2+uxrq;2)@C)~vnvY+xG*3M7MXmF6DTcplKl@0H z){GdPn)z~G>5c9A_w{i^(B22tE~y9d-(Ks8qE8Rm%Mk)~C%Md1j#2?be+KGw7bm_v zJak)P@VoA|I=>W(8Z>Kj5ptYJeBH4PTU>Q}_dJz;rzGHg=(va-RTe)ZAa$&{S+-)o zMxDN1$#Q^ueF#;6tT1``c+V!&8~Ht~F6AW+PP!R7AGP*Zkl-g1eEzCUP?X(*8g(@9 z8h%n))6#0gbL2RV7Inb(@HB?Wr4lMvXH&VzQ&K096gR@p`8?^QNn&ujnQy@+qaL85 zcyG9+#*pnC%{`J3|7zz^_0q@igQZoT)r$+iiCg&|BvU#78YMh3f{*{F?GLIGr6$=K z{+k*ov_T{{{)wUJJ)=8dDX^G<_pzB=kU!4)UfjqZ(u1{!w7{8y!H~u7RC7zqFmlwN zo0E_p?Tnf=gt@Q2yIYR8@9$idyZy*y))eF zbFu*L%|sJrOzuo>Z@m*oQTXB6l{}YV*pI`SK8w%Tw$jiHxoyZw{|qBqkFc{5no6l7 zXkc0N#6taaeF7xSif?9vj$QVcY<_?0k4yx-?tX(!_b$zhJ5R9^XiZhl`xyNQK+2+8p!J^it?5>^UiBwCLqYIyG|zxXKRbtz?V-3|Am zP+Dpax%}jmQh#2+!&Hj8rwNk2AN#ue<>6pE6`%>)j4Ry(5(c}oBx09S8lGLJc4#~< zg6c0R)XI8GoiT(2hEaKUd6eaW>V<|yI#18W{&kSlt@xC+F!F>%d%(|qWt%{Kp@{2o=5-G{ylquysL$y9#U0GUwcrH&F%S^u!OQ9BjviUd93+2nFHt?lZ zD+h;Dn)ziE`w6GBP01PeXDX8c%8mZ7wMFxcz7<)I&3&!Y1CBg9CS)JN zh_uvcdZw%hI=ViZimi?(;%7bj$S+5d%mR&3C`z*N2epBn8e9l!<0T`EML)9v(C6adlGlH36bm+Dw z__8ey!LZH>4({=n>m(Y`c=WZcKUL zUyhDrL*-3&EssBm7fubdM-f{LQx}XgrQyN|FGG-@F_Cz_$=z0=%;&PUg{WFbK1%i% zO_)rT&9X)N9S1GI5yPpa2E`Vm`wGp49b|L+oUc?vkW$7|TS<6QcNF1rmiSa9EjPI) zskE-Uq`oVI8uH{}K5y?o&rcl#Q$%A*+Nl6;oDzOa6ajkDwXCIOhWp3$xhNi}-GT7c zu7}GS{Ew5|PKV=0cPSEyPT-Vp%NNZ`Y_<}+6j|D!X{sMIm?gFf9f;nl#ngEGex|#V zefKNMdqbs}28e5up7L#_#^P#R=N*kinhUW?*rjjre2M`uR0i@QkGNTm{gIK7pfWk3 z>h6ye_k)A3SA|6MMJE_ZvB@t&8%|raHIpDjo$tGIu~cKB8E9EsgpnVJs1xb0y1dx_ zw8&+YM51cNH#Br14V2A-L9p-_3H{|mp*;`&miCs8J{e|>S*CIP6uFZ^$l_f_yOfT# z=NzL45UjMrkrIW|H5o|+n)^0Nv+o=DNnBT>`ghzXIG9w>8D+np;%QFrXjH=}-u_fg zjw51Bor&xvF<%~iK`|)}?TVX>7LcS!6GO6O_P~n)dX8WFc-vfyf_YD@Hso90Jmhyd zHlcCNbiuy4p_w~Y40^+W;M+QB?2~dmTXdIK+io%a%Xi4DU#NQ4J&uWhQ|*9m>fsyY zrXR^rpwTO(yRN0au7GE^MZ#>L26hf`LJh>N2veUv^wRQO&42B&aau%Z*(?rFC$EKM z(^SuQGO}EXeMhIYp`%@$t2$9Ptt10mZM#R;C#D*en`g4cd|>L6&`9J6gBfGG!(M8k z;(f4w_L9VK5qOO9g!mo7BKwS^<-6Z*Dn^Z$sZAnwf-l!lkv&6O9d4-?vFE+I#Wp#Z znQKXVgQ}-pm7kqnd`X}Byr=26S?_B__oD-bnC?QmYiPD2`&FK-Qo;%ceVf#*dI<;o z+2}5YSwGBU6W>QG2rzVmyUjT=$->~AQvq6^cI_LGBC24AHb?0mw`-7jW!rJ2luniv zwEL3XD`?k|L#3I(?MCtg8?UVkcP;@o1T|I4X{=>L;r5Ooyjd+vtiDUJ4UOkw-cTkXq5U6j z?Q8f94i4)B+$;Y5|LU{;Z!Z0}@B3eF?Ek^D{h#gr6M2B;cYc2V#_Kf(@mksye)t>w z=O5h1e@}faZ(bk#T1bEY=LhcVkN>*!|E?PD?LUUz*I38@zV-j9`t$eywEDlSKCMJz zbtez?gBQJ*3;PJkvA>nd&hYq2O0{)$V)AdwGF5rnW*3zLX;kg@A;e8Oyo;^IuSLKYg8aAPaS4<6yI*bHhpf8mdGk1o z69{puY4~MxGJcyXWUZW!X@iJ)D4|U`?ZnZz`NSp5EFY0%k-oT#ON$ePpU=C0mCqfM zj0Lctmj>19{3J7tcZ+C54$74M$1DnWdV<1QT)QgzlDxx5Pm%dqZ>XHKz%)~lhARy( z9EaDDT!AAP?sqH(i(%mSnIH=SE)tuFPh{r>f3U_5`sPRerU{l;g4Z(<;UVvA^lJIo ziB1Bhd#41;l;{j$xrof)|GndHKg!>$R~8HKoe_3M{y2-%bM`9> z)dIT)rebybNnTzJHS9blJ+rlnvb5aI9^rufLy3j7$*kXs zFbF33{aF#|mg=(}#QmB~@--W7Y?t#L75LoymvqNI%6D@&YJSFMG;}*VS4iiIUq??T zPa{W?Wh7-W!229Q^8wDft_lM2$XZ~o0O=#){KDA46O;4OE}CMC6yA(AK`)t5I&j}B zjR>BjSKrr)ixY4qZg<^S84AS(FnnM`=_*u3Q7O~bBZw#*!3SO2nwox#5Pi$kgEEPH zS4rlMzDY#2%L@pnN_AsPZ+i$BHE4Zg-WCr}F2IGT<|)ccv#K!ImdjgfFfTUMXsHx= zulqvin8qR|K0!}jsII2OV(9*f>$c$ouIhz>ZHJuyyMh_jcYTbWr>iBnRO4@N*6$#> zJ{FQO$IJB~Caxi8!7;T$0v?jTwO60Va1l|iHjlc7cnYjF-E?^^ivN0>d$5sc>~0ZI z^eSqlEfiUT7)O@UI?S)`KY6)5nPyMf$5!f}qDZV4Y!noz;+bfsq|2%yL0voox8d&= zetP45qvpQh3Zz72DX0+guCsjdt^28+UVWfB%JSXf&txqoIbN@-vT-Y!flzK*@n1AG z3&w||UW#z8?T-w>U#*i$zC!lhp}%Q+>L`&fH$rcvGT!mnA}cC{@2yVs1J(V4V(BH| zYugu-mdIqK9Dge2mQW4xAP@@nltTHwRGMH>2X0}Zh~r9r$HbS#`;vt2e!Y?x5u=*0 z!8FnzPE{j|J)nfFOT}QYn@fjpi1;7T-F(0eUc+ql9sdz~8$IPSUS*C6*$z_I9N*)l zLuzV3qpG{x>jr)%(jSJS8Nkrd2VMQW9P_eEobL4|KKv`!m~z&vS#)Z-R44@I{?<*A%*2ka7H? z!hOc7U1Zrwy7mP5QI2PpowajNjqCY!ztc(L_q^H%L^`bwBmNXc+85rsL8=N?C7YIB z1Q)^fGY8Wp<`%#q$LW)X;~aj!yXTy>Oj1elTG^zR-KqmogwcO=#0eG@0BJJS;)29p zdk)I2fbq7m)P}Q?$R>s12W^UAhAsVHAdUulW=NE}c?teeM*r@?95725M0PJ;{xz){ z$xPO1@@G>-@@R&!krAU|!`l1K{s4`CvV(h$dK2tYC5Ep$a{6{`a{3;05tGx7>2mwc zTGskah*+DK3%$m4SiTFUinPVKhkYWjQu332gFOuAjCrtMed3jmU3^YgH%c<^JGfnh z)3C^Oi^8A4^-$R1;RZn#QZ3rHkR?#7&fpTbIa`Xo>BZ#84?sbSjEY)lC@C@qJIS;q z(pITdBzfW@o@=A{lL%Ea-!!9GPrHF}DdCNN80!4KJuccpmES$-L={h}H$R zZbT?(lj^9sk{rSm@aM92d8DE09|e^rRBI{CHQG)8C}u}_h;_JM74ED~(CJbYD62}& zUZmK1J#*ULp03DhqUd$UejP`gJ_j8bO7sF?L~~G&>!z= zwyYPE2@8%b`P`az1uJ0mj`jnAOrN?|LFYo{lg9~HpxW0E>goKgs^`FTDoJZ`y%jOG zY!gRiSL~|$9>k#UQ%gvSrdfKLyO}LPhheRuCd$TSwun6OWaBUX5T^TTl&A=>u%Aq$C~LnqT{7yHw%B?k7Q$NI&d&RdHkwRwi3DnbQa z+UFT)qf~v}&jC^uVUW!2N#;-j=OItdd<>`E%21I}Z~@Tth#LpM`dXIH)NqW^)%e1( z8rEjByqMCbvEKt|LREr|XPTjYfgOdGSR)vAvXARc82Hm=owAN^S)}tKF!jF3qLhW= zYM!-LgcckH#S$f0lnc5(r6yYq|UM0qHez=Vp(5B7Cc5 zD&)LD54Nj?pax%m57aE%5LZIY0|gD`)i2-5myPHpN`L z@F_%mrb^{ds9zPAQX*&9g>j8Rvj}v$9(&_0z+1xkCoW6qn=sP0JC`ETJA1`-a$`$U zbX-8Ye>rCe#s;z|lHX-q#Pd9EB4@1LK1UBV4HcLgqWm-L=P&$EP}MYaf2z#jSM>f{ zG=%7E*`#|p$8TL|hkNtIz92U2_><#rLneHo&(!MY4mMrOzq)6Xt}lGfFMFPT(Wa}g zNor=ezUQ=6*Mr6igr12d(PNDU0yaQM;VQy@S<}S|Fu;nPK&_3HnHhPMebHv#8b6@9 zDiL?^bdvP5V^Mh1l*|2vIPG~GOf{U1P8l-t3(GE;dL?zvtb2l2Y~{mkG(C1>ebjPF z6mwqGk=(R3#dGC}saS2L(kMRfhCHK(^JU+)RFMr7RZe>{v+yrt$qxONj_+rKe{W~&ujtJL&FS5eS*`|TbBzJrZhTx~^6CX`AtakDImg~NPKrQ9Ls@S&t2xQkc#cRo6^ zncyr&lP(B)J}02%=x;hy$`ZiJrHMnQpR13zW3FH@l*rtBZd^-t#gB2rFm^y2uF&y{ z3Y@ck)0Qhw?_#aBx|^&unGs^~B5!SCaX;s*#><)ITC7;6V<4FmN<-;wlk3O6Kam0K)tm%TK||8??I$*DagA#8@B27p3E$}ysG%AZ!TWKNI{fU- zh_db0IYePPF?bG4JDr&OU1!}AsFoiJvi~HvXXVBpUf7d_9=_ow;?aFy<>D+z%yyA_PXU26QbI5d3z7JP zTml%G#HSdOtfD&mpxz$8S~MxJb(2bG(o2)VN=mFDvcCNd+TW-s+-6nFFpq>XTrGDL zY1y8Q0PT^;!st%tOF<$zf)+E__{OD1k>HGH)o`kVo61F}uOrG**HAVtqr~<4)6R~9 zKjjfk)yAoYznz~1c6^n6?^m{!*Xb!G zEQP=`$Bz`0I|X4yVW?a17%Yi3*qt|Ep;)(n_LVaOmuqzObZU>B>Wb}5zQqC`%eCg_ zg1unaEQ!E;7^|i=^o`WmxGaTa-YT8v_ZPrBpY&g?jbdVmnV4^s z%WH{@QAkg>=&=jl)?q@%CtTF^mqzq%tTjp~Ppu5fg*85=leIdWO;*y;>9Q@z$UMi6 z&6b*mk#{@L7-l`%0%M_-OU=+_L^3fpFC(s+Xq z8SW7(Z7uzWNMB|718&1FINm<%)vyfwYid5zN?QC%qJpgDQU2rErRA>^_TtJU+y{^T z>glD5HPt-H8Kht-wTpEWh<6c{M`i=(c80SPr?ZpGlnA_@?Sq_~{a_tttBcCdNu*5N zvtR1g^YPcRbl)dme^bg5)AQ&IEZt^RohsBGIT`mq1Jr}XC+y>9QsZoycDlJ6BMqoS`&%6^M? zg`0%l77wuT;FaVyimlbPTzge*xx$iyBSFvyDqlXsng7p4{`%vr!}KFcXnPQI6y|E! zwCtQTQK7cxv7iKP)m`O@+P4FD@*Mvn_v}2Y=%n*dm7~kc)T5ebj|T^De3ZXBdI8@6|>s^w(9s$U_1p}boa|N zt6}G9`#Y>h=R=NgB8GTzTsSqA2L^OSha*)(y%a|G7MBW=RrGKnTmu^v2_DAxcLcnM zbSK$;1b~b!o`*{no!=(=rJ2CDWj^&Lxns>zfqspSmK_Zd4R;zmFNHBwIO~2o?Z;Km zb? z1UG*Tm+klWz{I=&&&&OlwHmTub@ZwdmY|Qpnw)XOA);rPeZR{8#%rlA=%`6mp*}|1|DN&yr0)UYwG{Cu3gDl=*A|N4HJpJ@f&zr}ONafSrz;VGZhhl8QSXdGO$@ zTx@ z)~VY3{II7_(aWgThwN_q;y=fz|Rc6eBjs%THvhD)PWD_1;Qxt&d# zEn6o)nQmzLW$231@Z3NiCh?6?yYyw-tIB@&6D9a&vNB%#bT-K~;PrM(+qF9#MXNLM z{8GZvv~E2BTU@EsKI)@Rf>oehTeH#E8Ti=PLubaP1*p7^Lc5n-y z)xilBB9?XEl=1P{YQq(drYrvRi!Q$=tj8einBpoZV`^~|j%!L3??neNu%xQAPI{h> z8#uY{goe)PA&p(?wO=pz_n$&2{f#ZFiYL_&;iX++{ zI?YS`>X%PpLfrLNTfNTpN);AYSfatP=jTi5Bt;0q6ML|X*_>uOPZNO;9fYqV0|ztt zLAL89`NbcLbDQ4!zVVN^)bJLUEQMx?%narraH_*iOLBampny(R^g)RbX7YRY?_bI~ zRVapPLO!{7(I@tN$QR7Xga*1oE0a0vH&Q3U-gz5p-C;6e6LyO{m1+gH%x1CtVgqi~ z`4VrLL=Xk!Zpn809Hawi-0OZaX7N~EHqIBZ=wo2^267ubsl`GdAe>6ca&IE>*c`B^ zTnhT_BX{9LJ&`u*l7^*wYY&9N9bI826kDdd)%^g)B#Wm}+j{L}H<|Q_<4Pt3>Yr$U9dRmov-hv!I(aJ$F+)?sof0?rQ@_?1=`S=b$bAh1T__(-aIbS?-fHW%f6g=AI}%}<-gDp6 z{psze#m9QfTR8qw5F6~I*7@@eLt8Shqben9CGHiv} zeQ@9D+4(IZRI^XEtl+XIF&lw4N}r}zHt7~%WzWCpcUf*#;2th3vj%AQ#`%@1}zcHRGvl+A-qcY)uJK!N%Qk^(`s+C-8+CPIKI!Y zNW@#0*p;c_5)wgj|7IzYFhDv5*D@VzlV*p_*d}M^iY-j=L;4`pkx3aT7&2*}Ru+4# zZKhoyXqrBltc{;Hf)V6m$l#xBFG95}rsbJRl++fLo*m|5CAwcpg|;%yA-<{h%ncgi)r%{h?*;nX*RH)TfiKj`{Cm?K z!aw^LFehM2va*!YYa!3~!I*OWJBM`QU&Sun%;U#ka%e+SDw_#H0bn`Qw^Sly zdY-fjLD% z6I+;N|C#su{s-lQXOKKw4B=S+4GeNQ=lH&>6!JMJSu$3w+;?O$fFJkr_Fv@ab!+Yq zQMIN|pK~|uWPt8PH+uP-5KDf!ujGa`{d$Z11p=zq3<#VGJIcM63|R6D{JWQLRpuuP zcVxG2y<0BBvxgg>)}lapVXmfGv-;CMgux{r4FIaAO61TP)C2Ps4w23_-% zID(hjo@19?Oc1)VvoTo8$^{XiW_DcB`&%%E&sr}}HE0EhS<@>mvfIWt)=+>)1CFO24D}7=E4&`mw!S#st}ZEX*dagh=NcA4*z9mdXdTV3>ZfkVxxQIx zRaA}j8xd2f#aJw&g*>j9%_CAa#E{-lTukM(m^@u))%YH#>D}f445Ia{X}iw(Ac`zH zZkK@C=v3aB6E@$>qMn%?Y^aF05P48B^7P?(7kFi+d{-Y$*QYi8sF?MS62t2lzm4=G z30Dap+3WAp%eiILZynM~2Y-UCv^=ERe_?n_qa`ob%j?OMO1RHuvRymHESIsr=tk$J z6}kMt>~}NbYwYr;ZHedCLAch{D_JY|!uaDi*)&bGh$4tEq%5Qr;{8zbY-IZel!Oy(AAq2^t&n_d}(mCZ)$TqnN?1$1+CzP~66 z>1C&b+#P+UT5VHv?>=J?Wu;$7%S9u05Vsmhj5E}ChOW&hbVHYBTONW#_eG8ux&CMx zem|ah_BU9lC}lnVJvi$cOl>Q>+j|f&#{v@(v;Wh9Og!uOeW)wI&2GQ{WYFyFswfj1 zMC>wd`+Kz3dB%HN^Ekr5r){p)j@9kt*b)2OxliPgzo5)*$RMDh{A~1~#BQPDE-~zn zU164vkL}l)=x8zf2S3H8A#tbq#ipbpje0cZhk9jM3N}&s)7hN|t#Uga(QG0&Bkz!B zrnd;M2Mg>(PUAv2fMUlaq6}vCQrk2v?T968KyvbG1E+jTiUaRLVEs;WGhw~@xSv2Y zg5*tFdwoz2FV)&km0cg2J;?sDy-w~1HR0!>R9V|YB!2FEt+T@)sV2hOZEhwJVfufX z=uK}2w!wT^w8DapQ4oksPAprBYPXuQ%8K1)RHCw~rZCe%XQeY)vAN0p@lR?z#mzNC z1!jhhQozj%U12ltd>516O3IDCmtjNt(y;U1eCrQit;yMu?aIhZHjulT)>)R!pYR#$ zS-a`dHYG&orCo`9NyCQz%Bt zoEwpaM2K@}mMK?3(h^jF&MzoZuQ zp1a!YC>9$<=y}*2%#eq)1iU;dql)<`96~xE?WW$th=ws~ZWrwcv}M&?2h%bU68qC7 zdd|T&jiXSYJdCTrpG!e|s8chr)dwq$G4?WAM*r|a`wZF^FkL3?mkq$V(X{1H$49Do zINfd|t#>|Rw8d;y-XVVO_``Gldu28K^W~U=ewQW}}X_hsno7BhrePQRJckC(P zF9?51-FD%k>BMiM=%yaTyj5i(e81|{+0**`8zZ5%4U^;x&F9$##mvu1Ln-?;B%*+r zVaA*m1&O&2e4w~>ii=;(WA;|e534<+zJ^}o|Llxc)x^9|-!u5Npecab4cIu4ryCKh zky-wCv%&A#^M3eATlKfeaoz+7`XZ(_SiHX5BRuCdwzt*QYLU*8u`)gwi)goO`e*-_ ze}F}Ujo)k$Fk=vP5KYMsaS7Kw!}S8j-Ik|t9qCeu7PVi0T4)BXSWefVHys6kd+~U_ zG|6V(0IZ1FJ}o9P0A)IXhf5xVOCzE;+t&ljA^ByR&XjIBS;9Wh@|JfmTLRtrqtgKb za;V3`Jq13CW&*wrRW?oTcN^_pPm5Q#cFL8#5U2|fNV42`*4YyO1)f&QT39Imh?NLKN|fBai=2M ze$V~X)1KBAhj?a`u7u~tA%d2dYU)|l^iCz5fRdSF({teI@^2o zB=Z!veQv4uq_%3VChdM{Lu-x8xoTD?g6 zB01NdXt1C1ETEDak)0sy^;hr%4D4Su(7#fo{~*nOFaO_4rT>4I|863`?AAp!3_;7w z=UVzM4~g>=Gs20Fs~^4(bG=Lhxz4wAU2a43AIeO-S%{X-$MnS1JoVn<*ulsi{9NqB z)QTUIUexN5v&k6EQ=?d|>B~tA)<vyI{WQL z%;tN{e{y}4bm`6BgrmT`Yt90ksqFHx3;mi8kY0(d1l27HgcJHMi=JS`z1WD=n6+SL zf_<=y?LA&!n<v3R03^bvC|zx{So4O%LnN&IQA;3@k~|)ks+< zO-Gf0aZ7;Q;smQ^Zmj~p!87UpM z{2#n~Zd>-%c1}iiickQZH_cMobImSGq38ViOP!@I=Rma%ltlx@fvy7lxA)`r&{*DF z+D>&=Tn))o>jI(-dNcV3$aU=x2*>dKz5$yM$BZJuQ9 zEFCM-6b&qUsp+{vA7A_H<3OiM-wNW&QiHZ4`P2xguxRlqjOP+1|I=&a)=2T7Ziz!# z!qjre%;3;w8}@_HTA}P3`-jF-8erd*@ZkK`$M0RVeB`pkDX|U49f_2?!75`)vCzj6 zc->nr8KePRUCA>?)Q0+drEHbY0D_C5nvt$~Sj~@n0gG1fYOh^a8REM2lUbgFX9x(4 z7l5^%T;kFS>CQmuaFdICRKH`LP#C|+li!>Ie>$5i^%nn>6hxrEo(lvcY~&Vp7sXPL z^26y10F?}|h}{awAL`WJ8)x}pcGcWqDiai~Np;%i9p~p%`KDIBuvwZUHp6SHVJitg zKFOTnlB^;ImKVEUj%XQNTm@@qil5FT|SJJf>e)Y?XFJGdx(;6 zyKR?wltQWoLjg*NO4P3TsR(}OE+N$r?y(#D&IN{(-&vWxOXpAij-SvRYNSFP+cdovL2B=Z*rRy2TK?x zui|l08ZQ%EV7sf-eQ#wj6)A56=I&izWoXeqyhm%GE`PNF^PVq~ER~}`1)OL;ysFzN zB(f{raxCH6E7Z+0q}drVOp(gNIn|pzJZSlE_Of+$wa${sUfQCRmR3}$;%Z#`(X)?h zYhNWi2OPPX025>WSB2Tt%8HAxsdI`&_taEZ-{mAnPpLos-3PDeF7H~wu$8}HDKLQ6 zX(n%<3iq~Az!~UK5h`&`_6Pd_QeE#L+e`mXZmLk zE;Sh&16xU`Fq?xURH>3Id25lKpDvz6g~v0v)sa^t17cfW`_q4?fgZSWK7}$vB_7eu$V|?EQe=+-wDTOmkPEU_c zFiF*&Pk;A0a2O4an%YpMGR)3Wy;n^8Fp`ad#8#nIz~7t_QOM@VJk2hawA)NyLAF54)>;$reSU)*k@W^v{4y( z9E%x{JSpnTU>3s^eoZWg+dC5e!=?0?mXGqcI=4sQ@vxz9>3%gr7pv~Bu6UKfZ68jB zs$$1@*RLBDoeVktWWhI0x2S|wFul%B$Gqpg|CCVoa`sv^T`f8|%GLgYpXZt8bh$s; z7i}b>%e7Yu=?1#WW5jE%Ueb26No(HC1_3>DaaPJh&Tcr#MJ}y&6&NK3OanAUlAoQ7 zg*qCE036RS+|?sG?D-YB_ZW=5FJ)(M6?Fq?(3LdUOZXOOR@eQOZ+x?~Gba(W90$kF z!$*6IDo9?om)nPDjF@P->1+?uMO=tQGdX#_aR#SwPG#SQwTmg1{ZPhjJa++=g{}9c z&njOjSZ`{w$VFmtYZcd$S`{niZ+$+Q@(@;elCX1gum98FK@jirto)~6oGTJ%*TdFr zV7u3=s*O|CwO}`^^KIWwDK=|DE$U^9h2ds@h-Fs~y==WyYMA$|zrzot1o#W9ybDml zCU2r>y?obp!kx!CDml*wkKTc&DY0!(0$n~T{H`O$ewTRU@(4KeX z!#R0YmrCD%FIE*lNMg3fPUDsn*p9bdk!aR1jc~Jas#D$&z!+`PoV%UiPnNR1bYB`~ zpd*)j;iP@3c))&GHiXQU6xZaiMp>a9&P;lU$~)6$28JW>&;1{)OnSuIW1Str(J!*l{ zvnC}aEg}5}5q9}6Eop!fwVr_}#J`)nDJU!qUIlvAKi`Mk+1UXV3r>0MEv^7LDR+Asef7W@Lv%Jg?GPqbC>NF~l z_#boH+MW-y{Q$hQSRqgJVlarGG-i(Y4?^8f!N(vSsVfICcva<5r+#JcbZ;*(1OOh=O4K72G z*l98^J3B@x=UQp!I3fB6HtIote>8Hht_F#Sh!kQvAFn0p*|KuMfieCi{BH=p3n6_| z|G}d|iGUMQ*t|gyTG;#q`Zy75?o(1N8s0V&D>F9?o(16X`#d+OnA;Lov(u_#w4*0c z7x5uVqwj#eJL=xtSL^fxBRXNuRHNT=v)j+_Sfk%&an|Ni?NK)KoPqh4E#us(pV(;& z00{{R3f1e^84bd!ihY_!tr0(`Var~u(9AE}1qahv`1E(Pejv0Ub+Uf`3@Gt&J-B_j z>_(~s-zr1==?`)?a?pP~R!Gk(JRVu*XLWWGx4!$%f>J@ikkI~_^-w%+%^dk6XH0>} zNMxaxR&#V0oxmJ(ef|C;h(9r;<#kj5O3IsJu#ItggHCoXro)R8Hlv&ymH}PSaV1)0 z&~BFk!UeFC%r>wBH0WvYlPoNiqt^6%xtx8?hg>~Ab~*~Oo9f(1J>bLH+29Ln@KJ^8 z`D^AM(Q$VpNuFfu@i|k~|DqwU1yKxZo`*4eD>0c%n}SN2K2O4_xb@pQCyB6@eI(i( z%)G;LcqIzC*CFPM(K=nq3KT;}Lw13EP)p2Aq8bj~FR@meVY{8nDLS3hytQu*iBmz> z{8F9TIxmlX!PZDpIHaOUh3XC^*aP~xtDQvXRbV#(R>$cw1DE(B3T7yEmB{$FJ@jKP5O!-rHO~^h! z_OoDq7PND;gtiZJD@aY+@Tna0tsN}4Mj8QrQ#sNn-~jifRVU3kCW|-y)JEcoC{?FM z=@^$5!~IK>$W`k_2i+MmY*}l^I2$UZE~sHEuoJ=l<@nGw^#2T-F}EjxthBSM^M z0UFkv&$y`frof^mNih}S{%Brn@WKyc2|3u`kYA>v-+WkuS^4<|tILz-4^**ZVp4Hv z+k4gYR^uPt9hc@UpwLa>s;BrHZYwxFZU$0s?xCfsvO7IgnJE<*KDH*E^FDpuHK)GA zQhZ9}Yj5U{Ou?}f>0v}G9Y53*i*biZOuE|YiT?T`#uT52`dYA{qO)Fqc_r3Qm0MKD z^Q(rFuXEPsdjT;D6`8^J!Tc4&U9(3+=t&<3gZk$iI;(0@{E6D=Ox{HeU!*wJgk(0> zUsy7ER+h|?3mmLOK!{L9T{Me8S4vnfM>i*^^@Qkv@2+UvqRN)vwU-oi)w~BQQkZ$P z-hXPj1;ymRo}Vg?Mza9h{FndCP!EGNnvUdk}3I5m?#B{b?c zNznmtv0c)IRLrbt?;&mF#OH5wN}72!b-OoFf#kA{t$w?rJGJJCyrsY3b-_g-(;Dby z<-}a0tbZFXemMbkF^%tVYg>M|^|vTFEsLS#N!U!^5Lr8zW0bEq_)itcYI_OWzaGVR zvN=>}#>Xm;?f?9cynPzv!(u%5a$IpIt}SW<9pV%yT|tnAa;~o9D45A7zHnI)nBsJ~ z;_s#6TQcGDJl=qP$uCb5A5t)1W{Vo=pR2yzB2pxV zjBs04HWlko%;{-392)YCxxX54JQbto)$uGZKnq`Xkl<&F<~6ChGa@Tryx#IH{bv@E zW%7;=a(3;KPcvl5z3##z5uYwUA-L3hJ4|R)LuSN>5*V&fmT0ysScyqPvs)YSS#oi( zxoVB4^4mz-kkZ5;cw47S{oW;7Rj`eUH&btnuFL5FG}O!w`crokopoYN?uAJG!`ISX zsYq`xGFHu{IAu8msXAl5vo(lD_`3~FjDKvusl9K#v3WXg*AL&Rq&%(MGg%Yshu>5z zbf!}{Vrh~>DsH<*v33Rlsco3GiXqaW`|s}mBdV0>&A1Dw&#R}8?;IvO(&37~ zJ8Xr7iM71o@0rU=1*&|DJ;>vU&N7WlcO-U9KLa`j{b8&F;xSIg15poeBfJ<5RvtW7 z^w-zh8YZ7N#1HW0s1f2_0a~$cfAxNr2?_?L_r1wYHb)S&*iwfc5Dj-XW2qDdkRP+%NL!m}_?;i*&RbbQSw0=N&{(`TTbvMLJP?gB_Ui<7vUeRx*;r#VzFEn<7HF)lcA>4@RD@)> zZJ`5g&FcVa7r-mwX;1_vgBs1^($Z4+XxW=&=zJ;sKV6vOghu+!|NHpi?ZUATR#-(Y zD|a;s8_W?94J%Z8d! zrVMqSsne`WIJMFre^Xbq@|@B zm1x9C<3ASMMG$~xlX1NbAMQ7hnLGx%e*>@S;hvz_9+(1gwBJu>uG-Ha0#(!nb%oIXRCX&E%h-o%Qwg336)XVe(>u4l{E8 zi$A}3FgA=H&lS76xQKpRb}yQlnJFwRghC>KsI@@40@;2U`@a$4GuD-X1v+(No74X2 z$LpbhxVZRm458oi9n~Mv@}E$j!3=%`{)G;whkrtetkP=MnE+1~5D*Ynn`~Lw*uMB% zp#RSwOL5=uEN<8Adb3T>*`fL+=WI5WMfb+R!=wFU7s}ECdZLHi=@p(~_hSDC3_)bs z^Uj3!`NR%Ag(W%u$=Uey`z{-DLesDaMMF_eF_p^84Cosm&-X2i*9U1@F>IM6$ zj`0Zjzg{Z8I`*oHZmFH*YwfGW8WfX@3_+;+p)H;}z4T9_=Vv)Ym)j8`rY;jSlLa>W z8mK_`_NyLWej_vFTMTI~`GWf5rfoZ?!Te$2SQP{(Rsv8;Y$3LZmvEwS`i^hBakY zlqIcoKtmy+FjjOWZMXXe>*g?se9CH}XovW@AoZR=e`f~tBD}9eYU0LbEUE`Edf9p& zN8hErccc3DO!#LOSh;mPXlidP!-Dn2X)mW2sLsFDe3~A+RWu2b+Tv?CQ{5$dK@3}l~!AD z26k@J7c{Yfri0&dZCV*DrOH~ft3m}5%YHP$uq7sv1KpT&`jqSdty-4%ZIGJQjNFn_ z(c7Fs#-@?EKJFM`f8!|&xGRG@c1o$Z^_VLPs4FsxVojyAoz`IOV%@f365xy7+4v{A zOP;W-H9am7GM-dE1HGSH?+ZNUR-i2G#Bks}fiw7eBuJ3{;k4$xvE*WIWmK zIvsz?7t3s>hrT7wp2M@N4KG&Cnx-d^iqr7E<|5uV(Q=t1(oiEbu?n@ zYKs)fAtHJYq~HWqbbPFQX8cJ84h}5I5AEj5eFYsI-}Rr8v$iS}Zc%or!q1@TOWQP@ zb{>k8=@5*~PVb&0G(cdpASfYvyg;zUOQG7JxMgr2hX)McZmm|^vA7#{~}Ww%QUn1*I__L z=STBQjblVGB|8!CJb_Y4)3{(M_3EK>qR_+{`I?(zSF;?n#n1omE-+Z7+kP;WjpXD( z?BMEEg+i&3E_$PKj>e$#4K)zjD`N2y7apHk7FdX1TT-UR?zPlrtCuBoY^KClJXf0M zsaIQ4C!Q2%{M~|uSP?dMLU8m{EOCKz_Uu;<^7pcOO-pwJ6{phG6w{T4ufMtXV z2?k6HZbl>mA5IhfnV!jIX$66(vVp)iVQd+r?96|yrqOr`6A{Ej&o7s!xs{5QPMm@}lajyB9}*3s@02k!*)5E&{=5xZ0M?;Bw^h&9nTp2c(ktmi z9}R0E-IBQgn0<|(F-l$iH79Cd>y&3+!~#y@*OLeO>^Du*1ha>6?|NIc3mBPkMc6W2HWgcKI#ejUZEj|ahk1OK}$6i zoNpGiB|d8X4qKF!QO~QUmYAYAN6cu+D0dQGIHM2fo7*X#S|i!j(gUW&;d6G6Za-y>+B1?i0@XSAs|ArWiOC7btK`%^CCDzOB#ERQg2jE!$fs4ZYp$?t~H423aKM0-s?}K+pU7?>`5JbgTDv- z22IvN&rW=z(h9C8XE8Ey$85_T!*!dyEmUIq@(`(l*yl4^u)k@8X^gGjqe-8kq22sj zg33IzFMmEB#T!Ip`FyjQ#BJTI7sZNo7x1qMXP!Bh>8{3Z{fVwFZmB&Op${OL2wCcs zX)dcLI_ZCR22M4Zx52YSX8Duamt%(Q6`2gL@GPvGycP#^G>lfPdp?{NO755AB5>gD zD)>6ks8gPdqb~3=m=)kQ2K0}Wk98CsC{U zGPqW8yFV;PqvkC9%O*Um{o*Pn^%=flnbg5+YUoaUf8v%b46~4%SBkA@8RGPd-vBYp zqo$YC4Q~lf_J4 zN=k~JCDv$8Yb1-iC9W;6uhX~h8g$O{Z2RsWP!eAvA~tj zZIP>YI*+YjEp6`qB&LXuDd&edDb2&s6Zq+GI+E}+0sNNhHlR|QM!iZ#R<^RVR5870 zVZrtBYC8>Wp~9EX=UL?%_(sJg3rjp|z}VN{-~D#4ZJA2+bn%V4a-xHH-sBuSj%sW@ zJ;?vh5A^@iOP~jIq$MOIM8W~b$3`$y-35?pMR`4Cb@Blh%=oDT;p5m3tIIF5KMtPzj2lmo#EZNO=Hbz2dH@JoT+1r?)c z=TOo}vv_35uoVxO%k8GIu$NIBXsq5Io5#8yq3EE)Rb^kLO0oSR|Jlj|ieOF-%jdkc zRhq*LLHB5Qb|I_i%-0_Xp3ha&F&Lo4nIz+HPg{O!JPdDhfzG$D?gDWK7h&1O<20oV zTj5_gg;n2Pm2F8}wW4p!=J>gNd%sy+OJK<84KCZ$7wBOs0GG0MqnrVlp_gHIbGAx( zaCIE?9a*~cxhE{9G@HLpF6}xJybGiR1s#igr+0Et{P&!I>t})rvn0Z7vucS8c`;$; zU7eYlv_b=%>vLT1$_x~U;V#O3>!HHA(TQ_-B&rwgmm8hVhm*6jN_>2LrJgx+(J;mIE0BQz z8xH9Uyx6UK`{2a>%8)ke51JcH%T|q)#;P2~0jrc^DIQN?v3m09cpYqwXnMQzVRK&` zv0A?mOv#DN?@Sxii~O?s_EvEgy3aC?nX+;0*j}Hn4F2Pkb_CfoLIZ9g+oHQuyjPvV zWrcPG_F`9g&!^DeTZ*Rr3KcgPIH*H|5$j1DSQv%KFdE4CAS-#KO!-(3QYgDK z-(5h8);$xrNw?>m4SHQo?n3)k5`G|5YI0DCNk1= zJ+j(O@O52?g9!*uN*r`Qi#TsdC7RJp{v@8Sxpqjex6wu$yc2nAN4v5~2lD_4iaBNf zQ7rT3-Iz${;ILV8cztw44FlC)tT7oul^wNI>kbbOr$m!-adGkSc>{UtBqSshGASS< zUi5g=?qz`0FE#u?SG17(s?76;sXiqk8vdF81&? zHkC`Y=w(A&`;m8+d%oa({8BX|?0~;X<830&m;yQw12=VRl)Yqvc^+GtE>%O_{h(QD z)MDAH$wTb?DQbaRneL5Nk)@N*P1g z993OD<~Irgffz{Q8(A-=O;!8{-_J8U@Wz+y{$5W`p7AWdt$N7QO@RqH@*jQcZ)Oq(qsH(FznZ zq2`#U(D3R}O0!T6k8`}}OjGI#a%tJ>G4u@k)^UP5W&KT7 zcU9%2Q(rrGjKF{)eS|W78&G|-hn_X9*jWZB#M?X1ZF`D0eJVx6Ri`~<*Wb&h$E;73 znP)?-R-elk=Yg}!{4};91Ar>~JUsJLd;Z--Wc4hYl1Fv=J{n3#r>1$UOhe$rStRu@ z{19Gw-@?2{xFQ z7I&)8NHFdiX5@yqHtRJJxJlDrUy&mzJKh&&(oZ|jP(Zrs>Q!Wcmxw`b2Thpy*Vp`$o0|lFm>tYLm zktX%Ur_r?OhV>32-S3;Bs@}dk@tK_c8dDU}{YL}nKb3qI2VyyNwa|4(`jKT8IZae; zQZP&Fb~6VTV35@*Y=;trs8@C-ymE@A}VqiK?X(=A#g}dnofswnioj?R?(s6^9x`=8@*F5Riyk)lZj7i0pPxFyNeqm z#CFyyx;S}heGO@g`oI}PXMWTpoC&p%H7XS-;nx(b_4`JF;51dlj@cIMq zFobiNgf9>duVG@dG7p)sz%QL1rx*gY`e>6l$>}U00p52gz^_AcCQn>yyZSOTG>X}e z22@+0G92Z_QeE?Ec8qXjWzKu|daK$ak{D>up5#C%M8?G-T#v^RRS3fWr7lK(f@@h& zB%y*4*2}5-(xOnDO}66DePYP9;l`|NxgoR^<~Pb24}Uh!=*V^{X{E^?%Qs%Rj<`wL zYm|q6E7O~s{bUGthrpdl>f`ZWx2)cLYGq}`s+$1SdTDbmq*RnqIP}dyPpmj5Mh}1U zCLa6f;XOBL|LJqQ&3?A1fS6?lvHo3zO|@ln48^q0VMyzwZDNHh9i75!NChu|I^=+7 zYm9Z_X4w}mHt6 zEW!Jay^g4IS8LVKy`zWC`2#P)_1#QEf=i2eSzv$?gDq87IR%Gh1b>$O+xc=+#l`nW z)9X6-o1$q*AEP-^i3GEuJD9pp;^O8%EpIWR zO?U!R3hRD4D!Zv9<3DLe_(a#ag!omxR)yMB5_Ssf6U@VW2$+)gk9kC@r-Lm2Y?+B= zt%!i-v(7JJN4)Yi5@Fj_l`N`;`G}Jfc+Dbc@`WixA zO`a(e=Z3Anp$YbnAc0OV8Y*ACM{C|OYDYg}sGR9jO0LKUX4yPn21d+N71GMp^9}Xc z9s*eP;QzTL3B+0JK{Bj@JOsR#wVy0EEQo({-KW68{(`??wz;}UkOI4FH}cn-;W5RI zj=(6dbb(1DUyKKU!p-f4{U_q>>(eiyEBUAG z=m+Z0hDN`jGlliP)ao~2$l@r~K3tW>S7le$n;SByqMegnDS;u0V;(Aax}H2kPLY`< zHB>>?lpQQ-Ro%WEG
    My&+vv+*R3Mq_5S(-u6Zi9=k=RoOda3r(#RDPq1i{&fA1 z2X%|eheheXdx(SW@o{;}7LXe<5iW5}2<6vt`mxWz>?+jsGSE@iQs59ckZ>ulLI2u6 z3|rp%_*6UK0=N_Dr$Z!&UnNzG@VOpCny$4(DhHU7vKmX-v>` z#wQY9K>Cy!)N)@uj~CFH_OXhHORy7oT~~|< zPWP^$iqc#qOt@O9&@63Q?w5(dd$-~vK54#!=BTq-RsaTXar#s0BTCqUOPbz9 zZ~)!s`pf0BwBJ5w)zA#QKE_r9;&+>oa81ZZpTAl5v-OW?hd|=MT=@PVnqhqX;AcJB zb5`sPtZ2YJn0ZfVQ?}gn4V_ry7}#4Iv0qfAu!Fu~6U!pxz1?L8bm03psWg6b!nm~A z{NC|g@{CG-&ngY(GrjC!0Rv)QtSnVj2v?U3aD}Ny_7)d^Ik2p6d9W9+2Y@5EXJ@yp zDd;hg$?2;QGe>pYX(P|7m|qTz27ZrZo~-Id)7DEos}vSX)yR#6kS*(Xme42otQ;G z4?zdZBPOp;U`Qh47P=Uxx=9itR>bA+uSlWK%4EBqv#pgs4C1U_yoIe+J2W1X9Z zjz_`-WdI4{46Qp)EbjC;2>I*IuKcEYtT z{+cR^-8+dra&L=Oq4uM>q+EEO9NE$SvYIi4^^aJQVQxlm)~9Yl9(M^w$rU;CVP7+> z08}8p#U8bUys;&Co9?dyXbCroZOm|WOCk2xtzi3`a zSpyG$lRqijH>(Q2*{)cl3pyYfvMSm1@qdQv!kCge&Y%i1SExiK#;>MpYlZKCF&hxh z8U0lkJ_IR&LPOmFNZ`y^dp8X;S|bK%bNbxs;r>43G^a>H1p!gWeH7e=`=?pSvg68l z#8z55CVVG;@d$+wcMK!?>y7=Z4jl{31x6{|Cz6~Lg~%t(NbKBM2=EcdI?1={!Nz>L zP)>um8#U=WHx)D`E$7Rs0hgfMc-*Ld(U0IjxH;Vay3>*DJSNSb^V5~ChgUp{2|%qa zTE}IagGk5n{N>lZH!U>(VM~Imt0{!~M88rAmvDZWN2{s}Q`dkcp6}LAAjm@rTg&+C zN$0viSjV^Y?2JqJ3QBw^!EdIg@1GbJNH?+B-Hjn_-~DP`AFxrEr|2^OFcbd0?yawd z4Q{{pi*c8qM6D$rk3-d4DK5GRcrF*5t|^_$__*t_q`K#C^qc-aMH=CA61!cNs>CD~ za|uLZ8pA}d!yfxi@h1`AQYORRgjyX5`X3^$yYw4W?Ut<4*R5g!h_Hqn49u%S0W&D& z;xu26B!b@<%4A2%B7{(6Hp8`-OHqren*tU4)y1huO64Y%6FW}@MXhj4yC4!zYUDyi zv_TQjatxTkIo33_%y%z6vA}t9!R4$UZxW2DqCqwjZqp3yP20a9_AgNn zY~mR&>zp?aU`rvIzK$u}Tj2`>mGp(>tLX7rA?+6dk{EQx+_%?H8+E}-n}bWedqWE56kWm#}u zZi(FQyQR=T3~ENweu@S4igsulr!+JiP=W1`!qq7wa+ z@mxxhJ7eOQU@1c`FpGeCRCf%3JrUKcRz(?H#t<&&oNaUb&d@~!iUa>M+l%zOeXC8{ zzjMD6iaq&3d@g{2m@Dn)Pla_71W|JT4YfLhLaheat7yd)U^A`}4Gj&`(+a->52oR5 z#$DSoPsuzO8D)y>k7lC`Bf%;INWOc zGx*nJh6gCc&kTW|w0QsJMhDBE5g@_tApTcWx1(&+08CK+r#(oDS;X-V!3Pf_Q8_@{ z!2gPTgW03voT!3g>Plp^;ZHB?4^fUs_uLzzrlj_4M>i3k8u#nVFegp5yWhATX z4pU~r?h+q^=E4*th=4CxSj# z?2PvtkR(QrH91A254Qb5+R^*ix%!$rZ+i?y_kN|QZf!#lo5t?1Ckj?IpBp7Lx64V@1C8(3xjQ7Z7qW`75!&EK0Q5MO~ZK@YqUD;*O`t9 zB7!6ke@g?*H8eH-k$-Z8JZ$z zwQv}}?}Xe0ygCsCFs==ahr1d5;a*bIkG#%vUTxN=N;Yp|Hi;wcNSiemV^hlilk+iO zN_+t89?{Sr+C=C}R2gVwU}`(?4HO1(mMRb^y(cM(xdxEAC27NHKWzEnxz%-mAlCfC4?K9yuLL) zFPXRxdwdEO;3yx}*`y&|Ydm`Fhe8Lk!hPg!uiqIMKzPnfIlGwoJ^B+1Ve>Gu);$h{ zblYXD*Chk(0&qX0FD@eEiR9w}@pWaiBgr~0?)AHiH{@5WnfyYK;Lb}Jc5Wi5luiTA z(yr_x8^gCr4lvNwzG9=oL?bI0&Rip`+5^7YhVgmb8}#zVVnEsRJyLJa+~(0vSe;(gde5pz_Oul(f{u+P#|1ma1_OG_vLdt$3r%2} z^q~?5KDD*QgP_6^Wy1G#fTBJ$j!zw**Hxzb~ko6H$=oHax=B@qIV3v zPIZPiX$(G2*DJ;HSu$bRfL~S@>(sbthT=;4U%)yhK^us)%}T>DNa}O0pD;QxAuA;X z{`40(1+^DaoG@p@RGtWR`o2`5!N;za{r*%zJ*I$5$IENDZC*IYgu`hPRo*RvtkNf(=qXUxj8xTDH5~_a|@ya1h(@{KFxOObqZ~P`{JK1@tdq|Gmu8Cad{KVA^ z`;^o~CoK#UQLX2*@e)Nh)dE~|FL4}$zKO8gzbgFE(U?qyje@bCAhmmRAw*9N__Fc1 zXJX|$Os?$At*1Ge-vJxYnVn96A~Zt#)r;ZSPY5Mo?XCO5)8%sf+`sAb-S}s|6eK%` zdIpn4*_(MqHiDqU7y{MWii)Td(Hg3s9C09O9XTM$;x-Sh0}qG_irD;RBrIln3|hp4 zbzW|5mX8rmot{0Hk75TKgOM)wP<^1Zatgn2(jUvvNLb44ngyS4IB{D~rO~1euL);U zSJC*Wso7&O{sHeKn%F4Ejlt!ky+E-0E!%U&+1S-Xa^k@t<-KBJma|=S`ozf;6G{ny5t9R+*IYeR? z5ou*Ua%_}&b&Nv+dqL!~-I7N^K6oL*npKk#{c7~J`1juG0O&O#Ih!2H&+bUwEWvH@+(BNE>{L0a3q^nP+|TUU-reQ!NK z!I~=xCqeDyj{&!=5)sEwJ=W5)vIx*Z<&=5}IP5l9e|5J;w=YPh`LCrp+7&m2XO?eXKvYKq9e&pDk@jfkC`-Crx}!uBU4MEQg_V2r1{xy7@+2 zY|4wdq_)5{up9<|`+s+F(0Z{a`6I2@{^BqA6fw?R>jos`ou2qT+YCn(Hp;?+YuibC zjKeCTl-OlDwwv=5ud5B{LRHsWu46O53ZR-)L9puovagvuS!jNcDX01nVf{@O8`2+CW4KO4Gl%3d;bRw^hjM*)T)>UvxU;w^%oew+XLN~a) zY{&2FU`L%t2t$x9DkJLs*`3pPX0L+8w{Ikl)xz=PyM~|jO4C(R)+S-XW@R7RR4{!2 z)rDU@jmaZ9j7mpesoUr1E>fcv+DmsBleW0f3fR4claSk_`)Wif%yiB{OTCojFJ(oT zX^R`C4mxK3ly#Vq`bmjt6uvb9VI(g0ddQOJ(rY3MC5I*g4WqzrX*l8s4uG^ zTIvTQX@@o3{lyj!%zLNwSyb??RMp-H&Ho{^$2Tn|Q12*>u9 zt3a^YXOmYb5=#ctn!g|<2s^BBa8P2r^Ji4LJD+&_NFupa@>p{NE5&XQC?4hG03VuM zhD{8g&~Hbw;)~#uHnbt0LIH2Czu5#beubaFY}8|fpqNO#yxn8(Qlw`tyKFc;uMLLO zk@ksa*=%crhcnqg$-5BHud)dLZvS}jF`qaP8xUR7_X3#RWC%f~Jm<;Cz4`Q;4dvC= z<%tebaOj-W2tedDG(sHyg7HsTTdaLL`kZW;HGZ&~lyjs;Fk_j=CqmFaCA-n^!6eVm z6B#O#j+P_wJ2B@ht$~SWF_R^m-8~jX(TvPAC)oSTKr`~ zJFwgh!JbMGM|44AG*3~jyOxB&hTEavX}Ugvc~i1}+$8#I(aRE({QGxaV;)$pn{gK3 zA}*K%ysNfrBLa9u-Ia{bP+3H7G~~4K%GVUXS`QD%&;8cWs=ec6@170E|I9|7pJt;0 z;=KI`1lHBvwlOf!Gj!Y!NB6^V_ybOA@cMNnCK@eN;hMJ|6wL{!Ck+)xno`bJkp~WL z9|uv=u-}OCcu$U$0((n07NVikLt=2H*lqZ-ADci_+NWro+ z=;Q41Eq+9v(998caF&L6Vtm+Ynzh7foOEF-h%cZnVjgl^P z7h@NlXT9PFu&a?Gh#YQ*KdnIIH>-|r&Q9-dR=rG6U19#-+t6!emu&oX2LY0Nt$S*k zC_|PdvS&VZsC7&Zk$;yEBNYVF$CG8^&2nsR=HbujC&Ht6Q%u`7>%P^52nqHNt$9k- zbV+bREz9S>Z-`D;?c;Uur-@Tm;xy>imflLsJMeIl!Sd`=^rVh9 zle6t5#egR~AC~It=I&KRd~RAaVTZ!*xNkbzOBa$)8bC{Ad0*1*4p~e4yU1`EJbCT z7l@ITaXFh$wtGGqfE&6*Le}ms$` z-LBx0IUsjb*8};}z2cHqeC_k3bai_@M!uo^e%2PH=G}#h$!s$f3ZKr64&vVw>Yl~u zYy~0Nr9%~W=r<0o?Xtx*d+oW55aVqGR%M$v{<`mD$Y+*mqR1&5Y}P(~gEH=>%W=am z8u{$2HVTkE3>Mqal4|mB;hCTpn)NR@vw53>rt=wAEi z-c#Y3a?3f|AQ?MI>*boqIO)Uj6@>Nkda`PFrvskdq}V_GLwX<}e8bo^TH7Qq;N9HH zIdiBK9`R}9jkJjUWxVd{^BJ-~H)pOwQe?S2^75A{Rdu{Yf+r&le)2;0z*?7hCEu-< z46b%>d!i$oNfWBkU^kn@3HT>pSKzd2r3og@ZI8aj+;_yAK1FoWRMtkn2Iyh(yZnCC zvG8whZ7kC|5;^hMIV%oozJI#(0QC4_O06Pc=Ppk+kImP@)NPcJt14B_0Y987D5!SMqyTh9xg{kIlBTk9lI~M! z?h}q?k}_SmVXU$N*pEf$IbQHKT;#s#mgkCvwp>j*G3?#K+pvIZdE@Y*-CWK!5t`;G zi|E+vx-QApYhUq_S2&HE2)zCYF#-xoL0Hls!jG(OSUKFTTL<_tr2MKOVc(gdse~8% z`zoe9)|#0d06n928UO_-@F7W|*p&A-A91aDq9(R($|Hf@PwH{;J0hAY^60#PmUf1xJ0>FGFq#%<+A;DbcUTt*U7NrT< zyBFyC9}j3`vPtAJg;Nd*xEp)mCbq5bUT<%#&dVO_qq~~HP40qInJgZDaHW*f+GV27-%Afg=OJeNgT>L2jS?;+Ztk$_YLi%&kd?VNoRY) zEB7L>+RI~QF>!Z;(`8;&JsF*=k7MIun>L3($iT9X_8g0`B14D)jc=M)Ja5};x7vy_ zcfL4`EAp+}F{Ny_SNV=7KT1D_4Y!iK%WvY_BE>w|(n-jk;y&tJH)*$C%^yX#IdR5o z+Vb-^vaWR6RJWU%kpF`UmMJ^sz6*#e)t%b}FK@n?&SSlXo)m1XxGh$BuhX6lP2&x< zbUF)S(->TW5j0(o_C9##XhfznFA0WxnSBMLaG-33)0?+6o=r=>)-n;DV~JgSfNDnX z$vgI+A+v7V=Wq))nSywz$iqdodq`C^9wKw4Tws4-c8SD5b#yc^<}?Y#s7Dw47I_-v^WydGaR@t1Kc)!m?b+Md{k=z90J` z?NdL+lFZ80bG@I}^K_*NZ|X0tKe{!SF)rH7ci6sUbsM=EFnMoFj@LXruZn2ba#GfN z0G6jk8KrEfaEuK%n}5cJhZD8@&@bq+m7Y%)z5&Te&I5|Rhs&no|K(Ov(*AtbQk zp&{hl<&YmR^+TMvgW$gmEN#n-C_B{Vo@?~R=FMePiu0PX@O#w!!DJGL`@mJ7TPH~~ z6vIfoA&E~vk2H|cYp8k;!x=Zv6 z0L^&0FnVv4Slij+bQ0-Lh943b#pIM!oqXpUoT9a9)Yi&4K7g`JZVvz6{>{go=X#LV zi+ppF!Y4}6OO#vx7)}eB!A^YLt-NBG^Nm}>$8`oHaqKn|eV@Im!bHy~0x~BJi3hLb zSV*gL%{UVKw~q#2v#6p*WeaIL2|$_m>+?8F+6PnJ$@%jkWUgCE)HHk!{>4z^tNLxx z^W)op`*M*8pKG{gPwQ{z&DTD0$3B`7%=I5Lue;wik5Bq9u*kdb55t_ga@boVVyKH+ z-zRBxI^GwogYdL13bZ=N9KxIObCqHkV6vvQ|xPHz*%5 z4P+`k-53f4?giRS^T^|d^cXXAo!@QA;$DdvdS6$>d*WOK( zAn<}-K!Lo&OOJc9?!9WkF}}qMXPWx4JGCy`5`y6obG?047pG`%`p?pQ+&ho+xoZR(lFAzaq<1PuI z?Iusn9xU{pC+&0y0Qq}Csk^KR6{Btm~vI6-R6aO#A z?iu$t!e((5#~c9$TIeyU_pGA!8EQSq*{zQk$UK3hHJeyXYx03G_Ap4r&|L3~O|+JM z;pyDQ=vJTitPsNQ*5Na%TcFb?o9OC#_1$OB=#Xk#lMrayrwR_o-&AYOB_g$V>()X0 zCAVjQHt7~ug3e95Ggxs64*`$sc9iA%rvn`5&$f-;%Gw$>4vwjjQ4b=>BqkP?x`svo zu3rkDv~*Om#Ly2AhSi}FvEtjkjfQz$Z`t(QWj(s+>znD2rA_CzeT0ysuV&vE_m#RQ zSc>@I31?L%ZP4M6d5f6rcNaY8-Qe%Kiu*6UOuRORlj}&Ob&}vZNe&K+E>q`GpV3Y> zuXX()D}*`THXB|_d*NcM<7=XG89W>DiC5gD&1#j{Pk?>^8vXmj9sS3Fq5HdS>J+JU z3G3x-pU1yo<9F*dw9 z4pix+*szE1QWPcwh>XSG)QgWEHgFhF-MB~VJn5DD_Cp~u5cfjy61UZimnl)?|EE+w zdN3}3<9TJ1m6V)C%mQyuz?2po*4pfna&0Ld=7@}P0NqfUM|lw)W387^!Z*;__|)q2 z&Ii%d@I4Edmt>@SF8-%=hQEadQb2ix(mG1e`7Wv+)jC$7g?SJ1!P3w2%B+g6-Yo`l z0S7zmV*#6weI4sNL{Kg5k^$$FtcZLpq^HME=s@v6t^2~p|EC0h%p4R{Y8wn2Um_aY zc|IiW*myVR?!+y*psT&^q>+^S65ALDB(7-QO>R1!-PqXp>kb>p&$r!QUQ@H(cs%*^ z)B;l=7mJ&_^X2XcCG2{aAlJF!u$NCBIm%D``9N4ei%4A8VHQ z8Tz^LsH;Pcjne3H$sY{rYX^a1eF^jZNfPA>EMZ}?vJ3}g^B!@lKO~Ivn;@66k_FMc zXGibsq${H!gxhZ%8!vk!Ui+CZZ~byE%Chc!ec>FYYOlF27e#4|uztDB>7$6EbS6dZ zz%ViV{KKm6jgtvZ3l#OVLbDpAWtx{J2n2t|;*>JGyruQn7c(kXFl!1@5`tW>vV8S; z`jXUg;=BVbG53h%wpkXDgBp)`X6;5aB>B8W6lthOF_4i#$N-+BdV1fdb9hrUFnoM` z=!5u}u&}TO2M4c{QLmAYr4hgfZAZooC&9r*nq5r=C1bf(c2YK&?{;QF>74@7keSOjtK{8;~>a{h?%vaRMw+$afXLqG( z{@_Eb)863R%QDBVVhMG;veNZzz+}LCx%??>qI-2bGp_^GlM%DTh54R-HtbGY5Sf-r ziV-=tFKjw>7EqI(>Rb)*pot?c0>z zXg3X%Q7oJ$#Ln97UBPA`o9Mdr^3|0yY%4DLAG3n`OD8SIzWRV%VxKMTb?7MqvsyBV zHFr_|hsWMiBrJ=v<0uk_kq_&cx{yI3T|0)+^J((6!vCs?x1j*7m2KBf`1)vdw%MdD zyewQ}4;l5{U}AFr6&huozW}kJMwMh=d+pLb&lR9f^MZ+k^W>Aan;(L+Ek0dMMDLOs zqscjtvT5hKSF}&83<46)^bm*+5d~RjK;z-^IP`0|e*A}$H%D+-n_|n!j2te~^7iwk z+1g9F2L7b?=ZyItTb*P`(39Qz!GO0h99X2D9*dXypYNjahh)4G&FOU8lY;JWqn(`& zQ&3JvBYG$eAG1R^DPI^mSf8#+q3lbaW}1rSdAsM!M~X~A09Erl`sh-3Zc4)cgN|WF zPt}|RtNvh(9MsZq8b^P1vsGhjiY|%BAoJuD{k1UOwIg4j3yx6A`8H78&Bm#H-n!2! zx|1BpyY=vOiy@hw?|L`38z1aBgMIboZvN$8XMtaScEz&u#dUE?P}V@W;^h0LwId=< z!K-aa`GS!#hG#Lb)nzS%OQRj$`!9OSEvVpaJsv!N5Gs70KT1m}yZhsRWmnZ#L@^nZ zEqpD{Lpco-teA6-lTA#j)j6X4(@ZLJ4BMkbJ7GwP#d?Pa1g!Iwa`ex=P2Q_<#f^6o zcL-l?Z$$nHQM$}sk>!~{d)JU~2+*UgH_wY5qWry}ClLmG9X8L0&-q($sDN1Y!)PDD zzW1tQ%)aT>H_2U;m;4_ift$SCe2DS$15ZOM+fae5zm-86HrG zhk7#&acyhg;b=24jsePDj2b+Y$g0QNlYBld z``_z0%sCjxC#Hz$-TV@|PA5CZ4}p8ABz%0jVq#?JFeK<5({J=IZ{dnzzHS)_ZyC2F zdCrku#KW_#pbCTIt@jd|eYtIdYi`S>|6k+-!q+#&F4^S{JJ~t^{xX61Bj0?1lrcOI zCfaS-sPmfP?pm`i!sQWJH0C7?>u6r3N5OM7)qvoOVVv9LsFf|Py#H|~7IfduvTXvT z6srN0Fs|rTTDpK4>n(2jmAK*-Xl9+S>y>X`ak^hI#1|d(XKTyr=~Q{G6Ih2IT~@lh zpNkC#<2Ebjm)k^w=By+Z$SZQn6V-*Btk{#gJOGp6C1Z+Y)7=K-g|IWVndE1-G@*e( zi`U+9wM?gm?Ga;9BkP3g=O|=cMLf~?H7#=ga45=yA1Lmu=m7bc{9^01|CLvi<&dRa zqA+-PIvRU@Hxh+s$9~P&ZzTwxJ(=7f_2-_zlw^z<+V9+*0qhNE6-H(3#h%^Dejh&v zU$CB;XDc4YG<@%rGbFDAM&@3t=P}-&XmOJrd?krrTW@D6yd3K|<$kz8I()n#prMd_ zGX&5dTazFFm7&_bm;_(odKW02&n}c77i}G#6>jeL{20Hu9}N|v?p59|k_QRW`}kbBLMs+I zxN9&jiLMt+@ztNB{1zx;-SnFtHI6)@=bJ#B0lS8|PM(l@wV0Y}l%mB2b5o$J@37ZZvhU^fjCFoogzK@kM2Gu2x;IuwI<~2&*q7x#W%u9i@?_hB~ zE>YRPmOoue|0vyBmtgTwD|!2JrqdShz$6D#+1>^Ozk+v(dFcLF^~lKL)KPjPFEROD z%fqkbV+?@e_^3r>acs8tTlvjZ1h+Lf8r~*B{Zx^w+~|#_$ulpqT2fR+FrqaG7`&u$ z-RFyxXOp;Kd!3>LRR)9Ikvt2o1Auo7oKtYhuhQAplE*7VQkK7XJ&%Af24}xrZ=U_4 zy5EYURW64lR~F_&<)>bmB_XwdPA3&X8Bb9|MrqeON8@z)=2_!sz^~+SrRv(<$vFn> zYL^Qc|MK-ddbxF<v4JD-)a*7+vC~oLklGCC^jMC;Ee!aFWS!mDFGXB&EgA zxuJ^gZ)mD_`o)3H_p&Y;sai>GF`tYE6m#cw<4fEt>+69b*nd&Mf;W9L#=>-1JKt*ff4~bK#!&QQC${r%WaPyTR?;!z{J--Jl7?1KY8eXsP(~ z*D>$|G_CcAt0VycH7k8p{j`G743$U)nZNaZML;f1_18yUIsHL*$L8uTFi>aY<*nYI z#>rv=CQGh@)v5dDEDBb;J0E!IcG(8@*c3OX`QuLW1Za84^2G*1mH9QAymFZyIu2m# z!NhwTe1lS%%Wf@;Pv;lo7ouwEjisiTc#%H@NdD4Cd)RdC9MkN8{^EE`hkg<-M;z>N z_?bld&DyVfybm;Ua(T04m60`hLg}N~sOFP;p!Mms)|fg2@hext_EqDQDo?lP>%62S zG`DI%9!5{k5o1)|b+Ca1Mz~=S4WgkdE)C_OtgNarC`x!@&(zIT(xJMg)`XAap$vWk z`{C8G384`ap5o|$VWJ&NUBH9D6p#H16COTSSg*1)Tt{0)M_n!Ypy6fj4=H2|@dr{! zz!en%=sDCW1@M|4L;clo`MVgFe-fP@l5%&`J3Ob$sqxg2WBh(Ieyn6?D97*EwqF$P zungR9?W9~qU&t6nKP{oWJpgFdW$jNzjvgI0^wHlvK>bzahxp-s(4u#gpOyBiXV4xN zS*=YIU|bf?{&7cA;o+`78!4d7^s&=w@IG299bjrmovByQ@o|BgmJ_|jlJLHqBo4WB z5Vl2zIUBP8n3v<%>>~4!dygOVF=@i{q4ePmY^&yGx~e{&x2c3uvPb10KG z@1oqy*Y?^Xdv@m`M0T6A-ewSstAD}PDyV=_XONj?>z87x{oPR7z<9iI`gdf-@ezkV zL90z1+G-_GHK#nz(W3%xw`WC1j5z#79wRtFYfwM3=WYjPjtCAvkG!W9%!nXkRPQ>$@>RV9KIqA?kKOTDVq%-b3kzT&=`f|R0 zcyW|$sx&7I;#gJ9ghr1M+*?oWqcx@Ik_*9Inx~{=kp3}prHStdm_TZg98KSo9!4s$3?;aTOpnw&x21jJd`Mui1CFd$L19Q5Ypg4 zUeJIp%{JJOes-s0L=$lC``Xac=q{gJEFizG;MP`mTRI|* zH>>Ts?i`NkFa)N!a}9r$ZOwMQev~fx3ELZ<^2r)Phx(?0uQ+ZaeSuOL*0Lag9_qn( zilK|JkdP37ejAC|npZS-$G^5Sb#=$0{EJ$PP2i}&oGbC}_WG9jiJCWqcPRc7irNtP z?+NN(1tuVHql-T8M%$g+cKGcN+dT8VEhsVb(>3Xub5kGw)mE3uQ6Jurj%B-ygf1Q* zP)5T+Qx=-8J`p6az8$@|3?c>wBqmBR5(R)(tBDLrm^?Xu-OIuv4$lp|03*EaGw+)> z%+aLl^JR*eq5~Zr?LT;#o}QPP8@uQydr*)s&s-=VW{hw;XHsTdq1b7GJY;k|D@a!-?a334dCCY$k3fM5L za7lp+|5}>`Q-RTFF?#Sh`(Y?un4Cc?{^n@xZPro(oOk^ASyi&7A@%kEgCVjQ#mq~R z>@F4lz+^~tFim&4<`czYbHnAT@Hx&EEmzf5TntaTfAwZRXq^r(HSg=|A%f{y}j8*Lg6o8?isi=%+uTWqc!Uw0o# zg~$V)>o?x@5PLg^?q6Ipu<57=#!^+@?&hMqzp!g+Pz)x@-cvZcbnVe<_E5PPJYosU z_J@`Z)){F`=pyQiD98(9=Ni5~TIv_vHx~57*->0K&{7iAoxKkN3ftl$d?6PQZIRWS z9S`1xbQWrEwib@s(W^S79wV^`%mz!R#KhN}Q}8;k&w8=lw#F~EBi4Ec%%AB!t!ccq zi$_aak+67c)~q^r9ox4${nS)c(EnRqCmc3L$>}BAfL{kEaP5y3zUYS1Rql1JcfuMo z13OF94e!0Z*2_u6B`@+lm|5)t;WM7Yq|=F=QBZJ~~)|FW4SP6y%5QcZ9qGZzd4wmoX7y$H3T zI?RHP7M;pG*WxY`^+amCtn6@nWcbP~C2SC-N5D1Nb@FCa2qKx6XE9I?(cYw`2p0kO zvq(@GD+FaaSI{)b(&WP2k)bbB!TD*MCdR6GpzXIk;?u)y)Nt4iQ$XqoXVb<72Is0E z8p6$X)|QhRBBNmo@QMP$wfJlWH)iJfIF{E1;_%@rl+4mp64}lUZxkcZcgRA{-HO>0 zm}Qbxnk<|7pXjO%sXSz3O84JS&%A}FK3;1CO}E)26$~q=_+_uOyN1x&?wg&lQt0hE zgt}%%*-G2$tPaABHCZc}6ih6@d^*2UD2&V`0=X4GgWR8`PP;ARE6!dZ$A)ROeESDs zBahyiHhNyBz6^qD&FHK@M!R36Y-A8g<&qN3_LDOL$hL;y!gFv48G@Axy7JJy>scrU zJ>`Rnk3sqwT;}wM0O%l3y!xn|kR`6=b?t#n5$mynd7?K}=%A zFc2wiZ9HFDp0yNhmA_+%-AfsV^KeAdH6Ff7ZDcXp8{EUDJ<6X?j?TdzKmO(k;3>ycI#9Lw39G;I&Y zoEN6EW18f)qPyt0D;}x57QI=w4=PxEV)<~7Vn27(^wE)t-cL6dDjm}OvTA8`ipEhy zMhqEl%zO%|bxbv3_jv)Yl_o45_4KeGzZ!Sh@Jzo8;1?26JDZ27_;_EW>;AxO-+M!o z-4IOYIsL=4-Sp=vc3Dq0CQ?@Uso zSyd*~fPH6uMi=>W!~7}hW%lA1zGE^Qr9OzpLgnw@9p8DoXG3ShKiU0r2mF5gBAF9o zQ)kUf0Y(4o91Q3iP#G7HQ+z%jDpN#&(m^ShtmWrfom;#(&n?^VD`=un2@1V(!4u)uy3-kIQC;;a z89K3D!#v+-CW!DYVadkl1cPfvBt@7s4~>pMtLr{E_egAzS)FjVT>k+(*YV->VR?z4 z^ykEV>#L9+zCmHxl(pk5Utz6&@Wn{pbQ3;DoU-O63y+fE#g$;CfyZ!UABqf%BWOjEIJu7om=I-NjO;UFP zS+vXIez(kK`x`dT{tzWgZZf{VkcwZ{ef@CxV^d4y|MpY7&%!PHt^r+nSQ@}%Wm zFf7kaaDj%NKFwS8{A*I$o%$Ag2)OA8Mw#|b!UIJQ6M%|_?RvX1$69G{_gG-p_6!Np z(AU;(hE?X;pDR{a8(6k`rrP`TjpvGsL|zst^9F}VpPR6xxZHcut)>Lu?HNq3)w z^%ap>>orE*_|cXxYs}^1e0uMmW*qPlo6^TIigbGcFvw^lrkC{{X@UXC7bl@ox8cuS zJgRmsMAo-IV}TD{+tSTv51cKaf9s1t;NX7}f^&TJ*Q?ucH~n{*@*l|mc-r@rh}-H4 zhg%^xIu(6v8E=2?avik~8Cx9G1EgiV-yZdo!lRWfA}MkXR6T8aQ}Mh5x^u?O^ZBLF2# z6ch&k>5He*jCT>7H_TF_4_fN%a=AU<)Pjc(QDt-?KtC?!C-07XzM{f$eaygk`BB8> z{G>nC2f><+k)jIe+(9ger+kg5@WA!3|7%#-3l}!7@!})IJ<*zdyD}+dVk+jm4R+5$DW&+&Y|5G(G$j>fA`MVt0fB)s*Af=oeb^`%re3tBQM_^TlWi+W&iyUo0mnHuQ?ZV&hFT!t8LvTtJR(U5JN*l3~DucN!S)wKLG#opRdP|D8zyBg?3}d4Q!3U z=`NFX$FG&Pk(EwbWzY9}xW`K)WjR@bfaDes7)$5Y$o7YJBHLof;GB@jMj(fsn(jT zF17^>_wm9ogH_Ceyut$X%7%u9I;)fb#Im#Hnr(phL|&f0mX?;3)WlY&XYVA4Q)qB7 zxEa{LiAzKx1ZY`Dx94~gHc_iSAG{#F|3Zs0%c{}7YQ2!YLoE`k_*_H&!CI}MJfxZj zj8%iXzUw)nB)G|%C>Zyq*K_t~PxEj@=8()1p#ZtA$gA0;q4`~I0os8+NZR)>y0r@s z0pmp*sSMRZl5X-FI6^0bvs`yh`?dxUqt7by;y_osEjAU`V>sySn6QK`)q zvw%k@MMv9HBs*L!rb(CKgx7j1K5Bia`wa~ZHr9!t5%)AhJy(W|W{v4$7#{uF0zA?`f54z%LnqHv&HY5MXl= z0aK1Zz=Ml}6M=;$Mao1)1@jXIXoezojPoo7cRB0BI~6$7)#Sidv<07GF9eR>pjX-U zvgmxpCkgdto{M)9KA04st844AaM~dF%>L#pp6~N07|Oygms;m0?y*v5n|bVAnp8x& zVy~w^domb70I&O66@k3*3-y%X^Jdazvc?z3R=}c#$j#MlXKq5jdx~Hrm|d22N;hPH zCdXVDY1>C;cCWy4dHa&pb~MPxNbFU$u#4oa_ZMh8oqezu4uJ_QwY_G=KaY8u^dr+fjdtcR3_qV5xzRXBIh)K*B4(+&<~kqG5JDjHwkNPmq<#?= z?t9HswC=v11_es&VMw{i3rEm?b>0UZVnht3#}DemBNF*MbI8T0<#ZhkO9zyVn_wp$ zCc;o_V)GQ4kE778_0vl{p=t!88=7 z=zN^62|2cxELL04{xqBwzrflaUSXWQUB|(=5+HkL6#QD6W1*Os>7e9Xy*;yBTVRlQ zky-Dkj17h!iwt0n$o+n>Jh*(({lYVms`No}AiyKrxR|xeTr3B$n_8*I#nRrKMMt}3 z0|^x(Yp#X2Q({((VYrzBb$P#j)7UiDr8gquV}yOPd2b^~#*@?hITQ;Ds3~N7uN8#R1(T5?!Nwa(u%wYLEpc5lxA#MUXV#LZfg*?~ei=c#Y8GptGmrsEcss`^a z$KVAw5#F!*B3{+7D88pNCj3YmD>Y0`5nu24UfMKk5x+@|t{h{7X8z)VrSKa!m4&}c zqnTj5I{Wv2cBKI)$6VpM%)Vee3y~byFFh?B6p*T}Zu6b)fLbVDS)TX<0*@CS8X6iCqx$}4^*5Yxz+_j8pqL~t z5h8vQy=2{K4_%b(`q<&$AD~BIQudn6XdiCA=%_%y+pF|1XKTX-ZA;P~YhET^FxKr< z9#A#M)Nb-ZE8jsaImOj;e{UIDcrmn2qd%G~+ALuYlpbBNQ+`B5tG9Mz&P*PHlX6Xc z753;`OQN#}*>=B!)0l`Jr-`Z5C})4eBH(n{t(|w{EDG1m@Li9{=`c!fd^V5>K4a4a zS8zCbcJ}XAa>RBL+!;zx7j?udj_k0)p@bYYNAC!)N;ut-OwsiW&OjWyBIuUuQBBzt z`kh{BpjafRP$ddMNu%AZ?7Ot$FXH5L5>fHSl0*DD%*mkX$*vb{xZ&_%D2e|5e0r8M zoT{Ml8GTDNNH?lY805n{9Y^a$+5986ZH_XiS^}a*3>eT!4hWzyxbS5E2UdDw#qqc8 z&Ivs;eE7My+0omyFAcL=^k=mE`uAO+|l(iFX^DZXnjav6K^(&VQ+!2TX`Fs6Od_SyezMxGl`bC zNez~T)cwvR;83~Cc;QPsudz+3p$N?wK?5hxOTClxdkDpO+;7?!!R!@KVl{lgKI!ow zMrS_UxK&LZVRVZ4?4@ZV)T;=c3>KR#=oDoaJZz%^1qJ;lcF!dIpYZ=BHN#cfApk1p z?*{?O3NmA}xaoUaPyTwPe9X9Ba$Mntx_bEB_UTr$evt^or^=l2s}1>pJd`T#H$tK9?GALxHk`E*#VGSa5t5D>`b$)WOoo>tVX zSUr|2SCp5Rb9mxnV3ZUUHQHRzZusjV4}UNKAH27}} zr9hou)I8E#>xbv)=Exnm%;ySe2@LnvXbD2X$EEA)~a8=ML#`?_oH)Y~5Sm>6gs zsWuU?EjPmj(^Vbdm-p?kZ6B7eNm!6O3H`mv(UO7>-Fzr+`Qhr@Q0r-*Zj)zXd z4PyyA1S;6BKbRXt+PHH3N^NP=x&$Uxd)Ob0U6g!thV(D9Jvun6 z6tyPK`j$jztK0c;u8oF3R2%i`>A`+FD^vzWsk71M!AjK}57BGXR6Phphk-)c#cz|s z0b5VeZBJYg2_gT}3jBpLHoHjM=ekKkOb;9Gn!u`L>9;3}#@qWC$^z*`q?R4SiCUVV z-|Tur`-{|-{Z8_}#OjHm#_L7rI4jduvOOYXaVe%+y9YZ~C@YSI1l&Bs#RA@FcT0h= z&Y_%)UH@#e#jKURi(XghYF>}$l{i7ID3VW(k?G>YB^_bbj zf!0Y-eW%N=HCtm|n!UpM;pJidJ^mk!~nD|nJr%5W-B$dVxa=cf z5g3pf8|F4nM_)*wc?=3kBd3I@+L1k+(ir7djAazG&w*Xa$0d+h$jUhwZf6%(_T2P} zxZ%PFk8Rn(3W#XF8c=X?cif#5@*l6{%}%MY6g5BMaoH<-XVx?w=j|PBcc>Td;Z@4` zLEo^I-n%D#m8zNI1}y=uQFeLtP-cx+)WHrOl$s|IBmE{BetHV#^drE@;vz6%s-kvs zSQ-jx+B>XnS6~Hc;+)qbTw{+Kqy2F@YVQ|3tx(tF_Dabz!HUfG3rU0-cGH zG~y+w?eCk#GX!z1*FdZRG(&|3qsI&87~l%<5o~B=aWKYI{+9bxXk@A~t@4 z(hWd66~BcEHzpIPP!yY@TIS`hQ_g!82Y%w~R>o(;clJW}#+?Y22GI#| zMi0`n82udRV{&2^e{#Gl4>DOe9QM~u)(&Dk|A}o4AHU=WL=$J>aaRszuyR7ltic18 z>`!_kzqJnSA6I^ySv^G>vDYI6jWjM6K_QOH`GZd&yU7nR_^zb*#npvFD`O7`HNPfkxY#t3ji<7)aVZY&}!IW~*ftEjbDOL_TjqlbBP@ zv&ecCTZ_=^cB7Rz!skOf35|e&*G1^deSS}kNLcV4^`98WGZb>GH-cV8IRg<%B+Dk~ zHH+M){DffD3Bf<{nHMO96J&8RPK1iQ#rgXn+li5VHOc05>|%e;-_DXk?0}q(VrRm4 z-W@RSoDFHomV_@*r*$aua#K_~x=_&O96mRjhN4W@hdMe>^Ps7dd9mT2V*iWp z7qU<&sTxwpHZ}~yaWv@j8}AdWT%pvCpAtwXL1eq%fm5~-QOhXEQTP{XRYaCUO zESdG4b&wEB@`o*Ms1cQ=f96WE+ggH`hL<>k2{+5=(6Zh=G5wSenM;R-0u zb0EY2Av4wJ`9R9wbl#)^Iay6FKFF4!0&FW@X2k58xBRE0z$fTKyKXuTE26X{uS<1 z%0+XWTz~aAaQJl%0_N3;Tw{IAj$M9#jKRH+JvZlAwRrD%1o*tIgyJpXlNla=&ytU@ zJl*2Y79_W!KoyS22xN0Pco7qY8)RIC;u?kxG$oz6{I>fl5A8-JiieO6QJx0$sQchq z1>1X{sCuJR$!uWdAi*GHI6im36`zJ_qdP0eVHiMG=@_PgSF67^OC%~!yVXu_UKn0T zfx-Tfp6PohwFNuv5W_^~n{l?R_?j349?z1jqK|{n1;4(I`BAj3d#JcVaduTkR2T9+ zIFck2DnB6_ipf?|e{)^<+1kf@fB{Ii`E?qk)n9Ce46 z`fWuU_hF}z&C7}|-P8lnBtF7R8?0l4rI$>(h-c--HG)V$exZsim?acz-dS`c{3kP_X5nqM&e6`%vTjVChhpgla6DKt};wKqM%`+q-K^G!7F+%nl zH*d6%QdW`;s)vm@nx|((^}&hNVJ5Cv$LEQY!cG@r(blG8s5b7sF>rj?e-a%$DJbG3 zER4Cjmcu}Sb0;&ggAC6Uo$nrjRf)B|6gs9Og;?=&P6@rUq=7hlW*)Mcgqvy19i$W2 z7F_a8_{iqmg)gdmSlPSXZrWd?@oKN=TU7)Q&eJz=y#wN@p1;yP8@H`Fc)5fT=xz51*)Y&qA68XwQL+6KRK%{%F(p7b2T zkVX+gt##EhaX=64*de31(&=_({sX^xvD)uW-*sC+8yTM!@mYGMZz}tjX#xE~=>u?N z;`A<@J@dV0B@)T{*W-pRMi|)p)G0CIIttUke&#SnY6nJX8%tR?lE+jhzN>02j4SGp zcv$Xih_BKLa*Bx`E`^Ot3hA@gn0ccuI_2k5F8LT%ex!p|AVjCluB_2`2uuS6sQ~%$ z{Wp$O`{m+lL@njlKuV*_gEnL!c)3BFmXH|f}9X>!W9iXPK z8PoO0M3&TK3;^1dnZN1ugzN%j)}=FW18uh1{cc~4fNk4A{%!?8obJB)|Me%W{O$#) zy#4&yp!qcY3E0c7^_(DCppDVSsxq z2~YR!*Z~CCu0lg04Gs6;1up?0HNaACrFVZc!E`dcQ4IFDnvcnu6>zvvES3T^Ye}x> zfWu+m18mv=aEYJFDLm@E9w2b?>4N;XM**dmm6Vp2(laqp(V$sdHn`pF0!%HM9DCBz z(x9NAR%8LLZGZyM#V;Ji`zAmdrN~ZSR4Pk?m2?g!7?p3^_qsQhyc55TYr_!;4U z5esPY-v0XTuH9}&fD<@KfY6^0lh@~cu|k#K(YdvqR<{e+>Eu%IRhZ)1VL=oKP@eqa z@8LoMXnK1C1ICdAI9}o4WOQ_J34;(rDgc%o3#--l%V)+(`>Z;b$(1!8qv-wPqjy}M z0Qldb{`cyIn~`Sc+B~!!JQ%ahXk~%aqs-0EuUfGrj8>MH6D5pF7?7hv2ln>Bi;=|d z1A%h(RI|breAPz{$@TjpvBn7HI#;#3Ea^>=`$u1Gs_5QgJE;x=pjdH9NgOu2KfbL6 zF2K%s1=GdDE|g;c!Lhdfz__>+kMkaN8Fr)%R6f^&;>mX}kt3H$KpWmau^`;6IR3Ob z)j5yl7|pC&hQTtH35=Zz5%E{9#m)ak*E>d67HrYN=_DPigAO~kJ9av@ZQHgx=-9S% zV%xTD+xB<5?|t_h5Mfojgj&gga zLSmYRr{@wgiv%ugjBz{HJiEWQuMvqffm59$@qPq=8CAj}<(50E5-Z&y-8?s|jLcjv zBq-$}g&SZ{sXbAhHVl0oUVnJ8?=6Zo-Tp}DekBmqA@T$u3r*>*9T3i&s1)dwOn8l# zqKCxuszsEoXBnM~nZ#o8&+!g%$By-Dm)S4t-s8QGpzMH}V@aj&xbcK1NvRK)W% z6HUMdo7@|$1XnpFU-v%-LXdCMtA4=9}(`MsGf26^owhwhgc^!_N7G_V>qMJgLeHR1=(+NEjQ*+HuT~yec=9r2H8&ckE{n-ZBTOQPC-%GNO~doxZu!P z2U*7EkU~f5k;q?nxh8nsv)T5Qf9Chxgw4X;p$(Q-h-qoXKZw-tOL{?CJ#{W z!Zu`RHZ+6IR3}%{>bHaz-^Yyj8)Ri@rGisLVK(SCP(mXgSo3^zS}7r|n)VFD*sVN4 zls-;mBsfGB{z851?8(CkfmvhSPUA(aT+@NXTpoXQsq!;yi-g&*;=O-Ge?>H3_N<*1 zL&V0+X&Vz7#-6yvM`>*q3C0W!$VtDMvx&lyzVtK?1=}?v3=mJgwz{df6p_?2;nrr5 zr<~Ye_!znIVx{(miGt1FMx8_#$(9qEG<&HWv>=4^ar4aXLlzj-sSImMC(-?Cg^*&( z=Zl@0RRgP2RJP>Z|I`|?OmxHsMZs?SvdBzQ9J`V1L_~@y=1*XBSXutz`RSd$GL*r` z&HfDP6`BFd($3>{6wCfYin8-J*ht&`{SN{rutK7GP~Fvq0s=%5 z&6BVzmV%ye-hfM^zzm6Gi<>*Lgi4f#f3-pGLV$kkVG39N;oyu$&x3*zSEXxoDU5R(2KroT7lb`%N&HS?Co*KB9U z)BPJUpAp=H*t$#az<`#$BudA~Wa)^>mtv%&6Ea?~K$GHJ(>%kyjM(R>H%Jmo+{RvT zYc68&{pn`#@;2-JcCS3Dl%N^qS$yM!fWxgnLd6PKciYx=`cg?oy4_)lc~05Ce=;g` zv&GJP-0H)X+gR(D`L6RzOEFVDyL7+JR%1_U)^~I=I#0dM;q-{OI3XDz4l9?FY)!rNdKe)fBq5}8P z1Sg+$VwZH<6W$v?44lMYPFRJnUQiH!DBp2IWM#EUuw1I+?Pvy%=%pY%xK`&?LkH1d zMks{{mQS9P6G0?NtBz#F%CpNr15rk<*YRk@OOyzSB7`W}c0`0r_dp z5W@=i6L?c8s436`(!bC9%WN5`f!`}N}l zXIsDV z&fmF1)6z5=;f8n!jzM0eeI;CfnM9Lp`dtwiu+uzy!gT-Ljw zss_{#F8>}{K4bh-*A5z7i6vf#l9~=V7lNh@o;+AbjtV9R0GG&iEa-ABHZC|fFB@PF zOEr2!DQ6HmXC?5B2a*pzS+pCaeoiU7ZD*v$pK|W^%ueLuVf>=553`aIsw?InkH-_8 zrKWV_C$*Z!=DA0>w?m`Bg4SHhFzEe66~)APfq@x3Kikr*&QnKot!%DZWhCjO3Z%+x z{`Y&(We7tdbA;lp!C+Lzhi6?r)@`)GXT25|xFb3EmP z6wJ)?OG_AVL%Nj9wjn{=NF_Y4ZBKKNJ-bO17n>&-avK7gkJ(5E3!9RCWw7adWqw6} z;++V$l+wZMasP@s02hpU%3)vrK-c?Az=rb7_!9hr@Of{pgbFwem%rgC{>rVF6A9!k zUbWK;b_m%3lHT<5n*?GE;&*hJnn-2uR~NVE>a|ltt;Y}e%1=V2`bL)TN&HB?8l%dv z7#JBx72L}y*AU8aMMiY1nhm@Ugmn|Ev#Lz$e1K5tNp1%YSR*0uPkNOMLrX>{^NAW7 zqt`;s981ij{AJrgDq1a_<}z^q>8R9*B zt^#StS)K3am$B=+w6=@xh$o9zf5Py2O+J&%SYdT%FNM8nUljAucXoGg@$jMvj1mqP z;uE)rSmNp|;jhOVlcPdye)@@f^4hHj@F)M0HRiXGh@L^`^7|>Izh=9sthuT+jP7;m zXD{&;YHkbN&rbgkQbu;%uZtDqzneT6|3xL(_sEYkMYVy=Wf#|6RyVam@x+f4g6gRl zt9sBcq1jTEp`*U~dCV^!+7kseW8CbR^{TShHN;;yh{nYuN$0OfrZ+ihr3KuM2wBLA zINrs(tMl62GezU3>L}bhIJP5EVN`D$;@0a;m{GK;ocm6aTgvu=O?nNLM=AIheV7p%_t7hbFjoA; zJil}YTm5vea-bsj^5@=MQm}o^Y1599tLX}5VE|4ihq-wfHD>zuTwZWFRiH0 z{}4^SJ#V1oqTJCUfNu(EfoOkRn`Hvbt_Ge1(ko4^`W-8d%C#hx(^*7n&w29KO+{)G zlX0XNqUIZ+&Yjc@6boU|&>{^_Y^Jig&{VKd_eURxzsKo(TMo>h3Z`Z-E2X_BO%wc7 zX|At=I$36 z2l`__I66&e5{U8H(ST#5Ubap=L*S<%v^N?)c|`63ZesP)Yid`JOzIcD3>%h0L(p_y z1e-0Ge_1dGI#d7IoPdDfwYGwe&v`-JAn>+43m12}Mi-;6Al5Ag|8;SHO@RGpK?J4` zxd5H9RymsE-<-gpwJQ}OTsGC;tiK^QASe(-7XZ{K-~P{8$zRM7{^1v(BmOp62-9@0 zqVhf00Ip54|20{8-sFtJRd^BVPmaQd$1r?;{?6P>%ZJYC(de3-?__&tMKYW6qH=pF zyPY{*8M&S$i|w?HBwv?D9ZO@^Dt=dxixfZ`$$yTEPG(&p@2A*iKhk3E0+jq~#l!M3 za3&XSGNCCI3k5iaM`tx(XjMe{`S`HweCse_HWC&Q8hz-wdLSiVNs@x@Z2?yc+tV_ zmN}k`=vz@024qwvZT2u1Yy@sL$|}r3;~gW4N@e{w0h%e|nBeoqNe>m-OpXgpg4V>{ zR|~y=aU$S~jrwIWUmc;4hf`IfzbNh$K>McEjg!ZjjfY!a*4$754nO;-SjqFQf;k~G zxtS)oWqa|Fp>t7sc_{e{c2wGWkIlO@PvTp|P1ak629D)X-U>O0g~hCL5)#oJSJ~Cu zB1zH5zN%-A1s__xQf_K2h|+x0LSl?aNFutRL@BLJnQr)E<1Q*LxAfh!q*6rqf=R-< zm#{Ndh2ZH)C^nQ#UGSGbbHd>}wvJ#yvyLPI1~wCy#DS5guJzv}b27D6$~n~*r4bL> ziiaqLk71M*jC~KZ{t$fJ`Y$Nqg0hOxRdThr!0`$WE~ZKLIi{4cJkA5!pJdoM#TTbB zR6IJj?$qA8Dw*o0f*6Lv8J0lFG8l4NUi4Wv!=f&_eXlJ|N_7{*ez+Jjq`Yk&&l%HpK5T5t3kJ9C^Sk}zGWr>s+gay(GrPV z-#sgaP00g1cV#&U&xlO_E%53XJod?-5k6N?*_vRz&#_Wj8UfU`b0-iah+DbSNRN%Z zmQ7+0hC`?)(wTB9VxiIM0wfjSYkrkE7%;g9kkW6;~c*=(KNM4MgsSx#_aJwI|uiENv z+Li=Ic7pc4sJVxy{HSf@Tn+8oR{5EYV17wzwr|AUj}pxLHIK2kqG|@hnwTR-*~;T7 z^94^J?cHEM_vKyQCkeO7!RQ!q_yYDhrBT-na^G4SP>dI**}KVrK7Vvd7O%z-l)&g7Z zC9gIl6hgM~gNJ|zJ$rwV&Dnq{AXvrt%){jw4N)#n1Hni^BTQeF$!b=An;%t(ph<~d z@yYtLRfB&%hqpw*?grA_6P2_J299Q`#e{j@TvFkOoN6d$YnHlHCjWdq%C7=;km)k3 z1PyBl3H%iHm_PPpX;UkABgibH<4{rc;jwWKb-q5WEA9N z3e{7Ver9eC?|GQk*;x0~eJFp>Mk#b~IfGhUsz=JIs`Un^a)bAzLVCb7DfNLVAmT(b z8EZWkh(yMDW8yY{+Rf}qOlre0dszw()LBWE`P3~HVhYKQ@mSAuPv5Yvl4_!l!M}5N zv`3DkbP2|SqNMw;+||yfetW+&+hGa$xyY4OD$BeN9?d`>l4w=>Cfd@Xy2$!iMLbMH zyb${urbNU&rm6}7_sE;O-k)^JfosTGNL_Yu((dZx9}wVS_)Azfrf=qJC3OR;lL)pj zYp9sCoYq3~j!1uaHl3n+Q*nr)g2i-C2{=oNIBKd|=z|kJAbN-kw=%DtoCDQ&T%S@P z(HMevXK}mfPN~SvTj{yXg~D&aGn*DZQt~BI)nbG3{2^4w(x}cuqCC2G)Xezc!X*6!4s<-lM`W5{Tb-IyX$2+YC7EJN5-Bz)}jiPHQWIN`l@-i|NN0Q6=!53eTLJg!o3CHdmi8&IZW$hsHf z?t5jW%#t}&Ee36K7=%$%hhZ%$kJy4eeZNv4O-ItN_Mh?!t<`Y!3LjSHqRpj`xs1RR zsY3%((qv=$(sOJ+aFXC@^CDzCURc{keWC(%+>L|dC>MNwcBIeixKSCWfHJ6hm#pHC^V9aB{M9HyHFFky<^(w<51DgvO)8f<ckDHT+>yhqj}N0!y#>i&N`SKx>li4U*m#B6LfHQCIc;W?@kLwN@KCp8ww7 zo?5N({h2QuMLE}_47*uXVHj0{w7;0RD<%BEHs_-;{F}CY2iQLUZ@{JjOHLq$$pVp8 zAckC!FO5UlDNbp;>|bzVazuI&1r!7#TW%-Eyt5?5iwpcyaN%S8?B)ML7mTUdBq>ibtE)m{7q(oaqL0!ZG^U*@c zmFyl%Q9DYLkVlc2Q}nK~_cI8Ou{g8AZ*$q1x}*kIpuz?*L+^xrm)S?=kSyPW40FF@ z(dC7Yc)u9DVM$+6Dvo0G4xBTn&%+ucF5oe$Dwpde1M>Em6o$o|1=YT%1l?R^VQaJH z+%H01Ze9(*mFJm{Ku>9k2DOG$TCmi|GEhAMVY$Mp&S|Wh%qI0O(?FN0D{{M)O#t3in`I9ng+3 zKja`>&r9@tB(08qN<-&mAY(;x0t(YX#%p&Z@i3JZtj$U0hoaG9ibi1GO4Qu9jtqBWAmDd2%H?Dg()K|rjtQO1 zN|0-Q&2(=_Ot2P-CFE#U1(&OJY=?Z$!qgzIXjA`VmrG3$bT6$2s@z)MmERCuC)F=( zZUo@vUxmRMD%O(tLR;%^KUXcOwU*ngPD=Z_;pFJz3;8ckG?@~ZXXr@`bSb7dkKq4u zLi{HhcehajdR+1iB-_Fh4pG>Ivq3md0TkqE>J9>UX>n%<$G_8?E1h)8Bi*mPGP!W) z)Iq1egPZSFd?tNHEf6A2V&U87(lv(#wZpQYsB02wMi)f>(75%sN(sX4Z$tQ1{61(j zm&-qr)LwDo8TN(QCy0zSl5}t3-prC&44Cc)t;S*D9?n zS5oTcS+jF*!Gp*r$Hljte$19$E^R>rOpkQ$y~CjjvtFcl4VV9gHm!KOq7DF7!79KtP}YI9 zbJT7Q_71h&<;yi&<09%+4?M(!#R83}o!dyEyMT-5wgXR*dI+O3F2;x<^7IN>0qewE zyo1oDm4$~zlY8`a0a_8uJSH38bCD_5GYXF7#xbzIhuh)g8lCW3NlDe|bkNdgX@emj%Q+ zn_HBkkB6*fBW?FDxH~PQA8j3KKX^7%Ts{ksa<T9Bmqm6suON^g7&jKHiRA!=T=G zxHcBT4ue#p91SOl)s^br0~*psm=&8$mq*{I2|EuyHdUg4@Hi2<^cLx@s7#*3r=9ab zm30<-6rNU!v(I~V3FV8hcM06WL!xM;g8Rmhw~dK(n)~E4uIoYgS^W04;7RjQm~TK* zOETe_KTZWDo!ab9!6I^c_ju*c_Ff&E9l9n)CD(5SVPQT(gf6dMk7@>+NDI8Y&kyXg z#aX1d-{*KXT+fGw?QwC16BM~SZ{X|`n9XD5TnT?0weQ`Ow0fpOjP_*F{Mrxtopv5= zf^D+trtB}Pm|$q5;AdOYpv7xjRg4hTTY3yW=JI1HihRgymD-jrancJ&rP zv?R%qqT=G_MPXOw{qzK}95{Dv5t#e+O}E&BUuKdwZ);CSa}&q~UoaqblQ&`#OBBa@!R)2HQQ{hZ8^uJ~&0hx(LDDs`J^(wgRcv(dNylU%n9ofuH1JT>s6 zXAKlx+D<1?nEtgu+ZUil26os6DdG2d-B`aOI|GHSKkxc==AR>#SUH#d6&&>){Xme@ zpxfX??0Y8@>Zt*-&tzIW^0{v7NyGeQpy$e_F8;l1Fdjc>m2)NC5)Y-33V&bOQ=3kw zn`y_ooQSHYp`7>UevbS?;L||pz`0;jr+<)sMp*|^*nQQiQG&A|BDGW+Y$m?cb9 zgf4I_g+xMe8)AQ?d+6YD7^A(l=X2G&X%I!Bz5iT$c3d?+9=`*kW!2TZPDwjHlN_hj zjSN?^UE5~{6IdG;(K-$m2wau03nO^b2p9|X`J*gLjMH8o9t4bi8FK`NNvJJp4vj{7 zw|j@)f}anqXF)q>Q6I%F+L_TVD|5gv0Wi>a-3PJF*!jAftD}>B7KPu2ooDN56on)> z>y?ziAWVZ1yGFW3MaMi0a(53!y3g=Z`f*QI3PmCR*HMz~=MtFz(M+c_AwWvU;^AfpjeH!H`d20f;h=4{M35{MVd=uHE`Dq`T) z4HSk)EL@p((9zP$$9`p%utr+Gh?wBG zzwciWY%YzQO`1CR2v@%jdZGGwA`ai529g4Zp}rAHy=reAD~bnz!P~Hr?YIoX(@=FV zeZFBPUiN@Td@qD8spbuX2@FLZ%uEz+M5FEng0652h~AzzB9`!Nv^3+!@Ak4@p99k0 z&#^K?51O?U7Z&Krm7n$+0+Y07@z4l!p|#>~$v>*b%qiDq^+3z7?Q%~g*)a(?s?1lZ z)!Ub*j)18s`PyB*yJq^mNF@h*2ft37N30RxGk@k+o%Ln8r8l>b=2yUQ<3v_~-%>_@ zf8`H(r2`&333Y(P5*^yneqq=r=(A{+K=$_pffr)ZJ;o1=!lOd`zRb^7{xc}oX{5=i zgi7Lh=dKy^>!4vVW!-^u_p*gx)UohF-9sOnygXf=XiYrITH3nvzrF0Q&1}|Ayg+2z z9+7?%JUep$5}@8(mraQY-7NRQ;Pt_gaKo(vAq?L`v%6QH`+I+`DgYuff2Juq#eDi4 z-X@D4Dm9Zb=sg>o^TzBO&BnCw=?No3l41LI!sM-@Sg9VxxoSNTkJ8d!MG=~;o1QQU zDme~6t6sxKufsG^yA%^y+xopTy!(A6DDkdR)#|fDEb|fjZ(Spjoi-tjiydNi3-C9V zKedAM;_7}ZKir0=;O%g0+54O$nfH(T*o&W5nfI1`P+IeeJ7$)hJn|S%q(7IKlUmM6 z>Ox)6N;lu;x8!D?(0eQ`eaZc>RulluH#VJYHbyYtn%!I6~6)Vfssh@wj6O**EKrXQ61`D8mQgPqYN z7$;GwniNuN;rhX)6|9ng)5iCy(Ks$|vE{&8M@Gbvo+fSCjees^o3Iov55HuI8OngH zTjK|9IEk2#!<=Zbt2fIY2A!;oSH%gVkhKUJ@PZ5B>+d4uxV)}44iD{jw-z-!yJ%lK zyRTRtaII`er*Kf0q;uti0ZC@@)XYhS*ZGG@#ug}E+FSHgoC0{eZw#q@@|9!KVQSaZ zN&p@%2I_z^4c0yH5joNtSYnJT_9w$A$@oCA(@N$|`*|n|%%XzBwN}2SyGA>z(-pH= zR7mxg-zObeuHFF|Z=oM|F7`7YjfE3+xWrj1wM7C_?YVH{H`+|_>=|(mpRsFzFoA3` zfd}G!Q@GXMj=4q)xF9D3s?z}oqIY@5BnLOAPU>Wxj%~%H8in7io3;VE_HP6Gl?ro# zxn`206{TWB7h4k;sJ(-vK(LpnU~R?{<~n;S+47f^a}*tir!6oF!MdGvT%fugB7MVmtJeO z!u8M{rOo(`oo(s+__n_^MsY~@Ef(qlbMYQ&P|!ZgcQiDmeK3aagFaQyo29!p_w~08 zgzOW!F9CutO>AK1pv4zoUSvF!4yCvAs!#dFmtpbnM1?iw9=afZ(4IqUY z^?U%EfDnZNk03)|GYi?(UvTDlD158{!pX9hWBxF}+b~hJjhXOn;WXvb*9|{@bz>j& zk{raVZuRm^W3d99n9wt|CdO1v3vRy-YcKKWuqovbp?W6jK_kQYHgYk@#Ty4Rp>XIn zZFx!1J}$d>LkMtQ!{`kRcJ+E7)NGoUJ~~1K^r9jOlJd-K=lSHT^#8_$hUnsa1$3z^ z{#%{$M4=g0m0Kf$ix`Fl`tSY zT5JJdJ}H1-P!b@}5L>07zK^gbz&pO0(1Ykf<9CC2DuG;iZ^J>n6>Y&m;8TD3&wU$} zLqnoCDO;TeK#w1ouPXct;$HzEU9b99RuM!fZ!U_&tzFiLAfkUoNP!<{h<`u8690XE z`TqyH{`YSlO35NHAj}vX3}h>V&-sgJ@)r=`s{+Bt2m93n_pbzi@~^^?wq}#TuK>Bq zNNv!XCq1K+01$1HBy;5nGVtZCLAmv1*75`^f(?Qv2fK!uJQ^Ln(my!buB-4(l3JA=nr<#@Tm!@y#^ zkd(QHDpjbwRvbM95ZfXC}|G$Y90p7VV~ zjkYUoJc@o;%<^CXl4C#G{X8tOSJ=7ObdByS+o*G>Qo1g(zSxZ$bb~)>PLsn#oXl{Q zW@jxmGI|(`4{3KG+i36L7D4ve9eV}`YWyl#h&q)?lPhGlOYWtFNcLM+8wA3Xm~w80 zpt>_#-CZ@td3-7!ECoI~&T3Qj*CD_>hI87!q~kLU^~M&BdD=0)tPyGVT3eYT72Nzd z4nyHYXs@e4N8YmR$zcN}Na7<`TLGtDi(>$`A^A7vzZuvyh&ZJB-H8LSLgB5k)*@mh zheUbmji00JNG3<;l)UpzXc9qy3l?{O^`-IbLZ=DAXuhfPA_|a_*zFYrenaj_F9y3D=KwU8 z(lP!mFp@Elf0G$0T1o25moGp~^m&iyK`Nf-os$#yyCXSlZ0zuPNU8tL{?gEw$4g%0 zF^qOd5@fLtenG+C?wHG8f#c(^_3-tDqcjBO-j}LW(t05ajE{_*043AW>9qUE3G^WT zjUcF@?A(bgUK>5V99i-^+)9l`YgJX%dh>aD!M`@B~1rmaQw!;E z83!Yr$OFUjqW?F6u6(B3Wns`o{{P2peabuLpwdS2|L?ADPI_RI zq|#V^aJ%0P$B|*c6Oa8fFd$#lpnbG69xr)H+=%){66j6&X#9(vu8t*lC?N83U8(cX z$!I8BeF*>C20Tnqh9{;N;$1Lc0sp#h<0rVG?|)w?u>K(bD|ngg*UjZ9@1rQR#;tQe z#B=<%$cEK3UK!EftN$;9iWKc->NpVi+aUNB6}-E8FBK!MMo`S0R0_$m@=HT~I=Or; zOolTsaV8I$gwNLMIWZAVoKnV{d|27WfYzL0YAjTz8lX6W?y)nmu81yx$!RCVFP}gp z6PhqQ*S}C>J}uWZ&a0Iz&$a#y-9bkP2@ZudQ}x$j{~-x6gC^*3BSm@JgJM~3sFRK} z&^$;(>zV9S427UTX|1V-QxDIEv8Pb_tE`Tw#JtH+uafxM^vM!yO@>I2LP^9W3P=em z?O}xduTiD4&M|G5&)1{k#_*@o>rZF7O&oNOZ>jl9oyg7HWn5!_^4lk6G!^9MsaGFS zZXES(j^BTGHkhQV7n{BnB+xX1J_|*r-!PRQ4mXr`Z=(u**6m!c941+}@$4R9$R&v( z1D-PI^e<*lNb6^mNgf#ahs4CgfN<%7iABW#ov=2f_*&s0vD+zDPvfLc?>{k*N zqc}O7&ijToSMqX>wo?yPkY{K&SrICSi;-U$YheF7gv&q;V_#XBOhC>+n=RLM(+6$n z7fR?OCp>I5Y9qa%vQ!v!4;4|C9UQX6?C}OmEVVY@48D$pSeTVGIdC0MT{8R;|5OvA zl|lihh#TO^VU_}@)QCwoNFcpFd{NsMr>eX}D;1?I(R`!{RQBI-5=96oc&1zB`P7u< zo29^Q)Q=GS?}*Jd|7w`e(xz0h(N;+Mo%XaObS__>Yvbu{2G;-BeA+%WCi^MOLusvW zsnZ~AlroPnRav=%$;#jHqDY0#kR!@AP!ENghDue=s8t4Q0%M4>gO{lFKXx2yh|+f) z$lb-&Sr*Qj5O->+$Yl^KiCjzmVMe=;v#+|Da=P8?YA1y0LP|Ed98%bQ4LqMCz%EA4zww8J$&w39l9{ZzA=IBtWNtkluW z97nsigf?i#KUAsDO=MjJ*t~!H3SOk>m;s*wPH~nn%Ch+YI{~+eOog@I#gzk|3sG${y_Li8si=z; zweP+@?2hK}TkNID`uyZpVMEN97M~g}2<2P)x=f!VjdvBRgrMg#Y#Izx`0!Sew zmeRXtlo6g05@g^C_HWrOeqii*V zs|ICS%-g~1h^9(A(@(YNdut$R-_M&a&wXDIf}s9etEc?-QD4ba4{s-!(qMt$jjyvg z0Q-G*@l<6>T$`}YH&wA~MoW$5r*yMg!XscjdNbdxqQE$Zpc9tPzR6;i@$6; zHAjBw>n(L0&uO?Q6x`^oOAbgGPGO?hajUB@Rx8imZf1>()EbhSl)qk+!gl)hM>Xgr z*}Mt%M3Il%6n$cEcnQvc&R}$DZm~O3%Hrq9X{!8(t;SpZpg3AmcRm~<7H7TSuGTS} z)46naS>Nl-m|+6>Qjb=O+hZm*RRjxcqnT`yP=dD>Xo<t^W1<&wHodYT zr=jz0;9Hn?n)czkXK;b|i-l+rUKXp`+u_;DT6{n+$C%fQX}8Yi;%=v1uf2-0Qekn8 z`H;J-{bEIc$wxD0T5j_ojmFuL5?Q{Lp&=vUE`Zsf^#cF)+WR-wLj(48e0|hIi ze#1dWWWoUe!s=uPRq<}@LMXrR|#wIMvhm&pD?yp!> zF-pbwBsWtq`5%`X8b4f)6Y-Nhz21;{cc`eUU%<3!+gpg&Wy^^dl{&k8dl=zju`3bM zw^)Ac8|JbL7HeO6dT+UuK4`hYfz3l>|J1qU95CZ((cM?!%)}FKFk25*cnSaGx3Gc6 zGJl-6XY6^Ls}2zpuPHX)aJiH|*FfX_Nnu?}m(JX-Ff9))HM{bEraq(D|&QOep-}#m~e#$+(ocQ}I*Pn!DT~v3V)Z-ZM6!CKPB4TRAJ;)eSrlBtWx4f1_1yR zIO4lZVs(pWWMr@#nCrV28C@leBht2NEsP*720nGDji#-=99#VrthrA|J+&@v2){Y-q8wKOkV7bS^Fb7IZ0G@9q}Vo3VbwVX z=sO@ndC%#@ui!e?&Y3naYifoQ`t^hG6t3Qpg;Qo zZW6V&m{Q%3@*z27%g}O~6fH%D0<&cIDY(aJU2N0ytOAH^1}!RsDM#!q9nM-^zIOf( z`{}F1M}CzApsm}g6{X*kVU0@m_S-am9!u;{tZ!w7q{HYKJ7273Za&GA-RbzIb+GyP zdGIJSE(zPCdA!~qBj8=cS-$bJf>Z@4RcBs_=|k1t3U{eKsZH+T_OXc8xoI3U_Uz;w z0-fUlktfI{yP@3wIMUvkE3o+0WA)@65z|khaneRld1ooh!C^l7Tj#)X z@ZII&%4Dcyi=FN6ivl!rkd^vEDORhajzObm&IGNw^h#|_gwUU+jJ>7CUgZ zkmsK#qwf^+>Tu_aWrgf9o~KtY%!50Ytu&kTGf7!)`i5yKjaHiH)Sxd2ml(Q2gIQY4 zPIh&5+v!>kZMhW=5O@6v5;IAMQWtr_8FMhz#&>-@cwFfj8f2e&>^9<#us=X92(^+HwEXPXb zX#R%o<3@sGx@)$DYfHR1NlJZtzuYXduNgG7zQq4)Po#u6teZwN%Ne;jmE;6%$U^68 z9(-}I5T299xW87hgyX?T6#__%SN!bfm!q4sSFCbSFj(f97+b0xfcl&a!GaD$cwyHC50;zg)P|Z9Y7+)a9AOXD#cVG;*_S|MV zO1kby705dbF*2xd(P1zbA76)^+pab`b*r6p&g3x}sP-ipA15DQzVFw0&pcz=ONvPa z|D8S7bAXF5OHrw<)tdi+GGWOcH&+}Wlyd#cO+yXM`)RgES%THMaW+#N+8kr0YQ=ZR z==LDf;z=Q5hZz63tLa;32Y~f3s+sR=lG8k#De3`Z?%@pG!QvX@cvR`)>e^t^4pdKb zb>%QN!q1b~PDPOuZ^lPjc=SUb)&mVX;y$ZiQ3<;yi_4sqK?gqz#2O1m)l<#FYL2+f zdP;qj+FscUpITH$9l`goI)j7)&^5&`wCWn9g1J*#A-O%LERY+W#;2V z=y@zDtiTSBoMLtFJw-Us0_m6dsFq#Vzfj|TzpqI!OQU#h_1|Ve;Sjj{Lk9GLlz6(M zd0&n8_G;b0uPwbUtL|GSH8Z(A14iirN^ARa7!O4pf4si4ihw58@9DhS-F%FxE3iD+ z&v-`_g?u{jXMI({+{g&NH$Bs%IjE%=KE)xC`w%;ZvF@+2M@82u?nhb<5#>*bNiA}y zPhg-TQ1CL9BjIiK(K)mL;`OOiyX4H97httt6jj zrkG%@VxaWR#^?L9$bx<=Vw0QJhR9|ol9AnqR}Wl~Okod!d7Zd@b@#bj1f(~m{TyVu z2yb>JIFRG$zB%c%oc2uxz0s;~WUut2wqJ{dYfml_g1kbe4P> zR1v{^+GIZHdKs&8KZ;v+#%?=$rN->+vpS_J`&#-{s}eqi)q{>g-9hmigOB#8e`(m> zBrr~-WW1*ToLk+o0(#WufnBH-gYsKEhmvuy_(=ICxtt97q<-|1IfRnpr4gHHd!eQx zWuh4}QQ@>AGYwsb{mqfTwc_FHBCTlFTlHNd@n+@)GklvS0=M$pUE5_6m3!T@NnelJ zx&;PW2Hmhni_b>WGnoPaajA)PBtoIw%4G4JD$<6F*;P)?CF^|kj;h`|2ms0Fj#*Be+u~cls*5dvL5`#_4z9-V*Sh!)aT)I{(x1fuPf~b zQuG)6e~$9LY~MM~`~DxC$?CL$BO~-w*?F%e0EJ7-SO%B-VCAXDl0#b%9Tw`W$F|FF zwW9f1|8ST9^~BMx`_gdlx9igo;S{FsT3FM0o3UuAPPIuKb|0}u<5v%#)dAUYnlw-d+Sx^w)>v{B*6l}{W0cwIGD)~u`BHL95@ClkU8T-8o`!1%lg zrnvu>h6iNhDJL7{P^wYYW<0s=$i|TvyNvYZ+Jn=kSYuW}X(?gT!Th_whKq)SejyrX zr;Ft4kd%q~TdT)>8LotN-{BNEaN1bc4oL;4wZf450|AsENzA4;ri|rDy3wAK6TPoE zD^0GzH!dU3tU^>P33v{M*Yv2WPa@@6b5KgpVYD1Wl#kfL9D6eE90 z;eWWiNh%q~Nt^Rj@Gg6&u)V&lQmSK0GKLQI&M15Q@#k&@K&*_|$|@t4uX2WcoT%xI zJyIYp#@oO!TNYN{Nv813a6UI6X~!G%p|3BS-jn2i@I-8WH3Bl{}--XQeISd|*%vUfHf zLxN{{yPnxIrf=$)}s-WJ~3L)JD-#>r9~QR$Kkzbn?A`X1w&gDbQ+Asqitr zi-g+TU3Ct70r}NAt)^`i6>PeR+)~IwX^`#x$q@{H1^y9OR&12O#+;l>YAST!lJYp@b12^l{E&QVJ+>y*5| zrl=Jq71^(>%s=YQP^3&-%tp9#fIM8el{S@x~nYiF+HymhH^|Sq(&lR9*A1Nl9ZzzlS;xoe%qrbgfxpQU( zA%DUozvN-;WF{A#{XFV#@@BLG8Hq_}0hb+)A!DU625QeO5Ta)<&HG z(`d7z%8eRJMWtO3$nks8c;-YicWzfIT|6S6y42C9JRXAbX6qQy|MAy$Z^TQbRuy`H zDC5-$_{<-lbCbYudd9;kH$?f$wL|c_?>C#Dd%Hul|A{w>Jm`Tja2!e-hyE${b{b#* zCK{6+WOH&IhU^A;FT%FU?AuFu2y6d+a6W2Wv9e1q1#5be!E8mkXh{RJvVd~IuZb7Y z^iz4t?2v@#8%ZdMn`V@7+iKAcVg|mLI*Hs&3cKS(Sh!&|`BVyD>~H$6LI>Z5HZCw7 zIH(i#`Q{&wkGyYCKF_?Z1+-r0Pl!7bD(a=2lUrgMg+Dd=#-v?y99a#pPDsjQXNlwH zxP^3!yTQ8^lKRW#g3H+t?ARx?=XQMxZdN46vkLHBD49PR;qO(HgoV)D&fCDL1u79{ zHvvMY;hdbixmiPs2cVOQ`WukV_1`9dhZlb%#!+Xz5Qh2Lg+phGD;b0Qe53g*`t3r>CNtq2tMkqVNb<*dV3;?*5aObbzyE)goo7^2-@5g! zC`u7QdJ&P{yL3TOdI^NytF+JwO;8XJL6P2jC-mL|(uF_}flvcVl@dZtfKYDmf9^Z( zIPX0l?)tPxR(8f7D{JqupWmEouJi!W-`kJO#$%I;h=4;UQ)2@K9um1Onwu4Ox?34_ z7e;#XBR-zyS2%xCMaT<6yqkPG_K*6chPJ~Svg4M{8Ll&;x( z5-=vy(FQ{=j6Q+r%9Mg1Ow7@yn@$9yro-1C=GIv~gF1f- zU!;hbqflXvK}e7LmW^SnK@dY5$ot+Wf%}ac4>CGU<{9OAAzvEqQAVjCGD8y|+*M%P zoFD0SE9^6v0IgW^Y?55Dro#;ng{EVs}^>kE^T0o6js|-g#SFWO$4686S4={T5 zt?CjepPI(8_-$G7ra`?$NoV-${%?<;(fXo>(hjEB@~T;!sSbSNWnq7*WMKD-CgO$Hl#lW>mUM_X~Xb$Y_1)%86-^JH#{Rj?Hk z_C?8%7x8x{ls`zB5%_*7<)&X`GQE2qC+GT9nL5e)3A+Z0?y=HE0168ul^wFy`tYL; znKGz-q(+>voYX1VvecFs!DKhi6|QKp=%CZ;=ePza^gN<7fe&5Vjm1l9cwBrf+cL!R z!QhfmL20y4I_9&DLy#5N_iR^gvwRT?z0ZB=Gm%bM^rG1Bz#L0^v<-8SyLFFC>uF{{ zKu-n>oTcM#)B2y=M_#ivf=Kb>N~FJ*PKQcdY@wQjWYK^mdU6ia<^Z2rH%lEWoZ6NM zup>yIeG~2geScqJz!9|h6*oGS$yQa_VjUtbb)-~EklZ4~_Tt9#=LC-cOVKK~8UK05 zQ5WCG&oxHI+=m<6aPhc}hB%$ilXAE~tNH~fer(nEbbZKQuuOr+#py59|W z)Z*aqkTo~JrK0tE!uxS5ul`hJL3+TqScU1F;3NdM$#YOeFPWo^3=DjwyGJs_;w z`MqKT0V+^ErM|YdOTuR5^t`Y$4`u+V2T|(rw^4{gbutdD4QkVS{roplZpglvbX6Nm; zDA%WpFd-@_1ziRae-o;q&E%o7b-Tr6a*00ap{)-QfzxRJ(h?0LdO7Q=lZ$x;h*fV7N z23}pzC8_|BCG4O~qg=ViINa6IWZ>7^X7s07X#U&)mise3lT1Z`YrdCm1UF^b@p?1< z$#9RlowQ#eIrL^*l^v-`N3|<4v*Pz`7X}LNlHdDBp-yf;`9Mep?ivILl1F30SZDRV zgG-!Q-oetTS76r!-ZyAUIep&jS0HYl7#K9!?P9b0PIsbd2@jYB-*>affQXON`4#{$H;_aESjovWvHS!I8u(Qm8k@nf$Osasj z-Yo)Qy}+4iHGbHGTkwTvK~qVtc||7vJYbRy!Pd4XcAmCQx88Bt<0CNfK~7GH@|ya3 zdf7nVi`tr+J-p2YpHP&{V+h!@jeNP^Ln`O?jNZE+Fk`ELLwahzGuT^Ij%Rakna77c zDHr}6;)|gXe#Jw{Z&c4AEL^t)!*86SqNYYK=~dFu;N6$}0^bxAe72|EFE7sVsk(lC ze!##M(>9-riwk@lCp75X-!_@$$&-+f5E6X;J2|<|-YPzjDns_IWamhtX@}eIZhSy4 zKIO`|{*CsYt(;sZ1~q4n-w>p#^P+6KHX`D+jm-+O4Gi9yPhBKvuewskx&&&;#s|<( zzlWHn&VVsYZ#nC@h6L|vkPB4Ycu_vJbAn$(!Mw2DTbJ%57e5OvHBh1d;i>y>A#}M@ zthw^+WQTK6)>+1WXEffRY#4U`bktx?w(6(ojpvE^Um7Rn-NvvTt*}jtRsd`>Z^1v6 z;{@qxo9wOGt?Of$Negr|%nXMf)k=~CZLMOAT$|<w~ysG0e0y)rB`}sr_!)Brljuv z!7EJxA)um1y($1Be5H5e+peF&|L{dzeexe|6Dm3#v!W%q+FRtpe1(A6{z*D-I?3jS zh_9z|QNTj;OP7ry8GSPtVc{opnZR!!a@84H3N9S|^zAXTKP-Co?~?DId+{F}PXE@A zaHcj7HQs%9HrQG+XlU-r8Tb@EyKM%8>XoA$dpPp%y3mCp_?2BPC_1df;ocO};C|d@;)w|1Yu0DO5NSdq#UBLD2!k|rG?4;og_%{AFiDDYa}?izX!t1Bpu_#P zygt=-iWg%6`2wT$>zX^AwHp(Yn6bjwqfG6!boIZsit?yfX~k;71}j`~Jme8=tg@Q^ zkJ3>xJ{NzUyRSYhn1_wep(#Wwv$9gM4gq8W{_tx5cKgoJvdcQ|~8S*P^;K{T&6 z+IP{(^VNl$-f#Dg#rnbAs-}cDopg^Noqmy{TLIhym)hVFfB1Z4)LB#DDhvh{X;@F% z9Z~IhX|uEH01X1|AJqPukn70okV&$4Sl&^;@N660wB;Sa=c&Z0e7=DrzAw{JTmAft z4rCBwT$(-D3iaC_UPL!!8X4zYYUl`(k;)bCN7`x4EN&3$QA538!wb5|?F`8O7`jd_L#f#p}hC*%L znzOOEw-68_r4|m$kS|8bUG(Vfy=(BEKb{ecC*39&r3I+Zi73J+B_gm~X9L4-g0^Eb z1Y%gN5}jCUl6=I86o6*Eh-rqwdLC>Zb&V`D=+E&yaDK;$_SWZ3QHp1yZ}6x9vC+ANP8LH13UejzzVjdI@Lp{Ihs_nl9`06%&)h zl(}K%;cVq%yNn-fH!)=yKV3Z8g=2U$EJf;Ee`?8)v`{6n;qwv++5oGhy76ZL`aisO zMhcc+Zy4R=&Fm}S;zaFkItO^`puR_|R%tSR7u{Sc7z{JWz<1{*x3`0qe!1e5i>ZN_ zhn$trPE$Ch*#zjVVgX{-7`Ccz8DvkcblJllw#1r8o4Y%W8`Rwt4)VV6pG7I>V}wkd zn?<^GW#(n=6LD#Kva{GcE^bWhu;n|3;%8yMjZ+}l($`J{6*hr&eh?{Rs4zXXphaU( zQDxfs;a)gdyb5JQGiUr#t55oLzk*MI{3UB`F2rt*1I^F0J6`(X2gaZHe(JDIoLYoN z{3}E4IJ$$=@@M09pa7VPEj5L*wsaN#2CB=MAf{s!#m;9qLclYD2QVxn{S$09=Q@)E zM*IAFs$@=|D?hclrVC_xqSywP*}1|$vDkjxBXKal9Vy70vhwg@57XJL^kTJ7qW}cupSRx6YZTXmzxRO(ohx!4)lZkP(L$xeEbZ;6v=RWOZj8SEB{O=2B1?RgggCm%Yn@a`wiK4 zpp!UXKQ4X-nY4yt1zAPeY2HA`#-p7qpAG)S0|3u|;enS4z$gR_*r#7nF1B>|b{21+ zH1uP{pbzm68>-Db50GtpQklV>r3>k=i~N$P_5wZq%GWFlD4o3sjjvBD;y5;j=|co2 zL9iv=sxCnC0EMS7Pa%X|$CL<`FcLdxQ?^8#z$wAcIzRhGw`&V5Ck2~tZmn3;tb|OD zNK0is#uq^hl^d~|){L*Am1K)O5$@BiR~H_WnpK@pgH@qV|37xH1^!b zlp#IX>7z!frh!;HfjD}h(tFCOg_4aTK{09rN=n2a;(B&ggMTmaLLf7R+0YO%dzXZ4 zytKZm?*V3i)n9QC>GPgsR^0#*bgJlX`vKFVj9Xw)3KwhF;~(2}w%HPahC2|X=auAv zxlGNN3`u@l&ev>_f-gFt+@L~WAT`>!v@ zU6-;7S)x-Us_GIxDA9md<%`M)$0z!Dw!ST^C8j%^uHFi9l4KuG?|v~kS;M4dh#L(M>2y*_6=!WPrG@|9apCVWnr#bSh0bOZAz9JMBWI9ah((W!*-_gW@-5d@LNRbaUC2Vx{i+w)adD@y-80}Zure^NZ}uU!!>p?RU{wo(}1M@pnLk~ zdARgfmd?}7e`jVbLCqK8RknU=jY9nTc_i3|s_gXVZch%zR9VdL2w^p5Lv4&?$_OBK zWB?>1va_`Q4cvCa#-K%?oT#DVh6*u7)K_vI&^civ#%p19vIZNn-5p{eO(lzcY3H1$ zP0an|z(^%X=RWosP(y5lQoH%(CemWs3t3&fD+6yJ&2DEgX>%4mPF~z+s#vf-sbM^c zqO72FbpbZpB3&=eM1v#IGcM8gksJ$x9!I&~y8)lupHS_LTso~~`Ja%ceF$n|7rBhR zcGO8$_$jSc_>zkO^m$JT@g{kC$Na3;tWK-dQpcx)&$swgZMLQ8jHJ$l!1)AH?a<#q z;4)u)lG*zRbi~$S<^9TuUc^)L>sm`#aG1js8G+i_0flAr!u#~5BteR-LUDe2G>H=i z%n=lyrpU9vlxsK(6$~D5XKFq8U?-=^Boy9d0hto0+_APl`JPsltm*0W=qRoBO@p&} z*OnETEVv5uXjoOcdfD(YQvQ{qgL&^fip-y7@1XHaFKR0cfO}ia&a0 zaWNegF(VsYae?#UT$6|$ynR_KiLIhjkn?V6Adl3s!5V4X`!Ygzh~e$NvH%L*A1om} zWtCsL8aKQ?;U(9SHOt4X+%j5q1hMX zA{EY4lmv2aM8BYNz5jOEsQulU^g6jhB(&Yc5S>4cB)x|X$A66t%6_t|@WudC#_ z2tbc{l}g6C`GD$jBby$C?o;~3I()E(wJ8rwDc#6d8<7B(ta@QSC)|Hs_tW;)pq-Rx zozsduSv}W@Z=hPEGEDmh-%%+z=N>C{ZF4^N+NFm?Vvep~%kUe5kZ%TI zw&)9wLw=g~=DZmcCTr9bhZk*wJ_+uG^!@oie8$Eg^T}F) z5?C9?B|C3q&XaFbS6nhf&-T2{VTh?|>EU=-Zv6UN?NN@xmjV5Eke8OaT|^o>QWA;n zY5-G@RAH^u!p$RC!=aaE+J=d$h6C`pVIZCX65lp@U@d))4}MNhpykuom{mkx-}tR) zmSyCB4VN&faX^F=i;iv<4uHZ%3>U%bX40)WICBCM+~DrK9=VZ{=K)21?%E78UB_{O z*ER?}@2ZK?Lfl6R458Q37NaEjViqrv?UVYRE;pMADh(23C+Q4~N?l?^Fr$8~Y}f06 zGDsbdj`9-(H|`ONuHw-h6?Iy@wJoPX4yQYa;M~HRU^TjPNSAW!6@idd2L2JJ&P1Tl z1;asm=nYu1bzTf(@UP>(+Ut?yM@0d%)1|s3-z^>%yuD;ycA?pS?Ua|qQS7>~)P*2e zikaFRDO>5V3*7zL(`5_l5L0PtWvt8AhWGdf%Zeau|G)uA%>UFI@06-8m&k zf17@NQu1bAtg3Ea<`@s9Z<2AyWN$j*h5SQR~tsS+~PvjTNW|%+!VQEi#QIVLjqi-Bu0=x2}T;2hm zrk1{)k{C7;9G08t5-+g*cwRy{ruo6tv~WvB4coi=N8Pi4SjNx<+|zhvtm+P5hHz4LXuvBA zi?drxGrI<>h3s;;OtrlOtf3oODw>4&?Z2Pi@tZ=Nfuy|(xuX(y%pBtZeUdW?)DN0y z>Ru3&SkR#Axn{znUJkvF_aC=e)wEy@2CU8NDXNH%%Ex08Qo!8k(=^oV0$H4p`J1G$ z07D(?L_NgNKD+TD?XZBbh`HYH4$G3z;oAPsIlvkBnvEyyIC1C?KP#$;a@?bgg8Nrv zLHLSQYw2rCa2UnyHIpf`Eer<0ABHZ?zSJ7?(u_YUlK7e07D+(>pCwOWGC2KWRM`@x zu^v(y@rgY}sDaD9hc>hH(_KsG&pOpr;W9avPUb>=j*PBS3hzPN(dWR{jGyB&iCGNX zm+Ze#2f<#vB-~Kt4XdL&AF2fe-q|+kbP}JpJ@Tq_ODpf*A>|9eLuK - robot_model - 1.12.9 - - robot_model contains packages for modeling various - aspects of robot information, specified in the Xml Robot - Description Format (URDF). The core package of this stack - is urdf, which parses URDF files, and constructs an - object model (C++) of the robot. - - - Ioan Sucan - Jackie Kay - Chris Lalancette - Shane Loretz - - BSD - - http://ros.org/wiki/robot_model - https://github.com/ros/robot_model - https://github.com/ros/robot_model/issues - - catkin - - liburdfdom-tools - collada_parser - collada_urdf - kdl_parser - resource_retriever - urdf - urdf_parser_plugin - joint_state_publisher - - - - This metapackage will be removed in ROS M. Replace all dependencies on - "robot_model" in your package.xml with dependencies on collada_parser, - collada_urdf, joint_state_publisher, kdl_parser, resource-retriever, urdf, - urdf_parser_plugin, and liburdfdom-tools instead. - - - - - diff --git a/urdf/CHANGELOG.rst b/urdf/CHANGELOG.rst deleted file mode 100644 index 1b659df..0000000 --- a/urdf/CHANGELOG.rst +++ /dev/null @@ -1,106 +0,0 @@ -^^^^^^^^^^^^^^^^^^^^^^^^^^ -Changelog for package urdf -^^^^^^^^^^^^^^^^^^^^^^^^^^ - -1.12.9 (2017-04-26) -------------------- - -1.12.8 (2017-03-27) -------------------- -* Allow supplying NodeHandle for initParam (`#168 `_) - * Allow supplying NodeHandle for initParam using new function. - * fixed missing return statement in previous commit. -* add Chris and Shane as maintainers (`#184 `_) -* fix missed mandatory -std=c++11 flag (`#181 `_) - collada_parser,kdl_parser,urdf: add c++11 flag, - collada_parser: replace typeof with ansi __typeof\_\_ - builded/tested on gentoo - Thanks den4ix for the contribution! -* Contributors: Denis Romanchuk, Piyush Khandelwal, William Woodall - -1.12.7 (2017-01-26) -------------------- - -1.12.6 (2017-01-04) -------------------- -* Addressed gcc6 build error in the urdf package, forward port of `#156 `_ (`#173 `_) -* Now using ``urdf::*ShredPtr`` instead of ``boost::shared_ptr`` (`#144 `_) -* Contributors: Jochen Sprickerhof, William Woodall - -1.12.5 (2016-10-27) -------------------- -* Added urdf_compatibility.h header to define SharedPtr types (`#160 `_) - This provides portability for downstream packages allowing them to use urdfdom 0.3 or 0.4. -* urdf: Explicitly cast shared_ptr to bool in unit test. (`#158 `_) -* Add smart ptr typedefs (`#153 `_) -* Addressed gcc6 build error in urdf which was related to use of the isystem flag (`#157 `_) -* Remove unneeded dependency on libpcrecpp (`#155 `_) -* Contributors: Bence Magyar, Jochen Sprickerhof, Lukas Bulwahn, Maarten de Vries, Robert Haschke - -1.12.4 (2016-08-23) -------------------- - -1.12.3 (2016-06-10) -------------------- - -1.12.2 (2016-04-12) -------------------- - -1.12.1 (2016-04-10) -------------------- - -1.11.8 (2015-09-11) -------------------- -* Removed pcre hack for newer released collada-dom. -* Fixed link order of libpcrecpp. -* Contributors: Kei Okada - -1.11.7 (2015-04-22) -------------------- -* Removed the exporting of Boost and pcre as they are not used in the headers, and added TinyXML because it is. -* Fixed a bug with pcrecpp on Ubuntu > 13.04. -* Contributors: Kei Okada, William Woodall - -1.11.6 (2014-11-30) -------------------- -* Add install for static libs needed for Android cross-compilation -* Contributors: Gary Servin - -1.11.5 (2014-07-24) -------------------- - -1.11.4 (2014-07-07) -------------------- -* moving to new dependency for urdfdom and urdfdom_headers. https://github.com/ros/rosdistro/issues/4633 -* Contributors: Tully Foote - -1.11.3 (2014-06-24) -------------------- -* fix urdfdom_headers find_package re `ros/rosdistro#4633 `_ -* Contributors: Tully Foote - -1.11.2 (2014-03-22) -------------------- - -1.11.1 (2014-03-20) -------------------- - -1.11.0 (2014-02-21) -------------------- -* fix urdf files for test -* fix test at urdf -* Contributors: YoheiKakiuchi - -1.10.18 (2013-12-04) --------------------- -* add DEPENDS for kdl_parser -* Contributors: Ioan Sucan - -1.10.16 (2013-11-18) --------------------- -* check for CATKIN_ENABLE_TESTING -* fix for using collada_parser_plugin - -1.10.15 (2013-08-17) --------------------- -* fix `#30 `_ diff --git a/urdf/CMakeLists.txt b/urdf/CMakeLists.txt deleted file mode 100644 index 6d706bc..0000000 --- a/urdf/CMakeLists.txt +++ /dev/null @@ -1,67 +0,0 @@ -cmake_minimum_required(VERSION 2.8.3) -project(urdf) - -find_package(Boost REQUIRED thread) -find_package(urdfdom REQUIRED) -find_package(urdfdom_headers REQUIRED) -find_package(catkin REQUIRED COMPONENTS - urdf_parser_plugin pluginlib rosconsole_bridge roscpp cmake_modules) - - -find_package(TinyXML REQUIRED) - -# Find version components -if(NOT urdfdom_headers_VERSION) -set(urdfdom_headers_VERSION "0.0.0") -endif() -string(REGEX REPLACE "^([0-9]+).*" "\\1" URDFDOM_HEADERS_MAJOR_VERSION "${urdfdom_headers_VERSION}") -string(REGEX REPLACE "^[0-9]+\\.([0-9]+).*" "\\1" URDFDOM_HEADERS_MINOR_VERSION "${urdfdom_headers_VERSION}") -string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" URDFDOM_HEADERS_REVISION_VERSION "${urdfdom_headers_VERSION}") -set(generated_compat_header "${CATKIN_DEVEL_PREFIX}/include/${PROJECT_NAME}/urdfdom_compatibility.h") -include_directories("${CATKIN_DEVEL_PREFIX}/include") -configure_file(urdfdom_compatibility.h.in "${generated_compat_header}" @ONLY) - -add_compile_options(-std=c++11) - -catkin_package( - LIBRARIES ${PROJECT_NAME} - INCLUDE_DIRS include ${TinyXML_INLCLUDE_DIRS} ${CATKIN_DEVEL_PREFIX}/include - CATKIN_DEPENDS rosconsole_bridge roscpp - DEPENDS urdfdom_headers urdfdom Boost -) -install(FILES ${generated_compat_header} DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}) - -include_directories( - include - ${Boost_INCLUDE_DIR} - ${catkin_INCLUDE_DIRS} - ${urdfdom_INCLUDE_DIRS} - ${urdfdom_headers_INCLUDE_DIRS} - ${TinyXML_INCLUDE_DIRS} - ) - -link_directories(${Boost_LIBRARY_DIRS} ${catkin_LIBRARY_DIRS}) - -add_library(${PROJECT_NAME} src/model.cpp src/rosconsole_bridge.cpp) -target_link_libraries(${PROJECT_NAME} ${TinyXML_LIBRARIES} ${catkin_LIBRARIES} ${urdfdom_LIBRARIES}) - -if(APPLE) - set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS "-undefined dynamic_lookup") -endif(APPLE) - -if(CATKIN_ENABLE_TESTING) - find_package(catkin REQUIRED COMPONENTS rostest) - add_rostest_gtest(test_urdf_parser test/test_robot_model_parser.launch test/test_robot_model_parser.cpp) - target_link_libraries(test_urdf_parser ${PROJECT_NAME}) -endif() - -# no idea how CATKIN does this -# rosbuild_add_rostest(${PROJECT_SOURCE_DIR}/test/test_robot_model_parser.launch) - -install(TARGETS ${PROJECT_NAME} - ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} - LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} - RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}) - -install(DIRECTORY include/${PROJECT_NAME}/ - DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}) diff --git a/urdf/include/urdf/model.h b/urdf/include/urdf/model.h deleted file mode 100644 index e9041d9..0000000 --- a/urdf/include/urdf/model.h +++ /dev/null @@ -1,74 +0,0 @@ -/********************************************************************* -* Software License Agreement (BSD License) -* -* Copyright (c) 2008, Willow Garage, Inc. -* All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above -* copyright notice, this list of conditions and the following -* disclaimer in the documentation and/or other materials provided -* with the distribution. -* * Neither the name of the Willow Garage nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -*********************************************************************/ - -/* Author: Wim Meeussen */ - -#ifndef URDF_MODEL_H -#define URDF_MODEL_H - -#include -#include -#include -#include -#include -#include -#include -#include - -namespace urdf{ - -class Model: public ModelInterface -{ -public: - /// \brief Load Model from TiXMLElement - bool initXml(TiXmlElement *xml); - /// \brief Load Model from TiXMLDocument - bool initXml(TiXmlDocument *xml); - /// \brief Load Model given a filename - bool initFile(const std::string& filename); - /// \brief Load Model given the name of a parameter on the parameter server - bool initParam(const std::string& param); - /// \brief Load Model given the name of a parameter on the parameter server using provided nodehandle - bool initParamWithNodeHandle(const std::string& param, const ros::NodeHandle& nh = ros::NodeHandle()); - /// \brief Load Model from a XML-string - bool initString(const std::string& xmlstring); -}; - -typedef boost::shared_ptr ModelSharedPtr; -typedef boost::shared_ptr ModelConstSharedPtr; -typedef boost::weak_ptr ModelWeakPtr; - -} - -#endif diff --git a/urdf/mainpage.dox b/urdf/mainpage.dox deleted file mode 100644 index 9287a45..0000000 --- a/urdf/mainpage.dox +++ /dev/null @@ -1,159 +0,0 @@ -/** -\mainpage -\htmlinclude manifest.html - -urdf::Model is a class containing robot model data structure. -Every Robot Description File (URDF) can be described as a list of Links (urdf::Model::links_) and Joints (urdf::Model::joints_). -The connection between links(nodes) and joints(edges) should define a tree (i.e. 1 parent link, 0+ children links). -\li Here is an example Robot Description Describing a Parent Link 'P', a Child Link 'C', and a Joint 'J' - @verbatim - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @endverbatim - - - -\section codeapi Code API - -The URDF parser API contains the following methods: - \li Parse and build tree from XML: urdf::Model::initXml - \li Parse and build tree from File: urdf::Model::initFile - \li Parse and build tree from String: urdf::Model::initString - \li Get Root Link: urdf::Model::getRoot - \li Get Link by name urdf::Model::getLink - \li Get all Link's urdf::Model::getLinks - \li Get Joint by name urdf::Model::getJoint - - - - - - - - -*/ diff --git a/urdf/package.xml b/urdf/package.xml deleted file mode 100644 index d2148ce..0000000 --- a/urdf/package.xml +++ /dev/null @@ -1,40 +0,0 @@ - - urdf - 1.12.9 - - This package contains a C++ parser for the Unified Robot Description - Format (URDF), which is an XML format for representing a robot model. - The code API of the parser has been through our review process and will remain - backwards compatible in future releases. - - - Ioan Sucan - Jackie Kay - Chris Lalancette - Shane Loretz - - BSD - - http://ros.org/wiki/urdf - https://github.com/ros/robot_model - https://github.com/ros/robot_model/issues - - catkin - - liburdfdom-dev - liburdfdom-headers-dev - rosconsole_bridge - roscpp - urdf_parser_plugin - pluginlib - cmake_modules - rostest - - liburdfdom-dev - liburdfdom-headers-dev - rosconsole_bridge - roscpp - urdf_parser_plugin - pluginlib - - diff --git a/urdf/src/model.cpp b/urdf/src/model.cpp deleted file mode 100644 index 03cc774..0000000 --- a/urdf/src/model.cpp +++ /dev/null @@ -1,193 +0,0 @@ -/********************************************************************* -* Software License Agreement (BSD License) -* -* Copyright (c) 2008, Willow Garage, Inc. -* All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above -* copyright notice, this list of conditions and the following -* disclaimer in the documentation and/or other materials provided -* with the distribution. -* * Neither the name of the Willow Garage nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -*********************************************************************/ - -/* Author: Wim Meeussen */ - -#include "urdf/model.h" - -/* we include the default parser for plain URDF files; - other parsers are loaded via plugins (if available) */ -#include -#include -#include - -#include -#include -#include - -#include -#include -#include - -namespace urdf{ - -static bool IsColladaData(const std::string& data) -{ - return data.find(" > PARSER_PLUGIN_LOADER; - boost::mutex::scoped_lock _(PARSER_PLUGIN_LOCK); - - try - { - if (!PARSER_PLUGIN_LOADER) - PARSER_PLUGIN_LOADER.reset(new pluginlib::ClassLoader("urdf_parser_plugin", "urdf::URDFParser")); - const std::vector &classes = PARSER_PLUGIN_LOADER->getDeclaredClasses(); - bool found = false; - for (std::size_t i = 0 ; i < classes.size() ; ++i) - if (classes[i].find("urdf/ColladaURDFParser") != std::string::npos) - { - boost::shared_ptr instance = PARSER_PLUGIN_LOADER->createInstance(classes[i]); - if (instance) - model = instance->parse(xml_string); - found = true; - break; - } - if (!found) - ROS_ERROR_STREAM("No URDF parser plugin found for Collada files. Did you install the corresponding package?"); - } - catch(pluginlib::PluginlibException& ex) - { - ROS_ERROR_STREAM("Exception while creating planning plugin loader " << ex.what() << ". Will not parse Collada file."); - } - } - else { - ROS_DEBUG("Parsing robot urdf xml string"); - model = parseURDF(xml_string); - } - - // copy data from model into this object - if (model){ - this->links_ = model->links_; - this->joints_ = model->joints_; - this->materials_ = model->materials_; - this->name_ = model->name_; - this->root_link_ = model->root_link_; - return true; - } - return false; -} - - - -}// namespace diff --git a/urdf/src/rosconsole_bridge.cpp b/urdf/src/rosconsole_bridge.cpp deleted file mode 100644 index b1cd394..0000000 --- a/urdf/src/rosconsole_bridge.cpp +++ /dev/null @@ -1,38 +0,0 @@ -/********************************************************************* -* Software License Agreement (BSD License) -* -* Copyright (c) 2011, Willow Garage, Inc. -* All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above -* copyright notice, this list of conditions and the following -* disclaimer in the documentation and/or other materials provided -* with the distribution. -* * Neither the name of the Willow Garage nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -*********************************************************************/ - -#include - -REGISTER_ROSCONSOLE_BRIDGE; - diff --git a/urdf/test/fail_pr2_desc_bracket.urdf b/urdf/test/fail_pr2_desc_bracket.urdf deleted file mode 100644 index d0caaa8..0000000 --- a/urdf/test/fail_pr2_desc_bracket.urdf +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/urdf/test/fail_pr2_desc_double.urdf b/urdf/test/fail_pr2_desc_double.urdf deleted file mode 100644 index 10bbd4c..0000000 --- a/urdf/test/fail_pr2_desc_double.urdf +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/urdf/test/fail_pr2_desc_double_joint.urdf b/urdf/test/fail_pr2_desc_double_joint.urdf deleted file mode 100644 index 2974a7a..0000000 --- a/urdf/test/fail_pr2_desc_double_joint.urdf +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/urdf/test/fail_pr2_desc_loop.urdf b/urdf/test/fail_pr2_desc_loop.urdf deleted file mode 100644 index ab21024..0000000 --- a/urdf/test/fail_pr2_desc_loop.urdf +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/urdf/test/fail_pr2_desc_no_filename_in_mesh.urdf b/urdf/test/fail_pr2_desc_no_filename_in_mesh.urdf deleted file mode 100644 index 88d75b3..0000000 --- a/urdf/test/fail_pr2_desc_no_filename_in_mesh.urdf +++ /dev/null @@ -1,3377 +0,0 @@ - - - - - - - - - - - - - - - - - - - - true - 1000.0 - - - - - - true - 1000.0 - - - - - - true - 1.0 - 5 - -10.0 - 1.0 - 10.0 - 1200000.0 - diagnostic - battery_state - self_test - - - - - true - 1000.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -75.0676691729 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fl_caster_l_wheel_link_geom - 100.0 - - true - 100.0 - fl_caster_l_wheel_bumper - - - - - - - - - - - - 75.0676691729 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fl_caster_r_wheel_link_geom - 100.0 - - true - 100.0 - fl_caster_r_wheel_bumper - - - - - - - - - - - - -75.0676691729 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -75.0676691729 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fr_caster_l_wheel_link_geom - 100.0 - - true - 100.0 - fr_caster_l_wheel_bumper - - - - - - - - - - - - 75.0676691729 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fr_caster_r_wheel_link_geom - 100.0 - - true - 100.0 - fr_caster_r_wheel_bumper - - - - - - - - - - - - -75.0676691729 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -75.0676691729 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - bl_caster_l_wheel_link_geom - 100.0 - - true - 100.0 - bl_caster_l_wheel_bumper - - - - - - - - - - - - 75.0676691729 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - bl_caster_r_wheel_link_geom - 100.0 - - true - 100.0 - bl_caster_r_wheel_bumper - - - - - - - - - - - - -75.0676691729 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -75.0676691729 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - br_caster_l_wheel_link_geom - 100.0 - - true - 100.0 - br_caster_l_wheel_bumper - - - - - - - - - - - - 75.0676691729 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - br_caster_r_wheel_link_geom - 100.0 - - true - 100.0 - br_caster_r_wheel_bumper - - - - - - - - - - - - -75.0676691729 - - - - base_link_geom - 100.0 - - true - 100.0 - base_bumper - - - - - - - - - - base_link - - true - 100.0 - base_link - base_pose_ground_truth - 0.01 - map - 25.7 25.7 0 - 0 0 0 - - - - true - 100.0 - plug_holder - plug_holder_pose_ground_truth - 0.01 - map - 0 0 0 - 0 0 0 - - - - - 640 - 640 - 1 - 0.0 0.0 0.0 - false - - -135 - 135 - - 0.05 - 10.0 - 0.01 - 20.0 - - 0.005 - true - 20.0 - base_scan - base_laser_link - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - torso_lift_link_geom - 100.0 - - true - 100.0 - torso_lift_bumper - - - - - - - true - 100.0 - torso_lift_link - imu_data - 0.01 - map - 0 0 0 - 0 0 0 - - - - - - -52143.33 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 6.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 6.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - R8G8B8 - 2448 2050 - 45 - 0.1 - 100 - 20.0 - - true - 20.0 - prosilica/cam_info - prosilica/image - prosilica/image_rect - prosilica/cam_info_service - prosilica/poll - hight_def_optical_frame - 1224.5 - 1224.5 - 1025.5 - 2955 - 0 - 0 - 0 - 0 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 640 480 - L8 - 90 - 0.1 - 100 - 20.0 - - true - 20.0 - wide_stereo/left_image - wide_stereo_l_stereo_camera_frame - - - - - - - 640 480 - L8 - 90 - 0.1 - 100 - 20.0 - - true - 20.0 - wide_stereo/right_image - wide_stereo_r_stereo_camera_frame - - - - - - - true - 20.0 - wide_stereo_l_sensor - wide_stereo_r_sensor - wide_stereo/raw_stereo - wide_stereo_optical_frame - 320 - 320 - 240 - 320 - 0 - 0 - 0 - 0 - 0 - -0.09 - - - - - - - - - 640 480 - L8 - 45 - 0.1 - 100 - 20.0 - - true - 20.0 - narrow_stereo/left_image - narrow_stereo_l_stereo_camera_frame - - - - - - - 640 480 - L8 - 45 - 0.1 - 100 - 20.0 - - true - 20.0 - narrow_stereo/right_image - narrow_stereo_r_stereo_camera_frame - - - - - - - true - 20.0 - narrow_stereo_l_sensor - narrow_stereo_r_sensor - narrow_stereo/raw_stereo - narrow_stereo_optical_frame - 320 - 320 - 240 - 772.55 - 0 - 0 - 0 - 0 - 0 - -0.09 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 640 - 640 - 1 - - 0.0 0.0 0.0 - false - - -80 - 80 - - 0.05 - 10.0 - 0.01 - 40.0 - - 0.005 - true - 40.0 - tilt_scan - laser_tilt_link - - - - - - - 6.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - r_shoulder_pan_link_geom - 100.0 - - true - 100.0 - r_shoulder_pan_bumper - - - - - true - - - - - - r_shoulder_lift_link_geom - 100.0 - - true - 100.0 - r_r_shoulder_lift_bumper - - - - true - - - - - - true - - - - - - - r_upper_arm_link_geom - 100.0 - - true - 100.0 - r_upper_arm_bumper - - - - true - - - - r_elbow_flex_link_geom - 100.0 - - true - 100.0 - r_elbow_flex_bumper - - - - - true - - - - - - true - - - - true - - r_forearm_link_geom - 100.0 - - true - 100.0 - r_forearm_bumper - - - - - - true - - r_wrist_flex_link_geom - 100.0 - - true - 100.0 - r_wrist_flex_bumper - - - - - - - - - true - - r_wrist_roll_link_geom - 100.0 - - true - 100.0 - r_wrist_roll_bumper - - - - - - - - - - 63.16 - - - - 61.89 - - - - 32.65 - - - - -36.17 - - - - 90.5142857143 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - r_gripper_l_finger_link_geom - 100.0 - - true - 100.0 - r_gripper_l_finger_bumper - - - - - - - - - - - - - - - - true - - r_gripper_r_finger_link_geom - 100.0 - - true - 100.0 - r_gripper_r_finger_bumper - - - - - - - - - - - - - - - true - - - r_gripper_l_finger_tip_link_geom - 100.0 - - true - 100.0 - r_gripper_l_finger_tip_bumper - - - - - - - - - - - - - - - true - - - r_gripper_r_finger_tip_link_geom - 100.0 - - true - 100.0 - r_gripper_r_finger_tip_bumper - - - - - - - - - - - true - 100.0 - r_gripper_l_finger_link - r_gripper_l_finger_pose_ground_truth - 0.0 - map - - - - true - 100.0 - r_gripper_l_finger_link - r_gripper_l_finger_force_ground_truth - r_gripper_l_finger_link - - - - - - - - - - - - - true - - r_gripper_palm_link_geom - 100.0 - - true - 100.0 - r_gripper_palm_bumper - - - - - - true - - - - r_gripper_l_finger_tip_link - r_gripper_float_link - r_gripper_l_finger_tip_link - 0 1 0 - 0 0 0 - - - r_gripper_r_finger_tip_link - r_gripper_float_link - r_gripper_r_finger_tip_link - 0 1 0 - 0 0 0 - - - - - true - 100.0 - r_gripper_palm_link - r_gripper_palm_pose_ground_truth - 0 0 0 - 0 0 0 - 0.0 - map - - - - true - 100.0 - r_gripper_tool_frame - r_gripper_tool_frame_pose_ground_truth - 0 0 0 - 0 0 0 - 0.0 - /map - - - - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - l_shoulder_pan_link_geom - 100.0 - - true - 100.0 - l_shoulder_pan_bumper - - - - - true - - - - - - l_shoulder_lift_link_geom - 100.0 - - true - 100.0 - l_r_shoulder_lift_bumper - - - - true - - - - - - true - - - - - - - l_upper_arm_link_geom - 100.0 - - true - 100.0 - l_upper_arm_bumper - - - - true - - - - l_elbow_flex_link_geom - 100.0 - - true - 100.0 - l_elbow_flex_bumper - - - - - true - - - - - - true - - - - true - - l_forearm_link_geom - 100.0 - - true - 100.0 - l_forearm_bumper - - - - - - true - - l_wrist_flex_link_geom - 100.0 - - true - 100.0 - l_wrist_flex_bumper - - - - - - - - - true - - l_wrist_roll_link_geom - 100.0 - - true - 100.0 - l_wrist_roll_bumper - - - - - - - - - - 63.16 - - - - 61.89 - - - - 32.65 - - - - -36.17 - - - - 90.5142857143 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - l_gripper_l_finger_link_geom - 100.0 - - true - 100.0 - l_gripper_l_finger_bumper - - - - - - - - - - - - - - - - true - - l_gripper_r_finger_link_geom - 100.0 - - true - 100.0 - l_gripper_r_finger_bumper - - - - - - - - - - - - - - - true - - - l_gripper_l_finger_tip_link_geom - 100.0 - - true - 100.0 - l_gripper_l_finger_tip_bumper - - - - - - - - - - - - - - - true - - - l_gripper_r_finger_tip_link_geom - 100.0 - - true - 100.0 - l_gripper_r_finger_tip_bumper - - - - - - - - - - - true - 100.0 - l_gripper_l_finger_link - l_gripper_l_finger_pose_ground_truth - 0.0 - map - - - - true - 100.0 - l_gripper_l_finger_link - l_gripper_l_finger_force_ground_truth - l_gripper_l_finger_link - - - - - - - - - - - - - true - - l_gripper_palm_link_geom - 100.0 - - true - 100.0 - l_gripper_palm_bumper - - - - - - true - - - - l_gripper_l_finger_tip_link - l_gripper_float_link - l_gripper_l_finger_tip_link - 0 1 0 - 0 0 0 - - - l_gripper_r_finger_tip_link - l_gripper_float_link - l_gripper_r_finger_tip_link - 0 1 0 - 0 0 0 - - - - - true - 100.0 - l_gripper_palm_link - l_gripper_palm_pose_ground_truth - 0 0 0 - 0 0 0 - 0.0 - map - - - - true - 100.0 - l_gripper_tool_frame - l_gripper_tool_frame_pose_ground_truth - 0 0 0 - 0 0 0 - 0.0 - /map - - - - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 640 480 - L8 - 90 - 0.1 - 100 - 20.0 - - true - 20.0 - l_forearm_cam/image - l_forearm_cam_frame - - - - true - PR2/Blue - - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 640 480 - L8 - 90 - 0.1 - 100 - 20.0 - - true - 20.0 - r_forearm_cam/image - r_forearm_cam_frame - - - - true - PR2/Blue - - true - - - - - - - diff --git a/urdf/test/fail_pr2_desc_no_joint2.urdf b/urdf/test/fail_pr2_desc_no_joint2.urdf deleted file mode 100644 index be1fdbc..0000000 --- a/urdf/test/fail_pr2_desc_no_joint2.urdf +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/urdf/test/fail_pr2_desc_parent_itself.urdf b/urdf/test/fail_pr2_desc_parent_itself.urdf deleted file mode 100644 index 5eda24d..0000000 --- a/urdf/test/fail_pr2_desc_parent_itself.urdf +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/urdf/test/fail_pr2_desc_two_trees.urdf b/urdf/test/fail_pr2_desc_two_trees.urdf deleted file mode 100644 index 415e74c..0000000 --- a/urdf/test/fail_pr2_desc_two_trees.urdf +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/urdf/test/fail_three_links_one_joint.urdf b/urdf/test/fail_three_links_one_joint.urdf deleted file mode 100644 index a6766a9..0000000 --- a/urdf/test/fail_three_links_one_joint.urdf +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/urdf/test/no_visual.urdf b/urdf/test/no_visual.urdf deleted file mode 100644 index 0554bac..0000000 --- a/urdf/test/no_visual.urdf +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/urdf/test/one_link.urdf b/urdf/test/one_link.urdf deleted file mode 100644 index 4d99c96..0000000 --- a/urdf/test/one_link.urdf +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/urdf/test/pr2_desc.urdf b/urdf/test/pr2_desc.urdf deleted file mode 100644 index cbc5c77..0000000 --- a/urdf/test/pr2_desc.urdf +++ /dev/null @@ -1,3238 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - true - 1000.0 - - - - true - 1.0 - 5 - - power_state - 10.0 - 87.78 - -474 - 525 - 15.52 - 16.41 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 640 - 640 - 1 - 0.0 0.0 0.0 - false - -129.998394137 - 129.998394137 - 0.08 - 10.0 - 0.01 - 20 - - 0.005 - true - 20 - base_scan - base_laser_link - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -79.2380952381 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 79.2380952381 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -79.2380952381 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -79.2380952381 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 79.2380952381 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -79.2380952381 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -79.2380952381 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 79.2380952381 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -79.2380952381 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -79.2380952381 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 79.2380952381 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -79.2380952381 - - - - - - true - - base_link_geom - 100.0 - - true - 100.0 - base_bumper - - - - - - - true - 100.0 - base_link - base_pose_ground_truth - 0.01 - map - 25.7 25.7 0 - - 0 0 0 - - - base_footprint - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - torso_lift_link_geom - 100.0 - - true - 100.0 - torso_lift_bumper - - - - - - - - -52143.33 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - 100.0 - imu_link - torso_lift_imu/data - 2.89e-08 - 0 0 0 - 0 0 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 6.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 6.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - R8G8B8 - 2448 2050 - 45 - 0.1 - 100 - 20.0 - - true - 20.0 - /prosilica/image_raw - /prosilica/camera_info - /prosilica/request_image - high_def_frame - 1224.5 - 1224.5 - 1025.5 - 2955 - - 0.00000001 - 0.00000001 - 0.00000001 - 0.00000001 - 0.00000001 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 640 480 - BAYER_BGGR8 - 90 - 0.1 - 100 - 25.0 - - true - 25.0 - wide_stereo/left/image_raw - wide_stereo/left/camera_info - wide_stereo_optical_frame - 0 - 320.5 - 320.5 - 240.5 - - - 320 - 0.00000001 - 0.00000001 - 0.00000001 - 0.00000001 - 0.00000001 - - - - true - PR2/Blue - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 640 480 - BAYER_BGGR8 - 90 - 0.1 - 100 - 25.0 - - true - 25.0 - wide_stereo/right/image_raw - wide_stereo/right/camera_info - wide_stereo_optical_frame - 0.09 - 320.5 - 320.5 - 240.5 - - - 320 - 0.00000001 - 0.00000001 - 0.00000001 - 0.00000001 - 0.00000001 - - - - true - PR2/Blue - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 640 480 - L8 - 45 - 0.1 - 100 - 25.0 - - true - 25.0 - narrow_stereo/left/image_raw - narrow_stereo/left/camera_info - narrow_stereo_optical_frame - 0 - 320.5 - 320.5 - 240.5 - - - 772.55 - 0.00000001 - 0.00000001 - 0.00000001 - 0.00000001 - 0.00000001 - - - - true - PR2/Blue - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 640 480 - L8 - 45 - 0.1 - 100 - 25.0 - - true - 25.0 - narrow_stereo/right/image_raw - narrow_stereo/right/camera_info - narrow_stereo_optical_frame - 0.09 - 320.5 - 320.5 - 240.5 - - - 772.55 - 0.00000001 - 0.00000001 - 0.00000001 - 0.00000001 - 0.00000001 - - - - true - PR2/Blue - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - 15.0 - stereo_projection_pattern_high_res_red.png - projector_wg6802418_child_frame - stereo_projection_pattern_filter.png - projector_wg6802418_controller/image - projector_wg6802418_controller/projector - 0.785398163397 - 0.4 - 10 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 640 - 640 - 1 - 0.0 0.0 0.0 - false - -79.9999999086 - 79.9999999086 - 0.08 - 10.0 - 0.01 - 40 - - 0.005 - true - 40 - tilt_scan - laser_tilt_link - - - - - - - - - - -6.05 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - - - - - - - - 32.6525111499 - - - true - - - - - - - true - - - - - - - - - 63.1552452977 - - - - - 61.8948225713 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - - - - - - -90.5142857143 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1.0 - - - true - - - - - - - - - -36.167452007 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - true - - - - - - - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - r_gripper_l_finger_link_geom - 100.0 - - true - 100.0 - r_gripper_l_finger_link - r_gripper_l_finger_bumper - - - - - - - - - - - - - - - - - true - - r_gripper_r_finger_link_geom - 100.0 - - true - r_gripper_r_finger_link - 100.0 - r_gripper_r_finger_bumper - - - - - - - - - - - - - - - - true - false - - r_gripper_l_finger_tip_link_geom - 100.0 - - true - r_gripper_l_finger_tip_link - 100.0 - r_gripper_l_finger_tip_bumper - - - - - - - - - - - - - - - - true - false - - r_gripper_r_finger_tip_link_geom - 100.0 - - true - r_gripper_r_finger_tip_link - 100.0 - r_gripper_r_finger_tip_bumper - - - - - - - - - - - true - 100.0 - r_gripper_l_finger_link - r_gripper_l_finger_pose_ground_truth - 0.0 - base_link - - - - true - 100.0 - r_gripper_l_finger_link - r_gripper_l_finger_force_ground_truth - r_gripper_l_finger_link - - - - - - - - - - - - true - 0.17126 - 7.7562e-05 - 1.49095e-06 - -9.83385e-06 - 0.000197083 - -3.06125e-06 - 0.000181054 - 0.03598 - 0.0173 - -0.00164 - 0.82991 -0.157 0.790675 - 0 -0 0 - true - false - - - true - 0.17389 - 7.73841e-05 - -2.09309e-06 - -8.36228e-06 - 0.000198474 - 2.4611e-06 - 0.00018107 - 0.03576 - -0.01736 - -0.00095 - 0.82991 -0.219 0.790675 - 0 -0 0 - true - false - - - - - r_gripper_r_parallel_link - r_gripper_palm_link - r_gripper_palm_link - 0 0 -1 - 0.2 - 0.05891 -0.031 0 - - - r_gripper_l_parallel_link - r_gripper_palm_link - r_gripper_palm_link - 0 0 1 - 0.2 - 0.05891 0.031 0 - - - r_gripper_r_parallel_link - r_gripper_r_finger_tip_link - r_gripper_r_finger_tip_link - 0 0 1 - -0.018 -0.021 0 - - - r_gripper_l_parallel_link - r_gripper_l_finger_tip_link - r_gripper_l_finger_tip_link - 0 0 1 - -0.018 0.021 0 - - - r_gripper_l_finger_tip_link - r_gripper_r_finger_tip_link - r_gripper_r_finger_tip_link - 0 1 0 - - - - true - - - - true - - - - - - - - - - - - - true - - r_gripper_palm_link_geom - 100.0 - - true - 100.0 - r_gripper_palm_link - r_gripper_palm_bumper - - - - - - - true - 100.0 - r_gripper_palm_link - r_gripper_palm_pose_ground_truth - 0 0 0 - 0 0 0 - 0.0 - map - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - - - - - - - - 32.6525111499 - - - true - - - - - - - true - - - - - - - - - 63.1552452977 - - - - - 61.8948225713 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - - - - - - -90.5142857143 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1.0 - - - true - - - - - - - - - -36.167452007 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - true - - - - - - - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - l_gripper_l_finger_link_geom - 100.0 - - true - 100.0 - l_gripper_l_finger_link - l_gripper_l_finger_bumper - - - - - - - - - - - - - - - - - true - - l_gripper_r_finger_link_geom - 100.0 - - true - l_gripper_r_finger_link - 100.0 - l_gripper_r_finger_bumper - - - - - - - - - - - - - - - - true - false - - l_gripper_l_finger_tip_link_geom - 100.0 - - true - l_gripper_l_finger_tip_link - 100.0 - l_gripper_l_finger_tip_bumper - - - - - - - - - - - - - - - - true - false - - l_gripper_r_finger_tip_link_geom - 100.0 - - true - l_gripper_r_finger_tip_link - 100.0 - l_gripper_r_finger_tip_bumper - - - - - - - - - - - true - 100.0 - l_gripper_l_finger_link - l_gripper_l_finger_pose_ground_truth - 0.0 - base_link - - - - true - 100.0 - l_gripper_l_finger_link - l_gripper_l_finger_force_ground_truth - l_gripper_l_finger_link - - - - - - - - - - - - true - 0.17126 - 7.7562e-05 - 1.49095e-06 - -9.83385e-06 - 0.000197083 - -3.06125e-06 - 0.000181054 - 0.03598 - 0.0173 - -0.00164 - 0.82991 0.219 0.790675 - 0 -0 0 - true - false - - - true - 0.17389 - 7.73841e-05 - -2.09309e-06 - -8.36228e-06 - 0.000198474 - 2.4611e-06 - 0.00018107 - 0.03576 - -0.01736 - -0.00095 - 0.82991 0.157 0.790675 - 0 -0 0 - true - false - - - - - l_gripper_r_parallel_link - l_gripper_palm_link - l_gripper_palm_link - 0 0 -1 - 0.2 - 0.05891 -0.031 0 - - - l_gripper_l_parallel_link - l_gripper_palm_link - l_gripper_palm_link - 0 0 1 - 0.2 - 0.05891 0.031 0 - - - l_gripper_r_parallel_link - l_gripper_r_finger_tip_link - l_gripper_r_finger_tip_link - 0 0 1 - -0.018 -0.021 0 - - - l_gripper_l_parallel_link - l_gripper_l_finger_tip_link - l_gripper_l_finger_tip_link - 0 0 1 - -0.018 0.021 0 - - - l_gripper_l_finger_tip_link - l_gripper_r_finger_tip_link - l_gripper_r_finger_tip_link - 0 1 0 - - - - true - - - - true - - - - - - - - - - - - - true - - l_gripper_palm_link_geom - 100.0 - - true - 100.0 - l_gripper_palm_link - l_gripper_palm_bumper - - - - - - - true - 100.0 - l_gripper_palm_link - l_gripper_palm_pose_ground_truth - 0 0 0 - 0 0 0 - 0.0 - map - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 640 480 - L8 - 90 - 0.1 - 100 - 25.0 - - true - 25.0 - l_forearm_cam/image_raw - l_forearm_cam/camera_info - l_forearm_cam_optical_frame - 0 - 320.5 - 320.5 - 240.5 - - - 320 - 0.00000001 - 0.00000001 - 0.00000001 - 0.00000001 - 0.00000001 - - - - true - PR2/Blue - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 640 480 - L8 - 90 - 0.1 - 100 - 25.0 - - true - 25.0 - r_forearm_cam/image_raw - r_forearm_cam/camera_info - r_forearm_cam_optical_frame - 0 - 320.5 - 320.5 - 240.5 - - - 320 - 0.00000001 - 0.00000001 - 0.00000001 - 0.00000001 - 0.00000001 - - - - true - PR2/Blue - - diff --git a/urdf/test/pr2_desc_no_joint.urdf b/urdf/test/pr2_desc_no_joint.urdf deleted file mode 100644 index 11fc4fd..0000000 --- a/urdf/test/pr2_desc_no_joint.urdf +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/urdf/test/singularity.urdf b/urdf/test/singularity.urdf deleted file mode 100644 index ed91f44..0000000 --- a/urdf/test/singularity.urdf +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/urdf/test/test_robot.urdf b/urdf/test/test_robot.urdf deleted file mode 100644 index 731e1f3..0000000 --- a/urdf/test/test_robot.urdf +++ /dev/null @@ -1,425 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/urdf/test/test_robot_model_parser.cpp b/urdf/test/test_robot_model_parser.cpp deleted file mode 100644 index a730eb5..0000000 --- a/urdf/test/test_robot_model_parser.cpp +++ /dev/null @@ -1,172 +0,0 @@ -/********************************************************************* -* Software License Agreement (BSD License) -* -* Copyright (c) 2008, Willow Garage, Inc. -* All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above -* copyright notice, this list of conditions and the following -* disclaimer in the documentation and/or other materials provided -* with the distribution. -* * Neither the name of the Willow Garage nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -*********************************************************************/ - -/* Author: Wim Meeussen */ - -#include -#include -#include "urdf/model.h" - -// Including ros, just to be able to call ros::init(), to remove unwanted -// args from command-line. -#include - -using namespace urdf; - -int g_argc; -char** g_argv; - -class TestParser : public testing::Test -{ -public: - - bool checkModel(urdf::Model & robot) - { - // get root link - urdf::LinkConstSharedPtr root_link = robot.getRoot(); - if (!root_link) - { - ROS_ERROR("no root link %s", robot.getName().c_str()); - return false; - } - - // go through entire tree - return this->traverse_tree(root_link); - - }; - -protected: - /// constructor - // num_links starts at 1 because traverse_tree doesn't count the root node - TestParser() : num_joints(0), num_links(1) - { - } - - - /// Destructor - ~TestParser() - { - } - - bool traverse_tree(urdf::LinkConstSharedPtr link,int level = 0) - { - ROS_INFO("Traversing tree at level %d, link size %lu", level, link->child_links.size()); - level+=2; - bool retval = true; - for (std::vector::const_iterator child = link->child_links.begin(); child != link->child_links.end(); child++) - { - ++num_links; - if (*child && (*child)->parent_joint) - { - ++num_joints; - // check rpy - double roll,pitch,yaw; - (*child)->parent_joint->parent_to_joint_origin_transform.rotation.getRPY(roll,pitch,yaw); - - if (std::isnan(roll) || std::isnan(pitch) || std::isnan(yaw)) - { - ROS_ERROR("getRPY() returned nan!"); - return false; - } - // recurse down the tree - retval &= this->traverse_tree(*child,level); - } - else - { - ROS_ERROR("root link: %s has a null child!",link->name.c_str()); - return false; - } - } - // no more children - return retval; - }; - - size_t num_joints; - size_t num_links; -}; - - - - -TEST_F(TestParser, test) -{ - ASSERT_GE(g_argc, 3); - std::string folder = std::string(g_argv[1]) + "/test/"; - ROS_INFO("Folder %s",folder.c_str()); - std::string file = std::string(g_argv[2]); - bool expect_success = (file.substr(0,5) != "fail_"); - urdf::Model robot; - ROS_INFO("Parsing file %s, expecting %d",(folder + file).c_str(), expect_success); - if (!expect_success) { - ASSERT_FALSE(robot.initFile(folder + file)); - return; - } - - ASSERT_EQ(g_argc, 7); - std::string robot_name = std::string(g_argv[3]); - std::string root_name = std::string(g_argv[4]); - size_t expected_num_joints = atoi(g_argv[5]); - size_t expected_num_links = atoi(g_argv[6]); - - ASSERT_TRUE(robot.initFile(folder + file)); - - EXPECT_EQ(robot.getName(), robot_name); - urdf::LinkConstSharedPtr root = robot.getRoot(); - ASSERT_TRUE(static_cast(root)); - EXPECT_EQ(root->name, root_name); - - ASSERT_TRUE(checkModel(robot)); - EXPECT_EQ(num_joints, expected_num_joints); - EXPECT_EQ(num_links, expected_num_links); - EXPECT_EQ(robot.joints_.size(), expected_num_joints); - EXPECT_EQ(robot.links_.size(), expected_num_links); - - // test reading from parameter server - ASSERT_TRUE(robot.initParam("robot_description")); - ASSERT_FALSE(robot.initParam("robot_description_wim")); - SUCCEED(); -} - - - - -int main(int argc, char** argv) -{ - // Calling ros::init(), just to remove unwanted args from command-line. - ros::init(argc, argv, "test", ros::init_options::AnonymousName); - testing::InitGoogleTest(&argc, argv); - g_argc = argc; - g_argv = argv; - return RUN_ALL_TESTS(); -} diff --git a/urdf/test/test_robot_model_parser.launch b/urdf/test/test_robot_model_parser.launch deleted file mode 100644 index 9953b55..0000000 --- a/urdf/test/test_robot_model_parser.launch +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/urdf/test/two_links_one_joint.urdf b/urdf/test/two_links_one_joint.urdf deleted file mode 100644 index a4cf276..0000000 --- a/urdf/test/two_links_one_joint.urdf +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/urdf/urdfdom_compatibility.h.in b/urdf/urdfdom_compatibility.h.in deleted file mode 100644 index b96e186..0000000 --- a/urdf/urdfdom_compatibility.h.in +++ /dev/null @@ -1,94 +0,0 @@ -/********************************************************************* -* Software License Agreement (BSD License) -* -* Copyright (c) 2016, CITEC, Bielefeld University -* All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above -* copyright notice, this list of conditions and the following -* disclaimer in the documentation and/or other materials provided -* with the distribution. -* * Neither the name of the Willow Garage nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -*********************************************************************/ - -/* Robert Haschke */ - -#ifndef URDF_URDFDOM_COMPATIBILITY_ -#define URDF_URDFDOM_COMPATIBILITY_ - -#define URDFDOM_HEADERS_MAJOR_VERSION @URDFDOM_HEADERS_MAJOR_VERSION@ -#define URDFDOM_HEADERS_MINOR_VERSION @URDFDOM_HEADERS_MINOR_VERSION@ -#define URDFDOM_HEADERS_REVISION_VERSION @URDFDOM_HEADERS_REVISION_VERSION@ - -// for Wily: maintain compatibility between urdfdom 0.3 and 0.4 (definining SharedPtr types) -#if URDFDOM_HEADERS_MAJOR_VERSION == 0 && URDFDOM_HEADERS_MINOR_VERSION <= 4 - -#include -#include - -#define URDF_TYPEDEF_CLASS_POINTER(Class) \ -class Class; \ -typedef boost::shared_ptr Class##SharedPtr; \ -typedef boost::shared_ptr Class##ConstSharedPtr; \ -typedef boost::weak_ptr Class##WeakPtr - -namespace urdf { -URDF_TYPEDEF_CLASS_POINTER(Box); -URDF_TYPEDEF_CLASS_POINTER(Collision); -URDF_TYPEDEF_CLASS_POINTER(Cylinder); -URDF_TYPEDEF_CLASS_POINTER(Geometry); -URDF_TYPEDEF_CLASS_POINTER(Inertial); - -URDF_TYPEDEF_CLASS_POINTER(Joint); -URDF_TYPEDEF_CLASS_POINTER(JointCalibration); -URDF_TYPEDEF_CLASS_POINTER(JointDynamics); -URDF_TYPEDEF_CLASS_POINTER(JointLimits); -URDF_TYPEDEF_CLASS_POINTER(JointMimic); -URDF_TYPEDEF_CLASS_POINTER(JointSafety); - -URDF_TYPEDEF_CLASS_POINTER(Link); -URDF_TYPEDEF_CLASS_POINTER(Material); -URDF_TYPEDEF_CLASS_POINTER(Mesh); -URDF_TYPEDEF_CLASS_POINTER(Sphere); -URDF_TYPEDEF_CLASS_POINTER(Visual); - -URDF_TYPEDEF_CLASS_POINTER(ModelInterface); -} - -#undef URDF_TYPEDEF_CLASS_POINTER - -#else // urdfdom <= 0.4 - -#include -#include - -namespace urdf { -typedef std::shared_ptr ModelInterfaceSharedPtr; -typedef std::shared_ptr ModelInterfaceConstSharedPtr; -typedef std::weak_ptr ModelInterfaceWeakPtr; -} - -#endif // urdfdom > 0.4 - -#endif // URDF_URDFDOM_COMPATIBILITY_ diff --git a/urdf_parser_plugin/CHANGELOG.rst b/urdf_parser_plugin/CHANGELOG.rst deleted file mode 100644 index f962c3b..0000000 --- a/urdf_parser_plugin/CHANGELOG.rst +++ /dev/null @@ -1,76 +0,0 @@ -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Changelog for package urdf_parser_plugin -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -1.12.9 (2017-04-26) -------------------- - -1.12.8 (2017-03-27) -------------------- -* add Chris and Shane as maintainers (`#184 `_) -* Contributors: William Woodall - -1.12.7 (2017-01-26) -------------------- - -1.12.6 (2017-01-04) -------------------- -* Now using ``urdf::*ShredPtr`` instead of ``boost::shared_ptr`` (`#144 `_) -* Contributors: Jochen Sprickerhof - -1.12.5 (2016-10-27) -------------------- - -1.12.4 (2016-08-23) -------------------- - -1.12.3 (2016-06-10) -------------------- - -1.12.2 (2016-04-12) -------------------- - -1.12.1 (2016-04-10) -------------------- - -1.11.8 (2015-09-11) -------------------- - -1.11.7 (2015-04-22) -------------------- - -1.11.6 (2014-11-30) -------------------- - -1.11.5 (2014-07-24) -------------------- - -1.11.4 (2014-07-07) -------------------- -* moving to new dependency for urdfdom and urdfdom_headers. https://github.com/ros/rosdistro/issues/4633 -* Contributors: Tully Foote - -1.11.3 (2014-06-24) -------------------- -* update usage of urdfdom_headers for indigo/trusty -* Contributors: William Woodall - -1.11.2 (2014-03-22) -------------------- - -1.11.1 (2014-03-20) -------------------- - -1.11.0 (2014-02-21) -------------------- - -1.10.18 (2013-12-04) --------------------- -* add DEPENDS for kdl_parser -* Contributors: Ioan Sucan - -1.10.16 (2013-11-18) --------------------- - -1.10.15 (2013-08-17) --------------------- diff --git a/urdf_parser_plugin/CMakeLists.txt b/urdf_parser_plugin/CMakeLists.txt deleted file mode 100644 index 75c6854..0000000 --- a/urdf_parser_plugin/CMakeLists.txt +++ /dev/null @@ -1,13 +0,0 @@ -cmake_minimum_required(VERSION 2.8.3) -project(urdf_parser_plugin) - -find_package(catkin REQUIRED) -find_package(urdfdom_headers REQUIRED) - -catkin_package( - INCLUDE_DIRS include - DEPENDS urdfdom_headers -) - -install(DIRECTORY include/${PROJECT_NAME}/ - DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}) diff --git a/urdf_parser_plugin/include/urdf_parser_plugin/parser.h b/urdf_parser_plugin/include/urdf_parser_plugin/parser.h deleted file mode 100644 index 92de411..0000000 --- a/urdf_parser_plugin/include/urdf_parser_plugin/parser.h +++ /dev/null @@ -1,62 +0,0 @@ -/********************************************************************* -* Software License Agreement (BSD License) -* -* Copyright (c) 2013, Willow Garage, Inc. -* All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above -* copyright notice, this list of conditions and the following -* disclaimer in the documentation and/or other materials provided -* with the distribution. -* * Neither the name of the Willow Garage nor the names of its -* contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -* POSSIBILITY OF SUCH DAMAGE. -*********************************************************************/ - -/* Author: Ioan Sucan */ - -#ifndef URDF_PARSER_PLUGIN_H -#define URDF_PARSER_PLUGIN_H - -#include - -namespace urdf -{ - -/** \brief Base class for URDF parsers */ -class URDFParser -{ -public: - URDFParser() - { - } - virtual ~URDFParser() - { - } - - /// \brief Load Model from string - virtual urdf::ModelInterfaceSharedPtr parse(const std::string &xml_string) = 0; -}; - -} - -#endif diff --git a/urdf_parser_plugin/package.xml b/urdf_parser_plugin/package.xml deleted file mode 100644 index c200fb2..0000000 --- a/urdf_parser_plugin/package.xml +++ /dev/null @@ -1,23 +0,0 @@ - - urdf_parser_plugin - 1.12.9 - - This package contains a C++ base class for URDF parsers. - - - Ioan Sucan - Jackie Kay - Chris Lalancette - Shane Loretz - - BSD - - http://ros.org/wiki/urdf - https://github.com/ros/robot_model - https://github.com/ros/robot_model/issues - - catkin - liburdfdom-headers-dev - liburdfdom-headers-dev - -