From 28fce9b418d5c5a4bccf9807e4b71cd93a23a7ea Mon Sep 17 00:00:00 2001 From: Saptarshi Ghosh Date: Fri, 15 Nov 2024 14:46:39 +0100 Subject: [PATCH 01/36] Added Basic blocks and Folders --- .../__init__.py | 1 + .../regulated_cascoded_current_mirror.py | 283 ++++++++++++++++++ 2 files changed, 284 insertions(+) create mode 100644 openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/__init__.py create mode 100644 openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/__init__.py b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/__init__.py new file mode 100644 index 000000000..f4ffde1bc --- /dev/null +++ b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/__init__.py @@ -0,0 +1 @@ +from glayout.flow.blocks.composite.regulated_cascoded_current_mirror.regulated_cascoded_current_mirror import CurrentMirror, generate_current_mirror_netlist,create_via,sky130_add_current_mirror_labels \ No newline at end of file diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py new file mode 100644 index 000000000..7c64646c6 --- /dev/null +++ b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py @@ -0,0 +1,283 @@ +import sys +from os import path, rename, environ +environ['OPENBLAS_NUM_THREADS'] = '1' +from pathlib import Path +# path to glayout +sys.path.append(path.join(str(Path(__file__).resolve().parents[2]))) + + +from glayout.flow.primitives.guardring import tapring +from glayout.flow.primitives.fet import pmos +from glayout.flow.pdk.mappedpdk import MappedPDK +from glayout.flow.routing.straight_route import straight_route +from glayout.flow.routing.c_route import c_route +from glayout.flow.routing.L_route import L_route +from gdsfactory import Component +from glayout.flow.spice.netlist import Netlist +from glayout.flow.pdk.sky130_mapped import sky130_mapped_pdk as sky130 +from glayout.flow.pdk.gf180_mapped import gf180_mapped_pdk as gf180 +from glayout.flow.placement.two_transistor_interdigitized import two_nfet_interdigitized, two_pfet_interdigitized +from gdsfactory.components import text_freetype, rectangle +from typing import Optional, Union +from glayout.flow.pdk.util.comp_utils import evaluate_bbox, prec_center, prec_array, movey, align_comp_to_port, prec_ref_center +from glayout.flow.routing.smart_route import smart_route + + +global PDK_ROOT +if 'PDK_ROOT' in environ: + PDK_ROOT = str(Path(environ['PDK_ROOT']).resolve()) +else: + PDK_ROOT = "/usr/bin/miniconda3/share/pdk/" + + +def generate_current_mirror_netlist( + pdk: MappedPDK, + instance_name: str, + CM_size: tuple[float, float, int], # (width, length, multipliers) + drain_net_A: str, + gate_net: str, + source_net: str, + drain_net_B: str, + transistor_type: str = "nfet", + bulk_net: str = None, + dummy: bool = True, + subckt_only: bool = False, + proposed_ground: str = None, # Proposed ground net +) -> Netlist: + """Generate a netlist for a current mirror.""" + + if bulk_net is None: + bulk_net = "VDD" if transistor_type.lower() == "pfet" else "VSS" + + width = CM_size[0] + length = CM_size[1] + multipliers = CM_size[2] + mtop = multipliers if subckt_only else 1 + mtop = multipliers * 2 if dummy else multipliers # Double the multiplier to account for the dummies + + + model_name = pdk.models[transistor_type.lower()] + + circuit_name = instance_name + nodes = [drain_net_A, drain_net_B, proposed_ground] + + source_netlist = f".subckt {circuit_name} {' '.join(nodes)}\n" + + #source_netlist += f"V{proposed_ground}1 ({proposed_ground} {bulk_net}) 0\n" #Proposed ground connection + + + # Generating only two transistors (one on each side): + source_netlist += f"XA {drain_net_A} {gate_net} {source_net} {bulk_net} {model_name} l={length} w={width} m={mtop}\n" + source_netlist += f"XB {drain_net_B} {gate_net} {source_net} {bulk_net} {model_name} l={length} w={width} m={mtop}\n" + + source_netlist += ".ends " + circuit_name + + + instance_format = "X{name} {nodes} {circuit_name} l={length} w={width} m={mult}" + + return Netlist( + circuit_name=circuit_name, + nodes=nodes, + source_netlist=source_netlist, + instance_format=instance_format, + parameters={ + "model": model_name, + "width": width, + "length": length, + 'mult': multipliers, + }, + ) + +def create_via(PDK: MappedPDK): + # Define the via dimensions and rules + via_dimension = PDK.get_grule('via1')['width'] + metal1_dimension = via_dimension + 2 * PDK.get_grule('via1','met1')['min_enclosure'] + metal2_dimension = via_dimension + 2 * PDK.get_grule('via1','met2')['min_enclosure'] + + # Get the layers for via and metals + via_layer = PDK.get_glayer('via1') + metal1_layer = PDK.get_glayer('met2') + metal2_layer = PDK.get_glayer('met3') + + # Create the component and add the layers + top_level = Component(name='via_example') + top_level << rectangle(size=(via_dimension, via_dimension), layer=via_layer) + top_level << rectangle(size=(metal1_dimension, metal1_dimension), layer=metal1_layer) + top_level << rectangle(size=(metal2_dimension, metal2_dimension), layer=metal2_layer) + + return top_level + +def sky130_add_current_mirror_labels(CMS: Component, transistor_type: str = "nfet",pdk: MappedPDK =sky130) -> Component: # Re-introduce transistor_type + """Add labels to the current mirror layout for LVS, handling both nfet and pfet.""" + + met2_pin = (69, 16) + met2_label = (69, 5) + met3_pin = (70, 16) + met3_label = (70, 5) + + + + CMS.unlock() + move_info = [] + + # VREF label (for both gate and drain of transistor A, and dummy drains) + vref_label = rectangle(layer=met3_pin, size=(1, 1), centered=True).copy() + vref_label.add_label(text="VREF", layer=met3_label) + move_info.append((vref_label, CMS.ports["currm_A_gate_E"], None)) # Gate of A + move_info.append((vref_label, CMS.ports["currm_A_drain_E"], None)) # Drain of A + + + # VCOPY label (for drain of transistor B) + vcopy_label = rectangle(layer=met3_pin, size=(1, 1), centered=True).copy() + vcopy_label.add_label(text="VCOPY", layer=met3_label) + move_info.append((vcopy_label, CMS.ports["currm_B_drain_E"], None)) # Drain of B + + + + # VSS/VDD label (for sources/bulk connection) + if transistor_type.lower() == "nfet": + bulk_net_name = "VSS" + bulk_pin_layer = met2_pin #met2 for nfet bulk + bulk_label_layer = met2_label #met2 for nfet bulk + else: # pfet + bulk_net_name = "VDD" + bulk_pin_layer = met3_pin #met3 for pfet bulk + bulk_label_layer = met3_label #met3 for pfet bulk + + bulk_label = rectangle(layer=bulk_pin_layer, size=(1, 1), centered=True).copy() #Layer changes based on type + bulk_label.add_label(text=bulk_net_name, layer=bulk_label_layer) + move_info.append((bulk_label, CMS.ports["currm_A_source_E"], None)) # Source of A + move_info.append((bulk_label, CMS.ports["currm_B_source_E"], None)) # Source of B + + # VB label (connected to the dummy transistors' drains if present) + if type == "nfet": + vb_label = rectangle(layer=met2_pin, size=(1, 1), centered=True).copy() #met2 for nfet + vb_label.add_label(text=bulk_net_name , layer=met2_label) + move_info.append((vb_label, CMS.ports["purposegndportsbottom_met_E"], None)) + move_info.append((vb_label, CMS.ports["purposegndportsbottom_met_W"], None)) + else: #type is pfet + vb_label = rectangle(layer=met3_pin, size=(1, 1), centered=True).copy() #met3 for pfet + vb_label.add_label(text=bulk_net_name , layer=met3_label) + move_info.append((vb_label, CMS.ports["purposegndportsbottom_met_E"], None)) + move_info.append((vb_label, CMS.ports["purposegndportsbottom_met_W"], None)) + + + + # Add labels to the component + for label, port, alignment in move_info: + if port: + alignment = ('c', 'c') if alignment is None else alignment + aligned_label = align_comp_to_port(label, port, alignment=alignment) + CMS.add(aligned_label) + + return CMS.flatten() + +def CurrentMirror(pdk: MappedPDK,CM_size: tuple[float, float, int],type: Optional[str] = 'nfet',rmult: Optional[int] =1): + + CurrentMirror = Component(name="CurrentMirror") + + if type =="pfet" or type =="pmos": + currm= two_pfet_interdigitized(pdk,numcols=CM_size[2],width=CM_size[0],length=CM_size[1], + rmult=rmult,gate_route_topmet="met3",sd_route_topmet="met3", + with_substrate_tap=False,with_tie=True,tie_layers=("met2", "met2")) + elif type =="nfet" or type =="nmos": + currm= two_nfet_interdigitized(pdk,numcols=CM_size[2],width=CM_size[0],length=CM_size[1], + rmult=rmult,gate_route_topmet="met3",sd_route_topmet="met3", + with_substrate_tap=False,with_tie=True,tie_layers=("met2", "met2")) + else: + raise ValueError("type must be either nfet or pfet") + + currm_ref = prec_ref_center(currm) + CurrentMirror.add(currm_ref) + CurrentMirror.add_ports(currm_ref.get_ports_list(),prefix="currm_") + + + gate_short = CurrentMirror << smart_route(pdk,CurrentMirror.ports["currm_A_gate_E"],CurrentMirror.ports["currm_B_gate_E"],currm_ref,CurrentMirror) + + CurrentMirror << smart_route(pdk,CurrentMirror.ports["currm_A_drain_E"],CurrentMirror.ports["currm_A_gate_E"],currm_ref,CurrentMirror) + + srcshort = CurrentMirror << smart_route(pdk,CurrentMirror.ports["currm_A_source_E"],CurrentMirror.ports["currm_B_source_E"],currm_ref,CurrentMirror) + + CurrentMirror.add_ports(srcshort.get_ports_list(), prefix="purposegndports") + + CurrentMirror.info["netlist"] = generate_current_mirror_netlist( + pdk=pdk, + instance_name=CurrentMirror.name, + CM_size=CM_size, # (width, length, multipliers) + transistor_type=type, + drain_net_A="VREF", # Input drain connected to VREF (as seen in the layout) + gate_net="VREF", # Gate connected to VREF (as seen in the layout) + source_net="VSS" if type=="nfet" else "VDD", # Source connected to VSS + drain_net_B="VCOPY", # Output drain connected to VCOPY + dummy=True, # Include dummy transistors (present in the layout) + subckt_only=True, # Generate only the subcircuit (no instances) + proposed_ground= "VSS" if type=="nfet" else "VDD", #Proposed ground should also change + + ) + + return CurrentMirror + + +# %% +# netlist=generate_current_mirror_netlist( +# pdk=sky130, +# instance_name="CM", +# CM_size=(3, 3, 2), +# transistor_type="nfet", +# drain_net_A="VREF", # Input drain connected to VREF (as seen in the layout) +# gate_net="VREF", # Gate connected to VREF (as seen in the layout) +# source_net="VSS", # Source connected to VSS +# drain_net_B="VCOPY", # Output drain connected to VCOPY +# dummy=True, # Include dummy transistors (present in the layout) +# subckt_only=True, # Generate only the subcircuit (no instances) +# proposed_ground="VSS", #Proposed ground is VSS +# ) + +# print(netlist.source_netlist) # For debugging purposes + + +comp = CurrentMirror(sky130, (3, 3, 2), type='nfet', rmult=1) +comp = sky130_add_current_mirror_labels(comp, transistor_type='nfet', pdk=sky130) +comp.name = "CM" +comp.write_gds("CM.gds") + +# for absc in comp.ports.keys(): +# if len(absc.split("_")) <=5: +# print(absc) + +print(comp.info["netlist"].generate_netlist()) +comp.show() + +# %% +print("\n...Running LVS...") + +sky130.lvs_netgen(comp, "CM") + +# %% + + + +# extractbash_template=str() +# #import pdb; pdb.set_trace() +# with open(str(_TAPEOUT_AND_RL_DIR_PATH_)+"/extract.bash.template","r") as extraction_script: +# extractbash_template = extraction_script.read() +# extractbash_template = extractbash_template.replace("@@PDK_ROOT",PDK_ROOT).replace("@@@PAROPT","noparasitics" if noparasitics else "na") +# with open(str(tmpdirname)+"/extract.bash","w") as extraction_script: +# extraction_script.write(extractbash_template) +# #copyfile("extract.bash",str(tmpdirname)+"/extract.bash") +# copyfile(str(_TAPEOUT_AND_RL_DIR_PATH_)+"/opamp_perf_eval.sp",str(tmpdirname)+"/opamp_perf_eval.sp") +# copytree(str(_TAPEOUT_AND_RL_DIR_PATH_)+"/sky130A",str(tmpdirname)+"/sky130A") +# # extract layout +# Popen(["bash","extract.bash", tmp_gds_path, opamp_v.name],cwd=tmpdirname).wait() +# print("Running simulation at temperature: " + str(temperature_info[0]) + "C") +# process_spice_testbench(str(tmpdirname)+"/opamp_perf_eval.sp",temperature_info=temperature_info) +# process_netlist_subckt(str(tmpdirname)+"/opamp"+str(index)+"_pex.spice", temperature_info[1], cload=cload, noparasitics=noparasitics) +# rename(str(tmpdirname)+"/opamp"+str(index)+"_pex.spice", str(tmpdirname)+"/opamp_pex.spice") +# # run sim and store result +# #import pdb;pdb.set_trace() +# Popen(["ngspice","-b","opamp_perf_eval.sp"],cwd=tmpdirname).wait() +# ac_file = str(tmpdirname)+"/result_ac.txt" +# power_file = str(tmpdirname)+"/result_power.txt" +# noise_file = str(tmpdirname)+"/result_noise.txt" +# result_dict = get_sim_results(ac_file, power_file, noise_file) +# result_dict["area"] = area \ No newline at end of file From 4164fc3faf40e2842c2ea4881fc8431703e9b2d4 Mon Sep 17 00:00:00 2001 From: Saptarshi Ghosh Date: Fri, 15 Nov 2024 16:44:47 +0100 Subject: [PATCH 02/36] added test code for the primitive cell --- .../CM_primitive_cell_test.py | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/CM_primitive_cell_test.py diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/CM_primitive_cell_test.py b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/CM_primitive_cell_test.py new file mode 100644 index 000000000..716d9f269 --- /dev/null +++ b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/CM_primitive_cell_test.py @@ -0,0 +1,78 @@ +import sys +from os import path, rename, environ +environ['OPENBLAS_NUM_THREADS'] = '1' +from pathlib import Path +# path to glayout +sys.path.append(path.join(str(Path(__file__).resolve().parents[2]))) + + +from glayout.flow.primitives.guardring import tapring +from glayout.flow.primitives.fet import pmos +from glayout.flow.pdk.mappedpdk import MappedPDK +from glayout.flow.routing.straight_route import straight_route +from glayout.flow.routing.c_route import c_route +from glayout.flow.routing.L_route import L_route +from gdsfactory import Component +from glayout.flow.spice.netlist import Netlist +from glayout.flow.pdk.sky130_mapped import sky130_mapped_pdk as sky130 +from glayout.flow.pdk.gf180_mapped import gf180_mapped_pdk as gf180 +from glayout.flow.placement.two_transistor_interdigitized import two_nfet_interdigitized, two_pfet_interdigitized +from gdsfactory.components import text_freetype, rectangle +from typing import Optional, Union +from glayout.flow.pdk.util.comp_utils import evaluate_bbox, prec_center, prec_array, movey, align_comp_to_port, prec_ref_center +from glayout.flow.routing.smart_route import smart_route + + +global PDK_ROOT +if 'PDK_ROOT' in environ: + PDK_ROOT = str(Path(environ['PDK_ROOT']).resolve()) +else: + PDK_ROOT = "/usr/bin/miniconda3/share/pdk/" + +from glayout.flow.blocks.elementary.current_mirror.current_mirror import current_mirror, current_mirror_netlist + +comp = CurrentMirror(sky130, (3, 3, 2), type='nfet', rmult=1) +comp = sky130_add_current_mirror_labels(comp, transistor_type='nfet', pdk=sky130) +comp.name = "CM" +comp.write_gds("CM.gds") + +# for absc in comp.ports.keys(): +# if len(absc.split("_")) <=5: +# print(absc) + +print(comp.info["netlist"].generate_netlist()) +comp.show() + +# %% +print("\n...Running LVS...") + +sky130.lvs_netgen(comp, "CM") + +# %% + + + +# extractbash_template=str() +# #import pdb; pdb.set_trace() +# with open(str(_TAPEOUT_AND_RL_DIR_PATH_)+"/extract.bash.template","r") as extraction_script: +# extractbash_template = extraction_script.read() +# extractbash_template = extractbash_template.replace("@@PDK_ROOT",PDK_ROOT).replace("@@@PAROPT","noparasitics" if noparasitics else "na") +# with open(str(tmpdirname)+"/extract.bash","w") as extraction_script: +# extraction_script.write(extractbash_template) +# #copyfile("extract.bash",str(tmpdirname)+"/extract.bash") +# copyfile(str(_TAPEOUT_AND_RL_DIR_PATH_)+"/opamp_perf_eval.sp",str(tmpdirname)+"/opamp_perf_eval.sp") +# copytree(str(_TAPEOUT_AND_RL_DIR_PATH_)+"/sky130A",str(tmpdirname)+"/sky130A") +# # extract layout +# Popen(["bash","extract.bash", tmp_gds_path, opamp_v.name],cwd=tmpdirname).wait() +# print("Running simulation at temperature: " + str(temperature_info[0]) + "C") +# process_spice_testbench(str(tmpdirname)+"/opamp_perf_eval.sp",temperature_info=temperature_info) +# process_netlist_subckt(str(tmpdirname)+"/opamp"+str(index)+"_pex.spice", temperature_info[1], cload=cload, noparasitics=noparasitics) +# rename(str(tmpdirname)+"/opamp"+str(index)+"_pex.spice", str(tmpdirname)+"/opamp_pex.spice") +# # run sim and store result +# #import pdb;pdb.set_trace() +# Popen(["ngspice","-b","opamp_perf_eval.sp"],cwd=tmpdirname).wait() +# ac_file = str(tmpdirname)+"/result_ac.txt" +# power_file = str(tmpdirname)+"/result_power.txt" +# noise_file = str(tmpdirname)+"/result_noise.txt" +# result_dict = get_sim_results(ac_file, power_file, noise_file) +# result_dict["area"] = area \ No newline at end of file From 52c5bc2d7303b313062bc97e14634eef3337a145 Mon Sep 17 00:00:00 2001 From: Saptarshi Ghosh Date: Fri, 15 Nov 2024 17:06:11 +0100 Subject: [PATCH 03/36] updated test code path for pulling current mirror template from primitive --- .../CM_primitive_cell_test.py | 131 +++++++++++++----- 1 file changed, 95 insertions(+), 36 deletions(-) diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/CM_primitive_cell_test.py b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/CM_primitive_cell_test.py index 716d9f269..39bd7718f 100644 --- a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/CM_primitive_cell_test.py +++ b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/CM_primitive_cell_test.py @@ -1,40 +1,99 @@ import sys -from os import path, rename, environ -environ['OPENBLAS_NUM_THREADS'] = '1' -from pathlib import Path -# path to glayout -sys.path.append(path.join(str(Path(__file__).resolve().parents[2]))) +sys.path.append('../../elementary/current_mirror/') +sys.path.append('../../composite/') - -from glayout.flow.primitives.guardring import tapring -from glayout.flow.primitives.fet import pmos from glayout.flow.pdk.mappedpdk import MappedPDK -from glayout.flow.routing.straight_route import straight_route -from glayout.flow.routing.c_route import c_route -from glayout.flow.routing.L_route import L_route -from gdsfactory import Component -from glayout.flow.spice.netlist import Netlist from glayout.flow.pdk.sky130_mapped import sky130_mapped_pdk as sky130 from glayout.flow.pdk.gf180_mapped import gf180_mapped_pdk as gf180 -from glayout.flow.placement.two_transistor_interdigitized import two_nfet_interdigitized, two_pfet_interdigitized -from gdsfactory.components import text_freetype, rectangle -from typing import Optional, Union -from glayout.flow.pdk.util.comp_utils import evaluate_bbox, prec_center, prec_array, movey, align_comp_to_port, prec_ref_center -from glayout.flow.routing.smart_route import smart_route - - -global PDK_ROOT -if 'PDK_ROOT' in environ: - PDK_ROOT = str(Path(environ['PDK_ROOT']).resolve()) -else: - PDK_ROOT = "/usr/bin/miniconda3/share/pdk/" - -from glayout.flow.blocks.elementary.current_mirror.current_mirror import current_mirror, current_mirror_netlist - -comp = CurrentMirror(sky130, (3, 3, 2), type='nfet', rmult=1) -comp = sky130_add_current_mirror_labels(comp, transistor_type='nfet', pdk=sky130) -comp.name = "CM" -comp.write_gds("CM.gds") + +from gdsfactory.cell import cell, clear_cache +from gdsfactory.component import Component, copy +from gdsfactory.component_reference import ComponentReference +from gdsfactory.components.rectangle import rectangle +from glayout.flow.pdk.mappedpdk import MappedPDK +from typing import Optional, Union + +from glayout.flow.pdk.util.snap_to_grid import component_snap_to_grid +from pydantic import validate_arguments +from glayout.flow.pdk.util.comp_utils import evaluate_bbox, prec_ref_center, movex, movey, to_decimal, to_float, move, align_comp_to_port, get_padding_points_cc +from glayout.flow.pdk.util.port_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, set_port_orientation, rename_component_ports + + +from current_mirror import current_mirror, current_mirror_netlist + + +def sky130_add_current_mirror_labels(CMS: Component, transistor_type: str = "nfet",pdk: MappedPDK =sky130) -> Component: # Re-introduce transistor_type + """Add labels to the current mirror layout for LVS, handling both nfet and pfet.""" + + met2_pin = (69, 16) + met2_label = (69, 5) + met3_pin = (70, 16) + met3_label = (70, 5) + + + + CMS.unlock() + move_info = [] + + # VREF label (for both gate and drain of transistor A, and dummy drains) + vref_label = rectangle(layer=met3_pin, size=(1, 1), centered=True).copy() + vref_label.add_label(text="VREF", layer=met3_label) + move_info.append((vref_label, CMS.ports["currm_A_gate_E"], None)) # Gate of A + move_info.append((vref_label, CMS.ports["currm_A_drain_E"], None)) # Drain of A + + + # VCOPY label (for drain of transistor B) + vcopy_label = rectangle(layer=met3_pin, size=(1, 1), centered=True).copy() + vcopy_label.add_label(text="VCOPY", layer=met3_label) + move_info.append((vcopy_label, CMS.ports["currm_B_drain_E"], None)) # Drain of B + + + + # VSS/VDD label (for sources/bulk connection) + if transistor_type.lower() == "nfet": + bulk_net_name = "VSS" + bulk_pin_layer = met2_pin #met2 for nfet bulk + bulk_label_layer = met2_label #met2 for nfet bulk + else: # pfet + bulk_net_name = "VDD" + bulk_pin_layer = met3_pin #met3 for pfet bulk + bulk_label_layer = met3_label #met3 for pfet bulk + + bulk_label = rectangle(layer=bulk_pin_layer, size=(1, 1), centered=True).copy() #Layer changes based on type + bulk_label.add_label(text=bulk_net_name, layer=bulk_label_layer) + move_info.append((bulk_label, CMS.ports["currm_A_source_E"], None)) # Source of A + move_info.append((bulk_label, CMS.ports["currm_B_source_E"], None)) # Source of B + + # VB label (connected to the dummy transistors' drains if present) + if type == "nfet": + vb_label = rectangle(layer=met2_pin, size=(1, 1), centered=True).copy() #met2 for nfet + vb_label.add_label(text=bulk_net_name , layer=met2_label) + move_info.append((vb_label, CMS.ports["purposegndportsbottom_met_E"], None)) + move_info.append((vb_label, CMS.ports["purposegndportsbottom_met_W"], None)) + else: #type is pfet + vb_label = rectangle(layer=met3_pin, size=(1, 1), centered=True).copy() #met3 for pfet + vb_label.add_label(text=bulk_net_name , layer=met3_label) + move_info.append((vb_label, CMS.ports["purposegndportsbottom_met_E"], None)) + move_info.append((vb_label, CMS.ports["purposegndportsbottom_met_W"], None)) + + + + # Add labels to the component + for label, port, alignment in move_info: + if port: + alignment = ('c', 'c') if alignment is None else alignment + aligned_label = align_comp_to_port(label, port, alignment=alignment) + CMS.add(aligned_label) + + return CMS.flatten() + + + +comp = current_mirror(sky130, numcols=2, device='nfet') + +# comp = sky130_add_current_mirror_labels(comp, transistor_type='nfet', pdk=sky130) +# comp.name = "CM" +# comp.write_gds("CM.gds") # for absc in comp.ports.keys(): # if len(absc.split("_")) <=5: @@ -43,10 +102,10 @@ print(comp.info["netlist"].generate_netlist()) comp.show() -# %% -print("\n...Running LVS...") +# # %% +# print("\n...Running LVS...") -sky130.lvs_netgen(comp, "CM") +# sky130.lvs_netgen(comp, "CM") # %% @@ -75,4 +134,4 @@ # power_file = str(tmpdirname)+"/result_power.txt" # noise_file = str(tmpdirname)+"/result_noise.txt" # result_dict = get_sim_results(ac_file, power_file, noise_file) -# result_dict["area"] = area \ No newline at end of file +# result_dict["area"] = area From 26afca65135097fc3b01e0a491442c5e4fecc1ae Mon Sep 17 00:00:00 2001 From: Saptarshi Ghosh Date: Fri, 15 Nov 2024 17:19:05 +0100 Subject: [PATCH 04/36] Added Labeling for ports --- .../regulated_cascoded_current_mirror/CM.gds | Bin 0 -> 61044 bytes .../CM_primitive_cell_test.py | 135 ++++++++---------- 2 files changed, 63 insertions(+), 72 deletions(-) create mode 100644 openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/CM.gds diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/CM.gds b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/CM.gds new file mode 100644 index 0000000000000000000000000000000000000000..5d3c0be21785ff8fa9e39768910fdf1de0fcf610 GIT binary patch literal 61044 zcmb`Q53rt9edpi%UPy{11%y;7GL?xgwPGX0pfsf|YGlx*)UuJX5ix~GQ;P_KmaQqU zY1g8*E_G!_otrCZBbnldh9JC=5s3`;F_7@Ku$>rn1{?|#1LIp61= z-*fJJE;p<*?|kxp@A=)|_xV2OJkNRmTpX<$jmJMfdeO{y^%JA#jZPo^!008T7nlDY zoj6|g%R7GIrfoOfIvSled;CwG_Fo>q_>WHe)gNDb>u>*`SAO`%M=v^ldhM!Jt6q2M z=(z72jaIE0kA8Zz>IcT7b4KT!JiD;)%<~r(=DvS4I_{s%(P;KxrJG4V?i7YRZ!~)0 z^H<$`)3$fL=N&iPbp7^guim&}`?(v>z4n69i6_sF{6CNV!RN2q@~(Gn)421`J#YJY z8(w+AOU|uFt{yeLpSEh%HCNws!!0*&zk2(tHk^OKx!bPkkL2~~NKWgHWbXcjh53^g z7AD^<_;a|IZk{|!?s5`ceNJNTA;z7oq3bv>W(ke$Nu!2yrk>flY04>m@jG9C;##-zoma4PxK%AbKHI3>?7si zJkrlY|LXWBKgRFi{Plcycia>6$Cjus&fnyG#&iBA{|R#bdRjj})GzH{KAo4T<9Rmz zl^gR-es%tOTF?0{Gv{BpYUx$x75v(A-pwD+`T9K`$B#xcZ-eVh>tZ{S(H$#rOr}cHA{&k`Ms~CSOb>bHI-h$RoU8equTz^llH?3b0>IeS0@EoG<_3$zH zj)K+?h5CVi#vfFF_-*wsX#HTQAN1#VuTy_`r}`JPeqF1ce(zH~)N#wdY5jenzV@#^ z@_zuzziB=8AJpS_kLscF)A=*4?+N_}$4|cv)XBfjzxO3j`htbEQV!M9+ueT~s-}&z{M#sMv>i9FQ&wn@6hwJYAYp8jW2V9Wvn-*z({>e}u&mVo=$9+xf zgZ^E8@1MM$;&+h$%o<4kruETNq5r@?^+%|C4Rxo(n-*z()XHDyeP#V?|NA=sqX#?x zJ+1Fs#{cfl|LBptFldn*Hz0{!Qy!L;pJe%d&r6|Hyx2TE8sR z*Z$qdeNF4Jf9+rQ8J)+C*}rK$-hXQUtF!-$vVYV1>Sg@9kNcX|WB-AF*4ttEhr0i0 z{hHPfhyDZqjDJA>;nVV8(E0#=|Be^>UuKl?YW?+X2E|GLk~|7Ws) z(|YUvr`+7feNF4Jf9-!$_J39OZ(859jQ{o7|Bme6w7x#n*ZI4T`7VWsy8h|@ zq3d5F|JMCO*Y~CFANh5Y=3RH4rfv=Y?ytYr#o#~OeUuyki|EcbZT+hBK)tlBE`^U+jaospXo%k61hl17*h2tOiXZ%6+ zhpd~)zZA6I*ngzl*rz3O-AwtJ*5m$dkU#xcC&|B#TmDV!jrEg!tB?F2fbwrzkNpS7 z&-vP;dZ_$#{!Ht8LVmUX4b&-rop<>+t#1hRgZ_-yJd^+J>R-@$oPUG<_|C;8{QL-Y@_!bT|3vFzyI$*D^;-9;@5s7My0}Dr-hb)1 zwf@ubuZ24POzVU7AFkh%&r|;-bx`}q$^TuX_16CJ82WeTzxPjGPsx9G{ZjtAj-~UE z_16Az@_Fiy$Uk+b%l{&+xAu?eysxZ(?SEhAU;D=7+qAwfoWDW-_}|_6*S=Byds=Vo zACrIgabMGV>|guen*Hz0{!Qy!m+^mD_OI)n{F~Mr`^V(pecacy9{bn+b)V7t-I)EG z*5m!B&VP0Ge^K^tT5s$hQ(yOSU(pt#lT95r}|GTpP{n@{1eOGJ#;8*uK`Dfpl{F~NW_dn(4KJIH;kNs=^o3j6_ zvVYV1re*xE&;EC0|EBfE{xRk6KJIH;U#5S$Pw4um`-iT7iTVDa>-$po5AVPF`v-Mv zbo}PxePwX}xGKGW=IdhK@mr|Z{X_Fb{!Qy!Lj7R+>HO{6|}xC)Cd1_f6I8TQ;G7+d);aO zE?Qse`epyBzarOb->N#(dSm}S_fK5656M4#O#Ta6Kh*Ni_=D;Xb=~@*g4P@RzmyyM z|dY1J*vmI@>Bk%^*tfK z+W&^^U*})`P3w*Qd-AP$CjZ;Bf75!Le}n$`)p^qVeOUbqT3_z`9nJo=ZeoxZH zaQtDJPNjJNKIft;hVL|Fr~{t&3&w(_15}Toz|(yyiN6{_15~;`|Vn%BJ*zUHw#*Ct>3pWUgue4{my-?p!L@I zS8iG-BI`EgXIhWzXOKVrv`*z;$1VS+_15~8Z}kybx5>Y0J@&89pVq1JSAIHwruEkP zm2a(6QRiR&P3x`oE8m)DBI`E!H?7C{H^>jaI#0@<^_%iHtuJ@}v`*!pb({Pr^81o5 zhV@hDcZ53mXWb_MiPR-sY}coCO1;*t>O1E3%Xt~B-?0CgdnG^r5_PYn?hRZ&e%iDy zhW=syGskxoQvWx0eJB6Hv@VAFnExmFIiFY0iN6CMDro)POVs=Ry_@lGr%u#9De!dVYfE(#^Lv{OkPo$64ecU3sLRKZ|bJ;t9#fAME{oLkWPX`w#M-{JR-<~LIRb3DY8 z`Muv2m#FvWpDXtt=KnGDkLNG>%RcSfT-yJ0?H|_PglqKti99YS$lOo5dEyfJ<@K-6 z-F3ZP{M?-9+&_|T#_w%)=g;}Sp7Gpg(&x__&wV7-i`L`)C*+qtcV?a^E;0YRpEvxk zyno0)eg8-2YaI`h^}qPNAnDWl*Y6v1-0vfQy`OBx{6hbQOZoluTey_*y#8Exr)gab z{k!^{|H6lQL>Bo6a z{&n2)Z(48cUz2b3(QzDr@^4y?{p<6`J~f>O<)-szT5s%MlkW}G=sf8B%fD&8v42gz zHP7UqeQWY>T95N@kRLTVPnySEKT`gt_2teV*TCeTeQWZc$iI^=hV@hDcZ4zW&%QPJ zPvqZ87u)sPZ>V0^QPp>3-6maJqP|$a`kW{o|5~W|muY?Q{$IF$F5J%Vf07!g&yN<^ z3!BzkpC75O`?#-Zeb7H#|5NTy(Npg~u7S)SQ=cn!KM%)0@K5eX7Qw7z;7|L)_y zruEo=;Gdp{dFcA3`;OMHY5j2MKk(1^2Y6`xKFvex*L;9~OMf8L5Ax^d?&H3u_1M4m zzl+}?|ND8!ziE9}=wJKSeNH|#h5r`nr$%n$~0g+W#hghknmhJmlZBzG)f% z>#33d9X#aUw7x#n*ZI4T`7VWsw{zV)NBzxw|G?Lh_m8}PU%Y-(w}$%u`nz~t zA6&oV{a5ezuHzwY<{=NJ^>x#afBxSY&pJum!oPolhiQGO_2btcs=p%FYu}`L(|T+F zsP~%>Q6oME&namAP|H8#52`=Zy7`HM)?51z<)(d_sOzTkGp)z{+aQ1XX`RTwj$8gs z>y7o3eA6fK0QK^3T95t1{7vU=PtITYDSy-Yo{(Sde*-o0uk$YdruD}DG5KbmC2m)L z>P_o${tfz5!+A>iKdk;dOzX>?zoV+Bul9}dpUA(HE{5Z;^E;CLpT$`DPvqZ87u)q( z|2qD({;BVXmUMB6dhZ{ZcWIxd`L~vbjz81-VEu>d_xwEdPx63i-}stET5s+jSKdEf zzm@w_^n~g9MgFGs*7uL*=czv;|J0q%?|IE4tvC0NEALyA{{|gue#qZGX+0R4%P3yZ_^M~===aPTz8|B}$ z-njpzzV73`ruEpr_P>dq@_!W%`8Ta^TE_qS?0*Nf@^4yi?H|?GecacyzD)mgpV0MB z-gW&;#FOqHy1p-U|M32i{@s0ox;51I*I(;mIR5bYTk64{nI7r$w*`IwhtJ^__#T}; zm+O8W>ci)6^Z%U3{B!pGm!@?w)DOo~-v{m1>&n|QDKCmAok9bRA1 z`cF>pzwlFxKaV=`m*K4it)Ca_V}8tW{k^i*fd1ZhVP`?>@$Z)7`CqyJ?)ZKFR^C74 zpM2Zrv-AI4`-jhe7G6zWKT2+#^PV^JT)O$Ajr`xA*V~^ga;)noMzw=^_fSO{ULfqzC_@ zf4y(#IJgc-HwXDW*Yj8SXYX;he2SdEx53Yv))UMBZbMg}UOzCNd&B~N^PadF{u|Ft z>+7Z+KjZ(L@uy~Pq4z4Do7R`w|D^So>#oSWC)bqo{azw0vZgv!sf9$$YC@~7r~s^`IRC;z7Psrw(s%eVT7`VOo7 zo7Q9hV*aWQzk4#tEuBBp`ks(q?SBLH^3Qos{!Qx}Lj9mWHJWGgzdidmt;hK{=#PJ$ zC!L3fq4GDaFL(Zqs-6e`nU>@~k>8W_#B%)%{PXi8)XD!@*?*$-#AdzrPO9fRk-u8-vOnvNe=XGUXIdZZ--_!m#=|BU-udPo{c=@-?Sd@KXv}AsgeJSvVYV1)Yt#isIU9DuW3E@ANXgz z9oFxG+<(&gHLb_j-vj^DJwP4nc;RXJFKB)0>;K%>ecacy9{bn+cje!+Kl?YW?`q8- z{OUd@|DVbJP3x`upK@~__cg7@{TE=Ugh+E*V7qq_A`YG$L$o1Mcsou2S+CTmrHHUbJkMX#ET`PccEf75zv|0v&@XX17q@^4yS*Xoa7ohRl0Fx31t ztuJ@}j;fxA_KotN$nQydVtf8;|04hFyORGz>XM$=tWWEodaZlacTDR(otGuozxQ7p zcUu2C{v8`!$e;1MdFVJE;c#hBx`nr$% zn$~0g+W%I5hknma9`bKm-x}6m?f)`rIr(SbnEad8TlYWtcOUmPt;hbg z|4rHdRoTC3eN$`x(|>*Tza#rMt+)1%^6x(GYg%8Xf4YC@`ltKH?Pk7z==$E;KhnRu zPf)jp`u_TBJ+Zuh6`vn5{zd$p&niYQqCR`*Xg#s4FFrq_?tFg!*J9^;=J}@e#Ik;H z{usZ7de-5L=8OEB*5lug59S}^FQHD}HD7KoXg&V@P1oQ1SM_xt_cg6A*MD#B|0us} z%)_+4w>AG5Z=d*2^``acKknZ?O1>|qzofaAB?$4PsdcC=-;KNxrr+$9KIM(jW!Ayrc~q+<(XX^txB`T=cv*t;hKv=g-Rf z$NcsAi{{;D3;rI@`_E;PUSEGaf2w^u$D#Ev-HiD?*Yg+r&pd`d{LVbagU^pp%oJ6j7~vPtGsZU6JeW$@Ql7 z#_Rtv_Z_|dPb7o!Px9QfeyHW2@yye)*3h@rzo7Lvf9w2sot^T#Q~f!9(|UaUJ*cN2 z^CbD#am&AHy|MpEzST$m4?y`ht;hah{iOW&s2<gmht{^UQA-x=cP{aZTzwNUdf(|YUm|CqmV)$4pwulvVu zT%`5Z>wooiANMt_5Bhic_5R82Df#EP*U0}Ot+!tPkF`fo&QP!a$8TJu_15eEblz9i zzxKbc^RL(aY5thj_l5Nn?tjVu?#{nn|I2?*>y6j{$-n!!uW3E@ul;Y${&!~oruD7M z_`fXs*L6?+P3w)<|H;4mxUXqF_OJcxKBM)!G5a^I$NNv6|LW|Y*Z;}CX}$6KKlODV z_cg7@{saH4x5M%eb^p=&HLb_j-vj@Qe?b1>)AC=?dgJwf>gzu4Yg&)}YyZ2l|NYs& zX?<5~{@_>lIr-;xfAViyZ{7ctoBO!0X+8F@{cpzkJGzdrllk^P(28?XOU z{_f+xruAj|r~8Dif4YC@`j?pRAG*FbUjHv%zo}cJ<2M(t>x1iexc|<4ocz~OBW{L& zT+sTukYAU7-v7;fknyaO#4Yfzcy3x>YW|dY1J*wxtDL`WLjm-1$4Idit_&O#T!3JxNcj_iyF=W&e`=v;Ru|6RAsjVzXZBU-eq|s_)pX zf1Q^l*MHuB>A1B|OUJ(!>i9FQ57vLU|IGY0^-od<)Ax?_JplRF=hj(o?H`Y!f4F|9 z+@F$v9$deazp4FW{&|_-z(40rIsZ0~(|PE9h)nCP{o^t8ul?_%r{>RtQ1jokzAvnw z+W&6q@SnbSg#Vt_8~ex9*L~dAv>yA{{f%;-?Sd@KXv}Avw!xD$-im6v42c`-N$`R>#_g9KkMzV{6pP;w0=$N zasM{(&v^EUY5hJe|2#LXH};RIulu;KX+8F@{qM^D_hWdEl1#{Mzo?>_EpT3@Drx_{{Ur~8Ml ze~Ib7k#b$~{^9#qfB&Fv4Uhi%yLew2+&{wSM>E$l?n~5N%Y)Bg#y6YR6U*y&`21+* z*Z8^af4{~9-{b#mT2CzN2j`EP%c)`gk8gqa?`i$=*7;-n#nh4C_zp;ZJ*{6H>bw4Z zevEgYXV<^mzvTMa3phUB|DC;n-fx3fnAQ`^;}83v*+7cbpZ!I~ zbDc`u0{@WbruC(+U-qwhJg545a=mH2v45Za6|UQds1qN9x{jOH54HR={-F9pu3NKz zSkQW7|Ce&RPW?F!?prB8(|X)L5AvrU*Qw-R$1VS+^~Uup`BoqKKLF+5v>yA1`ImCv zqk8-+H=RGz`ks(q?SBJx%3tSQ{!Qx}Lj9mW<2BFZf4lk@v>xZ*pg(?fo|ON?>R-_M za_8@;>gmhAJ^4@M_ar^BTt5T<{G9z`^3T3E`A@W-*sRy}OZB>bslH>nZl&`wxc-LY zAM5W0$SG0l_Juq*t;hU=|M5REo^_h2^Y$Y=H?23;Z>nRRCTiZQ-n8CWzhgcxOrPI~ zns+ZO$okDcpPJwJ9~sYiPSpDS5uTgY8|Ode#yUyVx>bIr^|*cp`O}YentbZG<=?d4 zSii})`sg^cZsp&!9{bnlk9C^zSANRhwBA_1$v5jXQRiL$P3w*In|y1Y$-maG{F~O} z{2SzlU!AA?cRwkAtz(@B>&u-#)@kyubu0gg)F(Z$F@N|u>o@t=x|RP#>xs>JtzXrr zbxVE6ZvE=K4AyVh|BU~XpMQz^Kc(&s^#9+c^~AD&*#C_GF8%(|`0sMx&zsg0%leT2 zEPrP@|8Dw10g|0c(gbhB~%eLd?o{T?yRr-F_8l(+hF-%j;nonv|a z!}UY={l3n>C*6;_{`u!+{owT@$9gYwPW#_)@OWcE>+$b@>-vjx{T;d9w0?2eKZN-^ z^Y{FHuimp3@jo*uXnpG6zcc=8j6W~)m+5~3&rR!7|Nfmi{$_geW0|a%G5-w){@%Ew z^{IdVPTk7=hxvaD{bT+s_y1h`hxIq}Rr2~#^5VbQ)bnO?k#0`?`*-S2WGwrp#m~+8 z_u)=A`FS~iyZK*y{ygS>tIzS$c;-w`>r?;!ov|nLV4f!~G5_<=>;C!rnfkhqd@tWW z=Fj(kG~Z^PS)|tg;`f4*KDB@SzA+wdq5gx5Tr$7ppKHXcls|m$BFA6qbhA~z)PH|j zb<)j2eR2HsIi9il?-X&pHuZP^<$wQqGWGpK?(OgId@ufYU%S5Pzn_4Q?&nL)A0Pj} z=lY*mWIAqibKpN*f0z3H-I)D=bhBCiTJ>f8uP-vyp__yHB0uW*o*Vh3@4uOvKjrt| zrsqeGrPd$*rK^Ab`O4-Wb!q-(4*VDUC%k`{bFDsnZ@we7eCOH!e_HwHW&h&($2jem zE}@?LR!_du+5i7pbw6*`>;0c}-!t{!@}N%t9hby-|El}%&Hc?sbAK~_|FNo1*B{+? zbsZAdAM)lWxZE-^Tvb>;9MSd*-{ldj0oc^n3Vuncq*B z|Nm!mC-U=E>|g%H&|z9rt~s(W*7$QIQqLljqp%fA8j6;;yWl@w?hxeZE)CzJ)rywh|dX ztNWvAeS64y^Wy*42jgGQ_{%fzhX0M{ruEB1eegf~3%p89>#V}0d69k>0)<4)(7pHKC#^EQ4teMJ1)f1>r5clFE9`D)!PG3QywU*MeY zWetD6AlJ2|n@e5aQf7>Mh`ReT*{jYy$#c{C{o$C4%ou+^hsS%Z~J*0 zUU|Vw&K>!z`CWx;bu~Ti)69-9EG#_pvnCEW+Gp5VbwpJ z-xty@($eqqxPrWkm2@*+VZv_yxc5@GjqxH^#^XL#(E7GU|6gMK7V5;0z~3)uJ^nRM z*v&oX{yu(D$E(~-<=6eZT;b2Pf2?=^{(R;B_EYyS&L8tb=lv3>d17kbNH?dRKgRKH z#N4(_c45zakmsiLsppUJS}9vHKLUT3=ce_k=a2EvwZD(w$J?(Ld?=6f^DzI4{Ew-B ztatxspMP=wG{5qC*811_PS=5~a|O&lujgOB!yWft>UJ_tWM^>P#|m2C8IC{p|0TxX zNS$~P{(eF0H-`G+_;X+PIhOuDeo@Ek<98n2&+FsQujY^8_@jUKcR%;HpSpjMpXL|7 zw?kgR^$gc>=}Y97@3znUB0t}$c?h{{Kl8zY)~B97#_OHb8#52W-{rY!ed_sR{B!N^ z;}><@%E44F>E}xve||N84E>Aq=ii_E`aHDr?_Q1f`E#9koO-T9lUd01&$K@Gc*FnC zQ~wBcaB?dA_#&;(Jre4D-#_PM_0#p^p^lR?AlDJoIy*2>2X?^_dP(Scb{Wq!8d44t2`OmaI{${AJ{eO`<{Ez=0;=iZ$ zFNXTs{{iZB98W>~_q2W>)Yty+qYnRLUOCHuPwV%E`r7|3)XD#DDF3GQTS9&9U-MS} zKMCdEv>vY?wg0QAlmAaa`8Ta!75dly&!tZOFNgAPT4&G72YlYQ*8b0;PX4cf@^4x{ zE7aHiPp3})-wEa4w0?T1ul&zw{>uMJQ2sNm&&2s#`PZwA=I zhC2B_8_IvC^_jm3^|gP^Q~c{ymi+g$9_MfE{~qedU!QEqe^2Z8g#NYvyQste%o7m* zJ+0pr>TCa+r}F;+DF3GQIDc#Z+9%4t){Xp|*5m%M_J1jL^1m0#ziIu_W&CTN%Kz)2 z{F~O}{H^_;LY@3;-N?Ub{glwZ_J0C(^1l_zziIu1P+#S*{}&heA1y%q_p~18Z{>gV zFm>{;btC_o)<+MA{*{0I7X*_37eM*Xw9dDy%k@+H*F2T~Ls0%r>v8_p{_ms?|0As* z{P(neXXs!1zk@pRAAKF-zo+#(LVfLD^Hl!d2j$g4|;Q2tHp7l!)Uzvij@Z-DY|T95O$_CG_N{A=CFziE9Y^dIe#>Of7-wGwEpGLzxMw*>g0bll>bD2OVY(q zU;EcQmH&fK{!Qy~{?`6)rB42}ZsgyzerxDo`@fMo_Mr=3f$TqfTE8*W*Zwt6<^MV; z|EBdge{266sgr-L8~Hb_Zw&ow|F57<{%?cwZ(4svsIUENp346^DF3GQIDaeu^WULP z{<-x2!P{TCa+r}BRVlz-EDoWHgImr^JHS~v1?9;Z(JwQl4;)B5D`(7*COd6YW&e>s%@OzV?JLw)UE^A!J+ zuR;9xv>xYg?f+it@ITS|!GBNd_lEwp|GTNf|Kv%C|DM+G4)wKv%~SdR5R`w@dYr$t z|0}7Jf2|w&H?3b8`q%#7Or8AigYs`$e{-m>{cE1e|HV-LP3v*~*8bO0C;wVE@^4yS z8~WG&*H9<_S3~(Xt*;67u|IX)`{cZDv0e41burXe{k!*R7T@>i-v3y9U#Io{&D?6n zah*xr1z*O)v>vZN@%_hV7{3MI;zxLFENFd8@E?!=dyLn47C*}4f`ZoL`S0reY2nKK z$NY}c?-Kfp%-gw(3R=G;_%G%knSX=ve9n}pPv)QIxoLfBevCiNcs^%J)aOsf^W3yP zH9zXU%J?^Dew6wXcy3ysnjdv5_g~~k{R8ylbE-srZgmRJP3x`v-otq1Br3PN3tDgG zcOB!ElSpo}_Z76>%I_M+D<_fMX7?Ag-pX&~{$qYy>8G4Ta+~Fz(bIY>zmpiRoJ8e! zZb9p<{AL-ioJ8e!VL|JS{KgB6C#OW^r}bl6Z{@dg{~^Dzt{dc(sQg&7DL>JABfs%M z#*tGZ`HdguxoN$T-*_+M$tjWi#*gycwBE{3*Bs>}lH2&Pg4P@P9fSXvpRT#eNhCkL zXWr9#E5C~wubf2Xwxgi+R(_ipubf2Xc1uC)t^8iic;zH2zgr7hZ{@dg|1rPy^ixiv z^1Gv;^+tYruT%LYDnDKSP3w*PW_0}~r$pta>#u3Ok>AYM8Bb1$%5N>tP3w*Pj=_J( zPwzD=zeMGCCeKalt^96dymAuBZRWm$)?4}M`mLNqa!cPlGOf4ryMa38B$C_AX9`+x z<+pPGF+bh+l#@tqGhZxdy_Me?j8{&g^3(O-wBE|^B*rTzQMu{5Yg%vR_x+4lPNMR= zw4n7?ek=DM^V5A#If=@TJ!?MmU_3b`lG{kvf75y+zme`gy7+I zpJY5aC6eFhTRbH2S4Z{?@!w{jAd zo36j6^;UkbW4v+_mD_I=wBE{Z<^E%Sy6-6`QMvtALF-fVTUgM0&3gTosN8h@H?2?2 zkGdxq&zw(GZo2-O)~Du2-4VvWIaB$a#dFj8)cmMhx&IUIC)nvpru9~Sw=rHhi64Qw{+iZX`TZ*6m6P~U_~nAuTluZrf6VVa^ixja9{6BE z>#h9GX1sC|l^ZoZt+(e)GEio7Nlo&FlU{PKo5F_xzP#qV-08daqgeC6eF#zw+F)-pKD5 z{D=JXUb*s1B)|Cy&rR#C{H|uaauSu>9R;no^1Gbz%1Kmiy8fEhTlrnac;zH2x4Q~j zZ{@dg|1m$^_mq>U-0mr8y^-JK8OD=SqVm)A-?ZMyZ*r9J*p(e>A~ z-pcO-j8{$~xlJA_XuXx+%KgXuZlj-a63K1yNI~nZ{5CLNIf=@RWA16amEYNnS5BgG zqo$|zR(|Ukubf2Xx4oeCR(>n@AM-nde#%Kye%BYY-pFt6YmC=1i{v-=or2aI`OSTW z@yc8zzd2ohP3w*P<{n@?IVCE;8UAfrZ{&9j{zHCqy8n?=qVhX|f1B1@`Ms0z%1Kmy zy8fHiTlwkwt(-*Vrt7b1y_Mfq#w#b0+~)2rXuXx+%KgXuE~lSz63K0De?jXpzsBb` z!_OZUy3ci@|M>Y4pO>k>J~z|8J^tNK)?@$RKYeba`lGr2l!De{efaz){r%44^yTk| z^p|4#`yrF>U3Y(1^mzFEr#OCo{to&*(s6Ps`~&JUtxx~{HRJX7H4k;1oB=;geWvy4 zpWiW_zq{c3)!pA;{4o3&?}2AppZ@)8#=nDl{_9EN?0WbIi?lxd``3);?-Tfbb@z87 zuZEwdKGXX2?_V=s{=b;{_YnVM)A|=%`7{0ibvllxApUz=KM?AR`NMemzc2H<5dUM- z`hB5(Fn<_-3w1h<-BA8b>$imZ!Te#o{_aNpKMCdEw7xym*Z!}fPRH>nDF3GQt3rM4 z|6Jg4|#DF3GQvqF9C|8(l)|D90&P3xzJ`pQ4wukQSx1m!=| z`tRl=OzYFXf6aJupV2%O4@3O-v>xYg zmH*5=)af|1Zt&mJ`aL1PD*u_gsMB#g0rB6{`dy*E&R_FX{yzZa-?Sd*Z|$G=>5_k~ z8~Hb_$NOjP|5EDYe=n4O)B2^$_}4s@|JOnJH?7C{Tl+tSI_0l*BmbuLQ$qjR{|VH| z|5hmfru7p-eU<-6^B4c41&IHi)*lP?m4Cip-TBwLk^fBVu>AgXg4|gQ2sNm zPyhZkd1ej^@IPO*6&=#{~gqk|LE%w|2?hW5$fywHBaUL zeNg^Q>v8_p{x?%6|5`WlZ(83R`q%kiNS*wD1j@f@{lZXR``0{`{|!+7P3v*~*8XRx zlYgxn`8Tc4g#H8n3;KR_=l@Mm{u8Yymh*4mpPy^~vVU7R3faH)v>xa0z(3=^Odb2U z1+5?UZ#}Jlc^UtoqfYs+hVq}tuSt4h+rQ?i{2zq!Z(5J@xAuQ4b@H!uBmbuLTbJ>F zBX#UU7rp}7fA+L~W2mq5*F2T~>!AFb*5mxG{cogB{(jq~&3Jsz zYo3ZnApUz=kMpxYg?SBV#@~?Fx|EBdFp?~dv8+G#kSt$Re^=+ZP_OE#=|5rfyH?7C{Tl;@0b@H!u zBmbuLmxlhe|1+tR{~MtEo7T?^^_73VU)}jX70Q36by!}%D*t@Hy7RAfBmbG!r+@#N z@%ZNZ)t&#BL;26NKK=XGj3@Vr=BfBKi2t6}h+hbnkyGzOOU={Ts%trfz5EUidPeo7Q&*|MC5^XBdAY?|+F0soz-8 zdc1!Z$4}k&7|(moiJzkW0-l@JuMhpZ`u_XZjJHqwHmyhhMSk?T>HaW9Xj3tEr;i~JaSn8%Ho2RZ-8^KaAo)chFxRUX%8ev0}N__t|& zYJQAex&IL1|2yiNQ9{ZHZFruFTO{NBTORUu30^;xAMD=@ybagx7qs&T5sid z4da!QNN%(H3tDgGw{rh6zpeCBP9nL@-e1sqE5DN%ubf2XcWy!Jt^8&gubf2XcVR*6 zjr_(7j3=i=<)`&yT5sjIa{nQ}@%QLQPKnCz5+0`YMt)-*GdU%a-}qsko7Nlojg>h$ zCGxw*kMi8K-pX$ePnfJ8b%I{*vD<@I8v1jOM zy_Mf4#w#aLx!qFGdMm$IGhR7~%J0^K)?4|l+<(k(J^hrEsQm6IXuXl2-s@C;iOTPI zo}1Pi`OSQT@#K`K{7&JyX}yu(%-0!DPKnBoJx|I}wBE??82pF)^j@>_OH_Vm^4zrE z%I`MDD<_fMW_0~Gt+(>i^;{w8n4j)@%1I=* znJ*T!-pcO`#w#aLxm{S$dMm$^7_Xc}<)`bfX}y)-_cLBOiOTQNg4SF4t=xaiPxn3L zBr3lx1+6#o8&RYD63K6*>%VEek)QsbWRzbb{~mpl=ce^Wexpw^o}3cNZ}csmo7Nlo z9fSXn--u&Xeu-o;`VP-c>#h7QXS{L}m7A{rru9~Sx_&DsQMu{*Yg%vR_d3QaCsDcm zMnUVX{8sKi=BN9fauSu>ZxysYHNS=QUb9~R=so9@+bIRDPtA|ICm7G`v_$20CeKal zQ}d(l2;+I3mZ<#B;<;&kYJSwow|(loFYmv|kNR&=&+D{A<@Yk4o7P+TeJJ-A_wsx0 zFDPH>=i&8B@%oLQ-^O_5B=Y)qLDyf?dMm$QWxR3{dEKke0(x3+<+pPGF+bh+l#|Ho z--QPYT5sidHsh6(xEJdBZ(487zcU!GoJ8fO>#u3OmEQ{(ubf2XcV$8At^8K*KjwE5 z{gjia{I(Ue-pFtMD~uKjPc4z zRBm?_wBE{Z<^E%Sy6-6`QMuhy(0U`k$uo>6r$ptZ>%VEek>BJf%VEemEYNn zS5BgG)AiT1-pX$s4K5|6>#VP5fT|A5c14&pf~2ddB@F&lC0gI^V02j~o3zYs(6Z literal 0 HcmV?d00001 diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/CM_primitive_cell_test.py b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/CM_primitive_cell_test.py index 39bd7718f..7ede4efec 100644 --- a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/CM_primitive_cell_test.py +++ b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/CM_primitive_cell_test.py @@ -23,91 +23,82 @@ def sky130_add_current_mirror_labels(CMS: Component, transistor_type: str = "nfet",pdk: MappedPDK =sky130) -> Component: # Re-introduce transistor_type - """Add labels to the current mirror layout for LVS, handling both nfet and pfet.""" - - met2_pin = (69, 16) - met2_label = (69, 5) - met3_pin = (70, 16) - met3_label = (70, 5) - - - - CMS.unlock() - move_info = [] - - # VREF label (for both gate and drain of transistor A, and dummy drains) - vref_label = rectangle(layer=met3_pin, size=(1, 1), centered=True).copy() - vref_label.add_label(text="VREF", layer=met3_label) - move_info.append((vref_label, CMS.ports["currm_A_gate_E"], None)) # Gate of A - move_info.append((vref_label, CMS.ports["currm_A_drain_E"], None)) # Drain of A - - - # VCOPY label (for drain of transistor B) - vcopy_label = rectangle(layer=met3_pin, size=(1, 1), centered=True).copy() - vcopy_label.add_label(text="VCOPY", layer=met3_label) - move_info.append((vcopy_label, CMS.ports["currm_B_drain_E"], None)) # Drain of B - - - - # VSS/VDD label (for sources/bulk connection) - if transistor_type.lower() == "nfet": - bulk_net_name = "VSS" - bulk_pin_layer = met2_pin #met2 for nfet bulk - bulk_label_layer = met2_label #met2 for nfet bulk - else: # pfet - bulk_net_name = "VDD" - bulk_pin_layer = met3_pin #met3 for pfet bulk - bulk_label_layer = met3_label #met3 for pfet bulk - - bulk_label = rectangle(layer=bulk_pin_layer, size=(1, 1), centered=True).copy() #Layer changes based on type - bulk_label.add_label(text=bulk_net_name, layer=bulk_label_layer) - move_info.append((bulk_label, CMS.ports["currm_A_source_E"], None)) # Source of A - move_info.append((bulk_label, CMS.ports["currm_B_source_E"], None)) # Source of B - - # VB label (connected to the dummy transistors' drains if present) - if type == "nfet": - vb_label = rectangle(layer=met2_pin, size=(1, 1), centered=True).copy() #met2 for nfet - vb_label.add_label(text=bulk_net_name , layer=met2_label) - move_info.append((vb_label, CMS.ports["purposegndportsbottom_met_E"], None)) - move_info.append((vb_label, CMS.ports["purposegndportsbottom_met_W"], None)) - else: #type is pfet - vb_label = rectangle(layer=met3_pin, size=(1, 1), centered=True).copy() #met3 for pfet - vb_label.add_label(text=bulk_net_name , layer=met3_label) - move_info.append((vb_label, CMS.ports["purposegndportsbottom_met_E"], None)) - move_info.append((vb_label, CMS.ports["purposegndportsbottom_met_W"], None)) - - - - # Add labels to the component - for label, port, alignment in move_info: - if port: - alignment = ('c', 'c') if alignment is None else alignment - aligned_label = align_comp_to_port(label, port, alignment=alignment) - CMS.add(aligned_label) - - return CMS.flatten() + """Add labels to the current mirror layout for LVS, handling both nfet and pfet.""" + met2_pin = (69, 16) + met2_label = (69, 5) + met3_pin = (70, 16) + met3_label = (70, 5) + + + + CMS.unlock() + move_info = [] + + # VREF label (for both gate and drain of transistor A, and dummy drains) + vref_label = rectangle(layer=met3_pin, size=(1, 1), centered=True).copy() + vref_label.add_label(text="VREF", layer=met3_label) + move_info.append((vref_label, CMS.ports["fet_A_gate_E"], None)) # Gate of A + move_info.append((vref_label, CMS.ports["fet_A_drain_E"], None)) # Drain of A + + + # VCOPY label (for drain of transistor B) + vcopy_label = rectangle(layer=met3_pin, size=(1, 1), centered=True).copy() + vcopy_label.add_label(text="VCOPY", layer=met3_label) + move_info.append((vcopy_label, CMS.ports["fet_B_drain_E"], None)) # Drain of B + + + + # VSS/VDD label (for sources/bulk connection) + if transistor_type.lower() == "nfet": + bulk_net_name = "VSS" + bulk_pin_layer = met2_pin #met2 for nfet bulk + bulk_label_layer = met2_label #met2 for nfet bulk + else: # pfet + bulk_net_name = "VDD" + bulk_pin_layer = met3_pin #met3 for pfet bulk + bulk_label_layer = met3_label #met3 for pfet bulk + + bulk_label = rectangle(layer=bulk_pin_layer, size=(1, 1), centered=True).copy() #Layer changes based on type + bulk_label.add_label(text=bulk_net_name, layer=bulk_label_layer) + move_info.append((bulk_label, CMS.ports["fet_A_source_E"], None)) # Source of A + move_info.append((bulk_label, CMS.ports["fet_B_source_E"], None)) # Source of B + + # VB label (connected to the dummy transistors' drains if present) + vb_label = rectangle(layer=met3_pin, size=(1, 1), centered=True).copy() #met3 for pfet + vb_label.add_label(text="VB" , layer=met3_label) + move_info.append((vb_label, CMS.ports["purposegndportscon_N"], None)) + move_info.append((vb_label, CMS.ports["purposegndportscon_S"], None)) + + # Add labels to the component + for label, port, alignment in move_info: + if port: + alignment = ('c', 'b') if alignment is None else alignment + aligned_label = align_comp_to_port(label, port, alignment=alignment) + CMS.add(aligned_label) + + return CMS.flatten() comp = current_mirror(sky130, numcols=2, device='nfet') -# comp = sky130_add_current_mirror_labels(comp, transistor_type='nfet', pdk=sky130) -# comp.name = "CM" -# comp.write_gds("CM.gds") +comp.name = "CM" +comp.write_gds("CM.gds") # for absc in comp.ports.keys(): -# if len(absc.split("_")) <=5: +# if len(absc.split("_")) <=4: # print(absc) - +# print(comp.ports[absc]) print(comp.info["netlist"].generate_netlist()) + comp.show() -# # %% -# print("\n...Running LVS...") +comp = sky130_add_current_mirror_labels(comp, transistor_type='nfet', pdk=sky130) + +print("\n...Running LVS...") -# sky130.lvs_netgen(comp, "CM") +sky130.lvs_netgen(comp, "CM") -# %% From cb74ac262c40cd0c2650fc4cdc62bf6a8f503dd4 Mon Sep 17 00:00:00 2001 From: Saptarshi Ghosh Date: Sat, 16 Nov 2024 00:45:46 +0100 Subject: [PATCH 05/36] Updated to reduce LVS errors --- .../regulated_cascoded_current_mirror/CM.gds | Bin 61044 -> 0 bytes .../GDS/CM.gds | Bin 0 -> 57568 bytes .../regulated_cascoded_current_mirror.py | 203 +++++++++--------- 3 files changed, 106 insertions(+), 97 deletions(-) delete mode 100644 openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/CM.gds create mode 100644 openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/GDS/CM.gds diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/CM.gds b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/CM.gds deleted file mode 100644 index 5d3c0be21785ff8fa9e39768910fdf1de0fcf610..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61044 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 diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/GDS/CM.gds b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/GDS/CM.gds new file mode 100644 index 0000000000000000000000000000000000000000..c9acbbfdd74fd88e08997b532a76201f9b27212b GIT binary patch literal 57568 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 Component: # Re-introduce transistor_type +def CurrentMirror( + pdk: MappedPDK, + CM_size: tuple[float, float, int], # (width, length, multipliers) + type: Optional[str] = 'nfet', + rmult: Optional[int] =1, + with_substrate_tap: Optional[bool] = False, + with_tie: Optional[bool] = True, + tie_layers: tuple[str,str]=("met2","met1"), + ) -> Component: + """Create a current mirror """ + + CurrentMirror = Component(name="CurrentMirror") + + if type.lower() =="pfet" or type.lower() =="pmos": + currm= two_pfet_interdigitized(pdk,numcols=CM_size[2],width=CM_size[0],length=CM_size[1], + rmult=rmult,gate_route_topmet="met3",sd_route_topmet="met3", + with_substrate_tap=with_substrate_tap,with_tie=with_tie,tie_layers=tie_layers) + elif type.lower() =="nfet" or type.lower() =="nmos": + currm= two_nfet_interdigitized(pdk,numcols=CM_size[2],width=CM_size[0],length=CM_size[1], + rmult=rmult,gate_route_topmet="met3",sd_route_topmet="met3", + with_substrate_tap=with_substrate_tap,with_tie=with_tie,tie_layers=tie_layers) + else: + raise ValueError("type must be either nfet or pfet") + + currm_ref = prec_ref_center(currm) + CurrentMirror.add(currm_ref) + CurrentMirror.add_ports(currm_ref.get_ports_list(),prefix="currm_") + + + gate_short = CurrentMirror << smart_route(pdk,CurrentMirror.ports["currm_A_gate_E"],CurrentMirror.ports["currm_B_gate_E"],currm_ref,CurrentMirror) + + CurrentMirror << smart_route(pdk,CurrentMirror.ports["currm_A_drain_E"],CurrentMirror.ports["currm_A_gate_E"],currm_ref,CurrentMirror) + + srcshort = CurrentMirror << smart_route(pdk,CurrentMirror.ports["currm_A_source_E"],CurrentMirror.ports["currm_B_source_E"],currm_ref,CurrentMirror) + + # add a pwell + CurrentMirror.add_padding(layers = (pdk.get_glayer("pwell"),), default = pdk.get_grule("pwell", "active_tap")["min_enclosure"], ) + CurrentMirror = add_ports_perimeter(CurrentMirror, layer = pdk.get_glayer("pwell"), prefix="well_") + + + CurrentMirror.add_ports(srcshort.get_ports_list(), prefix="purposegndports") + + CurrentMirror.info["netlist"] = generate_current_mirror_netlist( + pdk=pdk, + instance_name=CurrentMirror.name, + CM_size=CM_size, # (width, length, multipliers) + transistor_type=type, + drain_net_A="VREF", # Input drain connected to VREF (as seen in the layout) + gate_net="VREF", # Gate connected to VREF (as seen in the layout) + source_net="VSS" if type=="nfet" else "VDD", # Source connected to VSS + drain_net_B="VCOPY", # Output drain connected to VCOPY + dummy=True, # Include dummy transistors (present in the layout) + subckt_only=True, # Generate only the subcircuit (no instances) + proposed_ground= "VSS" if type=="nfet" else "VDD", #Proposed ground should also change + + ) + + return CurrentMirror + +def sky130_add_current_mirror_labels( + CMS: Component, + transistor_type: str = "nfet", + pdk: MappedPDK =sky130) -> Component: # Re-introduce transistor_type """Add labels to the current mirror layout for LVS, handling both nfet and pfet.""" met2_pin = (69, 16) @@ -121,15 +188,17 @@ def sky130_add_current_mirror_labels(CMS: Component, transistor_type: str = "nfe move_info = [] # VREF label (for both gate and drain of transistor A, and dummy drains) - vref_label = rectangle(layer=met3_pin, size=(1, 1), centered=True).copy() - vref_label.add_label(text="VREF", layer=met3_label) + vref_label = rectangle(layer=met2_pin, size=(0.5, 0.5), centered=True).copy() + vref_label.add_label(text="VREF", layer=met2_label) + move_info.append((vref_label, CMS.ports["currm_A_gate_E"], None)) # Gate of A move_info.append((vref_label, CMS.ports["currm_A_drain_E"], None)) # Drain of A # VCOPY label (for drain of transistor B) - vcopy_label = rectangle(layer=met3_pin, size=(1, 1), centered=True).copy() - vcopy_label.add_label(text="VCOPY", layer=met3_label) + vcopy_label = rectangle(layer=met2_pin, size=(0.5, 0.5), centered=True).copy() + vcopy_label.add_label(text="VCOPY", layer=met2_label) + move_info.append((vcopy_label, CMS.ports["currm_B_drain_E"], None)) # Drain of B @@ -141,25 +210,28 @@ def sky130_add_current_mirror_labels(CMS: Component, transistor_type: str = "nfe bulk_label_layer = met2_label #met2 for nfet bulk else: # pfet bulk_net_name = "VDD" - bulk_pin_layer = met3_pin #met3 for pfet bulk - bulk_label_layer = met3_label #met3 for pfet bulk + bulk_pin_layer = met2_pin #met3 for pfet bulk + bulk_label_layer = met2_label #met3 for pfet bulk - bulk_label = rectangle(layer=bulk_pin_layer, size=(1, 1), centered=True).copy() #Layer changes based on type + bulk_label = rectangle(layer=bulk_pin_layer, size=(0.5, 0.5), centered=True).copy() #Layer changes based on type bulk_label.add_label(text=bulk_net_name, layer=bulk_label_layer) + move_info.append((bulk_label, CMS.ports["currm_A_source_E"], None)) # Source of A move_info.append((bulk_label, CMS.ports["currm_B_source_E"], None)) # Source of B # VB label (connected to the dummy transistors' drains if present) if type == "nfet": - vb_label = rectangle(layer=met2_pin, size=(1, 1), centered=True).copy() #met2 for nfet + vb_label = rectangle(layer=met2_pin, size=(0.5, 0.5), centered=True).copy() #met2 for nfet vb_label.add_label(text=bulk_net_name , layer=met2_label) - move_info.append((vb_label, CMS.ports["purposegndportsbottom_met_E"], None)) - move_info.append((vb_label, CMS.ports["purposegndportsbottom_met_W"], None)) + + move_info.append((vb_label, CMS.ports["purposegndportstop_met_N"], None)) + move_info.append((vb_label, CMS.ports["purposegndportstop_met_S"], None)) else: #type is pfet - vb_label = rectangle(layer=met3_pin, size=(1, 1), centered=True).copy() #met3 for pfet - vb_label.add_label(text=bulk_net_name , layer=met3_label) - move_info.append((vb_label, CMS.ports["purposegndportsbottom_met_E"], None)) - move_info.append((vb_label, CMS.ports["purposegndportsbottom_met_W"], None)) + vb_label = rectangle(layer=met2_pin, size=(0.5, 0.5), centered=True).copy() #met3 for pfet + vb_label.add_label(text=bulk_net_name , layer=met2_label) + + move_info.append((vb_label, CMS.ports["purposegndportstop_met_N"], None)) + move_info.append((vb_label, CMS.ports["purposegndportstop_met_S"], None)) @@ -172,89 +244,26 @@ def sky130_add_current_mirror_labels(CMS: Component, transistor_type: str = "nfe return CMS.flatten() -def CurrentMirror(pdk: MappedPDK,CM_size: tuple[float, float, int],type: Optional[str] = 'nfet',rmult: Optional[int] =1): - - CurrentMirror = Component(name="CurrentMirror") - - if type =="pfet" or type =="pmos": - currm= two_pfet_interdigitized(pdk,numcols=CM_size[2],width=CM_size[0],length=CM_size[1], - rmult=rmult,gate_route_topmet="met3",sd_route_topmet="met3", - with_substrate_tap=False,with_tie=True,tie_layers=("met2", "met2")) - elif type =="nfet" or type =="nmos": - currm= two_nfet_interdigitized(pdk,numcols=CM_size[2],width=CM_size[0],length=CM_size[1], - rmult=rmult,gate_route_topmet="met3",sd_route_topmet="met3", - with_substrate_tap=False,with_tie=True,tie_layers=("met2", "met2")) - else: - raise ValueError("type must be either nfet or pfet") - - currm_ref = prec_ref_center(currm) - CurrentMirror.add(currm_ref) - CurrentMirror.add_ports(currm_ref.get_ports_list(),prefix="currm_") - - - gate_short = CurrentMirror << smart_route(pdk,CurrentMirror.ports["currm_A_gate_E"],CurrentMirror.ports["currm_B_gate_E"],currm_ref,CurrentMirror) - - CurrentMirror << smart_route(pdk,CurrentMirror.ports["currm_A_drain_E"],CurrentMirror.ports["currm_A_gate_E"],currm_ref,CurrentMirror) - - srcshort = CurrentMirror << smart_route(pdk,CurrentMirror.ports["currm_A_source_E"],CurrentMirror.ports["currm_B_source_E"],currm_ref,CurrentMirror) - - CurrentMirror.add_ports(srcshort.get_ports_list(), prefix="purposegndports") - - CurrentMirror.info["netlist"] = generate_current_mirror_netlist( - pdk=pdk, - instance_name=CurrentMirror.name, - CM_size=CM_size, # (width, length, multipliers) - transistor_type=type, - drain_net_A="VREF", # Input drain connected to VREF (as seen in the layout) - gate_net="VREF", # Gate connected to VREF (as seen in the layout) - source_net="VSS" if type=="nfet" else "VDD", # Source connected to VSS - drain_net_B="VCOPY", # Output drain connected to VCOPY - dummy=True, # Include dummy transistors (present in the layout) - subckt_only=True, # Generate only the subcircuit (no instances) - proposed_ground= "VSS" if type=="nfet" else "VDD", #Proposed ground should also change - - ) - - return CurrentMirror - -# %% -# netlist=generate_current_mirror_netlist( -# pdk=sky130, -# instance_name="CM", -# CM_size=(3, 3, 2), -# transistor_type="nfet", -# drain_net_A="VREF", # Input drain connected to VREF (as seen in the layout) -# gate_net="VREF", # Gate connected to VREF (as seen in the layout) -# source_net="VSS", # Source connected to VSS -# drain_net_B="VCOPY", # Output drain connected to VCOPY -# dummy=True, # Include dummy transistors (present in the layout) -# subckt_only=True, # Generate only the subcircuit (no instances) -# proposed_ground="VSS", #Proposed ground is VSS -# ) - -# print(netlist.source_netlist) # For debugging purposes - - -comp = CurrentMirror(sky130, (3, 3, 2), type='nfet', rmult=1) +comp = CurrentMirror(sky130, (2, 1, 2), type='nfet', with_substrate_tap=False, with_tie=True) comp = sky130_add_current_mirror_labels(comp, transistor_type='nfet', pdk=sky130) comp.name = "CM" -comp.write_gds("CM.gds") - +comp.write_gds("GDS/CM.gds") +comp.show() # for absc in comp.ports.keys(): # if len(absc.split("_")) <=5: # print(absc) - -print(comp.info["netlist"].generate_netlist()) -comp.show() +print("\n...Generating Netlist...") +print(comp.info["netlist"].generate_netlist()) # %% -print("\n...Running LVS...") - -sky130.lvs_netgen(comp, "CM") - +# print("\n...Running DRC...") +# drc_result = sky130.drc_magic(comp, "CM",output_file="DRC/") +# print(drc_result) # %% - +print("\n...Running LVS...") +netgen_lvs_result = sky130.lvs_netgen(comp, "CM",output_file_path="LVS") +print(netgen_lvs_result) # extractbash_template=str() From cda70f2476773afa4a5399803b16c87697fe59bb Mon Sep 17 00:00:00 2001 From: Saptarshi Ghosh Date: Sat, 16 Nov 2024 00:49:10 +0100 Subject: [PATCH 06/36] added A pic of the layout --- .../GDS/currentMirror.png | Bin 0 -> 180287 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/GDS/currentMirror.png diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/GDS/currentMirror.png b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/GDS/currentMirror.png new file mode 100644 index 0000000000000000000000000000000000000000..d2154f6568002867e5b832755ee3f98a9cf72e57 GIT binary patch literal 180287 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 Date: Mon, 18 Nov 2024 20:42:32 +0100 Subject: [PATCH 07/36] updated multipler in the Netlist --- .../regulated_cascoded_current_mirror/CM.gds | Bin 0 -> 61044 bytes .../CM_primitive_cell_test.py | 8 +++----- .../regulated_cascoded_current_mirror.py | 2 +- 3 files changed, 4 insertions(+), 6 deletions(-) create mode 100644 openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/CM.gds diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/CM.gds b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/CM.gds new file mode 100644 index 0000000000000000000000000000000000000000..d1db8e8a987616c7cefc6420e55a3e1bcf1b0c2a GIT binary patch literal 61044 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 literal 0 HcmV?d00001 diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/CM_primitive_cell_test.py b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/CM_primitive_cell_test.py index 7ede4efec..be147609d 100644 --- a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/CM_primitive_cell_test.py +++ b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/CM_primitive_cell_test.py @@ -81,7 +81,6 @@ def sky130_add_current_mirror_labels(CMS: Component, transistor_type: str = "nfe comp = current_mirror(sky130, numcols=2, device='nfet') - comp.name = "CM" comp.write_gds("CM.gds") @@ -90,14 +89,13 @@ def sky130_add_current_mirror_labels(CMS: Component, transistor_type: str = "nfe # print(absc) # print(comp.ports[absc]) print(comp.info["netlist"].generate_netlist()) - comp.show() -comp = sky130_add_current_mirror_labels(comp, transistor_type='nfet', pdk=sky130) +# comp = sky130_add_current_mirror_labels(comp, transistor_type='nfet', pdk=sky130) -print("\n...Running LVS...") +# print("\n...Running LVS...") -sky130.lvs_netgen(comp, "CM") +# sky130.lvs_netgen(comp, "CM") diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py index 77cfad40c..851909439 100644 --- a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py +++ b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py @@ -58,7 +58,7 @@ def generate_current_mirror_netlist( length = CM_size[1] multipliers = CM_size[2] mtop = multipliers if subckt_only else 1 - mtop = multipliers * 2 if dummy else multipliers # Double the multiplier to account for the dummies + #mtop = multipliers * 2 if dummy else multipliers # Double the multiplier to account for the dummies model_name = pdk.models[transistor_type.lower()] From ab6bf6ae12e96f63aa20219dc3ffb135e9bcdd9b Mon Sep 17 00:00:00 2001 From: Saptarshi Ghosh Date: Sun, 24 Nov 2024 21:22:03 +0100 Subject: [PATCH 08/36] Added delete files ina directory function --- .../regulated_cascoded_current_mirror.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py index 851909439..a0c36d5ac 100644 --- a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py +++ b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py @@ -1,5 +1,5 @@ import sys -from os import path, rename, environ +from os import path, rename, environ, listdir, remove environ['OPENBLAS_NUM_THREADS'] = '1' from pathlib import Path # path to glayout @@ -27,6 +27,17 @@ from glayout.flow.spice.netlist import Netlist from typing import Optional, Union +def delete_files_in_directory(directory_path): + try: + files = listdir(directory_path) + for file in files: + file_path = path.join(directory_path, file) + if path.isfile(file_path): + remove(file_path) + print("All files deleted successfully.") + except OSError: + print("Error occurred while deleting files.") + global PDK_ROOT if 'PDK_ROOT' in environ: From 1f574e0cb8926edc267ea992ed971d52854c6470 Mon Sep 17 00:00:00 2001 From: Saptarshi Ghosh Date: Sun, 24 Nov 2024 21:23:09 +0100 Subject: [PATCH 09/36] added route_quad from gdsfactory --- .../regulated_cascoded_current_mirror.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py index a0c36d5ac..81fab3459 100644 --- a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py +++ b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py @@ -15,6 +15,7 @@ from glayout.flow.routing.straight_route import straight_route from glayout.flow.routing.c_route import c_route from glayout.flow.routing.L_route import L_route + from glayout.flow.placement.two_transistor_interdigitized import two_nfet_interdigitized, two_pfet_interdigitized from glayout.flow.pdk.util.comp_utils import evaluate_bbox, prec_center, prec_array, movey, align_comp_to_port, prec_ref_center @@ -24,6 +25,7 @@ from gdsfactory.components import text_freetype, rectangle from gdsfactory import Component +from gdsfactory.routing.route_quad import route_quad from glayout.flow.spice.netlist import Netlist from typing import Optional, Union From 582d916f78cda09218dc3ab9aeb8ebdc759188c2 Mon Sep 17 00:00:00 2001 From: Saptarshi Ghosh Date: Sun, 24 Nov 2024 21:24:50 +0100 Subject: [PATCH 10/36] added dummy line in Netlist generator --- .../regulated_cascoded_current_mirror.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py index 81fab3459..9e7729509 100644 --- a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py +++ b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py @@ -58,9 +58,9 @@ def generate_current_mirror_netlist( drain_net_B: str, transistor_type: str = "nfet", bulk_net: str = None, + proposed_ground: str = None, # Proposed ground net dummy: bool = True, subckt_only: bool = False, - proposed_ground: str = None, # Proposed ground net ) -> Netlist: """Generate a netlist for a current mirror.""" @@ -87,7 +87,7 @@ def generate_current_mirror_netlist( # Generating only two transistors (one on each side): source_netlist += f"XA {drain_net_A} {gate_net} {source_net} {bulk_net} {model_name} l={length} w={width} m={mtop}\n" source_netlist += f"XB {drain_net_B} {gate_net} {source_net} {bulk_net} {model_name} l={length} w={width} m={mtop}\n" - + source_netlist += f"XDUMMY {bulk_net} {bulk_net} {bulk_net} {bulk_net} {model_name} l={length} w={width} m={mtop}\n" source_netlist += ".ends " + circuit_name From 989293aba5378282fc00f91a437f64cbe6a67b32 Mon Sep 17 00:00:00 2001 From: Saptarshi Ghosh Date: Sun, 24 Nov 2024 21:25:05 +0100 Subject: [PATCH 11/36] remove create via function --- .../regulated_cascoded_current_mirror.py | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py index 9e7729509..f005be01e 100644 --- a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py +++ b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py @@ -106,25 +106,6 @@ def generate_current_mirror_netlist( }, ) -def create_via(PDK: MappedPDK): - # Define the via dimensions and rules - via_dimension = PDK.get_grule('via1')['width'] - metal1_dimension = via_dimension + 2 * PDK.get_grule('via1','met1')['min_enclosure'] - metal2_dimension = via_dimension + 2 * PDK.get_grule('via1','met2')['min_enclosure'] - - # Get the layers for via and metals - via_layer = PDK.get_glayer('via1') - metal1_layer = PDK.get_glayer('met2') - metal2_layer = PDK.get_glayer('met3') - - # Create the component and add the layers - top_level = Component(name='via_example') - top_level << rectangle(size=(via_dimension, via_dimension), layer=via_layer) - top_level << rectangle(size=(metal1_dimension, metal1_dimension), layer=metal1_layer) - top_level << rectangle(size=(metal2_dimension, metal2_dimension), layer=metal2_layer) - - return top_level - def CurrentMirror( pdk: MappedPDK, CM_size: tuple[float, float, int], # (width, length, multipliers) From 3240e7960eb5e4ca162316f58b2ce10b1e9c8151 Mon Sep 17 00:00:00 2001 From: Saptarshi Ghosh Date: Sun, 24 Nov 2024 21:27:04 +0100 Subject: [PATCH 12/36] updated interdigitized structure arguments and inputs --- .../regulated_cascoded_current_mirror.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py index f005be01e..62c94b27e 100644 --- a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py +++ b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py @@ -113,6 +113,7 @@ def CurrentMirror( rmult: Optional[int] =1, with_substrate_tap: Optional[bool] = False, with_tie: Optional[bool] = True, + with_dummy: Optional[bool] = True, tie_layers: tuple[str,str]=("met2","met1"), ) -> Component: """Create a current mirror """ @@ -120,13 +121,11 @@ def CurrentMirror( CurrentMirror = Component(name="CurrentMirror") if type.lower() =="pfet" or type.lower() =="pmos": - currm= two_pfet_interdigitized(pdk,numcols=CM_size[2],width=CM_size[0],length=CM_size[1], - rmult=rmult,gate_route_topmet="met3",sd_route_topmet="met3", - with_substrate_tap=with_substrate_tap,with_tie=with_tie,tie_layers=tie_layers) + currm= two_pfet_interdigitized(pdk,numcols=CM_size[2],width=CM_size[0],length=CM_size[1],dummy=with_dummy, + rmult=rmult,with_substrate_tap=with_substrate_tap,with_tie=with_tie,tie_layers=tie_layers) elif type.lower() =="nfet" or type.lower() =="nmos": - currm= two_nfet_interdigitized(pdk,numcols=CM_size[2],width=CM_size[0],length=CM_size[1], - rmult=rmult,gate_route_topmet="met3",sd_route_topmet="met3", - with_substrate_tap=with_substrate_tap,with_tie=with_tie,tie_layers=tie_layers) + currm= two_nfet_interdigitized(pdk,numcols=CM_size[2],width=CM_size[0],length=CM_size[1],dummy=with_dummy, + rmult=rmult,with_substrate_tap=with_substrate_tap,with_tie=with_tie,tie_layers=tie_layers) else: raise ValueError("type must be either nfet or pfet") From dd280bdb305ab2dacd43ca6db85d14af333a64a0 Mon Sep 17 00:00:00 2001 From: Saptarshi Ghosh Date: Sun, 24 Nov 2024 21:27:52 +0100 Subject: [PATCH 13/36] updated routing with manual functions --- .../regulated_cascoded_current_mirror.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py index 62c94b27e..dae2e0b21 100644 --- a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py +++ b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py @@ -134,11 +134,14 @@ def CurrentMirror( CurrentMirror.add_ports(currm_ref.get_ports_list(),prefix="currm_") - gate_short = CurrentMirror << smart_route(pdk,CurrentMirror.ports["currm_A_gate_E"],CurrentMirror.ports["currm_B_gate_E"],currm_ref,CurrentMirror) + maxmet_sep = pdk.util_max_metal_seperation() - CurrentMirror << smart_route(pdk,CurrentMirror.ports["currm_A_drain_E"],CurrentMirror.ports["currm_A_gate_E"],currm_ref,CurrentMirror) + gate_short = CurrentMirror << c_route(pdk,CurrentMirror.ports["currm_A_gate_W"],CurrentMirror.ports["currm_B_gate_W"],extension=3*maxmet_sep, viaoffset=False) + + CurrentMirror << L_route(pdk,CurrentMirror.ports["currm_A_drain_W"],gate_short.ports["con_S"],viaoffset=False, fullbottom=False) + + source_short = CurrentMirror << c_route(pdk,CurrentMirror.ports["currm_A_source_E"],CurrentMirror.ports["currm_B_source_E"], viaoffset=False) - srcshort = CurrentMirror << smart_route(pdk,CurrentMirror.ports["currm_A_source_E"],CurrentMirror.ports["currm_B_source_E"],currm_ref,CurrentMirror) # add a pwell CurrentMirror.add_padding(layers = (pdk.get_glayer("pwell"),), default = pdk.get_grule("pwell", "active_tap")["min_enclosure"], ) From 1957e9176f162585ad5a7489ad91d8eaa110d040 Mon Sep 17 00:00:00 2001 From: Saptarshi Ghosh Date: Sun, 24 Nov 2024 21:28:34 +0100 Subject: [PATCH 14/36] routed dummies to Welltie --- .../regulated_cascoded_current_mirror.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py index dae2e0b21..c6dfd23e6 100644 --- a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py +++ b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py @@ -142,6 +142,19 @@ def CurrentMirror( source_short = CurrentMirror << c_route(pdk,CurrentMirror.ports["currm_A_source_E"],CurrentMirror.ports["currm_B_source_E"], viaoffset=False) + + # Connecting dummies to the welltie + try: + CurrentMirror << straight_route(pdk, CurrentMirror.ports["A_0_dummy_L_gsdcon_top_met_W"],CurrentMirror.ports["welltie_W_top_met_W"],glayer2="met1") + except KeyError: + pass + try: + end_col = CM_size[2] - 1 + port1 = f'B_{end_col}_dummy_R_gdscon_top_met_E' + CurrentMirror << straight_route(pdk, CurrentMirror.ports[port1], CurrentMirror.ports["welltie_E_top_met_E"], glayer2="met1") + except KeyError: + pass + # add a pwell CurrentMirror.add_padding(layers = (pdk.get_glayer("pwell"),), default = pdk.get_grule("pwell", "active_tap")["min_enclosure"], ) From 1871cc1ef16b1a678ae202348f36ab16d3c4afc0 Mon Sep 17 00:00:00 2001 From: Saptarshi Ghosh Date: Sun, 24 Nov 2024 21:28:59 +0100 Subject: [PATCH 15/36] added wells --- .../regulated_cascoded_current_mirror.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py index c6dfd23e6..093ca78bc 100644 --- a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py +++ b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py @@ -156,10 +156,19 @@ def CurrentMirror( pass - # add a pwell - CurrentMirror.add_padding(layers = (pdk.get_glayer("pwell"),), default = pdk.get_grule("pwell", "active_tap")["min_enclosure"], ) - CurrentMirror = add_ports_perimeter(CurrentMirror, layer = pdk.get_glayer("pwell"), prefix="well_") - + # add well + if type.lower() == "nfet": + # add a pwell + CurrentMirror.add_padding(layers = (pdk.get_glayer("pwell"),), default = pdk.get_grule("pwell", "active_tap")["min_enclosure"], ) + CurrentMirror = add_ports_perimeter(CurrentMirror, layer = pdk.get_glayer("pwell"), prefix="well_") + elif type.lower() == "pfet": + # add a nwell + CurrentMirror.add_padding(layers = (pdk.get_glayer("nwell"),), default = pdk.get_grule("nwell", "active_tap")["min_enclosure"], ) + CurrentMirror = add_ports_perimeter(CurrentMirror, layer = pdk.get_glayer("nwell"), prefix="well_") + else: + raise ValueError("type must be either nfet or pfet") + + CurrentMirror.add_ports(srcshort.get_ports_list(), prefix="purposegndports") From 0469d826f7dc6d42d7622a2c4a5b307e57c070e3 Mon Sep 17 00:00:00 2001 From: Saptarshi Ghosh Date: Sun, 24 Nov 2024 21:29:24 +0100 Subject: [PATCH 16/36] Adding ports to components --- .../regulated_cascoded_current_mirror.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py index 093ca78bc..25bcca429 100644 --- a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py +++ b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py @@ -168,9 +168,15 @@ def CurrentMirror( else: raise ValueError("type must be either nfet or pfet") - + #Connecting the source of the fets to the bulk ??? + src2bulk=CurrentMirror << straight_route(pdk, source_short.ports["con_N"],CurrentMirror.ports["currm_welltie_E_top_met_W"]) + + CurrentMirror.add_ports(gate_short.get_ports_list(), prefix="gateshortports") + CurrentMirror.add_ports(src2bulk.get_ports_list(), prefix="purposegndports") + + CurrentMirror.add_ports(Aport.get_ports_list(), prefix="Refport") + CurrentMirror.add_ports(Bport.get_ports_list(), prefix="Copyport") - CurrentMirror.add_ports(srcshort.get_ports_list(), prefix="purposegndports") CurrentMirror.info["netlist"] = generate_current_mirror_netlist( pdk=pdk, From af0b5e1e071978b1cdf88a4e4faca1a1204acf7f Mon Sep 17 00:00:00 2001 From: Saptarshi Ghosh Date: Sun, 24 Nov 2024 21:29:59 +0100 Subject: [PATCH 17/36] tweaked netlist generator input in top component --- .../regulated_cascoded_current_mirror.py | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py index 25bcca429..aed548c3f 100644 --- a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py +++ b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py @@ -174,8 +174,8 @@ def CurrentMirror( CurrentMirror.add_ports(gate_short.get_ports_list(), prefix="gateshortports") CurrentMirror.add_ports(src2bulk.get_ports_list(), prefix="purposegndports") - CurrentMirror.add_ports(Aport.get_ports_list(), prefix="Refport") - CurrentMirror.add_ports(Bport.get_ports_list(), prefix="Copyport") + # CurrentMirror.add_ports(Aport.get_ports_list(), prefix="Refport") + # CurrentMirror.add_ports(Bport.get_ports_list(), prefix="Copyport") CurrentMirror.info["netlist"] = generate_current_mirror_netlist( @@ -183,17 +183,15 @@ def CurrentMirror( instance_name=CurrentMirror.name, CM_size=CM_size, # (width, length, multipliers) transistor_type=type, - drain_net_A="VREF", # Input drain connected to VREF (as seen in the layout) - gate_net="VREF", # Gate connected to VREF (as seen in the layout) - source_net="VSS" if type=="nfet" else "VDD", # Source connected to VSS + drain_net_A="VREF", # Input drain connected to VREF drain_net_B="VCOPY", # Output drain connected to VCOPY - dummy=True, # Include dummy transistors (present in the layout) - subckt_only=True, # Generate only the subcircuit (no instances) + gate_net="VREF", # Gate connected to VREF + source_net="VSS" if type=="nfet" else "VDD", # Source connected to VSS proposed_ground= "VSS" if type=="nfet" else "VDD", #Proposed ground should also change - + subckt_only=True ) - return CurrentMirror + return CurrentMirror def sky130_add_current_mirror_labels( CMS: Component, From f3314f62459df28ac90ebb62e4b2ba629dccef06 Mon Sep 17 00:00:00 2001 From: Saptarshi Ghosh Date: Sun, 24 Nov 2024 21:32:36 +0100 Subject: [PATCH 18/36] Updated label adding code for LVS checks --- .../regulated_cascoded_current_mirror.py | 51 +++++++------------ 1 file changed, 17 insertions(+), 34 deletions(-) diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py index aed548c3f..b67225495 100644 --- a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py +++ b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py @@ -213,60 +213,43 @@ def sky130_add_current_mirror_labels( vref_label = rectangle(layer=met2_pin, size=(0.5, 0.5), centered=True).copy() vref_label.add_label(text="VREF", layer=met2_label) - move_info.append((vref_label, CMS.ports["currm_A_gate_E"], None)) # Gate of A - move_info.append((vref_label, CMS.ports["currm_A_drain_E"], None)) # Drain of A - - + move_info.append((vref_label, CMS.ports["currm_B_drain_N"], None)) # Drain of A + #LVS will work if following line is uncommented + #move_info.append((vref_label, CMS.ports["gateshortportscon_N"], None)) # Gate of A & B + # VCOPY label (for drain of transistor B) vcopy_label = rectangle(layer=met2_pin, size=(0.5, 0.5), centered=True).copy() vcopy_label.add_label(text="VCOPY", layer=met2_label) - - move_info.append((vcopy_label, CMS.ports["currm_B_drain_E"], None)) # Drain of B - - + move_info.append((vcopy_label, CMS.ports["currm_B_drain_N"], None)) # Drain of B # VSS/VDD label (for sources/bulk connection) if transistor_type.lower() == "nfet": bulk_net_name = "VSS" - bulk_pin_layer = met2_pin #met2 for nfet bulk - bulk_label_layer = met2_label #met2 for nfet bulk + bulk_pin_layer = met2_pin + bulk_label_layer = met2_label else: # pfet bulk_net_name = "VDD" - bulk_pin_layer = met2_pin #met3 for pfet bulk - bulk_label_layer = met2_label #met3 for pfet bulk - - bulk_label = rectangle(layer=bulk_pin_layer, size=(0.5, 0.5), centered=True).copy() #Layer changes based on type - bulk_label.add_label(text=bulk_net_name, layer=bulk_label_layer) + bulk_pin_layer = met2_pin + bulk_label_layer = met2_label - move_info.append((bulk_label, CMS.ports["currm_A_source_E"], None)) # Source of A - move_info.append((bulk_label, CMS.ports["currm_B_source_E"], None)) # Source of B - - # VB label (connected to the dummy transistors' drains if present) - if type == "nfet": - vb_label = rectangle(layer=met2_pin, size=(0.5, 0.5), centered=True).copy() #met2 for nfet - vb_label.add_label(text=bulk_net_name , layer=met2_label) - - move_info.append((vb_label, CMS.ports["purposegndportstop_met_N"], None)) - move_info.append((vb_label, CMS.ports["purposegndportstop_met_S"], None)) - else: #type is pfet - vb_label = rectangle(layer=met2_pin, size=(0.5, 0.5), centered=True).copy() #met3 for pfet - vb_label.add_label(text=bulk_net_name , layer=met2_label) - - move_info.append((vb_label, CMS.ports["purposegndportstop_met_N"], None)) - move_info.append((vb_label, CMS.ports["purposegndportstop_met_S"], None)) - - + ##Need to clarify the bulk and source connection?? + # VB label + vb_label = rectangle(layer=bulk_pin_layer, size=(0.5, 0.5), centered=True).copy() + vb_label.add_label(text=bulk_net_name , layer=bulk_label_layer) + move_info.append((vb_label, CMS.ports["purposegndportsroute_N"], None)) + # Add labels to the component for label, port, alignment in move_info: if port: - alignment = ('c', 'c') if alignment is None else alignment + alignment = ('c', 'b') if alignment is None else alignment aligned_label = align_comp_to_port(label, port, alignment=alignment) CMS.add(aligned_label) return CMS.flatten() + comp = CurrentMirror(sky130, (2, 1, 2), type='nfet', with_substrate_tap=False, with_tie=True) comp = sky130_add_current_mirror_labels(comp, transistor_type='nfet', pdk=sky130) comp.name = "CM" From 6777463f28266bcca82841a09fe43105be508546 Mon Sep 17 00:00:00 2001 From: Saptarshi Ghosh Date: Sun, 24 Nov 2024 21:35:00 +0100 Subject: [PATCH 19/36] changed function calls for top level component --- .../regulated_cascoded_current_mirror.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py index b67225495..dfa0141b1 100644 --- a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py +++ b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py @@ -250,26 +250,30 @@ def sky130_add_current_mirror_labels( -comp = CurrentMirror(sky130, (2, 1, 2), type='nfet', with_substrate_tap=False, with_tie=True) +comp = CurrentMirror(sky130, (3,0.5, 2), type='nfet', with_substrate_tap=False, with_tie=True) comp = sky130_add_current_mirror_labels(comp, transistor_type='nfet', pdk=sky130) comp.name = "CM" comp.write_gds("GDS/CM.gds") comp.show() + # for absc in comp.ports.keys(): -# if len(absc.split("_")) <=5: +# if len(absc.split("_")) <=6: # print(absc) print("\n...Generating Netlist...") print(comp.info["netlist"].generate_netlist()) # %% +# delete_files_in_directory("DRC") # print("\n...Running DRC...") # drc_result = sky130.drc_magic(comp, "CM",output_file="DRC/") # print(drc_result) # %% +delete_files_in_directory("LVS") print("\n...Running LVS...") -netgen_lvs_result = sky130.lvs_netgen(comp, "CM",output_file_path="LVS") +netgen_lvs_result = sky130.lvs_netgen(comp, "CM",output_file_path="LVS/") print(netgen_lvs_result) +## Will be used in future for simulation # extractbash_template=str() # #import pdb; pdb.set_trace() From 84481b39abdd9055bb4724a3395d255e5612f2b6 Mon Sep 17 00:00:00 2001 From: Saptarshi Ghosh Date: Sun, 24 Nov 2024 21:36:20 +0100 Subject: [PATCH 20/36] [Doesn't work yet] Metal 2 to Meta 3 via for connecting the labels to the drains --- .../regulated_cascoded_current_mirror.py | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py index dfa0141b1..76cd98439 100644 --- a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py +++ b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py @@ -142,7 +142,35 @@ def CurrentMirror( source_short = CurrentMirror << c_route(pdk,CurrentMirror.ports["currm_A_source_E"],CurrentMirror.ports["currm_B_source_E"], viaoffset=False) + ###Metal 2 to Meta 3 via for connecting the labels to the drains + # viam2m3 = via_stack(pdk,"met2","met3",centered=True) + # metal_min_dim = max(pdk.get_grule("met2")["min_width"],pdk.get_grule("met3")["min_width"]) + # metal_space = max(pdk.get_grule("met2")["min_separation"],pdk.get_grule("met3")["min_separation"],metal_min_dim) + # # place vias at the drains + # drain_br_via = CurrentMirror << viam2m3 + # drain_br_via.move(CurrentMirror.ports["currm_A_drain_N"].center).movey(viam2m3.ymin) + # drain_br_viatm = CurrentMirror << viam2m3 + # drain_br_viatm.move(CurrentMirror.ports["currm_A_drain_N"].center).movey(viam2m3.ymin) + + # drain_bl_via = CurrentMirror << viam2m3 + # drain_bl_via.move(CurrentMirror.ports["currm_B_drain_N"].center).movey(viam2m3.ymin) + # drain_bl_viatm = CurrentMirror << viam2m3 + # drain_bl_viatm.move(CurrentMirror.ports["currm_B_drain_N"].center).movey(-1.5 * evaluate_bbox(viam2m3)[1] - metal_space) + + # # # create route to drain via + # Awidth_drain_route = CurrentMirror.ports["currm_A_drain_N"].width + # Abottom_extension = viam2m3.ymax + Awidth_drain_route/2 + 2*metal_space + # drain_br_viatm.movey(0-Abottom_extension - metal_space - Awidth_drain_route/2 - viam2m3.ymax) + # Aport=CurrentMirror << route_quad(drain_br_viatm.ports["top_met_N"], drain_br_via.ports["top_met_S"],layer=pdk.get_glayer("met3")) + + # Bwidth_drain_route = CurrentMirror.ports["currm_B_drain_N"].width + # bottom_extension = viam2m3.ymax + Bwidth_drain_route/2 + 2*metal_space + # drain_bl_viatm.movey(0-bottom_extension - metal_space - Bwidth_drain_route/2 - viam2m3.ymax) + # Bport=CurrentMirror << route_quad(drain_bl_viatm.ports["top_met_N"], drain_bl_via.ports["top_met_S"],layer=pdk.get_glayer("met3")) + + + # Connecting dummies to the welltie try: CurrentMirror << straight_route(pdk, CurrentMirror.ports["A_0_dummy_L_gsdcon_top_met_W"],CurrentMirror.ports["welltie_W_top_met_W"],glayer2="met1") From 63505120e23bb21668c3cd7d9634861384c08e03 Mon Sep 17 00:00:00 2001 From: Saptarshi Ghosh Date: Sun, 24 Nov 2024 21:37:24 +0100 Subject: [PATCH 21/36] [Doesn;t work yet] added labels in metal 3 --- .../regulated_cascoded_current_mirror.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py index 76cd98439..92b8a0539 100644 --- a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py +++ b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py @@ -250,6 +250,24 @@ def sky130_add_current_mirror_labels( vcopy_label.add_label(text="VCOPY", layer=met2_label) move_info.append((vcopy_label, CMS.ports["currm_B_drain_N"], None)) # Drain of B + ## Move Labels in meta3 after via creation + + # # VREF label (for both gate and drain of transistor A, and dummy drains) + # vref_label = rectangle(layer=met3_pin, size=(0.5, 0.5), centered=True).copy() + # vref_label.add_label(text="VREF", layer=met3_label) + + # move_info.append((vref_label, CMS.ports["Refporte2"], None)) # Drain of A + # #move_info.append((vref_label, CMS.ports["gateshortportscon_N"], None)) # Gate of A & B + + # # VCOPY label (for drain of transistor B) + # vcopy_label = rectangle(layer=met3_pin, size=(0.5, 0.5), centered=True).copy() + # vcopy_label.add_label(text="VCOPY", layer=met3_label) + # move_info.append((vcopy_label, CMS.ports["Copyporte2"], None)) # Drain of B + + + + + # VSS/VDD label (for sources/bulk connection) if transistor_type.lower() == "nfet": bulk_net_name = "VSS" From 00a02eaa2a22496854ccbf38650cddfd7b3c2560 Mon Sep 17 00:00:00 2001 From: Saptarshi Ghosh Date: Sun, 24 Nov 2024 21:38:03 +0100 Subject: [PATCH 22/36] removed create via from init python funciton --- .../composite/regulated_cascoded_current_mirror/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/__init__.py b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/__init__.py index f4ffde1bc..010cf7b4f 100644 --- a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/__init__.py +++ b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/__init__.py @@ -1 +1 @@ -from glayout.flow.blocks.composite.regulated_cascoded_current_mirror.regulated_cascoded_current_mirror import CurrentMirror, generate_current_mirror_netlist,create_via,sky130_add_current_mirror_labels \ No newline at end of file +from glayout.flow.blocks.composite.regulated_cascoded_current_mirror.regulated_cascoded_current_mirror import CurrentMirror, generate_current_mirror_netlist,sky130_add_current_mirror_labels \ No newline at end of file From 1289e876a637d697196be839e47414ae22532a5e Mon Sep 17 00:00:00 2001 From: Saptarshi Ghosh Date: Sun, 24 Nov 2024 21:44:37 +0100 Subject: [PATCH 23/36] removed and generated new gds --- .../regulated_cascoded_current_mirror/CM.gds | Bin 61044 -> 0 bytes .../GDS/CM.gds | Bin 57568 -> 61672 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/CM.gds diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/CM.gds b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/CM.gds deleted file mode 100644 index d1db8e8a987616c7cefc6420e55a3e1bcf1b0c2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61044 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 diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/GDS/CM.gds b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/GDS/CM.gds index c9acbbfdd74fd88e08997b532a76201f9b27212b..bbb55a84f7203ef10e7ca9f74645334fa176c44c 100644 GIT binary patch literal 61672 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 Date: Sun, 24 Nov 2024 21:45:21 +0100 Subject: [PATCH 24/36] shifted VREF and VCOPY labels --- .../regulated_cascoded_current_mirror.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py index 92b8a0539..88bc66716 100644 --- a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py +++ b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py @@ -241,14 +241,14 @@ def sky130_add_current_mirror_labels( vref_label = rectangle(layer=met2_pin, size=(0.5, 0.5), centered=True).copy() vref_label.add_label(text="VREF", layer=met2_label) - move_info.append((vref_label, CMS.ports["currm_B_drain_N"], None)) # Drain of A + move_info.append((vref_label, CMS.ports["currm_A_drain_W"], None)) # Drain of A #LVS will work if following line is uncommented #move_info.append((vref_label, CMS.ports["gateshortportscon_N"], None)) # Gate of A & B # VCOPY label (for drain of transistor B) vcopy_label = rectangle(layer=met2_pin, size=(0.5, 0.5), centered=True).copy() vcopy_label.add_label(text="VCOPY", layer=met2_label) - move_info.append((vcopy_label, CMS.ports["currm_B_drain_N"], None)) # Drain of B + move_info.append((vcopy_label, CMS.ports["currm_B_drain_W"], None)) # Drain of B ## Move Labels in meta3 after via creation From 25f0aa97bc6a8a700a2354509e23f3eb46f8a48b Mon Sep 17 00:00:00 2001 From: Saptarshi Ghosh Date: Sun, 24 Nov 2024 21:47:02 +0100 Subject: [PATCH 25/36] Latest GDS file uploaded --- .../GDS/CM.gds | Bin 61672 -> 61672 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/GDS/CM.gds b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/GDS/CM.gds index bbb55a84f7203ef10e7ca9f74645334fa176c44c..84a25755d63edd8c00e4251e67ef659e47d5ae3c 100644 GIT binary patch delta 134 zcmaFykom Date: Sun, 24 Nov 2024 22:11:29 +0100 Subject: [PATCH 26/36] added Pin definations for labels in sky130 mapped pdk --- .../regulated_cascoded_current_mirror.py | 48 +++++++++---------- .../flow/pdk/sky130_mapped/sky130_mapped.py | 24 ++++++++++ 2 files changed, 48 insertions(+), 24 deletions(-) diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py index 88bc66716..39b0c595e 100644 --- a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py +++ b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py @@ -1,5 +1,7 @@ import sys from os import path, rename, environ, listdir, remove + +from openfasoc.generators.glayout.glayout.flow import pdk environ['OPENBLAS_NUM_THREADS'] = '1' from pathlib import Path # path to glayout @@ -294,30 +296,28 @@ def sky130_add_current_mirror_labels( return CMS.flatten() - - -comp = CurrentMirror(sky130, (3,0.5, 2), type='nfet', with_substrate_tap=False, with_tie=True) -comp = sky130_add_current_mirror_labels(comp, transistor_type='nfet', pdk=sky130) -comp.name = "CM" -comp.write_gds("GDS/CM.gds") -comp.show() - -# for absc in comp.ports.keys(): -# if len(absc.split("_")) <=6: -# print(absc) - -print("\n...Generating Netlist...") -print(comp.info["netlist"].generate_netlist()) -# %% -# delete_files_in_directory("DRC") -# print("\n...Running DRC...") -# drc_result = sky130.drc_magic(comp, "CM",output_file="DRC/") -# print(drc_result) -# %% -delete_files_in_directory("LVS") -print("\n...Running LVS...") -netgen_lvs_result = sky130.lvs_netgen(comp, "CM",output_file_path="LVS/") -print(netgen_lvs_result) +# comp = CurrentMirror(sky130, (3,0.5, 2), type='nfet', with_substrate_tap=False, with_tie=True) +# comp = sky130_add_current_mirror_labels(comp, transistor_type='nfet', pdk=sky130) +# comp.name = "CM" +# comp.write_gds("GDS/CM.gds") +# comp.show() + +# # for absc in comp.ports.keys(): +# # if len(absc.split("_")) <=6: +# # print(absc) + +# print("\n...Generating Netlist...") +# print(comp.info["netlist"].generate_netlist()) +# # %% +# # delete_files_in_directory("DRC") +# # print("\n...Running DRC...") +# # drc_result = sky130.drc_magic(comp, "CM",output_file="DRC/") +# # print(drc_result) +# # %% +# delete_files_in_directory("LVS") +# print("\n...Running LVS...") +# netgen_lvs_result = sky130.lvs_netgen(comp, "CM",output_file_path="LVS/") +# print(netgen_lvs_result) ## Will be used in future for simulation diff --git a/openfasoc/generators/glayout/glayout/flow/pdk/sky130_mapped/sky130_mapped.py b/openfasoc/generators/glayout/glayout/flow/pdk/sky130_mapped/sky130_mapped.py index b07f09339..2afce5d99 100644 --- a/openfasoc/generators/glayout/glayout/flow/pdk/sky130_mapped/sky130_mapped.py +++ b/openfasoc/generators/glayout/glayout/flow/pdk/sky130_mapped/sky130_mapped.py @@ -28,6 +28,30 @@ "nwell": (64,20), "pwell": (64,44), "dnwell": (64,18), + # pins and label layers for LVS + # Ref: https://skywater-pdk.readthedocs.io/en/main/rules/layers.html#layers-definitions + "pwelliso_pin" : (44, 16), + "pwelliso_label" : (44, 5), + "diff_pin" : (65, 16), + "diff_label" : (65, 5), + "poly_pin" : (66, 16), + "poly_label" : (66, 5), + "li1_pin" : (67, 16), + "li1_label" : (67, 5), + "met1_pin" : (68, 16), + "met1_label" : (68, 5), + "met2_pin" : (69, 16), + "met2_label" : (69, 5), + "met3_pin" : (70, 16), + "met3_label" : (70, 5), + "met4_pin" : (71, 16), + "met4_label" : (71, 5), + "met5_pin" : (72, 16), + "met5_label" : (72, 5), + "pad_pin" : (76, 16), + "pad_label" : (76, 5), + "pwell_pin" : (122, 16), + "pwell_label" : (122, 5) } openfasoc_dir = Path(__file__).resolve().parent.parent.parent.parent.parent.parent.parent From 60200e5970d4877da6724663b72bdcd0bbfcd4c6 Mon Sep 17 00:00:00 2001 From: Saptarshi Ghosh Date: Sun, 24 Nov 2024 22:17:36 +0100 Subject: [PATCH 27/36] Added picture of the current layout --- .../GDS/currentMirror.png | Bin 180287 -> 176785 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/GDS/currentMirror.png b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/GDS/currentMirror.png index d2154f6568002867e5b832755ee3f98a9cf72e57..3ede963fb5c25c6188f9a4f7eadb4465e9ec7304 100644 GIT binary patch literal 176785 zcmeEu2~<;8yLPN~9;mfeL4mebDIzE$C_{*?6{;er$Sfd6M23LOV-i}chze0b5E-H( zggMNSDQHomfJDXs5h4T#B!mDV^YrgP?R4Aku6zIQU;nym-QzMOCui8_-S7Ck&rbYF zYs+=3)mB3wkab6Y`2I8mvN8_>S!THMBe17@mnZ}LS#|jbr(g(V{R`#)CHHjJZv{J7 zh8%GWIqd1@rw=)N!ldo(S70AB>WpK^X-{|v_&ROb^B>ne+q-gUX}D4Tk+0vry`)eW zO8VE2om!Jz7DjsW<+c4Y#wAudIVQ)4x6K+A%*Z{?tm$wr-nIn-`2uqE`)|)gWK0bX z-pf8#ZNz+~Aqm@B+7dgsJj3Xmu9tOs;3Wfl(>=LKteoIHr{t$or;|nte zUw$Vt%eJuZ-o480yCw0E_~g|gt`2jhYS-1i?H;VUYY?w?xO?Sei%$%{(>dkxI_>*} zFMU2fwf%Z+oqf>GQ*h-`;M+?(d~}SH^7Ox71|I8QZ4XaULcJ`%*#WK*PC3^8wa;2` zE#)ZOrLc^Nyz(dbN7PT^|0hl0 z;-kcV=Ss;`f0X>sv$Y_dzn_OQ|0s@g6>)WIp|p^R))svmV_#yA`B;(2*+jiuV%z>8 zph~$b#X4?Eo?J2R!v6bR_?)gU4bA@bX&jH^EB z7nb}dSO2Cvbg+NJv48i(j~Iq*{pz1he!-sp!I=M(0Yg4x)=p2Y%=ur-{UE6SwcHPq zSor(DmivDdbN|){~zUg7l;2pFKN2m5jxlgJHCsg44L*45LkUDLtah) zL-76kc-%enpPUw_tNy3y{f{4>3I5+i#Q&+&^1r$4pLFE^kzFm`+JYyBuY}c{W-)gcy<&b~On3)+>q(tY*o?k1J`meA;Wny{m z2Hf({F|@HMq_n>~ASCoJ8;|3(0y6ME+*o;Y+ij*F#f&T_yYD>@&MsB%gv@*;zk8Zl z>+cvP^g23rAD3ZB^T7u7#^}0kQoqX;E}e#vqob|bv%6yCQVvfa%Ol}FYZH9w^@fX_ zz}^*^kM2(6q~ed;aZd<{8Jrt|5xp^m>TzCg1owY?OBhhTO+eGpD56gDuoJg9Y+IHg z4gULE9}?JWC{Iv`L?v6m$%|)%tH$Zg+ zto8DThdKftik&WAi?995CKePeg&=0?wt?egwG-8sT*V3}YxNE``~NqSSo|xyg}Yk? zPOZF*(Y$1bplvNI`OD_!r4GqUrO}k5R311Juc>?siA_BfGJ^Z>7kh3U6QociUI$$2 z+3{D{ECrmo>WIoxVv@o{sRvY-qsR*wrFO*bOjcJc`N3NHj4*f6L3!(k=S$u#tJbL{ zsVF}|I`mT6wGo^9eu>w-)a54NIhm;cMT0_l)l3Mvw#3x*JMD#Pf@gd{Dt8kc9k#FC z{{dzAQ&sebiv8zQOzk9fsMnlu&+S*B;F*qz^u@x>EltK=sLUMuZ5nTaX&i8%3YrTF z|FYo=ZTfvpActIyqPi#ufjm6D6%|>xAizVick~r~ub?R9kRTAZpEtr5-|bNf z)Loqh`wu!ntTOk+PeRUy{9aMAg8hZA#A%6#%Vg(o(8?ddgFlMb&77$%5PIi0ETTHQ zW^Sy9ElA^Oi4+Vdkq0;g3d{JXtC8uN$IgNo*8CC}S56DGy~b3Ws77 zBlwv_2G#x!-ofx=8&_%0mWb1oPXgB3I@G{fg;C9AO|wNDKNL`{`E9W8n*x z(mT=8LlPg!kmG+)p-`T7^obRayw+>9vBf#N3<3VDee93&Qr-s=yIE-(tlIZm>NY5` z8|s&gQ#2LHma1w_gL*gTvHfkYT+~fx%d9l9p^stYMW!po?jFOCN#9y14$AFd``k0O zHKi)OBvo<0maRB|r^+q6UHVG^>eDYLbt4pwk%N3RS&Vb8E?h?JI8~JmfUGm`Hz~!T zu`qipfIYuIOJuHdJm*6?;`*0O9dho=Mc120ZO;A%JdNMzM%Y{80Fh+>mqT5VuE-X* zt|bs=`EYoRja2!3+n#BmVuLp!|M-mmb$sfB_s>fQS7nIt6-yz7qZva(pLYu$Sf3iy zP-?);-D%8?GlAR2iR&Tza}#W&qpTWi#vDoVnmtU;*o9!M-dEX|#UY$M(Ox~km0c{d zsAQ=Yy3wxlrL00SrHUaz5Xn`zfoA3`JF2;Wa^NvkA!c$z*&rS4pt3@4o<4>q;h2`g|9{3 z#9KX4bML^zy>U#qL@}_}K_MB`-u&xfJ*@7S#y0{{J_2s|*p=s)8SuB?vagYRJlPd6 zmcf>vmx;5#VXa@188pJ+VG7i(0UY=d{?dG^pgUk*B1YgIP0gzC?rel5MSm)i`d+?< z{iOu1Qk52#g|sT!`TKK+{Ws-7E72>aA3VIvxFjh2GtbGu`}+e&aFte^glL9o}U%WXJ5A0&Pg6RZ7rfms2CdA4;Lee^tSJ74@g~K*UcqGADd*8 zI3l`x>iVAEKW;-gGCmzcjqXhDbW!Kr^cv7+V9*URA=EA~ z5~uXm0I!m8i(uRA1LdGw2Wqk?wJL%g0+8d}Fa+}T2$-u-S9rw`c~iyKm0U;JeT}VD z$({iBtmre{-HqFKwWM*FR~XF-Co0wwzo$u{yHRG}ZN86PO@!`Zip!#AOsaBV#kSdK zi^PJpZZrpHoS%ZEs5G)iC!6l6ftONmPN_2TSwN#uRl{D`1 z0=T+|eN4%`6?^|@HjLWV)APczaPun-!yZU7e?DeUzF6}fA&!&#SnTt*UH5EyHAQIb zyDiH&bCT}{FN!aVa*U>LG4)d|w%x!+x%LT7jLNK43-S8)I%(EWI{SrwN}Oe$%a+38 z(RaZn%UHiOmkqoysR~rZXu_MB-CGJ7vH&MjdFa`FsLm_#^ske&Q0t%CRBVJjJ3l{mhETXuy_HQ`A<&*rA9tOpwsBSrH9N8Gq(k~!t- z5jd|X)Mxg74Tsy|St(PL({AK?OBCI1mDcMdQvbR#U(IQA``}T2 zhKCBpDb_STnl5bo%ZcrpoJj*Q!%X5Ss&$={hbshwbUghiea4{wW!r|k`Ptv>SP^`> z*7RD1@Qc&!ER1PnOFy?N#N>hi2hlw!DICfzajd~(BV_|^L%~c%L7l9A^VS|1!Y$pt zDTL_92)L~7>CYY*O=)KSXnY`%(A1k>(M#G+$sfc8zu4mInQ3yl$X_*}_*RdfM8PI8 z?-<*hZJy)1v3?5Ob^exNnRVtqdsd{vrB@?bovapz9ggxO9sL}nEs&Ya4B-DS+p9z; zSynN|)0M7@Q6|2O-Iq(t5}Z%9_Ii3?TWUoBql&U~4{AD>??#8Apla&yNZjNZBm20n z{Kz7WdTVvUExV#Mq+;7}xFH^EeU|2Ca-r2EbjH!O0ch5m=DwSWJ;NbB8imx<*;4(B znQGotd0dqP9@yCHEypPejY?ZK+qRkw=jx6q-M3#8GRg=Eo0`yT9nE^tXNrC9HdRXW zijE?to{?c%s7>Lvr;vu17`-JY3O!7YlZMl}()>Aw%@4K|##J3iENe>XFxk{GO}UzY zhi_yhmxx8nXAw^0R z-JP_9&X{Y4Ca86D5+84i!CurtK_2QC$BZz7_pqxS=4&=f9BFu{A&pAr3hcE8L?v0S z>GlUvbJkt`RmjQPxbS6b2AaY>XW{3DBU&-W>01gTr!EaVg7f;uT$8!ep=~VO#s+I$ zjY3ATZR>ylNsLk@Z-r|W+it@2=u(@nkeKDODVo7X`u4%mR7Fy=PsstsNSVnc&3bEH zUz$L~^gKIMEyJi4x>P5u!1PFGv&^&6?G^4R&Qzd!PE`JHkq~(OriP(mx2eN223aAM zim=IZIc0gWy|R4%WsWfq-7|<9x~Z;5xj|%7F|v)3h=D9)t!DBKz6X6T>8xdq34@GP zL}rb5Z*h6h^L4YkKupj7j?C6V%Y;y2PG*e#+uVqcoQG=D!W~p*teZXRcN&tW#QuXiIcY*}yx# zBGSYqs5!xo)jd&L8dwCJ_8T)oL1>GkEa+AbS57E$HPJ{^jhlS_BJl3(RxcIclR-*$ z2(Bh7AfWajN*$5|*iim?O&nH>5iN<74>7+trS$}#pyb}GBH=0+EK?&?Nw8b8C@)Yb zEID^HT39kQtX~)`mqt!hy{<~=F$>#|h;Cm7uNnzuPKOqq%Z$<}l+~8{6=e|?l(L46 zo;0z0?ug8y6si@j^HciBCBv)SH~T4APB>zQwNQDGt}~9QQ7EEAkro_E z1@WYJbj;T1&Vy1b{ti$!WU%<$;WiR%}dy$?pZVG!D^FQj|9?S2{ zVG7O&UpCLh3-U#|$+l5-(!9#dX_huf2V|d0Jyad|b`Pc$ag%sI%n7g1_C^^S-9jRF zwviH=bdl-f&0MDbj2S+;^8z-xzIW2!#1PX%-H*+!*unUzEQ)W!GqWd2o?HuMY9AJ# z-P|i+m$AB2C?@@KOoN3|(`lC^Fr!Q)K|zOCT?=jDH(muV3eReV_PU`Yq8*nQk?U%v zoDpwv#H;2cDCAjqPm2~RXjct!@)e76TH$b&ZDt>i80gyX;0`qTEag=DyvwP&t7Rq` z?QX`~n|Rs>CCK8I9aWJQ z`kddG6}rnGq^*3It0MZXbrpd@VCVNnON;0rI$IpU3cWwz*QSiKvq=0)UJ2`S8?Ae8 zE5e`gd{5ka1&9QTT!2)OePBZ8!$DbgT_MdKJ~mJ(!=I4HOgquvh9(8ycGcmGh>EBf#C_Xa=TIaTP-}gc?8N4b*kP z%a#O(se2+RJ1IuMI|?EW`ezn^=*TD=z^`d-W=68Q%lSwwRi0X6yXjUBBhuC61;4SN zY~Vd#@ubZ8xpHD9i^5{IPX3Hn9`rc0V7lx9Y^cj?9tCBsxmOMHMo|)>O)X;G^z70p zP8*AoHJ*ODgsuh>!9c{^Pjah`^qR-4Z@LDRVU6Hze!`34o0Q6DoMLrz9o0EWYQ6cm zwUfcFjx++P#MZ@)bwL8-t10~sI-9NN3*isSF_<2;UTv!4bLC5FzZ|ze!iK2I>f<=9{Abx+Z(t;8iP z(W9Yee%s8+f>Y`wk6y+SNIM1Ci5ObZgm;h5;;_A}?^SbM2dliV(itXRlvBOoh#*iJ z5yCNX^xph|k`t(Zryrt1Q7N#<)}kLNC+Fj_C9I#|Qx?CnD<-v>-HEM-Wxs1fj!PX& z9_V1Ro#r01YI>lO6M+cw88vAMIgt5)#6&!>>FO5^jONH9yZ^7;33dp*U@^xAUebr} z2MXV}ZZu-lnz$-I)7B0yB+U-T;{&1n(GMUWz%&QiI|fHyILA|1sq|2 z-pssg5K2II3H%)KL6K1YY+;r-en+s z_vSw>6Ca~0LS&q8O?!s2Xw_N*p{m(}px$c$)S-f?85U*pc*f-E(h~Q&Ho^_x2CB~iqlg3a{!~rGC}g*6=T~H zdNzCip!NS_bw~p0@O=(@WcG5~!H*$*F8^OA|Ib$9AD3YX5_foax#;u7sPe~1^6z#Z zwlvtR(5)(k|B4mScQ7W4lZ{VoDl#o8M>jk>U{VnF8Gwmb*FUy5pY7tLsiR~A+?W7Z za6x4z2RKumZ7_;)U1B-WH_3NvVNFA{**1c8PZ(m3>&T{D^@Q{4Lw%eiL^48goRYt~ znaQo!Q$H_p?{P$2mY_Qwi+|037ScuDSjaERgM2zn>;#T)l=Wa#V;1k~G3xYeg;eQN zA=^q8F{$wAhNgx-MpQ`jQ$dEfk?9ZPytLqv`|i*TaNHi2BUxGTk;6GFVBx1go!$yc z*;_rx=DvSN<)@9Cq<`5|3!u(JWe=>SZEZ||X5{hT#n>(;BbrmT%Xw6;+f?V|TER7X z5T9Mo9~gZ}9_$|Sm6Gt5+3?+*{h2LFKLV1aE0lbCO4*Ij;isWY|DthTS3HY)JkHMv zw_c;LkfIF_eZD2S1Nal`H}Fu&J`JPhBHQfs(ibA z?zeXaMvRB#Qlk^fKm_z)C%~slJu9t`R030{v-)0`02r^?vG{@s?-pSr$&sl3$RA!* zeK(jq`B~ALtt6j~pg{37L)}s>w1pRC2^u}wLQ3FkVNHFYP4;qLUG_Jv9FhS_iDp?# zAy?IE*WFQa%Lc_6ap(~oMlBG7MN)0K4Kg!yKL&I}Q^N5X;dr25+8gMx2H8?#sr8d zbCOWd%uGShpTk4@f2|~I8rX`Xa6?LZ@T{YHrHUIarHUho;qB840048sV)^JJkFddZ zz!?2|ju*3MDYHcgiD7^0uPEVMJeC402s^lF9Tr3;;wi=S-A!bPB_S@F3@Wc_KG)6f zjG{6U;k>R(RG!)RJTw`IJIO_@aK-q$gG1|GaP7{Tn6tPrZ2Jay(Y;XSv$9&x`l@~Q z6>J4Tv(R$fEKs$T8eO~w;Ft_;w`@ z-Z_3li8hc(O&ie7jOc)ogRe*9u}i1BrT_-AKNkeInCYBB{*87Y6?9f3!K9--oEP)1 z$~%D&yi9fH0EV+VF>3k-9{>e5tcp(^-;tovm0##s}4s69vW&e4?;U{?j8%tbWe zKRrmPGpU_pmH>?@W>ag*xb7_T{#0d~_M0$%JT_lFRU%$bxjo%OWT*6$5}bQW9?>cf zR0pr2%_2wsi-0Oc$JDy~zOpI_*rCF#EdgzouO&+2YMl$#fH7}hIgkhdV_merChs@E zxN*##697ZmOzMt>Sb@B&LxvvghIhIgO9iMEE_rC0sRWEmVkEP5)qmXhZtVRrHVUBKY3dVKPXG0sGCN~vVGz<`GpX=(zkM{3HZD0ET`<_*%-`}rHr}A#u;RC*pmh*ZTEYM9cqA><+ z**nDup}H?a)9dNZ-)#?f&G)h%o9gehF1qkUC3gz`Aj09K$G_vrJjOL(w!oveSMgiF z`q6e93WFUgk6vgy)j#wU2%Q+o%1>HONNiSq;gK7-;0F7g_p>6pEbNHYI+%m*U)tv4 zNgfxoYc0xL2*g1dkECB5Mt|n%iqD#}3kY2w>-Af&F%ER= zp;%#>$)^3hcr55jI`Mwlar)0KT6_U&diLiI8)@<=Hp=Qt&^n0aJOR-^$v|ytQ%=Yn z1I1iyJf9p96NwM#Yp<4N{u=$v-%C6!!<}|&z`)hHD0?yVot-X^;RE)W_QvVox;|E>0C1#5uQF|`vf z$di=!MSWVPr*)PZE;i8rf%GvrAB%En@Z9T1&f)Az6#me$cP1;>Kf-m5}ne z3(fSCBV1~ak8%6SEmWY-vFBxbI9D1qt7)Fv5ivbjVg6+Fjh;Vm3>HJvZi{rA@vOle z^xO*@CzxNY4YwP;1afa+rWMp<%4Tf!1)w$ZQQeB=koDn<-pB(9KtnJC6NdZZdbNW7 z(yMoHgK;B%v6YElkUPhAje@boXnA3U+7CL;(Z0z^!jonfTE>?sJS5VPq`DezI=giL z!{4d;F4*At)bLS3QS+Yw}#JZ1A2q1etW_5=O$e)~Z_?6JQ@^AtW<;{N>9RVtZWanhZ^!8|VN zFUhT(G=I~TlqvWF$jDC(e=y+vP4)ann0Ag@$%oN9fFX_94DIuMZz!eoFNxipjBaQg zgU#Uu1e*LHArqy0y&;gW7D(_LW!p{q9H;3rK@C*@2oeKl1AOH!EAaCV-Sg|!6N3Z* z7DXt_8b}-q9jPgmmCE#vKc^Sgk!)t?QfQp1r8XPBJY>?j92m4cqwQH zwTKae$Om{HFi*&?s^L^{(W$4mz!;vH9EZ&Yi_5OQE<7IY+0?8(`|H~`xL&vrD)pniKsG@nM<)8K1Kl`i2b>v74kY-<_OWHzS-7q(c z_-cUw_<<()!@B=K$o~ubeq>y7`ScTXTaJ7tIT)jL3pL`!jCeJZ_e(eYn0W7?W|Px9 zwy^^*=z#b)2H_Itx9wV}T{Rjcpw)o9vTJ&ly90FJV>uT7kB*;$!h1w+T$=Rc|X$;=>>s<>XuMt`qV;-Qu>&^dk0hvoW96mM8@ z2*u_>#rT4|*sg`zIVWg+>R(q26xvq7yZ48*v#PPa>oU$`ld`c2fm8=$u=v!dR{abF z2@Q#D%0!NM`H(yvHBloB^1OajLfa!=e8$+q`iLn{;k2ZczSc{_CZYfaOxoDG{3jr) z#b(weiz~?NWNYG|CJM~ids9`}81k8*Nv}q6q682uUbecRG`IhmAi@jfy-xZHj={gr z`-RP5IOX9}!#j|-n&n(JD zcJ2L90u1`hJrZB>{_kWPAVI&4!C9H1gc=Ir_O-Iv1YqHgW%aBD92^!X zOcq!?c1}nP)o1N)fp8v^Va5C&VLyM&sXI!p&*; z{8`#!yk2k!g6CM_QSF|~(8L8Q$|1WH5RmS2K2y5nFDy=Ip>o5{=bF!Qy~GC#iGlGz zKVln_8*OYRN9n7w!Gyo&yij=?`}@i#e`I?TfPzl38c8;kP%?$y4N`>vEaHo&TmZ@o zLVVB&?w+zCs3bi7=&)bhDv9O9xdtiH^KGOVf{KvHRu25hpZRpe65@pXz@}|>5z-en zujlk?F&%x1TQY~?kX)@bkTc#*djbT){yAuKm%ut6!d@G_vw`eP( z&=NK#`7}+V7xXYP(Btl$NrJ+yBkRGqr^2sK$($K56r&Vi2DAq?yC9H0cT=p;DG+Mi z4#T5~1u)n}X4JL?22gCl$Afg-Xv8m*rCH9b04UbN<0K<)=o$!_kaqe zeJwu!XrnA#%xl!nnP;IjHMnQd5p8X}gQVSm$+)7vr>5+x^)9 z!`E)alVb)KQj3SH9)Z*%JmWbO6}y?Pgfi8L0fJ%l4bH4B${m{~-YgL27o)rXl(aMk zBU?s8j&Wuy#0Q%|W_yMLTZ3B)>Go{m%w2)aCY{~|!1Tu)s;*RHNX%KVCt5E*TKZ&v zkkvV1T2>B8bp$wkrT%YKQn3EOz$_-N8h*hD(79?HrD?oBR$0%0a-&m z`m%Eb276a(+s?FsJapTNLQ^8aR0?>37$w*A(wTQq)HPm$KqU;L`Oq8Wr$zfKHX4XU z>1er-#f73iAEe;$m?1h2i>g(~Y55t}TyWYUXzmaWL!_b2+e=5}&zr;(f!C5dn*wj8 zWh5FvAcd7+e&<+$t2rzK_wdCVeK!F`^{RU*xpOZ+`xCv5YV0*CcoybL7>S01C;EMQ zhb7lJEc()i#0>9{BKtH0s3p{tY$en4Sq6B0guKwvw0!q$`y{Vi;>EgMjKYOPu3E7{ z83&_ulpMd`b36>_Z>42ePeM`lnqH0|J)2-NlN)jkhSN3dZhpPkF&++&%mg|&kF2{& zYho>M{Z1A?1wu4$2Uz;En?Pdc(6-pdNaBJLsrNEUW@{Q3=I3n*@RK#$bR47HvB#01 zT?Cvn1j46)Quf_-|^!xTXDT)WF}N;Rdg=x+pN?J~ zb(}bX5GfJee|7`D1{odnKtS3*hwr?yb}MGDpUJg~;l2$s`)&ZtHq`aUP+QLvH}5 z`kxota*usbt&y zN1q;(r`JZg{3$m{!{Ji}{;H{bmt%A=_sZl1^6(ho18Yj-vB{k>w+>?p9Ypw|+qOih zsysNj4tr6fJN%M6!{8QPR!pt=X>CvS!mXQ}```>8GVrAV7o4PBZ zosq?3`=w(7{nHL;wwUL4tep^6%!?5PiYS*?`M2iC-!Svb%|d(Vl+7}H2{9PDCq_yr zU|hwxpVE{D7)rdEO#CVL5Jma|T9KF`OncQhVQxX@oe+3u{Z7~>C$_G{>$=l)Mu%Ys z2omq{Z;^5QQ1d3?0IfDt=haDsB$jtX;p@wxR$ITR#PsJb`SMRm1Oc#Yj{}yieMz-3 zgHT02p)E@@muI2c97+tt5jKDU!MBw2P@F*;{mkGz4l&f}q9DIv zv(hoHxU`^_fYf|`e^pf#b^w59+BpQxMqIKUyVZVn2CNcUaK%8U zuCmMJSW|^zT_xTFUvN+@2N`Cn8zW^Az^InT?WXCm!I%Z?P|F|iNn5QLL7(u0-R!_{ z!X)g;GK9HJ96z!Xg&(=zPGUSHeBhvt2EYe_S(R6VMS4_!TGD!Iq|M zaC0GMKB>f8v+zXo5^#61+fhyLm`HV`1r2akf{QQYvDns~}u2Fs>mD%Lv! z$MdUqNQEJhSpH?bd)pE^&FeDPXmA?_nzrAkbUthlubc#QHP!TssQW0W>|ycXMXC|I z3|eu58q~`uM5vWkY|=t?c1dI`AGLQH#gog4Q@>B@kO>CQX@6>3i8A1!@mDTkP*q_ZLa|9UU_S>C<`U%Sxv+6?)MpC)C zPzmqsm$sci6_Kifc>>{&En~@h(AO02-c94uR`ApZD5AA=Uob5+ohwwlv`p|yb9YLS`Z0&2(T9XSw4^%Ls zpa;A*L92J7`FO17s`~+oAysJ93B;R{{7+%0` z+RiYoCy~dN)Y0f(rEjJP-r>tzPdi8E{I(9w#l1EzX$RM)W~%K;8JXtiE$GTXx4qI& zD1V7HxpBHPPJ2*&0Xo`)Y8lAeBmEUTaC(jEtY01REm{?%ivsXjdpFelVz94kMT0*T%wL^^AeJSQO5(Yb?a_| zUI!HL+;ows_2+0|$0q6Slc1kU^8Fd#n(kW&bFbJoh?2}&UX_)?(QYYc(Cb+gS}SOt zU<=7j<$g65@<%pe>?VHGv@CK|?BW5t)k}Vt+taOL%4gi6Rst{G-LIm;OG6AOM8dK$ zfaX&xL)5*O+D$j+7ZU6=jeprI6G~4BhZNW8YbVQ3eB(G&=XrJ@KzlH8IN418$b2Ci zF-FVozs8lI{cqHeY}#SL@-)~`u)HQm{ua~#eG_v>AIO{bn^r9ZKn%ajYrR@+<12>6 zoSs6TZJTnSQYNbPl8L~>maPs zf=qqh{7t;((=A!mk$QRvWek~2W8Eow&a0tPn`)kv@ePmj*!faP^@{WtH&T#zK4WgY zvKpOI?J`MbWY;!@fg;D+oqwGlgSH?5am?{&k)18d(MgTi@5Xck$VFG80lu;K4N>u9 zrmi_CNu#0~(XO6xB+b={TDN+G<;KQu`T;UqwdepZ$1=8lY*ENJNpfue~Buz+*) ztTjlSzLk}q5Sn=<`Li>^^Kdcwm~E?CumSDYj@y5WoY8q-eO5(ug^5jn@zU6Lf{-Tm z>h@4ML&2t=ri79NWUuawoxQ2Llvgl5`TdmNd=QWKoUeE*Hw%(M&(&x!31zhxOjZe4QLSM4n-W8k;Hkt>dZT8}{Oc#l}!SbHw9Y1j{3O2$h@Ki$BK$+}v zr9S!WQaAVLh%9ROFi=rcaZbz=9WvbCE# zcF{~BmkvpZ$V_VuE5@`H*%c`ik|&>#H^K&Lyz*X5^XV|%ht-YMy=MTglcyZT*P3A+)skk`tpb^_# zVGek5eDdHAb^V0xOHhJ5PCt6E`+_ZMNjvE}uT*w4Q_ zCyS(LjBayse@FN7mIyKjVf1(Te^mfcy-)6*u+O+=bY+osxPS?@bP>ImX3F8R)G#r ze68>Wxr>e`=_!y18pYPV(Of`-W77QH6D1&!YkpZQov@>Xs#vC8vpk+nWd&IXUhA>V zc*eI(#N1AeB6%F2JhO7Hsl5If6qN}0B#C7ept5LYI9XhaNJ~thSb*=^GGjKP_a%H88Jeyu}iLS5^8^sD#1w0=a-g1BbkwLR&5Is6;)B zI#5I_zGBF0a^sN=komcNX+QvRLWU zU1mIY$e|n~>0AjHpuS-u!3KS~|pu8^Z_|`@*SWuALE!Y1@S!(n=?T zuEE*1OyN-xzdsXi!+$qTGpP3>Qv@7UEA*T`mK~R!5IL?kBmP4Q5GgcXD>FuZEQ*zT zUs69yF%Pfno!nYI)XOXTe9g$sJ6@xs=;G_(o3?E)`e5-TE}2 zxAFYa{?oXTM>e|8EFi1Ys*$bJcg-iGDZi}2;9t>Ik;LiSA-wJI{Xza%=fjECf zCeoT!h4;*94j6--TV&9eGh{L|vyh7rS8H@hvoAlzql zUYE+ThcP^~ip<-GLDnrm+kUoWLfz}&J{u0zmwJi5YZ)s0`w=bf!7AYUEql6u%!kJ2 zLt?ec+tp#;kCxo{iqf8J9&mtbTt63;@p#SrWnga0gS8T@6jr)7J@iUGa$CA5y*-P5&}__oYV(W?14kJ~U2GDs3#TzwNc_?d+puhgq*n#ko?m_vFvETtS@T zGrntovE}3Usv*U*wi~<-B`o~p!`hef2pyPa^%Hr5>!yar(-vnvZEK6`>5NXf)WqWL zVTB)56L$g^b2wo9XRe02j=_Pq8@EE^e|Q^cbnqr@&wRD(s71NSWTtlDPT2kq%|`PX z9G;L{AkzBuleA|l#q%>>$2budFJT+V-&7L_ZZvGL_{+!EgR@<4V9_?|Z7OdMH`Wdr zOHc$@=O@?=ww&TFBd_{9&6bL>v2AEA<(#)wiBkeY3JoglZBZJ3D-+A}YU%@9ybZyn zfRxRzPhbeYa6OJQX_rS5v4PYDgZ)WE?8PGc-FQS zBIe20HD0sa)Q*sIf=;Pt_nDRv_F=(f0vaXYb)@GsfP`xRRhz1pH@8~v8}sW^$@pY zX6+44p3z~yA6v&iR{G#Ir6*Otx<9b={y;{QY0pMjZ@0)->PH~ay`dFHp_13njwRo)xJWoSafV=cmBD~wl3s4Yjb(i*d!Z{?eqCkGv|**enm z*7=0f5>NclEJH>tu(;}AnecpUXQ5THOj}`EbG#`49dC>X!XG>5qjJvYm1U1GpUb@c zg1ieEy2*4^E`LexN06-RvRQkSx!+OQ)+|vX_PB)0+VZW6tb!M9bXAlbF!3hiT(A+Y z?cE_8tJdD8FW?4DkNusCrt1|MYR2?<*V}~EhQznNE+nvl0CC4p&pnxZsNRcFul-E!->QVX9)@0*Uu^2d`lke^&;a_K-{u~_o%p=*tKg4DRw)fuQLV@_xS3O?M;J-3!2nbj( zodeAqfPiAHsu5ce-|6kGTCumvm={(+n}wgyEtzc!DY>!Ui79z4kGq&1Mk0Su%6k|! zSo0ZwTMVgp-T6lWUp5k7KM;#|;+U8W!Noh6_0O8m!MXD4$7e5i6;_AeB_KA^Ov#hv zAA?-$M(?*MTCVboGeZOn(a`-;4DT5apkde<|OvJUmpWZADy##;K6Va{w znWUL-ci$D36@FFjRXpBwm58m!FIq3ipI%j-$lHCdKeBskzuC!+PN>x{M+Z|T$C70T zPyHR%-F*9?T|f1IJ6gdSUCP<4F)?BDm0K%zH)rd_Ano*q(N)s7$M8%W zw>Io*?)`34_~o6j%1+7lLJVy3e%Cd^0b6o@^rKp#<*nzhrJqbhnn(XIvGk!L;y0sa z>qin7)atKhJ!Xo!{>o`n8J?q6@l->re5dd4#vScaO}YS7=w@Et*4K}JICFkqzXkq@ z%w+C1KkT08$H5NIv8hIa*`;{Hk@yBxEL@Y=a&4%fV5CW`I$b_y^444W98v(2PzX5S&JTgb?%cL9PJ7mB_JR`ln5InI`auF?Ba<+XXI4!oA5FO^=o8yaS;snri<_E zl=xf%KZdYo=_@qXe3{L--0*_rzgm1wldnzwfQ7~pE;PvF*D zhlZ>g43@*{{8cx)$h0^1FFT!Q!$!NKWAeI_`mjICmb^tj0r|j*Qy)JJ&+x$RH5hO? zL;8kqJyqOBf1;wy|6;XkX6aCm1kFg~8}$Y)15kAA-MDYBR<@Sx0xZg~%rD!a6Qv&c zLv&rsW1NUxoOoL<6{#GPT;7Cc@^##N*V?}l!^1YATdvnsx?A=FaXUp?C&7A~s3={y z^~O)r5%-ZBD5QfyK3I(?oeDS%VhZLxLNNOZImApNg@7gV-!3;}u2bq_KX4bX8$gz9 z+a=b+ju<+f+PVZHDh&>eiO@wvN7hW-`^l!r%!ZoYno+BACC}tLF_!^5{~y(nxCN-= zt_yA6Tdr_q=ZJMbbY88$)wtk;Ae^`6-aH!Y+e_Z>fB&R|$MaN`mu~oL2%35KPE!mPSTSAh-OdXYEODKd1 z*|#i_y&_{@vc*`k4udRX7-N?2Jwu)9ob!I4_wV!b$6VJr*L57c?)$ksw%6O+DzzyT zg;*E^8AVe~eKT#w@fXX>!@L zytLHP7){ARc@QnVFzFJYV$x(BV)9Mv!dufl59tWxsF!k=s=d2Ts0mr~8te;#qzI>n znbIi2X+Xxke1F#R5o`Q#Ax!1L`>r(kyh$AG{IiO+XwbUW2zfL*C--YaSH*0j`bc)afgO63`bXC@cekGs#?1&rlkZy7;AV?+kA+f}G zTf)0G{&zZT@3>NEvqFW}ljF1lAi{XK&t9-_UEa(S9>Q6V%HbxT3AOmO!0n$>4uE__ zeY6XBztsR;pE-!&QFy*EQO(?=MVoBqu*f^OEX#VEv)6J*;xU&af}ZEVM6g`&FGJ({ zL#hPF4vxgjKNY;ON`&oz07>jCdFf0R5VWg6Of0pN5c}aqA;vgnwNki>55&yS?=H-N z(zgL~**zxz{u zl59_^bEgZOHlh-m7Tbr|u~9o6F9gE4{tdQpEF>`Tn-;)fJ=?J0hu_7d&d<%ZSHoYK!T*Y-dNW*Fhm*1zcOyK~C|LJQU>1%L+Xk z)BLGy{Rk%f!H*mxlEktMP&X9(WxX8XcPK+ruCk!z`RU1_#&kH$ccYyNW%mjv%+%95 zNzjZDM1y-D#9MMHHVnpXussJB`>ii#6=gng>9#-}h?A`Qfa>t!LJBehOw_3-krDc3 zp0kCTdulT#Txz+}FT`S0G3t*i7x4OL{!7KO4#33Wr>tN;&$Wg&-Hmv1PliWf9J<_+ z=4-jH^eH$VirqNfJqitu$84#G|81cf7#gX$4GF2s&Y?L5(g$u@Og3+pm^__PzyY4RIM%c-N``=yg~ z=iB|nKf7wmsYhELEqdZdA-t1upf906ihnkzBcQ12y0`app0^1<)yCc$dBoGOl&Ab= zhi&2>I3YuX_X))MaM@7Os{mJ%{ZGjT30axfpzqsYtcz%X4}|3Y{=MKWH4T7!#66RM4z{$EsWLy6vq-w02G&Q zd57|6;zS1 z+O@E^U3@EvRjZhufOoHY$g?rIRY9RdOobn~C}Q{7>uWY!!424{2hK}G{Lm65{wPcf zT!^a*x>i2;rt0d0bhwrNY?6P>g=JR@+QP!KFuc@~xkAZQr^Kk#!R)TN7DReIRy5&Q z#>5beaKxRO%!i=f4N5W%fTWZgz{9Tr9Ob~e6~y553CZ7405{R>nI(FgwCnd9O=x2a zC@+qzW$U>YE$ULSyso>hPC4s0&ub&hL4CAM`io>cndf)Ag>3MnM6;t+M*PGd$z+_Z zih3wc?&BCO_B&+EJS}se$=^+=fg_+um$GRaB$lT>>WMj=xd^hcRa+%iBIdj+Q-6g% zM|;$3GjN;Ps#X6l2gD%pa&>S`^@%ON5k>@i)2VuBC+e5nD4m^ab~eAMLKsIKbXRW! zh)H@~zQbNdL(3SoCb=nk0ioh`^vcOk2M4jsJp&gh=nrDjE%*vq^as9^VG)&2N2c)I zx-B>doT$?$oP~!%9lE*B#rbpJjK>yzon@GNe_dhIddzY@{65C8n`09y6OV~%@>(uc zf_F-Kb~m+;`&i)D6BenoM<(I5aiyA-N_qPEfe&bB@;u=4W>n7XWK2V5J~B`VSC zO(zjy<cn7}_?sf3CY$=p&$fb*B`#Rd@+7&i%JYg#gI(=IAKvF3H_bNV`8!G}Jv zNOT4Nl|}~S_JqC@nA+^{1I_TIsVQ3F`)b=Kq%GxpWk>Tuqov-z4Z#=|Wxj3a7>Rmz zUEj*X!@pRvE~m4ltNgj(!CQn8Ixb&1S59W`BVN|va6u-Ap^v;94Nh>W0e^;vn*8KK zlS`G$M$?E>s6@C><7-4X5AD5gT<8K?^64&mA-$&>9gmjKD6#8?^N* zXN|00mQBB@q1UFub{ZyN^xy^6+eV;uYmp^EA8Mcy~ii!wp9Z13iNE zSga3Br$5<8D`W4%dd`rD`BK(|=frHt+c<8`LpifX5Z3GqUmdZx&w_uKMhV$VOd6G+ z4q`10phUvHZ43%&nWB~4QS}^^eGO7R_3BE&C4QgbP%KwF7Ul*o>p?D50{>)&er#u_ zoOS>70={!B`H#>1A^7D5AuhN(%CEzwQ9+XlOU+zP=G*zL2cATgOl0oKPFzTyZ9O+S zZnwJ14YaCX*xcb^Nv6PPy zZMkoU@S95GI;)cjT(?IHcCg*tbUU+t`!vV(V|8O;Z?0(?G(h!YlBOCgHI3Kx_4$Ym z3wP7?IwsA*m@3Od_ph}z-|50TD&_ya_j~2#^M&L%cBKco*C7^+2qR9PoGaPc4$Vz2 zJ4D?x9U9znj~>o7=up#Q{f8>kT)~E^1fy!lCf_%lUAcP10Yc}{eY+f?|1cKrw*Yv> ze_TWC!BSFhqxVdBkF$kDj>g)lWrllSmiaCjx)$2|aZo{@)I$%ea4 zGytzEeS^>5?O*MO!Ie!jb~i;j0PG9~a&yG9wtVGvXt5b}#pc#a?<5`W!L`9>%VN^) zZFXl6xv$kSp9n7VJl8(93w{YrKNkx-qFT>(`V!!uc&=?TIsrZK5A!2|Dvio_*p`JA zmPKfP146*<*)DiKa_+ub))j46&r8D*BeJO|NZOcuU^3*Z$B+^W(dh%-p>8+QJsT`X->9J9b5M53S@taQ>Qkt@_8}`y&tE~u2twKcW z`yBcOD4Yx`m|Nj1ZeoMzqVCwH1lp3T|4Sc!if5^U0b1f{qo$D9lzidD8Ej7_bI4E@kdH^m9J~_XCQdYoxX#^LAXl1Rgm@`mCg_ zr3!Y7A@Rgowz=Sni>gO?$>y_~`=wVIj5X%3kNiZ?T(Qqo25hJW%!HGM87zaOF^Ha) z<6PLFS{j(VF1UcfZ_e-0Q~l>BYymvrcJ0&(Lf|K^JqUgCDBDiLaoO7>e*UE4dbYRT z3I>;On)_aExo6G$N6fReF*e(%5#ZCW4F1OO@-}4T@6qI0$)ke9k9gSB=9*f4ANf>q z$p=JmIZvvtq}O-Vhmy~so?PA?%%q==&eMizJ^p@8txw2nUT!i|I;S1OXO|j?*fXcT zf#PMq8-0yEA8?!Z#6Rz`L?0bi_dnzJLR+TwNFM%vNoZE&4md-+*V>a6xA z)=2jb$_W^YJ1oWm43m;KUf}vz>?4O)Sj^>;+N#U3zA+Vc?*-Iy>sCbRBR}WCl z5>iCAZ-d&@D&N-BB;YW$m`^&EUxQLUm9uET_Gxp)(Y&o$fxO;z8hR0jm$gNpZsT$0 zuYL4os^2of0BF*}cx*wA`r0>^b7dm;QVyQ9qwZ|YcaUYlPlMBLEh<3t*okp65wmvRQ0%X7YaU?eeWV=ktD>Q8xsvFZi6NrSyKd(%dRG zUKxaO;yL*9J^!M`imb1;3a$()QF+K*Q=5eR58Kp+m}|7p)&Mr_ba_z5AOg^-Kk?w# zgSYI?Pf|R?njKWMr*T{EZjeUx6?`MC!Jtsv&>tcgO?H6PY2c}IaqAu_< z{*A5+ipg$?l>jPKLQ^U4FlBu_-WX$!cwc_H`nX`O0>Qqwd1Bc`6Ry;DS)UIXY$v{) z-P>Q1K$XDk>lO@6rQbt2f5)u=991|08*93)=AmzdzeCw*s+=;Ltc* zA>H+cX6uX5l@$RCt!HFPRFOo%_-)(?QN+HN;%ZqUcT{fp$>$oWwvXHBOdxDhC0t{I z%~NlI%{r_UnUvHH9(t7CK)aUt&B7WHE-!RPS4z-)eRPBf8fU@2FayMRL)J!*haGUK zj1#tq^2(-_YB}7she{1bke;PmjO<{dlq-_*{I!Xd1EO^jFs2S--)0A_h22Il&W zSN%y@Cq<)C@7@r7NGVHKxEimhvV+S_xvCL0ip@eIIptjD|cbG$#9uBe?V0| z$f(~U^9I3D`bID(I&2~=2*l)G&k?hc z>B#|XcRf$Jx_TB&<*kX_c_;DUm<^L%{+VMo=&9s5*H!n{KP;HMMhno*db_t*2TA_c zKigUq5UeN2`sSWH{SKinE%v|q+Oj39p|B&qii2$%r%I^QNKJMkfoyTGN#|uhR&N&i zm(yK+|1q?#?Lu-}n}-D3GXUp`46=|8^2ML2k8X%#2EO8oHgTf=vu?|>sO9`BJ@sFJ z-FgQKmF9p;A3e1%su444I^I5tdfOqVea$!8tvl`I$wdBgSO`Tsvb%;u7;KlhxZr1v3%a2N}9%Fyx1EH=t1}^ z>I~m;?d6j#bq;UQAqx*>(-|IPFVYz<^U5SgvM$f|i$z0FvvLRX-V$WhO%ZAoa$~q@4)P^vzU+|R^Av_yGJ&+C9fE){$Jka4<8Ds3c2td|ElmZ~`*cooEPoYq3 zWa>}|Q*wlY7=Fb3f5`=-PB;U#+|*5S<) zVUv*EZ)SzkZt47y;zgFymI2qfbt>OMFXqH)^Cu>{GyXk$+^q@&Q(Ie;JD4*7L0%B6 zGp^^(F5*GbM5F<#TPEW}T715?Xs-vLKgb?-FeLS> zjG%lmHOoLA^boMt{|+T(9)!2IgRwpOFEvM3praV`FrEA zj}T?3a}#}@)W}VpL~?5|m0ysEDJ|=XhpVbD=0J^gIg-ez1dsm3*vN^V@^c=s=x~-A zNF;vEc{l2z$z!SJzY&_aH6LJp7@?aChE!|6qrW>8_ZMFO67*5dwJj8*N}j5~Z2ZfB zl3lpxg+aCi7e|Zg$eqDWp7H=7SEDsh-nWFS(4)Q+%d0%g?fq3*(~$YcCW7Yk1G*<% zDQzpw8;sS>>okoca1L?~cZJr+*lb2#*?K3DIjn_g`7%oygbh0LpM^mgKKc$}J0~Zvz z6nr}GR$x>Dz!N5cC)|{r+pd!}-IP7m&?(umn+FLy`(^gkg-xZo6;i0XC@a>Kwp)n} zAh;{r(Z@dDAOKhW$m{~1WCj_fF5{{$+Z4iKE}O^6_9Te!p{#SuJBZ(2%}@XIki)&z zD=J-1WROza)~K~)RUurN(Co>?U^w)L!4@$ZCUG9esuUF|X+y;hd$%_KL)|^H>Dc!8 zC(CCBH--MZ3$J$cS6|D|^~SgA^>vy(U}-$r=C&|5-{H$(@6BPVE~m}Y$Xvf}bE7*G z&3;E>tXI@VmJmIit}sB5sz%R?Dd)^sFK+z$tt(VgNe#1#(w-$ICzzW`d`dL;Pw1QY2coDG+ zUc<2~EzZTP(t?3AT!0q=eIeV@ea_!C+?~^b5YK=qo?Ohoq6kng@v- zlPTHAN0+i~tGJ#DKnSEtbVlNzy|TJ_+9tfw)$3JXml-eoG(4A8D1VYo&N@AJjhZ)O zo}=TxgJ&2vO+F~#raL^bTw|Yw-GaEb@6G?0%j8sE#Swfd>b>8OQw;#3w`4uiLg}X0 zJnjZ03pPe9ExZ(T>^Q)>m_V zfgUIlX8KpQSV-QY)7qZTyz~| z4-QxH`GEoXu9$rIaX;L}-sR8dky|3Mmvr37OCNrpGHgS*4ixAvcebCR+Oz?3R)+(f zIPWiOs6nF8`EY%n3g*VavHh*!Sy0q|YERpPM51ui{*gFYm29`cp`#Nlz!v7`fICWm z5#O>DqJ@#0!uV5+@@~9RtPFA+KNIKo&{KN~aC(?<(oW7U-Ija@JW0Z*FT`b`CNzj> z(VgEQhbX2CpqlM6vzBAg5(Jkd8u&J89kMd)i(B5edniixV5yxrY{&>~Zu3&&j-{f~ zo0qISUXX8U`t&Su@np2lnsIN9s!Z!cOX4PK+&m9UD<>YEh0;bd+r<6$NS-uw!y`UW z?~PJTEeJX;`scYw)^Nxk+Ueoz6xzA+LeV#fkMZ-qxf*N0OEt(XcJ*7ch!T zcLd7O{C~xwY@2jK-w%w4eWKi#@(6h@L4ebvungb>7@|7oDiQpo|u4iHiNO91Ba zsdY>j87%bYfph_DII;A)qm9Y}4e953XmY5dQ%zasx3tl>@76FKWNzBf*FIBcUyR*} zc}o@T%RiFJ5|+mFYkt9KQpgs%clemQ+x*fpF5jR5_?4pJ4dtKG8fZ5&0QkI1ZaPo@ zjH9{&%1elpB=sf)atU;Cs{%KOwrE?$aU!~W$b%w_?rRZUZXFXHWmMZ|U9uLvMp#e0 zq+=?TMObzTTQWte&?$?=CfLU3R~Vqpcac0MDR38tarAkr{B=5Gr&kCG9r)9JTi}rX zLVtC?Egf3Yl6GY(DVYwRHu{|qBPpGhl<%q@h+4QWXVP=?`5L0(7lD6)U)LXeqdt|y zJRYC^7MSt};YWLpUUKX-qf+R9CoF8Le+vzSZWXl{&~?V;%=!Q1Dd*CbCr~ z=`Sm7XQ#(v&*gwozaIT$_xcO{1>4K_mdt$Ec8vLvrI&R_&pyZ1IobMJeE);1j8UYu zj}4WLR?kAF&@6rOz@N5@UoSU4eO7zEq_-YFQ#;}G_-J#*ez>Ih;PPOogm4|)HrX22 z&KGjHh(XACp&hH@9Av&LB;}pw`u!&Td3Hi`_y?ZqPXlRQ77Oz%QDEm?QSx{DWvuw+ zgGp7tQB&kLdNEc-^ZR@49|O5=kxTKd#`D#dw({1kS1`!EcYpg)2S6SZIqtUU zG(fH6`XAQY?Dh(4Qa`b{;M@DDP*015hz5#@O^r6hCPpM|U~E5p|m z$30EJ+a#YP;s{tVppZ#>ym1)I^LUypY-9e_4vx&|U}w6^9jzh!x?qDnf_Up| zVB2c;h)9Cgv`k)kQ=c_Gbho%q<@wh->xbu*(qE;I7wmH$E=$PInJo|Bg}3pLEG*zq zbl;7BsAa5S00h$`Lmt-T){qC$;jP^iE-x{Ojc+_Z_>^#)@g@p9Z&l(r{TQ6YS1`%O zyDPd??#F*KcVuO`<%o%4N>yTDyM(XDT3h3KG(_DTwjT?P*f-X& zC=fSe-Dbs$HW||>e)KuFKffTuWPLh*PEphgTAnbUMkXHDZHIGFV#E09CCz?kVh14B z>;Q(-Lq2e?Z*3aigaBgvuXIiYhd)R+%V19*jvGyb4Lsr#yt(Nmt69}vzx!!Fe9Q9R zaMphUZWxY3F}~T33!M;#0_p40R6HQ1^QVps^J5Re1|^Ee1^$o>f*-SB3R)L~yIMJH z9Q6%UzTOUt13D{DgMR2XAc>ZdPW*!C6(3vC0*}Z{jag~u(XMnv;}Tr-1i~JUCn1DT zY--J`HA_AFCyb6|{;0~VD4F6wF6r0));HqfwTQUmnO5EE zMuyv92BoacOg#*c!v8*eP0TaRhaap!=jraUEiZnUVVJOu*t;Jj@HzgskamSwo$EqEVaz%O+|k1g^-olF-I|^|Jex@VIx*oltblZ0KBcup z{X?nJ_Wf8GQJzPT0o)73)F&fO7KioJeYNvS!|bbcQaR>BM5!{bwt8{5w}&#lMzAus z%$XYC5$xy#?`mwYdL^CYfID%n|GKDoeWHa-5(&dtdNLhXl6+#@t0E)K>$Z(f4-cV6 zWpv${UXfJ?_bBk|{f+R}7np+OznOx2YentO7sz1Yt6)ZH8GZBYrljY-vI^+@fl=jK%I3;BeDeIz4HI`q(D2_8D|~@hSVx44ET;cewlLPRK~& z2syH5{;RA^4%+3%t?sBVQ%g7La#qCyobSIu9nAtTniBCkV=-&Gl%)}-HyWqR;t*e{UN189F86?T|rMLYAI6< z&q-c6%|LCaZN8OW!Ve4{=PiFZ>}QW^56QgfptKdUy&3~{9iK^{^un+I!CWE?+TwD) z;=X&Z1&d26RJR9dCx?gcoVC0Y)ix{q%mL|NubJuhwQi*tPby={gE0T4;p2Y@8h9XsQg_fyebD5 zy(>8mCy=!qB`f!YKVI>+GEG;1x=oD6mTSJr4qpb<=Ws8{a)r2~5#i+7K*8-Z^CqL? z=bWXA^^On$(34gG;@IaR%yx06y@}Je+SiSSo)rlagk6tV-bfhMfs8@32AhtjrU^4U znb@b}Gf9Hme;)jAfBLrOyVWcJBgj&4K} zOCKGk^1O+t!t6!19u-)av~H_N{^T*0a36AITz?i?x4bcrDj5s@VW4SSDfe%v;u{S% zew|%K>6{ z^s;|Lc;125`GfNu9{`yyN>ffx0cyl2U@vR1u$AXB@0Zu;B`Ldl^~j+Hv2eNvp_hnT z>yFEhqme9sEWL^Asy8>v)8{R4`ZbOE`Py6D?(t*LFEijiN6vKpBX|LmyAWfvw)y?JmiNtbm>*H!7Hq{|gt!1tVW*NQ%0F+7%# zvV;YjE>fZ?rPdIbje+>JZcIMRHoaa2qr((O{ zN=a!GBY!E_p$=yh{008GT9@Wu)f9ayo>aQe8>suwSAV=r*5jZ(spPoK>%Krc(fDpJ z5I|6FYF7J(=-mBVwc_*6mb|BnuHm7E1)O7CRtA~5$6O0BV@_+=-B!TefHrvE_l%wu z30oXH*J^%cr9@|pg>^k#0QUBjD8f40ur4rvx=I71!NN0T-i`EI7G_Wo%SBg$`1zkX zf|)sZ?4iK{n^6={N+qxWx^E2rcaYf33ERZC>a;g8Mc*fTx7J-&;1{UPnh+!fAFgon zgja-;dn)K}NH>Z^KlKSHl$SNJKOrSmZ|wbq;pD*=Qni#uw zdodBcKXG>5yyOIcHg0P0z3jY=;gVSO)*-SR_ey*;n@uzY?GXQ{@I8B5H9!rF@d;aE<$KSp&RJ>V?v3Y{pBde z$#~ZHV^n38L)M|UqD`ttOImXKt3fXrGG&m;f%UJvp-*{^L0c9*B@_{qOBn#B&==Fj z`C8gBSdQ5A>5vCiU$o=p7GGy%*94s$Y7mnDH))O}P+7L`s!92PorRJ-?gJ5S6q zt4<%5UGD3w$I74(#e<$S`X=#N)^GU5w9w^4!{&+%?#6)6oNQmjsdd)@^vZD`?S<2A z*}1OX)}Ks^xhh;%w(znXvfr~gbW@AkI+c`glB4YL*3~MRU!Ff~@^Jr)F7HXW$chc<-`=zsw=6xK^ zQro4miD96BFaGH`L0i`a{}Bbef=Hf9(mqI!}2* z17YcobBk9ON?32YCK6SAFrL5aNSA*Kv$pG#iQM#5I%oC;UB-3rC;w?k5t-D92C}vn zuN?Ej#I3Y*qFO0U49{veEfXD|h;W@7LT%F~4SkF&{bBB!x_y7@KHGk=1%1coD{{fq zb%UiNB9SzoJ?PS?I0YI&C&`HmPItO5JUNbV{{!D!(4N~&bSRDB3XIwwE#b1Rbjd{N zH@bhf`Vgq@HhVce7C-`m&Uop^mACxrD-UaLS|!ERbjxdpd`dIxLQKZ=UzHzBc*d9t=;9xd^-_ zL*+?*3gup*_1L=n(g!_5;gzaJRws>>ZjR34AFzx)g8HgzXgXDOGJJAB`VR1#N;ns! z{r1i7bRGCzQ^Yr*O@e>{J^@%AZr{ok?nWJ%Xq@^aBN}|ZV!jm$UXO9;aOn^f`OS+D zhxYg%XD?h4uy}_9b;*@VW(o*oo;Tr#IlHeUY{~v40>Y0!t7#d-f55Mjqh*|cbPqC) zk&q589pg4NS_i}MsT{X7{0dyBMBm=V)`d}tq|7zb!iZ16ke!I=;PrNOKA!UhI03pD zNQd`PdWXz4Jx*>U;q$_t_+`&z@FNeQP75#L$CbQ?w!~Bcz16}>*}Q9Sb)I?%u9p6| zI%Z|X8$URWx4LwrSLG!l+_JE-tZf7phuy;dnPguaEk)#OC@m4s5Y{2n6}qTOvz(-MRH~$%O0Xu@eUIxHdz_f(SaE= z4;D`z;eri+JihJFD);wYxw`!aEui&0wir(|D{zpc0MIJx?T~fPieBahVQBx=Kk#Bc zlt(GvlQL(i@5e{9+*HGBl|oHBRSAMx4~NL8hr)WB)IOsV+(fLbC&8N7Y8<=}=^xlO zZGcgHf;{o@4qZOxh2y-CZAi!ToFR=T*eRwC9tKw^jn;Q4R?DBbUN?i}{sg?V&*E1G zX|G^-0L60-c!9%rENN4gGDxO-by5DO{gj zV&NK7)Iy-WdJE%iMin=0;hB2l@Eg%KzrTKSU4MUT5{E~_FaFxZwzz})fbPnCW%>>= z?SxkU&Gh}ab~F*A&9IJzxkhd6Qc;dpYfz$>JmHZ>@h%u1JD(}K8n$rO{PkJQ0AVr_ z2@E!(VPW{Z_!k;2z&7u8<9VaOmO}Lay#194?di2o)-rXf6is%#36&+*A^J zpdTw!iWZ095j%pQ6nHZ;v5sq74!IGVDk}oiq~QXa>uuUdr$4xpmTBv!#;M@tO~s^)?PPU)UZV z?<=qYMHBzyO!Y%e{tmXd8vs&e!j9bWW_q$7C?t|0A1)-?jX#T`hiZ#p)Ad+h9oUc+)2-O+2Nz3r>tmE!mLx@F&;#K-5eJ z{hzb0z-{0!=7(O%P12d3H19C`q0mcpy1cZ;O}&Z;dXgn+a;a|{QH_RagyBPat^rhz zc436LZ5OAg@Zt<&lZSMKD6?{?bA^aFby{`ulg1r>A<%`#F}QV?lj5)?P8Q8&gEJC;bF zWb+E_zgYePHq>c-34LB$Zs}k` zLE@e_fYH*W`>t0)=6BXJXo1t?6I6HAtVu+C&@sJZK|{=RK9xt|vhPcNYv0?DMxh&l zOpTb}aypHg8}z=blcDZQ;ttF55S?$lV!V|jk^xsT6=!sgGpX-13Er2tu!s*RTvd@f z$$vnHEJNy$i-G8BZ(;`9fhaPysi2cJ%8I*zpHxkTAyWb@d-p0O#TOdrNRJbCq^~@r z_%Af0dn0Ik*vI3~gCl>R`O_Emcgb#C{zg!3`-~VzS+Y8%og7SgLGq6Ob_7|+4#>Mw zl>Lo;+;NckxvWs(k~%!)D`tkQht5^Ly0J&BF2?sAu1G zTr&BHiG2eUKzDz%A{<}iH|5S5G%9Mlg-!Us1ZGTyof>zz;la#+%gTZ`LcQ0Y#^b{b zOVKCld@GwQP-(5IpNwyK_{~!(Fv-(CCRW}z#z%@(;K}?d(IzTc=``B>cSfA|CSb(1 z^|4LH9OhS60{-5mOxPcJ^*!N_+#_o^f+WiRRx~k8D%!$1}BSm& z6pM7{A3;v}duC?#;8`kgi|#<@EJs6Y+^Nn^S~EOF?$J4F{Q~dUlT7rreb=ROvh|)( z;=D@CM<`>hi)M*c+n^5|f{~(_{M!PYXwaCyE~&%a z7c&9R#*;7g<*P-V>1)-#G7WXFS7;TKIPKnmP}XwxRJ*~R^m(fOBl?mZ!JA>xhL3Z- zsYZl@41#w7X(yy0q-Wp5M`xuC(oX!rvlEI5W~7coeCzGI7=6Kuf0IMHrjF^NTk|&+ z_JR5DRX&ev3~KW`bF-c^HXJxR8{d~2w`R%d;h-GqN`d$%f}A+tioimw3gE=<0qmw7 z8-oqF*j95I|~|GxxEw(P_;`fcA&oBPZ0*OhfGQOe#m(y z!PWutJJ~3mX^P^J#>e|9fmf1ITKVfr~*j|C36zuMhs`ck5C`Q;laX%G6@HUpV z56XloS%1@h_}K1Jm8!9dG4Yu8Gl%W+wP6U$+1*e@tU=oE+JY{b; zdcx#adv8?HM(Pl4%da7|N7h^zxa{xrRuQTIW?#nIooD_@@%}mAA#Y0|Gf?TfEa^7z zN@3CrMLe)Q`A15akR?Tg0RR;+6(aiGMC~H91Jx0r(F*iemuqr4sc=IQz;%fO^ zmHtB0L8gHfcpK!fe1`JA_w1F#?c-iI2-=PcyIM_fAf#78s32?$OX{%lF*|tQ-UJ=r z*+2Ht=S%6)`MsFk9((VKeoxCiu#TU!k&U~q-2ViKQ8-QRJh_T|9uN?{;02F(^okvJ z?-=E=kQFasdf!q_b*>{rt=>gcP!Hxn&otFRQ%m-UX!P4hSoJd8(S*V zjJj7HU;`RF8(W@rv>ZyPkRM3C3ns-;t%D2a%ql)T`P zq>Ji(4iP4rUH#`z(D$x{Q!Or-9nKm=%nrw`Df`3>-y`?&03O8{J_BF`&8l#Xnj#lo z4?}xflzZkO#0NY=yVqm3|Y@YZh+m$-#xf3XsmRRX} zf94O+*ePm4iPohMp_o<9c<2RbFoLm7HZJ> zhEK>&fkU3he(P5J(8x9hH(?d4`1q~YJgAhCpYt7Oe!i*hL)hZ4ww!h%wp1ym0^8*U zA*MMd5lLyICs5jM?5>~GT?Z0f?bUmUqJtSC5gZW@${tWDiM=||KXTD!_8ok4Eo;Ij zJuQ3NwX6`PE8(FZ3;NrA^mD8{E{qi2o~kG(IEGK;7~#TqMjDf7|3b`}v4yAu=Vd2!U@_s@*iR?!*hom(4yY~ zo-{wW%^MjFHvl$OfaBW`Vn7(tmFS~K$iyV~$py;8pi^rOXflNZU+(;oB<^xHkhT&x z`lE4=8RNGc87Vi1y1`0pmwbn{nfh3~orHNtwmCfA!o|7v`eBUelSfRXvYT=4GdRKr zxmROe93c-^;@TrYh@VHDz0JOn^cu$|KjZFo9OfZCxF;tdB>1 z7*ZPf!nNiRP^kPFLi$}F`OsSqHE%lCN@VG)flz&U+_I?%c4@j?E&zfY6C6L<30Fp< zyoj8!ezi=x1>b~jtMN2>?7@Fx*Y<(q8^s@hak1X>cgd{{B!R06&sp?oa$n#!4Z!C6 z@YCmqF>uBiET6835B9fSdzHUG(3%rd7<0K;$XbO9rNx>Hi^oy{6E=YF9)fIx+aTVB zPMD0TvUU%3&WBzf>aTwb!PNpb!MjZZc6n>q?(Pa7Pjmh(LDZk>-_^o_1aG)inD92~ zH!Y`~F;!BhPAtmzq&!Rg#^T!RDtU=I??ZefSA+}$p=GOB7l+s#9UQqFhJ@1 zt)|hmPR13HO>`rB&DQ;W*-T{m733)F zC@(8;5WKcEYYjX-TotDNyA2vG+GUd?uB=3m%mreevN8|i`+klFZsUUQ0lRiCr`5Hh(L20CDA;zM z_rLK9#mN~!mMsoVhsQAEFP$|FzgAZe{%%mGaNh6H!nJc`ogT&AET{3e_P>~i+}If|}x3})sZ zNzFy42gwI=TCT^U#_DqdOr}x;bEX*wr=~=TIbAM2TYVkGsvdDv>IX@e2K_RSew6|J z0P(E(#o9@!_nmtca199Rp+HE(#x*xrwCi4%d?oLIS@q8Vxp*%4PuU5pQAYJ!NXRi{Ek8da~_LX!SMtcgVw)v$^(ajP^+r6v+)z>N1*7|m=Owh_5%{MRqwggd{1}3Q z;b$xE^TI(SP~HA6vgyjJGk$>+os(q1D+rA~Vv1;wLG-n&M3w#dj_B6Ut$?R6d}b(N zz?1Fi>UH_W@|Ga3FmJ^A18Z%mC63Ze8eqfE9()yai3bbs=(jh)+Er((w;=!@l8q$v$Ry-6nc7 zoLQ8Ot?=xqx|SvY{`BW-^uyDya40INy(x1OPua0x{elq^mei+TbAt{G>6iv|f)3|;#-8u!R1?Y63Q+WlW8hKF7Q^cmWTrV}*-pOzX>c7aa z`IffInpl~2I?EwGTtAm)rE-~0kAZo8w)+(&O4zf#>tz*3`1S~2U%Y)Jm|X7_RKJVz zkKtYlnJ{}2oh9I~G;H@w)Dk}N@)zEx-loXBc_sG|WRFv``9A^eq1z4o1E3H7_@O}!f8ttD}%DFfMoj-RH6u~)f3(a1i7VVfuK;m{-Xy``S1&`u;WPJ03Z7W-y7DRq)!#od35fS6F76w2wt`-X<&AKcPXa~v4_`tx3jIf z*-Eo!N-gzbT8D#3Pe7b#k&E0hsf`Ksnp{%zvtpcVHeg+<@r4?V4gI(1)wh7cxpoT3 zeK?S%r7Z5ItX*}g-cid%Z#+5FK_tk1YOloaedh`03s_a3wv+1MoviDODjLHIH4mi$ zv7!Uc{?11^nj84kL-PS)(;G|Dn6dfE;)A8w9xtqrQ%`ke45?b>yD9X z2UB0MOg{0(u_AbZ5X@sk|J0q(i-BjGSBk!Z5EO6 z%P4Pp0~^lZcU!HXuPzPwOj$Y0Bpo?vF@zTXov=f1H%n<9#D0EXVyNYM?SB2FgNWdj zHZ9>2XoeR(|8efPdn+MD+5 zQ&f@^l6_32Xu&8UOC+SRBqaMxB}tYc*_la-WXrxUWf}X#*vZH?_A$mRjG6g;hVJco zp6~Yi>wa~QdVS32ea^YgbzSGYDaF)GpY%kG4nW1bIlubr5dYJ}T3E49qT=_`8DEj* z<_`V&6rvTJG!!jPM@{0OO9RzCUYwt?tI!hk`1$6!Y0H;A4f}H-Y<4^G70mNQMLu*1 z=324!4u*hYR7Ujx`-$2R<5S9RgbOgv5(6R8zIL`TPk!d6tr*FGi2lnu3_ua@3{2emG#cd-d^Qz0^+yk{beaxJudPYfoHqjbp+Jeo zh3)C@r7=FOE}v#?Mc&z1;-2J|!fH{Z1HhtrK(dU%Kf%5yaqwZO4Nb0ssd9b$o8Gv_ zO*u%l!S4gmG|hK@W;8a*L}@j~c-(Yu)dAq&(?Wl*zVX}n$MzFIQ2&<=>Cdt6^G=iE zRCQ-blgcTnwQOatg+su)VRtd(UG}Rns1Kup3zA~`$}YnZk6cFL#Fd~pR%kMksZ&f3a@hfO#BErUkiQUC2-*8e{+ozkj|`eCMbQ>j&&{K zoDlbrdasOnX&{klFp=j&Q{jv>O-&j9SKGMDVenBxYx4lMTT${+-b|Ty^oIBOme-Z{ zbs4;aX`sd2&DueAJ+Gf#i60w_&`s#aU$jCWJZ(nvHqjC32F?Fc*D7Z-PvgoQVjm8yq^dZ0;H zbikO5?WmeG`zTXrG^TvAWs}?14_>2Pce}oU4twqWT1YUGY1m!CpykoPpP||!!#K~C zE`MO}mI)iqU{!X-FIN%Bkcv2HU@wJun|11o5x@H_QVTq!l9091;c3u^X(vcpHQZ+D zgnn}zP+xr^6BKA{7t7SFjzw77GNRu1c1J9q|Zf$6Ub7;>ujnOVN|pQfOe zD&mMmd31ySC>Sl@=)Mmm*54BxwhE#9TPaoBbCoN~lO>Wsn=QW|9C>?TGS+;2Wpa_d+Z6mqH5v%H`Zw2JB-mZ`i;2yswMT;#*fiRh=I{ zD6%qE%)>RmwAxM)?1;91EcM~eAt1um?u_Efng1iLn)cv_ag-WyiFR!|x#oxj;H!q6 zKb;LM)lPSm7?^BvX-`L}Z&QP+sde03>!JK5^_zi_mmsDLTFgo}sHt>)9cK$1-Es?= z0qD8z9j+Z{!4a@>#m+ZjwgjiqovYU|q;#x6=zoV^b7q|709JS=(YHnAwA>w~b8?hv@rf#p$OXh!#~wIu%gz{+K9OyAzIw=e_FR zNz5k#%>~AyfS+nnBh*y zv+(rN{i*oFT`iOZN?fvI=Yth(tKLi>eB;-qjg1eIy&$T5jyV6U{yhHMs8k-em2D9l;>&!qr3-cI-97 zgaI8}eKbC<;a`$;jPPBKRCDayYCaXYo6a?SXkOI50O(7CwqaQ3Q0~IA|7OYTt#|*c zG#)-sy*@w3C6&{eL1#Gw8es3NkKG6V@B+-#Pq(v}2G)9)|4l{OyLQ1H&(8a6{-;=u zxtXf?`0AQo@9_A@XTV*9n%Tu-eNuPZLe4Oyw9LWlL0Snfa(mi|p zGgWp5b|UWM*}Kia?kN3l2~jI|yTN{#ANVJ$%LAMh%!+*pDh`j}5RsyUnP-%s9t+N` z!g=W)Me|c&DVo5_Kzu=hQpp{E0%sYMm&kcAHLk3#FTZI!j!~w->PY^9s^iqR63edkyT&Y2d)_xyir(^K0poos2YI?#+GN zwG)4z1`FvRIE1THPGiprJc&AP-{QqQMs2qYbJYz3QXI|tnq!&S(slf~C#XihkIAdb zS1hhK^Fs7@c?p)V6S&{zB-{~|LBdgzKM7D8C*jH-GuH46se>>|E$$dA^Q!raUlNC- z)@Im~$eUnR+yVCW;je!ms5D5b$LV+uD3t7W9aHPv2X#`dR%<4=R5m?-FP7JfPRXTY zaf-T#`MYorf*w4}NdzkAc$P8E2Hq%~JDdLdFt>-Q*oJk+d?8?InP0~;%N^qp1R+(v znUm9?rif_~q{3u+$6K_Ej)jOkA1Q+axE#gwBUzqo(arW>`oAvEHsS zMlDs8H{b}SwXkJ0ELt6CYT<8+DCjuujYeyGy}xt$wW}kx=t{5Fzs=$Umv>Gd{@H~I zdR5MX_*xrB^Z@S%i8dLOo(E}_$x zeF=gxHQL&o&(ug8GL;CJX)L8K_z(3ZJ!jDv&t2po*x4c`>@!J`6geFch?!iTSYP{^ z?V6wvwbDv*_W#$lkcn%a>^8hfevYDxGFs(k!gbtY@YNgYi?Wpo{Suuww9C#c4Vl^@ zL=ntr*?#@8gWLIr2cT3grWdex>JRt!?A1iXwi{xSuzxv@`;D4ohxv`yPQa_F5 zSUtXtoJ=*MNt|80d{I!5?|5b<9Z}o^&9SW>aC7oEuN-*K36gG=rf5?%LlKNd|4;fM z7|~qd4nvUKe^_cY+X|dAZN5Ys&z?c&`$#REEaW&1*G_-nVS6X%`ZwTi7#-XX$b?U4 zyyaEc0MsN-7Nhp#T-W>5@EP2-m5zd7bT_SGg{`*sNicW(|FL7ie8rEVyQe7fe}({X zAyMld)8Sm@4eR-uyRieC^`^~#@1NUV)*nP^&uw6WS#$sVS!$a24^_xMXxC-2>v6gH z*6MxSWoEG&Mwwo5DdkR|cIh`+Veg3md7%Zq*YgK|dCe+BM@Jor`UrdygLhdtl$Bk@ zzH*eVe}7nLV#>*BJgU{ulKXv#k@urX(e>M>$F6E8Yy8dh_2)L|g_hq&tItK|9OYp} z>ghsY!-A^am!j0@EcAZn7S%0GiVt9cr?f!G;Y0=57p7p<+b)1{d)4$fG9 zEeBbp01aNEECW~)qF0oGQI{J?e$*E-I?3()4o-`sr)Dt~sk`PtpH^hZ`uX#jKLB5S zByFIk2^R@g3^sa(wZQK{{)!Vg_8zy1{A{z{zFx7mm z@fGWz!mbP(`1Q^_6Ei*2M%;dW*4wxtpfl=UwL-qtba0Jvpg9+oL|a zwuORB3GdUjX9F9$)9;qJFQc1Sj}GDQSd)`n_2zInM`bggr6{G~ zZ*`EV_g)ZmEJUAx%)gD!eR9=`^jxT!>Kjc<3-ojuYmhr4c`?d%*zSG-Q6Nnz#QUdq zMI{!;LO98y_cRT~XnJXXbvq60PCN*uJU$<4FuUn|!LH8R{+GxH+gaaG{@08@js;JL zXE2txsI@>#1!6*TaS)9y_DxbbQB+mj)c461_>DKr!=5GH02-g@RU1$gk`K7 zRk`AaxyFb(e)jpV#2q{Ond&08)d5u#DHP-oL-XSq$(75K=|cy$`(H}(I1!9khf0Q--YcW_j4|T@T5#sdaBK$H(Hj=3f9$ z6Eq7!@MuD)-&lRXdaElUu_iNqVBkUYPNKKYqTB=MH50Q)tGo~Jrp}cVl2xY(fdd&n zOx=nwx$gBmbIFu0XK4Zc06RhX8Y-`Iy&;k{LEVlbK zLMJH6d^SaQ!JKiBUQ-?Lb+?s#wi;wKww~P=qcBc-KX2N-;O^PX<6Y~CJy!;){vZoJ z#(Kky`u47TJ5}jS_K_&+ghtj-b3~0#?rCu7WFqgWUMC#*qy%2vwhDr{aE<-g*UTMA!tq2c^-S)sbl{Do^Dk@}LtyoI!=GT2SK5-g+yui}1Pe^xKGTM^eM+U$_!VOu^ z9}thtlyjM><=3@^yg^Zxh!i)<(d)2WiFfByj#npgUS@3Ay!`mGg`$Dxt?z>_t#z;MQKU#6Q-EFCC^Y39 zKjuU|DNLFK#cxUVSXUtv|I+rOl{NFSui&Ln&~2 zi6TGt9_%q&-abzg*!9*HstXGDJuxVgs3McDcmt0kd3^B$ujQQoOH zIQCZ*t~U&gZc&8l^=-|x*@=}G>%O)D zVYra@)QF&aqT=E`ms~+NhY*vz%VjGG<`qHZNIB|rR-l(!z1HHY#(C3N*R#7Z?}`Q! zY&u?uYi-y!4!Np8X*|kQqc_WE$f{NbK>e7BCUWr(bAwpff#tE1m=xL8NRYj$i?)@C zxaZX~MknpHZ}61TjCu9G4z!C?%Sjt#k%h$JP+TPN%sje;yz4*lHdWd+K#2O!lU>d2 z?~;>&l(D^Tzh%l6=&gNz-%TQr)mHD=_d{01y}ur5V16=uXcCuBpRw66LL)8k-^6*> z`;2%^#pHF+_OHtAs$o9p>is+;bEmJMJPGO2W4SfvVVHbdeiZwo_BkWWiyOJYl#H6I z^>RSI2F(4ABAOecEKQ&v0zaxr;cFLS2yX zU?&6^1v|`j#uVPu7JAnl*&v9&b+4jM@YxIMLnm2O$aC=bRb!Qu7qfTd61ACV>I`t3 z#>Ms1tpI&OD=8_>cGA;I>0W!jC)F$j*zwY-&dx)6`svAoZ9AAt?<&AFM3u$_Td|>S ztB`R@H}|jyd7*ivhjtM925Mi4R-Eqjo_O}`Rr-)DKjLt!xbP7Bv-!%5G2HtEBDT8{ zLC7F6i%Imd`GA{uQ_Oxc!+O6##e~Sm*!q(Qe(z?-==cDmy#ltT0XO48?CdY|rV3Z< zm3u5(@|^^Pj5a(7gcs_RB-n|0mc~rTe`*N8uU2J=D%v{EAin$T>)ZZ54?PqW69yHh z4vovn&bL-~y(ws04AwUc@!n!2L|4sSJLLI>O4-?&$^0B~qO8013K>zQt>!3ffxMlm zy7tQ+++Jr?t0INqsmAr+g&aA8ID!}+_1*7cJ(V!L#AjLNHK$U@r-S{ZY#cDu$^<)| zHGgEcq+=sofdxf=vijUQATjna18e1T3u{W+GQpxs4SeQ zyyRx%RQtU5TxR)}#s})k)|df=xARu2r%ywB&l_(nq&v=Oh^0Flt6TVVel%vz=ThuM zEyT2NSR>T@{&}RDd(}hjh_RafDB+0vaRl>x5#@IaNr~t(3l(hs(Gs&HwUa6B-OByV zSI&U@Hw5}_ofNpo4!kI`8-mr`S^jIXu_%jv*6`0@8aHuvIv_Yl)|V-~XG2avxql(B zjmtu{Gu`S?YtjI6brj`ws{Z~AnHFV!ulmZ**5bw z9Xh@|1Y2m9-${y}Lhw7<^enz&HzwwtzW1R=tZqG(O-$=Qz7|F12Y=hm_B@jU*A~yM zkq?3IsL%HVu-W;PPds;-dNR>HqcmB$Js5GzApN(>w+xyLM$9u;9(eLKbQQTg0*)=B z3)uhv7Aw$!6)rUVeD{xo3)E?0%B&qwV>w4)%8DP7AKoA|) zOG^Q|-QK>p3(YeSWxeMu9LI0@p8E;xgDb~=wseg`$?e*|>n-2-xBPBlyc@sla%>E6 zZ~E}EtEjnbZh^j4{|i}1y)#B)K%UxAN`nlU>wS%BCsAp=cfz1O;g*NybL8f{yR*F~ ziJSXQCbf$~B}cbqh>|tbQs>t*mH!9jH?*lf&UaSYH@2dJl#2A03`Sr-rV@42z9J@+ zSb4az#j5UjPLkHy9bx$7$E%29q5#Emdf((HahPW%U3*n7(-$~-$sSuv!J6KlB#ryO z3q}e{rgjt-n=&KwT3b_!rlf#V2|fiJs+mfgIqLwp6_8@p$0m&iiyTDH)QwNwH*r(% z{2{J{Jiq)gH6P1dsUc1-`w+MNYB3iBg2*MZ*eJbnGupXHdBi+xXv!BOVlkhiE`_k0 z1(ta?)8Io(|6V0PTc7BLAKFkMz|js|h*AzB>N^OJ|_WowuKeMH0BFmuW-i`Li7kI!#V^2MEUgGIA|)UJB?&>W4Cw36Y>M^2cJ z(Ofy=w^qBY$VKn`=IP#6=e}Ijaohm(RE9bGH|l??t;3HJRgVl4nV9St5sVeRbqxwH^LMv z9^=)XO3h=j9w!{NQ3KrU#3bSt9xaSRRo$%T`ERFEfV(r8)sHyr zwZR^VEcei(6lb(g9ZYd~LAfBQL>tPMl~`GIgBI^CtuHTM17>RLk#zDW$f|-RGkZ|t z*R9J>do1%Sw_pO{kkxHyDDl@p@d!75L3~uupCBxw=nhcuMdzd^a%2}YVxTv$x5Gqk zq(s08d5E7Hn6nL<+jQs*Ng>-kz*Xk}66ZEy4?}^fWab5RXj_jWS2|VlCrP59a*D}c z&~4;>*5_5U-Mc^PQW?K+&1AdU_g{0U=}%SYMITZu!^VWU;+r?W+R2iMYw`x~Q)Osb ziz|$3gd*x#GLOR*#lzd*Ktds81b?ZMvFaMqit4Q_b&5SKkg|@l5(}N0eVdO#9<}w; zNZTmatflTPofeXWJuI0C_aeEJTpvs~AZ)}bjSD-UHNq5dbkNa)sB^QKkIe}gzQM&+ z3v_sg=hCpw8co51nY&(}Fy2pi36weSf?+|)9H_h!Wfpq((9O+}MQcn(Eewpx& z>Jf|@TMn=*lp~r8t4lhSC^vuXdLXd(b%S@9!$gDztz<45e#h#m4+zOeS1qts=<6>* zSrt+mU1fEw;-tXcg<~=G`I?JiW?6dOF;P6nXh)9#(d2f4dANtj?@`kp;dGZ|k+F}? zlTc|JS(@66h<(NFL!WxD9zdOYP4p>O#l|DMv&8lP2Ef9%Ky@q6L_g8hnKMxDQ#Ljf zG1a(^^@Q{*Gw$8MZ$}j!?v@Bynwa*;*tX!Utt)!8Y-Z}Fi-PV_x(p`< zgRGbj=uBVW-Bxna0CmJWIL^6EPAF|6LBwgaN+17}-3b&Z<#_n%Tt--=VMqvki;-)U z>Xv9-YkONl%!BgjqT7NhSo!dD=M=ZVwP1^_&tLRDWsr3Uui}2Y{Xe%paKgD;hZT(^ z>DK}*dLNlNmSRC&5~1hhe~zZMq-%(-`mk;m%)wq9W%)m)Y!KV-aeRx7my7#KmR?Y3@gYWDF8D&ikfe!OkNo7=d*f2c=a$qa?$3X&JuSX*Z(r!lvRj($ zi&-?DSYnZ4*>(_`q84+Ak=OJ(&s~>;NR4VaVX9i<#($o4(JK|`+~reB7A>W*yF%cy z+I#S?#$5b?CS=old(3&B&1E8xTR5iZ9*V8^?s;cyIwrRg`PM7Oe+ds85YmxCv1whgAPZqqn{;sfE9 zDDNYWlLw(2oPMRn7@kkbDZhIpMw-S|B&@pfGz?t2&kZ)`=+u zz*fLkd=hGXeMh{A{BmGoqtWV<2oOeJD6V;F6zuu|XF>N9O0sWhZU$aEtSSC!TdvF& zwFM|cIOh70)w?$1Za4m2K>KzRF%c>&-J#iBD-Zm^XJXs^{`Y2CF532CMlEgf+qz9N zHk`cUgujdVN9Q)1xfw2<{kLl9>50O~O}+uRKTCb`rr>VUBrrK0;bnn(k z;%N;TT#uP=k{iEbhY`4Zx0NXS5r&i2mbxZ2Ks#KfE}j* zqBbTC==gxn>Q-TKk{c$~PQ!J(leAKO$}5CL%hXb55ml+esAM`LDfh|F0#D{x2J@S} z_iD`3K9e_tL8)`9Pj3ye5Q=;WlpodON#V>E<4OYQYro3QujHo8pm6Ut;|Bvhg^1pf zv_JYW&DFFS8QNF8o5-vEbceoYprLHLRgb`~Rq`OK!&Br{#R$MOHHEwJ|By?GHLG*V zen)E^ud#suUF)-)DsOF}x6KEEOXj6jfu8IoC{gvx)me=TI2j6T=k()AWrh30yR=}H z2KING0Y)t%w%|y`n29q^Lov&o0J!SXJI+H&Mt8o&Rmg_CI0&^d7s(wV&Y-@y1#rKY zFPD-SZ@B4*TX+@9a^<>esRA~BDutS~nTvy!0%Q4?>N?CSEdJ|O4Jo8?USU4@+!O1C zrpcWm6^r$jhlMNp`wRf{oLb>npVF42Qs-K!MCx8!FWn}2SE^+3v1aRxZP8%sKfC~& zG&r}*w_w8IbMt+ht>XUd=WYvgqwa=`&c;$&(!Dd;*f}ffBkEe;51oZ+l8mVZ>-p9g zy}^Z=nGhec52&by6FFnfua;y3G7sAI090G$w9Xn2_0O*EucSMIcytu3o~j@p-Hr#V z7?Y?s`@C{i=I;0S6hz*jwx;|9jcU*t?JSvNDgHh`-1rkphG!7yOldb_qzQ&=a9UP$CIeV^P)%7@lD1Y^&udiW z3a`VS9P8-_qJ)=Mc_9{s*HosDEL`(!ZZ$q3-5VdVc~SJ3U+JVuu+oV3jMS+cK`ba*HT;f21#e~($h07>s{HDa4e9TEs3%Q?Lhg7?yC|F!yNC24+(6ne!q-P zo$=lX*@JkH$=tA~C(8!c%VgeHOj+Z2UUW9t`!zPfLKCp#fw5OJpvv-#EFt2 zZMwPQeq5Gx5I~)&)XMX}ZSD$%yHVbBSqTEYRLgdZKFb`xw5qH&@wWW>U|EOO$+z&C z)3x>bAD8fbY(xM6I00%zp9VLG7sUn1E6GvN0 zMu_it09YUQ?_JdF$8si1eJ;Vqa<|7YazR-p5}+moh^OqN}9N>k%T+Vxsc`=sKv|^MRruD%c2^w2hSK_D0p?XqP9U>)^o}a0HWui}N`ORt zj@LYVRJA^TA>kc-V!Ec}K(t5-0Eh$U;+q46E0pq^Bq;i|0LQeRlRUM9@}16r?IxXF zqqbRVs|Px44o2IEk8g{HCM!yfnEbPGJFCw46-t^Vu91iO*j1JXV+%BmB}dNZ_Mv(w zQ(n%KBaTE29dR(qzPrXU-5O(!Hh0K|+O|l1zHu1^yyorJ3NNU0nsM8cjn?4b)xY51 z^1d0F-1jpwf=%6Rl08v5cl_Xjc(diNQKPTw^Z8G_hHJQ#TmqzujbXh3&j47^xna)2 z3}dxcHQXwYIoAhyAFrSdrqO2r0pykYnbS{D7>db^C=fs+g50ch=_YuV`M7LeQDZE7 zlcWx^yy7d#pR*Xh*cQn@$3>jP9O-&&_|MhsquyEL#TElv7;ilNqKRSE%Q z`V<)Ksb#%14z~K#EO=Jii=j=U&Gk$dson4|r^|aMJ(L{&N2Z$C{u6%amZ@K!dfMJmp z9VSG7k5$=OTIjIPyv};-NH35e1m>iktFjSQiet9fF^3kr&3xH0QMtR5-L>OM^v+f2 zAtNoUycI7+^?aO>v213Ggprj==4w?A`_(hE(-YLc*A)Q91t-`Ykl2vbqo~36Jj9B^ zQTN(8&)Q2maPes!&R89(O=&hHH;OZZ=s1@HM~=rJHRlDSmIvjFl~ zJzRd`?j#v#IeeR6VKe;{6oyAxG(k1?-Y|1)w?}zJIh$!a-Tv$9hDLq3X?_HmygQqq zO3y7!RW4bnW?zPE{64Dn9Qk=-GX6Lr$kY1aGZTlw{(C~LSeowX(R!@Q6HWZJ)yh|W?EMKmj~Wu;v%3Gf7B7-XjSedca3Im! z&E7P2>$;-y%eL$dRb>fqa^^h$gVr( zOllY}T`E!YJP2^r)4uvp+lsE_LyxivB8Ze-a%RGo#qzIQEoZL+=~Uq10lkw^-?c%A zkH_jKtlP>zR=zjlP^gEy+m-~WTC{r`7@kOuLosJkV&lf@_L?W57q5X(;9zQY6=vp> z)vW}|ito=#V`+uB*t{o0bgDaN%k(Fz|`1@5b+tt-E6}F90-W{ET{Ea34U@o64qS zl8>nha`7C`j#~L`rs(qctGkqtw9#()^T^7uQJ^Ar^#eC&^~gQ zWSoE|KhH321yYCbU09Rq{KW)-g!rPRoKy4^V2J39YY|ge=)`5rs<}%#HsnV%fZez- zqvtWK4E$=Iygyt6bD{cimA2n}faRHq`KL0Qqs3gTp*sOOe`Jy$FXou9t&N8u-r&?O zaKnS?7#I0&ozH;_}c)7_mA&(|4@-yhT^8K}o%#8O&oJ{7Co z)mC)`e!TO?=)~#$4KZB#iyzXg*|gte-s|H~nOW98x?NXM^*LQ-t-qW|^0TW?sZQrzLw#{w(K^X(Qt)nuI}O?JM1i zj5%&y>ztU|-+BDQ|3&ADL+ojravg9wyE{o81yWuyaV8aG+k9QlfP>$L#=g2CyGBq> zbjfO^XuFP}rA-%(YMsrAg95Uae9ASKyJyDh<*Own$>54d+}2s|-&D_e5F#VZ7=%dh@%4xeegs13ZVO|1?J08N^E3JOADb#EN9eb+ zc$q?{r&WaXoSQwCUvup}H8^8!#)rhZE@xi>2>rK&Ue{YGvFWKrOcsKKQ~a1WN;D4G zd*u)~x8oF$PKu{x94lk$Ke%e|FHzCbo@vRsuPll;X)uWCE=hiq<$E%wdB&N^FYp={ z{lQ2S3m@=4=6mk_%G2D|S9vbE87hT9q(z)qua+~(xzzjAfx4_^JE?S9t4T7T=Bax6 z_`dO3{P`=H2fiqpT$)ugYLV@UztXjyQ|ndjyziy8Tl{Z-ob1nfZbNzw1MOv|rp?h3wj zcZJ6NJ8Qu>S&%v(AWK&X-nbTn4rn+2pY)m-SArZZp}9_;tCq#hn;IVY!%wm6XOVWt z|57XCGKXylT|57mD-Y%Xt?cX^J_CeU6D{uSTx+wS_U_a<>kgq!CnVBuV!J<|zmcDg zo9ZfSU`ptNdoiEaBkOkFS|0q}ZYjAOIC68y&sqn%mAK?NzfSLefwhhM-RzLXKb8b| zLb`KHxynQXt`1OCv&^Dz0FBJLBn;eS?KZv~dt$>~CIBFN=O)9whUm{?paZUtvBakI zTF6(rRmGny|Bj!d#Pao+SQAty0b|9;CF<1&FIl{zy7TIn&-TWem$88q`qs<%Susmh zO|z4Nmc*ixk_U|L-ATIV)`&nUidN_JX64eS&s_8G~>c^t^^$37HX7| z*_gj>$s4yt`*Ce9XQc4AzK%C0{5Djan84lfuEQPkQH^HON(`-&H?7(7CS@OmWnhQD z!J3q=ZTLez!M$t;A>N)DQ{PrS=_6c=nyd0L29}Nl0+m6jBolWu$^G^p#)`w6#%3N- zHTSIUr!RN-=Bc|zfkHnu!@go+g|Mf}OWQWJ0Dcv1`KyBOw%{+RzjM}JBpR6o+$60N z2d7c+R7d$Wmi^ypgLUE#MLR_4_?m=xBMj0>mS_qTW7p(7v_z7dywefG*2FYf2GZ-A|925N2ZBF3BLw* z_^>wt2;383YSocL!-|a6*w3~&?jL!~N|KOGOKKak62KcCJ=%6;MFNkzjU1r}4L%i8 zY2e{eEKXXkW}#Fe_0uepI%0U2277RUugF3GI&2XydSMa7GaBJXtj^a>eCh;@vBV)n z14DS$sakh&-s%&))kK)M5EL^r=T3KxOV`J^PgsALeSEN*%u5BOc^4whpiXStzSsAe zQMDZO%2xbfDUp2Y8|EIe=bjiBiXy=246R|uV7Mb=nDeC@g1o8SOqF;HFdGoVtn25#HHC#mKmx7mnacj19zztOB7Hs&0{P;8^whem?6C43} z2_6C%Bhl1om=m)exY+1VRtcpsD6GNidoNq|;UoP5eQ-5vQ%fn=`MO^bi(YNUl^+xj zC##cijT?<)EPPs__HD-VRlEH}#iub=BK4n`ZIPHDxbq`3I?+ycZWST9h^o*35s(49 zwJHEl<~losQSgJ5?Ov(4Ci!h#4zZi(!1OcP*({vw!mDIOOai-Zsx(TH@$`gM@u8Ou zHmt$g0=?hDou>EdRQPQXlso;p4`+mP;47apOIqBZ6`4PA?$@6z`L*xktJrU^!bAuaMkI0B$>=x z!uwg`GOhB)QUIJf4hVpWCQ9s#m9jl3xa;DnPAt&SC>^So=eXOV;3YnjyicsoG~p2Z zkbRI4?=toR=&f3xx8dFXDpRTXYqWs#t#imgR`GRbCqC<{Y3T*c>#_5kzvxNzKb(MH z8~niW2cP2=dB1>cR1_t$U>H;cI>M$a=X~iL+4TyJ`IpESQ4o)6mLdt@ZfdDW$S=SK ziI#-ZB7hIgwaqxHa>hIdDv>u1(In5vpzYdnv!v}Mz}?sBL0Qrfdu&aHVKWg9NOWPl zu$c;AWdyprZv{47FQc+cm3)KL1KYSwPv*SKE8gFeO(x9D<%G9lLQYTM4zC=JSeU!5 zKA%{P7|=R7i3}u~g@x>kn1NpXiCc*34IN*jyXCtZBUnTq-oyrgX#cU+s?jyA?Z$*$lGRn)?e? z6n#@o-s_R*XCI%JAqD_4BKTKyg$^Cj+ud@K0n8I`Uqc^Nf3ZW4_QLQ!UdQW2xWsXKFMIFEkl8HlO%4VtnbkE*|syLqx{r*v3)-Ts3pGwNh$Mt|O)B8438Y$XVq_1ok z^bmF`3rY>vZ`(_Eq3V*Dvy9iU4%4GqFtBT{$Xvb&PWQ72uKJ zd4?${^Sbcf)o#{IsGO$$@UfR)^_cZ}z$#VnAaId=jh2@Rjpe*T2_#)#le1E(5hb-#nJRw{40-IE(*UKg+0IO9q}Y*X^R=#RnoX z6PZdW`WAOh4_!=vpC7r?f=RE-r!YUYKn3v|ktP^xrv9V#yb%JwhPc`yHJPX`#bq%5 zCKfI%+Ezore5WTZ^eS9i#GFC1EdIs3PLL#P$B`)Ebv~(oj;uj7^6*H&2cJ@^dP1FP z=rmdLL+}1qg$A(hpFgi{%W&mld|Z zv=;BW?Dx@Crqv8m0n|-zWMw!xTp+eyEC^%_@A?2BXMvL=)6upjhkDNinI-zc6O|25 zpKZ!-6X}wMo#6Wcy=IZKPZ~zCEgc~?odOdXT`nb8ouukOQ|zfd^it>Z6`0+RI|$hw zI32L9OlH{qs>uHVON(PixJ4q-s=-HC8@*m7xW>RBR?AxW|F(4=K8EuUhW1X?3nd9~ zE_Yw@Tr@PCi!Z4E=o(e0Jp7#VjaYpfK-dg7{%Z)vDc2}BM`P7k7fHixZO+y;fW2^Z zX8&E&2Q#1Tn=jYK8j6P|W=XGkKEs)x)=8>6PB{SA4(T^-v9cQ85)Tb<@#2UTWdB+> ze^w%|GfPtKlOE3ee!<){pwM;%eNGtvkZS^6YlqgLpTDoynTp>I=fo&C+Y#VaLSH;x z)-E%fX3pSaqY@)}eV~uO@e~6JOa(7CH{e2$yM~I-D|CZea_QV3#xSQF z!4tTrq3@_;RKy@a$$UJtYo+8Iw!+M}o2?kwB1v(TgyLr63s8IMhuP{nDyZMt{Jv~P z9h4*97iYK3-MJtLsxXxKFRh?@$Tm6nxUuFYu{9~hj0|HZjCTV1 zp+;z>;h^fg?8sWef4lbrDS`c$DfE`ejd@k0e`}RTWJ8*aSS2Rfs#O+mRwMX<#`roM zU<&f_uJjw%wUbv4AT|3Ra&6W?9jq(=9s{kGLu$Rn@en(`IE-!V8J9CV=j=<{ zrLO=CZsZS*raI8@aH$w>#K$s!{YZXXo(xs9Qn&P_CsA&*>VU(-Kctvm4AxYd9&0q3 z@Z}Xq{6^KxeyUJNfz2n_Y}j9MNU|;eI@=m|E%rf{`sQfszIupNxdq|ojLe5Sui$gt z0;l=$!YKxCtUe&oA@G7#fe@gjn7Xc=eh_OI2;cXk0JPcF6Y>Zw&P!I_SJ>Nu5x+wH z#40lwL0cp5;0M`8wdXEmRYtnz-MmCgANnw)3->Qp_ieGX_wWCsHrBa$l9Bxd)A9DStvkk$d2iSW?Fycflb=F7NTQ`1J zfUw#ekOX&B?Q4Ix1+WT9%1XyO0UeL=>-~=` z=HKY*MUFhe?D~SP-&he>eG_2P9oP=mvdFescaO!LRY|Ff&ZJGW0rg84IXBd7bjHS%_;m{h_L{DiLI#X9 z?;6>s?oMML^uLs|5g-zrBVJKP&#p~M;pGx6^cBQsKWb+=t*C2eQoDwB050Dr98A&1 zoFu>CX9<9@nO+0I#lY?m^az%9pq|P#4D&LOUURQ%hj+S2#l`o+F*nz;nR}9T#;xAy@eA!-ySE~gD}cM1FOUzR0~r~FrZLU3z98vQfd zgsqm~lw{Yy8>Rkok+RO%QJ$~3^;6;(8UFm?Er_L{3b|IGiv(e!U1rFzPH(XDYw z<2q;K>*HE~S`+nH2Sr7RPq6YGTLhL2oB#p&G+Uvc2YCDYKK_4td*zrtyc-7x_xWJJ z>}77dok(>x1FK5>XN#{B;TI)U-(q!#lLuqNg+)}j2HHtZCX*6*6cEmedI)5)6$Lj# z0)shn7Atc_RnZNT3Hy06a7^+-oP&b`g0iYVxgXfeyBdrF7am;gHZHosZ`nVp)ev$Y z`3mTdQ`rg6Z|oJI6>r(7*u>hua0vYdZeS(YJWzMPA1%RO1=nt_nT+8B1jByW%tz)q zUfLRMO+tfjm%Mdg6k;nB1J#NBSrx{0GDgKT=lDK<0{!a6PWXCE2o~M}vt=@WDQPr$ zT)OOp)4=^HW^*U-N|6x(hTASgUv3fzLtRTtVFB)9m&(408`iD8n zhLwlQlv>~f;>vJzwY!8GA3Aw72J^bD{7NyaiLrqr2Z(VQ$O|#)ufP9a{Zc(q1ttNq zXTWW0xZ#)w4lyrp)NvKI^F2`pqZ%TtT^p25aa40(Fkp@7!SY(u&)(`T2qv1EoRP>h zJvBqD@43_}MDJfGF0kdOB!`5HY7zi-@doiwL=hkt#Xy3zpV#HalEj}zzzw!S zfE-y)2!5h##S@8_8gQ%wEK@48c>0Sv{fjrd8I6D+7?-efUa)KXCX$9?gp#*{C1(j#JikPdy&&B!4;8J6KigS$e0Ib z3JtY`GHRYh$+lkRsruCMLpdeTEaaT@f^ATY!m((ncRj)I-zKQ2u)nF;#Q+LYbfW916rz&-*~ESAS6y?dUoodnjLo=s zsy*+u`4TvDu89vArIHjOQj2G<4LO+r)0ZyOKynX2Qrn!eLLc{zQbVVw+y59}`39^0 z0bTm}D9tMtGqGBTx!0UQ6Jaa7`tdA=HQCuY6+ib6e^l$F0a(<$3pxZ$VRSFPVJ8uD zj@yjxRU8BdC_yQVAG&9;kd*oJnh8^D=rwgTGF`&zIR8rO2&6%7ZdfS#)e;d^3mA}( z(KH4C8TJs3Ah}a>%y!t|vwKW8Bt_&n*Mx5Vc6s!t1q_Q3vFc9%W^2P^3>C8%VkS8A zv$E3BAm3+?TCObjfs(a8q&hqGP&{+#8KwEiBE!LmS&)6)0B0Z5IdWuZCwEk4IOLt& zPtKIp?ijU(_t{?hCl6RTt3od)>9z1)F8+VSy?H#;`}_ZoiZ--opGu`d*>^@MT0|?^ zLlTl0`!b_cS}YZb!X%-xm0gx0F}4iJE`!0?#~2K={+_Q<=X93$`}_HQf4}eT`{y~g zPN&hlUeD)sUH8ZR+S*re-&dM>kc+WGg1svH#CHEl7d9p+v}a+ox;FUoy#776fIcUa zE5zDCb#7>cSq!Fj1oFZxjf8$@Aeq~Tr<{PJeS%7O`eyWjSMSGd!aJ6)YIPy$WuM1Z zcmb^sxr)(1t(qVOqfW4jE8RAtEtY&m^=8Xr4es&2#nzOKT*KRW(iaz{EPbULvaHmj=OUA<(i@(sF5S`Tn!fWmd??|_{L~mgM8m<5C!G+in|;M+lH7X+n=P3p!HU)2A?D!@s25{5YcoCbbJ5z$!1GD zf$vomU?lm2+FkOY9bB{{8c#hX| zg^UCwW|7v+_0OJvQCOS7ce}GYKX$$0M4-d!>q-vQ>J0;8H!s}~uep&+?y;PZ8!@=! z6baj@>M34RQ|Q+olX)AEupKeSu7o>@+lj2N8+OL#ee$awm*-cPcDs5P_YRruO#YpH;v}tsle0ZZqjGtHSLv%L$eY?1`^SZb1z~_{{%_JN3`e0eP zqs$M6=6l85memC}yyE+r)kYdf|G;L|kh7V(*GF3#ZkIWhKdO`ullZqpsU}=?#iq!} z4^JYVk!GK@2urpiKKJQ2gj)*}wAmMg4=*&;Q{ER&y`3mL^H2;gpL&-FC4XT}DMgb|gy5e8c<@ZAX4l%AzX?JtozVkL z2g4oqvwviNiWtIWW*a+}Ba7R7YxWcG2Ne60D+PT59pP#DpZ$UoG)73+D){1wspk*U zK!yTLI_38OXlrHM?-A38!6Y9F3)}PP`Ad-?1bVZm#(YizbW)#rS!jIb`F)A(DYAXH zgUf!8Lx}|>Kud_OX!5((Kigb8Fxr@en)VX9Ot^UIdHICgxgOQ$zeeu&;pt&&0mM0y zj~(zt=I4?$)=N!y<*WjY)lKP3gkt(J`xm=m?H;|?#Q)MfATA%>eAP|JE9iaw#{YhOqJ*Fs=Zscu{i15W{h={u2%uk6N^3^DLvI(CN)$#uxwR;^#-db9 z*d=>0?v5ML1FzHZ5Tv!4?+d5Fy1YMYelR0h?rB{8mDR=`@68Bc#2T^63PgILqPK_8r-=2~fA< zU%dp&i8wfvh%?T|8Vhr#pGEgA>JNj5{#nBPUy*I2qeVZ&4r>H2t?T;?Pe{PNpm9*E zRLhPxhYQ{CWXg}|{mSX<{O5ZneA`o15`AN%?XdYTV|WJhlXi-l#fP}9CuqJ2dK)iP3C2Y!GY^3M3}^9V!trU{>J z4GZDhoFV)KIAOPG8Mffriv$!K#m>gn)cP4#tEu!^qp(;(#H(j)|56r6f53HE4s)Qo zl;V1fLXxVgc>IV5dN&x}Ss%t0hrwC?r7=rG1cD8wTxU00@%qZ=j}J4_{P${H9JI(R za&#VV19+%6OhPKOgA_G$U{_BO)+8wlr2yzyyrE7n=!USD;12?On&NA5im7qQ@4w{P z*ueVKZJ)$?GY)P}Ew1s2bb2g;ngx)KkD6F`dX053S^n#Y$DEI|T6T_|`H#|FAf8Mf zz_I7qUnuNP{sg&n#iiYS!3UfLE1eJUIL4e}Te3VYmx_7<*tiXRrI+p)Z@K4NP9IGhdvtX|54T%~UOe0Hh>^5Q zM)Sp9?155Hd_w7ulx;j1= zAgfofc0Wz9IzSj)U6mpqzs}wOyx|-A-IDo1;V6CB{Qcw@__kd+hALmTS1y+0IzF2gP69(CP- zerCW-#b!DF_ccl}g^#M02%E#59AbB*p8k^ZE!IRkTkXS+*2lTuv{JM?NXn;i=s5eV zVO-RVtmbnU%Wv&w_rueUkEOkoI+$9{#0pO?@@iIjERk1ohNfExNdb)AwT*NX)E5SC zZ>8mN3Tot9` z|8vZbZS2qw7D2>Jse|Y-&M}tHe^*tzDRtb#UHl%A_?0aq`te)|wZkBGq`mC(OB7FE z--2qX@t2hQ>nll;WaH|9<{6cmyosqko4@B3yg7-6`$S=})-e7kD3kYWX~@~|l#|Vx za6jMwK~RX)N?gT-MsH;{Yus2)0bg3NoLe9-CzDNoD`)|c5)ZP;I5KWNGHdYx&Ma$x zc7ec(>!t6<`3B;33PD2Lr7^;IzOGm-&U6}2`u?Kwbyby53YY%}**}$y#CijG( z&+{A~Q_IF$8P6hr%gnA0)wU+R&64=ayg7PSt*-^f01V5sbT}n)N~%*KJqWw-6$ILU zpSZu5?r9MYEcGD_Tx1fMfLftU+fd(&!+h2>J)a=6Gy59&vC&P6oQ>9Nn9|H9$->Pe3vsTuvV+OnvR+eWb%Vsjxc;+D~7Q4uld`?i-8!HSNA?Eshu> z+JTeGG^=4xxKn~XCteg$llN(sVHg#h6$Fr&N$fY{ zLm7ilON)Qdz&*|bnU1-X%&L`;Sv`wMx8qu=*Tl_pC^&i{zW?jD~bn z$4O}`;^(L@{S(#M1nrjJm}*7s#f^uK=IpvjyQ({HV04vLlIj!jQPSNc3uICNtt2?e z_m4?*FM47T`2iQ8azv4Jm~o%(I96^prQVRqUdJ#7(z-tT3)_hwuID+3>=oI~U!Q1* zFep#$KX)`$GPXW1KX%00T?@*Za||8f4Z|lv6}(?f!KR68OGe>X7Otj3urC*OAPuxK z=^_z(TI=#iWAwB<^eMUvOC3tk0Vqk#*nO6H=#R-W$0%Z1g+C|o2~P_D`j&UO6n=Z% zv4J|%N1{$rxPYBws>g@X>mex($vLVDw=Xi*aLp`H9`-@UohU8M5VyI%eraR>NDS9& zln!beo&ANVS~R8N`IwvQ#!WrSEjrA{Kdg<84`P6jGNX8a{{}_@S%C>drb|x1E(dzV zgOKvO*6FEvKGRkxY{3PCbGa=pZmhqLvg&yGC-D|h{>cW5jkIIWC^YDA=_%aJqJGE5 znLKk#T)*JMzjyGWA+Ja}&ex*_?w*=b=oZn(zL*)ndL0`xVeF4Nw7qqdl=GDtOY`t5 z{Ze>7H6_nYQ#Hr^&6XNkN7gtnEqiPTxGuHnXG3fU|1}=*>*@5JsD6qg zSuMoZ$j31GRk;J{~P5^va{@8Ual*+f~6?#Z`4m0`x~cH+{-H-!hVa`MiF(N zEx|_+c6u;B_F|4_*!k_0fp+Q#q^@org3;c*Mwy7OMHNl=I>^tuTp6!_fJ_4Ys(YrgtAuc^e}^~y31aG#@*oyiw`mq zG};~!m6F#s9kOC-DE!7KZ}XcWEO(zD*X>9}_&^~wh&5~pYjkCun?%xm)HLgFQ zjoic(>!AD=!o4yzLYS=&s6l*x(zJ&ECuG}QvSm^v`2es%1$C4SDoOI>lw$WG#q~qg z8^8eX0q=>B*~{j&p+sv7Z)g%-)*h2$&ktg{c{+6qM5muPd6$o?F#enqNXX@rY;3&I zu7;Hi-+WB90KVNuA+B47Z(&rU%a|$2EpwPJh=V@^^!>JPj6(-v z^+W#hS^sf(kLIl>c0_+&t+_vHqT!80NZ-0csf0jD1wT~jRu9Mclmaj?{)?+=&4lQ< zX2#+`HEr9Z@|1VItIr z^#*_`ly2k$Grgozz7rppK$7 zr2#}HtSs7%bTBsc48*q9zjQGFg@CJ-UMP6`Q+>}doB6$a951+0Q0#sGKB(*E1M_%|9cmKDU1sPxjdR!G%PWhYq0WuSNL_x- z2M&_9*|e;xS~Jy|FhiHZrpuKeCM0`TDzn3O_hsSKi?fbeoQzQ5rq=OcPWJwGZbT^1 z0FH(BW$sTL#vM0d3@sdb1G4u%=N>g8O&+5D!0Klha^CT_E~}Ct*X?@0pJ^?-4f>!} z`DsI4c*WRD?lzeEK~;!}60ljF-Dv30ZElFj zR!cl31-xr<1tP6A!ybDe<)T>JA;&+WU3{c2U}53Rg|Sb^u5?r9n134!w}9e22Qq;D z{-_U%ERzB5!W>~n!+*b2aB64>1JIqr5pi~G^df_|@W(v?1+EJI8`pGL@=qlsKux_9 zb;CELCp!!_b0`@LW>c(Q@v_t-b8{q4wnv+t8a!Z8NHGHDNEHfO^4K2w@LUf zmx#vec)vOK)QiI}r9zliAuWs((YI>G6%#GzjN_fgrZgkV_oWWgqWVY^HF;kZ*T`oI z;Em#9zLihSZTdnPs?Ixrd8xFl1DJ=f*D=FKh1qv%v`TmGaGWUaODE|yqRICxVB9(M z?N4+P@@=)C@lW}o$0MO<+~_V0^|bJxMvkQwKaCup>_wjav)qnaQmZCuMqompH(~u| zx5A&OpK*XFIF1waCj@tMBH$8y$Bu4wmO3e9LFuO)G>vYn^o+Vg`1|lf)FOfw51By~ zHT%eE^Ct@634X(tqNl4;Vh!7Ezf4^6z!%RVxUsR{T)$5<_~+h~vHPdtQ6 zx++1lWP*IAo%LbToEZqW{G&7C^!Z%%6-*J0GaR&Nj(YAW%#*VOc4~m3w z^%1KH>j%}pzP(L3Ws3PX>!F14j`1?V7yCuOe^h?s8Q($3lJdhi-395Qcf?jEjMb)z zDc1OG8`+`xKHUHT7xUi|;WNhv=hkC4`;?@NJ0M?BdXTqebGvgv zjnME@&{Wvk5|AUFP>Bst{d1mtkHw98ep~WJ5nR9>IYLfKu#N~w)2f@53gGBB#(amz zU3(R4=<{0{-gn&sdkNnjvlvfe8)1=OkjEc76(b)lZvK6sY_dP%0c&II)fX9CL6iR} z_;p6IVki@))qQN9I*?+4pP-4@I{O#wl3Z+_rOq7pC;9Eej_@#v2Z=RhR;We36N!`B z=?ACqnOmv5=~XXA7BF9smMOm(u&5|nY*qW(e25E%L7wD)<$@t|%Y{?~V$k1Pr-_NA z<}4TP+uctFw}Va^O&$2pGEoi*=3-QNw#TcS@HF!+cP zGBd`UQ5VSB0bAJ?nX7XFW!fq^OSw;~8B0glcALr*>ak^;JKgB3S1}Kf@nKuN{kjzf%k~tv+=Cx>F>E^!dpAukRETQ-<$v*)|bvRly57I-hIa zPsnwWKKD5rxNX?ScQu--vs+<)Do22DEe8_O0FczYcOpliN&(>T$F3-te>5ln)4rcW zp`ZxwZgPseY!AB5rD0^?;y%FHwv$haoqFgL&gp~)`UfHnON6kU9OJDApeaYt0I5$9 zRGwSiWOG_)Y(Hp!vu4!&b?|;i)a-$%Qu{q71};eKc_)^BEKh1{2ipJV3@nWrkUmXR%qKUEiL+q|dzZpro)ZCh$wacwnQN6ES2k0`3fym(nbSha{@`bMnX&)1Iw^!izBrS0xP zdx-J_59RPR!&9?*f4qSHlCFCWUopKTclj{;HXy>cJqWl=!ahc)AdipPaD5zF29{cG zM8e)xc zhv)%STcdxYX_?-0$kE2hYZNTU^2EY+bj%8BN6PxCG##$3H$*Va8b1OX*FDYz6mlOM z))>gmftK!!a9sOzqLm!zA+DYZ#uJohE2}wwom1Q58myS;(p`CdjU0csW(2= zvJ4R>{=nYUwquzd4z2$SX{Pgb-BU-c2-u`2A-p*ZwaX<*%TN0G_)F!4+&~A@hcERhRj3*mo)rAI(pK_}06_+)lM&*y6E;qxxMWtn4HDGZ4AK%N!tM)AV}G~2 zs;4S1XKE&7L1XDxQ$qzMFg(XP=4`VfP{44{a;y(IJ!ZZSj7FDPM9{jA4hNdVU&e3_ zS>7>I*uo3mjt#N>%u<$(4jxQ(2*emsv$%0GMZCNW#OlDVYqaTH;(D$utvHnV=znfu zkRzYW%`DzhUB85=675AgFoIFSOcR54c*Ww7nxI^!;ytOLxlN+nGt0oCK5sA{NvC76 zm_}2CLx2Rr2*}eYP4O~MY$wtKyehGg3h3)O6OIk%CWO;6zD+adH>MVQVaiz6jUT~( zsM*j%=tG0Ny6|nh!65n}_0<4K?{)N)VaiPn|H7X9n+dG0Ef(BRHi=MX?ghtZ68*Ew z1?5pSqBnw8)=t|TrFpjB|YnVBf z9{@IAj{DCbFnH0IXZblmLEG7`rk>0MptW#BW9KB?bP=tYZn|?8HCH_{+zzdVS)d1c zPCc~NlA7Z0d%u*Fl_(W_lR<#9u*Hc(%t*FxQt^HQS`55WVsQrZISYL7jWYS6I<+%b?(M89Jq+`A}diDU%M7|r3vB;RLsp4d*{Jb)X1BsZo;$x>%uZ z7rU7`iN}<(%I`yiZlHfP)l9wEDE%4Y#Ac@U&F++DXTQb7rKum3V3Xl?{*>*J;YV24 zM~uXU6|O8Cdc8zhAK2i#N%(t82HItwp}w;gbr7q)pY7IUyyi367R6>^6UJJ%&Lao_ z2bx)mGsEY&KPx35aFYEe4BE_({9y%>nSHOi@S~^-BJZHy$Av>*+n!wdc0vEwohTH@ za57G1u`=>VyC6q2O0)`0#+p?n{YX`nfWCH<%^rpMOIXZaj}Lh)Jss*^>U8IlLXu&h z@$DqkfxZx2Eih1qvJL{VO|@g9Bvj>aK#WVb|AF>{l^*`2!(}EM4}xmL?^OS%0Q#H% ztQIRz2n_oIj`OmiD&qHhBMSaBJ*kN@odXt!OfXiHFR}|f-j#QOKXo7&=zW6S`;zxq z5Hwbans1Fdq4S z>iSBM)PAG7?VcC#plxcBR0JyBCw)g&Z1B*dR;jg6A3E)H``Whsq0z*H29z=91a+@sx&{JNDl3?jc%%K5%9 zx)MV)bxa}kGXO{Z>wX4a!2s^#ylS|Eo1q>jt9J2m-k@WW>rX(!eyiqAxr-+)waOCK zQGlp~>+%&1gArVZO{co@#W}9a^X{6)^WkUET(!7OQyP40OK`a>)NJsZM{mt2y8IB- z9qU%UZ0@)<`sT&U$@`_7%mj$RRUQ*^-Y>)PTI}`Kq4I3wi_4_gUb9eJ?<7>8mym07 zOnRAJ_jQ+slSQA15;bnQ)p^1j2;;v2+hD5` zkmmd|mz)YZa*f=AjGu>P3doy@>+1m*QZ%~Q9%!;!6ae66y9Moc8}c~(@m0S4AM`4} zJV-|tB;Z9$x9UZ$L>n4^w%8!2!?KaeE~s&)+=_I_Gjl~kc76GZPX&gqLSv!Aed{6< z+L=P4v_I%;$sn+}20wnu!Mbl>;#|wA>v!rAF*{?4E?GuFI#pWD(bUhO(D%9toLE6) zUP5~miaz=;YJ>?dMrDzt&qwWnaURzUhwnO;>*uHg?LbdH&GeJkGd$ zrrhC=@c8Z_+|AJjkE>uJe?q{*F|nva!{}Q8ObneD!yONjRX;&%5Sh-n1w}r&UX^Tn z(;>12v^2ckJb&8qppG~JY!))3hWx4h60r*9hG?wqpvh+t4-yex;x&Esp9J*m&GpoC z1Xd`eR?7o-4b-L_R=zifh5>ExZpKLSp!ZQi0IjLwjDi)Xc$`n(EG-jCi|H{z_R=RB7D)IQrt!L()T z+inWB=ZxVXf*rfC1ZN|TfZaC7Aq*^7Z-k^I&}@SP)$T2KQ6@1)kS|o;Ulrx;zwL>Z z@GG^8BOj0S<`!ETUw9A@WEd`)P7RNw`soW*)1<-P&!6w6Z=4(RHTZ+f+9nI_xAS65!59rJ zhkAuZ>c-{9^^mrw0fX8=oR9lO`R|PSlJj-!gepr znL9WcZGUcI(@awwuvk7W!20Wpu&!RgR}r7l0oVutnNPObHkCyEd1Mmyd3k)5r$ z+AqK|eVt=gVru~l8F>aWjaD(`!uCWv+0y;_E!5d{!?v}k_2b|60ypNWO|4h&TkXd* zj1&sq!{#yYC2BB6_V;?K0#(*U1VASVh~m%qGwOgl*{z-W5tC?7$?}xwW`YelGj!(U z5~5aL9<|p2D7iZ zMVB)4kCjG(K)fr*B#ykACg%nu|KWB)Yr$JulYwZ5CocRl(@C5*Hz8M1lm6l0Cjm*I zHFYvxq#~r-L%Q@;Qho!*o11#VC?3}LeGa^jQhD=G>0fJ0D46{2Eh!}|1 z!`c5$*xW&s(Ioa->{M~|lRX-{u(;8KK+{+sV1$^TTdJ*c=p;z2?%hW1Y@&ZDUe8BOhiYDu@mllf2w8|B>|H4QlL zJuj+HOG=ZtYxcU+=||+pBtUAlE|Xg4+NpOy=;-3eaQNT}SlJi-w_1+ExBbdT#=jF4 z8&_yU6`UZra0sHlfg=#SKI(wkv;yrJ^i%Mc6w4bh&0S^RJ@1XldcGsk@#b&AfEO+e z@5xCKK<~F)m_^=U2nz(6H8qal2um?B4fA7&uM$*q>Y?ojr;U4sZ z-tthHvmJ`dv*Y%hdB|-Wm&iZo#FwB0@ncdXXKBH`?$RKSc4mLRHfSYXmpwLJ-3qid z`*A`yoAg#Z57h_G*p0%(PJ+}jw35A*8W9l2xdhs#P5c|6Y|w72OOG8XG(AZlnf=S| zo67E-|1{pMD|F6uiM#FQs1VUZNHggbUG=Bu=>K>3mpd#WNixLCK~p2Qf3&SB%bVqn zA0kBa?Cd(O+~V?N&@g@IKSEcVZABi*=v+y;DAL;P-e%h!C?9@|7`xZQD({Jd&oZ~C;}3cRq|q$jtzG0awW_m@FmZk;iX;GAbv%mG zVo6OlTE!w?S$zpCo`@Z-GzP?TI#Jb{Wj-P2j1K_|*e;;s8;F1RCLN8q`R>1ZHNo8W zIcu5A?&pIxRjGF_>dy0z|5Q+bB7=Ms2x(W*r$3-h>fmB>c0*wTv-%;Lf>YNks`#TZ zHT-?UK6vV~kM_@4ui*LTx`)L5eyaOOgeiwfdXcb-enjMlkIZ<>&YsaxexBiqu-U%Q zFCVOB88x{rF1UvPJOIUxO^~?$t-q|;adR}%0=*D>T(PAgB34BuRe4Y^qHkbkjEsP+ zvs<30J#uP;!UFw_w%<1oBuL#+40!N8;CTaQ!_gmc0Zyyb5iXT~4aC!)=7y{T}cob!=}Yhm0+)1Cj901)rfE6W|?~ zpO_oCC})!jWSIzqJwLaItRMHN<`{}{1tfdWS5`J_rlBzBPhI6$NA_kmZ2S7YH)PHT z#S8S1h+ztp8@Th+_8fuDdr0kHD-R9ie_P~s2*uk=_iT?-rg<*olC{P|wC(CSo=wA@ zoJ~oxff3WOyn6+gh4%8>P@=BEAj`An+~6QUh{ZPm2^Of(xGHJ^zz$ikxVdytpCSCm zF9hFDAp$#e1rfKU3?V^ffC|oGA)9Y`BM+QGS)u@ZeS&zt%-1Nm2kBKh|CD>?UJ~nG z;eCnK@Ni}i8DCDHug3H*ObqaG)xl?`_RQ7oT+ymwBg`Xu+An|!0CW|$kTCckg8hW3 zoIdr)fq`iXSU$K{6qJ1Lm-vFU1#vaY`w7%;MAH z1TOuZLcFu5%lBb46eSYG3U9)0zElRczQrPS%SSx9iUF@^nZNELfgIFe7m2|Oo2YcY zl6B;@Aj7cf6=-*O-mtobUP74vxyFDvB0G!x&>F4^fnk2K(Nb=Iq(Mn=$2f`2t#IJZ zE@rK9SRG4x&fR%jnKGK*;ip`wJ#mYUY^uv7G`h{*rd2| z)0C?#1pjEgRsn5w+=6xx`!P)-sBI-XKI`u5OhmL3v}%?kuwK+iEV9-j4r?RpOEs=k z|IL8tZi`MlMGF1e#jd$}EN%EnlvOMG*}M7EcVsHK_`vf)%W2jLD z?c>r{l>HcF0hZsn<8u;!28^`CTa9{ro&+^~T6Ptkhy!Vb7<$YJnznJ@Up5N$GP;_c zyzh*(*fX8*{qJT$8PU0IerFkK9**;)p&{+l>i|GfnN8vxgG zd;x-Ev7WAR4$Z1eT+7g6#Mv z99mie&M?rWT=o&|_$bH?UK4LubYqHiuoa>aeSsdd?P<#eFW6ORYgJDxe&CV>Eo%fD zy@J3-FKql@MP`ue8hqb5pb|u431`KVSN&y$TptY= zrhBTWBe1a2tfsa^ddysRo=3l3(7HDxqT@*-(ekaB7KjM{wPU372;hzd2${1SH=&#wcKO-NcO(M6n!_kSy$x(RE!U_iK$vSi%BQwOboeT9p>MTu;cz4{$1n>~R8 z{M5YRq+~Xd1Qz&tuFj`cy^>VkSmKL3D3_K@%Y$Jvm-M{J?5SwGb?C8c- z&Bx@~r`%t7GsxPlSmPd1^n3zrYTo;K4QAUQk`-HJy)JAP7)^(0I54qI9IlMi-ErBj zr=Z2G|42?Z&(pT?eK<$zR=7qwz$KFkZUmSSi&(Y5G2$Q6?-X^n#kJb_9E6C`mTW24 zmo_6_jkc9^Vx?M1<1;g@>NX3xu=#$e#>j>Th1(YFm*oQmu3&WASHPdKk?(`DTvE`= zy356D7uURTn!xL5%;>*Ycf`8&T;2C|pt)g9DDM2(B>y=5Q}Px>iV#+*zJ%4ClX3M~ zhOCQY8tJ(L@|^tXV_YSvzF_`;+dTZ&ccv)fUf%H9scVMzz~fPp&5*iJ{NXkpDK;4VfF}by^4A;Z`lWn#emlUE?8f^YRq!zo z@xp^yqwc@Esbp=5zOY5|yafFF!I3V`Q~wenn)k`TfW>Y~EF(ga2;j@QJ18@HD$;n#gw^vs3CEt!TU-wfCzSWyt zUM-`np*6aY>q4P#?=8RgBx>w>H#Ki*{}fTb{Z+=>nhncZv<-$}S=O~P`o`}#UwH62 zjqiZXgZu_NodaHjuHB<}*33Ly* zO2{6&u3#>2?$k(gEr#h=2Q~N~IBgYF6f?NsdGb^{X%{`l>wLGC`NN*51G48ZvOor~ z6zM%%K8q{?gd5F#xYQ2VYkqWR7lQ@vQD7=O0!8D`euY_~uNjR!G z@3iUzD+vQJWPDnN=MeO0gHO7=lJIh2cNOB*hw%X46K-<$3PvWv79lEFJ@M*Rw*oqN zk(u;dSTZ)M)p%yfvX76_@*H=Vg7pX_*he1=>h-h!V(h1@`&}`|Pb1Iya9e}*`5|k= zb`n@3b6|y&_<>lB3k&KR$&*$}C00RA3hy{7G!@|v#RiYNXoh-2FYRlaUIYfH&`9#1 z(?)i`G|qf`M*MVgN^B-Y_)@6*Sh=F>dnL)~G5dAeLyLOv7to{<8=yh!&MC-P3vZ0Q z+Oa(iiI{J00{>b~KAd(491GuKr1KzdtmJc;Q=WGdZSXs(Xe+$CK;aegXxjQTe44&z zryOG(z+=a=T;h(n?SHwT{UZlBWaC_toU6;u7L{WKgVB^h_j{L@AM|t^@a=G@UjCUG zL;G@trsii_tQ60>Ju~)xDU%+S*#h>$0T*JO`59AEN5eU4)fl#7=^p!veo*hMgdWk7 z4FqWW!QR|Dus7G$ab@vVcrhYoMeJz)arcyqgRL+3UVQP1w#9sHkH+-7#-3sR8Si6m z#&7Z(N{=mqWRLL4^ex!i46T>noXL>&?AjmJvz@Qv;Onn+kg&|;>pS8l&py)WM!b28 z0Y~}C-d{)g=k<@%N!a2xA&&O!I>LG9G%-?rGXG3TSmL>c5ZEoZe-;8Csd)e47-$sV51*-J3e5Ub^>E}O$M%+Rrw;O z=2P^Jg0GIE=dbN|J};XoiYZvf}tx*;cnM6Uaf@Doh>UI4~gS7__p}-nMmNV(Dqa2P1 zw_3Mb5Uj%q)`9aj!Ho)I&%z2zvoKW;VK&S@ytV$=24_;}VFTw~-eiWQn)B2oKTlgl z*g{L_QDZ-Y%&JQ$c-R5(H~r@1OM_DzUxt~8J#k$YmcK1>Gpkk`ISuw5Ufm~aUL)-u zwzXBl1)t-Mf9ZWCR{xay%gwFt$yE=W^q?2R#xVT*g*U_Bi9M_+M4lSl^N3P%PgS(` zIHnybkyZFcTpA*_s8VtA5m4F-1w@G(jTZAaP$^ik1@p_%sxC0e4phXzmKho8TpmJBfvM#{$tgG^HH247`)^2$AStBQ>Fd&!;7T<@C~%Ds-Z{kvOy?(yCgLGVvBnc-Wl7_O&L zlv-%vyncx`@-6$J08Xjx?QQaDQw;QYr1$;27=|HdHai!c!Q2QPVA4r9RlBEC@d*y+ zM+8$y1$Bcd5TUv;03n^r%JK?~2jHw3I#Z$WrChK?a`2Mqz` zf#E{cH5X0E+RVj)MzgDzUmyNf1fJ~u6LKEy{94K1x-%6o$$^KSF#2X*V?A%oS@S(Q z1W-ZBR!#>-=0J`;C|@r!$#z`Q1n)C zmQMvqVTENRY9bUT^Ed2UhsE8|THFXO@3;EnjWBbo6^D&bI0R- zwt9yvaFQQytr~ODh!>$FD$GveZibQBV=aQbZ*yz7&*6Z@N-P+pYOau1me^yU{cR-- zh6)U1a0l1d=6h)o{q7 z*>eV9S7L(k187(HVOP#Vo)SCnl)JCGX0LLsDDL=bWf3kQ_=!2$&0wu6%;qlOP0ew_ zw~m0o*-OiH$6Sb7vjF=|TBgCloBQ{heWfzP!IKx%EDnYH){3h*4@1I!8Fyq#L*A7i*+_uq!4K1 zaUh^by1>ikO7BE!+e83Ej{d&G)x|LRa<%clUFU&s@$0p0LAc63dzU*e2uQdD^4qj& z{!LT>+2dPnHn5G2V8_MV=953cjKJGpm64{y%^a?uPXlWSR|Yk{#}ByK-&EYt0QdJ# z;#-r*l*UdN(58G?0#$ZX-wK+-G4UGR`B zOH5MUwEUEoog#E;DqsgvdRqITRmkT}v)~{(QXnmp(uLPFFl=bkgS`?)$TKFf1cSje z_e0+#_9EWApF3poARxcKfeI4aiaS7bOh7a_B0%;#*tYfkS2@73%C}_hk^^~E=F}u& zx6#7lm;*Y#RZFR`Wfooj0Y9GX-!ME++FnxAhJ?1{Qon)&AWe+tHmCx4_HxN6JE{{V z#cDOeyj8?2^BNQ?yA=+#pLtQ`_-v!2^yx=9KhNQhUOIbHWrbS775@M>k9X=}*RyRr zFP2I$WtVqgCD>#GEeQ#osE6jbiG(F`1)vVqy*U682OI}FCHK1&K_NU>bCU|9C?{?3_m(kY|2qi zJu(kHrtaW6!q-bkyUWk5Y?NB4?>=jX$>`*rnIc!!p;qVS7p{UD5gWp=8q!EEuA7YI zZD-FQuxf!^Hc$%mhAa3B*WZtk4X@n4tA40eyB%>^X`Nq6TwFD7WN`Jg9bY` zWbm{s1R2lhqPh4R3_i!5k#{L8tj|dcKI!OdWu99cI1+q7yFvl0gu0^V^TMMU}Y?RXmlF zc3|Ed)yRp#{FsdT^E8B{T-$$2xj?xCB$xt?+&+tZ7Awwo8H7DmZvczel4OAd^ZYbe zV&w&vSVegWRqu!3k3YZ7`j@Yq%2$|a-1GHDef9~1L8`kEb3r}DWmsEffA5`w{B3XY z%kGPqJ=R8kONrSE2M4#vl}OmF%N)RJLUn*TAkay0R6+U!R#1`ngBY;4gX+s#U^U@8 zLTOY5lep)qC#8ZIJC%Ed_s1A@M6WB{{0V5zdHRYwk$RS z-@N9>D}~4HNw?qW)fY=_c_kUVRX;nzbB1-}4P&_Hs3ecA#c82DwX+M6bQkhy+o5b9 z>C;@DOYp&5aaFbXm+7E*&nz-nw~h}DpU&Qy^>hLJiq+pYZqNyJ*?$#=U!AC#GOm41 z$fQ@&zH5H|F+uQMH>&(4>VeY}lEZnYm>(LcUH*jcZdu?J|AVnPW$g12kV+|&Ei^Gi zV0?O8qAj&Ata_%itHPDNabrJaDmxp+`cCY{TU)akhqSQ^gsH&s5bS30PSL6YWHftz z;%m$JvssyqR8Na6srT5jvp{1=ave#I#4Fe!d#y1oX@?sR-+Lsv{&~&KgJI%pR^AT1 zl>uD?=WVlBjR|O|I(psd9`0-LF1l5?y_?&9BtSw1^#d0{r?X_RN4}sQh|et42b*Cw z?~p_bNxN0I2nQguo;_+w<}&O#a@UWnlgN*ZKYJae{dtacvzHQ6whOJFnA&pgi^{BM zv;KTQbHs|HQ|CuRNe0BMo!2x54doxiJjFL`^RH2|_g+=Gk9lW=dc5KeXq9w2UOM1`>Z*ub^F3gO~k80 zOKUdrql@Jfr$%upN&}u}5C-o&DAoVATW59$-S+LHItlm$@YTB-KKc&fl0c1a1aQf{ z0Spq4z#HnpnTY}iV5R;QOcfH6eG5j&j$=>BKlC}Qe-!bYlav6D7r2v=*Xu7 z0S3iB1!~#I&?RQ2a|BaP7gwkK?Sd(qT{hF>)-x7bmaQ{@6mlSAdSRb4=(eEQwz*l> z)QL>vuk>LRxC(x7i-Vr)C3_L3wN4K*$1M&Adz7AR|DryG7~q_j1teI|9nm~<0ksOw z(|g}WRfEi0=n&=MNu1SaqAt4CXPe_nY!G&n6NH;>U^DstytQXcYU%?RVXkZ{IT=BU z1O#^!dqr7K+xA47R?A!SLw~kK|LXB+0^6{l-Z0JrPoRDD?0cQD2v!Pjq_2KzWOhYd zU(7v4J+NLQEI9_O3Hg$D&-;ov?{ULN_5f0SBWrr?lp!VLYOOUEaV5BLns4CBCB@6L z1TsC(`Q!5*WFqM3^yF@P^V}8YC)8KmTx&(%Y=LU+ET~bs0`+h%t%9xsJ8E^`4%jWt zTgIX=tQB0*r-`+kQw{LJ46av9hb0@qQLuK{OJIvP+L5oK7rahyjY4ej7M#UO<0&l# z9_I^Kuyy#y^44KV+(Xqz=t{^SdDMyOV=9^>VBgWB<A3I@os~+_6&WW#a0aC6(dB7;#nwO`=0E)#T!5)AoGB*Q!@7z>XQ0!^$3&V`%|& zdQgopSH(;&0as9K5?+JgW;PklX$cH8JQ$jm$r%*=a%nfZL;j#PeUjykn_Yp!&7MQx0; zLx0?<7eAtHq9VSK2=TNj#Fa?2%EB(^D~A^rPdqpOe|US(s3z0C>pNILM+6xZrA9@? zhEzdnYy*lkMMOG?h=4TdEm2Wpp;!=+77(Nt=|~HTfPf_Q4go^%J&=&(InDq&PPx`~ zKll5*UuL;*%?v5$QT}`H-@dl8Wzz%e7hp^JOb+h#E@-yyZ*CCi;l!vOXsX0oA2j$LrJOXG8j{V!$U>Wwz@YFzFCO( zlDcTIWnl1~FC_u%da7*`WL>w4r!yRsK=;l^lzoN3eZ>Dsf2|8ovB}y-0qgak$3nHdT$je9H0tby(CbGIgR%?$Z1m zhCX{&yNliAyEjFC)~x1f(m0E!cYtT{n9lccWSjv90=9E@<6>bUh45wJ6nCMX-^dPC z{@+g~n&B0YvLn+WaF`-}S)?qqOk+%@+M;tyW12SQsRwqPeV_CsldmrNb24cnHwD|> zvt;zxVN5h+)U+e#F*ysg{*H;xlP=KRK4gcGisUQWGn!`-Tfw3-{B@{UY`aP7RK*kc z7qJxJL0BZI#|p^0zydU#Tcz{7m*=oXhz%YqltlN&G2~eaSrZYgr~UK|Nkr*ukvJk4 z)a{b6u+gtYTVnZ>gZsnx$Lp;0o9JCLOn%j*J-hW)lhljk-!?r^{tBLh;5mmKh(*-0 zi>Mljip{QW1rDYq%j%!fV~y^^+qbpf?yfEMxy!ut)X}!(GLWBEEHxWssy<6U2)7 zjgDo0mu0QxWL9tta&_J{L%h2owp~G4pgEX-YBWmKY@Z_BnqO(cbNXH2;Iytl!z+de z;o=0XPEd!lPdmfU3n`I;q8T6bxaV`-Xt$FcL3wR4A+6F!scgu-9W87OiOOZit<%xizXq zT9+iv2o)2dbOA-gdnL!45;r`R&k7=KN-tYm*zJgCzLgcAc)+8Iw(*mI}=O2$AA{`$>ZA$+?vyU=xuqHexLA;buYjjMQ_U! zyBk>7)k-}CUC8Xf=Bqw0gdnX-|I}>fMZm#Nu{NB_~rdWQ|!nu zD|umV)~1LbUMkgzTCe^Wgq)E*=SBF9vI6#U3+o(0+?TYWcC3D1?1u*)mJTJvYZj?8 zbPRXjD(-=U(U?!*za;;*-s)@m9>_y6PrXte@D(f`H5a8Yy|O%zY!NNySGF=VpE66G5TBvTqTRKBlO}J! zkW2+dK49|>bKZ!L&r0;rSNPAf%uN@zZ_3}HZw?DEc5ET#(Wo|d`8KMj&U+sEoRBmZ z7Pf2G>tSIVWtGbb7;CYO{i75I*^?P10F-rrOxf*@Tc8nBzm%z%Zeql8uBzb$0p5m?#jiJAK+z=JsD=*R4rRx2{%C386WyNg3QvEZZCuy%1ME9Jw|T z(ii2Zy3OijDr2f0w|vL!H{m~Q)-6(LhCr*%o{HybyOP2x?|3ou`E~Mm#h~AC!^Z$H zsgCG^=AdVOla2zDk83nbcYN{DX!7c%o=}`%=J%i?dJx zlrnx!G~7`hc{RX(Wm$Sf2-u`@Paqs_IpM!5&W^TBhB~(l#ZXL_lrPowdA;Je|HONK zU!7KY#F*$IH<6WR6w{vla}bf4W1xMe^c_FK3E?Y45}u2__$D@0(cqFpho+unY*W4d zS<6cD8}I7mZ=!xdeNsZP+C+3()&*)#XRhy(pM0-+v%t3t%!@ijrgfPZFs-O+a=;3j zvm#gxccm=JJQwp@EObfU8GUVq^_k}%aCin23F! zPt5Ikv>36cHN~ZYeM=M|Vj-&!6`g5KGb->+ITK2Z^6wjw?x2!#cPH5-t_TU;3|Bcp z7sFi?0IcRk#x%3)y<*U{y0#XyJmpLmc3`A7akI9Fr`k(TF={}|v5G`rgknzZIe$cq6@9sw^2ZImZ?S@d z3U6X(P5z{ILe;O(xKmR#I@__i<&8%gYsfyc6!r*qxA_f3w|#AP>v6@%$M zhQP#xfbQWNVK!O_B$9=##w#KL5p<|z;@ieu>8o&{gk#^HU9QOhspt~8+c``(5_b9lXyR}# z;*-HA5w^Z~sWBhu+JdKgBl>Er1!>=A^`(YA;j*LCAt|%0u$On6dWYg4Wg1-&xa)lC z5n=~v?}yjN6`K%ae9q2QL#$w{viB01a?hu1vk9?%ULmJ_(u+s|P_>n#l$I)HA9{t*KAEJi&|kJ|W%S z3C0`SZH;LwX(Ql$z)mmId!AEB9CQ&Z4fGi7nws*|cg;ohY-fUjKgumH9D^O8>`qq% zM6RjZ)$WuHiN2qx24C6DDGd+F4tBfTD3nwrptji}be16=|3``|WB9ja(;KM6dC-f` zYK~A^jR}~89YfZi#;5-VMAub8X7vJ_xuvf5s3CzkdwNJzcIB%~?%3fWBR<6=cH_uB z99WWF&9TLnn>pTJ<5R)235Mk|po^9vzs$NnpZT;X%Sr&7kOmPD`f<3=F_fT#W4GCa z58i=zY~>lJ4v9_78yBE#I=n*LcIrKAhx+FrO@?C+v?7u9}Q!r)g=4L{kV`TEO zCd{P9Zk7z-Q_0JxysPvH@Ux=fC0;j05O*SkQ66kpNy`zH3km{=y148~8Q z;F*0T8n=Z5QGS28P)`i7CvcR!gZ~EWc_;l_LejCNhFJns6-wulaHaY2)*2e z*uGFgLcic8m7MT&Ry3V(-m|c@bvP&~%Z>WD))-?hwmoCnY3vU}@2KD$2~K~@-Nfrk zs-bffu}Qq26EQ$xWO9y9{A zb>LYQ!PXtMHW8y0!)}rsHBhH&DxP|NLOM-SODMv3DW9^6Urp^iGxZF!+#vxTK+AL+ z{eETtI6THTe=-XtKAL|e|K-CMQ&XMi3p4*%(rt3oeucV$kN$)rz4SU9|Bj2mJA%W7G@0_lgkTq2K6U{I()g3u!z?;Pf4nIY6&+);! zU)ce$#ZXKB(e=#p$BXnU5%j-MUVw?%HLd{meOBl_Fm-8e;kf6 zjcz~}x*Yeqs2aI9TB1ogji(*A2KoOp-79snPSDI(ow3Y<=ZJLXt+*hmR@5 zh$^ob-_0b$C(=nS0@p0H7jisQB?8OqDt93x)GXgD`Bp%-!dy4k%Ef7Da6X6+q-OJ6U?Ux*O zXQAOhLXo^-C9mS|5%bj7N;~xDoMONj{kgBVJ!}97^PmJ2H*-}l7%l5n-wxb=9HCZ6 zuBECXHvq8jku_uBUk_J`Yp3kNOur*pJG0k4qN_JEx4~DpcBjv`1=R4?#hDV({&&b; zxv0+*)-S%O-3D9Z8+sq|M3n%7?J%AL*ITRIcIup{8bE5E;a2z%#PYWhJV<9gBZXG3 zPvN_(@iVyL4K&WMfL04Yry+6@I&LO}fPAhS zD%Mdf#fXO{vhT#UADvnq&>tNKrN0^us$jyr<&Cr3jx1sK zL?GM@3%6e?{AhQqMACzpJ@9}svva}m(&AEOZKWh_#}{Z+@3}~z$9kR{}Izwh^t5)tJ;2Po0UM~S$({m80~ z8{S8}tZ9f^bAWnXF`8(bv7ukaQLHmc4$VF9pwA^dTjW=(f_;^qCp7MbXY-E>{yZ?MRUG zX%Sx?uxv@MCV%>#tqFAB-tcXHtMq_F5FPBZWR2K%UFhb0ZEY&fp@-rO*|-^l;6TiW zyy9I6nP+J@4-wu-cU`_ zrX29DRL>)Ugns3esn5LR`NfT}-&anBbT+Vf8g*0cdOZx7#Q1^w@LmblYT?sOV6rpf zoly=VWPCP2*Ih)ntN;`T9>sJz#=v=r>0_f?xnDBbW)PajoKX?d^-4rF%fKiko|2gS zjFn%HIYulBlC%1xOGj7FIIwxrw}<(&C=rYeR@UM8H;vPlDnrqItp^dZGw(PWGL`|s z=3X7yl(LVf;pmzwth>;$OF3S4oVT+W%-b8-ORj?vEoymTs@T~Kgn(i9NTj0h74k0F zE9y2ojBR?J#iBwA?d?%BTg2{}jfyA_io-5q_p_ctt@94S9e8cpJVki;)MGG-muJnf z;SJw>;^zg;cm`b1ZU?}jW6oH3K&DLxvY0|M7RXOoy7*fpu#=Weg|fxU3>Hn_Ue+*f zwF9B+b4gC#0o5DBONXa9hdNWEfwkz4olQrM45@SrHO0M*7VO7 z%7`fZ3C{fV0Qf%L2ptpkB3oHP{@G=w29R{s*SRXr{^}x5S)^Kbe4G|QSgf!R z1&;T`IjdR|E}vW<@jTI`kZb?*0SGdh@m>Y3PVBEOMl}ivUuG?W(tV+lGXd1q6gkG5 zv1`kwfGyMk!;e$`B%N`m#Y5YOUeJXMFV$@NW9T!__umbD5bivIA2hlo(gO;~Mc5)= zZ+Na9&2wqx2~Wyp?8g-4?ZN*a4SoJsgPug=g=^E}LqsBbSw31rE6F}9Oe6<`9uu~# zP~n)kSVp~g%a_RKAktztU#vBxe5$wQY$qO+bX(uQ+}%?uEMPaZN1X}3?ndA$Ed?#s zHeHJuI0q`A6`IU5e{MLGbh*5F_+te-+M*g043%@2DJs50>Y&jW+;Rqn8qb1Qp7P0& zr-*?=GY$DTB$IeK;MRkdRB?-UjpN4!H$Zws-Cgrp&I=9ASm4~k?Lv&Y9sLJ4`WuNV zIS-q6yR8qWDDi=lwVvuFf{6Lb1y#qT#;}`n+^NyfT}_Us;kvwN$F6yGjJD+_$#dmo zfmclD*QPra?El4dC#!>qCZ`QgtNv-Yvoy0vsApw%@}Uwr@`0K4AURhZ+XG9#c5wo6-)q&bIT1Kpf4>E z`-gf^cDx-DTh$H2hx(J_gU{Pp%3XP;LN#~}@rnZ)5?*dbBKY^#5wPDJCr|k#ZdRwQ zo3l4a-SU{`EZkwa>wcZ|#!*Da^}&$ei}_Wx0=~Kfni!boIf3-A;!w#jzjo#b@Mrb9 zRz2|0OV@UpkRB4&a|xUKK)FR7I_@~Jr1!2j8YT~hIZvJUK(o1f(O#7G^F~M#THNo^ zlGnWRo|eha7FU2P#a;DMa~+?aN~uo>!o>GV{>vF;~| zGm)2P+`B;$@$-xGL0Q1DR)uoFY(oPJ%62G)GB(HD02)ns0@sr@vcHV5j9TM{?nw3* z!d*I~zI8&OlvtU&)zyTG;r9fQdt6hGroKxtf+&0n8mDUu3V4SiDYu7dDu)5yd*CM5is)YtMOx3Y^3gj2Vvs&LPX*6&65c1@W{WPuP z`EVs+zwia;!!`njkU`zyYdZJ}+^T44_MxW8+7dF3iPfmRUURDFL}jIm`RQW2z(l89 z`<^a{)N2`sTJ4u(SdC@_b9Br#*((?6=Gd1)ot5nyxjABb<1V%$<*A;OwmA5NvR2aL z)Du}4qDSzVq;RtCOvE2ed9GI3V76mT55>vP0r$F*VY$glK+MMbEQn5|u4vn-Ul-3O z5U}N5mz6Yi;!Zv9L+U6b17yhvguHep*SOGuPGS{$6y^A*(M^RV0QCyK{P6*VqrX^anBj4hOBIx z)oIKNA_%nOJbkC3#wV4AV!}maY^Jkfz-1Y|pb*mDqK1^bxB%h#H5kV8 zhCz#BHK`)%)WOlHaDpoqL?zF)-+i~$S;@J)ipDF z7ycx2@^)qKEgIKzu-nNqG1Kq`=$lJEtPJN4&*hKMw*v_=AZx1zd~$C}2OwGt;XF0D5)N(`(XBZ#>8B~kOP5|T%ddjOnGamBHOpZ2-A^y(r<^y3;` z#Q=F#$qS==8XrD+yl~#5s2*rY5%4+$lx08z%&E^>3RBh*&>zye(f$CyAM{i2s#@2k z1{+##Qp&k{%!kH>hif6_SLXc{Pkp|3$Obi{=N_Q8I&F2X;?3TDS#TT3L0Ou5mjCJL zP3;wlmH;o~*$X zaDNpo!|=P^x~~sPje9#M9d|>C5O3zHMYz(6telQHF66Pe{G)f&!FO6~M&N4xz)@i% z?7sOHi?rau(QDA0gIT#_BLJ(&VBthsotWBy>F>}dDz2Vdp2a=ymI)G3eXY?dY#n^z!gB^v4CmextG~Za~5+L zhKvU@*DcD}VK9F%*@6`8yXtFOb2kvd13t`gfv^RTR$G-{I92_3wl>Lgi?RYm6#)Yz zOn|+3GPmgR%#ycWc5Af_LL(|Sa6)%meRWQNJfx5SE6B)|>SrMKV81;XphR*`;*?G@ zdZfyibxH{77NN7&^)Hva!?dv8{=gnw zZgk%7_@6(8OKS35TQ)thceK?{YnT!2Q=@*9Bh1p-Nc8(UxaCCdth9Hv#{|d^jHrtP z$1)2&xt}j3jA5}wg|y|@p2b#m?p#q2IS}YVYyt+ayDKi5ewZ|i;@kjBY+-kbq-l0AGq7|I7F0;;VRiv;7%7HN z1_i($SYaIn=tH(Q)5`#XCe2}%5TWlLJ2kg4oAnoDY`OGRp(|+YsU^`Ul_2qDha!B6 zFvM+ouZXLD;AB;BHSY^CKHRbk_IPkI2(b!$G+H>cV@s^k@R(O1yk~KMx6|ZmC~MF4 zmnq_>c!8sR@WSU8{@wQkcHgEvmYxqM&TK59?X37C72y+ZKk+>hlTQoeIaX*m`mw7n zi8ET6DK7_?mUetsx35!cAa{Yk$synpH2vVNjE)k(DESZ8U1`mk>%6;Z`Js*_rHvCf zy&yDOewP?JsGd+Qi!IKWe{QL?eY-WgMXZEktXd3cXKT(fe5u(^dz(G4IoN_NQIWiM(g%=*pQ%)47|C@(jcSKp!joLDwrMCG zZj=xpd9|e3m+}@O7XpvqOH1m0=tbWfRoEZ#0xE=exDd6loAKX>vihnUS3Lm67p&f?%}MTQQ2gI-gC z&7PjMn%Y(bHvR1Qa8FUojcMV0mI#pei$NqAv`{@K4E#NhJy@Kf1c(mL_+56?Uv&-3 z%K~@kV`0yg`QFtO=4$r3CS0ag|3n%J+j=sU5xp(Um6|~A$*9oy>LSCW+_d%i1gHC1e*U&R935tX3f|Yu1B{eq3G|0&cL~qES{fgcYy3_V-!5mWJ zdHl=GZA2kMt2QFozzsH93-@5G*S!Fcz27hM^7gf4*(0yV#bu7zF0GMPV0$BlZS#TM zv}Ie!&15S1I5$UVM`h@x6o9Z7Nnv%u3jI2S!P z5-yBOBA6mkAD_i>UJ-(U*?zd|ji<5p%;wZ~1UmY(earI`ct4wZ3nG_rcVPO$X0t z=4!A)5v3YUsJ7^^yQ3O9MY&4-PsTYm`WY@5_?2j*3lu!?#QGBv%4i4P)CDG{*^aBx zl3Rgk?kw*HE4~ie6j6Dod+H<(78@Zki;8qDAb-)q2=Qo-ZLYN1_S1g+H&@b4viq2) z0U`*eAGiwv)S4UcGxbOQ(T$Y0^+hmODWF>cF{?Hxc#s80!Y8M#EY9upxYQN_4v=@C z!ygDgfg0jga%g$Z$yhL%0QRG!z;g_qsD1nW_Dsn>1tz&txq#Swc!?X`?l5LfelP(x z|C6100nEHsOh!4|#*mS2-TU3FhF)@LM$29c%N)lsp$C8?-Thjj?g~WCMC?~7z!tQF z16e`$pss$-Zysfmy82w{2Vhl=oMVu>n)EcNLe$^bXbW zW(v2&;j{gDMD{gmkQPZ4UkTW~-hjcmsB&&bT5HEVWcm1i=8sFc$Xt6Op$R)?;%_GH_QI)F#HB2TPy4KucfgR{)YJ-?$D%~c-nhF*JJnaf zuLxd^$YjOI8$;h=*16L%Q;%G$_ft$`s2m?ESK(ig@Z!IP4i=!ak7=`a^;LmGb)XFQ z7!jy`)v?o*##1*9s~HY#>XL&s#Jp5g&!4oYB_ z$BX-vEwmSx5}w4shUJrM!;%{U%7GE|eOn%GD96SC+@Z*=6%{$>hHB-fpbADen*jI^ z(c4UDz@{U1&0TFydY4&f!PDxwP1<=@~<_Gf`)@2IYRwMkkj2H54{494SFC8(1imNN& z+GA`#AGVh|Mcg3U%P|wZ^z9-dNi9gbyg6@4iupp*S;0YuDW;KXPZqN;?nS)241ddg z8r61=wo@V>V*<>kG^xi{R`N;~!{2&9SGBB%v%f!o7(0A(52WM>BX7%+hjoa250aB5 zU*pHtV?E&2<*dhgFd)f4*|ym%BubKzgLBUUgkF$x2-4Jh&HAu$kJXseurA0jon5x8 z@{RKkx)QAf03Gk|5yI-%!ZWw(zm-| z_e4admn9~ZSDt{=&SNU8eG3J3_61xDzYq1qv7}fop&dzmx;!&i8@Gs&^}3J8+(Yy% zZtGzWWqAZcT%8j@ijt)svz)u&cQ3ak4VK%no5~f>?liNFdSy{6#7I^pA74Ne^!55(>=aZ+t?4?Y8N>F*Zw?K9)yR6JSUo)6|K*AWhE zP^P0BdE!e&DrN)ntfgWU&q*(;H=*^cDMF{^t&p09s@VbdRc&2>)1z5w-CZ}7D2fZf zZ;4ixjXNY+9c%xFT_K}->|KBasB--5ex0Tw-%jrT_U>&(uZ$hr&dPHvyrlPfe|Ff> z)BA*UFf@1f@%34&vfs-&L92P-4QiLe+`;Db#-FTlw@~A1-D8C2=t~KPPady(2CQ=c zG*;}qXY-HTuYQF>_}t@_ew=^Wdo&+?X1`$fGH7lH)i4gJE|WZGStoAv)GRr;`2xEP z@?2@lJ~e%+?)JJR49#XYb4mDKBZ2FO?6_f*LAf%D_AcN{Lj{!7}U zJbL{z%xRj>u^)~(=vKsV%t0j$`lVS-wqz!z8K3t23G;9wImPjK=#RN7^i(9-s3^cn zhT3Ku$QccMVq|wOacU|XJKgB|)L&sAK;q19+!BH}loX)!zaGl9ku_?#gx(FzFnyG#0eq%hyOYQe6kYOeo!sT*^%tP zfpx&`cVM5Vw%)@WfU?HDR*j6HKN|B)R=(kC^l#yNeGwS0+y^Gg|I6&Jn)r?@#3;_O;hbm7)aNE4 z&%YL(Ka!aGp#Hnt={nF3F+%lD-832kI z0MNt18`ARbeY6Q};#th8+&{e7BXs1RN9K8In3mjI3sgwR&-Bw@vcS`NhpW2-#^!5s zY(kxIckS8oN)fF*!BvdFKl5|+EwJ#vw0eK$%H75p!ePtc*GXQAeX_nAfQ)OBQ(yS4 z{@k@ptMT>>t)z^c@pkHkH?h~Ve}+35mdQ0ScZ7O&>d0P_Ns-GR*}+md(R$`(?77Az zlg9QG9!a6OHsC#xP^$7=)aG6}-yG?*^mrn+3CMjg79G<+skwrgzUIkn?$dKipn7&6 zl*dQ}7pLWg0RX?1gh5P_+r<{N1>?}#lY9ejXXo-2HqW*yUa9#C-XbWU8 zPDTKcsC-{J<`eZiVklRxHI55j-ZA8tD+Rz5lXRT0ctkC@?| z_iz^OMgsbW{mW(02-o-IE|{~icCnk`ysHZt;y!!Jl}@QZElqEa!z4J+<8 z0-Z}%pYUOwqVyA4q_3;K*ex}dRSWu3Bip|q7utb#&juPUX5d7q@X6cjj+~SKWv+$v ztY^4l#r`(-(R5e@TT%8$xFZM|*qObciiWg9qZ)wpuxvKHX4qK|d8AMIMo4wkTTV92%T@O)1KRPRdnEHHU5@So+8`v}{!>){_-s$b?KE_N@GZ2v|Msd@o~Xe* zLVyRG;&620BTC1mSMG}RNxPK!rluJKP7{*IjXB4o!>jtR<>{yivm-K`F#~vh}_cOMbLSQbMv)0 zxW8vOaxg)c*>|*P!M)!fkT?XCjz%rUirGX&GIa;-VkCa@fz6Q1e^d0*0 z?Z7WRncLpkBjIXs$6637mWw1du2Iu1lXfE99*1PFN=*=!JMatFbdq<0{onOcNVUdC zxXzKuntS6qMKX8n{k>?JIxDLY-G7**VyzoK$pDkIA{&-*sEL=pH2?drZZh5!mjy9r za|NPI^@X8_ke$qxa?1-qOKM~+Wae`RcTudxI~WgixmJyCP`3HRxI}Ig<&Wl|M>}*v zO5+C4HwTqfAGWT((_bNJrK77a6)&uFLwWKoBe&apVB_t#fylAT0Xh2f3?IDW6u%HX zKR~lYL$qe0DIQAhZ{SxVI}Q6=N*;!i#_KQR?2Mv9l+rmLs+|)s!t;IXi>v>?p>c6e z0d#}@U+^0n3wOT0Z{)@INI2xrB*t zPL)5i%&^mC!&v+k!||u*vg`dW;qQxc_C*J64oQ4kIq+X_H=r>F6X#!7>a=wni*rY{ zY{i1|;OYByyqh#YHo*26^3{g;lb0It?4kdva+)Fy)C*Ui*Ywx3IX3#{IPlNY71kaj z)9?R(f^PXu#9z~$;mpYVhrKvvPrl^>SpacsoBdGS`*i@vTOA0$ml2)&{*>5;}M+m6mU?_Ev$IKsUYO)5)%p591)XK8no#OlLP6fLKPJAP$!qU@YDO?zEskZ1UkvN*tCF{dDko&9a zrInhPa06VA1R(U)UFlT+n&mO^>|h}HX74*GAe-)Qn{+A{K6KIXW!~Gve>7=phHz`} z3x81B{x>ZXve-haaBJ|$XN~EzF{=_7|0#sy3>donCyRPMUKe*tjwLBsSZlWg znJ&q$)qeF-IwWc5v0yG*vZ0OCPkF_zx<144EQb0)j|Q59Ko;yx>$=;Maftdr@Mt7v zFH^VK8v6|1R0PB%n{pM(rUT?oN=zsWdM;Ah{}!mv~oUprm^mdRpU2glYZdD82P)= zjMo32iG>TU)A*rNnvGU@lsg82qGV?fJS(;(-1+HLvQ*mi1;{BYW1_O(fmq2_`161~ zaNtM1Mog&pmj602fsmKp%K;M}k2NMyWzf45lyI~?U zqoY34r1P}{<=L*!Xj%S`z*mR5*-I(8_Kodryqgm5b5B5z?JTp~u|c7Dr6fgjgzrww zRVWX3<8|FL!HjGoSfjm2RMA7A#pUhbU9lQXy)0jyzCFicD~ru#ydqwj0wR=+x@uB6 zyHM=*u3X;{ytT&T#(3u&+0M_eWr=n$AeZmH_s_n*S$+z~u?oRE|BHJFaPSQ1GLN-N zGJhmNK)Y3L=1IQrfasx?+D}rda)F2b0=d$va=*d0lMxBMNjBscKo%6<17RWGl8T=| zOK`_MX;Bd^P_xOVVL9iMl$x^P_u)79Q|@mC*IZfiPhS{)m9;2-=ITR&_pXI3Qq>*B zLsRD5ea-4K!UXwSrp|c8A$;l&#J+POLq35oYjfLm;`WbYaij(~>;r@qGcb@i9;ECB zm^%QB1ZOCq^B)b1mWjPTeumk-DU_kMZjb^Ezgtfl#Q!ubllIY0D=vQ+3jiKnNm+&; zh^dd3>8V~jWufE^#4?$L=+&K)RC9FlN{_#6Q})6zYpS$|b9@p%B21>56-es<#CEWI z^~wVIk^P32wuo1|g|C{Ce{XnVb6Aa`twZ1{H&ts>d~((y?kx#3wHMKVQuFL!KTeMp5)8z8UY+Z-UN|?_3z?&ak=vcD@=;uBzT6GtLJtu46hh&M>3W|Zd zo-yvTLY!!l9>Z3!H>j^nOkajYFxZm52I~8zPW_hq!x7L#tg%Bt7f?BScE#8Ad0{aV z>n7qOVm6j(8%*b8KFGqHlM>a0JQzi*d*ChjAxfpm%8wzJNxC%8o`n_3m#< z>yjR$C{EgRkjK%N%N|Gj`*)A0bu=QeNxs+n_?!4bbFR3;-k6LS~-PG9K;G4)g zy0499H@fyL)ziNDdP>}O-YHR@Zq+H5-F_VdNRm#2?{v0}%#MmP6Hy2FVRRq3Ezle9 z@C6_eoB0{~&Uzr1k+r0`{Jc#z0p$yu+N4sP>I+cZ#>SRZS@ifDr<%BSgZOVzU^gb9@p0}VH-Cf zup2iZkyr=<)*cI93QUvoa@GCY!+g(PfN6S;GK8QH3?$~mVYU@bGt9vKJKbE*9!GyH zT^RM36^VSHh;XhQ071RtS#N3D_!!r%7u z<@SW!F!FZOdx|NP54x&zqt{RYs`1C@q>QG;u{{kqV%{m2$^dn*N!|vS(inOIZLgZt zk^1pQ2(?H{Zz}r5TMfHT>xO_W*%%>^R%VZxYP%2DmTLi?-swe>et>W*!CKk)9OTv6 za6eKC^dn{BU!DQ>=%w^*8{>SikpqB6Z`%*UuHC0X8udm?UVDHHsc*Ww9ke8^xd|9X zo&VBJz&M4TB)fiXsAPr+JI#78nin_5Ul#NXfOon_E}m#9&#_oD>928e0PNx8p;-dE zz7YQ)^6a2Nup^t|Om3#7068$1VVb{xlB?B~El`F%H5>SEnmqVPUZon6nUwIm?o?0i zx#ha$m~1U&AxH8ryn?CZ%HMexi^=iMdm>&wXd(*CUq_#5395Pj;mLM&KHe-g!D!^U z;WWIFSWQz(KKZQJcK;j})&NUKB%+)O(KgoE1qObW62o!%gt+nu>*G!WWdH+rf? zh0{kSUlP5(oU3MZ${rOqTHboRPCd-bUZ8WaV{pMZJ(nN_dy+Plp6Z!QPM>2Zx%#6l zWHIo2^UpBa8#s=AJKq#Ph(C%<#XdKVi>~iXgI`D2si0eMGL{n64^B3l)=KV+QF?_w z`6XNlBI3P~N=+-RwcN05G?wvd*;rSr=+Lf-|@;daJPO3iDHlJ(>nLGR~ojZ1==Y&OPjofH?gkYLZO1HqU zsQ{}%hv#n!%e}b+iHBoU_UoeFlcy%P(vej3B=MXDj%j}B@#4esbEk-`orAW6nB?nS zuj!TXV=5yLUyP#mgET=2kRX+6JZJGW3E&<8)Ks@siXz}fUEQ$z)9T~!Z`>&F!REN_ zx@eAbprj}PDk(}XJq$r-pnVCH6y4VOo(lHT(*-d;6jw$hxzIJAu`PWAuEBh3ksH#7 zqqi|q4JW=x&s^WTLv`EvJek~-mXRfnnOJ0hxZN@eO`(?@8}d3}Z9D8647JF4FIOF( zGAiGX93=znZyJi$ACac#H26I&S;$D+o-&(4G1}nf!yBnba-0LE5h7Kt5c!Bw5Xb6( z8qVdr3rIulZ2`X}kWYRsIfczf;bC(t^qc~=buYk2o{{zqHo#3|^loGEl(zl7##lsWjNdyA`7?_CUK^PC@T~ehCEZBb7np7sa zS4BdCpb%TfAQ@nV2EHwWvKE@nr%}*sT=0Om;T3dgVx|=?#xz(>5Hj!m(HCJ`yyDpE^+`X@-RGgOw{-94pKmNi}Y5_9DA+>I1IOkNL?b~X6-LPFh=2UY+bty z^z#PEp|gl~%;` zrhkt7L}Jw@{G0G28*#-4CxFA^v&B`t0#BFE0BO5^K3unrGDay}*$=Dz!Sy>L?Dj2r z=d3`UlmE#lI(%o(zG1k2$KnU**9Z2Oh@Uv(FtCtQ%2FM&;h;NO4dkrQz${NOeHb`6 zdZyWQ>C|PHb)pBuy4&X{VCa75?+ntv?ma_A4Ub;4Xhti2_JNndvRyw(KsV{$x2`BaM3CtpBmytzJJ#>1sPtegYf~lxS|3LB`Vt-#YbB{`~?rwG_80p zx;r=k_JN{sSRbsOS0TpR9L@DoQXG7-IA5EqsN(cK#38)wS*u%N3P||{eJ*-6bzgtE z!pCYOQv|DW?hpwlng6V<=d0KkPzJ6!vYLVIkwZb4m+@T<23?6sczDAwDT6%e(<^3E zJf*dOI-Uy5iAUKZrV{G%tDXTC57^JL+v!@%-d5waarPZ}Zkxo*A)AIvE8DQPd?b~2 zdeMq43X4CrG1!cUdl^v+h~T{mcuv2>g$E3VDA3$Epx84ECJ7qHLUz00D(?GMp3((! zgkI+Pf?rLdEsINHqibR3Pcqdp%$^`Y20cYwVAWJMuw(-hJYu}LE_$C>N)*2?n(6n3 zzFSxlJ{H)7NHyJ~EqB1@Yvz&qa8Dc^>T2qi=>;xUL_Eeb3Qrq%w=pY8F8lWoP z|7V~=#`wN*l(3NVxw+&j158K-w;*V{aS@PpOii_=@Io1e)wk~qgohe4^CwO4VAGo) zIE8IApC}U-1lGe-ZblJR=je#3 z4HWL~7Jd$*T8qkofK+wJ7%k?5T%!H;Y}GPG%||@cB?)V}2cL&50=}=?7KKBxbdnq4;m8~!>jYY_s(3Nzlf5}uF?>SRH_Z} zqW)&DwfLs)oiU19pgy!ncJ4rKv_5b@@gNK6qrsa!c_yVJxIVR|0B?s%YE}bop}A3)^kC+g zi59Wg362u&_BX&UMB2xrQ>wyf71vL7fj9@>o>(d=FfV9gsf5NUZ8N+g|M&N~zCtgH z0UZC+e(E-jiAI0VgA;Ud)Ry~mT{PNaNArD0e6SMIy}Dd`7Kc|8x+lc1ZN2qZJIz$d zRyYUZc&JAo&DYEafTeFU6%zu`bT_UI%EEwZ_zKjixT35-Fi^TI7gG}{zp8Oh;9G`= z_Vu%mX?;i|{1F+TyC4S!Ew;=zmX)JpuKL**E~AU12C71>hC^Q_lX`oop3?kA3j{21 ze>&lg&7NzhQ%)?Gunjh5bMPJt(OW~3xS7|?yEd~s?&^#Dk~%m~aMooEbA z^n%oE5AbB<^^ltml=f*pw~J7F7uu3cQ7y;u90rVLu1>z?HR*hbLby3X8Uvno|q1`-~3LZ7(`5Z(SrFEi2-FK~0oK zZ^ymF18@;jn-A-Hl5Nu+AYUryJ}VgxWm+hZ>Z_oM47lROa4mukfLn(joZ}-=Wa8X! z+eQx{yiKunRyuGkoo0!MOh6gx5yE}ykS3bB5$?28MHRtj*v2jxBdNm<{>=bRbEw4} z%=|IhN?|FI!iqz6Zz@2SPH>KiDyY&)0xjlQ$8PBWr%|Ngl_bf9rp4bUpU2mhlw=krP6=icx+WX}TfdIVxt(SX>MNAb*Z;Z;O!fO*lf zKq#+SCg?}_0W_O;S3`Q0##lAposfGB){1OK0?=V|v0|d{^fKo(OD8hjU31Gcrw4p~ znR!>Hi};x95wJSIzzt>C?-2xxV^xwh{Q%I6QMt9SymlZ$|NggS;cr(i`IcgHRjh{J zOGQHm`u;YgK$^6XJ`T@r&?6K!NCZfHgesj z6g2c}n^~1+lm_2)kmPDA?*P;o^Qdd+&XJnF{!f9|1pUjF41{ApK)p8yVr9In)IpZF zr4Bj(@`Kt{f#8YXJmT<)t9OK_IkxJE6MfP+-2;>Ni{ZS}ulorA;$+~*^XV88914T~ zYJpjU|GVvn8ebZp)U9>d;AOrbYv3xz6p^5K#EHe4y$0J_mIGoEpmF`*dG`j$zVE}o z9vDZRGF;o(Z#prz@D|DLZ1sl=BQsraM~S9u1pJXpj7S-DR^%sL9TYS_o;P*2P&a$- zqe@a@ZWH8-^H)!up1Y%x^wk1X*#k>N_!G;8_Fb0_gVE?&D|x3I{9V@^Y!SHEgA9%V zBU1P;A{^9#avkNR128rnhX8dk>@PHfsJ1Y3yO@yMF9P|TSEN;V2K$d< z0zi-6Jxqy0aEhb|qw|8NAZNTWFl^|HtwaSRBMEBuV#<4DYv>7 zK3UvzN1pd{ZuuuR6wk=M3S;5PN?BIBP6@~E7jWG8(kSplcrq969};?V?Wu-c$W_bH z(bDXlxuE>YOi#GzU|>)(N-=QnsvDMarVkm^b+B_5FC!i48 z5wV7(?gzWuJ#T<^95uw=hmbHU4BT&~SdR(u9A+DTwCuAu!W|OWWs-9eW-(zeoR5B5 zsW>I%KHON{j>zGctvLLgd|mGk3uE}~ILpFymTIasf}A8*ClDY^_|=RjJ8gC~hWy8hs9DGwY)TG0h3x$*IXX1Wov<277Jzd9 z-`6vT>J4GrsJAH`$+L&r^S3YB7#@TcjEyUx9LE_Yj04zX>EG6IQ3*=BeC_hd(Da)T zH-YqCs1i=eQ^D(wnA~^AJDTOqw~N3xZ#?d%a6FVbPN4M8oAr2=qQoIOVL+5)D!uO+ zW+y0t1MJV79Ek^=&oG@b)l8}Y%#~MvbY|q|-4R+3CT9Kh7`a31T$~AXeN4H+w`~?$ z4azJeq1E7+Sjsg%{e!V5D^FkWL#rp7J#X3tE|QwGu2+MzoTlYk%9j!@3j&_~<(#y! z*NDN7EoUcwX@C1=>kSX(B+UV?MaNC(3Idc8QFng|^-qBN+u2D03CG5`@w!T~LXEvb zxaE59%yx=t7Hw!+13Zd=yL6)8ttoy@b?`h|uW80dR7$pNe@-LUmPQh!hdTkaQlu`>@HzRvK@jMx)03 zC(6^*#o0dgJnD_P$Q?Zu1O4(W^4YI-v6q(5S#2tz$n|WWnsR`^6~-N-qk(g{kmKpS z<4GL@Mc9^siZrEMah(9q#KyPo&!@MNJ-35Vv*kv=Cg;h5z2GS=8-ujnC><-g|e~^eQvJsmJfCBhH_YQv-?(7+$x*!n?){FeCs@ zxK&;1_6V#FsJ?iA%>$X}tXe%F{G;IJ^)t((8(L46of`_~YP5oGwIQ$XD3&@)LKI|W zGoI%xN(FuK&#lC4?kHzhJ;S^RZwh$6!CYxIOI8PBn3P17XXh8~Zg zKQdkz%%WHdKlDF=;rrJTJK`*-h0=P99bjl@WruV0Ut7676PoRKjhlVlWK%~K#a#yd zJ6r!Z+r1bT#i6?Dxw(aSUWx~zfX`y_Ya-~AGppcU)Y}sHh-h(keTn*2P^7n&n-|(i zk4WR{1RaW{bl?0Jy*K|O%Z(D#ZGqUVgrFM(RsBK?sgaMZD9nCIwPg(@z@DFTd|P$O zuVt3jub8qfsbCl4D^|c6Lo5tff~W{c5tL92y-Q1?q9RIBdXI{N zNR!?{1&P#%q4ypjK!gwissATIow;-GeeahyA7(9Pv1UT@d!BR7-uvvGeB{y)*GJ?p zA?uuV;t=zTw!6Ad6<%qbxfD=&UWyodrE_XqX!6Q!Rf0EzOG1MEa8aHq=bM}!?l%*e zjni1y1hnm$4hO^yRfc3>A^)Ojv+P;O|i3N#&9L-=wR$RXKp zOB|0%?Z?|qNxdqt0{ibk8Yyf-QJTnyn?#Xx)&3!M1@Pw3UnGB$;XDP^$4xof$n1*) z`;gG(E46nu^;N9ZW2WV9nx_P>(C3#S3>UifC#%)1I9SkccYu34 zKfQ|Jh`mWjW_K*CD#PJKA(JywLKA}rTrK!X< zcdV$_$(*y6EG5C{rIGtO>pV4$o*|~_Z=XPd5GT26EA8n!oLwvqr~i*8JpgHH#67q? zAeqsu-{KkBnF~yXfRq}ZWtCH+;QRht)#X}n|10O*4`EDZ+Gs4x^bm*P&$@3XiwkiL zPj}jZ%Jq&g6rlOuq@=p?P#l3wVs%`!xG92DSmQ-{mknwEwbnw}GP#fs9i3m;xe!Q6 z|K7P8Vv~ym-aLK0wF{)+J@+QmrETMSj3$ul1d~3|slS!5iK7>1mt7|$F|IWXw{H~t zKaY>&@aNRf%5#T3!@r~{abj#dQI(|foz(V(P`~43FQ4+vny%4vLK@!U29u2E;Y@;f zJ@kX6$w}v3n#0SZc!Gdw1kb($*=w?k!cYAIFJDG|cmu&Ya5g9l24lGDpY?Rts1ft^ z{RQ!Vo5XMDJWAx;i({YuaW4X35|aYerh~AXY+b@cEt9dL%uqB2S&1nFlC782u}l~i_37?E+AiCyIxqs)f_q98)d0i@vjo62@OtNRr!7@w z&Gk&Cs>I`2gA~)a46KI1wBmk!#YvKaKo%r*yS$-N#U^s(zMR3GG-AFUOq@yw`PsHM zk7K!g0aP_LT^;uN?U(=E3{WZ5o6Jb6dyVQQcbK?1`(RVY0N6AKXsNX5Y97I&f8svH zq<^>&+#L|cg<*x+W++e|RcwvBY{q-__1_CToq$D|t(SUWM1f<=32KsD zNVKJ*ap2W!b;97#ACYM;AlhB9G$E{p73jcCZu+6#a!G{Qj=YX|iz>)GMyuxCiQ&7EiQDI9v{Z~G<^ zb9_k=|72&TuXlF*wC~CG`m6MA53d7*mD1{91q`tqMpZN)G|8G1n%^e{8pPMiTMAu_ z;9x=^i_ld~6mQZccjD)8{e2jO#S-g-Y*riTfI+=YJi@BULs|dbpU2sj*zp6=d6H|g zohJ2nE5Jj{l5MozMs(Nos_sPhXgpfYf6qN|DlT^128{J%ubWbDInF!#V~p|O~|{8VJf8i{YAPf z8oJS^RlAVdH>STz0q%2&)JxfRFVR^Z8!@GZloK#m4R&-{Y+AD>$}r3Q8`G3)fgDCV zSFJ1J`OE#7f`lvae~Yjd6Js)N=?oBPSW(awrk(y{4FIFpeQD-&ukI*{I8N8{DpGoLgVXKOC?rZJ;Y zAejBagNMO~Dq-f`%5(ikY%%vdl!Jw@-tIR_o9XTLF}VtN+|}hJh<_8WP5@T(SN`ic zas@guPmAFl8a6hc68ayh&HmOnyhUf~s6r+1Q_y^1r7OA?(bH2zY~0j|N#n-o0KqEa z^7p0mci&WguX_1dH|3^({|}@m(e9X1YB%LiVr$@TjRG=#E~aI5u{pG^psXlEzPt)H zHvLK{llRa<(5mw{PBzq! z6l$#!>aeXR-P54DtbDhWHSf!7r6$Yk2X+qN%O1~r2fj$B?D1VIYI4GS-PiE4$WdP` zPv(Z_2dWP7jKGy`ox>hk-`*jy{jsii)%qV=u~s7hX8t;z@FLw=f+X&$Jen3$LGLSg zRoWDa>ij}6%(%()9^X3MnQ)Wb9)G!A$=+AA4(zpR_>P<5DbP~?orj%ej(@OOX_$;6 z@h{w%O-1Ykb~|s?@cx=@6asv<<{gt)lOL~+26j7M*;C6sU9=~^v;g`$a@OV*@yj@V z{!7wu-qwVFU6)ikzM3c%(YWSnUN?1SC}PvCl#MN*`B69m;?O`z3sL0ZxhFP;h7`4U z?#A)cXeE_Z?me$=gcY**_C`=N``4qt{{b0Dmb>CUv0`AM6;#7_EH4XS{WB2>z~0NqmOF_ zJS|R#sbvoe(8$005{=#|PBmSVLZGiA=(JFnyU@lsg;0PCkkW2X$4yJX2( zi_Srld}Zu_fp8}eHuyktvW9PEyxSJJ-5>l^DZ#qn%gM}|9iJVnzUEFB-*8Tyy)*!_ zvRWp_rjfV`=1V&6N{|Cm(sb=2e=fB-9P>q8R{pe<;`Ew5?(08%o^1CLsbUvoGiWF8 zXdO72u^}K-FOq?yn}T$#!NIu}g`hi>>Kbi0Ok%_AX5$x#g1ym-Xcn2J{Wj%38eOjc zCiLqMg3C#fdegpb>c}&Iluc;^MpRibq|a507lFc`K8+4X(q(qs|-d#gJ_L-W6_u3`DpvpXkZ&lglHO!L1i=(pGf@9;~WBh4?a z!IPjDq%tqJ#dzDg%GL>xP{ksm*CP#X>RDwW={+;99km7>5#`lb9EliZYglQNy-s7-URq$Erw^4aZXPB# z^d!)V{OwlC#S_`aOP%*3D*00Q`EsU$CW+Ooz=ecSOox3mwd93Cb@QSOkZZh_p-XGc zH?-oH%u`+I(!M`ly%_K@r_I%TBkj6hv9&tJdPYiUFZSeA_cI(4zQ6Sj>k#pnD91n` zF?OQr?nNSU&%z9EU8N%P$ql;k=E2JpE7AtU?5emkc;|xdt`5$h$0NFqU*z0+eN&!P zL!Hv3{=1Aj`s0}Se933w%@k$XyNtx$JhqHC^)r)qZ<;yhh>hJUeL$nwbov*js^CVt z272-&EjuN3I_~+gBx3kpk4b4?Fv}MXzAkHoB`!Nh6(m7(`ObA|24~ttb;WvJ(ZK`T zD7y6Z^)B|uwJA_j@`_{&~P4{EK-v#!lW>;Sxm z8S=dxs-Z&F3dTtRlWn$tYK~22e5rJ-?UwYD3Z11C%INNh z*hH;+c3Y(=oxiVW3{srIslM={7z3-cMZZpVt<&2&;&5nIZ}wYb ziqV8;TXUwlV5#uVqeNGYVoAPSKJjf`fvs0Myq@-%?yD7sorC3%_xJ2n+KCT6uqvHt zc!F5@CVz8tFMQivRVUV(0}PAD!5DW zeE~rbx=uOn)QNcIdJ<65REXp9oh#6~|kAk<4e*0hwrv+6L=(5y&YQRBnb-GBmlyt7R55HaZM zcSz65l~GHKnLlPL6UMv!N?3?#J@rLuFM(j;aeHx^f}t)YNBEQ>J)6gqG{Ys%5N3Gr{e;J+pOY`Bh=9EX*~lTXG=T|5M7@Rkr!5Q z)$cU}7PVmF?*;HEHl2EdbNd$nwv->(72bB@y>G5-VLnsg$R8ig*wQ4) zTPmyioT>wJRG>l%dA@@V%W+REHPeJ-(9tW2Pb`sTA7iz94%B?v_4pE8`H#9#9v*Lj zTUbuXSTjiQM32sF2+A_@MZU_h&@z3-CU%CPEKF~1p>_El70a`}%|g85E2O8eK$dMf zbl!(xzHe9mr1xrBfz$mam#Ft3%b1MhqZ5$V_w+(L#zRIfK#;*9*L|90UzE2P_4hB9 zKHqg;Jg#Fn>Jwdh?1#in^hf!b8W*dDfiO7r_W2>bvZ{YHTs^=bCp+w*Z_+0j-R=Vq zISQdB2?c7j!D!7Ll@V+ z*;UHOoDA%61t)DtpfN94@!($R!VS0VJR^I%nZXc8yJvE!SZEw{h4qQy^C#)+0&ZF5 z@V%As@h+p-yBelb%-+Vi+?VKOxqe(@UMx))5EVde&erX4pLXPeGTKa~l!@FV4A(*5ygc_xcFD8I8KR?=V%JPy9x8 z*%EWV9=Kwv4EuU9GBp_GQQK{5H*qx|Mv^ZJ{rKdQAxa3#RZWC0R)7v6RvlFJc0*U< ziMJ^C6&GVjaE8{N57mCK8bN59Omk*ZWtD^Q5000P%*?}L*kvERo-%F7!3@aVZ_&wz z=XMz*^{OSg5T)7@-~JT* z<`7rK9E7ZH|IPI=BY850pQ|{nIqqwL7jEXEOta;F%btgv%Nn#G{a#=8fS%}da7b>E zlMVD_E>rTMGr=w1){W^t6n9!g_ltH&Ul0cFY(cQ4#jca!lQk2*Eg%c7Jn;H>046)1 zV)~~QrTJ?cJ+D-ea062%Dp9%WAk?LlF;0LZy9lYi(6My>)7}#q*@yt?GM?KKRf%4a`&?8by>{ zTN(V76AXv8ugS}=nxU>3{tb0ocQero$Za}=2{FE44wq@m0O!^d$r6NW9cDfYgpQ{5 zLFer?FZVUJ=Tm2NK!ZAVJCVR?0k6%3oiXtf;(X}$=3{NKe7kmGGO>txjXT!&juis~ z=r)tXz8^NeAM(RX*uQKlzss$ExEfuOKVMH%wbQx=wrD|$F+S1Ob@_G0REMOHLT^IE zhJ}5HD)VkZ>SRLWCRX_A(nTh9n!F%-bm5aG?^&4I<9l2*@2Gg{cuGSkCf3Y9xnZhm z-!6Z(h;@Evj;|2f*iP|}haK8VP<4D)KSKBVlvvWHndFVzUrsu>;_QZJh z>DNIbbB9WwtuzDisI`efRkJ8wGWG3`v8U+d5JVKiM;JfmGIc{Uh$E!Ym(B`WBcte~ z?s~1-AaS7jiMe}t$=z#Dn^1;N(W3W4_S=x?9*LjkYr0$?7w!|YzR)VMmLH^MUjLXU zxrwdY%2^Yk?xjnl%su-a;_+mDp{4Ttht}s#@161zSwY>3Vj0dw#lbPw-MuAIRhud; zIJVu6d81F41Ln@Yr?X}ckBTKgA~!|O&~+MH29Dt|X%x$e-0XCuQ&+^voX(~eIICnu zZ_(ViD|R%Okw4{g*yAH~!u;J!^kururuHnF&AK>**A5)JcH-5==GM5IDc611U!>z( z+~0(eqH-B}CpTHT9pgJy@6Wyw{phTHbk@~07<*Y(u!*np`u=l?pB~sbE5QZC#`T0l zyKy3$m>&qGbGSsLK)Z^*i*5v1o!`4GvA|mfbN{Z@BK$MO=JCZByYaBfsbY|IMLd6F zW~+sMZ|N8LjEcI=eofG0G%2rAXZPaNktln+-7C*ut2j1_FfSaHgRj^rTlz+3mmENpwet24Yygdpk=AI&uxlB5aXO*$4I=iRd~c- zH29r_I-rOq(g|I_5N9M6K_Q-OAhzJz@6|FkIb@deiL0A5gyPiP^G*-Yo(ms^Jps`+eB8hJSBbyZt4d|4QOP$k9yoAmBQcx3X_{>=X zrj|8m27W2Ue!3=PWhT~eymCr=ql}qqw7#W@0{e~J>`PGMzMaN&CI{zUCD$T|zF8wg zW{L60zy;2F|6y#U8PY=ub`&k<-oP+xz>ybBtec==5*4Eog%? z&vLA&$5BJ(ONadUv`F{l_V2z_u3e5TBXWiP^=~t%^;PH&qi)dF#?o(V?0a5Ub4w}{ z(UPysu;EI&tU#s_@0DFh8F7OF%iK$ zs+}H~yZGIRydrlYY;aWWSZV$^!Lmn2DVy$I6zj#R*t4=prkQ&Co5V4e`a7LFv35CF{JxBuwFr)IH&aElBi}qgPt~B%g}vl9z2d>9S9@mX%(c*y zd5Z5|H^NQ(bWw!sou}@icGFqL1n&o^CsU)0>z#l_OtNVw{iup_{`i79aDEK}qthXo zun^@rXcgS@gP9`4morU*P@PZFORlN0y*Xp=?P}rBl{jpm7tOm*ZTv#?&u{-^s8NwQ zR>Qi&bl@aix?}m<6FwE1Kt#<-_XkY4rAhYS4#tIEzo(VEe7009Q1;=Ef60A^7K7;< zbUX#W7%SX@Gdw1VHbkBh#>&Tm-@tM-Lu7b7eV`lgj*!Pg;1UYJ<(3rBTT%I97DspY z;?6F6W%G5DV&pratthj%B@$~&`Jq)x*S>qO)526T3$K*_teD_qOWqs-V@w)?7D-N) zQst1{tkRK|gT3G!VGXizrn7cej{Vm@pw*0jdWFzMKn+TY)X;5YJ0-EKjw(3%vQ49D z@K#cd_j`rLF4K<716d&&r@Bn{)yM#B)ed7tCl`cTxlCzwcv(7kKlEz^lk>%~00PKr zJFAM17x?IOp}9CYz18g*>(S1tqy~EaXm<{M^9ELsxjPErYkG`t6POZQ&|3J0AQp5I zp9@WG{oMlWh@DhE5Zkj>8i;0QB{kC|I_@Z!hbk&C86YrHRhLOoC_V8x{QKBKDhBRx zwVMAW z%HD8*98|~o--te(dA$rh;*t?$yBp~#av%l{BjT-OTF-69~Z)_I_g}e(5T%U zD!k!*WQc2}cd0CszcjTGt)yEcoH42a*@z4u!6jYI_1#tTR@}HZsL~od5Q~-mw2E8K z#=LK3vPK5-I2+F^(y516hVL&$|GEHx1KuXz6SzaJVTpIuf!`g6rPat+p)QV&}n|4-2=kO38geI(P)IhilQHYN}@kUoM8DVrWz~| zTsc4qeC1GTyS)+Y6BuA?yGrJ3FEBZ}-;*xQ7dRLD`?&|-lee_BUUz6aPfFuYTBM$$ zsoYIG(|-0TGZsLc;B`PS{0Qo`lB~&U%T994{1%^TRvD!eR=eRYH%O#Fa}*o-jQMxS zwKDI63>I{^rD>@yv)%b1&63k53&8=X}c036$7T7xw_+l(j$2dQ@ z(t6e^;*!pI!=m1ppg&kh)#Rle`hp>N9tyZ50Voi^#v^@Prz|mu`l;#&IFEf$q_J=23_&E zj9Y^4nC8!kK(Ruc_9mrz8jaNA+c@X5%>=?Y=`Ua1sgzP+a+J(&RoE^B5~J_@kGj3o zTt?0x@e!CfA0lpKjJZ@6Y9my6t*+d9rj+m8w2we5BMnxg$ty9}9j&ye*D$?2?f8}8oNQ>oPd^}ypxShtI?j0ucKsz{sjNyz?5 z?xD0xR(8CZ!?Ckdy40t3?9TvH_ENKOw z*pQXJ53lr3*)v_oZ-{0{PGg6U`w?gY?$Au^+V9?zZ4chZ6s88-&KIBpPc`UoOeA0V zH1R5&37SehN~feyp`^9e(CMGGyWS!{(WJT*{N5bCTDM(lM_kXi%)#U>};1)8P`A%6_txU0dP(8 z30_{c;lZ*%GKu!9e=qTH0M_t`e2{Fs!+&kfZ=6>GRgiAX4>k1DNG`e|vhRFEtK$eE zk|ztde9V;TVX}>T)_+%c?rq-t&F4L9BoreTJewfZ_<$_k(=Y%+3)y4Y#-UorK`*0f zV{#b1kvo8ER1U;gPvMkAsFCwdK032C%3Av%dGQ9y#hD^TQmF<{;aAzgw@mguFbZ`m zluxy$lciHVCvN2W3*+s+WvD_fUufHUonO=Nubuh0n*`{JG zNuGWlv}$F;sa|_|?&;J5zQBXj3busO2ThG8s-6m~`08rxj=>*kJPx-9hdu2T?%1ol z*L7`ls)-}M8SU99c_U9BO3@ZPUtRo_K`2(!xkt%9gaxqg2CSd;bZsa>(T{Q z{J4g0z{?=Wss1?NLmdp4L2Hg^2K(ZMjUYuXP;`&2DwR4 zz7z@0Ja}4B`@|s`&^((a2VR};%S(po--Wcig&Xh0ixT_toVb@T_+dA(c)Zj)h*q&= z6&&)X)Nr0hbV(;(BGfiBQf~R%Nq|@9w^R#$E7r&YaJ5Yme2hqyNn8u%;0xe&q=rM{ ze041BrFrGG3N0Q%9p^*{X6>Gxb|=r>9GjKUCv{`q5gh;Y%0|PQ<0sUg)%-DDXr6DT zpX>vY^Vul9)Hw;3tI`nKKs0;eXwoA1uC*meQrg0A23eRB#cs%^YtPUsk^PQ6$Ep%)d1(d(|#LB$HX`jQ3hb^+Et|R5*?4xmPujQks<14-# zovHb#8T{Do=E)?D09DY`P=Rs@hD7vCl>vQ;X);PYi60cRqq2`!UUV;ERB94n*5gv&6aGoDkiPR3wBT zOo})>&EXDbs(a%D*QoOsfpN}$JN+%;U%-TaJjGwxk*(BDD3pLZw5cO7N9r`Tn2C%F zp2*ry^~zS9u_>HtvIK((@`+(-n$uTqQvZd)mW{vR|SqyA>?5IAeZ= zbB9Os0w8lR81$~(-EP)ME}K(79&ps>+12|BjnJui#Q#$!8P-aMGJdTCu|XBWdxZqfp6VSa!f2bWVGB~-L=THB%h zPAS{L(c0AHQEq%z^4yS;KN%h6p9Gy`@%dh=&xt=%+F+bTU@j_kkENZY_yt$^!C0AvUcQHn+7?e5yOcH91hK7&We(K?uA(K=ZQhIYc&k6 zrOgy77p=HdD_2%-8~%PjbJYC9W>03sr(fJ^rJE&7E;ZfEz_N#{NkJ6FYH!3ljDn~g zyP81Z$}hushODItyU2|4uPp0Sp$VNTc_+Li4Vb=Yh)e(ESW#8zuY$J^7;HPJCbC{z zUGz0G)#IKMky>3@g%5F3Pu11ddatXk_0yFv z);4R44NO>~clJBw)LKCP(6L?gY*RpFh>yFgh_BUI=y$)`PpsiWyYk_2=R8C=Q0HF*4b*7eR!-QM;CX)Zmu-OJHk(ZneXNGp${ z-GNl|0kz7HrihPAyj~0*p3{rPk+8-*dBv3doWZzlI`+$DRe8#--i4lPMpAO^JC4xE zv*pohlbwpLeJ%GPUKx5k)f7Fiob+6n{Og!MYn7HLy}`OS02fSE5zR3RP3AQpUkO}W zD7Wom$^P3Z7dxZ!&2HDOfCq=BIvuY?j~!jUdat%ML&{FYx>WOl1I;+ga7Vt(z~M;N zd(~S#%rsnxC7M=Ya94>LXHIHFpJJ|PoA#w_R%&35&POl&66!aVvRl`GZR487lzE<%0muF#>!27goc zDLew>x-k&5$!jB}rZPU%7?$+q@`H3o9{n{u-dccdTd(qiIS5d~?TPadM-re;$^6Kk zQq9z4qq7zZ?cA0IS|hcj&YL*zet@odFl^W^4{dHKcjCBve2jnVRM@UR%FUaHdtT#lzF9kr=5oEa^F!B3E z@!6epPmU0eHx$vZ@u1o9P=vK+dTDXyeuy^loP%&)jy0EUWim!PLlaktR;Fg+AwO73 z9>fF-t}yVL_{ixGxgwuUUGw~=5rxF=i$H5rpj1W!!&_Jdv&2m@3_+$vU)I$pFTq;8*A*<BHT`iA{LP-q=t-Y5uxIs~ z=+f_yF!xoK^xI{Kues`K+=%hVfxOD9YttYb=;V@x5pFE9m~D;$)${6|Q|C{W8ukf2 z>Jx$L(4F@;w#07aoDcB&#siSS8?%&Q4whQ?B}eAl%l|-iTGzK@-j-p8QV|@d)4DoG zKyV6H$g09a&1X~K3AjKob#P`ZDRyjUDTcC&FDq6nH3rkub9$4@@EoV!Wy?nf*y`&gfNoQkO1(Kt}jW zZZ&zi?uhE+&73wRE7VP`T<^CO2*1C@4q%$|Vwbl7#mRT8zevp!Mpvo_X5w=?Jd&%r zffNW=vs^0(4Z+oH);zdII{5duA*PUO zKsdJ!2~^y5bxn#tqJB?M*R=urX_3I*_ukEfj$IQOQdC0fZDk<^a7Fo~&!;Q#@MI4=b2^Y)M{4(<3{9@qd=gZx2?UszwJugw zRwekdXt!8nIefmzW6zt3%AFEoS*P;Rn$oS!m+L7$`f*R3diz&8E^*XBG@-#Ai&j7M zyQ?Rt4datR@4i9zyi3y2ei(ARvXVJO$F)P9p&Yd?Ymz#MKJlWv?8ubr>rnNIBdemJ zJ+y~Uo(Mz9%(Uzc#a|+VB0s)e7gtoGv&$)xjvbZK*o%K(S8%{t z;u*rU_uR^M87aOL0Iwk$+qoWbVS@PGyR6`J%}3p+eV>bKi_DbR>+J{!yJElV@hwqB z*z)^r4~SjDIB*+gp3|}u-SZJ8qJb;!%)7eI<1!ti>MNlbr-eCp{NstdmC*^6RsxAW z9Q941V|<)D*9P6p7dHM2Lwp3_ejvxH(+plXaW@#T$x~hz0Bym4UH&EkUXMIhIUZGJ z`G72tavfIlJ7dzw_fb1U+m`Vz_d%ZP<4J{6n0ft;Go0Q~>;tF>6M^?g&DFL2*T%ye%>r1azOsADX->j0>F*>FspshoqY4A2A+CkSj_y>_@(i)i&)7 z0J)+>3hE~0+@fj#JpQ-r({4^Gqb{(Owo@o@#$FItTu@{NWiJ6ZTe$=P%2lE^j$N2*y|&Ut1tg0+d@N8oLlo ztM8`P==s#)@+9*!jm@JU+4KgUQ8n+jzPj*3q4CrC!|t9HBI#XJiKW{Pg^XCbG{C3w zYvn!jOD%hV4!}+j|1UB{GNW5;6;W`n`z2A_F|%RnFd)}1*MAGi=)^5=Su$wW&?p_{ zmBFaN_is@9Pl83uaJ@?7S&H|2QzH{a1uQMN0Jvz1cL?(leegoFD1&W)7(0WJ|DI7U zH@l=<3D$oMf5~IW5z1!SX3RLW2lPxD#~R0;w`z^flArj7H^{1xmRRuskc`{Znt}9i zASQT@4jV9;KnVV)sd+1O!qdYp&oxYFsc|?KN+kn7{)k<;z z?^X3E{vdOOAMU0M63_`+`QaiUbJXBfh-p&3xPVPHC2>cubEVq=d) z7*(+jaAGZ$|9uAA-BVe(m|t7jf%-uy97$epg`RFEYhR4lYp$|} z4iAF#9|!6I?bLx7e02>FT1mPb&|UPA@}Y7Nj5rZy_A_FZVL5HSVQ*WGQu#y%NL|_& zNNu*u4pl;)hXDo32AEj9U9+3^oG`fK)VhT~c{GXv+5}v40HKT8WlM+;g^vF?e!yOB z7yig!`QHC_#1fFW9hyEoigxlEqu4fyP&puH0jLHar`wvSeMhQEo#LwsB>G=cV)~V* zYLbF6OXFENVF#(@KMt}Bo=0sz*Rm`_xj4-sxJK1FCcxA#jtMHCcj-0_A*tf168!d6?W_?ckH7DjqDRuGC$ zniqcx4Os*$125!ITXB4$zq8tQAZbXB+RS3#OpS6Khjs*AlOedB?#Fgq(d-I5 z^8|t2xfB1mV0^1}ZGr#w?s>dEM<@1Z>9qnn#WMPo_x6ac5kO7-Tot@3@MP%+~6FF-UzOuuyv{ZXj&hDu%evZ zmZF;%yto1s>W4i-JbgHt=|6qI>~u4~@5&su=F-Bxl(qKJ#D+1MK3$FV z;!#cQ^QtVVDiShENS@bMY}r{k zG5#Ob)MCpEm(}m;u!|?@AMV>29|Cgfq*T9znRu3@t`x~cd(GgfqWICYmC7o?@wT(g zZCvcRD0$_Gug_XvLw)7jbUsS%VDf@Lk*ljNL*~yh%(kCzLVwhD&#VZ6nTpI-o~hX# zx6lzdwu2Rv_aXuGNWc}wQM_fA0hD`x6H>c371VNt)SA*mp3m8l0ML5u0NO&>CEy9e z5rLe`7_O^$!fCCrc_p!497g8OORzj%*Y(clyJphiIm%+tsNjhx;0sS_4Z>Vush?61 zwe7MSuBb2+B;!W6=rP_bHNKA7z-ib|9}=Al#$=LakDvlOe@Q*I=c|YkkIwm)_oLZM zBL%uqRq0JBxMdkYA>k(|Sb~)qj=p?88GZfzZ~5jhX4vrW?2(0$B1m4D|M9wFL%oe= zw{=Xf6Y|jzk<5|5?4>T*W-1IO68b;rBxcU`)yed()LO;wrF!%{;OHDOYF5tSwpp6M z2C^LMb8mp*q%jk_^WyT~rxTwmTzcq~P^tgqM(jO)wYbCuFQWb(&Q^mJMMI7Lo-?3$ z*)sM3sb-E3`@=#8yMxp4b1pFO;z}66pyF+pot|FVC{g}11yNyRL;9nq>1BSv8q`Ja?Pj)<4jscr_J7vpC8f&TtY( zo!>P#gdqUsW&A-?pfOL7POTsQo*Nu%c<-4->DZjcGl0tJVea78Pv1EX^a<$ctR{H< zC~vnK$}UFciXDtQPW^jHNcb(c1hPehtQzg+ADyNk(rA>k@a62)Y-F!$Fvx4mkdG=B zP;h8oNKQTT?Ld0W9L&C123%|5m>`4(?UTkzS0%B>0{Xc3@|z$7T1a+J9B@S|*D? zwN|xIarSn3RWCrOq$8 zT#gM<be4=(8dMjVz9f^h#L?+!K)5}qNn;5}}Sz?Y!;er9><7;ZQ9NhYwd zwJ7~9UrJ?-tb8IW%*uo;p5b=6w9j7pEx-HH_6S{ZeC}!ma)53d z{#}7~I>4sVHqq%U<#P?*pYNMnU@J6t8PlxjTpa^XI3N!&ixlM`0!^5hrCztX52ZVR zbn5wLrikuSm!L6_(2CtfJ+2Q}?rEusC8_fwbq<=TKA%MjWC6Uu(u5Bk zKB}iuvGprg{W`T;LcrPN;jG^%(vwB}7kC`n?)cVm48<1Xe_k2)CXTA6+0r4KC_$YU zpd3aLNCw@J7jg6pQqD9L?JUYC(q|pAA5sonA@S+A&xM)qbJQT~E-tKJ%uIFpyabts zS8I#|fg?v41!!losnWcM8YE*KPu`;)E5en43;uB$&7%GFXEdAUm0e>2hhAS^ovI zpIbK3!slT2hxmX!?e86%d{TF}(W7DC|;m zwDtUU<-9?mV+Ur*b98Cik00+@ELZl@YbobRh;#FTsM1VKK(>X%wPQ$8NYB)$YtAuj zqytde|04PU@K6$fe(idyjW_*s;H@`L$HQb)5;5E9h|@4U=>=>4qPqf9bsrvhYHE!0 zvc^E!heQUr8YEP14TS>O#F&IFL0w-R94?L3bcIecdoOLoz+Ih3>*pZiSs9Ss)U6aL z<`5C24XyJSwOdLXP5XRuHxPNThcP}06iHd=FJfDJXsuGL?WV6$D z+rs)hkPS#N4D$Maju59B5}cazh-mz7AJCb7uo0w7?{6qClu{|G2UMsi>kt;>=Dqj% zU(Eh)L76Nb122Zhf2Tmf?G&G~oS1wABx`snx{7K~49IehvvHGVa2w6hN3^a;TTKdTX%gBLuylKU>|^)FrL`K5T6*Depe<}$dyvm5h^8VDjIT3s7wVj`@bL-z0Z}|EC1vw7p#ddXatvcj}C z9R36mGR6_J3Cc)8z{j~5X&dARIPCoVpZw%1r923QF=+r^=Z)OYU0wttr~`-*iH;}3 zUpXwj=0$X_7SlD?S$p2(PW=0F;6nE|X}wAZb|LX^aH}?0t!OA3-_HC?o@PI#_e)D} z+@cw51*?&-l|N^LpiA$T-VPv2c@>~F-i6=l;(8>!oGNJ(Mbmo@ej=>>Z(hEnV6wmqKzFjF;rZBn*qEVinf_9kpX zFT8JFuwZWQd+{`s-pWhLedq-g&V1ycrAdpQaU~s$$Z{`!RGk<)=u>ggu}OzSe2av~ z?|$ThcpaPSy4!a5^65Wkvx&?d7^2{gFim2-%Eu|}PBKGJyZ?{30q5ScK}?I>Elx|M<%?)Kl0frX zs1gm7T@`>fdEUrXFvj{Cxa2SES{quxztK+0@^9h}48V#6{ND!8grCRK7!tThqLie`j3Nk($XZyO}6iO zzF>Sv@Rr{5V|qGrYw-?EyYU|jG>x1d4l^#qd@5jVTqGI)cw%7v$n7prc5+mvpV9^% zzL_e#$GJl4M!b^2c%^bH)pQu%*i`(z`ta*jZn~@$+0T#kL#CMyv|WG*EU7)K0i0i>h{NcCn5Fpo$D@lbz4*rNNwYKHQc?Wa%oeY&W+h0>E z?X{lgW6cm3?tZyBcU-8nQPmAF!GqO-YIaduOb6Kti@FV*WvLd=W!9OdvcS{Y&acW) zl__%@WCHzk3@Bq$&Y2V5EsJHHZx+otYt&UMtP7c^CQT>RetdYUS!@=T9(E=^sfB)- z2Yqd^bbNmf=f|OhSEo+?vFNtA)+b6P|0oUv0-QU;l%1eq1k=}5324jbpCXEAHz3v9 z7MHcXClJv~V7c{PSWxJ?2V9GUl)jd2BvPK^=br0{^ZL8e*1uawSIT>4apZ))9+`ud zMy8*sOc>0EUd4G#1w;6acio!l6o|HdK~{MJk2SXzKkSn?@jl|r{s&r7E5>iGI9Fud*a-#=COvhhY2Pl+sApH`e-+ipB_ zD7I%KSI?(K4T5ZMw+d2dfoTZYG8kv5m5x?#Zc=us;V*SUfMdd+HkOJgI3Z}dhVvXZ zwsEfdKgw-u2sa-KUEy(Rs?=WC^IT;%kD z-xZFgC1kRDi?Ls{rzg^@NIH5)Zq6I50e+{Pcd#pk2eIHGBFh^de@p!Erv(prap~sA z!YAK0=JUYtxAboO|0UHDYl4mxq6h-9tQmS8BbB>z1}PDZ$!%HK*nmiU|* z=u0TBXBn$)eCzMR>Ay?&9~de<-$`nBoKz#rT_x@NKjPjys_Av>8bwjDAu0+YC5i=6 zKq-RMprBYNDk36H=}40ffh5={iXhTkKv9t1iPWelp%*CuBA|v62oM7affRC|pnIQv zzVDp(y<^-zZia&~+-x=Zv7WW&nrp84=)8d%R1g|z?{U^$e*CRJ;M_cbl6)=`u_Zji;=6VQzrwZeXYs( z48BEXH8R7vS(PAljoWG_afiU=s?TEIIp+B_83~1+Y!!9aUN?C0Qk8~f*!Fya!FG^5 zHMV_F5(I4islu*!(FfdoiQ3q>a&^t{;diE7`O&#N9ZGU!?Yss?`i}aC>V>!i6YvVL z141ChV1C21sWSPIg}Yp$a!6}<`W8G#*6oe8hua{53dB#zX{Y_U3oyQomeafwt^FA* zSgE@=**nOoE1N8)99=a1$M2qJJ69hjI*#k8Yl?olzbZ!Tu)g#Qe+$T(zRoJqWL|>j z<>Ayy%_(;FWG7jW82z-ymDr+aUuWHw*so{0`N82y9QALC%FtqOTe=y4iSVO{{I%<= zb3st5DE)BecVmxpUqLI(R` zZ9*vjb$iGCnK>5RwN)oDB=|V^Fd++9fmQnIvW{yf0f-da3P3WnKV2)(+g6`qwA@*p z){r#?*@2_0jOE2S^)Wa0i5}d^wSE7~<?IT8lx`;udz&!Wvi#o5AaDUN!c6k~dblfm*>WfXG&|BuOS zhnn2;mYFQ)j9~&cOD)X|t{`G;rB11@DQT_@*z?r*}vgOmD(GtC( z1jaX`Fz%!lb!dLquDwgUTE|Hy(vVUFtONrQaXbSt+B}o)xgE~tEUqT1uHJXe`Q^EZ zd(e5_aH*}0B+nwEEy?rf2*q1G9hWYGx7iNFey(raQ8P?Ld-NC8z_0e10-?oh{lwDU z9`{OOUfvN=N)`8dA1BA#`#|$-!S-xg80J}hzUysCqfzErar!yUP5aX+-gVJaw;;c% z_K-i)O8w0Zb?U(o<*DC0RdnT{(`>Vp+oM$P$Z?YIqW~lI;Anisr;?l)6gpcowYq?{ zt{(Mi%MkLNKO%KDqtH<@Mk+dQEFa(PKk4{-R5tV?@*D&{Hgx(}m}!*O_2ZtakF~O= z3{E~ZeMR>gL_9=ns%PHZ-FU*T%OyP4IjG=9mb_aot@)25~ z2`tzZGCqqMCDmlEDeu&>yX``dAe3nxyJ%lajU`vx3Y7Cq_; z&%pjR@3oH6hq*2B@wquGfm9Kwew|F4r$n!Vw~*Aet{Zca8D^4u4P1_kO1H!s6kVQw zVQ`zNdF{hGx0z!S*}NN^9w-=xeXdwv6t&e!z$irPdvnm!4RtC4b}e$grz&%C%stf$ z1M5{>H@ED5KcnA7jT3#fWcrpR#u?U%7-18sMN=qr#e)`{guuAyLN`Pz08MRQTOTM z;rkZiA#Qg^twgFh?rixGh&7)w1`F5EZ49A@fAzU3|rfO$8C zY5{Rfc-IVl5cOamN+S=E?|OC&89l9Phv^ikzpn}M$?MVM5j>c)8TkS?-tqvkt+t3R zLy(baRUf@!p%tfh`AA!aK(;@=YmO<*bbWd^`k2H$Q1Ay5F64-9_;uJc!*|ty;-sA; z4&B8p@04GlsWZ2-#F%@z@0I7A=Z}ezK(O4OUWAp$_1VG0{Ff9FY9D3~CZ$|Zh}I%V z>2Nm#xbwq{Py;6E{sz?9iW74waXN!p-ETNRW|X9zG>}L(l!e8 zvw#x9!ddbUYNq&%o&KuvAzS`Q;t#=p>ZRrZKl9LMxsJBjE{KmnQOq?MGTtCr%MXq* z@N-3?BQkdA+Iw4$KJhV2pt629PWob_V>&*W0zpklgoqj2z|QL!+f!HGymmJDLNwW{ z4i+Q)#_HY$kq!s6x9vgAX-LZLz3+QNJ1Ag1^}%EM9ngl%UgtATy`AqEgIZ_= zbHx7q))})KdMZUJ_2gd9(5zJi-E$L0$Z+nYD^Fz7a`KT|9X3)Q`;`A?xf)wYp1Zqf zssrYMk+d^rvIH!i(rYllnZpxo4*4$L7^7!N#r_>n3vb_VkK80Gy(Ixe^TDty(+a1= z2L(U3f@t3GyC9FZ1VP_DGm^-4?4d?xtVv2dfkPPg)v+r$(0^IWwQ~jB5ABmOi6R-p zMvc}a`!9n*TdnZ zlRnJAGr-I$onaQ`s2p@G{1Vk{YRv9APlbfzMe>+E7-KLDh^7&^2y3CWHy!i-*Fr*I zlhFX(PY~1Cc7}kRm;Dn}*f`rj{nQS#G+j->&gJAy|9fD4SPLvWeGpg`>V%wtw1Y5% zpueN4bUC^Q)RkW$-;1L~F^f3t94#FvqAs;1ti}^bi7%6((-H%Dn-n|htQpY^62=RG zB8)lgp(3Q`u`$GITZLX$xg$#G<0>LR|HH*ztjJAOF9UDZ-3qC-XBKd=y__KBscGoy z)>$e6W<9SLYZTemv39OLU1IPf$>R0pm?;9*qhZwQeDg=pgERcP>f}6xDt?#?ityh0 zFBuECGUZMm_IT)yS7&H>6l^`u{S|QWHmXvltxV>*Y%cF# ztH^fQ_>SE+BI_|fQaSnMBqw7|CKF1OooI;e+qY4dFvmB7JSv?}v{e<%R6ak~3`bz6 z6FIA7?UI*{QX}pT7U}tk-h$Ic3)UuCbE@6u*?x6oU48tOmlmV_`RixsH!w173m6Vs zEGUnZW0!J{zC5H1ot%q=WFuXi`5$syuJ#Up($+l-U zcAdWF>O|bPb}uq_DtMfSCpw(Fo|ss&p3@h6|5c|&u1I>*(3Ec=T|;{1S7Fk@jvp@7uzohLQ5}1x`(MwLwx*|YTo)@ zgVZ*>rNeeLXeD?z-B2-toUym@c5gZ!bkV57aC8H$lrj>Lh-wXzX=VE_vXY#bXP@)Ld z$MhVR95K48B2b9Eq=5rC$UM3cpHwS!0R6%iag(&LJnA5xmJ%U9Y1^)$FJ_TwS_eeE zo}nj{dEp-xn~5(B_?55kmU-k*uCpWYt39^@hsOiH=@fR%z`)TAJ*SS(VknfdFQhY5 z&&|AknntUCt_^`Mu>~}r#X^C=;pm@2n5p{kBzaJDWPl9RAFL>?Zo7zaaN$jFpM_a$ zYPJRP%80cuW7g~kR-LQ%-P%m z&=g<1+Pg+Nm$!5d1+$hr`mn3Y*D#%mdk3AJLbL$GFvLX;wr7xA?e1Jy z<%J)3bMlcQ0%f*?N;_@;79aCS>hnL?!^w$*9V z`U>sjTyRtOI#a!k6=71^kc$BVLZ6j>W4ub3(DXD#oQe0=EbPxuDV;4Jv{LX15+J6^1a|9V`V_J~w)e$d_j zi$kVBfW*pmi%l2)GoV^aPcmR>ZN_RT+bc^Eal1K^Yjg)*PCM8O^DOwS5xYyxT`&Dv zVhH~;C6gBi{a?7ig_-hH{ZWrV_5t&&9)V50*afn*=c{xCR(sGN4>9UWMZw>m(hQr$ zt-KO0ngW)wedb4YeODoR|Ffe!2kFbF$7lmsburg&W$`1`oms7;&iPgMb#+zXji_p>p zEu}Z~ilV9Vq(gy=JIv8?)Oppm9_83dGs?8(Q36PyC86hF>i)(R;{&{kHVH|avJLnp zIx-YQh`a~k$#IH^%Zxp#V)c`3?plJAYBzRlR8!op3bc((|3BQaw!#G?7LfmDTcI0o z75}6RH2d_6YK9H^KaK~rV|$4=$=-RWFO3+{Q7w``dr-4SEl?2fa~V^Y-aY$n%v-@5 z8{YHIVh!0U*mt}7{SH^q+i_Vr2s=m!>#vWNsz?5qib-B7e&&}u#MGM4DNeaY*n$F1 z^_Hz?F0DKDo96C%+#?9Rq@pl<;SF=k%;X4;KvYg1I`hcFGHOMY9+@$iqHc{LFLRTQ zi-PBUODjqPWVA_S4IZKNxS;YsH+QN+9{1GRq`@*U_0U7uWEb%?&{m0xfXcXLh(ra3 zNLdCKH*!5GZ;Ma(ZL%Jf#R$~OJp0O*A`?R*-i%37qSZFyYfzLi^@buxr0lI8-voPS zm#Ht}&>6L+v<|DK<`qpbynqjEG2Ns;W(vNI`jU{ha#LZhreYN?Ya1ASp%B2#-TBacSuwwmL`kdUw{bBb2e{;f^cfa8?;MfOV~Meyu;`uEE4L z)JYFGU2KX6-i@sCfytz*FZO_Xmcg>pyqcn=Nm@y*y9QZ{KZWTzY!@Njxh!(Wab6ChQ|xFn;FDVJ+2-E0We&sN zu{WM5IP;TLx-ReGrO!?`ini&o=tnO{NMc^bmQ}}Z8FHveWL)&EQ_xNIgxU+AduLNfL znHLWf2gBdoC}XYMfpM8G%ue?%bJw_an}h<8V%Jew z#Lq^7=c_-+JL-Z~<0?tUF6 zN37p5OW_RrKArFh;gP-SF!R@l;>VV5KCwWfm=OBp1DT<>JF=B4bvVs2kKiK6uIKI? zm-^})DKv6dxgMJy2pHmSQ`r~1@ZjvVAw`L1_76JQ21Nf8{*V)~DsPeMS4vX;u>t0j zvE1_uERGwWtr4GmLwbt31}hf+K>`-XJnGLYeTVYFg`)o<3&yVhf1L$^11lqEn(cGt z!cYSD;G#u)Xw!U+*hJ%I#U!aZ!MSo|3U@fEl2bT}C_&XS0l<5SZlV^`dOQplz2 z&3N^r2K{0rHguH5s|rK!lVop!Q{j%dOff4}Pz*n>2r`mTD)q-e8|Wsrab3OZf1t4loTU?9KdL`Eh5zRcF zq#Jo*qLuq&c_9sOF)&*J#rpZ5IV^Fk{7eI(#p5LPBrKuyiR0wu@}Mzr1lt2MH*iHx zAzS`WpcN%h7+Z*kT4-LH)mEYg-mlgmV!+uvNh_fd>mo1L*HGRxlByP)f0 z#}eg-e;BVz)MGeb^?-lr1kq)F`5I1YAbp+Q-^k4@aEQEbGt-?(m=5eMFW!?q^@6Pi zrGBD;9xMV>%=N5I@FK0N@$11J1h4(hX(Qqz7)@(;GZ+m>$IBqKl1AO2X!6O&_(ek_ zDX;Wab;M_C>Uw+OJ6(I%0GwfulQ!dw4%bqYPJZ3y*o(qyZWYqNlv=OB{R4YILQK5* ztU{H5wJ;_i99OQA$35);tn(ZG(I5}a0c)kS5jPiu1bG$Pi6LrdO-Y%g0#8*J5Lgn*?`If4B^T5iDChcxG)K zGsG?u1uUT~^y}TjO0B*S3jalkjU4TDo>l*JIa(31Y0$Z#u+1u6&$YATmc77q#6U}G zrd9$+!|0slhK&80;{SWl+SX`Jv$p}oA@p?67?w>n5hRiQA&z&7k%ttz_{0JscV_C7?&oRS2VC3nQ^=9Ma?@&e|3Ts91uO+c#B*2 zo74UE7mYvor<+uwTV#A)L|o_QKGN^pH*!G8#;C9JnL47+H&QjVeint`xLpLbmy|ws zG%*o}y42#$2T!)*MDf?J@Oe@H2SRLtHf*?cJ!}X@FFYLjXTqu(p|v(#eNwLpY0Ypq z`Vj?*VP|U(Z5;GI4`Gj9psM9MlRP&W&X1X89jorj65XX(EQkRPhh0zX&33G&zMftL z#+@gY)?_WB(>nUbd}F zrLDp(v_RIB0VNi#jvt6-kUySgYvkbcTVjK(eV;sJN+fyt89>yIKD;in+2v2}R0KLeEN7 zuq)Q9gP zC*e{1j~dcxo(p@vnZ^km`G)SvP?{l&S@e3G_jc-fj_i1;^`sth>^?w`LtvO3xU|FL z8&oHFUwf>V!9lujQ7&^iyN)|o_}*7MkP`_+^VOZyeTv$fc1XM)Ja)O&ThH$K4?E~c zd${H1Nd@xS14Nro^YHA9-j=TnL(I5&2plQ+oLkE{`XZDe@NthLt35t1ImxoTW9YrT z%2ZhU*f8*3@P?nW6w^GV&3h_6QmG~G!Sn~z0b@{lvA-D~Fa(wZf`A^3qh~PIkvOfP zGX(Pa-}8mtA-{K}cwR&TT~GUIh2VfDqd#Qb#aLTJrzSzlNLg*w1^FQ<_28oV_buM4 zd^odbB|s_D@xL4dE=wl^@=WhJ2k_;B`+poO`2M!qPtOL-!T*2VFgKZki9*bO>xS1# zydjQ|w5D254QT3;O9i#Q;I!T+d&Rl?V@VkxM*F0*Q7|&V+RmMB~odvS3WsU^-n0IJovxx?e5V>8|4kku88Zq-77?$hrxoet4kI} zF0?!cnIIX1f1~YiUUzx#eE!@e^YNaL`j+gfb$^@G#J`-EdY2kDKsbydc^9A;-g){3 z30M7Q@QPqf0v-#kcB50au57l>G}F; z;&S3zkl)*-J)zD>+vp8$g#Ej|{LhT^ujE=We>p86g)#EOO}1;9EN+b> zZ7SUvbexDY6C#jCFI#mH?y5NIc9HfN-dnZwXx}caIhS&XiHmv=LN13!|9?!db4V?X z;tGtW7xm`Ya<95H1JBIqWBYlyiUB8*vUrwuWE!vRH(``VC?wG&}XU&Ze znkP}HZ`_4n?k>b{;`fvgnmd1Z!Rt`7SF5T$_ypTrlJRJslZk#KdN)bbDFlxf05|)L zqai+=YSI|uTlhB(S(+V--o8wabJdo8XVuxUOx^=VLOx*H-t|B~b7(y2NcO?Z-zam7 zK4}M)%=6)_4Mz^X=ScWp_W^(pz3%~_ybl*)BMN~9sxavF(UIDc)S9~ecl7Rfcpk?G zRsk8utyNo1d|(}B{f3Xl$4eE?D4k|$ujRZy?Z#%62;J5@!@aNXb=j2FLJxz>2p(u5 zW|@$;Q+&U@qy&&xS}J6&*ed3&`z?as>NkmmRL!atO@PT2Ur%}rwD6$$X22=u#tsz|~6e*G_}dWHTz;W+f82ANfX9`o#_ zO1&M$QMBrb*ZV1$RD_w(wWW&QD}?y0lXAH8@KdY)?>!z^AuOKP=h#s?K70Td9w76U zkm_)7G|e1!qaZ0W6IC1?uy&|_z+U5ELC!Mwhq|4qaxsFlCE)e7N~^!A6^j658z4YH zd(xQd+hp`iVf~>Gb|)DHWzkZWT`BhxE`{idnZ_Rz5li`ZN)MfUI$}G|hq~qwN-Ux& zIu{dwxPSkz3vMp0X{q-Bw==zB+$Yw`Qu?tHi7Bu|12cF&O!v+jny13qqAv%&W!!PpU*`s@cM|h*xZLv7_4(7V~$8MWpTR=kZ z?B)6H9J97L&-M(Bqdew?-%ooGp5_^;%iU{fT3_hHleEaA- zxRZEwgWj`HWHOsQg*m1K+qk1+8+2!L+^#$atS)z&BJ8esrDS{dx(~Jo^64FP0dzF^ zId1_$fMs^7Dsx}04Gb=x76-T5qhgP6LbTRrpq89#-@gl&vXu-d$v^{N-|&D0CB(;D`dR&e~p{!A$B$s-Ni9{u3Y@@-GX# zY|1Oi1yd+=rUVETo%cT1{vI~DE4u6!;Ry-+t+-#iBPyo!Kf6aZ;=b>x0E-m?yUKUQ z+a$>-LjXh=Q~_TvnUPHAdm~>!4#S9W5Bs z%r0!5lU2#oQ}$G&tRMxLLt|^v1kXk5Jq#j(?Z2^?;)O z=rGH2Q}NM+L%zpvcgh~J6H)Lujy8Orbiqg3D!tWp=8(KWs_bWv7mDMBtDCUz_6#XY z@PwGH-R=Xo-_G~D%Q+*nt2PllBER&G^?lR7v*%F+M{0zP%z<&# z&IYzU+9g-&b?5o78ZGwfS$uG0%=K+%F}f}H+!~yt@0N&R&dSBX8(QML+cug-2Jh~T zEArGYw{bX}ojiTa8hr1_XTbmSgyeEpDE4chzB~2hpZbFMt!ex(mNY{<%Ey&_QkRpT zygS@>!*9cBLGKdloICSU0pbL|DETLcEJ95;K40E2(Q!k1Nvyf8Z1AwBUU(X9`X(xY zGy$0VibOq4;|rV5Pw|1JJok(k15owOgjv1VQbf4mu6#`bb1Do z!k(I&OD99tT-XAG*dMK-rqxweB5$b>Xak1BN^}+&b4OP)16=0#h@#VI#`PRD_ z9q!VIM-8_;2FTdxv4Nx|hHc^ZD9RiGOQ%O;Y&7B~Rfxvars5+_^5!0K=WYk>g%MvF z4e(vq_j6@s^`PV92jSq>BI$|B)}#^6TljXVBbcmcAi)Tk`iP9=-s0F6Uf-!V9pPR~ z_Q?{Bc8=W@b1$~%IZ>_)+MPHZQP=bIH0SxC7*F?4&gU$GJ&n(?v__Z(o7`W;&?G$sFt+&rfbZlQ`)tWXcM2|1g-%kz>@dLN)RmgB6 zA(@+JH{-W=pgwAlxl@J345T<=X`sHYuR|d4U7hzM^f=J%bai3C{iSALdo+7@JF{uL zVfBH9-oK~F;QhVpLHG0Ad3e(UN0xTciM9w!&mkpIkOwGWzc=n~Gq@0jM`QPzi;V89 zEQ;yZRd1Mru-?|F+cYd@JZ5-Q@`}5)6;XXAxtT>xskEXs`2>y`&8oQ$5{Mq%ZN0Hy z%S$f=n2aEI=kL0{wdgMA_kEit2gta)qg~5G^Gph%*0$^DBU5h@U5y`Cyr-U<7IURA zh)Y-{nv42sU!=2cQ2V#}{3TJ<;9kF{6j7=OOh~X8T!y&$Uhz2rO)5Y2)hYt$whjtyRae%97M4HK8~{rKqeLn^<+=Z14;Sr5(zyZnl%f*T&8a?8QVBJ+cul6yS)do<;vuLXpis<;cmDbG;MyhCw7hjsCSei9 z<`ygL`*hpw7v6tvosHfJhVsq*_J=m?iMqWM^QTIK5CpeRj^8Uw8{C^{P`-{QY41O* zE&s2JDIYZGW7xy1RY9{FDDzI>syA96QsHrm@u3EYRjyp+*5s}V_y%$RHV zxOmF_d;ct~+^~^$LdOHIG3wFnNNOpz{wilw7GqQ++8t1znutx%%xV_>q<2~7t1fLnrvFuS3YOfhthbI2 zo;G2&$35UX=QF~1?mpT8dA-QiT;*qx3UC4=iR~IM&bQ1K3f~NJKUOA(B168Ae#VPg zxOlW2#2;SX>QyRMVBGRQWul9m?29yTuF9z3bH{=$OGmSWCWjlmzh~U#gO}cB=Ph;5 z(JXxrSGvx46qBhm(h>tv%Pz8m!4FEp;Hv%k%E{gx6PUz$@v3Q;l~;0L0PuX5XyGaB zdOvyOJhr;CV|5~iKVqSbdYKp&)m|IVQ9ex#p1{p2*m0Y zYdvf4(~rX=Mv<#~A@whRHU>^y>xyIAzu6FImav-j)`F1yki{vdBTQfZY#sG0!BvlJ z@)0>T_hDc6T(hdbV=6`7q5WI>+{F%m>mBXNnXMu62S&Fk#IHYmefQ=k%~NKTWm(8e z=MJo2$Iub85ysB=r5}}i#&ATYFX15^491Xx-kaNdJ6^UF7Vh>+PihEpXTk9F_M!nE zQ0UEx?3 zW4+JU(+RcDwOBDPphP!c8kG*gG*jm*%^S8RR{nG#w>(^>P;j>CGo!z<-PvR)!fe?a zjq~hp_|`4xYr0V%MqEzmCNuB6{nq`=m$R%jQ<3_ur1;npqkVD0Ff%KQ{<;g*kRfaRZU2kW&KIMTI|KU7KXZurqhDL+dP0q_c9s_N ze2@Qb;=uz~*dEBZM!M9?mRFFZP|hfn=aech%w;^YA7FSTF9)P~FA1|{EIkOwajm?Fq4F;wLJ{ z@lvPy7>oA!w!V9nuFve!Qo+Q<$70aI)2@mhnwKk|$BFtqsJF}+5juhuSkkHu6pwe} z{ZJX9nZuVs$IWe*p4%c?^LSW9SJx+*5azdur=;sw@GhQ`NB1a${3halk<4XFEzS{- zOQMWmI<{G#_nL>Tcb{lZ7TPKU-!)HgX{8P+NH*fTlHpXXbK5K$9|tYqek^6&Z3qc} z_mmYKT!>phF1YD%&~=44MGa-N(-8_(*w6-DndA4$%%um!0D`rWaqxZnu9Z^=HjU|u z=o%U5@(*NQdd5292H&3QF}AxVo!}Tyb#kz3F2^@zX3DGRN2zbh;@vF6MRvtC_rW7o z=`|G*(fRe1Z{(+T73 zFy0TSjNOs_H&?%5P|z8HN3BXH9b@E!uC72=mOQ|(z*-KRiLP@ak%V@lSKkUm(+L9A zjQSh&qNxq+71^W#b#dwu8^G&BfR+&%*KZO3Fwtdog6{ z=%9Fj;>))SX{-uD^m)wzwUsjs%GBzvxwbhc_%)6S-BIUcA;%sb{H5R7SW_@L(OWw` zoAFMOjE8e5aB+{$+{p>on`n#TJX4SMVq@i*QWMsg|G6XKn(0i=e#Y1SfmK(cqACA! z`75YJVg1Oy9@+*J9p|)}c#BEsL%wb04p<_8$J0l@#OM@G!)X;Yc1j57Bc4%tcUcYK_)$HuKZ}87m zcXRrjC4EUsG#n(iHw}NGm0!KF0Rq*bnbb)vrt^hZwZIrw8U#N4x}(eir>lLPJ1wW` z3=Y-D+;!a6Sfrfxi1C0Y)1?^{Gpt}Lvb+6?x-|*PxA0quSJGF zOa^O|X~5lf{vN39&?GCyeQu>M> z{bd;(nGAB7hXo6ZwRYEBRg-EQb8pu|2bV;b)*t`gLUD5mGE6R+l8^mNCE)X(d#ciR{-w>=Ni<6DGRIzDTAr#KmW zXy%oICZ~r(|g#N z`eo@8rnV|_+eV&0Ss~2ThBu$`7We&23vf@P6Qtger2U-w8e|<@puxlcRjn8lO)F?3 zoPp!Ja$rXo{2>D}V|wJSHW936nadQD;u=B3m0~IANv*@f^jp5ArDBKlqcSY;>BbjW z@=kow(^Z=3#?x&O7solm&$KdE%(()0oHP2o^=Yg?>2Qgmiw$#Mt?|fu?x{NM^z&Y; zH|$p+a-{RcS5(QXEAP_J>e`J)#Sk%%c+R9*vG!OL@)oWCuy@+A$%qk<_PI_A&u|s- zVp#}U?lUfKcV0yJ6cuanV!pUL<_k-qqjOXd$A`w3t4rog))_^4nB%>Nb*t}A;jQ4l zoPZR<)Ghpqc2q_i{_kMAej00Jrmo|YKF;0e37Oe&a@3jZ3;(9HryinwziqeK=*V78 zcJQ~@x!w$T_B`1QB3p;qr%8Q6S2aVMGnsX1D=+m(ZK#9&_qQd=v2{J(<>z2H%jZAa z(*rR>=wPUc&n{oaTFw79=W9`UQiZC^MzGdX94=#+ZvO%ZOd7GBF~`Q96#at?$RzDL zk>2|H5ZeeRC$=^C12V?$b#390!jyA!R6lzu>5gq ztEfoQnjW;p=PM=l^lmIVI&~rzZj?|N-Tlya+Y=N^*fnAsBXneVN2G8=M|EJNd32;3 zv=jBvt}Lf?r2&d+^lRm>?H=uY7?_=2Ydz>NE9E=<#-ym%!Pnu9;Ud&Ley`svw^vcE zmFqHH%B*QO`_^y~xPqDp-#&YKZPo9ju9P@*zQ~C|ZW1u!NXqCz#JdkopTc$!Ab>jpfEQhw<{GV&zLh!G;#YxgFZ z*Lutp$sGa9f)++(#+j&WR!cv7KoSbM5TL>AVN^`FEG^#E&*>jQuLTDM6uz!dggZ<#o$P#;5Ggn7u(3_jFI$J2Q z_Ifx~k6w_ad8nVDx7B%g>dQO@v#iOlUt5zK(HW8oLm(T`ec3R`xakTwJ81F(jcz9} zhENMKr{l_RVZzVA8;xoL)$HDjstwTtRTbecUggaX?d~bXUKM391h2Bht;f=YymK!wi$ZRIl6(oSotsz!4n7nn3yun;#&ViQ_9n0BkBm_@E)a!$>PJGEWV=*ZWI+RK zKwmYp*q5FTW5mVS6f#fbFCWaO8+He!(qm zB@aDmd*6m`r#E-#)}5Y9<;!GewSBr7l}bYuuhf0)2P?Lek50ceJoL3DJCOATue<-l z>1ITK>XWLC7zmM@glH&bfO0|C`RK7c)?q?%C5;{+OD`g(86q0|nn^KM#h32Fm?9RS+7s4B4z?E2k z*!DwiR0;!8mf}1I#)zq_IaBiI(3yNN8*XB`mO2sAFhDB`Gmny)-oG#=8|`j^8=%C# z>stD(UHxim=7Em$fuaG}9f&@NpQ{-~dYcIM3iXy+Zw9{3%7XTnFN{@qnEcY>1-qi0 z@`ZhcG|RvgTdqDXKULIJMd~_#=*9X7CEE0v&3obkb{eiGkvi}vrS)cY!N7?&GCL@ zdoJvA7qy-@^&K%84)tOAY$!CnzvJT$jYr%^Q{U&TdmE<|o#B&uk@x+k)n0n9UueSI zmJ@I=Rs9OIY9R5K#3J9wC`H-YtL)(ALW!{6XBlN)H0uQ+3)fd5Rm|X+zviaikZ{bO zi%2LZFOPF&^eCi?9h_(SdW@%}>A)jWG{ure8(avYrtdpxl7X-kpAQ`_N7mNfV>uU$ zWg!*JmX zU1HBU>brGr({0K!u@eyz^`j9NOU{@1TF6qJdh1FTbfc%yhn!@J25P>sm9D!J%@{s* z{7wD0Gy0ti+xW%B>u(8Eocf%I>+)BZ-7cw6#|CEPTsVO*yAWK(Iu~8cUFp<+J;D3A zh2s4k{M@gPHu`0D=8vkKt2Zij6Ev~x)j(`@CB|6IC`lH&RQR&uhIqP9jxPr`;DUzl zFI95DpZ_ooP=R1D#J#+0D|55ZE$ZjAZh9<1yyEe|i8En$_)uq4Pm$7p{|zZvqZ)%Z z>nt99i-HKcZ9_o2dzkwMUDUY3d#i9mHH3t%-M8m4PnjNWLDkc1e;xhvjXAsHPX+$7pRd>OkMvwIs@mzyWBMwS;K;5+8mjAL8f1Oa+O(9yy@@kK z_>*Owttn->Uo*J(MI8z+d*#zYwj;}x0eLUmChJHQq-h&PUa)HRdtCHdxosW1kYp)< z7Bl;LdK_aeG4j5s5SXN7%tbr^oJT)z*jH_fLfQwdBpD-Wrj}*&cJQd9XX6VOboKO* zd25W$ScAz&=5`-Yd!zkWZ{qP;LNdpu22FW*wl#UW&Ye5XEx(#+UQmCFy0#0?&X|Jd zexQCs-k_gvj|#zppFS}=VEb(Eo$4FHJ~Mf+44WzfMh);dp%~ua!Zii{=+U zwGG<*trl+AbM}6|m%nvxVcq>5`>PEj9*`zO-KsANf4|2M!ZoM51`0A|)KrC{%&^i{ z2iBfZp4sU-X|~(R(&1+r5A%ILnDD%p%<*TP89>{YidGIrW{gdg$2WLKe>i&lc5bxP zI|v|3D|;BS25#o#A2{h7E%_WT_z+w!&zb^^6%foszKzNthSt?eCP#M+K?jb0 zS;7(q(I z>)0B>kdNz+t9>iBY2eZaa*`j5KO8u2T=?tE9S66Gn+1;GpgiE${CXw*!W-X?K5eJN z318iKh=~O`pjZ`;~R>^X=;9`}`_@%sQ#B4{7@qJ+Oo4!^WOs zI(Fn`I5JGBd;;K10Ib^3$X49gBNoFVy3qK%Zm_7;gR`OEgVT9wY{O5Jz|=_yQ(9pmD%qng+*f&|H(*;<97 zB-df410%a-i4RaoDJzH@eGXh`R!{noaOg@+D9gVsOB7e>%Q`$$t|@=jomdU~eszC% zex<}9A2%QO<&a`NzQ0Y1sV_4@0T^aPD`2TitOUHoi+sh4t^d#U*8jOsO9m*pMp(kK z?Y(ceMEj$^D7e5&+dutvO0N1Mx^6?kxTf#I|CENS6%o6~q+fFT=`b$PK9)o=z7PwB zjQ5XlIU$kH?iNBdL2I<@dAl+;eSDR&1c#~2$HA{*Msw&h;J20yt2fz$1C~)4co<+v zvD5aeIwv=%+uoaEK9IXA8o0SRj3Rj}{4KwzTu98V*M_yq9fUA7{_pme0u2SU$i;XO z@ZgoHchnz+%M8o!W^?VHE@o$lK!Ky_?nQiy5^7JwOUEH~Vz|=(l|Mk^8T8QVItP<74~l6H3tFNzg|@^ni9Mk9m}(Sb3GN{_+c zO8w6CL(>Z7wHE1|PbaRb7k6o|J{$n8BrytHmUZ2cjutl_A%Qai58W9>oS@Pq?0NmltNst z08d( zJ;a7s5L9{>5RopuCzeq_+BhnRl!z!1LZ}its0dL&0*256M2HX|1Pl;L3OUaXwt36< zzW;x|bDcdi=s-x>``LF{_gd?bmgb#;4W-Fd>_8S=9-cqVgrCGrtpw|>a=Z*dZe~)+ zqmu(*3J`UIeI;kKd4BYl|EYFuZ(>sE+S6;+kPku7M)jYEs4i0YMlY$=f`x__g*y{T zaVd{JaZ}*^HTizr%R?-m(1Z8{>)K`tUvj$GL7i}T`K#p!msr1&z#0^9skAf&w@gJ# zWZPsL95qALEf4jrde~NFLJV1DPRP$}bSzn$|CTX4So-Z`h9f=$(nP&eviFUV5p>5yBZ!8JmKkA9WT#J1^E?QyQ zXJ&)_c4hYErHqUuk-&n#5B4x9OWUr5Pbi;yZv%-&yBz;l);1IZ1Z$fH;az$8-f_%i z+WZakCxLdTjD*zvUygWw-d>O_ykaB%*nZEhYs+HaZVu=vag~9$y9yN?ZPeDw!rknx z(!DR!#1y$o1aC}8BOP&tyE7gi9rvNT<2`eQT+u{Ew$>!*^`#vg*84sM?aqhL#9QY; z)hexB_`vIU&`9G!cM(^i&L?j1sGCb*5$n`rrs_{!iQjb;K#KxL-3B?Y@B48_Ix8jJ zsr{uK6G9X7{v^_qcOgfO+uaIaBc{u7S^T{!-AMXCV3uBZa;5g1z^z}Q9|)g5h&S4m0>J5Gqy?CJ8u;WH{pcL=f9}>FUF%J)IgjO5_+QhIwoi^Y@iPr(=RMp<{Vw!(wD+?qN)af9_#7=uYP1L z8!LZu$220o<42kJ7_QdcX71owsMD6&S!qGPOfRz;WKz1jx@>1?%N`4?N2B7-y zPJeko-QR!45!R!y*{UBDiqz@;>6vh(3+IuwSCfRYA5j zFIVc6(v7`1TUMB($s5;GbrG6+q2rk4`;*3Q8rs?dQdu$HXML%icqUW`ty2DE{3RuL$d=idC>y5o1+K!rh+zppwrEg7x}dKHd2z z-z&tQT7ip4oru86uWsA`GZ&URv%;sOV+H3@kxtt!wm(co%-kJTWR4T$ifmBEXGLIc z&WVrAN6(`k;;&*S8;Me!Uxnp17sud z6DBk60cZWU-WO&s=z^Y^dzuYeV-x>hZ0q-q7S=1D5+=k?v!2t6@Z%TlCwR#xuQBJRTbtE<7@G;lxHdx>t- zuy+A)=SJI08Hev~#dN;@=K!~jNt*%bsnUhJI=EW*{t@jJLN*5-I{N}Xf3O8binLc$9F(f)IH5Z z+I$_1-RqsJ)8U%=%0668)!yW2Oo=Y}e#g+A_;|Zqm!Vqa)|`Sy=KX?N z%aGV(ls{_D*cgSEfaQAWFK{Q?X6jA3aHFDbGd0v)xUaU)!;}YfQ;xH`%rE`vOn>MA zCD37}@ulMlGZ)dDTx~P4RCM#|>xlQje{fM-FSYvWk3t*lO9_D%j}u-il*u>s=oh?t z3g$00D5=ROyI$J8)?BImWj$2nE#Qa*ahZTKW{xpwTsG4f4{u>Z^tpyKKMcv)nu z0hy`c&$W3JU}Qkjl>x!@&8a4nyC5aSfqJlOcXKG-aQ}01t913u<#qQ~U)y507u3oA z5H4A@d15ePisRrnMR}CYEFMLM%Ixr87y3j#>q?F6mJ-X2Bks17p=Cqw{>t0V@0%KF z2=J7KM}xL^Js51}$!I)SJ?MsAGyD2-$kR2f(a_5W0it+0-{YaYmKNI>wvT^~W43Bi zwUsHtgzrmev!XyVg)Ks_ZvMk^`^QjcJM%%q90a;bR+r-{ivy%pX%#sj*MLA5-XH3G z-7sM>`S-Wi&5apWMulk`mz}?*VxH3Ox~i}z=U64w@tw>wcKlRP?qGf3<0>eDVPCuE zO%OotrD`(P$Ed~K6o=nd7YftzK7%Bm&7B=Ye{z$)wnZrK-KaD?el&4cpx-bZ*xgcw zR5eZxn|#YuFE7d(oreP^rduY<`f(5L-K|YGrGr;Pu+kF73G(2m8aTllxadhVW4$6- z#Ee}*m4BZ0Ovnx*>3ul^65;8dKZCq?P8Vw8<13@P7lWlzR1u$k%SwMlWFtmE0lGuc zSV8Rq>F`*@U56jl#LUP0iU40W-G(Pj3t){|rl4c@T3>|hEmbea-#Q9yidN_yxtIRG`{g zdm%EnXg&7+Mwn^K!f6cSF%Ntx3gT^j_xOzUQroiWUVd$)H++chjm-V9tyY($-Y_4f zE<^iLO&__I!aE(u*hp+nB^ibH@!vnoFP$RKr_{=nzPcvs)N}Sm7xbiKZdG4izOo9M z^`1Md5g~r^TV;cuE3_*iO=A74ut97kXpQNMz&S@bIR~uHg?-{m;=@*FgQ)coA|Cbsc5;T z%f2hZrT4x+Rzzsz1}H6m|2)scgN_Nbz>k=I4jnL28 zO0|w(5h=QA1Kwp3=MT?|oL3eWjD7qkt=8c}hT4yB#$5`yCAYL{gE{c=B8T=yR)d4TXp2edtLG9HbNC;|ITG zZ>9r|Eg&|wX8i!FAALUX9@Vz&Gcd{zJYp>N_%5at%Cl*$q;$*A5ZxQrf~;g)yRW0 z{lw_6E8JMBMR!~sD5$^)SZdtm!`!QQs>PT7t{Ex#Xh?+G40z!Fs)XRYuS_XZCqzZK z&N_2N8Yj8jEmudBU1ur@m`Cd7v|AvMscR(q>6VO0R6-^5*fBr+^mdte$x zhCpv@vY$&-Gc|BZA>E=IQs7tp%?_uD%syrlOH!P7V-wI$tA)#wJyyp4SQVAlG zDaF|PU^QLtJ8m5C-*&9480#T?gAQmf*L7W4h_1JDx8!N_3QhF;NmTUWBG4-+(pX2m zpJHz4tW*e{fWn>PTO$FWpcb&yHLdH5_X0}8;l%EJMxb=x!TK+FJKHvoretTSg4^~# zoVtYk$!1w8kEJp9v5&DRAE|wnK4MEiza96%LrkG$((Q?cH(UU>?K~($17mJ4gE+oj zAE?~cP)aLX1?Za@)hD%vK{Kx2%v*i^FtZ`PZxJ~3z&j6S z|JVTQYS|_i6Bv7fFTL{Bz|8kdc?zIBAMwsNOr=^&cWtU7`S~veGX8r930;ppv zd~1Jc<@|0iYzgzW0FU-1@=hzx6z zXFchRQooYFcE#(m!HVd3geB~xKP+1lahEJU<;#7v57o>93+cKdpyvG`zPx8n%gytY z<(oMU4MzH4Dujb@#h-!mIM6PrND8r^gZo8*#DQ*KDB=wuP-&!haZ`r6#LMGK)&e$^ zHARA|isUOTE%J!Zmv5|b+aY}8L%7&AjjfKZb$8ZX+L`!*m}zlCJ--uFytT=MwTef7#UPybt3!eR`-5^vvL;c^e4urq04E7dNvsd5BWm=%ye{hQ+MBZ{ae0VcV? zhi=|T;B~gsDVr)^v3)Y{lvM)Wp@DEa`M*RWwg)vNoca{PPYt|tB<1AopJ+>81|!}G z%5w1TUUI$>LjIxYVI84AEaa{E?Wt9Q z$+__aEj}iw`|2i|8yK%W#M`#@&9XvgeKX&us!`E`evl1Q-YemMxHrl88NO!k(tL&l zx+3K;Df~6?$Ja4r3(3sq(SKR2ZylabhJR%V{9geRl+azgu2$)PGkxsN4=rxRePZ7b z&_b;Rtl=!aQ$fF`~JrfkXy{y(YBmA{Vs93F`mu3AnR zDOlVa0;_GJ)qYlVUKmxo3dVe3m_qnqn{%_4HNbFbC5Y#!tS^nQ87&-YBaiLX+MnkL z=K2?PPMNnIt-l0Km(nJ@hfC5cQe@6n++BYKf-+F)XfU=vX3meN2nZb$zdQ!O(*e56 z*`KFO74a{*JUxAV?>xb%IUh9{XeD;ya>u)E7x*g_*QWrQfxe=}`IgNg{;RH=56WVt zg|5pvCVlBW8#WR8aR!1mo{?b5Q3i9DZ$!S);>39A%U=G);De?iywPYzWaiqwzhHe< zX9>btTR980+>94)E4v3-}^H%{fUw8g9YL0-@55AozL&f1xL?|y zsOC{7bkZ?ei_vo^L3ZrW^`u=xnmn~U6Foy$Ba1zG5j!++4`){jjXe5Wi)o~Y>{5UR zjU+@o$hFVG3}k75KK9TjLUo zAx}Hy?{EI)y2OL>o@X^Z;usg-1tES4Pw%cp>qO~m%JQCc@!v0*5(eJKrAlEQe-V7lj|%(p5kZ7n>=joVWgo6 zG$gh7h~81DTVpnMXeu!y)83HKh%A1`B+eS2xKoN!;G{gn@0s}!uk+z6HFRcN93I~b zwz8%;U5z~;xVypr4f{VCz19o|Lq%GNxAcXB!kG^tPS2M|HT?PK4mRbxt=3H+{IqAO z^Sv;3NJt|IJOwDZ{d&Z=g5ed|+4!o8U@I4iw$u0oKCW~Y1)dcUPT_rAK&1N4ijzgs z7MC5F`-*SS*W~;(xgU8(#rJJF$A>ZcDvLP<&0$5k5r1qQc~ds`R%dG~NoCELmi-l$ zxP@?_HfNLM*k~ey3n=oJ=(bieM9!*_Jd`s9Kdi)M8pTNrUAOJTo!1}gfoRis!1Kd^ zDYbv|Suhp51#n4?6)L+);PSP`V1^JCF+t;dWoj!Ty(QAI`0~(7=hIzz0*=)huO{Cn z&2z|=N77ibFDN#L2NHC3P4zCfiKxbBzDP+@<&!|(>*rnY9*Bg$X3gX!P_H(kY+&tH z?RF@`eM%2LJWL5j^Z-1+wlcH^-d|WFOBt;{VT>87W=zG_j)u+wF5G!3x3~PBA-}(L zN&G-=HaegBA+}3&$VA0{~ft=TnY||T~AL6in{Io zZN~-zxTzVKbtTDXyVN|Z&(b^OtZ`wFnkf1n>t-|UeDVIux)C^o4?axxf=rA$C6YQT z&C#)zz1YMa%VubLKJ6_4EDBi*jzdbJnWM%r*VQM{Php;+Mc&hKay6EF_Kh#M_H4gk#Hgg00ht8R%!PyR%qM0! zx8zbbgB3gSaE9i8PoBV$FI6=lncU?sB?6U1EyPpFsfoK;e6P5)wgfT-e859NQkud8(T#($b4o-Rjp{Z zIdV3+LO?l?9GN)DVIpA*-ow#jIis&fZ+e|DHxe$9D(S42K4{`Kl3lSfJ|89Qw4g~G z+GBenttMHx&Y(OaX^b9RoZWd~&5Txsmg`3}l3V30XO%6pt~1$aDlwYI|JC2$e_Fr? z4L4hNgb{crj6j_JJ0%pnxBKH|!IEHV+R*bt0QA6roRc=Ifw{N)!<_eyeCLt>6>4w& zauOk_pgwNHxu8_;bS7SQyv{S?lp-C2#?f9z`_{F*tb>I>t=bs?WKapC?>!+9s6Xpo z|GQU^Wa0YXqBw!5jY!2+J-9=i^is$Ab)-x< z`*fWXm~I60C$uD4My&3*)z`AI)Xow&J-3N`6C30jVlXMXEr1`;6dumq^;A|Cc@DX1 z*3&uxOj>D!xZ7HHwHN{8E&-2E^=WyUxd1@r(;JfyVEzm=ErQ-wfd3uYv@jV7y8?3s zJKPC)jg0n!@ zjZAFHBom!KqVwf>4%Qz@W+0W*=~T`lmGg4u%j|JD|MyM2@HvJ(k~c)9!ig%YW_{Cg z7I8Z_dv|~;o4srBR}rAxG0~=OtMa>ZFwJ6pE6ljK6EQ07AySzOy8E5F!VVf z^~=J(rg9G92|yo*$xkP_0tzYN`kDsLL;M!US4F+{uPt ztcw*NY?<9?eG~8hTL85~?=oys|87IQ(QK$q6|K>;rcJIt6$NTIZ8Gk>{ROmbf4sCY z5LNs^Q)%=Gc-%`j2)T$}_UiempXoCGYfDt4qMFJ7iZ4^_{Eq2&4umBEg!MfvVeL{+ zi3Tp}I$8^K8w#3;0%0f?wY%m!!9f@TvY}!vhz%l|1!mMm-$GEtUw@}H2>3H=0;TXb z=NhtT^QQ^);tcqECZGYl^@B+X&2k@H%2h+i79MEmsSMYl0+iL@b~xNmHn7TwZ335%K2rhtSAb=_CGOswV-cRIj>cepQ%3Kj0=b1RIC!=fXW?MS!d|z}b-^C)JznqB zt%m|%*1X`SaEddMNc`3GLeJ_D%@ipA3BRv3TnK48arpvY3RUXib#`aJ%%dvg#<5<0 zXKPX(Zr0^Es@&}rKoJJq7>tIW(XUjVqPzKfYuzB&CcBrW*xlbp+g4tx0@zA~Qg=2U z74tOD)RCPJ*Qfm~iut#}%xo<0$=5XJxk1Jrh(eC+`p;CG5iQdbS0?$l*KLw6t!cqe zQ>GRuQ!Mz@^QZTDl&KJY%$Vc?;uv`gQryEBw;G>8{%J`8>76m!Va^2~53qt05Nqqh zzh>hUtOX_ZHJz_`!mAO0C-mJ9!2v`es&}GVja9F*&icd^HJdmK_uG`MUk>v1YZi@a zu$`NU=5$Nk7q9v2o_Mc*_G$M~_b$UwDIyBF7*IS}tpcR2m9X{RaA*B>*->SzvVc(X z-TFs$Kpf~o{y^U|Rw!DqD>$5|Shq>HLRjrrEDOaOk=$q})%{_-6 zKLlF--5}@AoW{)6WsQ#hO!Sc-Bkrgrx+scf=)mMcBH)Fr7c@dn{mQ=71NUXz6pH{7 z3hLYrK;I-pZfdsmxu(0`6luLVTHSr-bD!D5 zHR@FpU9UMi%3}G~h&rWE6Y*y8De5@|H5)n5ajftox*?V|mZh7{znAY4dJT3zdydf( zCMvVoY;D?VJ@#}ko_Y@1HS4bm-We8dwKHFmU4?CvScEnZ*i`lUcPzdw z^c4hJJps!O3bbl7U$peD)Y{JR-f|Osj+M8~tq_VlWw6a$tr81E_vqAOMj`l!}k z(l^P?`9I-Zox9or5~<>i@A{(pLS2dE{{xbWUQZBRCZs)oOQ9Hqlu z=g4#)Qg&kImmtZM%zh1N^}5i(^hvYhO^=d8D)#Uwn97R8-Ep zP((u1N*YfC+=Mtg!k4bzrw`xqZ8W0$I?{V?kI&zVFtt8$M=$2{WlCN|sa^7Gf;kh2 z{ae&`^x;?*=rJ1VJ`WV|vdBf3p@jWoMjjp>~F>Ll5Sj2LBPt5Oc!YP&2BRD)^xPfzN`;&EAwJK@EqkoIRQEAr6j*w~>> z_ri>3_sSAphcsQ*Ou9OdK;wTd1Po_?e@!Q~M46siT zl}!)>?CaE^NebT4xTe}b)Uw2^HxVVFc!#9&J|se>qOo)+bb@ZrzC^F)j;yoYXeF%0 z&N`4_b}FJPAzVy;Xg);b-hid<`m@j!-s=L2mAi5}G5Q697h)GL+x^Zu5Z@!XSu13A z6osDz-nt-3RY}1c8s)=aLSL2xmY`6)yc+*X8WkUhPp&psKl)wA{5Gd#&?|C^8TEOH zm8|w#3tc2UC3UXS1&itG>gs&yT*T|RxXEYXU_}e_R$LsPEhq!%k;aqemx!94O$mDEK{ze-Du{q=TUCw7`j zRocXxpLb{PE0D+cYU#CiLukQ5=E=qaQXnC^&Wv1QbEjIW(i~HXE9K-GiX@ZZMYV=0 z`F>_D4P%E&Rr_n6?WJ*_kpjE5fBpOg)lSZHcQ~~Wji^bW?!nM_9Bga9+8+$(<(?9* zm9p-7rxlLhvy?OpEW}*lKWitgyV3Kwzs6ghFj%*MLYLTPTb86-#s}w z*rAFEZ>7`O^Cnw1<%bPtRQ5kXN9Y`lsFopYv8`IeZ<{G-Uj?X}hi69N>Je-j5WdQl znl+JV=P1NuWBK}Uik|6-v_){E-G&#7(H5n zs~SzvVoVSk{gCni^$h#?qa!{bDL%Nk#!Bq3CjApKo*Ju$AfAtqP;3!(P#TQscZW6= z^|yxaZ@vLo$(~3Z!%yksQ4sj>^!6M2{Mr$P>97uV1DkZar+Jr0N}z^XL16+;_I1`* zF?*%;DY)*UFP+(`DZUu!q?-z4>RnyZ-8bxHEjwH*@{sXZqD=%V7i7kXCB;6f1GgwX`yOjt6&t=AISmr=%!>3KCE0I$A-`SW_u#lZWwOiyr9blQsZOU67BB&QL8l|2vAS^x0XmXXj94@sQFmt~wSK+QQ8ft8zB z{%oSwD>-x8A?n?<6nu5#uac6L!W_%A-4{y@Q%K36N*5C7zLHxO>!%m7XI^-$>G>hZ z7y5Dx$g1V51Ufb=Kzv*x*GrC+MuxK%;jl$|gk6ir`x(IXk-568JRjLz_iRp*Pnuc> zZ)6_xvvb*qxAuVJTX8<6+{7_~8vHJ_Ac7oY3O6yB z#}$Ycx^+y{8@YxU!fu|Mlm%zQq=+>l1)uiYJ6S4EemfQe{yRFG>EbMfKb5u>RPwou zF^o$<&xW%>IY!V_*=>WNUjP!qEr%Wi-qA}r8M@;Z8DDhKQw0F<7L0nM*Cee^dxdQ7 zf%aGmbjKg?pMLMX@66Z%GWM~;k?6Ltv#(DKR`zX0(phgil#2O1t|hNKNa$6_0wphw z;$Ou18IsuS-C67zZn&tr8hkM2cF~)L2Amt62uiqNASPDeI)C3I0GeglDFl;J?h$T+ zNm(#SQfT~gaLq45T}Mstydj#IMt-E+eK$F^pcHbprqBgn^p&f4zdux% z9Q-n?$}}J4{G!;(Ied1qJ0jpWX0Zt7-8K8++My=i6#p}sAI$G-atV#HmhC8T z$8{-#m1veN+RrVt(K6L# z%|ajY^xzjzG7D+C?pQICiD}qJjORrG60RKK#)Pc4n@0*FL02BD7Xvwp&?uDzq4Ogx;;#^9i0LZ#rA; zP6o#mOu~K*9T(^SZo@fQMpGDGs#S%A0=s>9y3?lKzQ|M)U+yc15v=LpqJ0E+ZhZvv zilzrSaQ=~_ldLBkT6FiM;3fPM2}`NY5x1KDr(Qg&crm>LYKA#}fY_G$5fWrV-a)PF zAR@*wH800ri$~;OsV%%vJ}`&K*XCTatzv3O0tNsd(*-$6lznUbn<3knOd@qKDwOvl+LcNNV8{?_lRT?u>s zm`A?PsKl6Yy9@9>scWLQQwrS4j24A&amv4Qa#kb$C~r@gGG)Xol3wZ=hAVuD63>6ym(2LPwH7FRJM)H(j6hxSNh14JNI=@ z?W)-z>d4d$?G#a6FSl1KH&N59*1Hq9=P$dOz4H3LqiL&!w*CS{x*aW_N?l(bSPNdg zY$rgslvM=c0Y^_2c`m9pMYh7i$Z;?4XQ-25sHw|X`mce2u7ds64c}nM^O6S-+?Nizj@wH z`pVI8InQNVvz#Q{fprA&hqy`N^VG8QaSN#_<*<0C^ZBl#j=3hKAj$sF%Rur#;C(f^ zlvY8D8~|UkHv;W+M+G26Q`6*LOTmqlt#jOe^q{~3YRT?Mo)=MBV;GN0I&p3hA~FGp zLk8&6et)U@C+Jr4)_}WGK+hx20D72nNCcp&v{US7jAsUz=xIK#o$)|e>&L;?V||u_ z-v%B&0HM0eSGIa651z5h8P6hLiI@FqXd-wO5Fh|!Mb@5@4A zL-d9dQa6(&P7 zt)-&^(mfR|>7MGrIXS|&2&PO7rhrd8QC(qNBTGs+0o#F3D49B{|MP)#{`WL4f$4+- z)yJ)C7W5QLN7a6)eo1X_DS$7DKY^XfF2LkiTO(ZB?E+jjmL7Ip1vms<$?$wVxkfAW ztAj==U`GASa{=V<7DyJn@g?5JCIMgA%_N?E^6jKT77~#9T~LoN!De62zOAtW-iQ%& z_rV9?r$yQ=4gZ^ZrYt51G{JT18{RK9!QP<_ge?9IYa{o`qbGm<;QEs`C|CsCy5_t7 zM3&KeW?!kkq~TFbd<|qio(aZpfa>(>$A@~yoDR>QdpXbwE!b9ZFt~J7S1uIzXzYui z$$Y(huP!`;qhk(v8T|sb5@VtSDx6ad7x6~^$NO#Xy_EU+j;;dBMFna-!D;;NO0yeK zefnI+7PElE$luwE)lDP07_cnc;oRepjA+jg?Ta^y0muR*m?FeH!Zp zOSI)RV&icb;8~BeqSjLojoSb>9gx-K&gsg_#_x@EVto_gel)VI?CC*mh#1aU27*H* z=7$PSDchXsXDo~4e0TtF=gR|@s~|pvDzPBN5(_Dv#zwLE&j9ehe-chbQQmy&QNQC2 zUpHHtYrD&Pp_g?cxXrBOF?0t(eE;|hk}fr4*aflFf3;RnOg~6#5o#p4QLqQCR_6V9 zlqz6fdJ?|{h)Z_|K}_orcN?clEE!U){bza7k9ZFKEj0Pxs*IMbh1hSR*Ds~6dmCku1iV<1d3P|>60`LT5{=c4aE>(fw-Wd=i7(>Yz zh#US@8xLCapN^)PCDNG;YR>KjZHb3+ZUpm|_11hHc*5P?KFr;C!VS(ZU!UFiPbzJ} zZql_b1B$XwRKb1yU555`Z9j<}H?Ow53by@iApC!B9Q&qg&;;^eW$ZBcUg2%;wf;!WH@0?+HjK9)PoiIj~w=YG$Df zts#9@8eW+4=!Zqe*VFoG&;P_>e8z;V8oxgD(M?e5KxaR2${wPI^}T33nEFJXQo?<1 zKM9J8PQo1gGl!4hky;ligxVr6+z7Op2y|RM{?hi?3?1^csO?_^XzO6&el#?2;c_07 zF+JJ{v9k9%oUToM59QYt-Z728P+=*nuZucL;X4jIgE;D>I)%CEnRr>6n;G8dOJCUs zT}In~6PEi&jQ7 zAZUN%{{WIJVEyhfyBhuw6NMBP9Lb5Aj~h=>fUm?Y)IOH0Io|vACjHcOZTDC1Y*}Qh-Ug~ zUmM80uE+bU@13GT4hdh+^GFieuR1yK&WX}du(~&j;R{RFWiOQojlA`CRqi#iV0e34 zxVPv;M`njF_a#D>X(hboIt;!`46~c}phTc4aLJPZwHLC?tqzP%hjYY{YX0W=5={B5 zxj`3usQiMOt?ykHq2^mv)^~;H{ls*D88Uf0bfVT>Pa)e}FL1~;K0h#pUYe7(5t`)y z3Hk%Os$GG^KMf}SF|_fXex85N|90YmDG)Jyz2R#Zq|$&6i%cjTo)*w-O`d@83mmyp z1@>3aPmk30Qu3}mPut$+DG0vX#Fv8aMB*-o5OC}6uSSbW|Lusd{=tUQ*G7D7%-C-< zeJ&wll~BQx%tI%ZLgGI;?LhLdZ+XA6_NAZ{V9u1(Fd|kM= zZTrp~)MP1vtTS>27uC0`&%(&`RUst zn8V|Cj;u5I&XyVvS$l27th09#IWXA?@8QV0Wc@sV{H7}H=*1q>E7(2djDwp&lTaoj zh#dZRo|{*DdNlSu4++wX^WYcr`rO`{tYbGG^_8PY61X&rq4|!2(gY=EyDLAQ zI-G2n>l^OgMaCzoC>57Bc~&+TIt7Xj1m9D@vika%muCxclkuK7)$ zn<&of0I}Zq#?k-xpR2A$d+v9zq@F0ARtlHG`v8}Rbg30f7rmE2^y6xnPy2F5o&ZZi zvhcm5CM}TZDU&bh)bwtf3eTx^>ph1oIt^ufVWT%3Kwm!{2}SkD-K3)@40J^0yJ)4V zxeRh$*z&wB&vVzl0Q#(-@0s6eqtS6&PumeZbI*L7`aIw5jIuE!QWk3K8+P~G`N`V9 zo*2@YU=}Auysf#z`;|HSD`)=KKqb6S0;+m^$E-2AW!n2O_GF`Hk@L}KX*;#3v_Et{ z2*Soltf3uic;cf>kRJBy)#*r{NYBcBkYQ=PVg9$mB%@U>Jlw067Qu1>w$?Y}h4jW{Aw)pU$A3`DoB|jTI4ztefF;?i-=x8ZMf5}k?>-1C> z5b%#TIOnawi;S*CG8sK(*5`_=E8iQR@!*%CRjd1`v>h@zoNWErOdYDXen|Ql4O2fB zjhKiwZMzas*=NybuJ2=LdUx4{F+Ry&iS~P;)d!<7{w@9s{<((hS7m7?_bp1MxhYp7 z2M1C&uk#K%X{CKy?W^(?1mVriiyRhS9 z;rs5|K4;l2d=??|Qtaqay7E@cA}~1~drxZ*;anZG(U?qqT%VJekGAVJTvbF%)zUPJ zAt*Q=-qCPCV(F2K5ju(u8tCO}Eac(J`BXVGV@Cro`!JkEX-YdIgR%SQl7^sohY=xf zu5Pur<Mv+&$6M8;_s~oNa{)nMYCI%abdvfWx>$XC)Qt-(&|W&4X48Y`k`RHLFg^A> z${sUP9;&-=tXm#s95P$g95bg($y&_cf(aXIxbI{NrwmQ7BT~HVb9)A;T{&L0A+x`C z-o4ndvi))cfn`lHTmwlN07Rn|LP|k)(kbR4QV zTw?sWmPN(^&Wrhcq|7QO17WL#LJL->lct%GF1m%RFG710LTle|RuT?lH3she6Gm%) zUuYF>xCtY!9N4z>$hk?Xt8#nr-6c?o-}uU$%#$%8tu z!jwCoS-oDCet#{VH(~A&vb%i_T{FZwk1k78Yik75Vk-b&S@~yF4zd)BYn>zLPdR zc+IH0(M(4a|0>j4ZnNV32TqE`EQ@#&Udx=`O?5e$i_=AS6iOTrSx0McTvLu(H{={P zp;PrW&{NVbGVPY`$Irv?C-O2E64A-R*1&yWW>BpeG%u)!ZxSQHu#J^5Ei16&mi&j1(IU63k z#fca%n-b3V#AsZWa!$A1Va8)g4S{FI`Wa$*$=qJ}Zdh6REqvQtupu^nbk(=_QG#K^ z#V}!9oiPhzaAJ)4_W6qmHOMzFq&4Ev^#h@ma=ynZ&-5(`2*L8CPBa_J*5djnsK)g# zu&QZ=uF*_CvI=z%Bkmk-D~M6?k<%>-?oRhR3&&b+S6O%l84h(%tDqN+VCeO4$3m@* zZ=C0++$C+K^G_DKeM+^$=V&i|aHCFRUaHD(nA5Ze3=5Dc%PS{ZROQ7=fDyd)_mz8A?HjlhipSRfNgK2K6*e#JOJhYR?U$vFEI@#lap^v)cWvm)#3rH;YpSB2_3(i z7l8ZH0=&Q2Rj6z=!~tIqn#gt4L-Qr1K)v<`v0c90gKC>LuKsDuT_W_W0%AX2bnsU+}Z}_AeHNv9vBWTne+b zMPZCD1AS>~=gal00_yM-_1f!}jWR+)F0dmdV4v+V$QM9JX!J@$!kNbTELD7dv>>yA zTLTlYHQ`+Uq9S#VdZXg|iS6I-Nq<8<$ABc;(bQk-k07CBrW9%j#U;>xEQZEU6`#!Y z8mG#Dl?1YDL-`S&H!U?s6l0#lADS(3i3td+^b+;u27f&PAn=Z$%qAn_D5rPE-_myA z_Pn$eaeAQU@xQtlGAB_7-PXiYU46>>^P&zl;f=TFLr!I4PyTJw^FaBJj;s5HAm>%WwM4DVocLe(Cq>4nA+tjQb2?uZD z>lRDU-LY4Jn$jXwyL&?R7VeIJLl(BfQb#R>QyQDuyQg$#W#qS*Q1Vf8OEk$g5JZpP zSMbt|i!G{0H1&8!Jj&TzHeIukAW>LRm=FeKmUg}*Z8@tp%`e9;*DiZ8iQJj4*uh{_ z*uG;@dBKFNWuGJf9Jb^fc+N;_P0*Y964%Pz4SViU(F0wdIo{Uw+o^k|$0fdptTaD2 z2H`VpQF-(=h@SB^ct5uQ1Et_^%hHy_e{BJ}kPG<7AdUfKIg|z0M0})PtM1#S*5lB~ z0~pNp*%=j}QcF(LMR->C;n8<5Si5LB5jRt5IOm27J(4LNie@FXAhV_!cQowI|KF-W z?o;LY_%O8%LY>zEPJI4d!#RT{raOjl_eGrY86WHa?=HP6bm>nrJ_l>aZ`{={Q&e2M zM(C5rPxJoi8F4t|TW0dNG69B^8q$bgJ0xW%Ox-gVd%+eD;_m-J(vZSPs{OmLkpFum zXrut$6BfNqez+gD-#K?PmWekf23o2X;O+-yI z4DHH=sW|?jk}mx52}e=7ztM@NDT4xaL?z#K?=G;@ftinmV`PWlGt@n?eFc?Kq({|w zuqLfWK^7OHnUMV4Tyg`UE|gRUHGZ&$JPAx6iBD&ZGmGtVeGOL;Zl@LY)N7V7t&KrV z&OX#IuEWpj&W3WVq431!w?r50o`r?rH^5nmzJzR~`Cz5s_?|+LS;!RZNsqMA$A|Mg zldugPBBi&OnQO4L^I?1cBpDyQ!+<{|CEREZCO${mzJn`d!l!x=Ubg=q%{MK#H0kjA$+e zbJqH?^a|$ZrLqJ;$s&tl0_QbwIb`p2*ljR81*Xjq1hZ&6$#Bqpfs-8m^+oc(yX?EBu15#Lm?f!MF#B4Bg=AezeJn~ogUQW*G#Z)FKRI`sIq`fq! z5l73-6Ke5puq(+{QCNOVJ@m7R=lC}?Bw?^MtoL$X%}hm##+MZbpN*cS9}8BkoFo?G z+6qFnP$~OUWNK&LyWqBH6KJuW_H$MwMnVg90iAu(>2M77DlLn3FwLA(Fy!AswSlRf z$Ty1-p0y~MyPCXr6D9HXt!bYq=QH`~ndaKbhHzd-0e)~!W=uIW;DMH(p-WxSwF2`< zi>!?`cs4A{yfZWxMW`hYPE9i(F0O^=j>}uZz8DYae%QzrGKa_8>Buw(KhB6Str+h|xUn)|k*|ICug}@@!@Zogvl?a>`wRo{-){R zCK`o{s!XCeW$JQs#`hLRUiMUKOia_<-pi;936Z}T%bC*-IYaMcO{_mPi!Q)79JNV- zMGGaC)U=a(#P`iDB+~MC;nM3E`88BLw(BBQb-3IWWBR%#im~OJMnw8guuK?k_N}1V6=fiP@WBYHw9Y&&)Xs z+)72e#|c>W7fe}-C+D=?@I`MSMa?hAJ+a{WglEfI-=|n7KSw6om!hzwhZ+Zl=&@Y{ zqvdeCqBNoOP80u+vbo;R99km3TRXiZDQSV0_|S*^duQ%!S69d00A#+IT~>T7+S!fi z;vn4Qv6$|fT(oGvD2_G9^8NTywtV3>Ok#GuES;|c@8B;WCpzN>)Vu}~$F#kQyzE2! z&PmNL6MM7*-X8c#7Z#Z(Tv_(MsAAUzZdD3{NxS3m%ZJkQrTB;Vz46z)9$RpC^JX_r zGNlJE3{&rE>4zi?`n{cO^`879L)k9ltSgi4_h4=hLSk-uA;?-vTfEdgocBp)>xZeJ zunT)B=R(s0%gF7diM5j z$IAW?8{{MGbrB`8$GMBs5`kj)rhr#@3-h#~Uk0X_|If7l{rqmVAZcTSj#&3mFqPh^ zFaQ7VKOZTl9bZ1~v=D5U`2VN+=MT|cH_i(j+O~J)`ZunT1sU?^8f)DdS~k3vw*TyG zz3=1U(`-AhMDsrfo}qqRWVfYz<^&5hdEwnFi`Q7#=Djo&Uw?G*msc~N<=ekkwXOe+ zBwV%C#RizGGyi@29CzvS_W4%FyDmSTCRhA1YE8KDal++FjeC0JiR99;0mA|E7_8*G1O^@5wojP{eL{&~Wuf9}bxxJ`K@AAy7 zxWid<l9AN2EzSn2zab4SIzR7!|l-}(M zzg%d)_twWhzQ=(nu<-inkg7YElJA+w?FhH-e*HeZq9@7AWanj| zxph@n|L6)Xf4<)EzW8#GhaYW?Sbwem_sh`F+g;|&+kdPk9%|Pk#bdd3y<5NimbBBZ zKDG2-!?u4}u?z;Q(#^Gc9v1C>oVdH<-}CQld9AzkKj&`ZdnKuAmiIL|x$fPKKWpWs zKi6(7Tn(g(k3Y-*dt=7??%vzCk1593)!qFx{bq915yds{`75{0XJJUVC~+S=;a3q4 z^v9O3^L6>9UU;Q?={l~wnYym{_}4h|=gTv-tp0vKqi^m|U)pvw?(L>?A0o0|R|);x z9b~;ied2$;t^GjG`Jmk^)hEiQ?zQrooBVX`fA1$S>>jzkFX(whmfloteko_~P#zU49~OrO?B>Q_jF2Zh_Mm|ptNqKiS2aw& zRr28Y(c@kc86i_=-PI^!UN9JaXXciF^irHR1fcg5yOJ=2+=*ZvXy_ea*Q%w87g-3Puh zce;xpdHg`;pR2nXs$_g0Zn;*s_%u4`pBg_o+ls*<{?WhcFGrcr^GfgA!vi$J!D5g2 z(+hTUl7H7X6yGT6hpw&r_51*+p9!4y^~~9I{Je?p;yViND^)d2ck`59+hzA=Pe^z* zC=zbGd#<;D>pSnQ*S+6XU0no@qQKqN;ECseMj*|;^NKXoAYfwy%qkG#`*YyOwS9-R z_0fQRSe@^>mkcqyCHzWDr!Bbh=G*nk2jxHay*}J$w8U{`s>W6pu&~=oV~wpmAg0h1 zP<(*HOlV5fp_ksdMg8*w-GFV4=AhF7S_N)b`5|rz29^K^X6`_COmbFfZA2v+__^^D za9)@1&%d&jpgE$3e?a#aOaP`dFqm^>8MFOm6Hz^7X$*%%9nx6Z7nB~5B?-zFpr8Uq zx|gmqkO^|Of!E5#S0txIwFNaANB!CLZrkf!b@jeGw!c1e3O%ms|DV59pF8K=uaw5` ZAM1rgoUFy|qmF_c;OXk;vd$@?2>`qd9YX*B literal 180287 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 Date: Wed, 27 Nov 2024 20:12:40 +0100 Subject: [PATCH 28/36] rerouted source to bulk connection --- .../regulated_cascoded_current_mirror.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py index 39b0c595e..689567be6 100644 --- a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py +++ b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py @@ -199,8 +199,8 @@ def CurrentMirror( raise ValueError("type must be either nfet or pfet") #Connecting the source of the fets to the bulk ??? - src2bulk=CurrentMirror << straight_route(pdk, source_short.ports["con_N"],CurrentMirror.ports["currm_welltie_E_top_met_W"]) - + src2bulk=CurrentMirror << straight_route(pdk, source_short.ports["con_N"],CurrentMirror.ports["currm_welltie_N_top_met_N"], glayer2="met2") + CurrentMirror.add_ports(gate_short.get_ports_list(), prefix="gateshortports") CurrentMirror.add_ports(src2bulk.get_ports_list(), prefix="purposegndports") From 35f0bc1df776311ec84215fa54e131f0686751c0 Mon Sep 17 00:00:00 2001 From: Saptarshi Ghosh Date: Wed, 27 Nov 2024 21:12:15 +0100 Subject: [PATCH 29/36] Placed and routed Vref and Vcopy Pins --- .../regulated_cascoded_current_mirror.py | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py index 689567be6..748cf05ff 100644 --- a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py +++ b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py @@ -204,8 +204,27 @@ def CurrentMirror( CurrentMirror.add_ports(gate_short.get_ports_list(), prefix="gateshortports") CurrentMirror.add_ports(src2bulk.get_ports_list(), prefix="purposegndports") - # CurrentMirror.add_ports(Aport.get_ports_list(), prefix="Refport") - # CurrentMirror.add_ports(Bport.get_ports_list(), prefix="Copyport") + # place vref pin + vrefpin = CurrentMirror << rectangle(size=(0.5,0.5),layer=pdk.get_glayer("met3"),centered=True) + vrefpin.movex(evaluate_bbox(vrefpin)[0]+(CM_size[2]*maxmet_sep)) + vrefpin.movey(CurrentMirror.ymax) + # route vref to drain of A + CurrentMirror << smart_route(pdk, CurrentMirror.ports["currm_A_0_drain_W"], vrefpin.ports["e4"],viaoffset=False) + + + # place vcopy pin + vcopypin = CurrentMirror << rectangle(size=(0.5,0.5),layer=pdk.get_glayer("met3"),centered=True) + vcopypin.movex(evaluate_bbox(vcopypin)[0]-2*maxmet_sep) + vcopypin.movey(CurrentMirror.ymax) + # route vcopy to drain of B + CurrentMirror << smart_route(pdk, CurrentMirror.ports["currm_B_0_drain_E"], vcopypin.ports["e4"],viaoffset=False) + + + CurrentMirror.add_ports(gate_short.get_ports_list(), prefix="gateshortports") + CurrentMirror.add_ports(src2bulk.get_ports_list(), prefix="purposegndports") + + CurrentMirror.add_ports(vrefpin.get_ports_list(), prefix="Refport") + CurrentMirror.add_ports(vcopypin.get_ports_list(), prefix="Copyport") CurrentMirror.info["netlist"] = generate_current_mirror_netlist( From 539b6d3a02c65b5f4477c759528979ecb38d227c Mon Sep 17 00:00:00 2001 From: Saptarshi Ghosh Date: Wed, 27 Nov 2024 21:13:31 +0100 Subject: [PATCH 30/36] placed labels on the vref and vcopy pins --- .../regulated_cascoded_current_mirror.py | 68 +++++++------------ 1 file changed, 25 insertions(+), 43 deletions(-) diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py index 748cf05ff..5ca2b1e10 100644 --- a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py +++ b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py @@ -262,31 +262,13 @@ def sky130_add_current_mirror_labels( vref_label = rectangle(layer=met2_pin, size=(0.5, 0.5), centered=True).copy() vref_label.add_label(text="VREF", layer=met2_label) - move_info.append((vref_label, CMS.ports["currm_A_drain_W"], None)) # Drain of A - #LVS will work if following line is uncommented - #move_info.append((vref_label, CMS.ports["gateshortportscon_N"], None)) # Gate of A & B + move_info.append((vref_label, CMS.ports["Refporte2"], None)) # Drain of A + move_info.append((vref_label, CMS.ports["gateshortportscon_N"], None)) # Gate of A & B # VCOPY label (for drain of transistor B) vcopy_label = rectangle(layer=met2_pin, size=(0.5, 0.5), centered=True).copy() vcopy_label.add_label(text="VCOPY", layer=met2_label) - move_info.append((vcopy_label, CMS.ports["currm_B_drain_W"], None)) # Drain of B - - ## Move Labels in meta3 after via creation - - # # VREF label (for both gate and drain of transistor A, and dummy drains) - # vref_label = rectangle(layer=met3_pin, size=(0.5, 0.5), centered=True).copy() - # vref_label.add_label(text="VREF", layer=met3_label) - - # move_info.append((vref_label, CMS.ports["Refporte2"], None)) # Drain of A - # #move_info.append((vref_label, CMS.ports["gateshortportscon_N"], None)) # Gate of A & B - - # # VCOPY label (for drain of transistor B) - # vcopy_label = rectangle(layer=met3_pin, size=(0.5, 0.5), centered=True).copy() - # vcopy_label.add_label(text="VCOPY", layer=met3_label) - # move_info.append((vcopy_label, CMS.ports["Copyporte2"], None)) # Drain of B - - - + move_info.append((vcopy_label, CMS.ports["Copyporte2"], None)) # Drain of B # VSS/VDD label (for sources/bulk connection) @@ -315,28 +297,28 @@ def sky130_add_current_mirror_labels( return CMS.flatten() -# comp = CurrentMirror(sky130, (3,0.5, 2), type='nfet', with_substrate_tap=False, with_tie=True) -# comp = sky130_add_current_mirror_labels(comp, transistor_type='nfet', pdk=sky130) -# comp.name = "CM" -# comp.write_gds("GDS/CM.gds") -# comp.show() - -# # for absc in comp.ports.keys(): -# # if len(absc.split("_")) <=6: -# # print(absc) - -# print("\n...Generating Netlist...") -# print(comp.info["netlist"].generate_netlist()) -# # %% -# # delete_files_in_directory("DRC") -# # print("\n...Running DRC...") -# # drc_result = sky130.drc_magic(comp, "CM",output_file="DRC/") -# # print(drc_result) -# # %% -# delete_files_in_directory("LVS") -# print("\n...Running LVS...") -# netgen_lvs_result = sky130.lvs_netgen(comp, "CM",output_file_path="LVS/") -# print(netgen_lvs_result) +comp = CurrentMirror(sky130, (3,0.5, 2), type='nfet', with_substrate_tap=False, with_tie=True) +comp = sky130_add_current_mirror_labels(comp, transistor_type='nfet', pdk=sky130) +comp.name = "CM" +comp.write_gds("GDS/CM.gds") +comp.show() + +# for absc in comp.ports.keys(): +# if len(absc.split("_")) <=6: +# print(absc) + +print("\n...Generating Netlist...") +print(comp.info["netlist"].generate_netlist()) +# %% +# delete_files_in_directory("DRC") +# print("\n...Running DRC...") +# drc_result = sky130.drc_magic(comp, "CM",output_file="DRC/") +# print(drc_result) +# %% +delete_files_in_directory("LVS") +print("\n...Running LVS...") +netgen_lvs_result = sky130.lvs_netgen(comp, "CM",output_file_path="LVS/") +print(netgen_lvs_result) ## Will be used in future for simulation From 46d138eb51ca802829c2a915808d8bdb4f3a4164 Mon Sep 17 00:00:00 2001 From: Saptarshi Ghosh Date: Wed, 27 Nov 2024 21:22:19 +0100 Subject: [PATCH 31/36] Just housecleanning --- .../regulated_cascoded_current_mirror.py | 32 ------------------- 1 file changed, 32 deletions(-) diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py index 5ca2b1e10..ba267d359 100644 --- a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py +++ b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py @@ -1,7 +1,6 @@ import sys from os import path, rename, environ, listdir, remove -from openfasoc.generators.glayout.glayout.flow import pdk environ['OPENBLAS_NUM_THREADS'] = '1' from pathlib import Path # path to glayout @@ -21,7 +20,6 @@ from glayout.flow.placement.two_transistor_interdigitized import two_nfet_interdigitized, two_pfet_interdigitized from glayout.flow.pdk.util.comp_utils import evaluate_bbox, prec_center, prec_array, movey, align_comp_to_port, prec_ref_center -prec_ref_center from glayout.flow.pdk.util.port_utils import add_ports_perimeter @@ -143,34 +141,6 @@ def CurrentMirror( CurrentMirror << L_route(pdk,CurrentMirror.ports["currm_A_drain_W"],gate_short.ports["con_S"],viaoffset=False, fullbottom=False) source_short = CurrentMirror << c_route(pdk,CurrentMirror.ports["currm_A_source_E"],CurrentMirror.ports["currm_B_source_E"], viaoffset=False) - - ###Metal 2 to Meta 3 via for connecting the labels to the drains - # viam2m3 = via_stack(pdk,"met2","met3",centered=True) - # metal_min_dim = max(pdk.get_grule("met2")["min_width"],pdk.get_grule("met3")["min_width"]) - # metal_space = max(pdk.get_grule("met2")["min_separation"],pdk.get_grule("met3")["min_separation"],metal_min_dim) - - # # place vias at the drains - # drain_br_via = CurrentMirror << viam2m3 - # drain_br_via.move(CurrentMirror.ports["currm_A_drain_N"].center).movey(viam2m3.ymin) - # drain_br_viatm = CurrentMirror << viam2m3 - # drain_br_viatm.move(CurrentMirror.ports["currm_A_drain_N"].center).movey(viam2m3.ymin) - - # drain_bl_via = CurrentMirror << viam2m3 - # drain_bl_via.move(CurrentMirror.ports["currm_B_drain_N"].center).movey(viam2m3.ymin) - # drain_bl_viatm = CurrentMirror << viam2m3 - # drain_bl_viatm.move(CurrentMirror.ports["currm_B_drain_N"].center).movey(-1.5 * evaluate_bbox(viam2m3)[1] - metal_space) - - # # # create route to drain via - # Awidth_drain_route = CurrentMirror.ports["currm_A_drain_N"].width - # Abottom_extension = viam2m3.ymax + Awidth_drain_route/2 + 2*metal_space - # drain_br_viatm.movey(0-Abottom_extension - metal_space - Awidth_drain_route/2 - viam2m3.ymax) - # Aport=CurrentMirror << route_quad(drain_br_viatm.ports["top_met_N"], drain_br_via.ports["top_met_S"],layer=pdk.get_glayer("met3")) - - # Bwidth_drain_route = CurrentMirror.ports["currm_B_drain_N"].width - # bottom_extension = viam2m3.ymax + Bwidth_drain_route/2 + 2*metal_space - # drain_bl_viatm.movey(0-bottom_extension - metal_space - Bwidth_drain_route/2 - viam2m3.ymax) - # Bport=CurrentMirror << route_quad(drain_bl_viatm.ports["top_met_N"], drain_bl_via.ports["top_met_S"],layer=pdk.get_glayer("met3")) - # Connecting dummies to the welltie @@ -201,8 +171,6 @@ def CurrentMirror( #Connecting the source of the fets to the bulk ??? src2bulk=CurrentMirror << straight_route(pdk, source_short.ports["con_N"],CurrentMirror.ports["currm_welltie_N_top_met_N"], glayer2="met2") - CurrentMirror.add_ports(gate_short.get_ports_list(), prefix="gateshortports") - CurrentMirror.add_ports(src2bulk.get_ports_list(), prefix="purposegndports") # place vref pin vrefpin = CurrentMirror << rectangle(size=(0.5,0.5),layer=pdk.get_glayer("met3"),centered=True) From 4229604334403bc19cd8b952177479c12e26d21e Mon Sep 17 00:00:00 2001 From: Saptarshi Ghosh Date: Wed, 27 Nov 2024 21:23:46 +0100 Subject: [PATCH 32/36] LVS cleared GDS uploaded --- .../GDS/CM.gds | Bin 61672 -> 62678 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/GDS/CM.gds b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/GDS/CM.gds index 84a25755d63edd8c00e4251e67ef659e47d5ae3c..6673ee75e1535e06f81f9760f05bf4bed5482e0e 100644 GIT binary patch delta 1141 zcmb7@Pbh(vzsGxVQ4%|YMXv}EDbGYgLqry8Ze(Qe|D2RHNW~ove$pQTj2b>(z>`OMcFPM|HAZt)SEuB%)LJ=1i&qBHIvr zEwV0hT2II`e}ILi%$aMv#8~Rg6shenXeP3^C^Sm;R)zYh-ziYHhq{c#WAF@PChHk3 zUvdSJOduJzSO8xzX0jfa%kurL(z4x#O#*h3*I=Q6tSA0&i%Y2;iFHKvOTjcop0|bp zCx5xgyIxQGBJN|;yc3h!%5q@9I8WSI8JVob6MT0fn5<_psoPIiNUfn%vWP%$)yVpq zwiWjH{#I$2KENaiQ^^~IuYs&5|7(hN{J!OSdvZJ4HqA|;lqK$1ChO?je5qU8e{xRB z_oYZtf!^5m+izkN`?{4+H^Ppw_kZfDuxwE-Xg{u$a+kc z?kwSeIEc KH`#=rRr&%iM}G7G delta 502 zcma)(%}T>S6opS_LRt&aXjisH6t$cB^9U|#1Xl(Nf=eGkN^t2b2=f935x0WRqT))r zQqfXGw`Dvt(<`pTf#I8coSa-H_pkb8sBgBO&s7~z@7!mAE`Cvb9q~L6SAir|$dSw{ zWZ1~GwUZs@`%^xUmwXnA@BjJ!DxxwJM3151hvG|3oB>6W9L*?A#gmUkO% zomy+hjHJwQcD*eW?>KGc@hP-mCA0>LcQhB{)*26Y41Th!!{EM9yrU^bKKQ}F90S~X zQ^;G}um8O>B`Do1rOIqLObvah8D-qtDSxk8Pydr%yE-3mIo_SwUH LFWi2Ge=x>3p8uKe From 57accdc00bcd0b4fe53e3bc32170c7b2955b62a3 Mon Sep 17 00:00:00 2001 From: Saptarshi Ghosh Date: Thu, 12 Dec 2024 09:25:13 +0000 Subject: [PATCH 33/36] Cosmetic updates --- .../GDS/CM.gds | Bin 62678 -> 61590 bytes .../regulated_cascoded_current_mirror.py | 112 ++++++++++++++---- 2 files changed, 86 insertions(+), 26 deletions(-) diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/GDS/CM.gds b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/GDS/CM.gds index 6673ee75e1535e06f81f9760f05bf4bed5482e0e..c38aaaa7254ae0ee368c1c87dcd9575acfa0a9d2 100644 GIT binary patch literal 61590 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 literal 62678 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 yHF{}j=`Z3n#%maT-Ol&jxa# Netlist: +# if m1_length is None: +# m1_length = pdk.get_grule('poly')['min_length'] +# if m1_width is None: +# m1_width = pdk.get_grule('poly')['min_width'] +# m2_length = m2_length or pdk.get_grule('poly')['min_length'] +# m2_width = m2_width or pdk.get_grule('poly')['min_width'] + +# mtop = multipliers if subckt_only else 1 +# model = pdk.models[n_or_p_fet] +# m1_multipliers = m1_multipliers or 1 +# m2_multipliers = m2_multipliers or 1 +# dmtop = m1_fingers*m1_multipliers +# num_dummies = 4 + + def generate_current_mirror_netlist( pdk: MappedPDK, instance_name: str, @@ -106,41 +135,72 @@ def generate_current_mirror_netlist( }, ) +# @validate_arguments def CurrentMirror( - pdk: MappedPDK, - CM_size: tuple[float, float, int], # (width, length, multipliers) - type: Optional[str] = 'nfet', - rmult: Optional[int] =1, - with_substrate_tap: Optional[bool] = False, - with_tie: Optional[bool] = True, - with_dummy: Optional[bool] = True, - tie_layers: tuple[str,str]=("met2","met1"), + pdk: MappedPDK, + Width: float = 3, + Length: Optional[float] = None, + num_cols: int = 2, + fingers: int = 1, + type: Optional[str] = 'nfet', + with_substrate_tap: Optional[bool] = False, + with_tie: Optional[bool] = True, + with_dummy: Optional[bool] = True, + tie_layers: tuple[str,str]=("met2","met1"), + **kwargs ) -> Component: - """Create a current mirror """ + """An instantiable current mirror that returns a Component object. + The current mirror could be a two transistor interdigitized structure with a shorted source and gate. + It can be instantiated with either nmos or pmos devices. It can also be instantiated with a dummy device, a substrate tap, and a tie layer, and is centered at the origin. + Transistor A acts as the reference and Transistor B acts as the mirror fet + This current mirror is used to generate a exact copy of the reference current. + [TODO] It will be updated with multi-leg or stackked length parametrization in future. + [TODO] There will also be a Regulated Cascoded block added to it. + + Args: + pdk (MappedPDK): the process design kit to use + Width (float): width of the interdigitized fets (same for both reference and mirror) + Length (float): length of the interdigitized fets (same for both reference and mirror) + As Default, Set to None to use the minimum length of the technology + numcols (int): number of columns of the interdigitized fets + fingers: Number of fingers of interdigitized fets (same for both reference and mirror) + device (str): nfet or pfet (can only interdigitize one at a time with this option) + with_dummy (bool): True places dummies on either side of the interdigitized fets + with_substrate_tap (bool): boolean to decide whether to place a substrate tapring + with_tie (bool): boolean to decide whether to place a tapring for tielayer + tie_layers (tuple[str,str], optional): the layers to use for the tie. Defaults to ("met2","met1"). + **kwargs: The keyword arguments are passed to the two_nfet_interdigitized or two_pfet_interdigitized functions and need to be valid arguments that can be accepted by the multiplier + Returns: + Component: a current mirror component object + """ + + # Create the current mirror component CurrentMirror = Component(name="CurrentMirror") + # Create the interdigitized fets if type.lower() =="pfet" or type.lower() =="pmos": - currm= two_pfet_interdigitized(pdk,numcols=CM_size[2],width=CM_size[0],length=CM_size[1],dummy=with_dummy, - rmult=rmult,with_substrate_tap=with_substrate_tap,with_tie=with_tie,tie_layers=tie_layers) + currm= two_pfet_interdigitized(pdk,numcols=num_cols,width=Width,length=Length,fingers=fingers, + dummy=with_dummy,with_substrate_tap=with_substrate_tap,with_tie=with_tie,tie_layers=tie_layers) elif type.lower() =="nfet" or type.lower() =="nmos": - currm= two_nfet_interdigitized(pdk,numcols=CM_size[2],width=CM_size[0],length=CM_size[1],dummy=with_dummy, - rmult=rmult,with_substrate_tap=with_substrate_tap,with_tie=with_tie,tie_layers=tie_layers) + currm= two_nfet_interdigitized(pdk,numcols=num_cols,width=Width,length=Length,fingers=fingers,dummy=with_dummy, + with_substrate_tap=with_substrate_tap,with_tie=with_tie,tie_layers=tie_layers) else: raise ValueError("type must be either nfet or pfet") + # Add the interdigitized fets to the current mirror top component currm_ref = prec_ref_center(currm) CurrentMirror.add(currm_ref) CurrentMirror.add_ports(currm_ref.get_ports_list(),prefix="currm_") - - + maxmet_sep = pdk.util_max_metal_seperation() - gate_short = CurrentMirror << c_route(pdk,CurrentMirror.ports["currm_A_gate_W"],CurrentMirror.ports["currm_B_gate_W"],extension=3*maxmet_sep, viaoffset=False) + # Connecting the source and gate of the fets + gate_short = CurrentMirror << c_route(pdk,CurrentMirror.ports["currm_A_gate_W"],CurrentMirror.ports["currm_B_gate_W"],extension=3*maxmet_sep) - CurrentMirror << L_route(pdk,CurrentMirror.ports["currm_A_drain_W"],gate_short.ports["con_S"],viaoffset=False, fullbottom=False) + CurrentMirror << L_route(pdk,CurrentMirror.ports["currm_A_drain_W"],gate_short.ports["con_S"],fullbottom=True) - source_short = CurrentMirror << c_route(pdk,CurrentMirror.ports["currm_A_source_E"],CurrentMirror.ports["currm_B_source_E"], viaoffset=False) + source_short = CurrentMirror << c_route(pdk,CurrentMirror.ports["currm_A_source_E"],CurrentMirror.ports["currm_B_source_E"],fullbottom=True) # Connecting dummies to the welltie @@ -149,7 +209,7 @@ def CurrentMirror( except KeyError: pass try: - end_col = CM_size[2] - 1 + end_col = num_cols - 1 port1 = f'B_{end_col}_dummy_R_gdscon_top_met_E' CurrentMirror << straight_route(pdk, CurrentMirror.ports[port1], CurrentMirror.ports["welltie_E_top_met_E"], glayer2="met1") except KeyError: @@ -174,7 +234,7 @@ def CurrentMirror( # place vref pin vrefpin = CurrentMirror << rectangle(size=(0.5,0.5),layer=pdk.get_glayer("met3"),centered=True) - vrefpin.movex(evaluate_bbox(vrefpin)[0]+(CM_size[2]*maxmet_sep)) + vrefpin.movex(evaluate_bbox(vrefpin)[0]+(num_cols*maxmet_sep)) vrefpin.movey(CurrentMirror.ymax) # route vref to drain of A CurrentMirror << smart_route(pdk, CurrentMirror.ports["currm_A_0_drain_W"], vrefpin.ports["e4"],viaoffset=False) @@ -198,7 +258,7 @@ def CurrentMirror( CurrentMirror.info["netlist"] = generate_current_mirror_netlist( pdk=pdk, instance_name=CurrentMirror.name, - CM_size=CM_size, # (width, length, multipliers) + CM_size= (Width, Length, num_cols), # (width, length, multipliers) transistor_type=type, drain_net_A="VREF", # Input drain connected to VREF drain_net_B="VCOPY", # Output drain connected to VCOPY @@ -265,7 +325,7 @@ def sky130_add_current_mirror_labels( return CMS.flatten() -comp = CurrentMirror(sky130, (3,0.5, 2), type='nfet', with_substrate_tap=False, with_tie=True) +comp = CurrentMirror(sky130, type='nfet', with_substrate_tap=False, with_tie=True) comp = sky130_add_current_mirror_labels(comp, transistor_type='nfet', pdk=sky130) comp.name = "CM" comp.write_gds("GDS/CM.gds") @@ -283,10 +343,10 @@ def sky130_add_current_mirror_labels( # drc_result = sky130.drc_magic(comp, "CM",output_file="DRC/") # print(drc_result) # %% -delete_files_in_directory("LVS") -print("\n...Running LVS...") -netgen_lvs_result = sky130.lvs_netgen(comp, "CM",output_file_path="LVS/") -print(netgen_lvs_result) +# delete_files_in_directory("LVS") +# print("\n...Running LVS...") +# netgen_lvs_result = sky130.lvs_netgen(comp, "CM",output_file_path="LVS/") +# print(netgen_lvs_result) ## Will be used in future for simulation From 902968f7bbf9dff8e3b9052fe1da9f67402fe10a Mon Sep 17 00:00:00 2001 From: Saptarshi Ghosh Date: Thu, 12 Dec 2024 10:47:13 +0000 Subject: [PATCH 34/36] Updates for failed attempt to align the ports --- .../GDS/CM.gds | Bin 61590 -> 91798 bytes .../GDS/currentMirror.png | Bin 176785 -> 0 bytes .../gen_netlist.txt | 7 + .../regulated_cascoded_current_mirror.py | 158 +++++++++--------- 4 files changed, 84 insertions(+), 81 deletions(-) delete mode 100644 openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/GDS/currentMirror.png create mode 100644 openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/gen_netlist.txt diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/GDS/CM.gds b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/GDS/CM.gds index c38aaaa7254ae0ee368c1c87dcd9575acfa0a9d2..b8f3ccf46398e30723b1d6dbd0ddafd1940c78f6 100644 GIT binary patch literal 91798 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 h*opEB_}Uw{d{x6<}s9gX6 literal 61590 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 diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/GDS/currentMirror.png b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/GDS/currentMirror.png deleted file mode 100644 index 3ede963fb5c25c6188f9a4f7eadb4465e9ec7304..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176785 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 ZAM1rgoUFy|qmF_c;OXk;vd$@?2>`qd9YX*B diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/gen_netlist.txt b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/gen_netlist.txt new file mode 100644 index 000000000..6d573eaf0 --- /dev/null +++ b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/gen_netlist.txt @@ -0,0 +1,7 @@ + + +.subckt CurrentMirror VREF VCOPY VSS +XA VREF VREF VSS VSS sky130_fd_pr__nfet_01v8 l=1 w=3 m=2 nf=2 +XB VCOPY VREF VSS VSS sky130_fd_pr__nfet_01v8 l=1 w=3 m=2 nf=2 +XDUMMY VSS VSS VSS VSS sky130_fd_pr__nfet_01v8 l=1 w=3 m=2 +.ends CurrentMirror \ No newline at end of file diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py index 172961f62..62c9e9f5a 100644 --- a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py +++ b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py @@ -1,12 +1,10 @@ import sys -from os import path, rename, environ, listdir, remove - -environ['OPENBLAS_NUM_THREADS'] = '1' +from os import path, rename, environ , listdir, remove, chmod +# environ['OPENBLAS_NUM_THREADS'] = '1' from pathlib import Path # path to glayout sys.path.append(path.join(str(Path(__file__).resolve().parents[2]))) - from glayout.flow.pdk.mappedpdk import MappedPDK from glayout.flow.pdk.sky130_mapped import sky130_mapped_pdk as sky130 from glayout.flow.pdk.gf180_mapped import gf180_mapped_pdk as gf180 @@ -19,9 +17,9 @@ from glayout.flow.placement.two_transistor_interdigitized import two_nfet_interdigitized, two_pfet_interdigitized +from glayout.flow.pdk.util.snap_to_grid import component_snap_to_grid from glayout.flow.pdk.util.comp_utils import evaluate_bbox, prec_center, prec_array, movey, align_comp_to_port, prec_ref_center -from glayout.flow.pdk.util.port_utils import add_ports_perimeter - +from glayout.flow.pdk.util.port_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, set_port_orientation, rename_component_ports from gdsfactory.components import text_freetype, rectangle from gdsfactory import Component @@ -35,52 +33,25 @@ def delete_files_in_directory(directory_path): for file in files: file_path = path.join(directory_path, file) if path.isfile(file_path): - remove(file_path) + try: + chmod(file_path, 0o777) + remove(file_path) + except PermissionError: + print(f"PermissionError: Operation not permitted for {file_path}") print("All files deleted successfully.") except OSError: print("Error occurred while deleting files.") - global PDK_ROOT if 'PDK_ROOT' in environ: PDK_ROOT = str(Path(environ['PDK_ROOT']).resolve()) else: PDK_ROOT = "/usr/bin/miniconda3/share/pdk/" - -# def cascode_common_source_netlist( -# pdk: MappedPDK, -# m1_width: float, -# m2_width: float, -# m1_length: float, -# m2_length: float, -# multipliers: int, -# n_or_p_fet: Optional[str] = 'nfet', -# subckt_only: Optional[bool] = False, -# m1_fingers = int, -# m2_fingers = int, -# m1_multipliers = int, -# m2_multipliers = int -# ) -> Netlist: -# if m1_length is None: -# m1_length = pdk.get_grule('poly')['min_length'] -# if m1_width is None: -# m1_width = pdk.get_grule('poly')['min_width'] -# m2_length = m2_length or pdk.get_grule('poly')['min_length'] -# m2_width = m2_width or pdk.get_grule('poly')['min_width'] - -# mtop = multipliers if subckt_only else 1 -# model = pdk.models[n_or_p_fet] -# m1_multipliers = m1_multipliers or 1 -# m2_multipliers = m2_multipliers or 1 -# dmtop = m1_fingers*m1_multipliers -# num_dummies = 4 - - def generate_current_mirror_netlist( pdk: MappedPDK, instance_name: str, - CM_size: tuple[float, float, int], # (width, length, multipliers) + CM_size: tuple[float, float, int, int], # (width, length, multipliers, fingers) drain_net_A: str, gate_net: str, source_net: str, @@ -101,6 +72,7 @@ def generate_current_mirror_netlist( multipliers = CM_size[2] mtop = multipliers if subckt_only else 1 #mtop = multipliers * 2 if dummy else multipliers # Double the multiplier to account for the dummies + fingers = CM_size[3] # Number of fingers of the interdigitized fets model_name = pdk.models[transistor_type.lower()] @@ -114,13 +86,14 @@ def generate_current_mirror_netlist( # Generating only two transistors (one on each side): - source_netlist += f"XA {drain_net_A} {gate_net} {source_net} {bulk_net} {model_name} l={length} w={width} m={mtop}\n" - source_netlist += f"XB {drain_net_B} {gate_net} {source_net} {bulk_net} {model_name} l={length} w={width} m={mtop}\n" - source_netlist += f"XDUMMY {bulk_net} {bulk_net} {bulk_net} {bulk_net} {model_name} l={length} w={width} m={mtop}\n" + source_netlist += f"XA {drain_net_A} {gate_net} {source_net} {bulk_net} {model_name} l={length} w={width} m={mtop} nf={fingers}\n" + source_netlist += f"XB {drain_net_B} {gate_net} {source_net} {bulk_net} {model_name} l={length} w={width} m={mtop} nf={fingers}\n" + if dummy: + source_netlist += f"XDUMMY {bulk_net} {bulk_net} {bulk_net} {bulk_net} {model_name} l={length} w={width} m={mtop}\n" source_netlist += ".ends " + circuit_name - instance_format = "X{name} {nodes} {circuit_name} l={length} w={width} m={mult}" + instance_format = "X{name} {nodes} {circuit_name} l={length} w={width} m={mult} nf={fingers}" return Netlist( circuit_name=circuit_name, @@ -138,7 +111,7 @@ def generate_current_mirror_netlist( # @validate_arguments def CurrentMirror( pdk: MappedPDK, - Width: float = 3, + Width: float = 1, Length: Optional[float] = None, num_cols: int = 2, fingers: int = 1, @@ -155,6 +128,7 @@ def CurrentMirror( It can be instantiated with either nmos or pmos devices. It can also be instantiated with a dummy device, a substrate tap, and a tie layer, and is centered at the origin. Transistor A acts as the reference and Transistor B acts as the mirror fet This current mirror is used to generate a exact copy of the reference current. + [TODO] Needs to be checked for both pfet and nfet configurations. [TODO] It will be updated with multi-leg or stackked length parametrization in future. [TODO] There will also be a Regulated Cascoded block added to it. @@ -216,7 +190,7 @@ def CurrentMirror( pass - # add well + # add well (probably unnecessary) if type.lower() == "nfet": # add a pwell CurrentMirror.add_padding(layers = (pdk.get_glayer("pwell"),), default = pdk.get_grule("pwell", "active_tap")["min_enclosure"], ) @@ -228,37 +202,43 @@ def CurrentMirror( else: raise ValueError("type must be either nfet or pfet") + #Connecting the source of the fets to the bulk ??? - src2bulk=CurrentMirror << straight_route(pdk, source_short.ports["con_N"],CurrentMirror.ports["currm_welltie_N_top_met_N"], glayer2="met2") + src2bulk=CurrentMirror << straight_route(pdk, source_short.ports["con_N"],CurrentMirror.ports["currm_welltie_N_top_met_W"], glayer2="met2") + ##The default naming scheme of ports in GDSFactory + ##e1=West, e2=North, e3=East, e4=South. The default naming scheme of ports in GDSFactory - # place vref pin + # place vref pin (Needs more work to place it properly) vrefpin = CurrentMirror << rectangle(size=(0.5,0.5),layer=pdk.get_glayer("met3"),centered=True) vrefpin.movex(evaluate_bbox(vrefpin)[0]+(num_cols*maxmet_sep)) vrefpin.movey(CurrentMirror.ymax) # route vref to drain of A - CurrentMirror << smart_route(pdk, CurrentMirror.ports["currm_A_0_drain_W"], vrefpin.ports["e4"],viaoffset=False) + CurrentMirror << smart_route(pdk, CurrentMirror.ports["currm_A_0_drain_W"], vrefpin.ports["e4"]) + ## align_comp_to_port(vrefpin,ss.ports["top_met_E"], alignment=('c', 'b')) ?? How to align it properly - # place vcopy pin + # place vcopy pin (Needs more work to place it properly) vcopypin = CurrentMirror << rectangle(size=(0.5,0.5),layer=pdk.get_glayer("met3"),centered=True) - vcopypin.movex(evaluate_bbox(vcopypin)[0]-2*maxmet_sep) + vcopypin.movex(evaluate_bbox(vcopypin)[0]-(num_cols*maxmet_sep)) vcopypin.movey(CurrentMirror.ymax) # route vcopy to drain of B - CurrentMirror << smart_route(pdk, CurrentMirror.ports["currm_B_0_drain_E"], vcopypin.ports["e4"],viaoffset=False) + CurrentMirror << smart_route(pdk, CurrentMirror.ports["currm_B_0_drain_W"], vcopypin.ports["e4"]) + ## align_comp_to_port(vrefpin,ss.ports["top_met_E"], alignment=('c', 'b')) ?? How to align it properly - CurrentMirror.add_ports(gate_short.get_ports_list(), prefix="gateshortports") - CurrentMirror.add_ports(src2bulk.get_ports_list(), prefix="purposegndports") + CurrentMirror.add_ports(gate_short.get_ports_list(), prefix="gateshortports_") + CurrentMirror.add_ports(src2bulk.get_ports_list(), prefix="purposegndports_") - CurrentMirror.add_ports(vrefpin.get_ports_list(), prefix="Refport") - CurrentMirror.add_ports(vcopypin.get_ports_list(), prefix="Copyport") + + CurrentMirror.add_ports(vrefpin.get_ports_list(), prefix="refport_") + CurrentMirror.add_ports(vcopypin.get_ports_list(), prefix="copyport_") CurrentMirror.info["netlist"] = generate_current_mirror_netlist( pdk=pdk, instance_name=CurrentMirror.name, - CM_size= (Width, Length, num_cols), # (width, length, multipliers) + CM_size= (Width, Length, num_cols,fingers), # (width, length, multipliers) transistor_type=type, drain_net_A="VREF", # Input drain connected to VREF drain_net_B="VCOPY", # Output drain connected to VCOPY @@ -268,12 +248,21 @@ def CurrentMirror( subckt_only=True ) - return CurrentMirror + generated_netlist_for_lvs = CurrentMirror.info['netlist'].generate_netlist() + print(f"Type of generated netlist is :", generated_netlist_for_lvs) + file_path_local_storage = "./gen_netlist.txt" + try: + with open(file_path_local_storage, 'w') as file: + file.write(generated_netlist_for_lvs) + except: + print(f"Verify the file availability and type: ", generated_netlist_for_lvs, type(generated_netlist_for_lvs)) + + return rename_ports_by_orientation(component_snap_to_grid(CurrentMirror)) def sky130_add_current_mirror_labels( CMS: Component, transistor_type: str = "nfet", - pdk: MappedPDK =sky130) -> Component: # Re-introduce transistor_type + pdk: MappedPDK =sky130) -> Component: """Add labels to the current mirror layout for LVS, handling both nfet and pfet.""" met2_pin = (69, 16) @@ -281,8 +270,6 @@ def sky130_add_current_mirror_labels( met3_pin = (70, 16) met3_label = (70, 5) - - CMS.unlock() move_info = [] @@ -290,13 +277,13 @@ def sky130_add_current_mirror_labels( vref_label = rectangle(layer=met2_pin, size=(0.5, 0.5), centered=True).copy() vref_label.add_label(text="VREF", layer=met2_label) - move_info.append((vref_label, CMS.ports["Refporte2"], None)) # Drain of A - move_info.append((vref_label, CMS.ports["gateshortportscon_N"], None)) # Gate of A & B + move_info.append((vref_label, CMS.ports["refport_N"], None)) # Drain of A + move_info.append((vref_label, CMS.ports["gateshortports_con_N"], None)) # Gate of A & B # VCOPY label (for drain of transistor B) vcopy_label = rectangle(layer=met2_pin, size=(0.5, 0.5), centered=True).copy() vcopy_label.add_label(text="VCOPY", layer=met2_label) - move_info.append((vcopy_label, CMS.ports["Copyporte2"], None)) # Drain of B + move_info.append((vcopy_label, CMS.ports["copyport_N"], None)) # Drain of B # VSS/VDD label (for sources/bulk connection) @@ -314,7 +301,7 @@ def sky130_add_current_mirror_labels( vb_label = rectangle(layer=bulk_pin_layer, size=(0.5, 0.5), centered=True).copy() vb_label.add_label(text=bulk_net_name , layer=bulk_label_layer) - move_info.append((vb_label, CMS.ports["purposegndportsroute_N"], None)) + move_info.append((vb_label, CMS.ports["purposegndports_route_N"], None)) # Add labels to the component for label, port, alignment in move_info: @@ -325,31 +312,40 @@ def sky130_add_current_mirror_labels( return CMS.flatten() -comp = CurrentMirror(sky130, type='nfet', with_substrate_tap=False, with_tie=True) + + +# Main function to generate the current mirror layout +# mappedpdk, Width, Length, num_cols, fingers, transistor type +comp = CurrentMirror(sky130,3,1,2,2, type='nfet', with_substrate_tap=False, with_tie=True) +# Add labels to the current mirror layout comp = sky130_add_current_mirror_labels(comp, transistor_type='nfet', pdk=sky130) + +# Write the current mirror layout to a GDS file comp.name = "CM" +delete_files_in_directory("GDS/") +tmpdirname = Path("GDS/").resolve() +delete_files_in_directory("GDS/") +tmp_gds_path = Path(comp.write_gds(gdsdir=tmpdirname)).resolve() comp.write_gds("GDS/CM.gds") comp.show() - -# for absc in comp.ports.keys(): -# if len(absc.split("_")) <=6: -# print(absc) - +# Generate the netlist for the current mirror print("\n...Generating Netlist...") print(comp.info["netlist"].generate_netlist()) -# %% -# delete_files_in_directory("DRC") -# print("\n...Running DRC...") -# drc_result = sky130.drc_magic(comp, "CM",output_file="DRC/") -# print(drc_result) -# %% -# delete_files_in_directory("LVS") -# print("\n...Running LVS...") -# netgen_lvs_result = sky130.lvs_netgen(comp, "CM",output_file_path="LVS/") -# print(netgen_lvs_result) +# DRC Checks +#delete_files_in_directory("DRC/") +print("\n...Running DRC...") +drc_result = sky130.drc_magic(comp, "CM") +#drc_result = sky130.drc_magic(comp, "CM",output_file="DRC/") +print(drc_result['result_str']) +# LVS Checks +#delete_files_in_directory("LVS/") +print("\n...Running LVS...") +netgen_lvs_result = sky130.lvs_netgen(comp, "CM") +#netgen_lvs_result = sky130.lvs_netgen(comp, "CM",output_file_path="LVS/") +print(netgen_lvs_result['result_str']) -## Will be used in future for simulation +## Will be used in future for simulation # extractbash_template=str() # #import pdb; pdb.set_trace() # with open(str(_TAPEOUT_AND_RL_DIR_PATH_)+"/extract.bash.template","r") as extraction_script: From 49c0b67014a84360305d5390ad0df8f43043aa00 Mon Sep 17 00:00:00 2001 From: Saptarshi Ghosh Date: Thu, 12 Dec 2024 10:51:17 +0000 Subject: [PATCH 35/36] both n/p fets work and pass DRC-LVS --- .../GDS/CM.gds | Bin 91798 -> 66710 bytes .../gen_netlist.txt | 8 ++++---- .../regulated_cascoded_current_mirror.py | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/GDS/CM.gds b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/GDS/CM.gds index b8f3ccf46398e30723b1d6dbd0ddafd1940c78f6..d7bd1b1725843ddbe0c4595d5840a0824ec83286 100644 GIT binary patch literal 66710 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 literal 91798 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 h*opEB_}Uw{d{x6<}s9gX6 diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/gen_netlist.txt b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/gen_netlist.txt index 6d573eaf0..63706823d 100644 --- a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/gen_netlist.txt +++ b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/gen_netlist.txt @@ -1,7 +1,7 @@ -.subckt CurrentMirror VREF VCOPY VSS -XA VREF VREF VSS VSS sky130_fd_pr__nfet_01v8 l=1 w=3 m=2 nf=2 -XB VCOPY VREF VSS VSS sky130_fd_pr__nfet_01v8 l=1 w=3 m=2 nf=2 -XDUMMY VSS VSS VSS VSS sky130_fd_pr__nfet_01v8 l=1 w=3 m=2 +.subckt CurrentMirror VREF VCOPY VDD +XA VREF VREF VDD VDD sky130_fd_pr__pfet_01v8 l=1 w=3 m=2 nf=1 +XB VCOPY VREF VDD VDD sky130_fd_pr__pfet_01v8 l=1 w=3 m=2 nf=1 +XDUMMY VDD VDD VDD VDD sky130_fd_pr__pfet_01v8 l=1 w=3 m=2 .ends CurrentMirror \ No newline at end of file diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py index 62c9e9f5a..442dea22a 100644 --- a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py +++ b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py @@ -316,7 +316,7 @@ def sky130_add_current_mirror_labels( # Main function to generate the current mirror layout # mappedpdk, Width, Length, num_cols, fingers, transistor type -comp = CurrentMirror(sky130,3,1,2,2, type='nfet', with_substrate_tap=False, with_tie=True) +comp = CurrentMirror(sky130,3,1,2,1, type='nfet', with_substrate_tap=False, with_tie=True) # Add labels to the current mirror layout comp = sky130_add_current_mirror_labels(comp, transistor_type='nfet', pdk=sky130) From 1dcb1d8bd8ba0a207a9994b1a7f474b9d1d9949e Mon Sep 17 00:00:00 2001 From: Saptarshi Ghosh Date: Thu, 12 Dec 2024 11:58:19 +0000 Subject: [PATCH 36/36] Preparing pictures for presentation --- .../GDS/CM.gds | Bin 66710 -> 62870 bytes .../gen_netlist.txt | 8 ++--- .../regulated_cascoded_current_mirror.py | 30 ++++++++++-------- 3 files changed, 20 insertions(+), 18 deletions(-) diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/GDS/CM.gds b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/GDS/CM.gds index d7bd1b1725843ddbe0c4595d5840a0824ec83286..1fb1966c2ef993c2c1c041d5e3ccfb9e0114638e 100644 GIT binary patch literal 62870 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 diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/gen_netlist.txt b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/gen_netlist.txt index 63706823d..0062307f3 100644 --- a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/gen_netlist.txt +++ b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/gen_netlist.txt @@ -1,7 +1,7 @@ -.subckt CurrentMirror VREF VCOPY VDD -XA VREF VREF VDD VDD sky130_fd_pr__pfet_01v8 l=1 w=3 m=2 nf=1 -XB VCOPY VREF VDD VDD sky130_fd_pr__pfet_01v8 l=1 w=3 m=2 nf=1 -XDUMMY VDD VDD VDD VDD sky130_fd_pr__pfet_01v8 l=1 w=3 m=2 +.subckt CurrentMirror VREF VCOPY VSS +XA VREF VREF VSS VSS sky130_fd_pr__nfet_01v8 l=0.5 w=3 m=2 nf=1 +XB VCOPY VREF VSS VSS sky130_fd_pr__nfet_01v8 l=0.5 w=3 m=2 nf=1 +XDUMMY VSS VSS VSS VSS sky130_fd_pr__nfet_01v8 l=0.5 w=3 m=2 .ends CurrentMirror \ No newline at end of file diff --git a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py index 442dea22a..aff9cea55 100644 --- a/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py +++ b/openfasoc/generators/glayout/glayout/flow/blocks/composite/regulated_cascoded_current_mirror/regulated_cascoded_current_mirror.py @@ -176,18 +176,18 @@ def CurrentMirror( source_short = CurrentMirror << c_route(pdk,CurrentMirror.ports["currm_A_source_E"],CurrentMirror.ports["currm_B_source_E"],fullbottom=True) - - # Connecting dummies to the welltie - try: - CurrentMirror << straight_route(pdk, CurrentMirror.ports["A_0_dummy_L_gsdcon_top_met_W"],CurrentMirror.ports["welltie_W_top_met_W"],glayer2="met1") - except KeyError: - pass - try: - end_col = num_cols - 1 - port1 = f'B_{end_col}_dummy_R_gdscon_top_met_E' - CurrentMirror << straight_route(pdk, CurrentMirror.ports[port1], CurrentMirror.ports["welltie_E_top_met_E"], glayer2="met1") - except KeyError: - pass + if with_dummy: + # Connecting dummies to the welltie + try: + CurrentMirror << straight_route(pdk, CurrentMirror.ports["A_0_dummy_L_gsdcon_top_met_W"],CurrentMirror.ports["welltie_W_top_met_W"],glayer2="met1") + except KeyError: + pass + try: + end_col = num_cols - 1 + port1 = f'B_{end_col}_dummy_R_gdscon_top_met_E' + CurrentMirror << straight_route(pdk, CurrentMirror.ports[port1], CurrentMirror.ports["welltie_E_top_met_E"], glayer2="met1") + except KeyError: + pass # add well (probably unnecessary) @@ -202,7 +202,7 @@ def CurrentMirror( else: raise ValueError("type must be either nfet or pfet") - + #Connecting the source of the fets to the bulk ??? src2bulk=CurrentMirror << straight_route(pdk, source_short.ports["con_N"],CurrentMirror.ports["currm_welltie_N_top_met_W"], glayer2="met2") @@ -316,10 +316,12 @@ def sky130_add_current_mirror_labels( # Main function to generate the current mirror layout # mappedpdk, Width, Length, num_cols, fingers, transistor type -comp = CurrentMirror(sky130,3,1,2,1, type='nfet', with_substrate_tap=False, with_tie=True) +comp = CurrentMirror(sky130,3,0.5,2,1, type='nfet') # Add labels to the current mirror layout comp = sky130_add_current_mirror_labels(comp, transistor_type='nfet', pdk=sky130) + + # Write the current mirror layout to a GDS file comp.name = "CM" delete_files_in_directory("GDS/")