From fda0042ba08aa7f1f7ce434f2e0c831bc09baaa8 Mon Sep 17 00:00:00 2001 From: Nicolas Predella Date: Wed, 29 Jul 2026 16:28:23 +0300 Subject: [PATCH] transforms --- core/nodeslicer/nodes/mesh.py | 46 ++++++- core/nodeslicer/nodes/path.py | 6 +- core/nodeslicer/nodes/preview.py | 172 +++++++++++++++++++------- core/slice.py | 58 ++++++++- infra/blender/blender_mesh_capture.py | 10 ++ nodes.blend | Bin 2190221 -> 2291666 bytes tests/test_transform.py | 111 ++++++++++++++++- 7 files changed, 351 insertions(+), 52 deletions(-) diff --git a/core/nodeslicer/nodes/mesh.py b/core/nodeslicer/nodes/mesh.py index 97e1155..2937b13 100644 --- a/core/nodeslicer/nodes/mesh.py +++ b/core/nodeslicer/nodes/mesh.py @@ -415,11 +415,13 @@ def _copy_slicing_object(so: SlicingObject) -> SlicingObject: new_so.object_type = so.object_type new_so.modifiers = so.modifiers.copy() if so.modifiers else [] new_so.extruder = so.extruder + new_so.transforms = [dict(t) for t in getattr(so, "transforms", [])] return new_so def _copy_slicing_collection(sc: SlicingCollection) -> SlicingCollection: new_sc = SlicingCollection([], sc.name) new_sc.objects = [_copy_slicing_object(so) for so in sc.objects] + new_sc.transforms = [dict(t) for t in getattr(sc, "transforms", [])] return new_sc def _copy_slicing_group(sg: SlicingGroup) -> SlicingGroup: @@ -428,6 +430,7 @@ def _copy_slicing_group(sg: SlicingGroup) -> SlicingGroup: new_sg.wipe_tower_xy = sg.wipe_tower_xy.copy() new_sg.wipe_tower_rotation_deg = sg.wipe_tower_rotation_deg new_sg.object_offset = sg.object_offset.copy() + new_sg.transforms = [dict(t) for t in getattr(sg, "transforms", [])] return new_sg @@ -488,6 +491,16 @@ class SLICENODE_TransformGeometry(SliceNode): if any(t != 0.0 for t in t_arr): copied_data.offset(t_arr) + t_rec = { + "type": "transform_geometry", + "translation": (float(t_arr[0]), float(t_arr[1]), float(t_arr[2])), + "rotation": (float(r_arr[0]), float(r_arr[1]), float(r_arr[2])), + "scale": (float(s_arr[0]), float(s_arr[1]), float(s_arr[2])), + } + if not hasattr(copied_data, "transforms"): + copied_data.transforms = [] + copied_data.transforms.append(t_rec) + return copied_data @@ -501,8 +514,6 @@ class SLICENODE_DropGeometry(SliceNode): self.add_output("SLICESOCK_Mesh", "Mesh") def evaluate_output(self, socket_name: str, **_kwargs) -> SlicingCollection | SlicingGroup | None: - - z=self.resolve('Z') if socket_name != "Mesh": return None @@ -510,8 +521,31 @@ class SLICENODE_DropGeometry(SliceNode): if not mesh_data: return None - assert mesh_data.min_z is not None - min_z = round(mesh_data.min_z , 6) - mesh_data.offset(np.array([0.0, 0.0, z-min_z], dtype=np.float64)) + z = self.resolve('Z') + if z is None: + z = 0.0 - return mesh_data + assert mesh_data.min_z is not None + min_z = round(mesh_data.min_z, 6) + offset_z = float(z - min_z) + + if isinstance(mesh_data, SlicingGroup): + copied_data = _copy_slicing_group(mesh_data) + else: + copied_data = _copy_slicing_collection(mesh_data) + + copied_data.offset(np.array([0.0, 0.0, offset_z], dtype=np.float64)) + + drop_rec = { + "type": "drop_geometry", + "target_z": float(z), + "offset_z": float(offset_z), + "translation": (0.0, 0.0, float(offset_z)), + "rotation": (0.0, 0.0, 0.0), + "scale": (1.0, 1.0, 1.0), + } + if not hasattr(copied_data, "transforms"): + copied_data.transforms = [] + copied_data.transforms.append(drop_rec) + + return copied_data diff --git a/core/nodeslicer/nodes/path.py b/core/nodeslicer/nodes/path.py index 1c044d5..421dd6b 100644 --- a/core/nodeslicer/nodes/path.py +++ b/core/nodeslicer/nodes/path.py @@ -29,7 +29,10 @@ class SLICENODE_GetPaths(SliceNode): from ....infra.blender.blender_mesh_capture import capture_mesh_edges so, e_rates, f_rates, extra_attrs_data = capture_mesh_edges(obj, e_attr_name, f_attr_name, extra_attrs) - return SlicePaths(so, extrusion_rate=e_rates, feedrate=f_rates, extra_attributes=extra_attrs_data) + sp = SlicePaths(so, extrusion_rate=e_rates, feedrate=f_rates, extra_attributes=extra_attrs_data) + if hasattr(obj, "transforms"): + sp.transforms = list(getattr(obj, "transforms", [])) + return sp @register_class class SLICENODE_SliceShells(SliceNode): @@ -104,6 +107,7 @@ class SLICENODE_SliceShells(SliceNode): slices.layer_height = layer_height if fl_height is not None: slices.first_layer_height = fl_height + slices.transforms = list(getattr(coll, "transforms", [])) or list(getattr(merged_object, "transforms", [])) if len(z_values) > 0 and fl_height is not None and layer_height > 0: mult = fl_height / layer_height diff --git a/core/nodeslicer/nodes/preview.py b/core/nodeslicer/nodes/preview.py index 158c58d..ef2296e 100644 --- a/core/nodeslicer/nodes/preview.py +++ b/core/nodeslicer/nodes/preview.py @@ -53,6 +53,10 @@ class SLICENODE_GcodeToMesh(ExecSliceNode): def segment_length_3d(p1, p2) -> float: return ((p2[0]-p1[0])**2 + (p2[1]-p1[1])**2 + (p2[2]-p1[2])**2)**0.5 + prep_translation = [0.0, 0.0, 0.0] + prep_rotation = [0.0, 0.0, 0.0] + prep_scale = [1.0, 1.0, 1.0] + for line in gcode.splitlines(): # Parse metadata from comments if ';' in line: @@ -72,6 +76,21 @@ class SLICENODE_GcodeToMesh(ExecSliceNode): elif comment.startswith("DEFAULT_LAYER_WIDTH="): try: default_layer_width = float(comment.split('=')[1]) except ValueError: pass + elif comment.startswith("PREPARATION_TOTAL_TRANSLATION="): + try: + vals = [float(v) for v in comment.split('=')[1].split(',')] + if len(vals) >= 3: prep_translation = vals[:3] + except ValueError: pass + elif comment.startswith("PREPARATION_TOTAL_ROTATION="): + try: + vals = [float(v) for v in comment.split('=')[1].split(',')] + if len(vals) >= 3: prep_rotation = vals[:3] + except ValueError: pass + elif comment.startswith("PREPARATION_TOTAL_SCALE="): + try: + vals = [float(v) for v in comment.split('=')[1].split(',')] + if len(vals) >= 3: prep_scale = vals[:3] + except ValueError: pass line_no_comment = line.split(';')[0].strip() if not line_no_comment: continue @@ -97,7 +116,7 @@ class SLICENODE_GcodeToMesh(ExecSliceNode): new_e = params.get('E', last_e) show = False - if self.show_e_0: show = True + if getattr(self, "show_e_0", False): show = True if cmd == 'G1' and new_e > 0: show = True if show: @@ -140,16 +159,19 @@ class SLICENODE_GcodeToMesh(ExecSliceNode): if not vertices: return + import sys + real_bpy = sys.modules.get('bpy', bpy) + # Create or find "Debug" mesh object - if mesh_name in bpy.data.objects: - obj = bpy.data.objects[mesh_name] + if mesh_name in real_bpy.data.objects: + obj = real_bpy.data.objects[mesh_name] mesh = obj.data mesh.clear_geometry() else: - mesh = bpy.data.meshes.new(mesh_name) - obj = bpy.data.objects.new(mesh_name, mesh) - assert bpy.context.collection - bpy.context.collection.objects.link(obj) + mesh = real_bpy.data.meshes.new(mesh_name) + obj = real_bpy.data.objects.new(mesh_name, mesh) + assert real_bpy.context.collection + real_bpy.context.collection.objects.link(obj) mesh.from_pydata(vertices, edges, []) @@ -164,60 +186,126 @@ class SLICENODE_GcodeToMesh(ExecSliceNode): # Assign Geometry Nodes nodegroup for preview ng_name = "Nonplanar Slicing Preview" - if ng_name not in bpy.data.node_groups: + if ng_name not in real_bpy.data.node_groups: # Try to load it from nodes.blend in the addon root addon_dir = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(__file__)))) blend_path = os.path.join(addon_dir, "nodes.blend") if os.path.exists(blend_path): try: - with bpy.data.libraries.load(blend_path) as (data_from, data_to): + with real_bpy.data.libraries.load(blend_path) as (data_from, data_to): if ng_name in data_from.node_groups: data_to.node_groups = [ng_name] except Exception as e: if operator: operator.report({'WARNING'}, f"Failed to load preview node group: {e}") - if ng_name in bpy.data.node_groups: - ng = bpy.data.node_groups[ng_name] - # Check if already assigned - mod = None - for m in obj.modifiers: - if m.type == 'NODES' and m.node_group == ng: # type: ignore - mod = m - break - - if not mod: - mod = obj.modifiers.new(name="Preview", type='NODES') # type: ignore - mod.node_group = ng + # Find or assign Preview modifier + mod = None + ng = real_bpy.data.node_groups.get(ng_name) if hasattr(real_bpy.data, "node_groups") and hasattr(real_bpy.data.node_groups, "get") else None - # Helper to find socket identifiers by name, falling back to specified key - def find_socket_key(node_group, name: str, fallback: str) -> str: - if hasattr(node_group, "interface") and node_group.interface: + if hasattr(obj, "modifiers"): + if "Preview" in obj.modifiers: + mod = obj.modifiers["Preview"] + else: + for m in obj.modifiers: + if getattr(m, "type", "") == 'NODES': + if ng and getattr(m, "node_group", None) == ng: + mod = m + break + elif mod is None: + mod = m + + if not mod and ng: + mod = obj.modifiers.new(name="Preview", type='NODES') # type: ignore + mod.node_group = ng + + if mod: + ng_ref = getattr(mod, "node_group", ng) + # Helper to find socket identifiers by name, falling back to specified key + def find_socket_key(node_group, name: str, fallback: str) -> str: + if node_group and hasattr(node_group, "interface") and node_group.interface: + try: + items = getattr(node_group.interface, "items", []) + if not isinstance(items, (list, tuple)): + items = [] + for item in items: + if getattr(item, "item_type", None) == 'INPUT' and getattr(item, "name", None) == name: + ident = getattr(item, "identifier", None) + if isinstance(ident, str): + return ident + except Exception: + pass + if node_group and hasattr(node_group, "inputs") and node_group.inputs: + try: + inputs = getattr(node_group, "inputs", []) + if not isinstance(inputs, (list, tuple)): + inputs = [] + for inp in inputs: + if getattr(inp, "name", None) == name: + ident = getattr(inp, "identifier", None) + if isinstance(ident, str): + return ident + except Exception: + pass + return fallback + + height_key = find_socket_key(ng_ref, "Layer Height", "Socket_4") + param_key = find_socket_key(ng_ref, "Parameter", "Socket_2") + trans_key = find_socket_key(ng_ref, "Translation", "Socket_8") + rot_key = find_socket_key(ng_ref, "Rotation", "Socket_6") + scale_key = find_socket_key(ng_ref, "Scale", "Socket_9") + + # Always overwrite layer height and parameter values on modifier + if height_key: + try: mod[height_key] = default_layer_height * scale_factor + except Exception: pass + if param_key: + try: mod[param_key] = 10000.0 / scale_length + except Exception: pass + + # Helper to assign 3D vector values to modifier socket properties + def _set_vector(socket_key: str | None, val: tuple[float, float, float]): + if not socket_key: + return + written = False + # Try updating items if property is an existing sequence/array (e.g. IDPropertyArray or Vector) + try: + prop = mod.get(socket_key) if hasattr(mod, "get") else None + if prop is not None and hasattr(prop, "__getitem__"): try: - for item in node_group.interface.items: - if getattr(item, "item_type", None) == 'INPUT' and item.name == name: - return item.identifier + prop[0] = float(val[0]) + prop[1] = float(val[1]) + prop[2] = float(val[2]) + written = True except Exception: pass - if hasattr(node_group, "inputs") and node_group.inputs: + except Exception: + pass + + # Try direct tuple/sequence assignment + if not written: + try: + mod[socket_key] = val + written = True + except Exception: try: - for inp in node_group.inputs: - if inp.name == name: - return inp.identifier + mod[socket_key] = [val[0], val[1], val[2]] + written = True except Exception: pass - return fallback - height_key = find_socket_key(ng, "Layer Height", "Socket_4") - width_key = find_socket_key(ng, "Layer Width", "Socket_3") - param_key = find_socket_key(ng, "Parameter", "Socket_2") + # Always overwrite Translation (Socket_8), Rotation (Socket_6), Scale (Socket_9) + translation_val = (float(prep_translation[0]) * 0.001, float(prep_translation[1]) * 0.001, float(prep_translation[2]) * 0.001) + rotation_val = (float(prep_rotation[0]), float(prep_rotation[1]), float(prep_rotation[2])) + scale_val = (float(prep_scale[0]), float(prep_scale[1]), float(prep_scale[2])) - # Set the values on the modifier - if height_key: - mod[height_key] = default_layer_height * scale_factor - if width_key: - mod[width_key] = default_layer_width * scale_factor - if param_key: - mod[param_key] = 10000.0 / scale_length + _set_vector(trans_key, translation_val) + _set_vector("Socket_8", translation_val) + + _set_vector(rot_key, rotation_val) + _set_vector("Socket_6", rotation_val) + + _set_vector(scale_key, scale_val) + _set_vector("Socket_9", scale_val) def evaluate(self, operator=None): gcodes = self.resolve_multi_input("Gcode") diff --git a/core/slice.py b/core/slice.py index d4551be..fe6d6aa 100644 --- a/core/slice.py +++ b/core/slice.py @@ -159,8 +159,9 @@ class SlicePaths(list[np.ndarray]): extra_attributes: dict[str, list[np.ndarray]] layer_height: float first_layer_height: float | None + transforms: list[dict] - def __init__(self, paths: list[np.ndarray] = [], groups: list[int] = [], extrusion_rate: list[np.ndarray] | None = None, feedrate: list[np.ndarray] | None = None, extra_attributes: dict[str, list[np.ndarray]] | None = None, layer_height: float = 0.2, first_layer_height: float | None = None): + def __init__(self, paths: list[np.ndarray] = [], groups: list[int] = [], extrusion_rate: list[np.ndarray] | None = None, feedrate: list[np.ndarray] | None = None, extra_attributes: dict[str, list[np.ndarray]] | None = None, layer_height: float = 0.2, first_layer_height: float | None = None, transforms: list[dict] | None = None): super().__init__(paths) self.groups = [] @@ -182,6 +183,7 @@ class SlicePaths(list[np.ndarray]): self.extra_attributes = extra_attributes or {} self.layer_height = layer_height self.first_layer_height = first_layer_height + self.transforms = list(transforms) if transforms is not None else [] def copy_with(self, paths: list[np.ndarray], groups: list[int] | None = None, extrusion_rate: list[np.ndarray] | None = None, feedrate: list[np.ndarray] | None = None, extra_attributes: dict[str, list[np.ndarray]] | None = None) -> SlicePaths: """Returns a new SlicePaths object with new paths/groups, preserving all metadata and instance attributes.""" @@ -306,8 +308,13 @@ class SlicePaths(list[np.ndarray]): base = primary_source if primary_source is not None else paths_list[0] merged = base.copy_with([]) + merged_transforms = [] for sp in paths_list: merged.extend_with_groups(sp) + for t in getattr(sp, "transforms", []): + if t not in merged_transforms: + merged_transforms.append(t) + merged.transforms = merged_transforms return merged @@ -337,6 +344,13 @@ class SlicePaths(list[np.ndarray]): for path, ext, feed, extra in items: merged.append_with_group(path, group=g, extrusion_rate=ext, feedrate=feed, extra_attributes=extra) + merged_transforms = [] + for sp in paths_list: + for t in getattr(sp, "transforms", []): + if t not in merged_transforms: + merged_transforms.append(t) + merged.transforms = merged_transforms + return merged def get_infill_mask(self) -> SlicePaths: @@ -1562,6 +1576,7 @@ class Pather(object): self.retraction: float = 0.0 self.retraction_feedrate: float = 0.0 self.lift: float = 0.0 + self.transforms: list[dict] = list(getattr(paths, "transforms", [])) @property def layer_width(self) -> float: @@ -1630,6 +1645,47 @@ class Pather(object): f";DEFAULT_LAYER_WIDTH={self.layer_width:.6f}", f";OFFSET_X={offset_x:.6f}", f";OFFSET_Y={offset_y:.6f}", + ]) + + if hasattr(self, "transforms") and self.transforms: + import json + header.append(f";PREPARATION_TRANSFORMS={json.dumps(self.transforms)}") + + total_tx, total_ty, total_tz = 0.0, 0.0, 0.0 + total_rx, total_ry, total_rz = 0.0, 0.0, 0.0 + total_sx, total_sy, total_sz = 1.0, 1.0, 1.0 + + for i, t in enumerate(self.transforms): + t_type = t.get("type", "transform") + tr = t.get("translation", (0.0, 0.0, 0.0)) + rot = t.get("rotation", (0.0, 0.0, 0.0)) + sc = t.get("scale", (1.0, 1.0, 1.0)) + + total_tx += tr[0] + total_ty += tr[1] + total_tz += tr[2] + total_rx += rot[0] + total_ry += rot[1] + total_rz += rot[2] + total_sx *= sc[0] + total_sy *= sc[1] + total_sz *= sc[2] + + if t_type == "transform_geometry": + header.append(f";TRANSFORM_GEOMETRY_{i}_TRANSLATION={tr[0]:.6f},{tr[1]:.6f},{tr[2]:.6f}") + header.append(f";TRANSFORM_GEOMETRY_{i}_ROTATION={rot[0]:.6f},{rot[1]:.6f},{rot[2]:.6f}") + header.append(f";TRANSFORM_GEOMETRY_{i}_SCALE={sc[0]:.6f},{sc[1]:.6f},{sc[2]:.6f}") + elif t_type == "drop_geometry": + target_z = t.get("target_z", 0.0) + off_z = t.get("offset_z", 0.0) + header.append(f";DROP_GEOMETRY_{i}_TARGET_Z={target_z:.6f}") + header.append(f";DROP_GEOMETRY_{i}_OFFSET_Z={off_z:.6f}") + + header.append(f";PREPARATION_TOTAL_TRANSLATION={total_tx:.6f},{total_ty:.6f},{total_tz:.6f}") + header.append(f";PREPARATION_TOTAL_ROTATION={total_rx:.6f},{total_ry:.6f},{total_rz:.6f}") + header.append(f";PREPARATION_TOTAL_SCALE={total_sx:.6f},{total_sy:.6f},{total_sz:.6f}") + + header.extend([ "G21 ; set units to mm", "G90 ; absolute XYZ positioning", "M83 ; relative extrusion mode", diff --git a/infra/blender/blender_mesh_capture.py b/infra/blender/blender_mesh_capture.py index 9d42b19..538b387 100644 --- a/infra/blender/blender_mesh_capture.py +++ b/infra/blender/blender_mesh_capture.py @@ -102,6 +102,7 @@ class SlicingObject(): self.parent = parent self.attributes = {} self.modifiers = [] + self.transforms = [] assert bpy.context.scene.unit_settings scene_scale: float = bpy.context.scene.unit_settings.scale_length @@ -127,6 +128,11 @@ class SlicingObject(): merged.parent = objects[0].parent merged.object_type = objects[0].object_type merged.extruder = objects[0].extruder + merged.transforms = [] + for o in objects: + for t in getattr(o, "transforms", []): + if t not in merged.transforms: + merged.transforms.append(dict(t)) valid_meshes = [o.mesh for o in objects if o.mesh.size] merged.mesh = np.concatenate(valid_meshes, axis=0) if valid_meshes else np.empty((0, 4, 3)) @@ -257,11 +263,13 @@ class SlicingObject(): class SlicingCollection(): name: str objects: list[SlicingObject] + transforms: list[dict] def __init__(self, objs: list[Object], parent: str): self.objects = [SlicingObject(obj, parent) for obj in objs] self.objects = [o for o in self.objects if o.mesh.size] self.name = parent + self.transforms = [] def _clear_cache(self): for prop in ["all_verts", "unique_verts"]: @@ -386,9 +394,11 @@ class SlicingGroup(): wipe_tower_xy: NDArray = np.array([0, 0]) wipe_tower_rotation_deg: float = 0 object_offset: NDArray = np.array([0.0, 0.0, 0.0]) + transforms: list[dict] def __init__(self, selected_objs: list[Object]) -> None: self.object_offset = np.array([0.0, 0.0, 0.0]) + self.transforms = [] family = [] for obj in selected_objs: diff --git a/nodes.blend b/nodes.blend index a653e7051235542937419325348d75dba04dade8..273a199f93a1781f0dca90cde79f787a790effac 100644 GIT binary patch delta 173751 zcmb@v34Bw<`agW;WNnkSNn5(4TUyFe=#rMbK%16Q%G$7R3IP=m1p=2Vhynq3QAs(% z2!a-O5u}J35ru$?;zn>sFB;sqB1-VOZ~UKU&Pwod+d#s74Ln6GOc@y?;eQ zvY(XdyO0*wt0p~>HDgk;hiB=GbXPCA0L9)SrVOni6{`(IrY9RZ#87HX>eP_b zfs!;^30A#M3{G=;Uq?bpdyTG??56B?8WS_L`qZ&0*~1JnU3hhe&Rn`XC>$K8(3Hj$ zE}Wr_x`+yGpm20~UJZ)wCW#%idMmnUj8$mtW=tvug#&qiYfNc$n*I4;>eqD11awn%s$a4!OQd68sk%$8 zREL;k<-FPA+HB}*Fc+ayEgLn(Ew0OwH9ARCTrJfU_mgTgIy&P$9Se$~L_g4!+N&y& zZq2f0w79%UI-{iT>Xhn1XFuXU>d_(YU73fjc^y2J#|nGuhCheS{8 zQ=K$}lNxZ+VjGbloSbJeS*29$bxwE54=|w0R6`eVu_;-&xY2B}Nj8KoqoY)e(3KLy z0Pw8`Kt&d0cW7}vX-+SY>}U~2A`e+|iJ3u{oYk1COUQ1id&iUwL)g7hYD~_MSb(&+ z-cC%_=#$5*9$Cv%t6E%brrdI=qNGl0NJs&X7HM?E(Ai)v9G09(3x|<8Ev_4rVdfR~ zlzMfolLi?~5^Z@&^NVqSDXnMEL`zvq-OtIgRw97tfX)LYr&do}#&#%gaXn|&5<*-l zsz2zWmLzNSlD1QS$%)*umY(fxext=@O|)usNfRwOqW~w>t5A|YQ8I#8g9>{|y@|5* z#M|JNsVM5z9#cZHlnleukXJ6zy4mEgvA-#`2fCypW=cwz(z^|o8nR0y3iEo83H@mX zeDd@O{tVCs&ZntO7x%lFdMoH3eF(;NIQ&ami zN~EeRA$b~Pl}eQ*Cmrrz=3Ozt3StH3sy``GcUYd#Ss=MR-(UU=$`p(jGolmLdY(5y(jySyRgsQZ7yQ&d9EENf+CDs)2>#w~;~Em$B9y zS4X3{3$i(~vWfwzdK}u}di_Ei>c;HsUf34#glTe+HFw=RL(%YMB*Csv%pIAMRWH-JH6+tOv<9NH7Vz~! zXU^^_b%B`-y8|g5W1*E8`oh@sfw+Ym-E63s*VNU{N0RhaS^-x>5g!Dy!MltsjCV>0U4O)4B?tm6o8B3`hVX_wY zmuh%QMeY$K5me?e?=dT0B{FIaGJ|~GhnmsIm`4oYa7AAebNU7ojDZmnN?q(2bR{&f zlW2`F37v(YwWZEy#!g`3$t{yu9vw$a5I*SM(5QPe%!mz)K|Mr$XY6wmWH((x4s^Lr zM!&Wt!t}|7uGXa$(1oY;#psib7as7J-sF7*LUq^~@s!WY${nh(mW% zA}p5OVHE2?Qfw7W!~~hp2y5BUqzG>7O|TeL!20hLyM-3lzf9nnZA40D9V9bw?N~CA zAwGLcy}Q&%HIaS70Q9Yt5z?ST$fyn&Fbd&71R zk#BKrNkFe)&2LJgq0du0wzxtjBP7ssll6{ zl9ra13U6z2a&n3+%PG@vH* z3SL&YrU&{Pb6Z?_M%Wj3fey3q_mUKAW|9P0_kpW`@?p9 zWEvXbh+r^U6B6JQP@DY~3Tv?ffVM`2H{r>$3L-)w?=-czveSV*0lDxE7+6qUOWo^C z8r7mS^hz~-4K%g`@W zjGl4nr|>*nfinYk&%4qwXpsTmpoNWGOPxCn2PaloO%!`faNO2H(Ds9K0*|tr84NfL z(F=T|F%HAvc8UN7I2vNcIbedj0I7{h8NGCnumOj65eGK&&qHL zVI!Q)3wkA5yR_7u?t_Dl4hwM{-uSS`$&JnlL{vRTjc^z)1w^tRhV_%=z$Db876<@K zW@cs%ywhX4^hO$7m;pDvQPybTtk^4x#VcLV1dcW;0C$pc5CED)agB5?32*uNR9(bU@g{K!X(gs0P;@IDVI~{-7qV75ft3p9h70 zbRiklflH9EN2deqI-wd%yoP;{0plAG#k4axAN@x-g=TIk>i=q{pLa1v|GYGC*U0rJ z;RvaA=V4kFkRX)IY2Zyzp`0AwDFzqt;UFb~ERN(1VO03VmEXX|C>C!3)}$&PnuFuV z`+|nq8? zQ9y?!y2WK%TuH3UI15liEL%*M3sb=L1c6sXHm@fR7s?3BIE*3+QD>|^)UOWn2i?)* zSTuxfoY&kG`jQ0Ke5o3d1GEPCOfW;!GBPqcWM^k*LWwCHVSw{@M?UJ9qCq+ZBSLh^ z6w{rjYIztW0)t5~@i1t&_#=EV{xBu#hz^9V81(AsZA<}(4MGoKf<9;GLn973;)Y(B z(0P2rkQ&(ZyOl)++7+@`Mx&yVEf+9ciBN|;rpU;acf>BB4`9KFETB12l&BKi09Y0> z*U$?T=dKOJtfxa)xLqt`0h+<$2K~ea@s7sL_;fKCq74#&W@n0(yW>Ci2J+{kDAsz!7hjdIMG&mfx!^>C z)ZE1fB5sdiPkP*%Gk3nUaKb;6@ zRSv;vxA*K>Dy=8uxu7HP=ocey+WXJoEW?7f3D;IgiuzOon(Zo!1#aXNOHy}v{9LS< zHS@CGRaJfa^yzaME&PM@!IRaS8s$;l;^f!i?v*RFI2gVMu0IL)79X zwRl-A3@K_G6f(%AG-7c?Eix_aYPwoHtQKd~qK}oet+Y1kEC7N>NzTkvPFP>mCBv0Z z`8G2%4{n^pKlRm6H?GbKEp6NP>+gPhNTzf5$Eme&)6PQMwh(O+HU%S1<>_%v0ntPk zew3HBdqW4j&#Q{+XM$+!cIArf-n8#IVkQ=&r7*`?+xD0$DN5<{e;4)KP9{c5-ZxQLc)MLK zX-k4OkKIGreIVy^+59ecpQ}`MwKMgQiSMI?K<0p*s0 z*Bh|S$17TSi72B2!5FW=&iRA^rKR8?4gF5^9ol$HAXbwytDvJ%=mOqXY(d@}iebY| zw(oQ0>zr=N7W;_QFmDp2^o8=9y|WxvIYt(a$g+H);wVZxzgA9kFC4Mw747?eF-FDDAmIyMCnzX z_o!ZhjZ`1!5M`^%;Zr&ODD*-otte7MNy9?vY)5CU>yuw^Nc*`@swmz3T9kaCBZY^z zd({$eloVQhyb{CV9K0mDbqmQ<_7pG8YUNF$Y~$AoDJkMsasS)nD(>tAQoIAJVo?*ICFgTg_JQ}-&ZQTrI%uihAzP6<@G{~ zGNbE@#q3soNX1ZqB+Ll`Wnn=U2`O{C9Wh!st1`Om<}5qE5T!#jl0v&tR4Qk4iWQ6@ zCvO#{i(k_jYe}I&h$1({s8Z-yn&sw|qVxzR)GsO{`n|l>$IDh;(uFOgP+3%wNqowO z<hp(a%LyxOxP%J1x1lrNY#4-{u$sgopCiE^fARr0yyc2yOytAK?!ro)GA^KGV&880q5s>Zd;4}%`t{Alox{n#RZ3x>bR;YK zbyE(jwM&4ktY!@R`&B8s`lOFTMA~@I;}LO+Zt-?IzmA7rbsnB_@pf25v*flfl&O7+ zU>oppbxuhjel$3zfFsf|rKo?!q+lGk04c=lMHv=+U$!4>!EfR9c3vtisp)yR#Swx| zKK3F69J@d4UlG}obVgPOmyKtYczyT_rN_WSDNezrmUQ%V)1VetKHF6(NdwJFVY8jM zlv`_>m0N1e$`>_mwkZ-?obj9#d8}>}k(6KSu3$z5L%g8nq&hM} zv0YhL-wfUSv|g1H?eTI>E+_Q5=!aPV->ZXEG0_|^=HX&Otyh`Z&hBOnq zGIxk-P_)O(Ik=qA>r~{XW&mbPlPV|LoPkIM+9dk-_IwHyEs*^JZlLc{C=2+R z!j;o(Fl=+(1yIpJ`SN0ls&`(b!lbOe2zJoZwzF9izCbS>++c{evyFF}^5FDGm_^8* z)B7m5xS6$PcagGnS{7W6P@bPrn&RfNo_J@`i!+zl3^5Ja%H)|$Nx@7TwQnIt*?mfR z?Yf!D?U%UKVc^Q*hr!G1ol5GZFEF3H%6FIaRhB)Tq7+`XIS+C1T|l-~IW?m|`Q@^u zFuk_TZWr74dTfSZ)bDKN@a!z*msxi*3qfVutO8~0HCa&0oL)P-NDiXEc}j4$RXIH8 zPVC~6Ib)Pvm%CFeU-Lmz%jlpXQ^gfAlj!n7<-WOVuzLFCHporOF7KnPxSz=RJtp&Rsc1={H}MbX`C)Ab?aQEejrGvmtOw$!X44 z&dzrz2_Dw1{g>Hf_t(ltm(5i=Ei5G-<<>>*pj&y3&ESi6H3A*;n>Q?u_q&yQEPU2KDc(v-zfTtiCgRZ(2S7eGfkt&U+x z^~S!G`S-~ZhARtD3+IUMnU`ynlvl6IR|KryuNkaIuXZS3En~1AnQxQrr1ZA)};tpND_*K}8&zLqj$qB`D~le62EMax-IYF=KgOkQbLman)n#myT%Y8l0g z1+`mA^ulCVkp=wB{28we26x-_ofY>=y)w#sFGf9XmRoj_2F0MG< z8y~NCLf5-1Tikt>i&vMXwDQ`vcsEf0+UsqGn1*cSm(|Rf{j1fqptP(lP~0<sVZOSvN+Rp}14R++kj}N9dC~ z&x=rsVw0tBmF`M!rESIB!(iw2z>Zltyn%VRbHfc1-BqFN*~mI}@9j3(`K_{MH9vCPzUdJhwv~6;tS+wG z%XRTpv+N#|;=OwdTW|$SyyI>z>J%NoJ6&nY#haP(g3a~H&@B(39mAG-rScv|o&hrZ zUPiuuPrX7~8M*)7dgUvXe7LnGwA&Yah4=^$vMp zkh18(`;n}8uwI$`5M#)Es9vdin33lmYEmj5VZ0|F9;#$Lx&?WUJTi3MHb(g$tyYe0 zTbklIqYe!(+Yk7H?a={0wk=(G_p!TB%e~udutk1$TY-9t+p%5UW_XoF+nvg$9rrWn zd|YunbgjJJ%S(>>^2Zm$`rfUrU2yN*4ePtg$AVk6H?l2NS+a8joBu(j+s=Z7w)VP4 zwy|MIX)8+L(u=tj6dkf_LoqJSVJ;N!V1U;vbvv_EgLzLpVnzwkLahZb(c~w}l+4{5 z5Rlr(VFrYisgIW{zwDl4w1ibmm90-@iLE%>7>kC8NoCVh&|#x$=J}^`l<As3zWmpW+^3m)r9|? z4N}s!eFd-_B`NvOvDN3yvwRge0F1vpr>;I8t~kYWK6{yo-TQKb^4cqmyy=x{<>awn{B z^w7ZF+RsWqMIjh}L(z3UMNYXv zIop4zvgq^?kzv_=L&5B%TQ`}rcF+AL`XDx`35*CYyW+#vE(rF&-Xn?BGt!g{U(kS6 zZS|QUlS5KUq8i-w*t)yNkm8<-s^Y z7Ty#9Hhc+DHy;5pf);))?kwB+b(?bEcNLS`xE57M^#6d+&dVS#Ll@u=i~8?*-VpbL zg<$-cSawhOPxO9pF%F-F%f_?Xh0dejK`!zr{eFN?J*l^+I-#6skC$_BIm>SO$LJt- zXSbd&U`lk4tK|2ZYm{R@MNG0F5q#q2^6vY7j#@~v1C9c~Ng_-({037pZybSSxr&b5 zi}SRvV*RZr+_-7{tz))@11N^cCx%g3{acTV;7O=t7Z68BiBV3`7hbw}>E>k|yX4{Z zUS8t#$wyFxU_6fQ?{^RSy*zU7o&g|~s{o`6QPtK%gCy_$FYMm&M|xBUr;hOS{8Pu^ zQyoIk>sE#&L#*R)0W+w>kTI>?YcYek(Bk+RGz+Bh-4?@-Ge}&!*<&-62Mu+_|KP}dlEz%vGp$^co!0J&A8k$~MYJ-J zsll4qCx>*c3FIy_KMWsRB>W*HJz^rZmF`)p zt4?0BF2jH4l4E%#N$}Y@gGfIfF6WAqm!x+YCypCFH5Ghu^7Lmju}_zI;$K1UNPPgBeUp2WsEmZOORBWq~0nb@qpI37D)W+w2FG7VjjM2h6r%V>@T zO1SnXk#2N!5)2SroJ%5AbZZj9XM=P|GQmfabZs)J%CN*KL=>Ryea=&mLb~O6pohjg_eYQGS5-;5}F^S}?#0QU}NyN1n9|vc(@KQkLIIoAW+;P5mJx*RP z>i2>y77yj+ia_DU|u6^ICpcSs1tD{2!F%@vB_xsV>gAJL;M%TDPew2N+> zPufCjEF>q}#|;Sw?c8xE{WY1uw-qfUw-nN+bfE{xtz2G|w50>-t87d)v!}vsyfuDl z3Hz(9B)Sdgi_1{>0=xlUFLbG%j;ogfO)t_1Q^}Jl(i{%DT4Fw(!4Agk>@8ZO&x`Xc zLI89f|NY##UQl)f7g!0OpdHSn*@7pm^94^hsXCF}AbEd!fgVpMPgdBuPDhMxl}r8K z$?IKeiB85mViwY`a1k+W-ErCi;t{ja!&{W>x=VZFsY$TLtMGD0VZtW_H%@Odwu%c< zuWAw8@mktAqnnojA-Kxjlpo|5xcN>0^W3>ch?pwqf?6uS{W6RJ3WsmnoJ(w}A2fs!gqQ50INg{}%*r?Q_Sl_zj4~k< zuguPs31cp0*`Q{lgV!oY2Nf&xb~~9rf;C=+lQRnw?5VlYB~4$KAA7KF z3<;BULyMJx*Elhjc4iUveo=z3!5*e3g=2K5Gu;E?{@5|8=<$X?gJ;edeIUu;pP&~x&G_QK|S+DRK_!VIJ0Z6|7(X} z7M1bLUe4^E>mS=gFpJ7~W*=wv%=Pc>C74BJJhMyWnYk30^Zd@fq?2q$5Jii!^<&YDh)Ng${%vu11t$n%G1NES4+O*tYW$&waUU!R7q%i!-%0 zkq(**-6xT_8g)TT3v(r`OWt1wNzx(z2q)>#{sbsoI{yjK=n$^ma>fZKz;^dg;N+v; zLveB@L=*3!2%-2BARh4W?TX>Y6QH72i(4Ple;PXvgnb$6itMgLB4Pf2MFKHDJWB<)sU5x!g^r{$NCALNX*Ue6h<6<(=9z zV~TvzfN$kYt!>BzNJ1i%o&y-M0r|CWmy$&nl2T$sbh!aDgH*u4g5Ea}2L?FgnlNe^%d z+b(L|LJG(@TG^J<8-DgJI#^z=EFMr1=N`444OS8k7QS(yo}=Ys$u%OEsJCv#;>tc3 zyi%x^q-`(Vq1iTAazFE;M08;E%UmoB| zK;ugU{Fe-J{30B_e{IC~8?TQTnD~C0lTB&~++)kxP<_Hlmev3H5Z8gpWD0mGbUng`H%q9}b&#Z;`Iin3 z+&hAP>F7OXC%YdV=8ED+U7F|DjEq@+*oVobd1_{gXSVSA@Rk0l zqe$n-y26A+W4w@^3xTD_nn?x<*&L#d1BTs8hweG%(T`lDs+8r;3pnBA^}-(AdWzWT z^n*lCr;jGTiuhzc3Ep_0TwI5Jp8vWr@f{J3@j`Cl&^-U!W8;M)jd9`Q;X=1h536f1;m`c)cl4Mig_p-%*ZYrtQ%D#DYkeeLJ+S~i#eoy{1vLD*PDe2?( z;hRC8tX6&@$~MtR3Jb|R`q~WgkecXlWfv>BGWxfym13C}+b@Z4!^B-QvAm0JB8)ar zf{6#0F#JZVO`|U3IFAEyun4&zuMhDutd<>@OY_gO+JcmY*W2gQ*G3SVI$5}Id;~b= zQ_}!k19*ad6tMR2Sx(^U~wio`Gn7Xv7-`U`% z)w9T+GGJknQ046})i) z5wCmb^!G^~{3N9n)(OeEiam`nNU5+k(2?UvF%7jr@-7(*$0$qeE`tq)Fc9AfA2;k# z4JVxDr_>B8k0VY~yp4Pe01>upFl^x;zHrNM995bJ&Z$mrq;x0(@%GNkpMa+K-$G?lwz+Q7d+5B99ems%f zz4F&TN}Y=ajNQL_d-nck9?RaJW1Qm5x0Tn9w1;a_3&J%w>eoDf-9z`+e(+(Z{eK?o zwEy@6Edv%_J^s1t*UqUm?wD7*=4@)sCExa`d9Rmq@1l1CPmXzDsK{L z_AYqhuCG5nVCwdGorQ)El${%LFxUEF-KBH49oTo(*LA(5rX<+giyaN@;C`4$8fyPP zy2O71@g=%(3Q3Rrw^+L~m|0D&Q^`dgah(v^@n#5Idk+;2 z{3}LyzPe&8KlDt$JDzWftQcWFZfwPn7VxyoOA9aYTc@(LAi87>VrxEcjh_z=p@n(P z{|hv=KPs`ToSV&~;z9?d|2kc_KO+eb;yrV6&+KZ62ySEuM$>4_K}m4OYjJTc+)7l7 zO(YYXEh3p*;G`s!#4C4m<-)iM-~X>CB{Kw)@bv#WDS5anqV)1>UShx1lM*|ZMjYp1 zDx%fLrFe%`v@pBt5T)}RQ-pxJ&sr(;_UQ4S7iQ0Tx5*Bu$Q7pYNEGz{5)% zQ$)D^_s0~QUUSl5)2PQ37AkqM&_PSgIpqNob52RZbBfs5EM>oKk;!)|b`FW?DYdp_ z!tWU0%|0me&;eaK{p1B=gfE>@M?)?gVP3Hgh|Y8TK3ccSC^1KE=H+pFES082L37#eerwGEIvoYl;4GEx8JT_Rn8VcGM>Qfc7iO$mDa4Q$zl) z&yxj&KD>|IrDiezfc>O9=_VW$$1zl-zPz=G?{^#kKii9!8u;n?mH=62NctA8-F>)L zT3ID$(WX~O7rOElvXLJ~C8-~Een>L>6^F_1gf!C9*T{M%=!pozIXjbn@fzt$^Ij)+ z;eAW?a&gHwUI$4%99tzvKU(=3=}doklU!y#3C6u#hqCqCEV|+dXn6Vv{A6t#Z4Q#= z#6UmQwV%(xpkJPrfzM#QYZ4c6qo_&GzmVuqIN!6;jr8>eEdR?xP zrE11U_q{{r$ab}n!Y|Z(Ls>J_fSM}iuvc|B)xlNa&H?-8sHU#ZNhK|LpA;sYfR40s zmmGA)@w`lSn(ckWkZyBwL061|`JliFX0a=7Uhiq=V-Nbpzeox__Yx@~oYBh}eG$eD zA-M;%vM&4jpt=lN`yv^gz&YC@oYdD7&|$3kEaqwTF=9zNg?_gmM0y;C;K*@uCv|IO zBMYt&t^JT>`d5Ce4*#_wGKg;Y7a5lHHHf!G#AiG~vS`H#2%cFdB4PR436d!@AT9mX zk+1n2*!G9W@TAiq9*Bsu5IXcZSpW0$m=N;z$KcEK@BD)NriPH4D|+uFD4Os&8Ikl2 zCnF}7ND>{$f$j}ATRfLOJL`>RnThCWQ6 z36Wkj_uu3eBKa4FNf}Y&MjAj3r^tuI5>uIA8K6oR)6uPPNA$LqfW1Hd9K7gJ%P3DsC>6C9sA#C2S{e~|p4JhU=Q`XsnHrw6t5(OSJRk_Eu-rlWs?k7{K7K*s6t+D8}u0P{SA zp9TK;N62ffKad7s82B^kL9>1&4UDTzqx0hM>w2_yriePzelq zzXHS0f+4IjwEYSUo}U>*(r>`hk^pTt(f0Ysqhn>-ZnQwdXg^ z|w3o@*CL58*biS6rm$UW&T ze{uss)qs=8+4R#gaHG#T=EfERTvwmtTw#^VAp_T2<#O-!U1aRh?Xui+{pGUSZ3}IY zVd1fBz|w&Vxev`GjA^+>?m;IJS#`&ua#^&%waWoq2AOfq(*jqM%(+~QYl9A$0#FC0 zF4loR{WRQ`N7WM6fj_&T5*SA6fuTgp8GI^3NDmBKp%NGd8h{~N#~IpGhM)mV_;k!f znGswt>bVO+l_6jR1}{{ChP(t|_*pQ7Rfe_%VDK0iLsBA`_{tCg#F_|zv?hWNGmOlK zKak-V&>~Qf!Dj-7(Fu&<8xt@b2AVNIj39&83?`h3%*1gs`0xzSi~+&}89YhA;4m?U zHc9Bf~DJ1cs3vfT1LfGx$`7PzSKk zn#L>)%m5d%(zy$5Dnl>>7<^C(8p<+(!PtQ_1XYGWCNOxR5*YHbz{D>dA~3LCwq=12 z3p1DxN!h^g70?VP3$~;u{CBhmA43kqagswMB4XKDhJ1hr%4@!}EE-un}mcp-t7` z$_EB(E@Rk{4-B^e%@~3zgR?-++K|UAY$*U2mIBS%!)m+34laaMhTHAHFejfgSZIqK zqoEKOLQn}nE-wTNlM5m+Fa}EzxNsCIfni<|FbuVG1{c$?p(C^(fI4WuxFfXpE9C7S z)k3%3tfx23qF-0R16HQPzf3ab^?a1j+~)QWe9cx1|L)cLs@6J7fmdd z>p2R{$3SP`W+R{tT zObBx>9c@`jvh0IZ+*FNlD&*I=GkXX2dad*X2+_Ox$QHYUw>f#~iYw`kYt1)PcR%>U zAkXxcpRsykbiD<-9CT|x(Dg_)PPRU>kN9X^UwH`i_6LbR`w09woaxl=lr6M&AL(ih z#E6HOD+~L{6~xQ5BnEk_V=x`)mhTa|S_ejT$>G7c!|r2gjBbumQHU}{L8d4{w0h}@ z{_?%Dy^&USf(3z3fo3msKY-{Jp83_WIASE@R z%GF5k*_%Iv+6Kv=k<;|gL2^f{H%1L&;#4sSUJY&sYT>{8XUTU#XAU^!A#!Wfd|Qm% zzZe*2>ts7|aq-ROM>qmtV;|i^@L-fdeV^p%^e74(=8*Y-}=lPk|a(bpH_h#zZ5>*xy%4ljRP6;$clysd4 znZdysfMhRlpS@)EYyf9xs8JokFz1ZS<|aOJytK!aG-bWH>HiqKz2jlnrSV50nfswYN@jbu~&NUCZq7S1T~@~=b5?5IN-qm&J0Qxq>1bfz?) z_Ma%5>FyVEZ)-n{LK6%lBVichG`69%{#`E=R=Elgk5l260;nwQeAFP6JfU#mz1 zO*DO)48JgSGu2F&`=+|NG8{#O&N&pJ>t_BM;>ph2l!e*F(R+=sY?x{A9&-ZSF;~tk z@o**)XkLEp<7KNT>E?^%wR{b@-~0^yZH8>t;oSAo+hOX;0p6Y1{6FXtxm6CahTf@R zu1UBWWUj(SdMEsynmhW*sdVb4a#n&gOohiw2e{>XdG4dv%?3^OVTf4oR0n4fnk>Vx z(=nQ4X&BGjoHIZ#ni;bMj5wN8MVK-cf9@E4xB|F_(Yj4?hPnheRaJ=s5Kz7RQu!Xf z1~kf^h#p$D*KB0>PELaos0XL=|FSOl5Uv7x<=pm50v&KARH$nurQ1ESstM!hsp)4K~gPbwUCwlGz*+|0l zo4N8@SsG3&_L_&$kx!Tx(-9uo%(8Pxg#bR}(eh9DBZH3N>Igx$lFp^baAyXxX%n5d z2)w!ZDmj?y;tXPZoWtAAXB`=?j!u|+5~8=yhuE?#hE78WGo_y4xLP;DreM`okav7B zDshOsOl2;0T$h(Bhnau*bihJ@@JWw+v$ZwiqNOGjN!AH~r6`$}yZizDS;? zL)uLTUMo*$)vd#6@@?`=IXH~N##I80Y;|j0%3#Z09D!|Lsx(4H20M;ZBcyhe29`l| zh85XswR4Vk*bN~LdSDs!(itOraEH8v4i%JI0D^hzzZ`d$aMW>)o7yM+yMK)5IuUMTtaJKHtWq{5Dg2*7alfG zf@cZ~Z70;$0mHQ1>D>l9B7u&Duss5en~;u(oiwU$o5*ldWMkPAzahA`7D zt^?Ll(NM>j3NxK*Ou?kB^g)g*y%n5bA!Xs*GN0Z2d=Op>qd94v3}1%|SRFAM8T6F+ zl3ha`ZH0Os%HN--fgq zh8U8K>L0{yfv-d-y#vc^n<85XJf2hlSl2q3uFgByIRl3T&?|7^5v8=iWuy{AU3NVhzM_*R^rw$`7@==ODR z$00<|u9HWz=LfIU``WbB{*L)FYdA(5Mn%vMUc+B`lA19yu@%kI9336R5}GiKb?*Tk zpeNSD!tdhCvAXkw0p#11AWtn~;SbQl4G?oKT1Vx~qBedwi=0R~x7a?w6j?^)d3q~R+ZYjhKb0h|NwsLZF@oIuBYS@olvYAjR z;zZ23NWSI@L|oxeA|0ZmH^SUHxk3 z(+QhpyBv(Y2=R*_u_eqd2GHOPO%KwnJ_fuJbb$nW8jLguL}=hgn$EmOhOdVybo)K> zf=ZV<=_OH$&hl%^UrIXSUb#Hc&g&g6b!WrBqpHn#5+9q@NWXicj;BGt`x ziPGbun_K11vOA9XTV(cfW>NY$vp33&f2ft-vsJ#HuD%}*Q&B^$Tvn8AT(&hT%b1y= z0B06ukTVCO%*@c^_siEOIE7aX4m#xld1->c->KI9`he_|Ez$deiynmgg7ooy@KYP` zgDS?v5LXdm!vbkNg;qa|H`o9t^K8IQFu3kMk!!DxZ|;8*dr+;BWujdV^-E#p4~g{_D$5xeWSylVWtOdmeS|`vY{z`%%~7O&X?a+dH;Rr&m+J6_z}-NL@H zK=U6mjE7wTJ@B^NqFa!9T{WRc#u?y%3!le_jy^o=9XXZR4o#YW)%>A5Trsw{eTlZ8 zPScF@+y2e_VWn@rWlVuTMXG+%;M+&^OR;C$$~49F&4cnldPLD@S^}4JSo?H!{>9uq z$zOju(#NS2_dcuLXpFIQ-|uW>O2AI)pJ?aUF}07+5{(x&Pd#MK5?JdWlQq)`q<@oE zZ2+o}FnPk$MHyX6ciRX_8wMy-i{=A#_WMYRW?d7=i&nh#PA!v`!Cj^zMy z*nf99f*hv5RRG9OR3UJ~ssOkrdNQ&nlD!$(8_B+m?2BYIBdd`d5CM7E007zT^lvUl zkloJlWYgWZ)+wOVLSgJy|;Tcc(Uq2E4g97+c@YG(Vl zHDO=to1m}ThB0y&k|P*70?AQ~9EGHdkuD_1L~yAeqnTsysaE_)Q*=`ZH8p8^u)wo$ z<9~xmD`$(xr1dsh+Mvm&p5u8&_DQ9hUfO~F$Ka36v&l0~(}T@-Pw}xGUmUWQ#9*>| z9Aa|ED!}Bs@fa*8CaLpq(`1;3KAJWKLZsEdW(ulmrC(2l5V>y}cCUIGbniYlBi%^O zWaLaFFJHvi2k;c$B3ox zEqfOHFkX&{kwspXPyztTr>o+UQ_Omlc%w*4p|lN2$Io6dF-FJS4Q%ec2Rc5aJSnj? z?b+*eZu;rn8hdnMlQ)ARwy?Q>n$h}Z_p&Llux&PHQ^zU2gHr*TFEVm;mT zBFqRoO?wGugu}n)B^(|H{rV8jh{HIL)rVmq?|Y4ruOaycBi}&s2qTXmd6bbyk$gKc z=+$q-pu;>vt;W{xf4;rnC2a}O31R0o(XlT(-@??!+2Y5(jrM<8GaG_R)gOq_ADs@Z z_XmH>?DkVi%&0AUmrVy*3)A5}HXWj?^wNaDn!z6Xq5Fpisp%t}3CCH+Je2@5;W*BO zPq3p^pFl@9onYh%BtK*1XGng*$S;sQ$;gvPeiZ?w>MKYSuG{>Zk3*UOg8u%ori$gu zAU7Sw=K_2yV1Vr5mWYS`c8X7jz|o`9@xABrVnA8+HG;At z3qbkwbi3&g*2GSSvtl~fKkIU3VeRV$F*@cFE$Fza9CUmrYum5)#q=S)_M({SV9<)i z{*|fbw2w@kV-(HIL`Cx(K+#)Ss7UM;m*r|PTK|))#b~`EPs^h9wS2ALzq(Kh17j=H z&hfAA$jFXJc4A~FB)c%O3z8*_EJ3onR_vo}-L)94Oslaqp?Bc@^5kn`qLtS~N9X*} z%Gu&ar;X+mXfaw<{ec+$(P;JN&n$Df?u^Y-Q_2vFSyKRuSIZHLJ(XH@-yBKaz8^+x z|FYNX4p_;mv`hTUdO<&E{=mecG_99*wtrb4>}_fv=SGe@6C4av&oIB3aAG zS|sZt$fVY3VTbvn|Jq(!2wD4&^k2QTYRI;7(@{{)8?ufcRS)Aqar{VsuhPaW@#QnL z0|_?-C-{%*wdx{oX5+?$}0adFp z@Smxl-d8eUTr^Ugye10Dc_Ssr+2TQg%rhJ!CB*fIV)RENMH=iqb@+~_=f?mtY%&6} zVLJfw>=Zuz#3?7K-QoftG{BRtIP)yKN$aKur)gtWt52uF^kl1*W!8ZF8%=={b`0x4 z?F+P%0N0kgv~~2^1={m2MEM@Ax)50&KQcT)_FfU=P-#aC2qX^#3=k3XKJr7P~zrmCKv_q^D9qj2(0YtMU@bRQbyTbE|EJkoIRpHU|%IGO0* z{0?-I?n~FfvFN@3#nWxav@vjY`%pOPer)S7&!)U_e}VJyQw+`nr?lsVbJo|~Q|C{! z*UsJBEiLM)f7>4j=X(ReN!z(NC;xi<&ZQsAx=W)gMZHGHSBk(%Qnh`}?Mq@*-XP$c#r(5bx|se~XM+tE?)FXNADA`g4Y!3}Qlgs&@pH69cis+P)lH`c zxjVEsxa!7xyT^F->;UxY(B+yH3Y)_NxAl29hu7saV$LYR==fe{tpm^a)(4a}WCB*07J4pwr+DCJy==}b- zF2erJy$JgE)-*;=L(Xn3&=+l_ohJjojw;*UuL-!F~NZU(RnBG9d=u`&O`-un%W~7xjrf6P!h2 zBmH_2>7G3=EV}mnaS-YFmjY=`v2k4dNh5W=?z{>9s`WhfokEen$F{ z+{4H{NbZe{_oBTR`-}bm+R0*nF&(f=#6CCuHzRFdta=zf()Pvlq8)#YeQpV3|9Kw! zjuV!rC)lUWhymq^=Mj_)tA3onXg`7iH&XwrH1+Di*ufk2f*8C&%WJ-k&tHGFh5qAh zmZna;ecm+XzwsTNS8R5>do)eYKP`Oo z%f1SNP_Lk1CDSB{KKTtp3e}z>K z*<*6LUOj5#Z7$D)qq;Wkd1|_suIZp(;7g8_8To<{+8R z$UG$Nj4VL1h>?Xz7VAYyeWIft(#S*p+$=q$ROumlZMI%bsa|gSZ^Fv*km_N4SXmyT zn>*-ZQtJFh%|Idy*}+gJeHFXU6|TFpq^)}KsF?Blt`maNdlrn}%r1I0tQaVX-SshZ z{?_h#zJdlPRK57hj0dx0be!ssIu@-39a9E!9sgBm!hQQ>YN^vNipId|IxxhRQO`36 z-gF%D8y$Soiav$zI@`}H%6bO25IP(N$Y#9HCz?rpzShraPEWP;H|U% zX9t~g^^4$#CDfO=+Zw)W!wP){Ew~##9bLXHp~+u#g?@XAdUIxD-hXEQKGw#AH@r-b z+g;}Ut=F92`){w&7pva4?)u~@&xwym#&|#B4)lKJUhw|VTJ#>$@+6w1=x5+51M?HWFryK=^`yPxPb9^R4KYmnijE={b zk46-c6GwEHmc`r^q%}dk!9Vg@eFs9voP=rR-;2}g!F~EY^u97pSGr=q-VH~l_xJ0U z5VyZMpoeAIO?Mv9`~9bxhY5N8v}iSZ55a|iUZ;UNI?+8B<}A6=83`GMD$4hM11L`jBXZxK0puop$H=ot ze$UANAo(LBe?anQM*f84uMw2L{e_{-v>JolSPaU%=I>DEY=1@h%r^{WRev}}e-!1` zMLXn9SuahEg5w8p0Ojfuz~!Dl&W8)#M+`=ob^D27iGP&Vpyu*6|0uly0Qpj9nByO1 zWTXMfL`EhcX=bDe$z(<*A!#v)H2!4@C=2+TwFU_00NtrGs81@KZ_a=Ey`v(jYO!Byn~ZTD20QJFN!3DPA-Fp|-81WieQEPBj1)RkeV{hBO1DhxlFK zGQHu(LGx!AvtbD)2X`Haj%($2^NB#RhXh-5J%J0jURg2l(3 z3~*EDl;4qMz{iHCeqTh!Y)p(sN9$K=&EH_+;DYg(I8M<}wgDa+3JcB{3(@#+j?Mqi ziR{;6H%s|l5tCta0FygP5EHSJ#cW9*FN4^CJX8j;QRBeaxTC_*=C7&3KE788eXQxp z$R0@cW@IlU`!cc*lGTjthvWc`M*@AnzX5N$)H)F55WTmO$AM`aP*-@@XSL0>fzOu5#79OAVllG?u(+`nvG{K{ zjij67HHIJ4qC2!)T6?uQg;p##bk`Ic`GR-jIK%mt>xWN` zGpOrbaIK^E%*vl)w-e>F(cxv!;^dz5KRKMGOQGYhG%SodeCSHyaOmI_505E3)yN&z zE;mG0<$IQ&-${7|cT$>Oy8fF@_q9vUvkgZ7D4!vn&~=}Ir%$)Uh8f%%NTKuA$9nSd zdf|y>qhZPETfY;hCiqms1f5fYpE;z<7iep!{~<&3`JT<#9_HSJ>x~~i=l>~YA@)z( zgOJ_&3pn!Tv+W$YPM1udvnGzA@9i_hY_)&fC%g%sEjUxLXn!T(ve|6I;DAp^>e}7w zi#|x|L<@((FAlM1NN*lFKWbG$?x$tXulqlHCD0=pixm7c_?LfbfDOay6yrGmm!F}t z?GjeoNr>qXHT)YAR@lGt-#C@R^pme3VQn~#ldk+UOu7xD%XiRzgSkK!OYJF$p9RD4%5pd}&BdKMi7D+uL^+*~SX+$!Sk%>r}jq0M7K)aZYkhq>&Yh-!r z3^A%}n){`x_Z&Ll?DjWsggIM09O0MX7Xbd6w+=n!Gh*60M8io&HElV%gnk&Y{`M2(@>J*$!k%L!^0ZM@y&@&Il?E29JaB1 zz^}WG8~FcRs}7HETEw#_u!z>wJ5PJ?xE8-~h`20HB0hWg(5DO3pChQgnv3m#fRm>2jvJoJp4nb(x^ctJLLHbUB9|#|IPU zpgU$YsxSL(w+9QGCps3qq8w9lpe6_5InL&Gpd3uRgdCIc^A7w{ZL({&j*ks*alS(# zi>@Js-2VtF!aAphCX6%jqGwn*}!uo_y8!|2#QIVqhgL+hQ)kr zxw>3Vm-nm7`|0ulb@>2Yu27dN=rUbY$;dS7H?2{9X=YYxbZw3)>7_|0$#6EeUNSK1 z9(0l{<7XZCB`3+Qd*$i7KX}Tyqwl7NNhb@p_B6fwtfQr!-6(Xpnt4* zlKca=JZ0)vJWT~0@-!B3#VU2ViY_ziGDDZos>^5T@;P<+99^z0Dr3l61WVPge3De0 zf}fw_w$}PGdhwWPyN@ktp-JyZb2hgY(qDr8gws3JPAAPJ13%ZZZzM*ozS&&yq2=(6 zYu1q-ZvFy&W8VwT29CO(3j5R>_6_~v^>_rz*Q0Ml>*uW}!K1Ki1Nz3Y*Qkj7Uc(|T zdtF_=PM2@0%QxwAle*kQmv5=dx9IZiqB{D$jq1o~)bfmG23^+}ebsh`NRhjoHPxhR zWI3B#DOu>BMc2qNd`{qBG5YF#p1s#*H+KEoP=_{VzDwG;{zuftXIn@cI3QBz4Ec*bPd%c0|w(qBm-!-eM1O$_R@cHUz?)A|Cv3mt}Vqb8*dlY6I^x<)B zx*@7aj=j3yh11^neG0xkhzd^E&-#)SoQ5r5p@MHcOiHUgj7qz;pe_q^`44sZ54!x9 zy8IViexokGq08@z3a2hd= z%qa95T5*XtsZo8&PbS{^PWww8+d@4Y^FIuf;%sgMr9OekaTU|iv6R@pw1a`eK1ch% zzI<}e21C-}q>}ruLzR3sf>cth2?eSNBP*OWVN``|#d)J^&;OosoO3y6`a}X+x|k|K zjDVz})g!rcDx4#^a}Y?)qNdB1-+akw2c|S@=($ZjB#oHPHZDB;T8}esIK8{W#y8C+ zITrpIm75dl5?E;-9$7f=M&-(3+a zwGplF5uj-8Q-2&b__FB^pqY;<74Ib#|GAN7_Wi}FnX)HEGqKjsUeNW&>bd`qW6PVG z($~o^vA*&TzJ5!WrzgyDNO$WyB;B)t%3s!h`)&nxkPU{F+4m|Y<36gY_bb$h;eDzS zIAZt!tHfj5$<0S@M>l`$V|Dp4UG7kqJLqz!y4*>ZyVT__y4+o?5+iqGmB0}Lq59Gr zPx^Zs&w4y(QnsVp98;!#aQ0glIpkP%JjwCH0+ge6s7sDG^f;l?QL)FIAaW$z*By>r@X?T_ z^-+6P({kK=7RwQRcj~~6KR%#f>_7Uuq|S(w5tTTZy3?wPqIVd_7-jg(Ti1Lc@-dm}l{y~`=bHFt>| z*<-(3aB%*gYnzs1!iuKlcye%_8s$5>m< zG2XVT(lN*Q*e;PHF>&hctL<>KDLI;K%|0)%2=+sBzgYCt6z4Nxj~0Fu;nnL+oF;GS zZ&+#Ku)^neIO}?!pDRu7u8Y3xGVeZIgj72mN|jelfi3IcZ>rMN|IoqzpI~U>$@qN$ z+M~ptY z99df48g{*fUt^CiEyFX)?rVW(2Y*?HGkveNs-)9|%jnhwvroB?4hc6KCaBHlEwya8 z4ZS6u16&EUeab6oSGqGncB;3euTjX%GJaV{$=hPPl3#xs&f{riz|23is9pADtFB98 zS3;NdULSosruchuYA2f8=?&IOZ$&wm49_9&R$+N&UpITsv@52-lDC5R8HV!eI44V( zknG;Bwof97w$k#$DSbY+s(% zxk$rZl@&Xw!;V>aT4ki%oaSKdIjgIj9H-8ibJdLBT|H;ol$nrxqh@${Ml&gSjJ(I;TlQeB&&SCZ!{{EN z_I=5D;>}2v<@gAPWe{7Wb(Q0oJck7iwXX0T$Yyorxly}EQ@W~Y@x!67Ao!EFy>gVE zoYieYVJbqnl$BW5Kv^Ba4vvjL+PkWwF(2PFKQIgmCNXVQ;lh@?Z_Bu5$8hq^-CXs5xzMveuSK zo+Vl#=n7F?8KjnSmE!^?MFAY*S3&U5*Z)H^Y0fB`q4U$F#tj5j(*%;UNL|fve1gL! z6f#uuxa}cgI=MH}QC0&trz1{w=txjWM{R{QNqza$>!w|$EA>g`x&IrMlQnD~QoS_J z?m|d2FU>wIemjU=cZA+tc6NT%K|v@(w8Yez(=NaJ=zjg_GxJeYXH5Eu;91@d)HM#r zeDV>3RycgH@xIOJAM^z4#hP*PjH|PdkC5fr5SUs2*ir>|{7u}ia40>W(4+dgTdISz zrH8YB0rrdD6T8|>65%k)p>Pbqs}FgrhjXl3VKG;3lJ6I@F1&2ooGFnhSI?d{WhyM$ zQ`2Wj>|~&t*sB?sILC`H26sF?iycHF?X74|hy+uMFb*LGx`d#5GpZROk{mC>kOsIc z1E;uLIbvk`)7c6=O8pSN3#j@KN}0dOTQxw8Ah>SbrI??HZ*ULNz0}g@A8EeSX(ktV zN2v$7N=B9rb>+|4N6_aB|!YK=X$ctN5nU{FX-N)*k;qP zsySQdm|Wl;r5@}mHPzYXN}XpIk%lB>TMuqjYC6rNR}+Sgx{55IZbKKCnaEzrZTyML zo@l5G`3r9z>j&~PpK-s+FBaj|EHy8>X=h4X*i{T{nj6coe zIT`Qdx#)>%m*i$#c5HpuQ5|}F>+!=FJB+)p*k|GY z8v4=!9y#Fkj3!a#coK8`JyCp0YiH${G%pa7F82P`JI_m>uG2rNWOOAtsXeBjWccN| za(j1ZDumv;D@_o(~pXYngmXxG}i)zyKv5wYo=W_M;U|Q?dISa)pnqFIPZUh zPrK;iX+`j8GvE;hjXJ=q&yW3Y^yyPCETPAnL60$N+=)IZ!MSPVK|j%BV%F>#b7st% zSrj_i3~Ykol1|ujQk+{pk}9zMND)favx~^-W{^{in06xnGQ+t8THd0-{Vtq!)l3|A zH85kg8R!f{W*b1~{s(jeBj%fd&M{S51xCbzg^%|ENLot{o7x?@!o_qTzjVfaY~{o59oQ8AK={y z{%Y8EmVXm2Ca)Zi5&I}&#dtrS_P14&sj*@(&373Nv#?=;zbD)_3A3L&(ccb!{CDS5 zjr>-y&hYo3qXSyP%LmMMDrS~H49Q%ua#^rb8LXe^_jS!NN~0cyfB*6YbR+>|1ZAS>g+ehGou2>+et$5SiMz*8$rCd@Xa z_HLOXxh|8`(j3Pp--81a{S%BlQoCHDNj#x*mq^6Uya$_Nh*w~|E@%6zeFbI)WGiJ| z$xhaVr!TN$z4=S-Qc2LJdlG%92< zvCU!ReP#RJ67McSl=F%0OLJT?PKk4v;1G7-i21%?tcZPEd8VP`Nj2B)tBLTY))t&^e zOc!lOUh-BO+4te+%l#b(Q$HcJZp<8G3QuyU*;oH=4on(pj9n5Npq^Cwa3(i#oZ|(Y zMjuzeq|r1NR|AEU11;gb303WY9=6IkFBv)@Ts6V`b-oK*{`~X2c}qsOQ*C6gX87ef z-r}${M^@k%&j;GUEDp6rCDkpz&ACwQ;!j(&g(vcXsz0sh8)L1sMKNms)n*rEQ6Y6h zMj29AYKuy&J9mt83mQq`w5So+QUKW#H^2XMxxbS#rx3aU6AUN}8<|s0^l&COv4`UY zyg75y#Bw?3Rpu0~O_($GI6kE}V@{jnqeXL`w8&7C&`FVy!!(E5oW)c&nlynK&c)Fx z;0pT1mHytXI$%r(ZOZHi(CS)qP(W1;VFnXtnN>bPZ(_1)P)@SCIOjRuDS^|D5T1iQ zsxo4sWJIBAWQPy66AQOSMkE9D;Y@Dg6pJF@%^8uV0vtx{07vHd%Ud;JL7FsmR$h4K z62Fg@mUt@PVnJ*UBOGd5Nvd1SDCcTys}`Qvhq~&~=cC(`z1n#{gmH7t{;K8)r5iEM zh{CZc`$--*ZGve9o1}8u&q!*KlnLpk*scnt8!^R*!m*JJN&n5+&}L!*Z_b9wG@Mse zMB&U%LCLUgcM)mu<``0LrmO)`fzhmmbCYns0!T=yIQY$Li2exBw( z1BPATpA(944&m=e2M3g>nzGveFe%C3PiFkwFS ze@i|NZVfsRK0)~t+h_z^2bt*|@rZQ1neFcaRX6zCK<63$RFVFsKWO?~DD47BDS#T7 zuq52xyA7f@`fF)eW5G$6p+-{bn=P>7k4QfCXhZgNK7R&Fce%fd5!nXzUy<{X8~o)k z<_iCE;_U6-aV%`P4P#L9Tqy72oKu|p83nD~3Qk5F4qM=_H6q(di;Gx+>qF7)TH8h4 zZCASUZl@|0Zbosw7*oNLLnyrif|M6S+LH3{29<|+ZD#mah~|8WA^>V17T@9bmnpp~ zQdHZ57Ujz>^9KxjJL#@U#BpkGa>{SQy&nhP4y7FesLva0XZ3B@>brI+8g9ZB4#Ta# zOEm8wB>^%@0Ms7ZtPA=kCl}a9^L#I1LDIKFau(JIeVDv$c7==YM!TJx@F!}lkFT-0|_@lt}N(aVF)I(C>b~Sw{SGA3@|g|41W+ys55pt{m&l^D)=Yq(74EfCpf?6GcNPG;bc}0k^ zQ1z&PD1HY9COpcj$$t#Vk2Ki>SV2&L`Iw!*QUS~U>`yO=4a5DXvmW#Jh5RLfkYS@X zs50o%E*o4bEX;fitwqm+Bw*x|Qk|wU+Mg^tA6@2ST^ry*tPOZlQ>w^o(Gw2hn1h&( z;g5a-`P=;c@CkfN+Fu>y)D#;s@d;Q@VcT}@0{;TCR(=6mE5n(x4k&UQ%xqub4;wio zqQ=ExuCeg=(|+|4nq|-UhX;2wEI=N2x33Qk4121XkBSBH@zE(m*v*7gou zfJ7s)WGIQlNMm4n#!nyXffX6QWkh!@tJF;I!MZ$a6}Gr<&c`;GOoX4pfN$6M_mrux zU+jQvjoBZ?OaF-G(WPr(o*vKn_p17k+yVJc3N)HRqhr=v9Y!Cs7PApz8WErL6Jp{V zv#JA^r69G3@AEq#^8)Jen`Nkc&!> zAuluY=%*0>3YmWjDYS`b8|hQ`Ygu;>z#i!0_5PJGazoK`tWe6qkqVLc6r%V0`xz)^ zdOjBRQ^-6}Dy)%Kl3@MJgfcElOj48uEZ_=kjzYcV{!IGh!-5H8pX$ zwBYc2IGaNlq>R|kWifP-om2y=DwqKRi%#j&G_W>DEzANVRRjs89kLKka;H{}MzSU=rT-aVSZL=*CCi6HtS~T-Obo65rf=LNG?;>R}D79WZC6B zpRo!#v^k7?29c+9gPnZ}RT<^@7>A-te2Y2uHV(}m-->@6^?wZ9gxca3Y%Xkj-#-ji zec(4+sZI<=z3Y#9@daqCUKNapNcmOhPTWKrna{{N$_81vv|!P0wgKT_mQ-JJ6fEB6 zuNIg%#yOkm^LAUeetbp-?1Hj5TWiC!iCbUcw~bCwD>ah2r3azJ&Acr?rI8U!Y8OPW_D?qAyC8kFzslmQ1$Igs z>i1yFJS6LPe8$I!=E)Xap!`+;teO~;#2s9yE3)$qMIW+{8|Xw{^_7U>7+%4-2RJ#M zFG+`tlyp{JwbH$X6>BNS_jwKr9C~&`>P=l$?2Xi5@74;iITY>Y5T1Jb-MZCrRu&_w zB9*hpLaJbJ1Z~h~epApLUcaL}DoO6v;~^B18h@5Kg14nw zG6t^shv;KBBv&DqJXH%E1{AOhes{heTTqi-5C8JF!tcq`@TH(KISX`W8GY?b*Wj^G z{|)x1s;=z@`xPa6vbBjl?;-4Yzj=>)UTh}~&*!D;_Ib&DRCW8DyMjE#&M>PgIN8cC z`wj=WF}{s|4v`PJx%v=okl^^F1C87yf@pW34HUly1C}xO)|xUToC}Zr$3HBTbr4fA z(w{?oJ{IG1HR`F%aWY~$Ofa^7`%nI!UT+S%7-knE^?6azqr2c3qugt1op|;vyAj9H zQ3X~DH~klDP;oRueMgTLrXD-kdvt>n`&>1(4%waR9s}pLLIRRAx(BkS;g|%WcVg4_ zITYUGZW>29-aSQCC-yW{b$ky*&%r+Jb4VYHLwiomvdg6SKFwjK7(#B3?sVgOQT17l z&v7X3pTc6G2WtLdXfR$;pN(4C+Qf0J8k1iKWBuk(s5MQ?D4?!t}H2CxGEvaR%OD&i*7}bLO zQ7sjmYJZO3AUDI68NSc#g~B1NhU8&V1IOnaXyk#Zy-E!*wylZZ=W-6(loIy0MI}rx z_)}2Z4yD&m066rh=I;hll_>008o@exq=sBa#A>XGt z%y5`Rs_%4VPJf50%yE34!=guFzTcxqVc>lFQ1xu6ZFX4_OG5ZZtjN~Bk|wBvc=lo4 z8-;Y)RoEnQV(NdanvcEo#W1 z+EmZZ>XBs20Ea*4T+~@)MPq3!9jS{`lj0J5?>WF~;?O<-dCOFjABmv3wkE>yQ4Whr zL$%(H{(PWl{nF$|Tt%t@LP9RBP||@wet@~scc5n@L+s@$IJL09foDVOk&d2j?Fe%i zEIPr|(>v({x{EtN>L~)m4m9v}*mk0BVe&5axdY2mio1FiK2UUj)v~QVsi@dB!Gom= zsamuH_$~|T6-ls0Iuy{r{o&nF4$ImO3@W>I5MuWz?kRk{M~q^xN4@Fc(GJq6gOu1u z4r;URhv+OEm2zsHy+01;os6TFTe~{hU3y} zPBU>r;u2VOT2US=lyeYKQ8EWQj2;`C0U2l``-6XP6;KU$cXCgZ+r?2j-Z=J26! z&N7FE(hh1WMDj~L@cdFw#BnNOI-l|&JkdWrwZ4La7n=(_rhz65 zN}6csm_5!l@i{*min=&Qz5=Tyw##4Y36n1y_@oiTRP}_L3B?_RL$KYPd=hR4=X$O6=W_j!$#pNhz-Mr4Chz!!_aX&Uvoppp*RlaSM~U7EwCEp ztl#69n%XvnYC#%W$8mrc`5MwEV54q-tshZXL`!Lj+7xkL3BU zbjSO3aSBDv!W^Dn^wmr#<&af%DPQYR5tgkuuAv4ae32G$!bMowC}a9-eh|?*>diO_ z5tr}t92SZpBu*xs9a?sZxjtkaD)}Z^DW?nVWmQ?fbxgtAoEN5k6}-=Th@Hg>MI9LA z-}WJh>_-3oTK8$6&Bm%QVLJZlHwHU4UK{hp1Pxc2mcxoU#rk4}5)MGM;ByEHW6>f7 zL>yP@#eGQ!L@tzaP^k)k2x1qYvwsbR53qCO)GX^KBljHUiXo)V&^~3Ki9VI*_yULG zQ<+1mOM-8&)lUh&hJ$CS$KJ!NB0MK(uA_L7!zG=QC9T8S8TMvj{na=ixoLlC zC~QOp3kSk3a!iUpiggnWLaT^MpyDu^9wkbo2^VRcIp+>Fa5f`ZB1ySOFe$!Aal@J8 z+HP5Pt2AfJaF{KIkU2-W8$^GJ{+4sVk-w!6tL9kC7zT&GjVu)JJ<^`fsr*Ogea}PWXs^>Q~a>qv!D2D6E)l#$?dx zOAAv~^h`<^A8&#BCDa{LG+;(7?$wO_}vc9Aah&p1sI{78NvA z%vcF7?t+UJ^Z*1EL2JDQC`>n3$hyCgC_v^Cvq$d)5C8CiO8w$8|HzLI5t%uFHkX;z zG`PD2haQVAHGSQ3IbB|99b~LkY&G{Un}K=Xz0|C(%P<>ZC$oj}lp@of_(W!3ft|GG zQ3E^+M}3d4-#2bS6A%a`2aCj5B99!NExUZvIk~vD@V_ZtH6OQ;2l==gM zmM?`-gqL)2kt;*GIK*a>RSYQ|mqOf7mj82KYct`h09iLKh2~HcFB9>i`1ogvEPhD4 z5~v9Bq_jUQ&J`E3iIrAqDl&uWOuT$hlfZnK8(~hRbmVFODY# zlb_jK*<$?ECQ?Xi5)n`ORO!n;40$pRw=u#@z-6dlF`61dVHt1=oT#{25T4R3%5<;A ztuD@Pt5y}e5+x${6d7hJHpy~>Uf|(g{D>B@p#4Xvn5lT3P>I)Jho$_d04Z$AVcu+P z7i^}LY9ln#Rp1xkbCh|*Y_m(Zm}F)rkjygLOdVM^$LtqLa<&wQX$~_SQnyN9AD4X4 zb$M;|z$~Xqf0yHX+HB|iCj+kuSjEIc85IhiMI7sW=ITGzL=O z-i$hvc#CYBx96ztFoloB_io-c$48FRSV8ml9Hni`#~Aie;@#OCq~78oBnxvjmI7&u zQix_qiVg!@Ld2R8BF^y%hY-=DfE#Xy8u6nr@>;W}PiW~4g5Cz^q(wqia4~`|c+$l) z)eO%x$7dWolSgUS=pZAl3l1;eUt8%D0L>V)6JrQoXI@Zx*T<^2@r%vgC9w|PbMQ@{ z%b@S?&GSod`uy?t=B8k3;SC?$^6oLkvrW=)?hR(o-WgYPmhW>M<|Ty3ZZH=^d^pa6 zt{Y;k^A$J&ZoJj(>b(Q5T#N&t%us`N7mglgjD=_Bsi`BwR%t^*kvp^ia#p-l zJI2T`{av>){nuDFj70icUviB8fITc)VD^IXf4~R(=WjJ-1E!H<+7-8(K8y51y9aYD zElfJpxr32k2&1xQExoK!xZ79=vD?iu)X3Dw&2d`k+d`f@8!EP-nAa`4(P(L87Q&Pl zaoNY>JduTvUucG{DBnv6Ufci(BkwSM;JvAHTL@n7?^|h))zY_Z2}dV+YvJ(}%0F*0 z{(1KfbFMGW7%(qo+D76|n7_3WQWn5ZgnZyIcxagmt~n!`3av zpwiHxeClVYMvS%{TX!mxKx(<^>nhdHX2=MKQ3=6!uQ~Dmu*odI;@o+k*$#HyOEzIT zoKZ4uNZyC_>-MiYF9ho@S^u+IQ66qa+flQ5xGk#lEko}{&iHP!yb@*P)mM~HwW|Y!)MMsb1K?H!@%6-Sc=>O z_@|LMkPgkU$Yl;iSJzXSgE9XPbHMJ0af_S9AQs!t=6f5quEgHjUWpUX*6Hx%O0yOw zzuM9V_QR;)!b)>4od2+Cwjw{a!TSs?<8f8paFfzGHHLU_^8AOeDT`AuG?;Kn9D^$# z!w)P+Tl-8Hwb3jyze1mhaHhMj?9jcz%l9VaW*a`kTBQ7_cTyzhqNeyh&0$7D==w;p z1%Jd`7tC@3>6^q)!Td*Yyp_`>b~NRPP3!A_DWU4qhHi%QbUqHy3T zEI{O$Qp25ADBFS=hYZxVrQzr*)5a6O8#n^D+2jaDmML=%O43DE2|(|bD&r=#aVzqi z%~D3GEbuMbYW5nMHaipgzhs^P_^gyR4IF$9+haSWyJYM&lEDZkVJqaJEibBz z9tS@>Z|*_kezq1jj9X_JA+HT1vu1S#=PoRUQR~e`p*Y{;Rt-gsYoBThX3aVz-vK|Z zL-NQUI)}U-BJYAIle6aHV5-Pelj(7Rkye6j3uQQ2syoK_f6c6G^&M&>0+U}ere z6kDNegJ1ofdligO{z0!2l!sVtr<>VXbF5^ z&J9Hz5>O4Y?p6vg5Cg}2RWN0;Sq5)^VBW6BY2&;Kdj*`d4Lu;{Ag1aRz1!gdh(MZv z2S3CX_P)qN?^}g7q{qV3CBYjOm0d%0mi# z{2*>PJ*|X{a9bW{u996!C{JD~7BaF}v&%7@u$2*u&_%hBIi}0u=$gdLalG(Nve+W7 z^eqt_{*stEXuZSi(pA_M{fF609gDz(9p=z(f-ZI`R!MF*&}AOqVfO2gU~fn|yn?0= z5^xx~1ydX?=EnWJpPE&b8II0sr==+hbhXK!n#cMi30B`%TLr(l)~qzrcT+vpXGuWv zPe!F`#*tRFA8MjRbIZB7<>92A$gLpJ_oynOxaBlANg{4tjeL`gJojh^&);mctVpr% z_+a#o&Q+la=Xg9HV{zkGJ=JaJZGSweVDQ;NzWNJ4Gv&CBU#jCe{=Um}9M^GX-c-kR zwB2p;aUE+mbnkwA#q=}`-fcb(Z=Qu)U-#@bm)|}7OB}4=+nR9C=jKLy?73i%3Gm2X zv)W2Mt4T5(>LWXHe3$3205|M4doDYOL$h{Ym~COpUh`BOnk_kC_Jmk2SZ!E;g`Zak zdbLvLxj@$gW|d|CRU-=)wD|@fP$Na64qgY1t!OHvOyl`0%-?5D0Q(?55Ik_e9E@YQ ztp~8vjH-MUan5H$d_O)5r4HbuG@Z@>xdYgnt~+QRt0al*+)|1tj6Psa#D^V}dlY02 zV%Cq45_@9rL2M~k??+~R4w|RJ&;sM3N3A(%_JJdN%n`vq@@mdPE2!1;HC3A=+$$TugD_D`IMbP1%ZA}>)Lt_ zZrp43!1jc|4f{EGWv_WI9QSW558A1N_c>*zGBOh;PTfb({Y)!Z%1%b?IoP_-?4hlT zH)LH!7S&{xaVA3;WvVm3MILhUM|)%x+>hN_oO35RH&O35Cm5;cV9kCLU&4D1j_x=6 z8%Y+%!}$aq=KTkIpuc~Imf5k-91MT`o~DPK2f`R0O$vpl@g;92hbi}T9tW3w&t^0- znvFN3^a9a=Mn$zl;f)XK$TCol!@N>#Pb?PcELh-Zwy38JGXFI3wf{iyc{T)x_Vdah zhUa-AtZK*6LPw#T))0MOX?)p_-j-eymi)F$JMZ&w?5aQyrS{14FnYgP)kXj~)NhDK z9>kM(=`ca0Ao)7RIXNQPkxzq{!4sMpWPd_#?eu{H7H$!Po$w&@Xd0H2teU9T%nBtF*R5+tWpesIKskWj*D{6;0!myqfM+c?eh%hN1Hg|h12`GB-yCdMYpDu^Vejfdd!>8N zT4ls)n=yoABi+-x^In~~y_8-UH?4a*;aPNV4KON9W}$OCbr1A%zs_1^i6HFtWl;E5 z>psdUF%IKvwYx`IsszUu6^|F<@5!~gg-NeP7cAG>$GDY$4TOVdO`Cb~oJ)$jPiQzR z#c;xwbdRs5>C}#CPIWSEp!5H>3HV_9KGSYhJeHxYky#6!*97`2&8Ia|b(WEYUn9-a zag3;Ws*&wDuW+YnC2@M^0Wzw3YJ8w`F$2Ox6ErwL1`j&$84;a1m=j^xmCC^SL1`Zj z1p~gy0w;Uwwd(Vlti4sQJ+LX&+x1%Y)(@!qN~QV=oAXz~4bKLu{YBkd^{VA+!^wGO zr`^7IN_+wj1~wupYq(>S^EyRnV2H`pVu;=-UT+ehowpvYel~E5vO`n@RmT}9!eJvj z(5XB~NNrwwQG{@B#t^EOI_)4#nzn;fu%Pq=5mo>m#q=L-hHcdW%Sf^M6IvQLwfc?vCuP5E$4 zvB4gc^F)LOnKe*$f|=$0MoS#ks`IiiF1R)jhUw1-1}nyKjaHpxlo*F@m23U!%N~3n( zy#P~t1p47Kg@Vg*GOhyrp;OK*dYT)8g)Fee za$KdPsXv-B zx_CoLhv>A@l~ayV)n9~WZfU-kFvIs*4q?>P&QaK51WvEum_N3Jhx+3JWab1dPBmQC zB5<83LmVg#4~-9~<(G}W>%7GK65Mog?N|){+cL1d>ZOuaccW+)-^0=SJ66}XC<|1y zgjXj9s=Y62=i7Bj=Sn!OGH`2A9}7-G^$tx3-hrtj0~7JFnwS}x7vZ;NUOj zQRSEbi$VcqetIFz`!f9Z!N9hl^>RsXN*k{-!S~6RAz!VOnCO5?bO6yLW&)<3j#4}^K`T)f!8i=hzR(Pv-LbpzjzD1$$D4=m&c zaV-4iS118CJ@*)Cm4_PVV8($$En*6G|02-eh`$0$dY}?tfi*p_>}c>wJ@G|j|8E2$ zSA@X1nmxY>3~c5384p{8AAS`WMw{r%;EP_GH@&BYILc8y>r0MG+zP}^yGaxQ>rfe- zL%hZ2dkG_aA6XB<8$zTz&okG@t{5Ts^xUCSmWQMN~a2dHdFrYsYyvDD{P`4JGxFt9v$(tJ_FHeR8GE z$q0nLzT9`RS_hP_;)fa1G`@c+b`bUkA}UH+Kt-~bt9GI8a?E}4!-02#4xUs=V#pJF zIw~mkF9fsIMqYZwk{bpi!2%~8#MCTcJof(mjLdp!6RLW1vc;N6^L>WHY%zpxCj=H% z=JhJ{PEG)~E!h{uK+R@sRV8;va( z4-yPpC8Iy!c}Pqr{(wm|HXsDjZpSF6i;$>(^&3BRE_ki7lOS%c%G`YPA-x$xv~ z0=U4%L}XsoL%muWh#H<(Ne}(>))mBRsg9h`mSDWN;AKJy7ZfJZnAW5; zesyQZA$qGoKC6|JUy1i0lk2LSP!fS zXA;R_OSjI;WdLSG1r5)qlS@3G&IOFQO2CoVG_a_kAVvSVy8}2OXqiybg@#Ebv^1I$ z8z!HK35i#0Q}EON;){aVi!CY^KNCnhz;?iqMOdxWIV2ffTq9djV1w5)jZ8_PtOJAe zhDj*UNa%JOj#@H1YAed6NK>sQm&(Mo?$1?c_TP~L$-)hzcKJXD9xPx4jm zI0a6Z+U5D1ww1-9&0&N?=+Xtp=WksR7-yCor$R3o!+A3UvumQ9GsdBKj^}TBAn`Zd zayB?pCZQs+y_^em%XQ_X=a*2*fk7I;d?k~_|HcO9Od>jY&Qged-Lb6bJ{iH!gt9J3 zOe#Xc=l2JyEh&1Ob3y}$$(5k;E+|YYLK)WIw8NwYrGdk!(TgCh3BF#cAY`P%-*n?n z9s|a`0i1ACc~yOD;4bjvgGF^^;QbYW7<7Yx?X!hz1J6*qQ;tiQC_+&e=g8~YJqoWW z_o$0;dXhaY&i4`~_&)JEjhm|B#2W(F2DpK~qh+P1C40vAHw3N=B^}IYWDXL*s`nll>KH1fOF;Bb*rp zCqXNta{mUr{zn|R#QFY=mN5D>h3`SB( zwJn%(5RnHai(=ust2k*u)M{XcXcyh?7!kYyogZsls&tXuQL4xr+NZM2OU#ht`#gt* zVn`1rRq)asfoofP_;scmTGDqpXot!`xa!V8GUR!)p%rpm+&mXIGAX>U;Sk8M-c&Az zTh+YJ(zJ^mj5t8FRpzh3>5{i6<4KGNgeC9d#ekn#==feEszH|F6gnZqT?kPige9?- zt?Bti+Q0&W(7@=Uc@B?Hys4jJk}imZf*>JGnDt1Y6-uB+x124)YD)9Hgc-iiyh&BE zBW$=kFsD={TXU5}?cIag%Q|?Hv!vf_SS9JaUoWc*7tdK;1qT(WD_4}%GLUWKB6>FR zlg7r9v4{}k)xbUVrmmS;o=wbZ<5@Q6k8lX17IYqrQ^)Z4`vT)Ccml%kz(ZHH2*b(& z0UOS~A4?T=u%S}f8@UQ>)KvhdP1G~c72$DSmMq~Qp=Y4@M)kOF#5SU@;qwe9Bhr

^={$!*P*{JJY62))uP^7HG z#CZp?vWZqL%zgx))zl3v0B+y}3o49LQUI?0;#AUlGA=y)RG{lT zn==b|@$rC_=HYJLVkT~(gx)PwhVzSXQg5Zu>|pbz=U7TNumHG$Egp^vW9cKrJW;Ukl40+Z(1J$$OU3$vr| z{+FnDG$umGXi7>YqqWova1wd^-!zpx;4)9)A=DW*9uBOD>Q|iItsE}e>%{mEAz4#Q*!6z{uTK5(}AIqO)6$lA6!=oSs4FJ zpx=lnH(@aj;~XY9OmdjwkXi`ZUKrg(i*B`{G{^LW+BQH*DEaidBH12L5hh*gv!&N9#!|Dwz*#$lXgNbr5qAwzU? zqg@}wF2NEEDM}FAOnWs383=~E%j(pW7XsnTnN~tV3jnd-c4-+(F{d<#8I~Z+_qmb; z6_VGv`GG{pvIs+qBBVFdHifYUqT#Nc<6zVS;a1+w)FY2jc1W_F^US5dq311a1M4lW z5O0-ikXPkD*0A1EDuge#50W?H#F!9c=dS?#we@gpZi9I1 zw)t-c@PBLk-v<9%F#pY9kJ5XozWVKN;yy(E4Z3sHrq)rLf{snC8#V3*69 zMvV?nviK&)VIB%^2YbT0EtvbZcY^KUly`!s!be+zCY-q`*a@bb9PZ%l4`z>0Z}qj7 z0@Jy_k7D)LOtQjk%7ZwoICe|$%3hM>CJ_+?5*DvSl3uwWZeKlBas8@S=r~jDH)B-# zC<-ple!L|((TMhk(VK!jmYo*v05fvI-f-dD!S1l@?V#fma}d9^yiJfri*uOh4@ch) z_UIMkd$(Lkjwf5vkG81Z9%&|XisJ>W;g(g}H`cWoN)ad7A8vm;cy1`o`7#`4wU{*$ z?-nzM9~gcocrJXu6BV`^t!?BTcFHxwwZQR$3TUU(;rd-czqU7R9L6JmfmE*z-VBh4 zDU6i$3@f6HLi>+9;2LhxfRbAou%HYGTMq~ExzN(PYV8PIik4T_7R^xR4k_kOifz0# zH4@Qo7v&H?#Z9*DE%9!p#W|lcEdD8jHh&7Jos$VpNphINZ7gpEd-joAroi4s{n9QV zij=K48CHTa3f^3CELR>Oa!VyVMFzbWC;BaJ2l;GXnTe0cYEMi#^CZ1M#lE0f?%ad} zx9{gl+o~rD(^K!l$wuIfV?(3+QZ0%%Q*)yEqo- zBAv)j>juvMDj3j?rgqBP1K{l*p@|X&UP6kTi6W za@@MqL+`#D0LSzUMb(Gd1i_6QXJp|_e$n7Nd$b#`4`*@{i#i3I#wkr~lcc?8PMZgW zsm|}-C0Ws{8T&>#KF(no=3^#U`v4wY2)|NbO+8omgHp%9+wviv8TBlaUjh1bFc`5PlpAFQ& zYrR6pD6Y$P82s z)K%8v(B@E^*u!`3az;2_%uAs(Z_$Cejn_L12g2LEL&vHbEJSXwn1Bgu+^KvCeOpuS z(;wK33~`PZSdzhMPMGn%GYjS??+JXKW3wZe^sDhHI@f14syy+u+L5jP1d3 z#m_%Q;rs2uxj5)+@gE$-sXf$(6*(DooB(HNDc-7vaSZ+xe5krC=tmlrlX zxGeC!gq}g#g*=1cpPvL5mu5;m#l?$FJA&6$Tbz%W(43;s!$bQ!_XEcg25#s083!Ea z1w!{2kwMCvXele|pjR_ugJ4NrNH3WCLwvO74}m*F({by>(ZQmP;g&R`q^mzIap@bRAD zFgV#4Itx;DU0Rh3)qpq5YM<}}|HGZ{DRb;XF!F<7d?2*KD2RfB!NJ-Nq+ikx=D_lG zZLjwKh|)!1rKfwBhZYuB_^iQNO|}Dud;#Oh7h0<=V=P?K3%~6as_M#Gi86_VF}{xt zhJPMt>=DPe908jT2Ip4C9jw$s3*T!aUedB89efoCnc5?ggNq)Ka?q>AO)cuO%R07% z*{wr->_zlfrBhbn_igZ1Ui>gu2F|fUXZD~%MHt0x`z*&NwB@WE-%AJ^`eJn(ek3@q zBF{-9@y-64QLy<47Ouc?qWK~j8nzcirfH$nZo%VWXBVu5$CvC!rSTlE6#om7QDkw; zXfsWOnML?M%3;hEo;LHM#H<-JVNFe7I8^)-MUQiii?!(Y{S!Sm!Ex|Zr_iuvGfL}& z^}neKwe-^W{d};oHgqCf`AtwQ9@5?xxS>O64}SA1UK2V7$E59?%QhkhsKQ6D2p9JY z{;6YVuSx3#Sz-Fn{@M;FOTpX)&T}qNNP+J?L%1I+hVa}Er3$(5$Kc#Lo72Q1LYpIH zVdThUoehRf%e&TFik*2E!~=Q^@^%A`dM2pi_r(DO#gi99O6-y(Q43 z1C(kp=4f1tEzZ=q7N>^jTAX&kkZc%FvgyW-#c}I4!!)A%EZ<9*t0OP1RcH8&_+iptTC0vc4<>&o_Mur(= ziwuG}2LsYdMrnmq+D%a0;^&zJi*avj2YNv%dZl-mw7NlSSi^RzAmFXKHY0hIfUn4^yu7-~eSeIjs!P4q@=82q_is9!Jf{Ok~Xu^`m1F2Qvs$zh7aw4*N3 zLRexrOxzm8J#jla`vzt>G0S0&LlIin9DJKEN%y62>>1*VN!vn{LdK%f` zG_81=ksD4+1APt5dqR&;7bB?|j_@Au@%)OGzDDq|;bm5YNsqb5)?yutw0_+^L2=f+m+E-VrqF!J`wnpoN|x-@q7y#W_qg!!*h9DF@To z2sL8`(|UzMMv^(xx{y!MKxT@18VMyte**!O6ltfr(~O?sFx!k2IgZaeq)21Yd*eB( zITk=If@Ma~%*JS+0D-kK+`~XJY%V8vD=>`b1g&vVF13VoT^LaxJT8Q*Ql1lT8*oAh z|F^~e?eKql7;pjtIgVPn?F3wY(W_GDsa2^XCx#uXQnOA9tD{zijtuirD?KLkJmcSg zsZ7K9Bg4EZRX!@b99EAGS3~`%@Fv{Vo{WY8Hd4gAXxQh=^wczb#tPr%IV?bWbhsy6 zg6lvq?BsA;dV}j!Sa53Cgda}~cT(#e6;>||(FU%><2;~Gk5I+2G`HyCc=xoA&G9+d zcyf3me0xgx%5D9vU6)(M#gp5~esG6_|do zI2yh^!jbOGX^t1LhRalRI!n)HC`BA$NA{W&S zw)_^p;mOi1ZtUdcw`_0dbbnYc#AKR55JtkdiB&3E?-U(U`JwRZu+LBY8%*3rri3j> zT^RNe|I)%s+lm~s?g4Kf8>%~T&Wwajvl(+{t04e6Nun9y@*FR!E3IJ_IK@+^-N@ol zPk>8mQPoOW9*@nr_*MnH#!(dy2UIK6iuTzC^t5xN4zBxCxTl&27g{%Flre>;Yi%R; z7jK7woW)HV<9LB4c^as6*zdS$Y;`Oq9jk?k*TI%Qg-5Bma6xb*Cm30TBY$bIkY(e+ zDt(#}%fs;kPTji9g*(stNIr~y!FiQmSZMsFPDG$Ho_aN7;uyy#I4mt=B}F_A(;O-j z2aBmF9R0lDogQwhItsdFtL~Z}u7Gb(4BL7=I$K8-q6XSL7;deMnh_pEgFmTPIgS@D zE~C;}AcG{2TlaaU6>P$7VATVc=$6Lz;o@X3ZPY>?ob_P%WMxzVa07de)4nc@8yS@h z(uXs-iBl|HG~=C+WNwXS+}#)m4_M@bERJwmFP&sBI{zMOoqK zWsPmP<#MrM=`fde-s9lv72)p6h*1VD!jQ)C7w33kqm8ImsAwH`U^8S1ju%*ha@x;G z9tTHH4CBFJtI7_Ow(;iTX2#Q;J4wRej{{FZ`0?P=(?|QfgcjdR z2;YAajKYD5;nSO1z`8aTzOLG45}64SC_S&~Sil+s9j*zdjc6ZbUhKuHV-8Z9UWxEM z1Q&JeB%AUd8)>d1rWgm5V;^pzp5qAmw%IA;~#KPbt2aFfHkV`27LY!=_(0 z)&tG&o_}t5ZgqyUiXH^2iTT}ZAGqMw@Jeq<6L|+QO-*Kn@1&(2hxtUB#uL5;rHF0S zp1#_S#GL304*J1L6G@J7YrqO-e5? z?m4?iU$TC~RRp;IX6%Qj-x|IbZl4?;TAgrUQDNeI4@wy#n3}nR+mkpdYWr~KJDtmb zctGQi^TR8l?iTLf$=T8lRC2bYpmyD8c510k1E~1}_GD@~*tt4pWcre~ZL7{Y5Y+s! zAfQ}>)uNfjF>WR2BwkrOY~}f0LcM5q;KFdDMYFjVp=%X5yC}Cvrq+#|i)P@*YEfIgz9$6^Rx4*kflv|jXTw#Nivvn7v{Bd4J;gz#-mtfl!XDYb< z?yzk{`zaT2uAt#DFiP+wXQYCXjS@mgHfpeRCIabMZxIt_e1o6ulh^iA8Z_+!O*uf@ z=~cV%UHEjV4PRP>!_`nFRMtUH>k=8ErzN>@Hs3WeIme5p^L$_6(9@q=UJl{KAFy8i zWmc(P4NqXbvN*YDdVzHruAr6b{Fvbw!|o6NnIFbA5!@AtJu20Lr~{9D*cSHa8pF#O zTvx4y_h9X5^Kj>svuYVJg}D;9w+dv!0ZB%S31lOqNtqkBW4NEQ&mwHl9Z)1)QlQ9j zRWp`j5#8!eb51cwhVLcJ^1X!ci4lsz=4+d7(0?@-Yh8{>MD+sIs6ii#${;<%?bnBg zRTms&RE9j?>(;BtpE@bD;Wx(Me=N$wNqcv?KBs1n}(V|a|T zU4}J4s}nbSO7S8NhE&fizSpBA0fzZsbnZ|t=%u5yY_E3!oO64)U#~R#PmJl~940tS z3a%^yetA2#>uFwxP>X=0;QEEwIHfqJ)DS^*7dov9(c~hadgnDWfICjg&lD8dY0szES$iM+sQ zo`EIXlb{7b!zK^AlqKPIHHl`VO|mW;FArJ+wWziW+~Rv}=cKSw%e}${eynwf8DXTT z3n}72>JIqMWGi^&-f-2t6pt^|PyqjAxFwM>qdcA1oR1z>=|^^_1w)~4v=qc+&YVnj z%To!*TRNOq8EFPM${F3j8L34~CrzIW=S3|ZrgsZ0^cr`bWBkL~6~;0umO7JWz!(eQ z2DX{rEpUSK3u6&f;m*TV09Hk1t{Gqfa0BO9AYm-S4G}oT{iU>~Zh?t@9xX$-feS2% zFitWf(MXh4pW=8ou+Y14Bi#Ck;MiNu)9WCdkmWGdj3xxY4IF1WVQjI0G9r*cvkb&a z0{gTV$NR&}%fq$Zgn`&d04&i!Klsn`@Q`l8P|~H}^{^nB{&3EH;eK^7u61z^6C5Tv zq*|n2z#9lZore9iT6auwVw%GYha$DEfcT)u@wtJjlUM7GxDytq;rh@v)|EI>(sqEV zs6-)Xda4*6y&tE81i7@b5b)&~6-M_6bui*i!Sb9`;LtNjH-#jab8*t*czaMuu>3%p z?>)}21}VYx;$&eU&9|O{dsQ_MElBkC*>XoCKlNT*f~CkjP+Kv8Q==TlICKjU=Xl(# zNJAjnG>qE`WR5aq#90vi4%;A_BOK!sFfB-eA=LOwzo6$-N0O6M9Hu#ROOoOEY*7-Q zksL&mY`u((lA>pYV3a1gx*F+0P`NVP$CqV#>IAyO?^cEfSLQe>KM2w*!}tOy-{Wqt zHA~GN_3?|n>%8?V9tsa@?axb^rzH$%?K_?lceeQd@8535ZBK@)@P9S_?@<3_xaOSu zN{g*l{g6yeC$IN>^d$y+9kr!IOSknp4{%g&@_2TTW)Z*;2 z=W6C!t7|VhExTaG$rJtiPNV7p;pb~|u)0e}U;V!4Yg(2;tghBq|BshyKB}N?Yj_xE zedx`a&0aa26n@-PgYN?3*KO+eY_6HxLgMRx|87mfkW<_02W_qS$SY%r`d_?HcXXm# z-@w@VIUm++*LQeqO8wp2C5`U>`f*J=Z`o*crTiLr^@NU9^?N_5nNh;Mcc(M=^Shi} zKHOcCHYy8$-Mn#R?X|=43kUP|*7Shm_tjL_M^5cD*9%wdtMNhk*v z3`09sRd93)Kcq3TQ|U0$=U_>P&fDO(2WreR8q~+0gGtd&U5qFubnY0gOfVh7jPBjB z9nAW)6E4A@SX&9-?yDJ7)XAR@)(rC!k;?S`ff{x2qx!PZn_tzega^My@wT7Wc>t{V z`u}6>J>Z-w*7xx_CktCxB)h^=(heX}6bMBHMGO|ehOrlv%>oOo0vmQ0#k#?(SF8l} zGN@OH-K$p(S0$*FfT$=fSOBF38;XTs#Rk7;X5LB89>4xSfB3vRnesmK&O7haGiOeh zi_3C^8YPAw_9_N>*$jJy?;qsb!k2&71)m{%1-H9+`kA?xdDj7+j=XAL7au?T+d}eG ztDMLh@iOZ{`&5+p_*m-5@4Ezz(pQv1EPOCQl;HgRl%gx9ldp*4Kf--KLA+6`y+MBB zFHnS-Q6^vEk6!8Pj}(ih_&S!7<|72s_ya)nG%`yleSZbYZCz0Ziwkui=95S;;22Lo ze#K8+EHeQ_pXb3=;@BMBiYu=CKk1h)N1E1R{%F8cwRk`vX;cPnC~_UQSk)v2CuL18 z;0s?@r!Zm8{KP*Y0q^X~R7PyfvR-k+`AZ(u>td=`ibsyszjl#_?c}vjR~*s^aT|iX z>u0g5iRfab5sC(2^Y02^H#Ev`GCajXgiUrONQI(oLZM24(hTuO`6GXJSt#fC{lNZ+ zOR;D8i6tI&akF5~Qsx=S-LWL46rAA84=LuFujQ6`0?iqU#wY2Rc%q)Q`Ng20v-!mVCbmSWTcj6oZku0ZVUb@vEdnd$`)p z$nr%3_NwgoN?ujP$?%gpc=qt&9vJGy!_mqpTpN1uRlaD57td_(@wPW{-MP^d)<$Un z73t{tg4bh2Oy-90ew9O~v#;|>C3|AbrEN1(swD}0{(cit*8ww&aPB1+>~ z3Jxui+AGVEpS{Lc20Zte5!~@*d6rkYUsJjhIua_)N!dE$9&e#^-r}Y+>owJYgEk(~ zfgoJAe_&%=^uul=-O+LAh8t3By!t4rI?-woIG_i{uI#IPHZtlRAxv#4QS!&gjcb=D zdU)_{%I$o>k)Fj}5)_;yR~IAtn(RyX=%X<%;koIDckSxwi2Kv$ zS-y@u*b_Pz+e~5@3LU3Lk_Bc?D&shO)!fq#&DlK&`itX|^zJD3nt`I&gHUX;1OD{! z9`(Hd_fpwon+c#}9%Tk`kGC+kxyRU)6k4i`Exfd)mJqH68^nXTG^xwS6UR|KVX}$) z*X39fb#UWiZ^@mMS^GuSD~GBfN)B?pPx6%WhdTS#RmL5hG0EAdm6)TZdHMuTS2KzV z>*MX%pHgZQPLf}{Y4U5A_qhR^%5}p$rUI(HWJMb966+BNaH83nn=WC_By5MwQQUFu0c~ zb4uXq^Pm^E4k^4SsW(J^?S{#Z`-5C3d*&8O0`-WJ4C5c447-ZhauFrLwc9O9BIgCT z(Hs*^Gq#M6SnWNwGH&A$4Jx`!)fuwVWs!CD)fu|3k`9gpl_j`Lb}qp*#V1Iw8S-m4 zOMdP0XYWG|^&V}nAqb+%_1b8ZD`(45lq=&Xmk`io%T>YL%T>Xw_2J#WF`m(F;*?@y(dqL> zoX8&-1LI3jnC=Q9kVdppTw*0#X(HskiwDOgqQO*D#dkK2Fxx>A86sv2(X&6rcYqM`5u%wb~%%aSQm1PdDkP8>ek>kb4IjPW2 zUoV6Ix7s$-3CXaW6cZVr5LN1>=9y4xS!Y<8Xt;;X(M3pTX zr$;eJiaXMU=J>yBZOfHtT3J09QQP8c8arC~^NTDqk>)FpgW3=a+v3Y6dy30M^@yGT zak9Z!lC>YdzNcTmMrvl#a@JItCFul@G%lotT3RoJib82VuD4%)%%_Owl19<|8}Sw8 z9O;S}8R?a+BwdkfkCDLzPgz?)F;|QpDd-#k&1HUXRAn6d3XK` z(2%u?$6vr4Gf2T&8M&3B;dJE7ZiF(*Z^ndM>_hS7OP;&r%3n61(R_Uj<2f!3lqU2I zl1V!dGUAeQF(Kxwn}tfmXHceI3jn^zvq1DU;+@M?YMNGlt7i!R>{hH_qKZdcsxCSi zkz3w&607+Bv!Du_oU)Bd7HUyh)RE9ZniA#6Tr%X(>hQeF-+u*7ioKz9)1ioO>eq2N zuO8@Y&0k#XX((}144?g+$Kt!^pe*S5RNu;H-|jiJwHR5fH`F?X5@%MWPI=YyPn=P` z6Q`x38lvJZkLA`PSUObRm%aSc`~~Z{toRKzFN#wV-Leo~F$jJ3=UbtwEOdSpTIL)4 z{AGn@Ndh-&V`;;Gy_=RL2#{S^PH8lSfdSoi+J-FGBd7_Xw+w}A8_JSDM=o1UHnf^I zt@PZ}rqFL6F>i#=v{tKb`>a*ywu6*b8&nph5<`@@^t;e+hgM6|DG5_*KKowiS(u9n z2JG}L$amQCss3s;T1RnHG#X)rEe~M~xJp%)mf>P)v}6MpVk0ZnVJ9~GdmDBJQE~3o zs()LZ`h1ONxxrsu0KJKh8bv8|)EP(uoWV)TPMcSn{26ky4)=nFx@lq{Kb~K<)^kRi z97Xpp>N#(OAJ-hqG48vyP?q~mrC6=3GzuVg3kN=hKY4>QakaE)XcZwxa*NM?2`l(8 z1%sRRNTtr+l;*@we~xTIEGw}^iZ2jLt{8DyZ{h+IOtY<#SoPsMV%~q04>043xiVqP zQS|Z%M=xK+Z+s7n|CjD^fryl7XWvrZ3CEnI zSX!yEH~E$iuxihdBvEsKW)-`-l1#@{gBzPLbuw;_7SB zA*2WSD-bD6zVvOS9pHSq)3#=M=QYoedEqJIj%8s%xH`I}7IEP-mihr+JsuyV+nGg2 zUGci7Q(2gjL7bA^1c$MZAHN(+lsmin?l+^jtXZ@~2OjQ~)}mos>TS7D)v~$Y=Dj{G z$Yv(qRz14|0>Lds68BHb%|}WI*wLRW9C@_jZJJy-a56Sg`1^06R5?lkyeWGMg7E8B z3ne9R8FWkKur;DEK7Qd>o(eOE!k}rkqcmy4;tMT&jltSm_!vQgG)BWz7=k5Efi76gm4Lz5Ce5Ogd4`2)&m*s(UC4Tl{934IGxQE0&yyx_B;Mj%f5TKX z^p@&RA|$yURHEdMksHsuJoGyzYWQwh=6BEXk_3hG=Rd&AKK4$&pSYc_|Hn3he2}sH zLrl%mxXD$_?ssf~=nrqk*eX8NEAAYqz$LG;R6lLTO!vEkg-swcix}|`AV*n=&PhH7 zLP2|Yy0&X^S5X|-)za>TT2SM*RXqKwc(+h7LYKJpRqcd9FJep{{=KKPD|LQBN*f|K zoOgN1cU3nRCk{~pAqB2~oiWtY zpFe#7f4*z&l^b93TAUYmphr7uv+rO0oSo=iMR60joOZAm-_w9gC6xV)%wsd(u*Cce21R&n3$Mjcg^d!t=~lqN*39wOLU zT#xTvoZl>!S`V+~^G0KAX!jYmO27C_JPTN>mL#n|RZEgi>hnx?%Qs_d`N}h3x&6Pe z4aNwB)%R(g6D?pZUvz}mnqT1^Zst(2*hwoTaZpk*xhhMNKfRX6Do_;hjG9+fdY6=B zD29*w%F|0OsOb5?^t~{~d%pHq2IDV&jTz3E4q~`o$GZ-LFblu234=g6WXs0^Y@O`f zaQ1Q6x8R!I5nQ2lYR0?aJ6mlaP;$w~071o77FkDiuueS&h!W?)oQ)HKl2bkdh^$lN z4V42x_D2Bmb+Rkv{eG~mdJu?tW59$qMB_36vB>tUt1?MKh{_Z*@5EZw8>A^bM~0Ij zzjm|a&#vP$0@`4TEw5$f)~RX5>6UkT7q(uN(M_(lnasKrZ00G$wAOQD6sBLh4w90^ zEI7L^wX&Ocr%@TQv5D#jHmZM|nO>))3{!l9G!h}dcBABvuIK0W&{FQ{0ka-?5N6%; zNSJk8W00#wjI388{_7DhzSlbh51}0iqU)8Ee7Wf@m)03uufz+lm*Q1si6gJf_1toK zafA2b5X{ASdrnKYHF$v5+N;)gYy&AM zLP>?tLP5Zh3d%|eI`*b$t*03IyfRJUS{Jbm($LM!20r3_ zZ0#oodgtmbdNYf_t>|EFJhF4%pn5Cth^GRj6b-0FgT0TKY$HGS7%#4p*(iHRKJqY> zO$@jQz(9rD7i6A(k>~DXy5 zxmo+}IJt?u%PUSmoh)yU>VEnJ?~=+i#pIQ+Q9a(+sMd=Mhlyh%n>%=i z@E59J0K#zN8|8Bh14Xc%3CStRD_N!>p;#RvT&@li8|ChTS_|_Hod6~a02Fj+$5_M` zB@G72A0jvGaL=!q7M;o${m|tE{^iNu(flxTKPcWRG33si0?RQJV_cwZ0NlpJ+yH>CHLITW(sAQ9QdKrYO~Vi2Px4 zBYBr^KFfPgn<)8DEjnS|h~fPCv%S|;#&j4=P?$pq@`wjwn`{0CLGiXt??bZA7u*^FQ9g_rMV-&Q+M<_tffv z#IfGvvn~N|>^=V73javH>sYUPVs?1Kmgz2J8h?)tAYfWp&g0i$-zB_B?kp8kO7R6i zeEymbI5mLpcdhaV&9suFB4fjnX2xU3dOPy)8~$EqWRsYr1XCYe?tKB<;I@>asRf~Y zF-xLg-Qw8$N@3b{li&S5|6m;YiWSFuOI%kM9Y1fxN!WS!UR@ES1iCpfJ|pDqpNbC- zpsQ#e?p05JE5eRsZk6o4%f((;#1<)J%e^Q2u~G_#sF>z-Y)9T0x%7pma{k~%@9Aav zFEkCAH=+YKYrTnzxD8g=TTJH3aX{jZRQzZEkp@3!xVOBO?09(1$=;5^Byr?OD{1m; zH$#5y^2FPIeA{x0cXU~l4k>)^5?>4(I{${UV!m_=6qI#Hk+vzw%)Kw4O1eKNG+!ZU zMy8QRxGL;%Le!)Z)gqQC!3W77A~)=C`MPOdyn@q(KRXT5Mkuyl5nnXY<>%ScbRRiv zI%JMfw60XV;c^E0pp&wv`m+#X-7J_G4O8E+?S zFbkft3_%4y;6*dMUvTRz;xuy~sIq@pD7(PODvZc`z{se4r(c5ZJpKVcq7j3l^`SaC z5_Iq(TuvJgo9S)O8!q#9DhpAH%m@6`ncxg7PQLvdYQ7>n1WLAk*I;A~eW?1BC~>+! z5lEStv7n_C`>vwt4aFs ziz$COOl%gzgqJ6qz1>WIDNJP4OS?pwUwj1ccS8l5okB*2tg3IP1NvFJ^oo8Vi=&$}FRqZM8} zEC~G*OkqCa40J#0(P+X3KS2zFAJ{e(EtsENJW-2kT`^8$A}R|+<}2`i6NI_(Jjh8GNho;mKJNV#1^%MXoC<#DuOYjTD<#s z)FmM7OEEmWbWQa39F!p*-KS;ApCgxTRXWw~`L#`aUS-=8`8V^?m$@nSm?CZ*-lg}v za0h+^_s*)cC|q}9StY-iI?4J{GriDOwM`Lrq(&+^y@*gaxb^G=&&~K%Q7;`3iP;!M zfumc+{KPVdUzY)RSOhHKEB>8-gK(r7M11>4yhVy~9c(G;ZR!4)gwnSoF$)KXdgn)vRRLkrm zrF%EI7P-NXIDZW5r_e{d=i}bR?hu8C$>qmigGFBCBTSink8!Japh(YI`IXm+#(Oe0 z`zWn${?U(Au`v;9$IGAccIG!<4-obde+OS^Zt}`TeZFf+Pq;Z0+)KGw~GV z@f$G?Y55`1uSejSJL*GxCf-bcq#o}&L_x5s0f{ocZF|%Gk({s>>+;EmhWXQSIPhhB zB%ckykq3=FF7yL(SVKPapulZfA4%gfp~TrI`JT!P+ zO>%4gv&?ckD)_NFJ!iuba){vmIPe6M5WQcRqEY*zQItiyBgG;(9y;fP0d`MmB1JfTX{o4?Qm{h~whyj-EZZKU-qj`h_ z0O5r`&%I6c0#V8wfQ9|1(fq7==mk#b10%G7h)y81P3=KJjp#)J{OGwz_`1(?zdmtY z8L@GQ<`+gCW0KpSf^*aiW8{yMn{c??7-@$1^cCLGrPipv#-)cwjy;^8I}}$)Cbx-> zEx-@0z%ngOY`QOusdAYaC;`>ZZ~xktf6AZTrtEl|v}6AK12pXrxQKPZ~HLKGcLyXjUtJ6UfRgB+j80t8Ku=yR#2iW&WQ^#VT^58CcJYE znJ|yMgFTM8L#*g_IbSojt5HE7pRP2b8! zW&ed(fO2>A?lE>K^K@Lewr%mA$CJ+ju{q>>hxdEhR>R>P%5tH-5kBls z0MovC8nxvqY9N9G#sO?4P;gY6EBO=TCdp0j;Qc@C(viQn*}ITG|Gc*wzi$inOtTc7 zBUhVge1~X09gUr;Zq$hF-YM;i_gzG$A&iUdlns^t`I=ZN?8uMRA#*gi zqdVnB0{?j_G!>yp;K=@T_{ZKm^WAb(B0R$He#JYaGH!zroiid^jMZjjr&<6|S%MN# zzV%f2hD2hgJoLt2NTD*X8sh6);Xp-#mZ%A-3hZVB-SO&AWyZ!Vl#!HatIVv@n;P$P zjzowQx-H$Mv;rQ?Z(6(xWV&}L%~_O2REy9Y!sQM-Lp-)%_`&5+I`HroP)GhqneVo| z=0b!Jwjl_mA-rYrf`Ak+wUE+)46rdgT3dBSNr)Z7OI&)uju2$j0g3RIkgzpKhqKGO zT9`23xq|Fw2D+5Y4&JWJQ#Bz76M~n;303@tocXt2bhw2u@lV8ye}Yf^OAw#%3%;aH zI*RABAHZ8Cy}$BSn8{sy*jL^o%@~v}`mZ#lMr#uNS6PPqnO*#eudwU#!oS;;n1hS> zxpO*qm>2HN=k~*TC$`tyP?@#mBdQ)8^4OOBHZU`%RL1+iWm~i%Ft0DU`I_FvD|(XHiOyJqrJSlj0#&)vArM4;$B{FH5Oaq$(I&RD=bN=wVNh? zI?FHk0b7<9oia-n9mdaHf$!EI^&`Z}P^zpgFWGLgN_j0$*p1@<`2byIaJ_dPpZz}M z9r7Nwt3^A=A-ytMW2T9$tmi(V-AcD^$~a7Z?MBES+0A?Y zZqseWypE{%QoLvc0RsHb-|-M9Mrq^ZYTbr+tA{vz#ujh4dEqKvx)m#Aag&i6QY+Io z2BG2TZuI~qv|9<8q468UrFvQMZGpQygvZ}=9P)+eG zEmGr?e0P4W0ndQbu{Z2U8vaCfEoCtZ2diFwiNWigFVvc6U1h??DC#8siP|2H5rCE& zfPd}SlSm|v)TgEN$MQ?RfF&X@-!R014nB0do^1ov+4=I@zoaK2Oyy|iRPj`=%RW`g z(keitn30xJFnIpb>sp_xUN>lC6(vKs>~-CrDhMh#5dV*UmoUOM4B78~S|}S2PV=;a z`q4=Sj89wik(Ch}pXes7Ph>aAA3n@i(j`ifkV*a%WfN}(Mn9ED$UM4FjM+d$LiqE2 zU|ZScWR%I3#wle;*muXW1bGvm@=MzJ3fO+U=!D2^m{r zp#+5ID_DvVM*zCrK3PhrTR@Kd>@%|XyvutX?z_jf^KhT>!Ek=?a36LZC{4b?A%r+h z7W^!4^s@{z^qHK)l!PfYUv~ftqzL(PkcS?oiM@ugKVy<0U$%+az=cUfKT~@RpNTv= zmQpOT`pZ@WU;9hG#n?cEI^v%d)FBTrF$w4AulZ%-FrJipbj{Z|Eotp-(q%8Uan zDZz&G|NZEtcO5IUwj^T8m_=QQjRp$VbmpZSE+ZaXpMZ7)>#>a`Je&lmGgX1@q`HD^8 zV)r4xVZfIeK6I-$nQ4N{IN*{_IR3A4U#BuRB?Go?|6vqAtjKqqIPjKpz+{~;rdt-! zUy`7d;;B$vZcXRkfxDuWubh9~!?&IvY~?F#7PBwxdk;!aW)SlCw(UJwNF+8RzbJHA zLOTe~Hx_9ff=?_A1iN||+H&K8zf$gV^OO4c-myc8rA_DyweR-MTKVv^V9qJmRH7X5{b5sc-hwVC5LhwC;o-%G!wSO(ztEn%eEdt0CMO3+Tkf` zPBltCrk&5j9~|JjQGE|EFwnPzKjrpi$c9FxR#f;#8^#yBaQe_J)L>J8Yo{4P*mORLu=mcwq za5nQBY3BCunoCjZU$(4u1Q$S-Pr@eJk}kdgpW7Ms)wI%oSKjQz+j7R2YS+q!A*$Q` zWx?wB9Gs9oviCN2H2oVr0PQ39g zeqX0PQOYJsCK4lmoZN(t|C0ZDimKk*PxUQ!rzt!`E??NqXJI}Xw|r0MD<$`(*aTR} zvpsNXAa$hAZ6c(g!h=!N1Jr~^(#BVO{}Iq-wwrC86#Po|QM`X2-wP6zT5+5&WRx*N2=8st1o`9>p_F|+d~5i=p+0r4KxB|{W?-_tY6qHdTK50qGgmx* zyic5-uK2p85_5ZPHR;}~x`W^`zG8mcNxp-Cjgmk1H6L2zn~T@y->LB(X~w@6XTj!ICTxO> zu0Ha$>gwMf@0*8rtjEmqj5L#9tBtd?E$wckMfgqEdi<%UC;Ce8_V3rqUXhU)T==dj z=t0Gs+2R5~#EGXaSsQ||wanLa)>!iT`NES?F^8@!?2P7!k$qFpuUrR0O!4kqBPPLd z`MZiYukn_eVIYbnHKoszv0CI0k{imq{FG^!@6H|VD>0Vw8GBnFF)!@lou^}78KE@V zaIJ4t0i)lj0w(-8HU80b-<Svh9N z`R{5?8$9w<`M2s+`L_ifi{^l{*ZDq0nw%RliJGmy#8=W^+g*^jv>PJ7cF(JAsGr$X z%ex+EbBy>L{HxdaM#~)xS8L|y=l-+UZ+xqcC7wCUH{Bf}_9(f0;pKQG7Gigv-_?6t zi{roi&;{sxg+5~6ssqkj$N2(y+Sc;S?{0Cw%`=ywvym;n|Haher6RvAocaxaD;DMI z)USo2qolzMN#Ujn$dW%tF8fZYOuM|@zsm7l;~RaW+vJ}O6m`X0VtnpcUpKLkD&li* z@-nFA;CITl3Qq?{8{a8Q*j4QtQW3H7iFOd;yQgBd68iwA4_;|eS~y_J zrv&;nJ9$(b_$Oo3w!sKJM86Z=74B=2V)*%sSD+ofw$E3%oB|KHMxmpE7Uy=wylM^3 zTZmg$_SM+587CC>9mmPq#ay4dmV*uA@J=UBOt7_zGy=t;Yw@JP4W<)3Rpn{}P^?-q zsuIewBrGaLbS&;1`Pn|Dd_HX_lz!A4pY2G}vEoS5eRF(xt%Xu)P3OK-bAo+J(YQvp zm|u6h@AmwWv*13}SA}eh;;1RY<*74kpE`9$(ZIX)PP8~2q>$IBMucY!Gk4#w)5PzK^;|#EU*7N%7%*{LQ&w&(BkdKV#z;Ejhif(2~{c zKmv6vrF5}<{HJ+^UV~rRfO)Q5{^o2*LXs>=!uHA6Q}`KCSVZ^x)m&NhC46rqcz+*+ z2Xr|{cakdzp++zmHtMsFMG19d3z9!XZkXIij@Qoj-BTVV|DMAKGkNlh58=M+D`OO_ zD>{h$a4N>g<=+*#ja%C>SI{*TM~t{e?4xVZ#U^dsqP7t!YdeHQa!WhMYX*51(Ay?} zIJYP2ix7Uj9tc?nLRum4O|vi$hwQ?3d2$#od&ySl_FuYw&xu;}LSeAYNX*laPY=`IY}f2W!82ho5-|)OLNyx4zuY%7b@e+&HW^ zUcpQ57c;Zva)KaU`uSe<+!HIC$#=sV2A7!Q!w1_>-tSt)$qGeB;h83+8``<9hM{Y3@h0;qp_#`ee)g zQ9bsTuTbZHP_JA5$X|J@(8u!Uo{}}#*0S+_%;Qh{y4@FQUBowzYtz8)&Efh@zH&1I%a(>rT)Owkl0Qc-`&rcm`TpOto_6rM$Cj>V&PVP$;Fhd!JtMhY?b zAC*FrksE|I2w@&bAkUI?--0*nqlA~FM8Lmvi!XmKUixRXK+f1O#Oxg5^2LcHvFqXk z?#hp#?C?nb$m{-*W){T|FE`oPzX3afrHzZbs7u%{N@aZ8A}olK+x(^c@>em{x_=uE zChCcV`xjX%)A~ie@K!-QLVdEs{YAVj<>#|@V7rU`ELZw;a5rR2T8nD6r05>mJ!PPE zQLAA}qr0gH`J?2<@-E-D3p+tX32EddbGMJ?dzPtlv8bCO#$f4rf#Xbw2qzrx^y(pVQueGXd*eO`5x z2k-aOrDQj}={qFe9WGWwa18phz4glTI4mjNND1*r#+9q7E6p@` zV6*I~`HIaLAP;RuE$H{g-Tb&MzD_tj9o~ZFHr~Mv@#T^7GxGhsyu0!CZM1CSCvCMY zi!&&fxbW^*S$8;5Q1cNm@b+&pU-v=zP`-0~d1oH`!`Hv%duBPL7lSJMtxy-D2S#{{ zsf!u?RbJ-^e4LOQ!w;)1?;zk#(91%@&1Y=)EyPTOU$V_tuHJwAtpFn1c=%VfTA<9J zSfNPn-hl;E=r=y?AUzc3u0wcIGkOPb=9?S!Qa$jHk~ci zTb%p}a+7(NpJ@8!4Oi<;yiSB$w{~D-|8SQ->dsJ_EV+Ef=Xhv<_hWWI+xku`*&%%L ziRcif7{99-|L+C;%6Y+W^2THS;2vMVjQ?i8(Q2e={jN4+W`BXF2AA$ZH;NEB3r&(H zY&U=LN590dE1F;UcePz9uKG&`CZB1-{Eic_TSwm^pRTN zG_lio*J}(&+=?&g%%%}it&dk-yenYN&7(& z^4sY0Dar40N2HX}#eQ$GmCoCAw7E-&^dwn~^`% zjUEmd1Q%oyC&*DZ;^|2-rE9tIE>{JyKjZ_H3LBCfw*RngyeEE_O^z?x>+3Xsa6v<6 z;t%!agpFCK2Ei?xR#F1^O#sQM?}k0TJH_B2M=0bZcC@Dc;yXb$p(qrKHdC4<)R;8A zvK)EYpXzYz)kFO1?G~Kx9x3iN95U2DtJ3{vp_W9$%0Z8Kbj3#u@pq*6T!M}y)}QJ< z6$%DN{)DV}DF=-6!s*J0jY}vf{Ab~etQq=~#!pHFNXNS_u|MV1hCgTc)pbG$knGXAOM!!MWBm19a+I1KYH74dWQ8N8D2g0Bbf+tySRdjwBe9x0q$Z{|Mq!lhLu!aT zs8(SIMWG3tT!P+st-oJ$_BF+z z0rf4pS`dBJul|;UQxMJX6vX|y!p#e`Ncr`p&PnATJ5*nf?F7~UPT)9cRA+2CfWxFw z+0X^%b@Hu2F?MweUqY4d4V$u22%| zjPsY4rd7DLQn`!-a0;yXhcN!gL{HVpIv*`qm^AGsetiM46DLOb0cZInPgNIIT2RELliDu3qFz{?HPVm&(OdQyJ=}cxS#*Dj)K_X@;k&S>x(_wLbL6Mi`}c z;w17osxw7DD*pxFQ1a+}w0s&jFQ4M)LvHZ*ZVs(hOd2$@UHP+=iGH6Z^EZ{E`JI&= zC0s3(E@WC;m+Hv757pO>I!mbmL@kYjwsc0ib~I4l9I5n9oEX)PQ@}XYp3X<(X)9t> z0Jq|A9_j?v08ZfGn@WQ^V|{;;9=i1HPGJ&2;EF2LW1{A7iHq+92I=-eow2@nNMBOP zHmHo#B)L;y&EFCjvn#^Y8SBe0^<{PPa=K=G$tm-e%D@S%0i3|;cT{?vvA!Tp1M92b z+$4Y#SMv*8l)o?p#NJiFI%A9cT5|VViYEb_z?$DFaE=P7GuF5eyq&tHn}CDw@=tHT zsGQMtO#tn)ls^17n$!GFL6YlL0kl9GPgiwR;bBxJ0h}e&08U_wfOW>&+V%V@ zM6E?%^5w+U{0f)9-R!UIrt{LmX@k#_9cI??-<$pYx@9)1LTL=0x3**4ynbfPkJmOg z@`vVOfDVy8XGvy#N0Yu-E4Gnu6H}u^M&W9Fean#M(|0&!2+vt2&F|DzViU8L-nOme*q={Cop?Y0qczQ8}Rw7aki>>+*9<@Y!oo`KBXtTpcae@?xy%Og*)ZY z{7yOIhZL@sM_)#x@nZ_Nc_^a{oWL5u37n(!I%ECrw_auFcZ<`1gRA)!E}Fg`;v&?^ z>x}iALmF7W)?^2^_pO@WDRA-wr3syJXt(mqQLwN0h}|bD!1|j}Mgxes$ywg2W}T6~ zXd+1^b#GBPLCVmn(Hw<41q_i%=zN^GA;OI-{=be^8o&vh`-nO%)J0 zhmxonjhlZn?qe07&MH^G2k*pj@6jKXz3dYIP}smKz=7vCY>zt)TfXsJOA z%OsG_SidHzf%U7KK@z|zu;y=xE5=bWZk@4yFGj!W=>AMeY>@y?V9nnW7`quXb<`Q_ zSG2XJEujH1k4XLvum*4f2MJhbtW~VL6|Le7Rkc%K%`b3U%p(${37xUlfCdhdpz*%} z*8EO^Bh*{yjCIG3?y6bNBO=sOhe-gZ#2UZ}oF-tMvF=tvgcGJ#oc$Zz^e4@#Zk@m( zs&k#Oelbl0>lfu>B!E+3&F{ob(LMSO0a{SK zPWe>vvt7!KP=-#N7==3pOj7I7`RD@cH}u>ZU-AF7`Dy?saE9I+&>80(g6o%%^nCzM zfi-_iT$pd1fOW=^FI36(+a_u9M=6~XSo608Mu$xT>WpHZGYT5K5Y<=>aPM9|j)rb3?z#6~_ z93n01jQ<9BXp{tS;%a_{YnzpY>149bSWBuk64J-W>184(u;zCPoFH7Cah3{TiDT$u zAc@g?75aR-6IcT{f#U)I{5sWNVr-ay`LT2ud0Ujvzv$Nx}inSRZ@S8&Uckr&D0f{})^>FuA}} z+b(*=9sG$uH{0)T&QJm;K$uRF=?wI?i585uO@`{Dole0tzY{mEaaF#}L-iiJe%_@& z?57X>Ie|5R6FBpW(xlEWuZn0i8iONwz`hoC0fp zCocN~d~z>POHOWH;sazGKPlGl}0)MfD>rs-xt=clhPpe~d@xs1xX%GDvXNe1B*DCiiXvHI+ z;cRW>-zZa@&40+>&y~^HB?vZ2ZkqAPLw;NyMgFYH&P*_#c*x(!%-C`(A0+!Kp}-{A z9`@sF-~aY^b*2A4e^(Z913G(p7mLb3C8c)H>2BR;7cFzmz9PoWjj72Q_-0pePm@@R}`Ym@Oiql{ubp;zo_gm<<%$&&= z-CK^^wB3B%Q~uJ_+=c!UV_vw8aoK&3?mmTok?_aFC+y`vKIu_^W?r}?b?jsQ`-{a1 zRpSV}3VZmo{_d?>p9e!tF64bv{y=K%i~fkIPq3z3|MMTw$~Z68E9Gy(C#6QFa5TG* zf%kCVS?d2m-^Y?FTJHbSz!mc;TrrQ>UA*&3|311XK81_oOIjPzRPQzZLuJB!-``FO zAl?j2#Xd#`Qh@B^N`QBE*#(&KiH?syq2gcL;|~i_S zdEvG^y2f9W`s9Fr@L~Ck#}x-u#_6Y3##fgF3K`#28ju=M8Nbj5X+_4?Gb-a%<$;zN zzuPu2rJ$7SIs~NF7j_BUQmBiod@3~FEgl~|N*-@i>e^ESdqn-J(mXQ~DR%L@ zN43BUrdE#*Y;DDJxQC5Tx}rRk`fN;Kh)Z8I%7>jF$jbYxQ%777m}BVh)VhlT7Z&$E zbt+W2bb*n-b#-7y$7nNp(}FRyWp9y}Gs`b?0?~ZilgSXV#2x@k%SKGZWU> zwKB88V+UQqB8PJE5t%q2}7^ ziFFP5DS65D)Ynz(jHgbMz;Q7?q{|vlj z6pNw;#|}sxye+WHFb46Rw+AA|;M7TX1a2+rMFm8j(b|Tlx>}`~AnQ{*OO{+m@abKw zD!%QWz_8LjiU*~ynj849tCheXkXm_f;NDiL>IH!TWvK@q3nYxx$xj426{jXV7ubAQ z2}EqHfjaonuLU+pj)DBw*8=zQhh7iNtn34A)FF04{nV+dxT$ta14kRF5z7KsyHd;2 zff=ovqf=`p)K06Nj@qc7Sj!6D3H39lH`)9RH52P*HdZ%AYbHPywup(f(;MrWu4N51 z(b#dFjGgr9k{OpSyod+{Z+Mm+4jKXvhg$PrcRWCrcT-s_}=i>HC9LKX4MM& zn{ZWaQ}v|!hHGjXCPH)5qBTva;I6>8MwztoYw9L8P2t|%f!Evg5wZ0sdVK?5y*qHU zOIXm}-GNEwVKB(r>e^XNLNoQ#Q)hk_*wd=p;49eGsD}CmVX}Q1n;L`~n~-XJ{jBQ7 zrW#yXFl=w&#Q}}tLpQb6HBCq{9v2x@*EQ8nYh?d-aP{<=(^6mU4Gb^#Mr)wurfS(x zr_|O=tZu5Qn@TEA9r=CWepqSh^&bLPmZtjs8Q9o5)w;-fz^JU5Ue{O;W2V9X_-O4)6;8)EKbZwqcb2VzZdi>Ox4Uo7t+Q=w`DiEbWvz}hx zFb%!J)VgVPO{_)Gq?)Ny>nBZOQk5-|*+X=yJ_IhCJcF;d%w6>W^-(4|sOs?zGtpSb zqh}Hgl=X?$Ohsc&jVrd6o2i~<*0j=&<7*~d1p#Z(^e5KUOvevl9JQ(Y4!1TLsp~pe zhAB%s2&LuMb+m4%L@T&fa8*yOuaC-xkviDXYB2dNU9A7Q>qNKI1Y5x$(Gl_f9&1?p ztLqx;#-rY*)=fuqZ=BG8R+qZcV_j$zQzfTTUh7CB^^MPJYjkLwP>T*#78{w>HdIfq znO2+n#c#DS_`Q~OYpO?A%WZT-Yg3S{X1r>A(wiFC&3e)-hY{7*OjF%5-+Y916(8Bd zdU;gKUYXgvTF8dl$)figUkgjGW!jKM(BzqQ6Vd#p)=X|p{o2EN)M#BZVM1+VBfqbw zHK?ejv9UI_yr&gvT{3BEeNEHgv4c}T_qC2LYmH)G1yAoG))ce-$6GnKyPGjyAVJN9DYbmWIo6?$6Va4J6P{Mn#G2}+>EEf*Ve55+ zcRJ4+)r)#YdrsFfF^)D=*G{j2 z!Az8`fr4N)jg3=k>i*BjDd=GBiKP|W1EQh?=mwf_|4DVd7&|A_OmCT>(w;(eZ{tkjG3*2hN2 zvoS`FC=8MKT!S1TQ*&lmF{AbAa)3|$*Pp_baw6Znf&#KtfS4-r}NDZSv|`yP~GJDqL)nl@sM?{Yv_43*G{Nu zY?7Y^s~w>`%hS&MwSZF#FUS&si53hd0*FIR5z4Ce{f(oQJU!mdDf2TQ|B3RIa5(Hgh^kNGnLyZ6Yx^+y+mqrAWyBOmGmRi9|xABZI+6=Nat+uif*E7h8 z&sb`;@1AVki)}3{VG*{Kxxr&GHztFl@xMss7RDEdo?2?%*?9qyEHOJFa1IiLSh~nE z-JV>@GyIHY*4wy^qH?*_j8DeiyWBdVImRqw0T8#cxcr-BbJ#3nmJu|zvNbHr5^!Ti zjD0D}fqz>;y+F^f1d39^o-vYah>-<%oMnpUfFp~NL=id*T7f>yv~j>#gFNPl6cDP! zSYmux^d*qiuwKnZjx8ubQCJAFt^uI<-3f&%VQHDoGsyZG#ESoyfa3T&1nv;y5`>10 zDF(#D|BR6Z!Vn{jRc6Q-ja1LT4I4$SpwxBTm;+tl#SmZ%(Zi^&5aVlCSpK$RQRv2h z1G#(o_baR(yhGahZ|@>j&f3cuH#o$r?1lek{ihKtt)u#O6%TH zQdhVGc?APUm2_Dwhx8?&5Q`Q;E?nL-e3jMHu=vDP zR`(I^qFG3@07dNuOA}UCE_vI7zl0@ChQB4yHA6l@Gl?51XnxNdmcMgJykrRQgF|An_b}Yh=gF6JNhDy6;?0Dvfsu?>0;T>5Uq-=xOE^HVJuoEHGaKxPi zEDPy-fkL1Wpp!wTG~>^ypwj>{5@L@6jRwH!fH?yoXX5u+tSdX4bwh>$R*JAO06d4e z0O&#`i7Uke>|EBJoyU$qnl|iwq<10w0?>t^!K?>_FJc#gE=KB0K$qh8W$Z|X!(ct( zEoNg8AZoiU{FmeR6`*mTYQ#lAHTXRqWC3sj>y3V+532=DLWYysQTS`3L?)X8ssmjK zx(bAYOoOe;Rs##ziB0RMyFsp9M2wrZP;*~J^ zDG0Iz7V|28zXpZBj>0U3)f@)AWw4s%2wwpJ3jl+`mjG+5ywu33nILcLP=yv>Vj?2?7Ps zr=ZUe`8hKF0<;Il_9bk*1fX9b;WF6zUc`Tmbl-r!1qr_Iq_r@qk$vnG6hnlIOipE$ zs8BCR2%kgPe$e-zAJ9a8gup+sP&4}(nf)S5&)5M({tEgH^gHMe0RD*#mZAZQzOyUR z9)v;BaLXHE`${s<*XILTN|UHzfs^UXT|WBAgK#)Q)Fu5LphtiQl5BwT1sMV<>AU!-_Bxp3W+aGhh#A$cF7h1FtmNu)_@@oQcM- z47EM{RZ`eu)&ZGSfjWXZ8E3Lq2=5HsE+9`c{v41hI|~^WGcOYPKz>jFaef(hwqz

as!B&;i_n=uCAXCw0>)*b1O0I4+RfXie(kmg8GPf#z6S1$A}y^+>}mQ3_AB5iXY zFdYRt8q^om57ZwFLC^q{Vj!pzU6GJ_5TzN1-_=sE3jkEi1_SgM<3b3Bo>lN5gX6$I z1iy!Zj>m7&d{00+Q8mMWbE0t(s`R2}sPQ7vdZE4x*>EI238d6mjB)p3B&uQ~5Oy-u zd- zvy$vAWN&^S;vsADt!bb@*!pc(*-hpS2@y63TMf^j*@a0P7R3S@kR zY)Ti%k`}RvNZ%EmdmE4!BnB&?{#wMlfHMgs>RJ?L41P}rO);v`4yuv9T4FWVf#FIC z#Mo7Er-FH!WYi48k|U`92$&*Z(tyPXt3huj+OcRUj7>L0lN`qCff0p&2K?ipjRxZi z)(Fit;rC3?)o4Z6$U>OSm;{>aT4>=qB%Xkw$&|fV4ZGeLjCw6+Hz0f;dbk^n326CM z>?UI(I@O5~W+H^q<3t%mtDVViD+nAo1@d zxGzJ}S0M3XPzsreQY=BZiFtzyfBi@|9^tPVVh$m!%Ve)1{&mn&BZ@RpWEhnhE;DAp z%0&O#z?K`OtdCLN%vK;_+Gqruj%Y&rU;s1OO7!}xKySzlMf^;JH?h^o@J$(ZH8gY$ zK(9e2*B}$!i!k<BPnCept#n zFsuh{kjzDFqj9~==xu~$K$}4CL5Oac_$V-uwwS$d+z2s>*$4RjA+)v`bO4j0!$4k; z=xMeob|5#xDnON>!vWad zG+76PSAjZ$Iw8C>!n@$N2fw}MY~};`K>?5j>I&)x>JB;r)B|ac1oZ^^Solc8_e=voRaE zl?^d(WkXFdfBGjo-n@;S0G?r>6H$QSpp)?XE>uk)5UQ|Qswo6%Mo2)RCM+wE=oGl8 zf=&aC1dT%2Xwd1P2n6g5_ly>$o6XLIUumG2orUy>*Mn{V-3b3pAYn5x z&}@X=4EG;!Zvowk-~WVr8)y#bcF-N5I}v^t+`B>dfaby<2h9UD--|!@f$m4dzu?XX zar|BY_W`&Mf*wNk{2L{D7-56pe+0A;lz{(H&|~=hIOqxdK8ON63HK?`)1YTS{{cN~ z#@KVPt^Xq3^YFibs(R6!(~RZx?dW-KM`OPoja^MU#Dq&!%Odj*RD@V9R z7T{vQtzxg4RqSzd7bG0xu$>F$Me_p$Zn{cMBzFSgN~ z&oW4`2_!Oq5AIo#*<|mV9P7)0>;q)Z8_!L*wgh2?%?^4XiMUg*xgMK<4o&Nuj?%~tz5^oRiY3G_4Q7tjIF zub|&Rzk~h&{Ruh4LUECdlPNj|ghz8pv9^9%98VjvcrvR_dC^%3SCXT?;T* z_%~Kb5A%Lotg&dI-4T2Qs0ZjsP)|@VP;XEl&{3eHL485}Tqf&}Y=Zbb05lL;4FWxj z?q)FDV-SBV=s3_2&`{9vpc6pDKqtB$VZ-5`1PXzFL~Hyx*;UNDY_&X?FrNWzp`J4l zd=}_z&=`buV+%2(dYGL9e;9Nw=seK*pbJ13f-aJBnCxO;UjiPJjbNAJ_hq25@J~Qp zU5<2DxDtpn*f^H~%tuj&kHS74Wxi%q`Whp_ssXgfd<+qfA>uI@&IlF(lL~(v#*JRe z)rpNqI$`P)Tu;CfpFr9tWD}@CW?eBGo0yNUVzsUjw21D)CZRqigQm!W6|p+}zS8wL zYre`QI(9MVLbnF#EZFWeBpPoRY&!h)peSgD>q*w&dJ40Rr;!>x97@%MQd%h2OxH6Q z+)Z}1^cS54#qnmAf|zmPi!OHiSWBXcZ2Q$%>~6l^Fa3^{Q(Fkv?eAE z_qm?MEWe1|k9_{+!t`f8esItN&;y_cK@WlPGbH{u+=oGrfEK#`!xC^G1w96O9P|X} zN!N3jp^5^C`e*DZ2=_F?p8@>`^epH(*KGD*m)HaQuV^{!dHi_+lx{YjhgpcadjVZ$ zF?$h-lb}VQ|AAhDFfrFZ5o5BKQIZ&#UI8rzodd>{>jk#N^&)G>UW6^Y2wM=7M7?rH z&xdrcfv-I#fv@BDQjl25Ed%y)Q1c4>NxPD$^&|k202s(tBGD>@zX5kO=uH5KdKT;0 zw-A08GB(*FWGd2{>}`r)1NR-tJCMB#cP-Mclj$*$gu4Op0^4^)YS?<4*L(1)PSu9u)bt!m67T`xmxLWm;l0%My9^sE$46yTM7oCOVk z41uNh zEuY~I2-{aqheWt&+OK09SZPaWU?;*ZL;P4VSx}oCs#FRL9lERKN_;#@waT?LFJKk` zyQP53Y+=d(SGksxAZicf6QunV+RTDJbFDyrTKFQ?{5c}OfV6u+EmbWtOru?k!~-#s ziWAZQS1Fz6W2vA{VFG^D6G!-f`#oixlD5OD$+hZTt-1hu^0+ zBjOCunaKDoWOz1c41S9a=p2NHLFXb&m*PD9J|FQHfGz~cMWBm8mw+w>T?RS?ZH=j$2lIpJ3qpBN%x?7K_9?%ndL2v6p)dx3yp&z;R9`r{}g5(hDK>Q4X z!SFtOU_GveSpQK&ttY5Ufm}5D2_Kb1Q90~t7z{^mVex+iS>{AHlGOSLWVC)lZPQLL zfjFT?@hn}o%n?Rg>#H%=lg2#YL+c>*k@b`s3*&Gz9wt~L)kM@uFxh&V$qN+|{l`W) z#~HwqUKUQOsaS~M$yO;dDF&sc!F0oMoSK0;lSs}&?Z}S9Q0rMDX|A`JeLa&3WXyrN zxQU0vq&1y$#xOsR$gysr=Hq4oER@tOg2mSJ>J#fZwZwXXp313~TAgYcEQb~FsWp+! zr9^6cA~pV^T4}w+IA30UW|hh9W%W5J{Q@~(5~!@)uOb1`DpsR@1#94I>}AsY4eDB0 z2fj9>KsM9XTd$}Mc>Wf{jj)N7Zieq*3w#ehz*g7>+u=t@fE}^&%b5RrMj zwOeeP-NMbSH{39e6X^s64P{$KIpN^08x+;GC^jD zh8T#2ERYqlL3YRy6sO(^k`}i(ILOue{k6Hi|H2>zAS1vC=V526*(13uUU~Ck;Q|CJWD05gq^gW%J`{*zA9=p zs17xtCe(u3P{+r=x=;^?^`QaTCJTTK(Kmv|&;)y_^-WQmL33znD19XH=Ja>jJ&=o)3aN8Yy5AgNGK`-bHeV{M&gZHrP4+GE-gh4PE-pA|% z7=nhm&Cnd<;`z8vIVJ zo{l;LW+FHhfy_dk4Rauh=eY=phj~2DhXt?@76pw{i%~y;C9o8hA!j+PfKOp1d=|t( zi_g(~0bjx@SPfsn8u%K%!Sh-IS%@u2x9(slI%Mbq*!GSObmGY!Ez(HAv?Lz1S+$kGnk!)b8y}W zSYs+lHydQZl|_pJiF6|N7vT~Sh~_zx%|jbRf$Ti2XTV8Jvh!K_A;T8xG9JtTt?CLf z{I38l?7z!C{8j9)`2`eaKR%d1uH*j(<~QLM+=e^QQMYS%>FFA>SIJv0O|LnX5wk-Ep2%Z&C3f&-ffPtiYv=kNmim$-Ws{ZE@^j(sYp%hFLg7;4U>pVwT26`%lY5 zIxNyd2J}&o5z9mZ$V5ytqnBm0Xv||E7P3HA%+p)kMBbx$IMI*||Jfl2yn~%o)|~jy zgg{s-d~%Bl+DE)ELWB2{6S zNY`A1=b}&y!NtKtBwkODU6rr}=9Lz;kfJR~7!76nvlJd=>8v!K-bG&qCRszZvNjK? z3!{RCk>z1zxjEUCcf?rYF6AdDGh%oyXA9TDaZ{c^@{))O2(Jj0kQEA2p(_)?Do_=w zK?8EcSDip>;82c}d7vha6Ro3FEn5UF<4u79VOBQ(#H~5`e z!jh9ub!?I3JoCR8PLkBcvL4ij2GG!!hB8eVxEV2-p3A9@M!1pABsGzUBnK?~m-hmh zO*gis{g225BF>U6p*DpuBeC@ViNvOsEu9wfT7dtReJMRM6x+mKdN#ZzqH(HuQq~6o zlN2*l6WNwf6Z=-S3|gv`?tN6M)>umU*r`Y|TWLetw1sv?R!MP)z(AQYwj08t*t32; zhr~@q!wwn9lWBbiVwq(4FTVs6C;VE#rTr z?%z3++o%hfwBEMNZ&bqMoT!PsKF}BX!F$l(M*ly67)uJJ@|mk2OgOL{1cPnSnt4zv zMtdK3AHWdIvyfAf==0$(n$>~VD{9I>t!gMTlIupS(VCKri}E*{N=i>sp|WUUDa(l_ zwUdRXH=C7Nn$kPfM6=E02* z5w^}^)|Zb+aV6V3Z!}f25}KWk*=%LPF_s9*;Q(pA5QSeR~@y_mFs zWML`0(CLOp)(R0a(`fT~{vZ8V)GTuFC#H3?ZF#j^Mxt4m^AYe|h{tjs%tz<~SO|-3 z<<(*$@(K1!U@250;AOBJR=}sQ5+d>Ykomx8xcMBufG=Sc$U4w!+@>(YSd^BhJbmP3AEb|oM1Y}VrHFEyXS4`V$D^3uci@~Gpewm(1 z7-m{faqTzEbMX|-!M`Ag0-0#;v+0;g%1Y5mmBPFf=A}6=uaIWSNg#-JMg-oalFA93 z658)Jj-HbcS;UU?F@gAl0RF_FBi*og{)^N|C$b;R8IR0#lsaH5L(EGP2@xcFdFEDK zf>suD`9*H22W~2~M#MCA5Sg2qSNu(}975J%IAVlTj3PA`E`7taLfTOxa10BkAlh-; zDfN#{meOP;Od?fEJ3*PBM93-JoHlYPu&gE%&~n-tTX`Zdn`OBB>MZu>zzwo0mReKl zJpL}=KM}KwsF&a}aM;X8Oe;_}70A8{WM4(?imejfD)C&&$mSSwWQ(OTlZDEdRmMz? zlv@#CRaX(b#Zm?LRj{k#ch3)E+p1y4$zI&7qp!Gudec^2&Zgn6I_|15vl9Qj|KGy$ zHiGWJU1D{QY`TyBfo&Fth6C%na<)BEJ+xKT9#LeEarXqC;y0RnlUFY}=lBe>=lE@? zNhBlH3!Ch&Myi*Xr6(f)3d?5%#_k2Gva=V6LPaLl?5m?%?ablrk;(>kdkxKDuSr(d z(!3A_a=c;#4$D!WrQ*tg%V4{V_g3Y^?_8_w2byz4mz_-w2(ce#tVt^WTAGJ|yf_Y( zz=>@tdwLbd^95$9(Fhg6;do3yXoS5sfd+Dgoq608fYe5y_(n|wX^|zzDAJ*(hYZMz zLPkc&1eqb)&iEgLCf5F!%0jFvTjgy=DHo|V*KK8{TSv=kud5BU)}#FDk?MLxKn9?C zS~i4c_XnH<^&MzH4&)@j4qAO$M19=X$9;Kr(`AuL62u!a_L9)tcKZLEcv@@`Z&uDv zGD6uK(!?6#u^}EM>!gfjz-dH9ZG?Fvzj|KsQg z@}V}5b+9^5{ks5l(bt3eM6Cg8Ludqzp$RmFX3!j3*rlGg&|0Ez1>yFVw17Y@F>6pX zdDEJVZv$O8;UM#r5m<~AOBe;CVGMi- zL1gAfsAFLqjJLO;i+Zdk5SW}`pNP7H>M;qmFzbmjxs$?~jBM#Crl5WdQ(>B&_u%O` zoPm&;FbiheTWNEM)LeTz;}tcYK<2@GSO5!Qk-a@Zak>kAvYov7a%=&!PhbfwwRfbd zYWV47RC7C>`+lu6Qx~=?V40nMa5*tqfrC#8a3z92vv<%w$Kw}7Oxnhmc9&XZ??T(K z8Vhr)G5-p3azcBJy({_EmA26}sm;i4@k`vw?5~Wa8v%D^7CBCRZSRhW=;e5!*dyP^ zscqY9hSXtVzSao5r{9Bk=4=G4xA*#&d(&JZ+nWJ7WdH#`DP{H{A>u~%S;r|~vf#c( zN=%DD3|DI?$i&B*)wjwFBqZ^T~A0zz1(Lf9tz zK)(P}Xl`0{6nT`$fX#87H-)pe8n7SiPc`!@znK(IqSYq{*dcb=pF_YbZt+b9++DHDn!5*03 z{cL6cVkcRj$nkb*1rp$Y+mB0%z;+`7;{(qe12+sN1PqiJ!-+}Hd5wro@&{n%NCJ`A zPT)IWC+xCMPKtQo8x8ZI))arGWtvOZ{uBOo!)zkD2lZz=XYzhABJgoifP0PSsYwFO zqG1`@Fn__GSfGD@eYlZ55LxN@4Z-_}l=OPPqy7OB;XffzPyRx`AM*n;4jzQR;Sd~# zBXAVUV{jaY|L}YQ%z;WK-t6M>dFe?>%U;kFF@uY3W^nuU3MAd*KBpgHE#yv#GK7VLG9Qy^9c(^AI*EgN<= zhuE`x<*+LU1Un?cEHjbOPV_F!+z1vnWxiI%5vj_O#pN6ewepUqe8Cr}gn?rv=7(Pu$eD^z z2`W3xGZ0lAr&Lv_2Gx<1d_s55PA0FAy&a3F zUh>hHG_}uYs>}l&pQCat#qkApO7+9vdk*F+i1SGk{s$mwo9VclbGa$eTyCQzrK!*EH`eX zv)D*yu}S*~0p=@(q~`U_xp4^0fl3>xKBgj0b;urw zS)6iwLF!C3C@lTY64GGSM%p|Aro#+kA4`O0I=*8H{T-3}j>wr)XnD_>Wn`i3gXn6u zkt@t-QDcx-&SrkJUV?A49QZ45yQ1bg;#55L^I#7FCn9S;x#e5n_@38Gal`@>LKnee zSVbm(g1Q8j!ZISY99B4fAiCmSUPUE9S*kKSmBLis>U{k5y1hkxivMULCSy!>4m8;e z|HkK(zNA(9mBc2|x;@GBXT;P+2VdAI4GH`UQuHOPg4IOK&b&@mgXLSl zuaLC{z6P1+wZ{A#M?z9UWl2(+`(7FU*U~)K5tyt?eS@I&2;5)pu#>fx`*+lBr&BL5TXVNwJQwVxQ) z#ebaIhrO>ODft~of54yc7wngaFxt&`?Dl6F%Z#MrAm)F=A>7QC*rOiCTt+<^ypA~b z(5B5CI*Pkpe!Di>&kXBkpt9d`6o2wUo=eU_1ss{F`^BHd|0{KI>R6I+*}OMT^!(R> z9y!b-+YvU_Q_oTB(_38XxMQ!sj>*D4@Bbf?5?O+jn90iiF2}F_EH-Pn?0-ns$v%gy z<|glR$R3AP{X_PiAVnjwk1>kqH#!zc?LJ;KMg3hn=~$#rIhLr?j?3x{{lOR3KeV&> zIVa=)c?4WQO?3RJU3C2A51gHR%r3(fxC+kO}NGLZMZ{j+=T>fzjn`Yfab+Q z9_9}i>9z$O#EcC&c;xt->M9XBz?AKfQ4f4(J1);M5g)%GBnK(|9iE_=&M?h+b3^r@J z*%=*AD#~Aob{fMjc}pT~Fzr7bf@KjsJ!%Gs;$TBY$V6b(`6kosLfMe_dyd9U4EC`g z=NubyGTtm_rLtg_6|zBg$N@4PD@=Y!Pbxj?QgSrHa?LjY*O3K=XYP3N}V6Q>@d!vf)+p@ zZB){8MkS^E&ubAzrI4D>)hjrNBOqA^I!B!-gubv}KoQiUAiY>I%!@+_vRvAKNg`H? z=hEA#}34}BXok!c|Rsv zBTLrOE$X_zg353%>kF)de?V*t&_pC6QcIgmx{;X zJA{t}U$A`jEV*J=qwqf(x01rZ_|itZ%^<`=CT>5(Ufi^m{=W?!g9!f!4`V?-n-1{{ z8b^mT9uE_eJp7k?3FNjmG5D^(vtjiUIg`l^nPg1C?|u>`=WGtJgZwdeQ_0zBsMCG? z%LOtgV+$s!7$icHWpYem2KIq3IA@{{BI_z+J`24xS=ns6NI;DUU^aoBrrFNHZj0qU zDK_iLToMrva%06j5;dQCw15a2I>{x{K+U zhm96<9%wOYxSVyCSL@Fa#%sTdHF~rs{;oRkAqTs`1SHeCwLyW8I-ZgMmUIa-fu)+q zEODz<2w4p;`2=3)Q~0m2TmxSRKlhjC3+)@q%VT|}ttIQ$;r1jQ&3eC(4XEFOEaMGh zVIj9BIm5T^_Lu(LN|{p@;|q})j#qTQT)x2k-@^8_+DJ?{17tpq!8TnZSNQFLTAcc>XomX5o_pOY)qK zRWEX72!ZWG{T=EP`;HWgW^+*Yr4pJw=^wcH6MN|){|cu4?+*^P1ZJc%1(S|pD2}9U zCktg4*y#D31S)oB+ddd9#}&-O7Jn1LL-eGFja0f=wUI!b7FmiH_wv=C98)<$;71KN zZi`L%k{!wJguKBXGXe_1GGLeNxd}%O8*;OO`Nkx|&Avl~A4jkZw=%PBXUr#MP1&Wo z8n++>WJzSiot!qIn0-dg4Yina`ao=%t5K0so^kmH;V0lEIU}cr%=0ah3lgDJ)P*+# z`1hH&H;=p}vPbIU;v*_xz_ZMF&FtdTqQBe%kz$A?b#mCke2@27KeEN zOWLc{Vi{ileb_3aC7W%-X zqMU>4fRO)nR#D~vZ$GM-Jw>IJQBsOU&eWNmk*tQ8XX0<7MzpLH*m$`Ty;J8vAPkQi@_yQ-3*pJggFdm zft4^hNy0k-K5o&GnFl`@|JPaM>`QKoTTi9k4$fn_L-%`^fbLP&()P1L8*nl*?$+g` zNG{7(dVMdcoXx7necU~OhwvykpXG6Ie#;YhN+8dO=yQ01-OJztmRHzwJVa^Ef{Zx@ zEm6u>&=UBNGFq|@OC79EKEx(~Ag5eY5NAovr7=-pZc3Pw5ylo}cgp9=QeTYKtk*6F zb08-eWXi=%*MD)GQcfoeTTZ#jtdPane{f@vpcSSMFJuWp&xFSK^Ef33c;6$SP|Q<- zPIiYmnK&>!hw~f(k=$bAc+IcbSFiwYNsWw1NaHL@#uu@qMV}7RJB!isid%eg6Pz%dqmk{Uh*T*eRmM`vZ^gWzvhf`453o6@4~(Q1ZbRbz$70mj z7S1*ZU=PRH)~~i>{%4-%liki%6hUif1BJOZNtW2!k^}8P?z(7?+QBHM4%oG~bab}2 zbb`*%1-q`$&DoJ$lGP86^YGjQdiwa+%h|~gXzo~>i&0V$>l*Kbo&Sej7b7)t{=K)e zEByy|vr+5&LUC5k`=P!EaxShv>Hxx$rPqO|gLocHgnjSx?@PTKHJQUfSPTIS4^KXUdm zp2wme2kBLB`3^t^hCY_@2rxI6`w|&x*A_JaAroN|Oojx?h`Xh{w>WEQ1%mevkd_L*| zScvCEu-G}k5cUcBC9o8hVZR(!z^Aa%Igla=>=_L*>QW3hVevZ0sH&;YobMxp?O7u8 z1$^n_A0JB@Cwf;QKn98fmJjgYQmdUV^_6o7kDH8}-+)N}3%)l;Smxw#b zuZzw}B=Aic;-7ZI-CfjWu`~-OL7U=#mQ8%gr;n3_Hgalo+M2qA$HLrOMr#1+A34qo za?#)=)GJ1$rX|U_idiG)^dvb)c=5Z2*>xxLrW?)~Ne*TGj9Sh!_gmq>Tx^?VbmTHx z+`{a(A$+z`EO*d{aYvfm<9L_iyJy(V^;g$;!_9qi;em6WQ3)QRe*}+_^91#&lk$It z<~as0;3d2QE)Y?gYrbCqk#a3C0+B4^T}@eC3rP(l33}<4bQiS%&N&yo;coF8&!4>h z>~k%7-N3cQ9k;0vFz;+C8a?mgWIu;BT+4}sdEP?I<(4!ioyzH2feeN~5+Q5l zZr7)VJGlzTjeQ76aYu419OZA8XM*;bk!^0*=Z1PP_zO}m!bR|x{w!UE8QT~xwlQ3* z5xSaL!)j&?Y-u1g2Dh{j0uPvr*&3eZ8aGah;4jSeH9D!xkt&?`c6E>rFoKw-MgaF5 zFem=T=u0DcP6N_gY}VIeW?oj3)}?VJm)zpJj!22wdLm`o?bJ3HX6antqB1*lZ8X#% zwF#AN5!YrT0a1k4$oU<5<_#H*hb@MKi$ULGNK0`2V9D&-ikb9x+YB|@wcSvE3;xmn zoM5Oit{r~!oqlzf5us1mk6r5c$uNs`?e?pC{OZq!`q*dOLuYoXSzLQDWXkFK)yM&J z{%p=3E!<5P#M!TGL{{d(GWX4HFpykLjk(R37xJfBV%#e)X{7NqYTUt|NZ4qki?6Up;OV&toR@xm|7}BAfMp zFcZDpfGUAYF`h_a=9XggVR+JSC~etHE!Tt^f#xxUoi=K3M`nfDT_-Jh$$@;3&Uq#& zVlAy_{Si6$AF|F<;Q|pc2ZijebC&$bDBz;}(>X67DBvIwL88BiAdTx;G*ytSYla%< zx@5SM`&=KZ%Z9t1+7&~6tgiZ>uNiL6F;PG7yiUYrpqB}NW;ET+BqELT1`)b$4D^w{ zq_PY|Kw@|kVVWxBxxLVvM*Ca!hDM~Bk}4j=1S)S_cy|lb!#p{4B}EmnRvb4 zv@DdC(u=w@y##e2nxaV1ble7tBxRu1x0nZEuIvAnZNuEEPnGh2Jy1J=1`((&MW7B{ z$~=uT7*CEQVcC<~yc0iW`oTd4K0(Z~yPQe>(mCCRdzqE`l0AeNDUd!t zyUU%zu?KUh!6{QK0eDlm_oQ$iN@S(Ir_$vUt{fm+9y_!!%tasWkCn+SG%%9C4(2$7|V3eJESGHMm5ioP0Z zb*O>9Ce(u3RZ6;6wNb#=?76uQeOB z*u2xp_k}gPUX+v%rhY7N<-P6SRdEn4Nus;?#?U%>^rpKT3}zJ_mLEgsjwde{Kp!baEx zo8dcGPJIjRzK0)N+4QZhz|Byo+Ou-K$Y7VUK9!GT5XB2d|HTusZCBfbe*Ud)~9Czn(0rqA62KLg8TG>P)+7gu?; z*Oixx6yp^87s|XS*lY&jtVjGxq<({a30lXaof-zt~m84{N*aG z_PdIx1FrO(x|TI6`E?Zeg_cO}*NRjJU6JZ8F~`UW z+21;jItTS1)Ds}zbe}}^$w|voXy&1wMxBp(231a9EumfnK7Tt)PMm`=1V%CA3l70{m{?73^UdV!yp@Cvw3gv(x7E&&~^ zZdrxPqnCFy)`Hymbep@2W_K6VOK{PzNBQEY1aZ^>^Cl5Vwd^gM-`AT9pXRwUt~7C* zEP58E9LHR*G6@#g8`-Nw9_zX<)b z9Jb{kjgQJTg{-JU<&t+Mx4S5UP0MnmE`$_#AX+Pid7SdPN3c^Z7efIzEyr>tu`K%!znHF4~ax-{6<0=NNcz+sXMs7n2(H&MEm6C{=ji9*^h`OLh0P45K;<9 zr3^=Mq^q@YlvB!0&YhIj!?_bVJ(11eE}}=FYC*;Hj08%XHe{Sb&BU`rBy&;(%#%OS z#*Oz@731dhOtLQ4{jM&TJIa=B796L7tZsY!$O17jzPw0?CQ13oe>pM7$BJD19B5lU zl^@TkjZ3Op;IK#b&8w=>WXeIo=kCRTF5DEWrB_=yE$virg)9XUbO7Jr9O+o86H4$u+5o$x1L z19wK>1+%Wu4Z1@Q=n1``H^?9p7;yUV+!sIn@c)WUtM_>B4+CHz41&RK+U)yiK7b)G z6o$cY7y%=}2cuv#j6vXs@R5788Vlnv8xIrQ@&%2wX}%wD%N=cTYLYunO?FFr&!SHu z13o4qQ&Fd(b|*s9QD?YW6X{2+XCh=4%tq)O_jP_k>N?-ZUgsOxGWuM1X+55%Fp*oi z=h5!wyUXbdV4<6z4uQq)ecC7Pr)mi-CD3K=Oxki(`9+i?^i(nAx+1{e$=wx%@hJ(A z;{YpBqvglTq^LgQ;dA%`zJv-?pjE_nHGD-(Wyo8DDi!N%%)WuOJg;*HMlEiOau?S( z;P+eD=q|5sa?9D$3i@UO{SLOcE9yhJweWj)B|42tG|5Uj-x5hrBprrT{b2Mem1)$K zv8+scmCtj`@m$UZ$sxq8q<9;FrlTW_0&ycPN)EPcC*U6;0d~Mn*hM5|nk#bx>8C4@ zBRL5#27Yq$PV8kkoXt#dH;(t}yWPzNifmu!ZXBpFFCd2k1b!4v*v1)uH=B}P%@MlaVYxlwLL`Y_P zQF?wo%*Z8~!3d{*q;1hD08Sq6veo}$?%{fC5`r?eAh3&HO_ezC_ z)T7$g!+$-$e-_hllR89X*WiF5JF^mCBnD|9ErhZ2kQTFa=+lF&x@JHXce2_Rg+3!> zg3MwLF%Sz<=vhcaRuYsgq=uFqGX@ov1NFI*g>hLRU!&d$sm~B5yCIan{Jw*fcU`LE z8S49f%3o?xPK4wlwz=_~2l7Hb$PWdeAjCm}7N-h@G|-zH0&DAq@$);yU~aQ8%J5ti zia~KGVdOFc2fbKH9|ol`C=D`Ac$eogP!`HzmI2a3d63jsAi#>)RRVc&t;};3IAf`= zs)ooyrbSibS$=Y$Iti!&HK7*NhC2AGi&_tPTiLVs)ko6+8se!DmW|OjL4TS?-V}$; zpgGSipe5uXfL6F^4Q;S%3+_aQZ@83P!^i67nH@6w;J#>?6+Rnli?QOj6?vJF}^d zm-3$g6JZh_CxK~IsGEbU{It`}74BS6vFL!3hEHw*OlAp8j zKL_(5>WM6b&*eFu9P7vrM#$^`JoE|LEHyu5wptLcjVa@@E{I4`5l;@O@h{0XOvTGN$omV4>In` znuP4zZXgA60d_Pg{x+lwW3c3oIofQ*ZWHe1F1pQ>_je(k^(`S?Nx*3JeMmQkNXAqm zE#r^+fv2r7l_s~2=Cuva+u=t@fE}8bZ33>shhsfT;A?@@dA?@{}AszH% zAszMOWc@z~IsqpM;1ryOztEkuDI^2MpnB9`{ zzs<&Ob5C(Zz0UV6xeH?!P zLtrQjgW)g&Mq=+H#iP*68P3t30Y>(X;rT=CK7#%p`L!C3(4z0C55nG@vW+8BQY^PP zP80YArD4n$(psBp<30CT0rJSlZgPdsV0|KAO= z-uisc1+@ScdR8l6U`n*eQ&V5;k;Rfo^@*pvTH;BomJ*?5u$;QF!qZ=W*FHf1l$5UY z3}JA($24Ew!z0ya1oAn20k@4?y3DcTODg3mBC;CNGlTvLbq#zC-@sZ{VAMJ^>tVA# zRNvqkrhiK+HsWy;W(~FB`eq|iBj~|KFeHy)NFJeo=NYMQF>1W5oyf0T_^|UCcHetO z=s#drm9{TAXyI3FWQ#XBlB1C|8uz1dPyf4>>=K8vy|>LXMo+`#|51=peW-8ue5C(K zL=s>JIk6LVK_6D-`@&D?cN5qie`In|T#?B6nMC|TZggYD)0x_^7yljkv7r+D*pLoU zAT#P7K5aZh?RX5vV=#dLInII5-$0tqKGfgg5BL+izfkwX0g9(8zgBe6Gs)=N|HkZ) zM>i5uQq$C7+#c~vCg{n?o@@rDO=8hz3Zv%~%%&J-K6%$Yiep~45%e(@9~&0ONRiBj z<;S~^dt_S42P6b?!ZQ`2Q*k%daJLn^^zLc+Wz8Hvr{J{s1yBIUJt$7Xs z4|u)u<5BeQ*r$S@c>R*QSL9R6FzgT7mKg7Ph3NIRag<~`{0M;qN4_7Z#Zpcdetn90 zBd3lT`Mh#iSY9}E72(xYYA?OK0WCmo=rwD)yy0dgC33S&W*kRD48$TN z3uJ|CJj;=`>||XI*iC-CgLzKxGCh~qoPg#gkUU=L>1Jwqai0(JdspZMprDr%-f)22 zF63=tDePr6=>!3ugCaOA3dIocilZ~d5nKXFf?OkA$}1Nlas+}l9>IjQH0E;upuEZ4 zb;;#$@d`f*;N%LDt>Q|Eb6?%Cev8sTBir&w#_za8B zjEW+;BDYUO^J8B+M1gpyeU(iy@nc&8B$kQMA7L-c^(p>me96ghtR94^5z{ceOFjH^Zzsw1Ae-3cCX==ExDR z*50p(AUkfD)n#$#jJC$8kZp0-4l{X6YL7lYbbyZDuc_>uexw-xbbjO0W2khUaM+m? zbma7D7xZ0m*bTZv50IqA4P?DJo=Z!Sq8Wj}krbWJ zJ5w8lehw{VwzL*LtgpsTsg>Yo)O7rnr}>RW<{0lLO+ zoLdN7EWb}OA4_bx?0}{x=C7YL>`Ysi?sGMftQ?UDk@>|QR5!Z>3 z(N6WTcL$N%K>$0Fa!O9r#Nr|vlCKfpi5w~)cI>X{Q@y)<`ZVt@eY*E2D$Ndk2Eu0& z0U7yZA?W~9WD8d#Z>6O>410+r3%|IV4f27Pq|$V=hm?y9)BhZ=`1_e#Urf1kaUTz# zQ*lMU$eHJ5{$~axZ9E|87h-7&lI!cF2b*sQ+sh2uG~ZAA7xM)OTu6Yj`8E%=IDLT` znO_;!#jW|3OThgi+{>L`ay?oeTE?$(`Jeg8>YD<7^XEwNXEL%sBFCB+8S(@%fgbk=}0^>T-}%k}r9mUqSaO_ilVj z9Z2N&^-Az|+fY?jT$IWxa%EPLWv*uq(|1wt@%wwMLchh1U18)TXn*RdUw7j(#(7hK zjL&Qx6Y%Ho1$;@Cu0manXGzsp#C{tQTn1~r>DAXff8+g&$nAeq@EdZ^tF_3Gp*fl` z)}gM44PM&+w^+yrof`>EF16jn^JXl+^BzF(L7I*kcmkWPTfBd>vi!DGN&?EM@9`^3 zb5H$s=Ld3iE3&uI-EK!VSBI(}y$7kBhjf?kt-?fr#8xVl2o>Rnso_$-7L|Y?S;}_l zM~se3+{N-kgECDs^~Y$A|0|*_*-@W-9a#00?3OQ&cA)Mgrc$$q(Y`N}8@mYTC)f?r zZ}0KSi^O65XYUdH7w=JhFXk6;H(NVSZvDepBEzof=U3F}+47zaZ^D(R+$mpC-Fb(|aj(5yw*2 zml#?vd(SXieOoq~Zsil=ja0}(o)h{N?@9eC32CU#>eujp9d5u)?>YUJcbI+~?s(7h zPQlg(5xD2$-+g%Cy+HOQ`pb{?fA2*-+gk&kr5<_Zkm@S+*!!h=VibuKjajB0DA!?( z2~T-`Mq;EZege6aRsHsDl3!|R4T_#7a z(B;ZYCO_xI8Q!#z4$?yggv#V13bz>{Q|MLBKEJJ~uITcUF%p@~xRvjDqeHLJVfn66 z?$;=HdBrYoi6O;-kAY%wm?iYOzsWHH#qJ@gvha(P8Q&U^G*dYVAa@*_%{LozcGH4GV$}6p0`FUQWXe|R0WYA2Zit>#o{Z>zamgH^bT45w(OIo6>gTpWAV_t zMC4wIj^@4|`#=0i-I7mf1F0`TE|!F0PWh5?j*oeIUdv-DjI?FxHs$8+QaF$~o_wbv z-(g6{QyQ~(iD(&esw@$aDY#T#*{a^-mCAXKTzWuLep@0Q{)Zj?zd86kV%o)Ao*x3` zCvxeYN0R1eiu4e)Xdw&=-1b93>J+olt&k z2LVO3$9i4d)&rTnY@@vEhiX>7y?Wb_Yi)qrhR7MhByB%0sEtBj>W%&Wo1iwuj+?10 z))M@jX)54HjI7cFHX{-_@Dz>y9)UH-aSLdPhgK9rYmiT1+Mu?DcF^98FfYAzCP7o~s~I8$?8cjELk%Xms4Y$89sLnI> zSM|Vd6?q@a0A9crWbGLmWbK7nZ|D>1P<=zkk`Ok5sWb0Ef8<3NKQAF?>hKp#`47Nw zAPj;$93dKv`aX_7AcjLg4o(e49R?}yaU9O`2p9=I7zLw2&Q{1-j4|jxgpXh>jDzto z0VcvEnC#=1EX<2Quc+clS!e#@lKF{j;JtvXrca-Or;lMOOoQn#17^Z3m<@AaF2ut; zm=6nJA&FW9i{TSk0=}jETL#NPnxG7;r|79x;NeqP37=v2IeY=N=tAYNdsYe{`4)aY zd&1ofs|-rglggc)@*`=oo@g#&CTKS6R=zt5AvfhnnjAr6c5UwezFq{i4e=}RrFTsBKk{k8Lq%pxCYnZ2Hb>Oa2xKx zU2tfjR-J2D?uB}-XOI!gF9Wl7tL|g>03O04cnp%PC-4*;K5E7@^5Hr8^&&LPikW)J zzgME+M;^JBN%5_yVoy`i-KZe2fgKzW3{G&RV%>!Nh~?_7auRr|RMrsifEPj`6@)=J zL_lgN8OgsikQUNGddL7#kP$LLW{6G|W{n}BSOUtDiqitA;=gPXlgT4DwdTPrFLwD- z#UE-CQ=@|XT4H(3DqvO-DnVta0#%_JR8JLQ-9j3r&};Bq6ZpDD)k6J+vS}Lgj%JS^ z+%%?0{5MTwqP@K^?+tyRZz>gkv1!a8OD;=%^JX!zX$CQ*&B0@S}8!vQ!5f5Ra-3`gK79E0QV51fFLa0*Vt88{2) z;5=M_M7Ri-;4)l+t8fjj!wtBZiaFdZG`Han+=Y8^A0EI%cm$8(2|P_ziu1`zJwx9T z+ED`0Jm=&Wrb!2DJ&}Gj4b3qP%~DipmU2`h-1?joCofWkT3?duuRw+QBCJ|igw+B% zSRn{(UKvu{G*&zqK134iVTmh`FsCngKvRDQ5e2A z76h2%VP2Hyc65)$h_#$@DUMnK^OBgC3X=(^c~qiwSbB1R=~hzU8R!BsP!t*bMNz;~ z2D`E(T+(kX#DfGJ&549Z4DjX9mk*1wrop-bfyl3>ul4eZW&iZheq%>ERcZrbu**fA_pbwYmU zung8NVVSI5eRwis8*SAnn{Ht--1!rO=NLT8eHfBW=E7lj+{*8T^+4?jy`XnkEVG_i z+{facnG0rZP}|~%^GpoJ{PZ&u?!M$qG&7xkMBo5s?-|*j$Kng&x72qBr?d9Q!i*iU zB6|i9%K=&j>p;v0A#^aj9~N!RZ_i@=AS^4<$V#ADjT8zlHg5(MjM`U zGUAzbW5RM7{>9yg*nLDK$D+ovNalbj2(*7WbvTY(7;of+xXHt>SNrndC{L2333#3e zlVDt!%wqYmBJ%$ppFRZ2dNOsOCo|Y7sCljV2#9GF`l&Dtro#-F=?~~0zeFP|m$NXN z4RieFIpx=B7Mc>{fV2uaI+uv033wB z;SkJVB61k@2!4*@<`^6gqy7Jb<^-IiY)+w`hBN5T!Z|q4^93lt5S@sCiwL*`m*EP} zS4r_TxDGeqCftJCa0l+fJ-81K;30k<;rB7>6CaiADLmuhed_gd)EDp)2d@Z}JL;4c z&V50kgB60pnf!!vB@A{B^zxbe4HwaS`Nx%UI8jXC8!Klpell^ zVP75pHJ~Qcg4$3A>SA9HclALIq%=Tn7*6|Zgr+eLnt-geH08M&G=~<@GCZHPRd{}D z>+pisHsNvBw&8`W?ZOLN+lLq6t)w@r+8i_q*HuU8M9Mlt7w8&3l8%?JzxY2;FHYeG zZk;HBo&$;uTmyZ2Nn^rbJYaA-sFX2$25uTT9aNg;74XQxVOA{4Sl?x=;1xK07CvOg zZ)KC5eO}a=dVNf|)`;F?28nT^&eZc8X7a&KcXFr)^b9}7Oe($d)uE%Pi%9w2L>Bpb zg;!A-=vcl*&?tSD-kU)BKwmudgZH363?R2ouo5{Cbr1}O_aT}T%l^H&?arGpWj*B!w_v0iVLk@WJ?yvwXbm@|=O~^3PGfz<&wNJoO}9x(sYz;(rya#!k$> z^6{_+zJ_mLEyxFS>rmIj1_XTz8(|Y{hVNhtd=EdsR@esH;YUb-9n|)n_}>*SL$fR@ zSEP$JyW*d)-wk_kXn3?6s+<>n@(puxxmGJuNYItSp2rnCC^L14DP5DVw${RfALA{B33vP#VhT{$z z8KEq^t|dZQ%JD9-y9f8-0RlENxJWnq5d9-~3{T)GJj4HUc!ArO;W87Z>&Bc*wK%m* z_Z`7N4tj)~eyeB=4wbdMO7tC7to+J*70RUwL#M1A5^JnnYD2>Dh*TqNW%ugY-l=14Km((=%e131(}JteGR4 z;osNX8mpR91kEXe=GFM z{X`(qnTTCZ%yU6*$OCz?%LnnT$0|H@_O-R>dRSssxmTQcxN>x2PTOk^?enEra_ys*Sa5L|cldEi&68 zv$eHcL~CpLh<4Tx)ef_ER=x<5d3dC%fPfxME-T`(68g%h(wA3>Xm70w)grieETRL# zI^eNGQUrafBXy)BW*z-zEM!DPs+y#-mLWr4&(E>BaE{G~bH*;2nXpdQ?H=|pYa_Up z5!24rI(V!baZaxnAxG!TE|T+!Y%a{e^9;Xd#&9Co0O9Wt!C}mj9?M0&stY;Tl?Zkv zGF^#`6q&p^b)&|2!>pSTL8q;IQhjL{;bUo=KpR67%DX8v!;_59%}If5619lvfneDP zly=*bX?IVA^+cFUO@L-BCbq;+E9wgOhFM!jbhWmL=x%L`+AgB07L%eS$f*YTqOd*v zK?msQ<6kF`UqI}Pnn)4IPKI=qU3l&a-Jm=4fSyFE7iw>)#R5Yg)V|P<+%SKAN|sG! z8CAYnl`B)_w|eBF$0jsM>3|r*i7Zo0)juLm`3B&5APmBAFuV^Rzz`S;av*#d_QPQW zj06@@7beMtNOytdi r*)RvQxtN{ihf(7r`cZWKklD{KQz|~64$s3uq^ew}QvB#UddB|))5)yh delta 149648 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

hZEy=VsuKgF^N5^}; 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

%F+=m#GzA`EQ}_?y$j$vi?n)InF4lz$bbSKH2b` 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 So{2)GhVy4Z%!+5eZ2tquFg&FI diff --git a/tests/test_transform.py b/tests/test_transform.py index 185a620..bcb1526 100644 --- a/tests/test_transform.py +++ b/tests/test_transform.py @@ -34,12 +34,16 @@ mock_types.Menu = DummyMenu mock_types.Panel = DummyPanel mock_types.PropertyGroup = DummyPropertyGroup -mock_bpy = MagicMock() +if 'bpy' in sys.modules and isinstance(sys.modules['bpy'], MagicMock): + mock_bpy = sys.modules['bpy'] +else: + mock_bpy = MagicMock() + sys.modules['bpy'] = mock_bpy + mock_bpy.context.scene = MagicMock() mock_bpy.context.scene.unit_settings.scale_length = 0.001 mock_bpy.types = mock_types -sys.modules['bpy'] = mock_bpy sys.modules['bpy.types'] = mock_types sys.modules['bpy.props'] = MagicMock() sys.modules['bpy.utils'] = MagicMock() @@ -258,6 +262,109 @@ class TestTransform(unittest.TestCase): self.assertEqual(result_sc_2.min_z, 10.0) np.testing.assert_allclose(result_sc_2.objects[0].mesh[0, 0], [1.0, 2.0, 10.0]) + def test_gcode_transform_metadata(self): + from NodeSlicer.core.nodeslicer.nodes.mesh import SLICENODE_TransformGeometry, SLICENODE_DropGeometry + from NodeSlicer.core.slice import SlicePaths, Pather + + so = SlicingObject() + so.mesh = np.array([[[0.0, 0.0, 5.0], + [10.0, 0.0, 5.0], + [5.0, 10.0, 10.0], + [0.0, 0.0, 1.0]]], dtype=np.float64) + + sc = SlicingCollection([], "coll") + sc.objects = [so] + + # 1. Transform Geometry + t_node = SLICENODE_TransformGeometry() + t_node.resolve = lambda f: { + "Mesh": sc, + "Translation": (10.0, 20.0, 0.0), + "Rotation": (0.0, 0.0, 0.0), + "Scale": (1.0, 1.0, 1.0) + }.get(f) + + sc_transformed = t_node.evaluate_output("Mesh") + self.assertIsNotNone(sc_transformed) + self.assertEqual(len(sc_transformed.transforms), 1) + self.assertEqual(sc_transformed.transforms[0]["type"], "transform_geometry") + + # 2. Drop Geometry + d_node = SLICENODE_DropGeometry() + d_node.resolve = lambda f: { + "Mesh": sc_transformed, + "Z": 0.0 + }.get(f) + + sc_dropped = d_node.evaluate_output("Mesh") + self.assertIsNotNone(sc_dropped) + self.assertEqual(len(sc_dropped.transforms), 2) + self.assertEqual(sc_dropped.transforms[1]["type"], "drop_geometry") + + # 3. Create SlicePaths from geometry + path = np.array([[10.0, 20.0, 0.0], [20.0, 20.0, 0.0], [15.0, 30.0, 0.0]]) + sp = SlicePaths([path], transforms=sc_dropped.transforms) + + # 4. Generate G-code with Pather + pather = Pather(sp) + gcode = pather.to_gcode(include_header=True) + + self.assertIn(";PREPARATION_TRANSFORMS=", gcode) + self.assertIn(";TRANSFORM_GEOMETRY_0_TRANSLATION=10.000000,20.000000,0.000000", gcode) + self.assertIn(";DROP_GEOMETRY_1_OFFSET_Z=-5.000000", gcode) + self.assertIn(";PREPARATION_TOTAL_TRANSLATION=10.000000,20.000000,-5.000000", gcode) + + # 5. Process G-code with GcodeToMesh preview node + from NodeSlicer.core.nodeslicer.nodes.preview import SLICENODE_GcodeToMesh + preview_node = SLICENODE_GcodeToMesh() + preview_node.show_e_0 = True + + mock_mod_dict = {} + class MockModifier: + type = 'NODES' + node_group = MagicMock() + def __getitem__(self, k): return mock_mod_dict.get(k) + def __setitem__(self, k, v): mock_mod_dict[k] = v + def get(self, k, default=None): return mock_mod_dict.get(k, default) + + mock_obj = MagicMock() + mock_obj.type = 'MESH' + mock_obj.modifiers = [MockModifier()] + + import sys + sys.modules['bpy'].data.objects = {"PreviewObj": mock_obj} + sys.modules['bpy'].data.node_groups = {"Nonplanar Slicing Preview": mock_obj.modifiers[0].node_group} + + preview_node._process_gcode(gcode, "PreviewObj") + + # Verify modifier sockets Socket_8, Socket_6, Socket_9 + self.assertEqual(mock_mod_dict.get("Socket_8"), (0.01, 0.02, -0.005)) + self.assertEqual(mock_mod_dict.get("Socket_6"), (0.0, 0.0, 0.0)) + + # Test overwriting on an existing mesh object with pre-existing modifier values + mock_mod_dict["Socket_8"] = [0.0, 0.0, 0.0] + mock_mod_dict["Socket_6"] = [1.0, 1.0, 1.0] + mock_mod_dict["Socket_9"] = [2.0, 2.0, 2.0] + + preview_node._process_gcode(gcode, "PreviewObj") + + self.assertEqual(tuple(mock_mod_dict.get("Socket_8")), (0.01, 0.02, -0.005)) + self.assertEqual(tuple(mock_mod_dict.get("Socket_6")), (0.0, 0.0, 0.0)) + self.assertEqual(tuple(mock_mod_dict.get("Socket_9")), (1.0, 1.0, 1.0)) + + # Test G-code with non-zero 3D rotation and non-uniform scale + gcode_rot = ( + ";PREPARATION_TOTAL_TRANSLATION=10.000000,20.000000,30.000000\n" + ";PREPARATION_TOTAL_ROTATION=0.150000,0.250000,0.350000\n" + ";PREPARATION_TOTAL_SCALE=1.500000,2.000000,2.500000\n" + "G1 X10 Y20 Z30 E1\n" + ) + preview_node._process_gcode(gcode_rot, "PreviewObj") + self.assertEqual(tuple(mock_mod_dict.get("Socket_8")), (0.01, 0.02, 0.03)) + self.assertEqual(tuple(mock_mod_dict.get("Socket_6")), (0.15, 0.25, 0.35)) + self.assertEqual(tuple(mock_mod_dict.get("Socket_9")), (1.5, 2.0, 2.5)) + + if __name__ == '__main__': unittest.main()