From 782a0b2239a0c8e33c67ec4252e541a2de5e653d Mon Sep 17 00:00:00 2001 From: Anne Fouilloux Date: Tue, 5 Nov 2024 18:37:26 +0100 Subject: [PATCH 1/4] draft training material from workflow --- .../voronoi-segmentation/faqs/index.md | 3 + .../voronoi-segmentation/tutorial.bib | 42 ++ .../voronoi-segmentation/tutorial.md | 590 ++++++++++++++++++ .../voronoi-segmentation/workflows/index.md | 3 + .../workflows/main_workflow.ga | 1 + 5 files changed, 639 insertions(+) create mode 100644 topics/imaging/tutorials/voronoi-segmentation/faqs/index.md create mode 100644 topics/imaging/tutorials/voronoi-segmentation/tutorial.bib create mode 100644 topics/imaging/tutorials/voronoi-segmentation/tutorial.md create mode 100644 topics/imaging/tutorials/voronoi-segmentation/workflows/index.md create mode 100644 topics/imaging/tutorials/voronoi-segmentation/workflows/main_workflow.ga diff --git a/topics/imaging/tutorials/voronoi-segmentation/faqs/index.md b/topics/imaging/tutorials/voronoi-segmentation/faqs/index.md new file mode 100644 index 00000000000000..9ce3fe4fce824b --- /dev/null +++ b/topics/imaging/tutorials/voronoi-segmentation/faqs/index.md @@ -0,0 +1,3 @@ +--- +layout: faq-page +--- diff --git a/topics/imaging/tutorials/voronoi-segmentation/tutorial.bib b/topics/imaging/tutorials/voronoi-segmentation/tutorial.bib new file mode 100644 index 00000000000000..9206b0b6e4cae4 --- /dev/null +++ b/topics/imaging/tutorials/voronoi-segmentation/tutorial.bib @@ -0,0 +1,42 @@ + +# This is the bibliography file for your tutorial. +# +# To add bibliography (bibtex) entries here, follow these steps: +# 1) Find the DOI for the article you want to cite +# 2) Go to https://doi2bib.org and fill in the DOI +# 3) Copy the resulting bibtex entry into this file +# +# To cite the example below, in your tutorial.md file +# use {% cite Batut2018 %} +# +# If you want to cite an online resourse (website etc) +# you can use the 'online' format (see below) +# +# You can remove the examples below + +@article{Batut2018, + doi = {10.1016/j.cels.2018.05.012}, + url = {https://doi.org/10.1016/j.cels.2018.05.012}, + year = {2018}, + month = jun, + publisher = {Elsevier {BV}}, + volume = {6}, + number = {6}, + pages = {752--758.e1}, + author = {B{\'{e}}r{\'{e}}nice Batut and Saskia Hiltemann and Andrea Bagnacani and Dannon Baker and Vivek Bhardwaj and + Clemens Blank and Anthony Bretaudeau and Loraine Brillet-Gu{\'{e}}guen and Martin {\v{C}}ech and John Chilton + and Dave Clements and Olivia Doppelt-Azeroual and Anika Erxleben and Mallory Ann Freeberg and Simon Gladman and + Youri Hoogstrate and Hans-Rudolf Hotz and Torsten Houwaart and Pratik Jagtap and Delphine Larivi{\`{e}}re and + Gildas Le Corguill{\'{e}} and Thomas Manke and Fabien Mareuil and Fidel Ram{\'{i}}rez and Devon Ryan and + Florian Christoph Sigloch and Nicola Soranzo and Joachim Wolff and Pavankumar Videm and Markus Wolfien and + Aisanjiang Wubuli and Dilmurat Yusuf and James Taylor and Rolf Backofen and Anton Nekrutenko and Bj\"{o}rn Gr\"{u}ning}, + title = {Community-Driven Data Analysis Training for Biology}, + journal = {Cell Systems} +} + +@online{gtn-website, + author = {GTN community}, + title = {GTN Training Materials: Collection of tutorials developed and maintained by the worldwide Galaxy community}, + url = {https://training.galaxyproject.org}, + urldate = {2021-03-24} +} diff --git a/topics/imaging/tutorials/voronoi-segmentation/tutorial.md b/topics/imaging/tutorials/voronoi-segmentation/tutorial.md new file mode 100644 index 00000000000000..f0e6b2371feb57 --- /dev/null +++ b/topics/imaging/tutorials/voronoi-segmentation/tutorial.md @@ -0,0 +1,590 @@ +--- +layout: tutorial_hands_on + +title: Voronoi Segmentation and Feature Extraction +zenodo_link: '' +questions: +- Which biological questions are addressed by the tutorial? +- Which bioinformatics techniques are important to know for this type of data? +objectives: +- The learning objectives are the goals of the tutorial +- They will be informed by your audience and will communicate to them and to yourself + what you should focus on during the course +- They are single sentences describing what a learner should be able to do once they + have completed the tutorial +- You can use Bloom's Taxonomy to write effective learning objectives +time_estimation: 3H +key_points: +- The take-home messages +- They will appear at the end of the tutorial +contributors: +- contributor1 +- contributor2 + +--- + + +# Introduction + + + +General introduction about the topic and then an introduction of the +tutorial (the questions and the objectives). It is nice also to have a +scheme to sum up the pipeline used during the tutorial. The idea is to +give to trainees insight into the content of the tutorial and the (theoretical +and technical) key concepts they will learn. + +You may want to cite some publications; this can be done by adding citations to the +bibliography file (`tutorial.bib` file next to your `tutorial.md` file). These citations +must be in bibtex format. If you have the DOI for the paper you wish to cite, you can +get the corresponding bibtex entry using [doi2bib.org](https://doi2bib.org). + +With the example you will find in the `tutorial.bib` file, you can add a citation to +this article here in your tutorial like this: +{% raw %} `{% cite Batut2018 %}`{% endraw %}. +This will be rendered like this: {% cite Batut2018 %}, and links to a +[bibliography section](#bibliography) which will automatically be created at the end of the +tutorial. + + +**Please follow our +[tutorial to learn how to fill the Markdown]({{ site.baseurl }}/topics/contributing/tutorials/create-new-tutorial-content/tutorial.html)** + +> +> +> In this tutorial, we will cover: +> +> 1. TOC +> {:toc} +> +{: .agenda} + +# Title for your first section + +Give some background about what the trainees will be doing in the section. +Remember that many people reading your materials will likely be novices, +so make sure to explain all the relevant concepts. + +## Title for a subsection +Section and subsection titles will be displayed in the tutorial index on the left side of +the page, so try to make them informative and concise! + +# Hands-on Sections +Below are a series of hand-on boxes, one for each tool in your workflow file. +Often you may wish to combine several boxes into one or make other adjustments such +as breaking the tutorial into sections, we encourage you to make such changes as you +see fit, this is just a starting point :) + +Anywhere you find the word "***TODO***", there is something that needs to be changed +depending on the specifics of your tutorial. + +have fun! + +## Get data + +> Data Upload +> +> 1. Create a new history for this tutorial +> 2. Import the files from [Zenodo]({{ page.zenodo_link }}) or from +> the shared data library (`GTN - Material` -> `{{ page.topic_name }}` +> -> `{{ page.title }}`): +> +> ``` +> +> ``` +> ***TODO***: *Add the files by the ones on Zenodo here (if not added)* +> +> ***TODO***: *Remove the useless files (if added)* +> +> {% snippet faqs/galaxy/datasets_import_via_link.md %} +> +> {% snippet faqs/galaxy/datasets_import_from_data_library.md %} +> +> 3. Rename the datasets +> 4. Check that the datatype +> +> {% snippet faqs/galaxy/datasets_change_datatype.md datatype="datatypes" %} +> +> 5. Add to each database a tag corresponding to ... +> +> {% snippet faqs/galaxy/datasets_add_tag.md %} +> +{: .hands_on} + +# Title of the section usually corresponding to a big step in the analysis + +It comes first a description of the step: some background and some theory. +Some image can be added there to support the theory explanation: + +![Alternative text](../../images/image_name "Legend of the image") + +The idea is to keep the theory description before quite simple to focus more on the practical part. + +***TODO***: *Consider adding a detail box to expand the theory* + +> More details about the theory +> +> But to describe more details, it is possible to use the detail boxes which are expandable +> +{: .details} + +A big step can have several subsections or sub steps: + + +## Sub-step with **Convert image format** + +> Task description +> +> 1. {% tool [Convert image format](toolshed.g2.bx.psu.edu/repos/imgteam/bfconvert/ip_convertimage/6.7.0+galaxy3) %} with the following parameters: +> - {% icon param-file %} *"Input Image"*: `output` (Input dataset) +> - *"Extract series"*: `All series` +> - *"Extract timepoint"*: `All timepoints` +> - *"Extract channel"*: `Extract channel` +> - *"Extract z-slice"*: `All z-slices` +> - *"Extract range"*: `All images` +> - *"Extract crop"*: `Full image` +> - *"Tile image"*: `No tiling` +> - *"Pyramid image"*: `No Pyramid` +> +> ***TODO***: *Check parameter descriptions* +> +> ***TODO***: *Consider adding a comment or tip box* +> +> > short description +> > +> > A comment about the tool or something else. This box can also be in the main text +> {: .comment} +> +{: .hands_on} + +***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* + +> +> +> 1. Question1? +> 2. Question2? +> +> > +> > +> > 1. Answer for question1 +> > 2. Answer for question2 +> > +> {: .solution} +> +{: .question} + +## Sub-step with **Convert image format** + +> Task description +> +> 1. {% tool [Convert image format](toolshed.g2.bx.psu.edu/repos/imgteam/bfconvert/ip_convertimage/6.7.0+galaxy3) %} with the following parameters: +> - {% icon param-file %} *"Input Image"*: `output` (Input dataset) +> - *"Extract series"*: `All series` +> - *"Extract timepoint"*: `All timepoints` +> - *"Extract channel"*: `Extract channel` +> - *"Channel id"*: `{'id': 1, 'output_name': 'output'}` +> - *"Extract z-slice"*: `All z-slices` +> - *"Extract range"*: `All images` +> - *"Extract crop"*: `Full image` +> - *"Tile image"*: `No tiling` +> - *"Pyramid image"*: `No Pyramid` +> +> ***TODO***: *Check parameter descriptions* +> +> ***TODO***: *Consider adding a comment or tip box* +> +> > short description +> > +> > A comment about the tool or something else. This box can also be in the main text +> {: .comment} +> +{: .hands_on} + +***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* + +> +> +> 1. Question1? +> 2. Question2? +> +> > +> > +> > 1. Answer for question1 +> > 2. Answer for question2 +> > +> {: .solution} +> +{: .question} + +## Sub-step with **Convert binary image to label map** + +> Task description +> +> 1. {% tool [Convert binary image to label map](toolshed.g2.bx.psu.edu/repos/imgteam/binary2labelimage/ip_binary_to_labelimage/0.5+galaxy0) %} with the following parameters: +> - {% icon param-file %} *"Binary image"*: `output` (Input dataset) +> - *"Mode"*: `Connected component analysis` +> +> ***TODO***: *Check parameter descriptions* +> +> ***TODO***: *Consider adding a comment or tip box* +> +> > short description +> > +> > A comment about the tool or something else. This box can also be in the main text +> {: .comment} +> +{: .hands_on} + +***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* + +> +> +> 1. Question1? +> 2. Question2? +> +> > +> > +> > 1. Answer for question1 +> > 2. Answer for question2 +> > +> {: .solution} +> +{: .question} + +## Sub-step with **Convert single-channel to multi-channel image** + +> Task description +> +> 1. {% tool [Convert single-channel to multi-channel image](toolshed.g2.bx.psu.edu/repos/imgteam/repeat_channels/repeat_channels/1.26.4+galaxy0) %} with the following parameters: +> - {% icon param-file %} *"Input image (single-channel)"*: `output` (output of **Convert image format** {% icon tool %}) +> +> ***TODO***: *Check parameter descriptions* +> +> ***TODO***: *Consider adding a comment or tip box* +> +> > short description +> > +> > A comment about the tool or something else. This box can also be in the main text +> {: .comment} +> +{: .hands_on} + +***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* + +> +> +> 1. Question1? +> 2. Question2? +> +> > +> > +> > 1. Answer for question1 +> > 2. Answer for question2 +> > +> {: .solution} +> +{: .question} + +## Sub-step with **Filter 2-D image** + +> Task description +> +> 1. {% tool [Filter 2-D image](toolshed.g2.bx.psu.edu/repos/imgteam/2d_simple_filter/ip_filter_standard/1.12.0+galaxy0) %} with the following parameters: +> - {% icon param-file %} *"Input image"*: `output` (output of **Convert image format** {% icon tool %}) +> - *"Filter type"*: `Gaussian` +> +> ***TODO***: *Check parameter descriptions* +> +> ***TODO***: *Consider adding a comment or tip box* +> +> > short description +> > +> > A comment about the tool or something else. This box can also be in the main text +> {: .comment} +> +{: .hands_on} + +***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* + +> +> +> 1. Question1? +> 2. Question2? +> +> > +> > +> > 1. Answer for question1 +> > 2. Answer for question2 +> > +> {: .solution} +> +{: .question} + +## Sub-step with **Compute Voronoi tessellation** + +> Task description +> +> 1. {% tool [Compute Voronoi tessellation](toolshed.g2.bx.psu.edu/repos/imgteam/voronoi_tesselation/voronoi_tessellation/0.22.0+galaxy1) %} with the following parameters: +> - {% icon param-file %} *"Input image"*: `output` (output of **Convert binary image to label map** {% icon tool %}) +> +> ***TODO***: *Check parameter descriptions* +> +> ***TODO***: *Consider adding a comment or tip box* +> +> > short description +> > +> > A comment about the tool or something else. This box can also be in the main text +> {: .comment} +> +{: .hands_on} + +***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* + +> +> +> 1. Question1? +> 2. Question2? +> +> > +> > +> > 1. Answer for question1 +> > 2. Answer for question2 +> > +> {: .solution} +> +{: .question} + +## Sub-step with **Threshold image** + +> Task description +> +> 1. {% tool [Threshold image](toolshed.g2.bx.psu.edu/repos/imgteam/2d_auto_threshold/ip_threshold/0.18.1+galaxy2) %} with the following parameters: +> - {% icon param-file %} *"Input image"*: `output` (output of **Filter 2-D image** {% icon tool %}) +> - *"Thresholding method"*: `Manual` +> - *"Threshold value"*: `{'id': 2, 'output_name': 'output'}` +> +> ***TODO***: *Check parameter descriptions* +> +> ***TODO***: *Consider adding a comment or tip box* +> +> > short description +> > +> > A comment about the tool or something else. This box can also be in the main text +> {: .comment} +> +{: .hands_on} + +***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* + +> +> +> 1. Question1? +> 2. Question2? +> +> > +> > +> > 1. Answer for question1 +> > 2. Answer for question2 +> > +> {: .solution} +> +{: .question} + +## Sub-step with **Count objects in label map** + +> Task description +> +> 1. {% tool [Count objects in label map](toolshed.g2.bx.psu.edu/repos/imgteam/count_objects/ip_count_objects/0.0.5-2) %} with the following parameters: +> - {% icon param-file %} *"Source file"*: `result` (output of **Compute Voronoi tessellation** {% icon tool %}) +> +> ***TODO***: *Check parameter descriptions* +> +> ***TODO***: *Consider adding a comment or tip box* +> +> > short description +> > +> > A comment about the tool or something else. This box can also be in the main text +> {: .comment} +> +{: .hands_on} + +***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* + +> +> +> 1. Question1? +> 2. Question2? +> +> > +> > +> > 1. Answer for question1 +> > 2. Answer for question2 +> > +> {: .solution} +> +{: .question} + +## Sub-step with **Extract image features** + +> Task description +> +> 1. {% tool [Extract image features](toolshed.g2.bx.psu.edu/repos/imgteam/2d_feature_extraction/ip_2d_feature_extraction/0.18.1+galaxy0) %} with the following parameters: +> - {% icon param-file %} *"Label map"*: `result` (output of **Compute Voronoi tessellation** {% icon tool %}) +> - *"Use the intensity image to compute additional features"*: `Use intensity image` +> - {% icon param-file %} *"Intensity image"*: `output` (output of **Convert image format** {% icon tool %}) +> - *"Select features to compute"*: `Select features` +> - *"Available features"*: `` +> +> ***TODO***: *Check parameter descriptions* +> +> ***TODO***: *Consider adding a comment or tip box* +> +> > short description +> > +> > A comment about the tool or something else. This box can also be in the main text +> {: .comment} +> +{: .hands_on} + +***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* + +> +> +> 1. Question1? +> 2. Question2? +> +> > +> > +> > 1. Answer for question1 +> > 2. Answer for question2 +> > +> {: .solution} +> +{: .question} + +## Sub-step with **Process images using arithmetic expressions** + +> Task description +> +> 1. {% tool [Process images using arithmetic expressions](toolshed.g2.bx.psu.edu/repos/imgteam/image_math/image_math/1.26.4+galaxy1) %} with the following parameters: +> - *"Expression"*: `tessellation * (mask / 255) * (1 - seeds / 255)` +> - In *"Input images"*: +> - {% icon param-repeat %} *"Insert Input images"* +> - {% icon param-file %} *"Image"*: `result` (output of **Compute Voronoi tessellation** {% icon tool %}) +> - *"Variable for representation of the image within the expression"*: `tessellation` +> - {% icon param-repeat %} *"Insert Input images"* +> - {% icon param-file %} *"Image"*: `output` (Input dataset) +> - *"Variable for representation of the image within the expression"*: `seeds` +> - {% icon param-repeat %} *"Insert Input images"* +> - {% icon param-file %} *"Image"*: `output` (output of **Threshold image** {% icon tool %}) +> - *"Variable for representation of the image within the expression"*: `mask` +> +> ***TODO***: *Check parameter descriptions* +> +> ***TODO***: *Consider adding a comment or tip box* +> +> > short description +> > +> > A comment about the tool or something else. This box can also be in the main text +> {: .comment} +> +{: .hands_on} + +***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* + +> +> +> 1. Question1? +> 2. Question2? +> +> > +> > +> > 1. Answer for question1 +> > 2. Answer for question2 +> > +> {: .solution} +> +{: .question} + +## Sub-step with **Colorize label map** + +> Task description +> +> 1. {% tool [Colorize label map](toolshed.g2.bx.psu.edu/repos/imgteam/colorize_labels/colorize_labels/3.2.1+galaxy1) %} with the following parameters: +> - {% icon param-file %} *"Input image (label map)"*: `result` (output of **Process images using arithmetic expressions** {% icon tool %}) +> +> ***TODO***: *Check parameter descriptions* +> +> ***TODO***: *Consider adding a comment or tip box* +> +> > short description +> > +> > A comment about the tool or something else. This box can also be in the main text +> {: .comment} +> +{: .hands_on} + +***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* + +> +> +> 1. Question1? +> 2. Question2? +> +> > +> > +> > 1. Answer for question1 +> > 2. Answer for question2 +> > +> {: .solution} +> +{: .question} + +## Sub-step with **Overlay images** + +> Task description +> +> 1. {% tool [Overlay images](toolshed.g2.bx.psu.edu/repos/imgteam/overlay_images/ip_overlay_images/0.0.4+galaxy1) %} with the following parameters: +> - *"Type of the overlay"*: `Linear blending` +> - {% icon param-file %} *"Image #1"*: `output` (output of **Convert single-channel to multi-channel image** {% icon tool %}) +> - {% icon param-file %} *"Image #2"*: `output` (output of **Colorize label map** {% icon tool %}) +> +> ***TODO***: *Check parameter descriptions* +> +> ***TODO***: *Consider adding a comment or tip box* +> +> > short description +> > +> > A comment about the tool or something else. This box can also be in the main text +> {: .comment} +> +{: .hands_on} + +***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* + +> +> +> 1. Question1? +> 2. Question2? +> +> > +> > +> > 1. Answer for question1 +> > 2. Answer for question2 +> > +> {: .solution} +> +{: .question} + + +## Re-arrange + +To create the template, each step of the workflow had its own subsection. + +***TODO***: *Re-arrange the generated subsections into sections or other subsections. +Consider merging some hands-on boxes to have a meaningful flow of the analyses* + +# Conclusion + +Sum up the tutorial and the key takeaways here. We encourage adding an overview image of the +pipeline used. \ No newline at end of file diff --git a/topics/imaging/tutorials/voronoi-segmentation/workflows/index.md b/topics/imaging/tutorials/voronoi-segmentation/workflows/index.md new file mode 100644 index 00000000000000..e092e0ae66ddd4 --- /dev/null +++ b/topics/imaging/tutorials/voronoi-segmentation/workflows/index.md @@ -0,0 +1,3 @@ +--- +layout: workflow-list +--- diff --git a/topics/imaging/tutorials/voronoi-segmentation/workflows/main_workflow.ga b/topics/imaging/tutorials/voronoi-segmentation/workflows/main_workflow.ga new file mode 100644 index 00000000000000..05e7b144188b0c --- /dev/null +++ b/topics/imaging/tutorials/voronoi-segmentation/workflows/main_workflow.ga @@ -0,0 +1 @@ +{"a_galaxy_workflow": "true", "annotation": "Generic workflow to perform voronoi segmentation and their quantitative analysis (Black Background)", "comments": [{"child_steps": [1, 2, 0], "color": "red", "data": {"title": "User Input"}, "id": 0, "position": [0, 17], "size": [251.2, 660.6], "type": "frame"}, {"child_steps": [4, 5, 6, 7, 8, 9, 10, 13, 14, 15], "color": "lime", "data": {"title": "Voronoi Segmentation Plus Overlay"}, "id": 1, "position": [365, 0], "size": [2266, 827], "type": "frame"}, {"child_steps": [11], "color": "orange", "data": {"title": "Quantitative Analysis - Image features and Counting"}, "id": 2, "position": [2794.4, 110.80000000000001], "size": [240, 410], "type": "frame"}], "creator": [{"class": "Person", "identifier": "", "name": "Riccardo Massei"}], "format-version": "0.1", "license": "MIT", "name": "Voronoi Segmentation and Feature Extraction", "steps": {"0": {"annotation": "Image to analyze", "content_id": null, "errors": null, "id": 0, "input_connections": {}, "inputs": [{"description": "Image to analyze", "name": "Input Image"}], "label": "Input Image", "name": "Input dataset", "outputs": [], "position": {"left": 20, "top": 57}, "tool_id": null, "tool_state": "{\"optional\": false, \"tag\": null}", "tool_version": null, "type": "data_input", "uuid": "dda4de6c-776e-44bc-b34b-2b7bc060ee62", "when": null, "workflow_outputs": []}, "1": {"annotation": "Channel where to perform the Voronoi Segmentation", "content_id": null, "errors": null, "id": 1, "input_connections": {}, "inputs": [{"description": "Channel where to perform the Voronoi Segmentation", "name": "Select Channel for Voronoi Segmentation"}], "label": "Select Channel for Voronoi Segmentation", "name": "Input parameter", "outputs": [], "position": {"left": 24, "top": 235}, "tool_id": null, "tool_state": "{\"parameter_type\": \"integer\", \"optional\": false}", "tool_version": null, "type": "parameter_input", "uuid": "eac65cde-5951-435b-9214-f9b849801629", "when": null, "workflow_outputs": [{"label": null, "output_name": "output", "uuid": "0e4d4c97-298e-46ea-846b-5af9e7fd7ab4"}]}, "2": {"annotation": "", "content_id": null, "errors": null, "id": 2, "input_connections": {}, "inputs": [{"description": "", "name": "Threhold Value"}], "label": "Threhold Value", "name": "Input parameter", "outputs": [], "position": {"left": 22, "top": 421.5}, "tool_id": null, "tool_state": "{\"parameter_type\": \"float\", \"optional\": false}", "tool_version": null, "type": "parameter_input", "uuid": "2a014e33-cb79-4b27-8ff4-61fb7f288fb8", "when": null, "workflow_outputs": [{"label": null, "output_name": "output", "uuid": "203afe86-4509-48b3-bf36-89020ce42e42"}]}, "3": {"annotation": "Binary Image with seeds", "content_id": null, "errors": null, "id": 3, "input_connections": {}, "inputs": [{"description": "Binary Image with seeds", "name": "Input seeds for segmentation"}], "label": "Input seeds for segmentation", "name": "Input dataset", "outputs": [], "position": {"left": 21.557356375842502, "top": 575.3661152348966}, "tool_id": null, "tool_state": "{\"optional\": false, \"tag\": null}", "tool_version": null, "type": "data_input", "uuid": "924d2ac9-3b0f-4d37-a618-baed5dd0bfc1", "when": null, "workflow_outputs": []}, "4": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/imgteam/bfconvert/ip_convertimage/6.7.0+galaxy3", "errors": null, "id": 4, "input_connections": {"input_file": {"id": 0, "output_name": "output"}}, "inputs": [{"description": "runtime parameter for tool Convert image format", "name": "input_file"}], "label": null, "name": "Convert image format", "outputs": [{"name": "output", "type": "tiff"}], "position": {"left": 1310.2587706377763, "top": 57.994534604236485}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/imgteam/bfconvert/ip_convertimage/6.7.0+galaxy3", "tool_shed_repository": {"changeset_revision": "fcadded98e61", "name": "bfconvert", "owner": "imgteam", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"bigtiff\": false, \"channel_options\": {\"extract\": \"True\", \"__current_case__\": 1, \"channel\": \"0\"}, \"compression\": \"False\", \"crop_options\": {\"extract\": \"False\", \"__current_case__\": 0}, \"input_file\": {\"__class__\": \"RuntimeValue\"}, \"noflat\": false, \"out_format\": \"tiff\", \"pyramid_options\": {\"generate\": \"False\", \"__current_case__\": 1}, \"range_options\": {\"extract\": \"False\", \"__current_case__\": 0}, \"series_options\": {\"extract\": \"False\", \"__current_case__\": 0}, \"tile_options\": {\"extract\": \"False\", \"__current_case__\": 0}, \"timepoint_options\": {\"extract\": \"False\", \"__current_case__\": 0}, \"z_options\": {\"extract\": \"False\", \"__current_case__\": 0}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "6.7.0+galaxy3", "type": "tool", "uuid": "c0b429ac-904f-4f14-8ed5-bba1ea2ebfc5", "when": null, "workflow_outputs": []}, "5": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/imgteam/bfconvert/ip_convertimage/6.7.0+galaxy3", "errors": null, "id": 5, "input_connections": {"channel_options|channel": {"id": 1, "output_name": "output"}, "input_file": {"id": 0, "output_name": "output"}}, "inputs": [{"description": "runtime parameter for tool Convert image format", "name": "channel_options"}], "label": null, "name": "Convert image format", "outputs": [{"name": "output", "type": "tiff"}], "position": {"left": 413.00801220703124, "top": 221.574}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/imgteam/bfconvert/ip_convertimage/6.7.0+galaxy3", "tool_shed_repository": {"changeset_revision": "fcadded98e61", "name": "bfconvert", "owner": "imgteam", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"bigtiff\": false, \"channel_options\": {\"extract\": \"True\", \"__current_case__\": 1, \"channel\": {\"__class__\": \"ConnectedValue\"}}, \"compression\": \"False\", \"crop_options\": {\"extract\": \"False\", \"__current_case__\": 0}, \"input_file\": {\"__class__\": \"ConnectedValue\"}, \"noflat\": false, \"out_format\": \"tiff\", \"pyramid_options\": {\"generate\": \"False\", \"__current_case__\": 1}, \"range_options\": {\"extract\": \"False\", \"__current_case__\": 0}, \"series_options\": {\"extract\": \"False\", \"__current_case__\": 0}, \"tile_options\": {\"extract\": \"False\", \"__current_case__\": 0}, \"timepoint_options\": {\"extract\": \"False\", \"__current_case__\": 0}, \"z_options\": {\"extract\": \"False\", \"__current_case__\": 0}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "6.7.0+galaxy3", "type": "tool", "uuid": "c18c4523-f5d5-4769-a6bd-9df5480f68e3", "when": null, "workflow_outputs": []}, "6": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/imgteam/binary2labelimage/ip_binary_to_labelimage/0.5+galaxy0", "errors": null, "id": 6, "input_connections": {"input": {"id": 3, "output_name": "output"}}, "inputs": [], "label": null, "name": "Convert binary image to label map", "outputs": [{"name": "output", "type": "tiff"}], "position": {"left": 421.4382419411547, "top": 510.2648436754392}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/imgteam/binary2labelimage/ip_binary_to_labelimage/0.5+galaxy0", "tool_shed_repository": {"changeset_revision": "984358e43242", "name": "binary2labelimage", "owner": "imgteam", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"input\": {\"__class__\": \"ConnectedValue\"}, \"mode\": {\"mode_selector\": \"cca\", \"__current_case__\": 0}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "0.5+galaxy0", "type": "tool", "uuid": "5937f007-43d5-4884-918f-36ad484580b5", "when": null, "workflow_outputs": []}, "7": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/imgteam/repeat_channels/repeat_channels/1.26.4+galaxy0", "errors": null, "id": 7, "input_connections": {"input": {"id": 4, "output_name": "output"}}, "inputs": [], "label": null, "name": "Convert single-channel to multi-channel image", "outputs": [{"name": "output", "type": "tiff"}], "position": {"left": 1798.9166870117188, "top": 65.46665954589844}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/imgteam/repeat_channels/repeat_channels/1.26.4+galaxy0", "tool_shed_repository": {"changeset_revision": "7cdb50fee601", "name": "repeat_channels", "owner": "imgteam", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"count\": \"3\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.26.4+galaxy0", "type": "tool", "uuid": "d0854e51-56e7-4eab-8d9a-cc60cbd2eba5", "when": null, "workflow_outputs": []}, "8": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/imgteam/2d_simple_filter/ip_filter_standard/1.12.0+galaxy0", "errors": null, "id": 8, "input_connections": {"input": {"id": 5, "output_name": "output"}}, "inputs": [], "label": null, "name": "Filter 2-D image", "outputs": [{"name": "output", "type": "tiff"}], "position": {"left": 722.1079877929687, "top": 198.9739938964844}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/imgteam/2d_simple_filter/ip_filter_standard/1.12.0+galaxy0", "tool_shed_repository": {"changeset_revision": "6c4b22ef2b81", "name": "2d_simple_filter", "owner": "imgteam", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"filter\": {\"filter_type\": \"gaussian\", \"__current_case__\": 0, \"size\": \"3.0\"}, \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.12.0+galaxy0", "type": "tool", "uuid": "ae388ff0-8ad5-4053-9931-b43aaa701bf5", "when": null, "workflow_outputs": []}, "9": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/imgteam/voronoi_tesselation/voronoi_tessellation/0.22.0+galaxy1", "errors": null, "id": 9, "input_connections": {"input": {"id": 6, "output_name": "output"}}, "inputs": [], "label": null, "name": "Compute Voronoi tessellation", "outputs": [{"name": "result", "type": "tiff"}], "position": {"left": 825.9246687011719, "top": 683.0999755859375}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/imgteam/voronoi_tesselation/voronoi_tessellation/0.22.0+galaxy1", "tool_shed_repository": {"changeset_revision": "e7fdea8385f0", "name": "voronoi_tesselation", "owner": "imgteam", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "0.22.0+galaxy1", "type": "tool", "uuid": "61a6a645-2f8e-4025-8a5f-89ad07a83510", "when": null, "workflow_outputs": []}, "10": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/imgteam/2d_auto_threshold/ip_threshold/0.18.1+galaxy2", "errors": null, "id": 10, "input_connections": {"input": {"id": 8, "output_name": "output"}, "th_method|threshold": {"id": 2, "output_name": "output"}}, "inputs": [{"description": "runtime parameter for tool Threshold image", "name": "th_method"}], "label": null, "name": "Threshold image", "outputs": [{"name": "output", "type": "tiff"}], "position": {"left": 988, "top": 381.5}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/imgteam/2d_auto_threshold/ip_threshold/0.18.1+galaxy2", "tool_shed_repository": {"changeset_revision": "e5c8e7e72373", "name": "2d_auto_threshold", "owner": "imgteam", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"input\": {\"__class__\": \"ConnectedValue\"}, \"invert_output\": false, \"th_method\": {\"method_id\": \"manual\", \"__current_case__\": 0, \"threshold\": {\"__class__\": \"ConnectedValue\"}, \"block_size\": \"0\", \"offset\": \"0\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "0.18.1+galaxy2", "type": "tool", "uuid": "c3843019-87b0-47b8-aa68-52d1151bf8b0", "when": null, "workflow_outputs": []}, "11": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/imgteam/count_objects/ip_count_objects/0.0.5-2", "errors": null, "id": 11, "input_connections": {"input": {"id": 9, "output_name": "result"}}, "inputs": [], "label": null, "name": "Count objects in label map", "outputs": [{"name": "output", "type": "tabular"}], "position": {"left": 2817.816650390625, "top": 182.683349609375}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/imgteam/count_objects/ip_count_objects/0.0.5-2", "tool_shed_repository": {"changeset_revision": "b58447a2eed2", "name": "count_objects", "owner": "imgteam", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "0.0.5-2", "type": "tool", "uuid": "eb7b59cd-4450-44fc-b459-6168a9434895", "when": null, "workflow_outputs": [{"label": "Count Objects", "output_name": "output", "uuid": "1e4d0a8a-2e77-4bb5-a3a0-6fd3779af090"}]}, "12": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/imgteam/2d_feature_extraction/ip_2d_feature_extraction/0.18.1+galaxy0", "errors": null, "id": 12, "input_connections": {"input_label": {"id": 9, "output_name": "result"}, "use_raw_option|input_raw": {"id": 5, "output_name": "output"}}, "inputs": [{"description": "runtime parameter for tool Extract image features", "name": "use_raw_option"}], "label": null, "name": "Extract image features", "outputs": [{"name": "output", "type": "tabular"}], "position": {"left": 2814.3333740234375, "top": 355.3500061035156}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/imgteam/2d_feature_extraction/ip_2d_feature_extraction/0.18.1+galaxy0", "tool_shed_repository": {"changeset_revision": "5bc8cdc17fd0", "name": "2d_feature_extraction", "owner": "imgteam", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"feature_options\": {\"features\": \"select\", \"__current_case__\": 1, \"selected_features\": [\"--label\", \"--max_intensity\", \"--mean_intensity\", \"--area\", \"--filled_area\", \"--convex_area\", \"--extent\", \"--perimeter\", \"--eccentricity\", \"--convexity\", \"--moments\", \"--solidity\", \"--orientation\", \"--major_axis_length\", \"--minor_axis_length\", \"--inertia_tensor_eigvals\", \"--euler_number\", \"--equivalent_diameter\", \"--bbox\", \"--centroid\", \"--moments_hu\", \"--min_intensity\", \"--patches\"]}, \"input_label\": {\"__class__\": \"ConnectedValue\"}, \"use_raw_option\": {\"use_raw\": \"raw_image\", \"__current_case__\": 1, \"input_raw\": {\"__class__\": \"ConnectedValue\"}}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "0.18.1+galaxy0", "type": "tool", "uuid": "caa2f425-6d7b-4e8a-b8ae-89da3775ce4b", "when": null, "workflow_outputs": [{"label": "Image Features", "output_name": "output", "uuid": "6243dcfe-f3c2-4eeb-83cc-9281bfc6eba4"}]}, "13": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/imgteam/image_math/image_math/1.26.4+galaxy1", "errors": null, "id": 13, "input_connections": {"inputs_0|image": {"id": 9, "output_name": "result"}, "inputs_1|image": {"id": 3, "output_name": "output"}, "inputs_2|image": {"id": 10, "output_name": "output"}}, "inputs": [], "label": null, "name": "Process images using arithmetic expressions", "outputs": [{"name": "result", "type": "tiff"}], "position": {"left": 1408.3177607169048, "top": 519.2920266462543}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/imgteam/image_math/image_math/1.26.4+galaxy1", "tool_shed_repository": {"changeset_revision": "f8b7770cbca5", "name": "image_math", "owner": "imgteam", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"expression\": \"tessellation * (mask / 255) * (1 - seeds / 255)\", \"inputs\": [{\"__index__\": 0, \"image\": {\"__class__\": \"ConnectedValue\"}, \"name\": \"tessellation\"}, {\"__index__\": 1, \"image\": {\"__class__\": \"ConnectedValue\"}, \"name\": \"seeds\"}, {\"__index__\": 2, \"image\": {\"__class__\": \"ConnectedValue\"}, \"name\": \"mask\"}], \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.26.4+galaxy1", "type": "tool", "uuid": "138a6ff3-fcc8-4082-bbf9-4c308cfe1674", "when": null, "workflow_outputs": []}, "14": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/imgteam/colorize_labels/colorize_labels/3.2.1+galaxy1", "errors": null, "id": 14, "input_connections": {"input": {"id": 13, "output_name": "result"}}, "inputs": [], "label": null, "name": "Colorize label map", "outputs": [{"name": "output", "type": "png"}], "position": {"left": 2071.4977777777785, "top": 620.488}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/imgteam/colorize_labels/colorize_labels/3.2.1+galaxy1", "tool_shed_repository": {"changeset_revision": "3aa2d054848a", "name": "colorize_labels", "owner": "imgteam", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"bg_color\": \"#000000\", \"bg_label\": \"0\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"radius\": \"10\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "3.2.1+galaxy1", "type": "tool", "uuid": "25bbce6a-01d4-4010-8a7c-2d31c119c2de", "when": null, "workflow_outputs": []}, "15": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/imgteam/overlay_images/ip_overlay_images/0.0.4+galaxy1", "errors": null, "id": 15, "input_connections": {"method_option|im1": {"id": 7, "output_name": "output"}, "method_option|im2": {"id": 14, "output_name": "output"}}, "inputs": [{"description": "runtime parameter for tool Overlay images", "name": "method_option"}, {"description": "runtime parameter for tool Overlay images", "name": "method_option"}], "label": null, "name": "Overlay images", "outputs": [{"name": "out_tiff", "type": "tiff"}], "position": {"left": 2379.9799280237644, "top": 53.85060249812341}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/imgteam/overlay_images/ip_overlay_images/0.0.4+galaxy1", "tool_shed_repository": {"changeset_revision": "002f7bad3e82", "name": "overlay_images", "owner": "imgteam", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"method_option\": {\"method\": \"blending\", \"__current_case__\": 1, \"im1\": {\"__class__\": \"RuntimeValue\"}, \"im2\": {\"__class__\": \"RuntimeValue\"}, \"alpha\": \"0.5\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "0.0.4+galaxy1", "type": "tool", "uuid": "94c002b9-abe9-43c3-9d70-ae7014b3de98", "when": null, "workflow_outputs": []}}, "tags": ["imageanaylsis", "Segmentation", "voronoi"], "uuid": "9418aaba-a9cd-47a3-8610-b694c50e1f54", "version": 0} \ No newline at end of file From 7f52cc6b741ccfb1f0b5f0fd0965d11884851760 Mon Sep 17 00:00:00 2001 From: Anne Fouilloux Date: Thu, 7 Nov 2024 12:25:31 +0100 Subject: [PATCH 2/4] add intro for bioimages and Earth Observation --- .../voronoi-segmentation/tutorial.md | 62 +++++++++---------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/topics/imaging/tutorials/voronoi-segmentation/tutorial.md b/topics/imaging/tutorials/voronoi-segmentation/tutorial.md index f0e6b2371feb57..05c878cfbfe766 100644 --- a/topics/imaging/tutorials/voronoi-segmentation/tutorial.md +++ b/topics/imaging/tutorials/voronoi-segmentation/tutorial.md @@ -1,25 +1,20 @@ --- layout: tutorial_hands_on -title: Voronoi Segmentation and Feature Extraction +title: Voronoi Segmentation zenodo_link: '' questions: -- Which biological questions are addressed by the tutorial? -- Which bioinformatics techniques are important to know for this type of data? + - How to use Galaxy for Voronoi Segmentation? + - How should images be prepared before applying Voronoi segmentation? + - How can Voronoi segmentation be used to analyze spatial relationships and divide an image into distinct regions based on proximity? objectives: -- The learning objectives are the goals of the tutorial -- They will be informed by your audience and will communicate to them and to yourself - what you should focus on during the course -- They are single sentences describing what a learner should be able to do once they - have completed the tutorial -- You can use Bloom's Taxonomy to write effective learning objectives + - "What Galaxy tools can I use to perform Voronoi Segmentation in Galaxy." time_estimation: 3H key_points: -- The take-home messages -- They will appear at the end of the tutorial + - Learn how to prepare images for Voronoi segmentation. + - Learn to use Voronoi Segmentation to identify different regions in an image contributors: -- contributor1 -- contributor2 +- annefou --- @@ -28,27 +23,32 @@ contributors: -General introduction about the topic and then an introduction of the -tutorial (the questions and the objectives). It is nice also to have a -scheme to sum up the pipeline used during the tutorial. The idea is to -give to trainees insight into the content of the tutorial and the (theoretical -and technical) key concepts they will learn. +Voronoi segmentation is a technique used to divide an image or space into regions +based on the proximity to a set of defined points, called seeds or sites. Each +region, known as a Voronoi cell, contains all locations that are closer to its +seed than to any other. This approach is especially useful when analyzing spatial +relationships, as it reveals how different areas relate in terms of distance and +distribution. Voronoi segmentation is widely applicable for tasks where it's +important to understand the proximity or neighborhood structure of points, such +as organizing space, studying clustering patterns, or identifying regions of +influence around each point in various types of data. -You may want to cite some publications; this can be done by adding citations to the -bibliography file (`tutorial.bib` file next to your `tutorial.md` file). These citations -must be in bibtex format. If you have the DOI for the paper you wish to cite, you can -get the corresponding bibtex entry using [doi2bib.org](https://doi2bib.org). -With the example you will find in the `tutorial.bib` file, you can add a citation to -this article here in your tutorial like this: -{% raw %} `{% cite Batut2018 %}`{% endraw %}. -This will be rendered like this: {% cite Batut2018 %}, and links to a -[bibliography section](#bibliography) which will automatically be created at the end of the -tutorial. +## Voronoi Segmentation for bioimage analysis +In bioimage analysis, Voronoi segmentation is a valuable tool for studying the +spatial organization of cells, tissues, or other biological structures within an +image. By dividing an image into regions around each identified cell or structure, +Voronoi segmentation enables researchers to analyze how different cell types are +distributed, measure distances between cells, and examine clustering patterns. This +can provide insights into cellular interactions, tissue organization, and functional +relationships within biological samples, such as identifying the proximity of immune +cells to tumor cells or mapping neuron distributions within brain tissue. + +## Voronoi Segmentation for Earth Observation + +In Earth observation, Voronoi segmentation is used to analyze spatial patterns and distributions in satellite or aerial images. By creating regions based on proximity to specific points, such as cities, vegetation clusters, or monitoring stations, Voronoi segmentation helps in studying how features are organized across a landscape. This method is particularly useful for mapping resource distribution, analyzing urban growth, monitoring vegetation patterns, or assessing land use changes. For instance, it can help divide an area into regions of influence around weather stations or identify how different land cover types interact spatially, aiding in environmental monitoring and planning. -**Please follow our -[tutorial to learn how to fill the Markdown]({{ site.baseurl }}/topics/contributing/tutorials/create-new-tutorial-content/tutorial.html)** > > @@ -587,4 +587,4 @@ Consider merging some hands-on boxes to have a meaningful flow of the analyses* # Conclusion Sum up the tutorial and the key takeaways here. We encourage adding an overview image of the -pipeline used. \ No newline at end of file +pipeline used. From 29846f1e319729d7fa5c7926c68c9289656b3e89 Mon Sep 17 00:00:00 2001 From: Anne Fouilloux Date: Thu, 7 Nov 2024 14:04:30 +0100 Subject: [PATCH 3/4] update workflow --- .../workflows/main_workflow.ga | 525 +++++++++++++++++- 1 file changed, 524 insertions(+), 1 deletion(-) diff --git a/topics/imaging/tutorials/voronoi-segmentation/workflows/main_workflow.ga b/topics/imaging/tutorials/voronoi-segmentation/workflows/main_workflow.ga index 05e7b144188b0c..978594b5dc8e45 100644 --- a/topics/imaging/tutorials/voronoi-segmentation/workflows/main_workflow.ga +++ b/topics/imaging/tutorials/voronoi-segmentation/workflows/main_workflow.ga @@ -1 +1,524 @@ -{"a_galaxy_workflow": "true", "annotation": "Generic workflow to perform voronoi segmentation and their quantitative analysis (Black Background)", "comments": [{"child_steps": [1, 2, 0], "color": "red", "data": {"title": "User Input"}, "id": 0, "position": [0, 17], "size": [251.2, 660.6], "type": "frame"}, {"child_steps": [4, 5, 6, 7, 8, 9, 10, 13, 14, 15], "color": "lime", "data": {"title": "Voronoi Segmentation Plus Overlay"}, "id": 1, "position": [365, 0], "size": [2266, 827], "type": "frame"}, {"child_steps": [11], "color": "orange", "data": {"title": "Quantitative Analysis - Image features and Counting"}, "id": 2, "position": [2794.4, 110.80000000000001], "size": [240, 410], "type": "frame"}], "creator": [{"class": "Person", "identifier": "", "name": "Riccardo Massei"}], "format-version": "0.1", "license": "MIT", "name": "Voronoi Segmentation and Feature Extraction", "steps": {"0": {"annotation": "Image to analyze", "content_id": null, "errors": null, "id": 0, "input_connections": {}, "inputs": [{"description": "Image to analyze", "name": "Input Image"}], "label": "Input Image", "name": "Input dataset", "outputs": [], "position": {"left": 20, "top": 57}, "tool_id": null, "tool_state": "{\"optional\": false, \"tag\": null}", "tool_version": null, "type": "data_input", "uuid": "dda4de6c-776e-44bc-b34b-2b7bc060ee62", "when": null, "workflow_outputs": []}, "1": {"annotation": "Channel where to perform the Voronoi Segmentation", "content_id": null, "errors": null, "id": 1, "input_connections": {}, "inputs": [{"description": "Channel where to perform the Voronoi Segmentation", "name": "Select Channel for Voronoi Segmentation"}], "label": "Select Channel for Voronoi Segmentation", "name": "Input parameter", "outputs": [], "position": {"left": 24, "top": 235}, "tool_id": null, "tool_state": "{\"parameter_type\": \"integer\", \"optional\": false}", "tool_version": null, "type": "parameter_input", "uuid": "eac65cde-5951-435b-9214-f9b849801629", "when": null, "workflow_outputs": [{"label": null, "output_name": "output", "uuid": "0e4d4c97-298e-46ea-846b-5af9e7fd7ab4"}]}, "2": {"annotation": "", "content_id": null, "errors": null, "id": 2, "input_connections": {}, "inputs": [{"description": "", "name": "Threhold Value"}], "label": "Threhold Value", "name": "Input parameter", "outputs": [], "position": {"left": 22, "top": 421.5}, "tool_id": null, "tool_state": "{\"parameter_type\": \"float\", \"optional\": false}", "tool_version": null, "type": "parameter_input", "uuid": "2a014e33-cb79-4b27-8ff4-61fb7f288fb8", "when": null, "workflow_outputs": [{"label": null, "output_name": "output", "uuid": "203afe86-4509-48b3-bf36-89020ce42e42"}]}, "3": {"annotation": "Binary Image with seeds", "content_id": null, "errors": null, "id": 3, "input_connections": {}, "inputs": [{"description": "Binary Image with seeds", "name": "Input seeds for segmentation"}], "label": "Input seeds for segmentation", "name": "Input dataset", "outputs": [], "position": {"left": 21.557356375842502, "top": 575.3661152348966}, "tool_id": null, "tool_state": "{\"optional\": false, \"tag\": null}", "tool_version": null, "type": "data_input", "uuid": "924d2ac9-3b0f-4d37-a618-baed5dd0bfc1", "when": null, "workflow_outputs": []}, "4": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/imgteam/bfconvert/ip_convertimage/6.7.0+galaxy3", "errors": null, "id": 4, "input_connections": {"input_file": {"id": 0, "output_name": "output"}}, "inputs": [{"description": "runtime parameter for tool Convert image format", "name": "input_file"}], "label": null, "name": "Convert image format", "outputs": [{"name": "output", "type": "tiff"}], "position": {"left": 1310.2587706377763, "top": 57.994534604236485}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/imgteam/bfconvert/ip_convertimage/6.7.0+galaxy3", "tool_shed_repository": {"changeset_revision": "fcadded98e61", "name": "bfconvert", "owner": "imgteam", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"bigtiff\": false, \"channel_options\": {\"extract\": \"True\", \"__current_case__\": 1, \"channel\": \"0\"}, \"compression\": \"False\", \"crop_options\": {\"extract\": \"False\", \"__current_case__\": 0}, \"input_file\": {\"__class__\": \"RuntimeValue\"}, \"noflat\": false, \"out_format\": \"tiff\", \"pyramid_options\": {\"generate\": \"False\", \"__current_case__\": 1}, \"range_options\": {\"extract\": \"False\", \"__current_case__\": 0}, \"series_options\": {\"extract\": \"False\", \"__current_case__\": 0}, \"tile_options\": {\"extract\": \"False\", \"__current_case__\": 0}, \"timepoint_options\": {\"extract\": \"False\", \"__current_case__\": 0}, \"z_options\": {\"extract\": \"False\", \"__current_case__\": 0}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "6.7.0+galaxy3", "type": "tool", "uuid": "c0b429ac-904f-4f14-8ed5-bba1ea2ebfc5", "when": null, "workflow_outputs": []}, "5": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/imgteam/bfconvert/ip_convertimage/6.7.0+galaxy3", "errors": null, "id": 5, "input_connections": {"channel_options|channel": {"id": 1, "output_name": "output"}, "input_file": {"id": 0, "output_name": "output"}}, "inputs": [{"description": "runtime parameter for tool Convert image format", "name": "channel_options"}], "label": null, "name": "Convert image format", "outputs": [{"name": "output", "type": "tiff"}], "position": {"left": 413.00801220703124, "top": 221.574}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/imgteam/bfconvert/ip_convertimage/6.7.0+galaxy3", "tool_shed_repository": {"changeset_revision": "fcadded98e61", "name": "bfconvert", "owner": "imgteam", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"bigtiff\": false, \"channel_options\": {\"extract\": \"True\", \"__current_case__\": 1, \"channel\": {\"__class__\": \"ConnectedValue\"}}, \"compression\": \"False\", \"crop_options\": {\"extract\": \"False\", \"__current_case__\": 0}, \"input_file\": {\"__class__\": \"ConnectedValue\"}, \"noflat\": false, \"out_format\": \"tiff\", \"pyramid_options\": {\"generate\": \"False\", \"__current_case__\": 1}, \"range_options\": {\"extract\": \"False\", \"__current_case__\": 0}, \"series_options\": {\"extract\": \"False\", \"__current_case__\": 0}, \"tile_options\": {\"extract\": \"False\", \"__current_case__\": 0}, \"timepoint_options\": {\"extract\": \"False\", \"__current_case__\": 0}, \"z_options\": {\"extract\": \"False\", \"__current_case__\": 0}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "6.7.0+galaxy3", "type": "tool", "uuid": "c18c4523-f5d5-4769-a6bd-9df5480f68e3", "when": null, "workflow_outputs": []}, "6": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/imgteam/binary2labelimage/ip_binary_to_labelimage/0.5+galaxy0", "errors": null, "id": 6, "input_connections": {"input": {"id": 3, "output_name": "output"}}, "inputs": [], "label": null, "name": "Convert binary image to label map", "outputs": [{"name": "output", "type": "tiff"}], "position": {"left": 421.4382419411547, "top": 510.2648436754392}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/imgteam/binary2labelimage/ip_binary_to_labelimage/0.5+galaxy0", "tool_shed_repository": {"changeset_revision": "984358e43242", "name": "binary2labelimage", "owner": "imgteam", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"input\": {\"__class__\": \"ConnectedValue\"}, \"mode\": {\"mode_selector\": \"cca\", \"__current_case__\": 0}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "0.5+galaxy0", "type": "tool", "uuid": "5937f007-43d5-4884-918f-36ad484580b5", "when": null, "workflow_outputs": []}, "7": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/imgteam/repeat_channels/repeat_channels/1.26.4+galaxy0", "errors": null, "id": 7, "input_connections": {"input": {"id": 4, "output_name": "output"}}, "inputs": [], "label": null, "name": "Convert single-channel to multi-channel image", "outputs": [{"name": "output", "type": "tiff"}], "position": {"left": 1798.9166870117188, "top": 65.46665954589844}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/imgteam/repeat_channels/repeat_channels/1.26.4+galaxy0", "tool_shed_repository": {"changeset_revision": "7cdb50fee601", "name": "repeat_channels", "owner": "imgteam", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"count\": \"3\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.26.4+galaxy0", "type": "tool", "uuid": "d0854e51-56e7-4eab-8d9a-cc60cbd2eba5", "when": null, "workflow_outputs": []}, "8": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/imgteam/2d_simple_filter/ip_filter_standard/1.12.0+galaxy0", "errors": null, "id": 8, "input_connections": {"input": {"id": 5, "output_name": "output"}}, "inputs": [], "label": null, "name": "Filter 2-D image", "outputs": [{"name": "output", "type": "tiff"}], "position": {"left": 722.1079877929687, "top": 198.9739938964844}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/imgteam/2d_simple_filter/ip_filter_standard/1.12.0+galaxy0", "tool_shed_repository": {"changeset_revision": "6c4b22ef2b81", "name": "2d_simple_filter", "owner": "imgteam", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"filter\": {\"filter_type\": \"gaussian\", \"__current_case__\": 0, \"size\": \"3.0\"}, \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.12.0+galaxy0", "type": "tool", "uuid": "ae388ff0-8ad5-4053-9931-b43aaa701bf5", "when": null, "workflow_outputs": []}, "9": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/imgteam/voronoi_tesselation/voronoi_tessellation/0.22.0+galaxy1", "errors": null, "id": 9, "input_connections": {"input": {"id": 6, "output_name": "output"}}, "inputs": [], "label": null, "name": "Compute Voronoi tessellation", "outputs": [{"name": "result", "type": "tiff"}], "position": {"left": 825.9246687011719, "top": 683.0999755859375}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/imgteam/voronoi_tesselation/voronoi_tessellation/0.22.0+galaxy1", "tool_shed_repository": {"changeset_revision": "e7fdea8385f0", "name": "voronoi_tesselation", "owner": "imgteam", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "0.22.0+galaxy1", "type": "tool", "uuid": "61a6a645-2f8e-4025-8a5f-89ad07a83510", "when": null, "workflow_outputs": []}, "10": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/imgteam/2d_auto_threshold/ip_threshold/0.18.1+galaxy2", "errors": null, "id": 10, "input_connections": {"input": {"id": 8, "output_name": "output"}, "th_method|threshold": {"id": 2, "output_name": "output"}}, "inputs": [{"description": "runtime parameter for tool Threshold image", "name": "th_method"}], "label": null, "name": "Threshold image", "outputs": [{"name": "output", "type": "tiff"}], "position": {"left": 988, "top": 381.5}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/imgteam/2d_auto_threshold/ip_threshold/0.18.1+galaxy2", "tool_shed_repository": {"changeset_revision": "e5c8e7e72373", "name": "2d_auto_threshold", "owner": "imgteam", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"input\": {\"__class__\": \"ConnectedValue\"}, \"invert_output\": false, \"th_method\": {\"method_id\": \"manual\", \"__current_case__\": 0, \"threshold\": {\"__class__\": \"ConnectedValue\"}, \"block_size\": \"0\", \"offset\": \"0\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "0.18.1+galaxy2", "type": "tool", "uuid": "c3843019-87b0-47b8-aa68-52d1151bf8b0", "when": null, "workflow_outputs": []}, "11": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/imgteam/count_objects/ip_count_objects/0.0.5-2", "errors": null, "id": 11, "input_connections": {"input": {"id": 9, "output_name": "result"}}, "inputs": [], "label": null, "name": "Count objects in label map", "outputs": [{"name": "output", "type": "tabular"}], "position": {"left": 2817.816650390625, "top": 182.683349609375}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/imgteam/count_objects/ip_count_objects/0.0.5-2", "tool_shed_repository": {"changeset_revision": "b58447a2eed2", "name": "count_objects", "owner": "imgteam", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "0.0.5-2", "type": "tool", "uuid": "eb7b59cd-4450-44fc-b459-6168a9434895", "when": null, "workflow_outputs": [{"label": "Count Objects", "output_name": "output", "uuid": "1e4d0a8a-2e77-4bb5-a3a0-6fd3779af090"}]}, "12": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/imgteam/2d_feature_extraction/ip_2d_feature_extraction/0.18.1+galaxy0", "errors": null, "id": 12, "input_connections": {"input_label": {"id": 9, "output_name": "result"}, "use_raw_option|input_raw": {"id": 5, "output_name": "output"}}, "inputs": [{"description": "runtime parameter for tool Extract image features", "name": "use_raw_option"}], "label": null, "name": "Extract image features", "outputs": [{"name": "output", "type": "tabular"}], "position": {"left": 2814.3333740234375, "top": 355.3500061035156}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/imgteam/2d_feature_extraction/ip_2d_feature_extraction/0.18.1+galaxy0", "tool_shed_repository": {"changeset_revision": "5bc8cdc17fd0", "name": "2d_feature_extraction", "owner": "imgteam", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"feature_options\": {\"features\": \"select\", \"__current_case__\": 1, \"selected_features\": [\"--label\", \"--max_intensity\", \"--mean_intensity\", \"--area\", \"--filled_area\", \"--convex_area\", \"--extent\", \"--perimeter\", \"--eccentricity\", \"--convexity\", \"--moments\", \"--solidity\", \"--orientation\", \"--major_axis_length\", \"--minor_axis_length\", \"--inertia_tensor_eigvals\", \"--euler_number\", \"--equivalent_diameter\", \"--bbox\", \"--centroid\", \"--moments_hu\", \"--min_intensity\", \"--patches\"]}, \"input_label\": {\"__class__\": \"ConnectedValue\"}, \"use_raw_option\": {\"use_raw\": \"raw_image\", \"__current_case__\": 1, \"input_raw\": {\"__class__\": \"ConnectedValue\"}}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "0.18.1+galaxy0", "type": "tool", "uuid": "caa2f425-6d7b-4e8a-b8ae-89da3775ce4b", "when": null, "workflow_outputs": [{"label": "Image Features", "output_name": "output", "uuid": "6243dcfe-f3c2-4eeb-83cc-9281bfc6eba4"}]}, "13": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/imgteam/image_math/image_math/1.26.4+galaxy1", "errors": null, "id": 13, "input_connections": {"inputs_0|image": {"id": 9, "output_name": "result"}, "inputs_1|image": {"id": 3, "output_name": "output"}, "inputs_2|image": {"id": 10, "output_name": "output"}}, "inputs": [], "label": null, "name": "Process images using arithmetic expressions", "outputs": [{"name": "result", "type": "tiff"}], "position": {"left": 1408.3177607169048, "top": 519.2920266462543}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/imgteam/image_math/image_math/1.26.4+galaxy1", "tool_shed_repository": {"changeset_revision": "f8b7770cbca5", "name": "image_math", "owner": "imgteam", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"expression\": \"tessellation * (mask / 255) * (1 - seeds / 255)\", \"inputs\": [{\"__index__\": 0, \"image\": {\"__class__\": \"ConnectedValue\"}, \"name\": \"tessellation\"}, {\"__index__\": 1, \"image\": {\"__class__\": \"ConnectedValue\"}, \"name\": \"seeds\"}, {\"__index__\": 2, \"image\": {\"__class__\": \"ConnectedValue\"}, \"name\": \"mask\"}], \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.26.4+galaxy1", "type": "tool", "uuid": "138a6ff3-fcc8-4082-bbf9-4c308cfe1674", "when": null, "workflow_outputs": []}, "14": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/imgteam/colorize_labels/colorize_labels/3.2.1+galaxy1", "errors": null, "id": 14, "input_connections": {"input": {"id": 13, "output_name": "result"}}, "inputs": [], "label": null, "name": "Colorize label map", "outputs": [{"name": "output", "type": "png"}], "position": {"left": 2071.4977777777785, "top": 620.488}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/imgteam/colorize_labels/colorize_labels/3.2.1+galaxy1", "tool_shed_repository": {"changeset_revision": "3aa2d054848a", "name": "colorize_labels", "owner": "imgteam", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"bg_color\": \"#000000\", \"bg_label\": \"0\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"radius\": \"10\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "3.2.1+galaxy1", "type": "tool", "uuid": "25bbce6a-01d4-4010-8a7c-2d31c119c2de", "when": null, "workflow_outputs": []}, "15": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/imgteam/overlay_images/ip_overlay_images/0.0.4+galaxy1", "errors": null, "id": 15, "input_connections": {"method_option|im1": {"id": 7, "output_name": "output"}, "method_option|im2": {"id": 14, "output_name": "output"}}, "inputs": [{"description": "runtime parameter for tool Overlay images", "name": "method_option"}, {"description": "runtime parameter for tool Overlay images", "name": "method_option"}], "label": null, "name": "Overlay images", "outputs": [{"name": "out_tiff", "type": "tiff"}], "position": {"left": 2379.9799280237644, "top": 53.85060249812341}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/imgteam/overlay_images/ip_overlay_images/0.0.4+galaxy1", "tool_shed_repository": {"changeset_revision": "002f7bad3e82", "name": "overlay_images", "owner": "imgteam", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"method_option\": {\"method\": \"blending\", \"__current_case__\": 1, \"im1\": {\"__class__\": \"RuntimeValue\"}, \"im2\": {\"__class__\": \"RuntimeValue\"}, \"alpha\": \"0.5\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "0.0.4+galaxy1", "type": "tool", "uuid": "94c002b9-abe9-43c3-9d70-ae7014b3de98", "when": null, "workflow_outputs": []}}, "tags": ["imageanaylsis", "Segmentation", "voronoi"], "uuid": "9418aaba-a9cd-47a3-8610-b694c50e1f54", "version": 0} \ No newline at end of file +{ + "a_galaxy_workflow": "true", + "annotation": "Generic workflow to perform voronoi segmentation and their quantitative analysis (Black Background)", + "comments": [ + { + "child_steps": [ + 3, + 2, + 0, + 1 + ], + "color": "orange", + "data": { + "title": "User Input" + }, + "id": 0, + "position": [ + 0, + 45 + ], + "size": [ + 251.2, + 660.6 + ], + "type": "frame" + }, + { + "child_steps": [ + 10 + ], + "color": "blue", + "data": { + "title": "Visualisation Image features" + }, + "id": 3, + "position": [ + 2526.9, + 421.2 + ], + "size": [ + 240, + 411 + ], + "type": "frame" + }, + { + "child_steps": [ + 9, + 5, + 7, + 8 + ], + "color": "lime", + "data": { + "title": "Voronoi segmentation" + }, + "id": 2, + "position": [ + 974.3, + 257.2 + ], + "size": [ + 1254.2, + 900.9 + ], + "type": "frame" + }, + { + "child_steps": [ + 6, + 4 + ], + "color": "yellow", + "data": { + "title": "Preprocessing (only for bio-images)" + }, + "id": 1, + "position": [ + 360.3, + 0 + ], + "size": [ + 401, + 429 + ], + "type": "frame" + } + ], + "creator": [ + { + "class": "Person", + "identifier": "", + "name": "Riccardo Massei" + } + ], + "format-version": "0.1", + "license": "MIT", + "name": "Voronoi Segmentation BiA (Tutorial)", + "report": { + "markdown": "\n# Workflow Execution Report\n\n## Workflow Inputs\n```galaxy\ninvocation_inputs()\n```\n\n## Workflow Outputs\n```galaxy\ninvocation_outputs()\n```\n\n## Workflow\n```galaxy\nworkflow_display()\n```\n" + }, + "steps": { + "0": { + "annotation": "Image to analyze", + "content_id": null, + "errors": null, + "id": 0, + "input_connections": {}, + "inputs": [ + { + "description": "Image to analyze", + "name": "Input Image" + } + ], + "label": "Input Image", + "name": "Input dataset", + "outputs": [], + "position": { + "left": 19.896066009909354, + "top": 85.02096026201994 + }, + "tool_id": null, + "tool_state": "{\"optional\": false, \"tag\": null}", + "tool_version": null, + "type": "data_input", + "uuid": "57297a4a-3c64-41bc-bf4a-70aa07221187", + "when": null, + "workflow_outputs": [] + }, + "1": { + "annotation": "Channel where to perform the Voronoi Segmentation", + "content_id": null, + "errors": null, + "id": 1, + "input_connections": {}, + "inputs": [ + { + "description": "Channel where to perform the Voronoi Segmentation", + "name": "Select Channel for Voronoi Segmentation" + } + ], + "label": "Select Channel for Voronoi Segmentation", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 23.89588290444067, + "top": 265.0208381917074 + }, + "tool_id": null, + "tool_state": "{\"parameter_type\": \"integer\", \"optional\": false}", + "tool_version": null, + "type": "parameter_input", + "uuid": "a375cf18-e81c-4ecd-af0e-dd52f64d5578", + "when": null, + "workflow_outputs": [] + }, + "2": { + "annotation": "The threshold in Voronoi segmentation sets a distance limit for each region's size and influence around its seed point.", + "content_id": null, + "errors": null, + "id": 2, + "input_connections": {}, + "inputs": [ + { + "description": "The threshold in Voronoi segmentation sets a distance limit for each region's size and influence around its seed point.", + "name": "Threshold Value" + } + ], + "label": "Threshold Value", + "name": "Input parameter", + "outputs": [], + "position": { + "left": 21.89588290444067, + "top": 449.5208381917074 + }, + "tool_id": null, + "tool_state": "{\"parameter_type\": \"float\", \"optional\": false}", + "tool_version": null, + "type": "parameter_input", + "uuid": "372a34f0-8d8b-4bb2-80f7-64990cb65abd", + "when": null, + "workflow_outputs": [] + }, + "3": { + "annotation": "Binary Image with seeds", + "content_id": null, + "errors": null, + "id": 3, + "input_connections": {}, + "inputs": [ + { + "description": "Binary Image with seeds", + "name": "Input seeds for segmentation" + } + ], + "label": "Input seeds for segmentation", + "name": "Input dataset", + "outputs": [], + "position": { + "left": 21.453422385751928, + "top": 603.3870754969164 + }, + "tool_id": null, + "tool_state": "{\"optional\": false, \"tag\": null}", + "tool_version": null, + "type": "data_input", + "uuid": "d45104a3-8567-4369-94e5-61149142bc00", + "when": null, + "workflow_outputs": [] + }, + "4": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/imgteam/bfconvert/ip_convertimage/6.7.0+galaxy3", + "errors": null, + "id": 4, + "input_connections": { + "channel_options|channel": { + "id": 1, + "output_name": "output" + }, + "input_file": { + "id": 0, + "output_name": "output" + } + }, + "inputs": [ + { + "description": "runtime parameter for tool Convert image format", + "name": "channel_options" + } + ], + "label": null, + "name": "Convert image format", + "outputs": [ + { + "name": "output", + "type": "tiff" + } + ], + "position": { + "left": 384.06302675863685, + "top": 50.600695401694594 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/imgteam/bfconvert/ip_convertimage/6.7.0+galaxy3", + "tool_shed_repository": { + "changeset_revision": "fcadded98e61", + "name": "bfconvert", + "owner": "imgteam", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"bigtiff\": false, \"channel_options\": {\"extract\": \"True\", \"__current_case__\": 1, \"channel\": {\"__class__\": \"ConnectedValue\"}}, \"compression\": \"False\", \"crop_options\": {\"extract\": \"False\", \"__current_case__\": 0}, \"input_file\": {\"__class__\": \"ConnectedValue\"}, \"noflat\": false, \"out_format\": \"tiff\", \"pyramid_options\": {\"generate\": \"False\", \"__current_case__\": 1}, \"range_options\": {\"extract\": \"False\", \"__current_case__\": 0}, \"series_options\": {\"extract\": \"False\", \"__current_case__\": 0}, \"tile_options\": {\"extract\": \"False\", \"__current_case__\": 0}, \"timepoint_options\": {\"extract\": \"False\", \"__current_case__\": 0}, \"z_options\": {\"extract\": \"False\", \"__current_case__\": 0}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "6.7.0+galaxy3", + "type": "tool", + "uuid": "ba289013-f43c-48e3-a280-605ae8a0b063", + "when": null, + "workflow_outputs": [] + }, + "5": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/imgteam/binary2labelimage/ip_binary_to_labelimage/0.5+galaxy0", + "errors": null, + "id": 5, + "input_connections": { + "input": { + "id": 3, + "output_name": "output" + } + }, + "inputs": [], + "label": null, + "name": "Convert binary image to label map", + "outputs": [ + { + "name": "output", + "type": "tiff" + } + ], + "position": { + "left": 1110.8141593247035, + "top": 886.4280635640689 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/imgteam/binary2labelimage/ip_binary_to_labelimage/0.5+galaxy0", + "tool_shed_repository": { + "changeset_revision": "984358e43242", + "name": "binary2labelimage", + "owner": "imgteam", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"input\": {\"__class__\": \"ConnectedValue\"}, \"mode\": {\"mode_selector\": \"cca\", \"__current_case__\": 0}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "0.5+galaxy0", + "type": "tool", + "uuid": "94e9da42-3cce-42b7-a997-7cec28ea2ab2", + "when": null, + "workflow_outputs": [] + }, + "6": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/imgteam/2d_simple_filter/ip_filter_standard/1.12.0+galaxy0", + "errors": null, + "id": 6, + "input_connections": { + "input": { + "id": 4, + "output_name": "output" + } + }, + "inputs": [], + "label": null, + "name": "Filter 2-D image", + "outputs": [ + { + "name": "output", + "type": "tiff" + } + ], + "position": { + "left": 531.3741290823522, + "top": 270.986691759329 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/imgteam/2d_simple_filter/ip_filter_standard/1.12.0+galaxy0", + "tool_shed_repository": { + "changeset_revision": "6c4b22ef2b81", + "name": "2d_simple_filter", + "owner": "imgteam", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"filter\": {\"filter_type\": \"gaussian\", \"__current_case__\": 0, \"size\": \"3.0\"}, \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "1.12.0+galaxy0", + "type": "tool", + "uuid": "9a596b52-d436-4027-a235-d364419fa359", + "when": null, + "workflow_outputs": [] + }, + "7": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/imgteam/voronoi_tesselation/voronoi_tessellation/0.22.0+galaxy1", + "errors": null, + "id": 7, + "input_connections": { + "input": { + "id": 5, + "output_name": "output" + } + }, + "inputs": [], + "label": null, + "name": "Compute Voronoi tessellation", + "outputs": [ + { + "name": "result", + "type": "tiff" + } + ], + "position": { + "left": 1383.3013280258754, + "top": 901.2780391500064 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/imgteam/voronoi_tesselation/voronoi_tessellation/0.22.0+galaxy1", + "tool_shed_repository": { + "changeset_revision": "e7fdea8385f0", + "name": "voronoi_tesselation", + "owner": "imgteam", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "0.22.0+galaxy1", + "type": "tool", + "uuid": "070b08bc-7959-496e-8c7b-a095ef6f89a4", + "when": null, + "workflow_outputs": [] + }, + "8": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/imgteam/2d_auto_threshold/ip_threshold/0.18.1+galaxy2", + "errors": null, + "id": 8, + "input_connections": { + "input": { + "id": 6, + "output_name": "output" + }, + "th_method|threshold": { + "id": 2, + "output_name": "output" + } + }, + "inputs": [ + { + "description": "runtime parameter for tool Threshold image", + "name": "th_method" + } + ], + "label": null, + "name": "Threshold image", + "outputs": [ + { + "name": "output", + "type": "tiff" + } + ], + "position": { + "left": 1129.085474681118, + "top": 329.595615762486 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/imgteam/2d_auto_threshold/ip_threshold/0.18.1+galaxy2", + "tool_shed_repository": { + "changeset_revision": "e5c8e7e72373", + "name": "2d_auto_threshold", + "owner": "imgteam", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"input\": {\"__class__\": \"ConnectedValue\"}, \"invert_output\": false, \"th_method\": {\"method_id\": \"manual\", \"__current_case__\": 0, \"threshold\": {\"__class__\": \"ConnectedValue\"}, \"block_size\": \"0\", \"offset\": \"0\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "0.18.1+galaxy2", + "type": "tool", + "uuid": "761a9d93-2d70-498a-b79f-c70de1363f6c", + "when": null, + "workflow_outputs": [] + }, + "9": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/imgteam/image_math/image_math/1.26.4+galaxy1", + "errors": null, + "id": 9, + "input_connections": { + "inputs_0|image": { + "id": 7, + "output_name": "result" + }, + "inputs_1|image": { + "id": 3, + "output_name": "output" + }, + "inputs_2|image": { + "id": 8, + "output_name": "output" + } + }, + "inputs": [], + "label": null, + "name": "Process images using arithmetic expressions", + "outputs": [ + { + "name": "result", + "type": "tiff" + } + ], + "position": { + "left": 1935.0085912670663, + "top": 583.5575492040355 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/imgteam/image_math/image_math/1.26.4+galaxy1", + "tool_shed_repository": { + "changeset_revision": "f8b7770cbca5", + "name": "image_math", + "owner": "imgteam", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"expression\": \"tessellation * (mask / 255) * (1 - seeds / 255)\", \"inputs\": [{\"__index__\": 0, \"image\": {\"__class__\": \"ConnectedValue\"}, \"name\": \"tessellation\"}, {\"__index__\": 1, \"image\": {\"__class__\": \"ConnectedValue\"}, \"name\": \"seeds\"}, {\"__index__\": 2, \"image\": {\"__class__\": \"ConnectedValue\"}, \"name\": \"mask\"}], \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "1.26.4+galaxy1", + "type": "tool", + "uuid": "b81e3146-4bcd-477e-8499-9bd1f9a5bed6", + "when": null, + "workflow_outputs": [] + }, + "10": { + "annotation": "Visualize the different regions", + "content_id": "toolshed.g2.bx.psu.edu/repos/imgteam/colorize_labels/colorize_labels/3.2.1+galaxy1", + "errors": null, + "id": 10, + "input_connections": { + "input": { + "id": 9, + "output_name": "result" + } + }, + "inputs": [], + "label": "Visualisation", + "name": "Colorize label map", + "outputs": [ + { + "name": "output", + "type": "png" + } + ], + "position": { + "left": 2545.469463466948, + "top": 600.5368843142134 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/imgteam/colorize_labels/colorize_labels/3.2.1+galaxy1", + "tool_shed_repository": { + "changeset_revision": "3aa2d054848a", + "name": "colorize_labels", + "owner": "imgteam", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"bg_color\": \"#000000\", \"bg_label\": \"0\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"radius\": \"10\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "3.2.1+galaxy1", + "type": "tool", + "uuid": "80875ea7-b51a-40aa-95af-7835c061d53f", + "when": null, + "workflow_outputs": [ + { + "label": "Image", + "output_name": "output", + "uuid": "69596a0e-4c77-4407-b2a2-0b978afd1876" + } + ] + } + }, + "tags": [ + "imageanaylsis", + "Segmentation", + "voronoi" + ], + "uuid": "0e074432-8100-4013-a5d5-b441eafca0ce", + "version": 9 +} \ No newline at end of file From 91e17a89a8f53edf4a9a82d3dbb40c059f93e2e6 Mon Sep 17 00:00:00 2001 From: Anne Fouilloux Date: Thu, 7 Nov 2024 16:25:46 +0100 Subject: [PATCH 4/4] add input data --- .../voronoi-segmentation/BIAD634_IM276.png | Bin 0 -> 139602 bytes .../voronoi-segmentation/tutorial.md | 268 ++++-------------- 2 files changed, 57 insertions(+), 211 deletions(-) create mode 100644 topics/imaging/images/voronoi-segmentation/BIAD634_IM276.png diff --git a/topics/imaging/images/voronoi-segmentation/BIAD634_IM276.png b/topics/imaging/images/voronoi-segmentation/BIAD634_IM276.png new file mode 100644 index 0000000000000000000000000000000000000000..c8b2abdcd2dfafb28b40a948d0905346b5ca3650 GIT binary patch literal 139602 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
  • AY{+|KajO+;|k>sGqH(3=|I-nePVhALdnH>=a;L@`qttgk8CJrEOxVc~t< zzNGeP5Ti!Wl%2q0`}FbywTT!Y)2Rd>kMk|3?lq)L3lh8SRi{viMa3sk%DolhLkk_v z6>tu&pHs5*_r&s32-pwq1H1sA#?Iq&mR>_njV1tBR4-aj_cHKcjr)3jRAALisDB4t zJp@%t@*`)0(5ByY&9zUBjXtm2Kan~N1^b-{$MnrA^jI?Yo%m!k;pmfXytGjBGlv^@ z_q^*6Xz_z!$fdj=40zC-RE3|Q8Ni}PL!)t-B@SFf7M(e4Km&9f$HPFUrk+!x}1xey(5<3xVeqX zedC8LmI~=ipMC<7ae3%^ZAp>7;?q+P4c~ORw2(aiDoA=j@)7m^%8HSRA+b;inJ;C@ zfj!Hs){savnCkYc9nz*{w&;GIZw?Q)C`%WMu8`kp96zvGjE0=QWwjW}I81Ii|3T^~ z1%`(|suX!C67{J>^|+=0KG#P+oV?L#ci`?ZAEV-Tevy_K%ze(>YseGR+)`BbKuoHr zp%+pNN0?eMJJ8P^-{_wfWqK z7@OJ9&@j6d{3^p#kgDmHm0K9H+UPt|cR)CN@qhcvkwN_yEPymPo z3a~qJcqB)gXC(LNSb7wgv#FSob18}5Itmf>ltxH_{T;gQdHl1Q;>!*$(dRcdt1x!% zW{1#~tYCN}gtfws6Dc)C*-Rv=>j2xDLzjpuyPOk?doH0Cwy)7oy9a=Ay&Bv=Gxz=t zr9Y7aa=&h7Z6+g0|fY#1+75Fw2HrTO#p3QEeoTZ9sXlnc;W(6b^6y&Cjne? zr+NqFYlmAk8REsIp-V&M)U2? z!P!v<*T!sh&0I6{Akqqpju=7=FoQbNUb&SX`W$L^ePI5SPg1{j{SS8l`OR!24!`Hs zBDJ}0X4Q32ZFT5Y*wb>NhEw|&Ee7CRR zue_kDD4!@k%@Vv5O4lf`q{#05%bpvjhM+krCo?bnH)p-%x2(mv^~{3R%o>I?{%U~X z;zIhA8WzN-yM9D>m83?gEWK|F?RoCpKNI*uzIJ!QA zQJyDjJbD}Iulv(&_0Ts=*A=4@xZitAx~x3;9jg3xy?;e7y{IvSC;|40gSE>_W~h~Q zlwBRssr^~?0;Ig`%9BnvzH(|UCv*5?q3a2zN_)edzRt6x#cakmj`Bb0*irFGA{s`y zYbj>;NKuP4cU2Y|S7`W_qTF3W#Gk?V`NX*mFw&+lAyh&~u$Wgj|*pebqHaZ2er*mBHd$3xf^r&3#g9Z5O zQWAxQ*DD8R?@{IdTclI{ghhVQ`MX5@VyIZ4AadS|vZp z_89mI1)4LA>d=TE(>hG2t#hO7-)16=_@$hp29ssh(am)^1E?M^=swgjDfNq&vC3TbMlq(J6OM`C)3rM%VlF9RgyLlk>zc<>-vCrwXR3Hor{|(N3=e0B4j$OW${nX;0 zPyhB78z6?g)BP`~*`{jh!f*Ub7E>U~d_rRSMpq7#^WAa6YMyd~W#aOQijf4frjBIL ziy@__4#YE5mJ_S=4;**}6!}9f#UTw$uU%~_y_gC{R2V*U=VY}V7*IH^$ zF!hkH=Q`T3Q<$#adbF*nvEEpl+#2i=YStX&%T<>m<(j^q5tLo7`rfACZ5&%oEvV^` zx77H)PYeQ<3|54NO>q{?K!h>S}E^ly%3tjjBv>XzwsAc9u8#d$I z=yPmbP&;zU)7NxzLKqt<;MqKN;^N*A@Y{-`s*UU-pH513g^1JT3V@}sBA2o3EPn8`xQ4c$#0);-b zpChJPzlhq8Q6{~Sxmm~O3{ zuHAphQ{JqLgsmUsTs)*hP3S)>Re$Ew-a0*b)`T6vtJs+JA$RbR!n9#QICpGiLO^Sl z`mb@N%z%JYGugJ|-a6g_Q^8C$vccouY>jsmqtW^HZ2_^t{U~;a}s2eNM z``X4KDOf{C;3bJjhz3us0Z7c4Pm13y9nM&rB?U<%l<7P2NmPG8|6R7lrP{0z)iy`f|0XG@Dh_K1 zj7|!Qy_z9AArnPMVSACM)uSc4nq_Xx5m#yuje*Qmi-;7_AA%tGD60>*BK#SJP76{JN)Pdj`??xLv z{1nX$rG{+|a;Sn*gf(_ky~zw)Sr~F|(wdc}x+oV=`P_W4fZ(-e(&hOjZJ`Xr?vH;Y zYxlHd7XiX5w)GAM3Od*ilR%z-N*qF79%Xg5`LIh@njE<2wt`({IEmtXRks1s0As1& zB@wk4srLI@*;9)F<*_d3#hP0fuxFEjJ(3x(UbU0BLHl@k0ZDT5x;xmb1XSGsiTNrJ zuP;r`HzJY+fr^@}_H2|kqVa1aUoVgP<(tA12!5%6E)EQlXg_03lj=F2|It@azkkFz zDAf}SZbX9*&|8sC4c|u16pa6SyV|MxbM%_=_`)jJFLR59fdnedX78sBjLI|5{@-zt z9|xedkIu>kUWD`yv2P7vfx@I+<0v;)*iB~0x`iAJ>6dsMIWJ#&N`oC>3kZ%19W@;OUg+W-F( zQ8R&7CCPcnz>sy;l+vXx?nOC7BKzpmEwUot;@>NvCH6HobBztX7^NM&N594ld;K+m zW^pYCvUO2e9+xpxKNf74O+BqiYn9aj>#2@8Ok zhe{XY=g^cuhzaK0*U_E8$uv(<9GcOr0an>$01FMk(?Eil~CIyNJt+N68!d>lQZmW%v3T zZ-c}C#1;!)z-Vv$X=aIU;?@IbSxi6FTl*OOzmKxLg{sB6N&2Y8`JkV4BZBr|KY@I(#;^3@ z>eY7Hh2tlZ_D0z4VM|r># zK>x1-ZX%Byy9mv;bFz50q?$r97n;9Pv$D3Dd zOCPBi)d{&P=W(}1?*7k;4ua8Cu>U)<8iT$hztr{(pz7$#+5y+`3AtqQ`a&1$3f&jH z4aUX^YdKY2@E0YyR4@4B`{tLn(}E_1)u7vy}=Mn3Dd!_SOlkIo6lyBxCMnv zYtYTUf)mz_9On9u6$Bf2%Iz$H zc>SX@tT?o7S{%v`CekG`4)y?`ru8z@4>RRoaVBrjIWGX5vP7nnBcvWEUbS7?Zq(KL zsycl4hT$DwQd|g$G_d}2+&>rn&aMPly576x8ja7M(K2NqZ4@!T#8`bIj|@W+8JTd_ zK(%^q?|0qJOE~aS*j^)g1>svkbhmtKfGNy(q{$FN-%{`FJp;6VzR|uJC0wI3u3{+g zI#SV$$SVS)HigPTL5~PbOm`h2ERZvZDkP?Be3*Yc#qY-cV1U?qUUB$IX6hOYzjeDi zPbT8d%!0FCypb&m^Cg4g;B?n19~azi8O!Vz3*&{qAidS!Sxyvn@hmj%WJyO}I>MRN z(apZOtP&tm75&bu<_OLp7{2ng6P$Z-sfN+St)`R$7Qdbl8F}8I|AdU$&=wD{YDrq@t>B8}cr=;Pp<4{T?GPA|cBLvR|si8nYL7 z1lPq3&%~C5^O2*)wWogBcCc`#UlJW#Ukj8u7V506(K{pr9&(>6Z6M`xp{5H%;oDf^ zkN4*0#)nls?d%hlw0)o?GI{lZeaq6uMy8q+Lx%*E{iVx_x&cW#;$6465g4WM&Ei<;z^)Tg#^+s=%e7OmL`;IuZp zsz_{nkjR#Zhs`=JawYF*)OPSe(k1dWr1GA>)FWsZc%2Nl2V(P&D8TcD8RdE4kVjjh3%ex2;Y&!sz(oQ5YAUjHF!3lp*krSN<;jsZajf%nJt+F9cIMEUHg13 ztbv8VZa#?VCvqxJgyEI%b$>A6j2F$A%y7!oC>D>C6@muJ@u-^7zC*puIw~c&dik!T zlg|W5lGwoZC*rsJ;4N;G`epKI&R;BYCAV|0Xs* zQU#l0z648odHiq&NWfCA0{Vn-O~OJ&$afvKl^`K&c9_jk{j+PY5EEs zEnDRnuX2B80${aD5cH02^PWwVSU1J^ZO&}$8b#_Xd5csPZ~qpJ+@xSjTi0_M*1dhl zFjQB4v*gh4YH+nJqvHI<=19V4x63ED%bxiAXI=zqVtsyq@xa6e!?1w$FX+E0DX{EN zJf99m(x6>6g_Upqg(y>hYh*uRA>0_AGGKL#)5s7mDESp!a(ecZKygEU>cr7qd;3qM%ZMtaxI0b@hY4{&SCm?;_yHuA}G$@&lhHPDM-w zDGKHF!E3}&XSqjn$qY&z%?|uB4P4Fsg+HpzGpqC|K;H>@!z#J?OfyXK)B#YBL<$2Q z7XL;`-8gWm2uR~$PAP3PorU9G0P~LLe16p81H3T9-e|BxC;N-T=#U*>U2{Iy!$tTP z63p)R0w-!zMoL@QaA-FmQQ?(M2|n{zvI%=j%R+LHb_My_XJpJQ zTqN2gH;=eq6ssgOOz!q9Wtb3!#u2EPtMx4c_W>W0&L4j=rRIQhdtv6B$=+`dXT0`$ zfFTy(CjykM-M@dWG&MCt4?}^gLh2wTogaQ{-#^E+U*@Bl?aZFjupH-iImPPzpi~!| zBI*Xlm?dZxv8RU2?Z6~};5NZoV(+&f49HTzAtvZ{JzdV^qf`kC$vZZXXq<%FapP0wxiu!d%ue7&Zm|PXRM#24VgU#>9zIw&C4;EA3DlEB@{DWuu zKeFqnT-gVmaOOYjOxmx*M4=oK>Tf5uRz^lFxmgPW#e^}@GKw&HueJ-HQJ1kSz zj-F1oD8}f6LZe%$_18GEr_FzKSuCx`nMc#tDh+LXQl1HrZ+8|jr(gz4d*nrpEyo8J zT}Fe_KzGjmuiXlVurhs8HrKS=zssr0S(pZ#8^FJ=rBJ23A`6l&h00K2H}vox2mE!^ zd$UlLD?J`=z>^-c{<3#kex(N>GTMFrrdv7jva&R$B=Ta2P(}pJe=K??-7(~CK}sA{ zD$H;KEO%hE9bnOt?1!;ccfR_BDg0oLDgo)vIunrNNNl3P{&;zGC zS+r$^sy+0LDzL$G%>iS*oH~Ey`IOy2P3@lxLARqj{FmmpC$VH$%n**it1ke8lQ*tt zQ<~&Xr`LHDk%Q1}dT-sF0p)uR>mtG9V=)h@U44yyN?;a3&hOGlN#*9Ns zX07Z~%k=2NbA`B%^!}l)N$jyz0FZQE-Kk|Ro7LR|ds49qux#dW37Tn|Km7Omt1Ct)pTMzK@Nkf-85nms=XL0`JCJ+0 zxq*7vcL>;eAa)+3Qf!&4x5OTLjSvUpa>U;&xK9ojybM3Uy-45t;Zn0A%??A}9#)J( zgQHSrcS;B)+UZ6ELz0cyhS*ewRfn8_7Ia{iG!jtYL2^3SFrBT<&{lIZta|R)8%4_X z4GU%lZ}TUzI0GqFtTxG-MfBv8p{=PXD6R01k`~k!xFHieKUN(WXOPD)kS@7*hld56 z^(KfVLfSUT+4c{c>)=kH$Q3r=710Ng9$F1IhauEoFm}c}1>W&&%Gak+A#>^d5s z?Pq9~xGKVrQcFK&q~Sq2be$L6`#D_A^#EHGu(BuRPqo?YnuAF2g81*nv&_ms6 z{8*Kul50Hqv0{hkbSRIdeVj+(TNK}8z#oTAN3FLaLAQ39qHa@qHNRUE+xL1_?}7Qo z&l2pY>4hNfJjd()cq=L6|=0;t?QOSqCWAM^vixJP|-yZ}aQ2Yq0?_VvFC)UH<(5e~G#B z1_=jPc6xzeuY?m{4CSztq!J!IJT(#^Q->OI~7?A_HOzhOHOiQ#>a^f;i+2{r_wvJ7mh48Q<^UuenM|w-2P+bewV#Q>jZ#8 zsI*h~VnLa6+@HVDmzuulI`otM<(&QEv1o-NjRPFoTp>GHtTTVT8L_?K`zq%U?0(cV zT|YarIsXjSY2KO3z^;dsH#Nd9Il3nfI$X^YCIvIB$yZ@A%)52mU7Nk1BOs*0A!{j59!0BHi>$y z1_44J#k?k*>U7_e*zL1ihE z4(3Dae+n(uWO!HA)^&5fvVWq7b+4~zc<>gcp_cSxRcM%~XTsD*+o(U~;uC!akELg_ zo^^=ie{S-2hQ~Y}783^uX8_MWE1gsjEkW^*rg=cubWTS z(KB7*XF&Ft_FOJmXjtm-@)lef97Ulj|Bv^6DyvWWmWFjfVXVs8Oq}Z8p3Dx1>xrOM zIGP<4IfI8$UKAi=zftXZO<8_9L`;nCKZ}{NUA+yKaC3DU-L&HI19!#&63+9_P3vA- zY$nhtQ1?W~45m^;z09^uCN5<_*J%rzY3U)J4pyta*>h{F5YCOl z!&44w51ru)Fy`0L*HG2La{U>iY_Pz8glqx})Ry=M#FXQUCV5evKF|sm$Zj;1n zt|Rzdq2e?T!NnnhpYU^xY)h1~noFDY%1+@k=c;qB_FHt5)sd9Sc&LCIH76t7 z3SuEJ`gp0Cq->(QdRNfow>%tKO2$b=SMaHBQ(Qz1IZ8!m*$6It>dp#mOx2M<2)bS; z5Kn8Ce=&5sidD7X<`<s0f32_*x92j~+sBZs~HAQl}KzA>|2nXB!>% z&S}R;a7d5QCeZV%o9abB$41~q-(B233kVm(pWINx?CM|d1D*NNwehjI)<$_tW~0`< za`K;bd!@&o!mqJ(@pWnd5ZWLYbjREbGsU97wYd1016xB=D}S>8<@7ff>AW)uGP z;1a8 zdY1f@)y-v*3IhyX!=aT7N$jZI2Rea#BvDBUJw@oKpf3QNiFMPy>SM~=xaW;#KGajh z3zzcVVGEDOZ%W%Lag^a2I#7^ky~%$z8I%>t<|Y~ixZec`?h5Q~HduVt73!8&pqxI@ z`uA)d2W+{8F;=t_YRz0eJFj6XfnBCYxmgp%Q8g$ksBxC*ynWtcr+?k}`7 zTz?#K%&us{LaN4E@;eCVqe>nfjoJ5zm{BDYk)4r(7mfqo30#+ZU33>#fwI;!$B;K% z^R5UEm?8k|q);1+J(TQ9ua7#tz(7!yp63`KeO#9~JmpN{JGX2Nb{D7q-U;N804$TYHU_)xwVF2sSkfME+KZ4Exs| zuNYT9bpJgWYKFAHe&#((=dc%0ox#I%;$SnrR+m_;oQ3K=ziRZK{&WF)&q-r4xIaB| z+cl^PvC+%E=P8m<;U{f?qOW$ASW+g3O#7RFvQ(8sZ+k2>_CMpZi_z<&0x48x{N!7H z{XzZ@B6k*e2ipjf5{TI_**Ds$a&h43f;+C=e>Wn`cybT?UAuQF^Br6 zn+0pZi!K!GX^(P<)-qbj=)+{-zK(1Zv5IKk#MtlY&=ByiIrgLpCk974t>wV-eAs&rv*V2S;EG++RXFK&gOShAI(EvGJU(r=mjjB-kG%#8YGMHqfQLmPrv*^Y+_Ntx%zUK$$bH2?Wz}HwnLE~hS zhJF3K3Zz|Qwx!DBJjUcMMb$LZntEmzz);xWvi3%RsV%hDwBIc*a`wUXwi7B<4?oiQ zJ@gfB*$Itn--FLQ!}yZ8PBUt6M+*uD?rTY}^n9%1uGI@YberC(_+L_t_PVM79>Uva zjc&&HOF2W8hF?d#+~t>CJsM5;xBP4%b58q$eqsk8^RBF8g9A?F^Nt{R%0kJ_u)1Iv zn?4{`rDn|8VBeA3$*^2LR|U$OlfbdtbI>bX&TuQtO>W8GlwS&Vl;3-v&#ZK6EJJrndZgVa;^;HN>6IW43{q8Z860p}-nMlHVt#Y5uW+KoA z0UnFwW1BwU|GW?S6G>?(PkgJQJ?JAtW&Df(i6`cpE_~ae&gV0~19X+@+eE_f-Z%=s zvT*3OkCpb5kzxRYo0^-9<7XVMqdcJQnllj8m(o|SEaA)=U@NT{(yB2T(g(9|B0Er& z{?rZsNM`Eu{O;G7j$j|E%!jdZ*_9-~jysu1E9W^Mj~`FAAJ_iiEj zyHlbPFjeGNY+XgwL$n`+{pjYU#q*BvG7((d*MZ+N(sJQ4e*g=>JJSd!VB++DcLZc^ zU}lL}K73A;0Ag|jCm!r>+DADvxUGqQUtB!E=HWo;x<)1`@NjJcQ6V%GQ0)K>L?f(_ z)fjk3sFabfHyku+XP7EPU``)iQ->KDU+C6k+O2rR0xS%1S*O}|KX#a<-$g-je@<|@ zVOI@{Rj~O~a>KXqn{<+`4H#5Vw~#zk-$5A7kJfcLHBL18dtuwRSIHqiieP3GZ`P|$ zjxEb_P1Ngy=(C3arFB6j@K+A_5pELnEYt>I_?sq_;&0Y}&LMh-p#0n@(OiJ9-fLCmdyu5mv>Bm_Tu@h0T3sFp$w;Lh?Gcmn8Y`w7)dW4U!roA4Ie>(JF zsquX_7UTOMxN5hHP)6>3bvHorZrR;i198q!CyM#*C^fS(XYIR!1zSPrtzN&NX z2VXIdEI3|R%DxZ=3W5S^1c$D4Xdni>EIZ`&>Ciq)^Zj;nh{aeS9Xs~4d9$FTN_9BH z?9gZrwRAufO{;d^_!-pJ899Avo4?LFwgE}_5Rj&zph{Ix+l1^j_?>zO5p@IJl3Qt% z1DbWnWx@jQrQm{FGY2_A@Ok1Q2<7VhiY>9dUN5hGx<);>f2u6Av%jM31Ia(Q+CLVzrNIa& z_qnbd-f$&-w$bThJbu2T=t{i1Gz-D!#7{RS&))9ci z5h=m1zpbS>QTKJkXl+%U30=21@9~>@${7ql=77kpEx~~@GrS43dbj0voBagTvW<$f z03UB|{h8i=CA-Z4-ktO{&EUJs$e29y*060QwyaDEMn=M-0K^#*wVlPs20IRK`Zvpn zCMFlU-7MZ?#NjH` z9#{JsfM0U^JXx_~L`!5m_L#&@-sl$r8a=*Sy4J7agjQ5+dQVJscW#&AgFt5zFGSG- z>6-{+EAOi97%7q?{}Oe2Q^x+E%wjf@6aUY8>Bs?Ap1*KjzvA~o-v0~w$9cy~|G&Ut zIdY`>i6y<%632hYpYF?99cDDXl?Oz9Vs`9eqk8t(KbmPg;f~9}AG)h^ z{@85A`4OYc&uB$FoIUv{S?^Vf_$b7n+LIcZj+5Fw0+iRI`SN{t*p9u*6^NxyducWi zIb85fV3&suTS#bVhT}2-ZU7zrZw>&18g>SD8Ys3Qk`P3D*VjQ*_RsZP$Qk%+bZ+UW z4gZ%9{OhCnX2Pm}2Cn7PEKUHW*AHQFcdxuf9-7ezGf9<$yeWB*^RG1fCpZoRGL#Kb zc7QWp<>7~wkYhxBmQvN_KxMDWa{uwGZ>WcvnvyvHQH-jrrglZx zS@-38zR@c#p(8L-d0U#_yj+ud4gwnuWfuj=;(Gz(?kkV`)t@i$>YMreC5FnNb>tHP znVAe=%ZiZ5Aa*hqG`m(Uk`<(-?#1sf%!BH;Sw6Pto|oklnTafE$m(B8LeEU|%43aZ zK+Ih4!I9N|BFXucUab#aNgT7yAK-);XoO4m=_m0QOUN}XyhsNPd_5sjouKDdO2VOb zJe_LqK8#j=o@_C#Iz$cGED9K($YXrX3HmjJhN2Pc6{GH{A0C5L>D|%~y(SR82coiO z(I|xdBn0O~lVA*-a1{xcUwXZzpb%GwvBAu$g;W|H#Z{os{n6*_HL70LFY7Ur^qArQ z-{mA-dKpZ`gp92Hj3o?o)f!1>JF&j4PX(4e!uVr=uZI-wvN8H3B}t~GCJZO zaTO8U`BBX*e-6<`hbQ-v>iZeSHG}^F9HE>u_!wwnux>_A4Q*O+^f+0kV^O~pbgqp* z&e~4U!uQsI2WpuU3s=P;-w4f7tN@$rKcx?vdf-pYOgFs?jP_5e`myp z5-4;*#|V?u+2OZ5D|f6N68!BHkwfdF92%{PV=ZRq&0p5>~cS!LlLtnAzra4pc) z-ohW$0oC#n3kn4qxzWP=CHT0y>nd>LC6d6AmK9?K> zK-!F9*Rr(=8%XR(Jt_n_c))d zS)D4++QtQahf&L=A#HB_Nx++P(PDli<5`>T7O|zDe3mKU@{jR@;a?GCU19Pyb_k#* z-R|x{$}pVn0Hd;e61g&K$U%75**!qPmJ#Zj~_}4H@Ja zji-ORZpgX9Fw+zyevck^E~AA_}8@)<%vh|>e2KkZM)kv_->F2nbu>N@dyKF z+nmE>gga(mdVk0ONpgQC+xuT7uNl*W?1~RvA$HMEG1jpX;E4<2=T$T@<)sesw+XP- zj9v%hDbXlF^wJDdu1pzTT3(|)+M$}jt9$J)%Go$)Ab8JaQu!geKVY#k_-Pj2xXEL%_JhI-1ruz1CY03SDW>vtobz8;!*Hxl7didu?+I9=+94A zGf@Kxk(-a}*&}xdL&q3BC*U#kHRp6d~2N3u+q>V03M zr79c*mKb8A`-{n1!*@-)+vN9m8FSmqCja7kQ1QOc3=|_~pAEARh~P*W_B(3!do~66 z=9*QV;DZM7PuV;H>LHU}Hi2k4)U8JN?L}4L?0@St&~5TAV4%~io@?Th^IK8T_&WUQ zsr12u@^~WdQN<|l!ACJ%)Q|VYugsUQlCN#zP;CkI_jxYXFK66RGhLVZH9rFIijJ*B zSkIOu3zxkjAx>tHr)0sx!Tk_OZR5EV`y}tcO4zTM_w{rM>1c_>ll?Y(Fye!alIFFn zdiFe#e(`gJU+#;=>!)WmfjtLR#yeLn1AGkXjjoJ=qe_(DfB_RzlUiE(>_055IqNKP za4f~%-OIR#+m4F0A`BbE19*OIRfP-TLTTwrYQQzu_6nSSc`otf86|LOLmFHf8F2v2 zr2)o`FiuTBpCP6IX+%MAz%pDs69{Dn!O6(y)jy6^&Ix$NuGv*e=70NC5b#eqs}C;w zr06#7RhZT(|8pI^X{csl!5bHsRi=u@Zf#5`+68yy%cxc>={v-R83R&P(G-uqiYtjw z2?tZC!^-HqLi{{kua@q2uLbavJ-BV~d=O^qnyc-WYM=ZTF8#{b?U5@VK+vT&Hokt( z!{w;I38>)!>B|$`%cfy~J#&YM*Fq5_*r(oxb$75CdVTf@RnIe)tL@l#HGfMx8Y`!b zCR5j;C^cTjIZ1o%xXaluQX-*UMLcMr!Euwje~a}e1c0+uImywfIZ4L1?PdPh+gmHz zY)1*McYsYItok8dIe;g9cP8)7D`qJ>x&>fz61|!x2-Gdasf~_z+=(4DaoVu6`Az8p zJ07`|Gl?WW3p13Mn(5dyk=9cWj!MV^M(vS$;28OEVO~QvM^jnCy`ZH!>gy3~SLu;0 zBv|IekWm5tFa{be^N_j9AbQ6pCFZJzpp$>2JPa?|T3)W?N&wP-TF9*^XjI!OFxwCX z48~a(Eydv1*b`U0{dHBXu`$v3VddW$n3F@30cca~HZ(@&V%~py%`K^3Yw7G%=X18! zAfwq0dB;tbvG+TBW2O|D`)xKHn!x6b(7R#EI&8AtRg%^6CyD&?8yg$#bXN)(b;+;3?bZFK22wX zfv5xQ#sw{24_hqFO?6edZ&e5_cPOGUIS$N3%(h4TR;nK_(B(%mr7=WCqlJG<1_?!) zSjQoO3RU}Oei>4!z5VH3f&@g`4lXo&t7=FWVSeZ1m!v+lFP<|bg)2Y?xnwkmupkZd zea(5|E|PGpBIt^{!Y<95w6001aX8oL#4pAFZra^Pk-LGOR<`J~H9j>qHntuZW}DKY zy9$^r%uY|+qquFOyJ_N4%QNZin4;j~;Yy_B{sp9ixk?fg8Tr144X4Iygh*UmO7^$3 zxU)f@oMd$gsCTTZ+Nc1$EP-Q*^tF3Yl0u*w2s)DA%&eMjT6zT+e)ZBg*vv6?ODx$Q zcvkDlKWuo;&G;19f#TJ?7@D|v@l_1|u95ennfImUoLxO!A^hdP6Q2D(+}a`onQJ!w z_TgXe%9*P&!&UjRQFSYYIVe{i;532RKVALEpUmGdIaYTtoB&s=ZRNE!eOZnZz{p$H zrxxmP6z=5Uul88n0F1&b^uW6fF?NGXWzfj3a$p+|$tHbr31qE=bm#e5zW*^*;)}l) z;Kc@j#Pv)tYL|De=xaB-q0#?#J5;OSoUVx-W4PbOm7yog!iJH$8H!R!DYY_*TVhV5 z&}`SF6mM3doAb9_nIZou&DSwAk!|;8dJr381{Z7ez>5#`LkPdBI~5gpCb%Q55OGSG zTQ`&`?Q|!cZ+E9a9;NnITWaA?n_fNB8+`!UxW2Zw)~y1#-h*EZV2@<%n-CR^O2Hlb zIq>WHy^6-{izJN38ONyfe{pc$AZ)lqnZ$2|3Ez`$B~T_n$T^z`V^iN@1S%-UiQ|Hm zt8?t{L81v}bqfk9`5qcUWLkfLa%^hz^uZuAvXlnC*-tihP;Rt;y(T|!MnyF1<4E#T zhu@>eyA{R)+#K>l*K@M%sYzkLG9e^9Q6lkfE_Yz^d`+7fXQX$%_jPIHpc_JCpF6~h zyO^{!8TPTiWl~4v_N-NEgsa)rPx};IP7*ik$kSZB{*7`_kBwA0f*X#80j1L$D9xe2 zR^~|B;BZ)(Za2V=ju;2W_`*%SVuGkmg08$E9%gC}63VZx1H78|UYwdBx*V6X`}gG;uaW6zL#f-(8%IjV-J*yIpr!JkY0p z)}lDu_2R|s6nr*jbnQXq>i$0V*sy4LI5m9_*_J~;a1r6hwh5W^Y=mTqT)@UH;h#GT z<7NVrsj08tO1xNcjOjN0t@NVejYNh=c3(kS5coUU1-!Zs(t@r`c`X&O6<%wn@|vox z7-4_~H#LG49TH&uoF&{t!={$PqgD6e`X(yy`OmyrOtr)+iAIo--)@qV?jtuFo! z&w9ztA)`e7Jy#cB8LuQ_`&}~&OU+I?3_tnIT4X&#g*M-*>&;Ku%^0$=Ds={eSib-9 z=)WEKnM}PAMOIe!*VqwWBKIgaQ04aulp<$T=y%DpD!KTQtZ!#LgAQdrYiPf8hGjgE z8x{3vgo?9j%@pdx>uG%b3dJczQJi{>Yt==H{End3j4KEZduXhn&k->t1=bHM-hS7H zc2*c>t@mqm1$=^`Ain8EZt-eaEzZTdO&IqUi>0**!dkgJXQXuAJ*Y5)h>@hK9mbwbUiD>m<>}_u%7a(rn=VcsfsvJ3_b3F|bwLOc1Z&nA4{iW;u&s11kv;7-r*;#lukt1&j|GFTR#FiB|cD zeLljsCJeo%XK)uL2d&KG4b+}W)Ozr+-$~NR_)#krjt+6d!`6Qq)dZ|RH{$eefFC^; zAHDg~ekbC=d7u{S<=ESI^lAb;umClB;88*~@O21M5Nl*pka`t?ZrMyAOD`+jLu>upj9RY!P)g+DhKM|^(mD&h#`s@W{guA3bClb5* z8&%9bc`7#&wa@!}hNr_uTlf6a;9=35UwFKYtK%ff3g4j|$&RlYj}s`6+OLFgE`AE+ z>f2P0G!>DZe<0YR(q}qoY58m&j3^L8zRgJTesVRneblDEa`BKvv$EDF$e_3$Ixn3u zMQAxH`c;@2cvbXCwdTaS$I`W>qdLGzz%H|B{@}|5ocfDd57hW!wL3YkE!iK9VdtXR z6bE*HImP`G8YvnLV-QSgl9=wWQTq~LI^3s6mUeLo(tHv4m84P<4JeJkz7?Fza)s>> z?uvy(r4@U;<$9A^g{EO}kFtoSZ^k+fllg zQLuP~L09n~Yn2{n|G3)Zj(V|hG%f>hp}L}lPoGw@o`XMEJG%sqc01XVev(-M(KbYH zLpzj_58d zZ&qv^x`|fQML2YfD>tyHmNi<;su<2@q4hLSzx!+qx|+(nGKx= z+m%LjLdj+xoV}Ap2-yB$4}MzPqYVSa#)Psp8{GXJV>s*o5cS{jRR90~ zIBpgdIaWFLImWTe%wFdh2if8nDcfk&>=W~4%l}MGZ*=1kpm3p z>MqUZI^QDqW{5=&nr}wfEnAXMME@S|dhA@33miXvP7Q1{=PO}P+Ir9wj#s7(yD`Lc z9R~br%+LYQI9EkGklw=G39H(dxkAm#Qv$JB&NP4x7`LTOL|kK|i9u{uKWEWb5tTO) z2++I-Js-l4tDlLN6lNKmR39J{VNVp@(^hM`!kg~O3NzD1RmEWoXmi66rj9w}?7e|A5{07m)pA6B7Y%`gpI1c*)&^HR1nt&=E!(AohNrh$ zsxox@PI=i-Gki~n|NX=(?MqR0qf>>?ycIsWT_XlX@FLQMelkRK{d@%spKBeO%{qqc z;rYx0_@+=${_*;;C9i@>F7nVM;6|{BWq`ZKyGP=z{LbmOP;<~|Ma$))x*Ip`5Y^I2 zA*=lZU4?)1-M&{e4mRb6xT4>#@ci>rL}W{MC62G1cAS)^tVwAr>2BJlXmD7%ldXYx z3?K!I)8`{w1&3!}3m^l)TtR$?UygPUZfKqTshgst?Az7=q#HE-p<{x)e#QWNLQZdA zkc_1^19GT-FEsBOC)1?czZ>ecxpfWjhvSLFlebVD{%Kk>bKG8zKk6?S6>mRIp^;KU z06kKl`Gu4;wjp)|Y0KBv@+rtCvpmIx9MrBx^;)<;a?KwtphGl_FcBO|nEhPG&0{Hl@&T|6D*XV5kW|w<`AD+jqY^PKx@9^yOS6+bRtw8{q)U z=o7np7ec`CVu`+AexT>fZX4#*_uCL(zI|~7f79g+k$YTrV=Wk@wP zG>I}uYXN*HORB4?>1^QK^IvL?>RBCSu#>g!D+nTDk=z?$65-Hhs=g?oTHfQvuV2ZQ z?HiRZB)Ma_^t&F6u*?rjpgElD;$~F-+CjDm-f2R^@nZB{t*>$bK_=K)OlCVRlr!Qo zEyF*cLAuh%>PJYzrm6e+2C=3BW+R6P))T+I>i_Nt&hk1fxjPT=BrZo6=j>j}+=sPFA;(z8|1NUYH$Y|_dNKYnAI zg{RXGf_dFbzIzt#4jVj7eH!%5n=pKpa?{Azt4VUz2(Y<@S3ss+tgRe^ zB+xmTGfHOh9gMQf`RZGJUS<*Np^`KEKngr0sWVG>Ghdh&cnH!(dz?I#|UpH<_`y`TxGiSXuWi003}z(mc= zez3Y#XOCTRr-4g7mp=79g9f`0d*3$MSQBzaT-6c#DW~7>F{g!NXsi9^@e%UWh1Yp# zuB({4F$V;%&g(w7a>jk-qCQ zD0fpaf)P91p&)N7nZiKnk4y@Y;~|w%l|&%VWV(vUOP$%6jAX z6WR)8yD}963hUmK5C=6@wG&BRhpgk#dfqQ6(E`+MBp@<2wvjCIdD8iNo@1TcmYS3Z zF=?-~NtPT9lR046-PqzUlcrdjXeJx!nAxM09iAeT)Spck?exg&L(R?ur((WW!H7oqaIUpkGf_~TSD2VS%T-y^j$E3_S69Eur zc`WH`Ig$XIkgK*eXe#`zG>yfU0AHrw$*Fz~ma#N@R#erD3`X}H!pb}{W zCW-lg`w+uLh=FFa1qXmS1OaZl@_<0F&6OkQdxA1ie@c(dJI<&|7ptaIOxl}xAP?AL zbloWM_ng(e=TdZMa#4?sB;i%!JVw|Y%6K@@z4m8;aC`Ydd!hka)1^MyOZKM%l&!1cQl>5#M2qjtUcsVx*IUxN^xukSd_9{xkAXgu8-qBQ2Z$|G?|I z$NHNMQ-$};xTgs=1c0X5D>ac{GoM`b^z*zvn%M_UUrds;j_B~yL`=^?f98iI0Z!Y# zv!4XHEVCpy7MqzTvOfn$WQRTk$N~SL#^d94wTJA*#KomG#NBq$xHTZ}{Rv;D2!0!_ z9NU*k4{~q^rQw;Hy`(x}BFXk`-{3Zp^`Zx+F40*Hh0{8|GIVUJyAcNwn;*u{Jn@LU z)3q8GZZg?lUrLG8evis#;K47Ah5u9lR++zDTEz$I)w`xgN8KCkp+YykP3A6Sdh1l- zy_g$JnGkN;l66ugpM35NHSeYlk|Nf1ix1OmEzLMI1!y^K&u^x7G$~KW96~0lp1*qv zWGvws0GZ0&w%LdwElW+`FT>?Q9?HLpV?qMdI*~WQDEKslv3aFfQ{40^eD0;3o9-yc znENZ|cSFv7o6f;3&6z$5-e^u1C4#>duT$yRHX25n+^|RSSiV+xCSuvb zob%Zgp5+RTZT?-+u@zhE>3BTi0hOVh7&4CDt7Aiac1k<>9vNz*j{K-ZG*XOcOg3Z} z?q}S7Zsb|a*~u^;M_GO;KV?y^jZ0cCUtkYrtU5IMNh>1!yn^k!02vOMEqwkl+D zbYFG0{JS|PV0df$bAcCHTr_U^WNtPcQ0Cd=DM1TYYY?ue_;Hl_+!7nVF(;YrA-OhG z>3mn-(VNA(z}l$Z=`;cQfDYSwb*&Cwg`_bj4eQ3E;W` zDq+hTv`v$z$3}3KzzLE#nra|zy=D5O(WL5D)Tm^Tl*$-hzc))R@P#>K0vUXPPrXz>E%eSnl7o%c<~%#al;@Y2 z;H<828qPk8Ox=GA2sSTY&;>AAgKPX`4YmOrLOp*wA2H+W#38_Q z`ID(uv(@3ThhC~YeEtTC^F0;ylm1^II3I43&15!_eRIIUMp8we6F|=bgZx08JWqN} zR2?@{> zlr`#%J@D^c7&31m8Zjo>|c;O6M^|kt{wlQe%d35 zxjSckdriu|%5vCHFLkcp^B_S!8J%zy2SLlH#fWRwL6a^x05RX3oL_Y~0Q$&g`_2`D z(XAhuK7eLE$bb(^-QC6@|nqb%w}OgApdLd~Gf2L2%p5rN+Gxhy&E@rFsgFRJQcQ zbRDpjDOf?Ud-PW(3Ju!bugA-3Zix*954Gj=RP+|w9!yTC?f37^&H$-OFZhk)bT&J>^GlK40VG>K2CNklWab=Q4M`gbBNDtxwrAfY4s2 z_D#J9eL?Tj5|N9Bh#_${y2N4(E@BF7{1qJKN( z1(kZZl?1p*FZ3_22$VV94!;4}B68{0VIoBcMUgsmWxz^V9S@&nWTd|YSpR*TqAFW0 zbdvCJfdO{ReM1g7RHa!7?`zDCs2E>qT0Q`_ZESjKwulWS_d<yjht*q| zLDT?TOI^`Jo@3(b6E3AyJX5hjs<_iusvC7M^zQW~>7yGIa&;M*0q^m&^Dcc(WnS9P z0rtxP_Lk;obw?(!dc_H_H-;Y8T25^njgX3`)|Jpp{r!GCw#&A3`w&G^9BW>i>P1V% zpBm-zv^14s0K4y$4KbT)Ddtg88DKT34rG^y`W{H?7JLnAp zKI`oRx!JD!9Cme!8uJ8bB0*`{bNQje`uW+^2R_=fRX|68_FK;t$z9&YK})g~7O8CNq`X=Bu|ZUO)6RV#8L%wL9#cmx0r(wwJko_a-jy zpGCaw43y>$>{siasRA^M>;Ktfug~SB*P80G9UrxDQTX`P*&nv`HVgD9W%d|c3WvMP zj7Ur*w)9q|iDZgc)(KGldhIx67Tn4~v*4!k;tW5xt!gtKjS77V`^5C*KgaS1yr*)- zHohxF0h$Y+2bmH?aFZJ{OLD6))xHJ{nUWQxxK|URq>(;Rn1Vu-MKaf8QFb$ z_J{sz*@jo(nYtv5&~?-unS4EL>aY~VPVsK#Qf@4MMr2GStk#b-9RRyhEPt0@NaH2G zpYU1_AbnXvmjaLeLra_Kcgs1c*94TYLsrBM8qC(k-;#>ytO&BD$CU?tu28`O9&Y=I zobHA*R}t~XUXJQiBZW$XSMf34k$aG1Lb!CTj*qU6$%DnsA)^}|jB0CZ!WY@fT9xap zgvv%k(`-cIx8^Nod2>nw>|DFTCK(Z2>j!ch^b82aQCkLh>wqvw+zX6}^inSfTvk=Z zy5-hnuy>6nBby6bQMw!T)@!!cCcpldV||RK|NBrjnKpd+$h~&zL4n6hpTp9m?!!FQ z2aU(GlatLSDL2)}L5R5~otr91X6Y@tzik2&Z@L$EfFc6nMr78w^&VBNgrm%9Y zj?nBjnL=&zh@nTNnkpEB`k|Gxe>b~T2jG03Bq_O9ucSrv?r?DBNe#^k!AD%wBh0G{ zsSBo3SD8GKL@#)K*G}E^g!i$ANcEPFF!{BxR4Nm*Em8889cM;eO8c!O;$&2zynUePXyjHi;B7Yv?a%iW;TwZrEn4JqIB8ZywNcFzdP_~uU zA)zM-FGSqeJ@lxPe@gWkpd+Lxq!drq;877qbP$slbCY7Y;8xEWecs52#M%_Z>Qk=z zhUvaq)naZ;<4@IQ?-=eEvZYM(BKV-^op;y}W*lr3?_;Hjj|vk^N#3pcF;83Kv(r0? zR}dGb;Ro&rIW+%A*mOUg3nh+QHP%j4!8v=79_9U?1oUEtL41lSR(9xTS)tTLq>pPr z&tkM{nq~f%`jsk@o8g&laS*NQ1Z@rlev;OcRfN1tzlGHb>ON^vyxJ_l?_CORt~LrpY|o;PoP8b;F~Fn zYK<`9iEL}}m)Bo-D%E%fevrArnbd~7CK8QB$+EL?RlR!zr~ZPKi1Pb0<3vQT8UjD; z71z+I>}3b4)M~}{ZmP@Uw@h?vn_CD8;jYrTEQR^@V3Y{*Unn|Ck?gr$M;w}(p}~{8 z6>2+kX@!(#YQ$|vu<7;662#;Se3FsWk1FAm78#EnVxk^6^?ss(5u6C(tTt(*zN!E{TF?){SI_2hpm``<@P1`r*bx(l@siH=6$^#lcn5b!1;7D%vce*gl1 z4P9wj516w`Hy83`g^JPQIZJaWoZwbt63ix)CpG(LIP8LcReo6(zrkfv&+I7N(qQF# z$n6QX4=2(Wk?wEOzC(fAO#3y=NNx{U(&^Z2ei}YkeUu`N;$U+C;fpO!q*XXAT1hFm zxW|y!A0~X>k+W~3=VB}k6v3$(-jCjwc@ZLKCSn!i>MsTF_9BA~Uxj|3?(XX#uEr9W zE)0y6=h}G!{eon=L!SpNrDB9`De)FFHjo>8ra5|qd55>IqEuS@iCtBo1m z;79BlsHIj%5|#uirj3Z0^`J@bC$aGFt*v1pE(S+uDNF~6t`=MbwN`*w{)%nF$>wMq|N{$No^yERNuuUWg{H3=Kc;%tver6%Eb@R)>! zCp5x=+vRLcQ^I;T56_}hCLg!qM6i7jkY>=6g!5R_fqKeI<>wA5Z+{6;H$~EG( zZ6l-7YQC{%omrhYj6j*G{NJTAQkah~tv(7NU$pq?=Fyx9-KJLVYMVZa;-2} zpAiz`P<22h+PtkNj9Cb%jYuvf@?kj86=Ocv(OY~_Lu6YOwN?+astb_{G|K5bA|y!L z2bXge6Nl?uTGJ|Mmk|PM*Pjs5AWx_pf+W@$r5XFxDqV_tVtqsnAnXvjm^i*^P=8u| zcNWd^P%F2JF4t1TlV!i(#(XQ*9DA0lVphK?cCU8LsHb{kHs|w`ABhIUe@9pMqk+-{ z9PX_dE7XO+9hGsUzNg2ZjDnbKuO;uZHuH7~Vwyf!%99K9S(L~14K;*!yEs~-$ir3p3?aB53mZZ1Yudvgx1{fVb5p}x9 zZ;jc{5ZLi{a$MYHQN%S{!d(_M_go0vY>4L$zum6FBsUr3#6aGSjBtm@|NMA~TIr)Q zbPs=4Cb{TSIw%)#*i$WCpfo{62o$kEzJ*;42!73ycO4Iyu<^>u+?25%mgXlEH@|DR zabsN1JK%)evK|X5f;^=htE$mFzl4bOF7@=Wa3Fkvt&9cMuk5U7N=NiW3;sk7Z!U(E zXQ<3%|FJxovQ7jPK@LZ$3&&#{hD=dD&NB1q3Xx<{_7$eh$a0PxS~$0KT--YSs3Sd} z1KIK@a$X#Dnon+Mua{eJg3ZX2ENxuwA<(`UF{zb~)pJO59Qgm8+ItdH+{{p|Q%^b{87Oc6N z4Qsa=_AT5FYbEP;X9Kb5zQGluq>FY@GZ}VOzaOx=W`#b(Nbz*VPu%VbBEzQ@D5k~z zCktn)EeQ`SohYjgC@Y76eeQYUusubncHfbdeRKvi5496BV6%AYj?(AzacYe5^ZqIy z!a_oj_b#_i@3xOdG8nhc&e;F&Qh>sI=Y~_pjR)f(XF7D#d6ISx)zjpwDsaw$SMS(? zOjbzE`|+oq*Bnbm{PKtXdMsNUOK)lPt54Y>)VCfu>cEiKlleAzUVow%jFOZaVWN!d zd;MrxC5vUUq?<)m?4UP<^T3tgTn3i8CDx~T!g`sljOhiFKeq1y{BxdWkI|~kM}wS0 zhi@n^7rA?!S;yOk?n_5UKW!uil{RCe&Zwn~N%osjQpr3T0+;t55CF@dJyGk)Gj|n`5_NN+4T-DZ1tU^<2vf>~ua?<4YCUvl^3z2h@gh6xf*Uyl5!g z&jU99l=JJF_en~U8-$H*W`FkaDOe1H55lsxe*v#saEPw%4z=MjH{2m8RTqq?xc1nT zBYT`$E9rZ%sPw*`8J9+H^I_qCXEo?U*IcP7_R(!GO+N^$+?e6UfSA9a!nDZxzPgZm zOHorSZ0z*yI{40l`XWZDk#UoiekPU(u#lzpQbMaBC&HuKGW?V-vEJ9K{o|J5e#ZHv z;AP8^kjA`6me_`nVldM*4Z(D3-14Ns)=1}e9ZYG8PQPPbv^=JiY50h`V<+i1rG3E& z^z`dbXDyR?IOQv~g-*|Yz|5P4+roYRn%>-9yLbw!w3_UUKH@j^*!KJ07kG z-ujU?gXhM|xi5ayAnuptu*6SCktxP=JVS}D8?6d9ZM>Ki!zW{cjGV$G2@_N0(=#5S zEMq7j@mPG&(mJeRZzCYj@;(l}rdl^wIu#>9@qr>g8m2X`>=V|6%?+h^X~Q_5)Kucc zH|X;K7G!bY$WX|5&{*S+Z7FQCv<)usrn)Tf5(^%#Ijv@R^q1~M>$g%H1sJdz!WR`@-idT|yX3))Z zV$||OcLG1#k0!|%i1kcp??dzKI((#j?KKJFkVUr9zK)tl^&AnuNLfFyJM~oATut&)HNTV2fVxS~#D543fS-{5aEIX9RP*%9f%h%)JhtQSC9+f28xUm6QICjg!^niYxN#l2w6xSQV>gioPMI zqCj4U!4Lh9ZjEpL=m9+$B{Z-Vt#xlm-P)mVK3Pcbui+}b#-h!@(M!1s`~%)$lDA4q z-L>4wfyCIg@Ep|6*)OiDj?MO$` z3U#NWQAm?_>`s@H?9j^bCFsozv9ts|%YlfCm&y)#S@hdCo>E6>>mI7%E@a}pPZT`V z2%QN(?=kzzj;*F=HNqg&SIjZBD%ed?zz4TToXTD8PmAETZ;1gHxq-JdHnp}`gg|=% zJ`o31#DjvI)Tz0}_7GmIZJlrY`7U3XHBFg(xOO4l)eW}u2U%57xdnZ5b1WdA8Ro7s zB_Lf(`ItBdq0@C(RaGmd2>FQh5tXsk2yJP#+gld7O%l*p5kFl#oV^X8vvj(eDr2PB zlMf3W8DvP!N5vK)CW0HZaK|HkIqXQC%i6qOMo1G&Uik#tzGmWUbnoJU_afPKg#5ne(vLAvP`Y-HRP| zx_p@x5Nc~CvfEnuqWEGtd=Ra0ANM>-f0y_X{EibUrXP0|tvSQ}V{)?6>l|Fc&oson zxZx5^7a8!~BMIZ+@O;0H{f^DTCcnACMOff{63&wXWp~`!x)pJtbnj*we00Sea0v+> zPtd`edUZO<%He~<%{(rk3{1p>INl+jw!}P56Y(ut^%crE%CA?(XVWDfvKHrX#9mA_ zAYPwO0rEc?t|AKD%gvtGJ*thdDA)b!Q}cjg@;-c|6(3rimhbPWnn*o%FG=PjtnIj* zM}OPArf!t3Lo1&r7T=qefIzvOLtN={9gcZ9HgQ{T^$BvGm5!Yj5njSa7LMUt&^7VhsBQ(C!dsJaPL|jhjGP&em$ZSl&4_y3A^FN-ddNpqO$Wgdb%fcvBH-Pia?wWqsC_L zwlZs~QbKAFAg`s^*l;Fa0U{&JoTQlIKw~j%V2JHYZ>4tk^yKbn>kuoKyFxn+;|Q~{ zRp*mid(&?&rV8Oj(*$TCnvJ=C*TV&LAq*I#;53)~&>mn#>=PS&ZzR>8&j5=rxs(u8<&agF|nHiRxyu>yi-bP@v zDA&8^OC2tSO^TC(Mq|pLZ;FXyca#WAYX>=i@Hj7_^1uZt2?&Yow~tN(yIgWl&$>VD zgjF*t(!DdNQ8q7Ak7uZtu~>dn3O&R~bxA9PhPdZ(6Ab3yRKCVLcm{L%uIs2pw*4cB z56Gs8nl%$(L&siJ^GQVb|8W7D6JiRE!pVB;&6*)tQDi&3WQQy1LyO+WSHtsObhbOe zq$9Q4X%hc#^_yb}8N^;ymseQSMWMm0`mwh;_!uLNFAErdS~e!QLrsW_qHSTuW8a}Dh%?LfN8wP!j@>|dI1JwZM~^0*`qCxeg!6(k6>i?u@G5}1Gx=yygvMF z!D$w+(?==PV(3C6jzbhPsHeJi-|m>~7~i^?9Fuef#2X9QpQnz*dOx(kW|x-g7t$(y zwOJ^4dr7TAeqz4)kY0&my|B4HRea@=$I(;bX!yw4ul_yfQ|y?%#p4X18}AZ@q4r*M z){0OQj*NH{hE|%LrjC&y#~uHmi$a-d@SkDJ77s>!zNPKrbuCSz8y;&aF#qaaD$Jv$ z&zVFY1TZs|TT3rO-`9%@=~3Y5*TQ45R0}3RK+AX3KdX(pebic1FX;u|7TWb?NZ$X{ zaGIK8Geq-pj#pxB4r{4Ij$1r&3VG$u|H_Y(H?GtuXbAW0V{-{RXV=k5JN3Zp4*&le zzzB4V2QB-{-9k(m9Iu|Yfmm3y!{z5`)Ne=&XXhNaaLa1H{h*U%M7S5?1QQj<`S~U7>uiNEoTr++nZ|2#3r#fU z&hS*^42;Q8yw$9XyR|MJS$5b~))pP*k+QWk?}Rj(qauykix}Y8LXXF@5q!TD7VOI? z|LZzZm8Zhz>E?#9=ig7Jjh`?p6&Ofu)MkCiNlSeA;BAqM&#y2><_J278py5j9;d`t zgkX4@N*rRM#?bb?BCKO^=YIFq`JH0sdEv{hUM8gxeJXA}{dzd!j9-vcd@;USCPv7Bl*j45JD z0dZ3PuR0hQVnn+H&s1=dgXJ};8d@f=_iqip)wx>w*kEPHSzL1~!d&)09HG%N)M<@5riP@L-n<%vueqc8i>Cyfe4Fw%YbK+c{Viw6o+tjf( z2ufP`^t)HTjeb_IlyF*_TIO_*MMwS=IWy8Q>eewIvzX<(TJf7{r6!viA1@>ZPi34} z4T(+;PLu}>$f7>BbpQX~QWz zE+0h7ov~*Z7pz!g63;>(pawHS`eqO#!TkS+o``e@n>H`F!FiMN@Uv|u11)5~U7dZQ0| z4+r$^OoiV6!_E$SZw}`bu7g(H0YkVBbslkP`n$d^RYeBNSqE)36=7cx>^`(pM!EgT zVrtOOHI%atb8m{cO!>o$0f%Wq?JdiVlNmxtK)%7V#E-U3&g$SEf4Cn9WeXxd3d{mm2%2=!;J=p&BC0$6C z*dwb^f?}$|Js3I!>3I(Bxb9!Ll5bebM6RP&CJ{ngA0mygJ2jDXnN?D0VPT$iPVJ~#IkR`MG&Cm;`6 zfVjYuC=plEY4WO2fId=vt~0mjqNatrF6biby06t-5@Ow(@v4201?R3ceS!x5bH3&W z{I@u2_ZI})z#)RGyYt{3@=GS$ZpfwRsGLNI>f+E+3c;syv*@unU@fwagRv;smW?G* z^|L=xJFhDQlEeVe2dFdgx{6@Z9R&}~C#4zn8;@O}C3TN=W;sQ+Y%%ys?X?s1YiBk%nssbMZ>>5W&T_A+ofOU;&(uAv)IFyrFmJwpVzF?G5Cf5^rTcvl;BB$LboK8a zVvS~(@<F>P9sKDnDP+-$!s%BPR1gWz( zHUhrS;dDJb=RXDJpbzehE*S3b;Y-QqwC&W(3OMDb*}4va;snrD8p# z^>{z_r($y)1Z6UEKz4?fVK9iCS~31CEI}#Y-St8rjP_voeQg9(B;Whmg!lLJn1U6D zM(c8Y5oj{x&4%}6q0G~Il`XZ70ks}VY4vMi^UH|jiosM9Gf`3S>S)V|B@Ek7XP`D` zxDgeZjPzXD{kO?@_)r?Ck$s!N#zC5_=)n(9zRun>{!vdKs#rY*MtG_Q=NyhUOFs|H zV@w*~97n}TmKcvWt{w~OjYTs|hLqGeFP5*9^`qLtSehe0n0y>ApTw+;dok3YYvb8( z+?N|elNZA7o1gY(ByyZjjU+}xHTBg|i*7zFKHfH;Q@H)pM!Oi<9VAd{TbItFTj{08 zdOk%)sa{BMZCKrBBd%jD$>rq9Y?^W;R1!&iexch>T<-|DrSu zH!;^4z_)(IA*Nc~3{!a^W4)kZ-RtycyP|-rg$AEym5FxBdsUH;t&wv(X63RFn9(LU z_OSh|PPKHi6Z~t-9CQq=j(piES>><^m_sYDJj&2HfRV~f%k5dNl?NdK z?EW82DSn@6)ZX_`_0uqhM2Lm^8)2CV4Z>V9V}Z0qdEK~u+?>por;oFDSIXu=hg0Ls zZ7giIxyQ+MjQPVI^yHj)H7nprXb0f>hfYPBllQ{$x(k`KGecy$!15h*Koam zYJdKc(AaRa+WauUBV!mOKPMN?c!%w3ljQ^(_T&Uu1LeNtn%Q9-iYN zd$rL)fok>djOXu%Uae`>x|XSfh!bLX9Ndw|ct`sB3|aXOnA1b$v4f7gt(6q-=GP2l zA04geTOm3^SpJfHDQr(Y@JEF#1)wK28WA$Fb~^YJy{4F?Y?nhMhC{+1mTxo`>9w<@ z8QCt@+^i!w-wg(5qZ21GG^GG}m8Lv+Yg+K{pUm0|p)#2D3eh7Q(LKdP?3Y_&MQmrq zUE$5|I|j&k|93+1pjPjLas9uTbry$o7*c#<-ka7jFO%Z3QkZk77pA=O5@BgaE|`>2 zd9OGJPU~rBbuR;fFEVipV<4)AK9Laq-9#GvIi1FSVJ=;ps71ZyqeOJGIQ90^IH{7S zuKg!IBQp+XrF8k_H#5kr`)x9&O7uSAcr9++xj`L*z-O+C%Lbb$#WDN0tByw=4e$Ft zZvG!sq(W$A{S^y&On8!#uRGn>*=_L(lnO+~nPK<;6njI0F{IVz)wCEJ#XdHmM{8Xd0u82D0)ONQ;r}>R z<#92UM-yynhYd&vtPys}yY-O{LEdr_z^H&p3!`>Z512nYQu3Yq;K z7xTJ!=U=K9z5PNc;^=nodpirxeJ+*?E#NQ?{{+*+Za^`7Qr+3$T0xZPL|PQH z4u5~{o!tF#(j0A#3$Bo7NphdNigeuX);IXEw(q;?#bAmWyTR}}u7;}w5LV@BM3ABR zxM9u6c&~5mVYB<~`_`NJGjIoAR}otL)Ro%D@QOz7>wb0YusFWF1E%>kSf9isFVx6p zVbzBGTk$R1f>1cM$@e0x`oEZk%7kc{I8b2q0Pw))YAPLG7o+C@WC z`R-+jsSr}rsp4$+2h@I1BkZybW zieuw=PB~J*Wwuqk;59{Y#Yl|GK+${5+4l*knPl-vg(@*7PdEu2@#6!$U0r*6kes! zBSg1M4YhI>SL_d8-^@aBt9~U84wqEibJqdQxkm&w{4tecG!xK|O>jB&eeRA}+34o7 zec3uu`9C{<|D=<2i4@~}&scq4FO%f{I)CnYkh2>FOlec1Sr2?EZQ_A+9tnBS zmns>{vD#;<=(?}X5U^ZWX+4(F;-YmPk=qJ)wwDNSSp761qgIz-S+2jtCD9+1!?pgj zi^{HtEfw@R4gX=(V_4bB)&ID5Ls)3pR=#fik!6JaW>yvd6sm2(_K&%87|# zahs>0s^ed^Q?1=Y!N0qLL(zYaqB+?4gZJLD-c(9zBA|>!(9~{DlhAY=%7aZNOA=hH{#f6LAoWa$&#&oBtdRd$MU~X%vwv zA&2Z&YnW4|;E)p*1_ta7CB%EU@);I4O!nDjAUOO?m?5##*F!)Ae7)VhwBeQpq2g`P zZwc*>Cing`Gldegt8plz4xZ5p$&jG5K)E564saq@01-IQfr&i? zGsbE>Z#^fZhAc@$=6kKuOf_1ppU@?Cw)MC)KCgA~OreRNqRiA8RIAb7c`?eyhB=G;9(33=kgwVBl1no)fZ&iSmZ0e9GGml@L(+OnHTFH;u*R!m zP&#nmW2$#`b@g(W5`RTNs5ejx+*6leTc%p>g80ZU*sg9!BC=-?K8C$ZWwa7@mhKW0 z#`^-{Wb95mMQAj&XZWD{*wma&;Em&cG;>xn7C|XI7)9e$3`=;nQ#86^6*)iFScLGG zoc~pGo-2(^Y-J;JmSZy)j*qwx>;g8Gbnv3T)UYkewftCZVkOEBv$1fg;FBg_;O6h6 z4|VQ?3yuJHN{*PM;dSfcA8zr^7y{h|gIkXYD>{~;g$8H3-8YkMhBmxbb^?n?oSVZe z=UQ3&4_@OwOlKG++ZcYG0%y5@Q*N9GSs+&PL4@`>5w&8b-)lir5)bUO2NKJVw2p3` z4#g`Wiudlav;fYwMXJJ4J{r?z?DFf8)OAKLXLUHKKIGGZsV z6SU<-pGei}Fdmn!P(gdrsSR9OG~0}*J)>IrcWp{4NuW2?5iW!NA0-bOWhCC zQW&Jg#@-iLGvU0^+vt6Pyt9o|Aqt4!5S$vC#t7T|5W#i3{87cE>VB{6X8*{9!O6`A z|B_+PtC;&rF>_!(#M?r&9#M%}3afoBRb|%K(O`C@m4mWykK_i9d#yhio-x`vEiSKy zi15C|zoJfnWy8+I1FH#ZAVrlSC6m9h_nz6KYuc5Kn3gNFB7iK9@YC<)BuL_T6v4K! zf9|P0sNGxeE}0%Y1ZFcX5?7R4>$;!|!d$#zLy!B12hFXE>CJtjk)YG4_O>fH@wAv&fR(|SUvkm=V9~N@{ZB({L;iWQP|+V_CH81RFVnq+WI#En~HYD zv>ttbN~zSeCdq967L8!L56^n{ZN3PWRODQqhDs5g2w;`4YV2hjZIDdVI>C|-A|o2m6x7oCkbB{S`4Wqb zrzw?Wg1L<0c)kh+Y-v5weV%=NmxGJR8}z+xVq+hDuvtE>2iZKZV(6rSsLJi%*g&r> z1d#H_N@nl&AT3(|gcMeoF(-K!TKG)H5G-d#*#i*k5GJed*L59#7$n;}R)moD>KXN2 z5(9?LMZbGMA~`*+IZ60aViqu%BV(|2g?v%Pd2?6}O%F(}%WA#kL#RP<7lkA{;II`Y zgpDUK9AQvnml8EBrk3Ijr^hX{Cr6?%Ib$5RHt0Ql z-#UcVBEDOtV__j=286JxD!-8?C@9!ywFG3(yjW6+T;%3s}6B{oo@(ba;Gh$_$22Inp$2ca-j!_OzdQTWVUQi&$9o)b46fQ4=bDHgoyaPb<6@}PCRfYjB1o-GW*;f()}?ZD&IKt&=5VvGiQpZF(QqDIJYk2#t)iw@M+^2LAhzt zlB^!F`iyK`=Vy|g`fqGR91uZ^ua26$zFlhFh6h!x7OseenMPZED0{O;M{@P82qKS7KcZ+KMR znRV;Em8hi$&uhrhz|6GZd2M`Q$YDzR;M`?RmD<1d&&B`2G^RH5VhY@{xkEpjq=(uA zu5e*8i7erE86jJ{MKz%un1oJXYwQ8(g3SFcg;{TF1%B%)=};r4h@o<#*9rfI|D)5h zK7N;?O!jP{^l!sZS_1Uwl>q*Z$*MQQwWEoi79V$#=#HUkPaq2!;_1PFXG~iD&~mBb zNLWWoDbbx1-;k5=I2ASxpTg!Fjr82kt$KAU=Mk?jjvX-*HYtFigs1SW`wuyEi5lnTKBqDZ7F>5B5P9QQl1ZCm)Sz z_4^j+NcF+WCVydd%&neD&X<3<(^}e!~&hf zookqs_yXuE?q*6?MT%GiCp5Vp^q7JTL;a^q9IPcZ=_jDq6d_jq1((sE{kb{I4wO2g z@YJV_MZt~(yw_K55P~VDU{`L=fTA*w!v^xwX*FABw=nRY+XfTTS6^)(p+I~f9X(#@ z);E&{*6XGocR;>^MI9c9tVUFic`wO0jl?cihPI5F;@4molWsWWSx92WNl!bv_QXw6!FHh4{(x>dE z^(_YJbJsL2D>@gB=aD6~5>6R1OxGp#+CyaxBN*n-!IaFR?ecirkb4W*uGQbI+MHhx z2>*Zp4nKB7)p0L0hg7@v#E0<$>F_6`9rTIHZ>7T7KJ-q9GZ` zX1PQsvJ^v#+#ie>_T6IQ?=zmZNsW0Pex)k~?cQKxoik#p=Cr?3ry=cgk)>HTJjWAF z?}+B!CnTOs=Sn%Y-|R(!lYgu8R&GyC<_ezScO>$%4syTLKVrYcSrVcDGk1tp8kXQY zzV}p(7NaeJkp}@O{k` zDgd1dHnAVkxf{WKEneS)?QxO&$fI)7JCi%QrcQ&fLJt*USp98_Aa((hc>y#}*dIUk z+E&pz3uV|!Ag}`k>Tj83+-mO7ITsk}Gx_JXuJdkEGc9U_{*RLHHy$(0uRm#(Eg6qP zWQRv%hFLFpY=*~~EY=4Qof@Olmf1t^HoN1?H{Z6vcuFj)xpU+Nzs_!Wz}SWyyWb#o!{b(pv>+;4mq>5MAN)|`B-=&F(Rdy%pt1H&Y`eXqh0V}0Z=O-0# z4F!+BlgRT{JIei_>aV#>a-z01b}r2plMW@uhfs`A;>Rv=>7UgDJ^e50&bb-jZ(m(m zyx)3~6XY&|kcTvial~>7ocDs0oeijsas%UE92Ez)wX76ly#}6XS0jJw@Q?$&BdTn*XtxYBTMpYN27{W#*x&_#Q@uxZLtvjX!>dpw8n+NAI0 z*IRo;2yW-~Zz(e|i74EP+v&JHZWK?u&;P8vX8DHa^~JyL)m#L5&g(r#mR9u zARemmRLol9`ptJeV^U#{27MWgeSNL-^w{m42Vo*>aEbu-uWDTd--WCjH`r>P39Nl` zK7-2+D4s1b=6hL<2iBuBTir`;crt2-K5J%b)FCEpuVYaVxCdc*{qc=LQfDJ{tV{7p zI2Bcwl?V!oio=#jP{RW+?fPOQ`{`p-QTQqdi>0 zAA5&lZi*|!8nT|hk<21}u})Ngw@-~c)xP}ywE&L+tl4qoDN{m_8#c~FiHATlS^G*| zK(s-9Cr0OYc7E+d`j>qu3>`W8m85_R{#ADBh=6Lvx>;x#zj)Yjl24ZEk1T&lA?>;j zB$j6MqzfA%i+W`EZioAY+aJlH$AC_>zS6!l;-w2iW7R;o_KByQQv(j=?=8eb2y=_yKOK%vNSkH@p!P^ei4mC4hnD16m_QMgCFQo;gDjH2V zQ2C2{%U3UZ$HBsX<|mD699G%(_dh>+)cy~=SpOnPLIx0b09?}(p!`_S8mrX!#me5N zCk0NBb4lS?bN77nu_ZVrzEE$D>j1I1>SfJMH>GMjxJuj@FKU{k!CdRH_Zu93%^?|R zo=%^oQ+_}OR9kAHQ$v`f2f@BeTjs^9wP*@Q#Jg;ef^yMcT(KV*`e~Pb;`?#6>@67UX60a{03abJE7}d*W`Uq6kB# zKxQ1|O_D(RgGwCi)T1Gk?G3?#IKe=m|=k&`-I` znLxzQq)Dd7tWZhsyT`r9$bokXd683LCfC^#*e{PgKp8JIPo3yay-Po=4c;yTW=Wo+_3j-S?Wqx5=YSiCFrsqqWkRkJC-vglw z&(d5Gp>xNPmsCB1+@^g5_we-wV6ZAu=mFI+O@yuOBpVg#VVSujau{VbTiAM901bMS zi5HG{Y9Y?8q9k;Skci%Rh|NcPgM+*!0#sy_>=(n@ax(&sD z8~xK63iwVZ`%2kdp*L!rFA&*HP_d8nAXP#CCF3x!u)@dcvB;dwTWI_! zJw{H$?hJy?2(V7T?S6kjTI*+vPW_k!JTCgB_3?h;rDvDpTLSN^jpVDCUXcdR7tM50 zRVeAhm0GM_`;_%tin#7uNG_!P z(bb`(GkxL0v!`!%H2&Q-+Fu#7&xY)u)IY0rr?H!MV)Aj@Z_T}$WZ0l$pBea_Ml*vs z<@Md5x4byaWpR+em0*dk2FA|i0I^jMd&P`sKO*+)4aY4Me3<}#Ny_P{t zmI?>#H2;1}VuB>l+?5*M42C0{k|P%X9yfjF@R?+#y+g~+^_oju)e<3=L#y6(u-Ec& zW)Yi!cU2Vq<|M*6Sb3Olh2{EGq3l@CuNzTCx*r;$fiz)#j{n_}7r8_8goAE=O}q>Y zj(SJ1A>RlP$xA-HOgBHUlp4{(tU~=>gJW<^^XEt=c__wsrBM$+)Oq8YQ8eqZyeRT% zWfyMy37v5c@w(kL6Z*cMMLOGaX4(UL(_+fDF+GWw2R_7w6tuv6Y+9J1zwpAybwc#@w~Cm8ZEQv;doiW)u3CfuO9yx zt?!iOOU`8yqyrV?j)k=ZOF*{OHe5fqnX6!Vblsq*Zff@cVu!XOWZ9xc*Axpm<|E;Q zD++gJ_5vqzH+SH7n#N}Vwi8G8J-_--=$ zgz?7ZU6T3i!<1Q3Zl{QMk8U{yqPPRpY+j%ePgINqy2wILRd=86F+x?b?`KZ#K?8;> zdu*%yOs(yLfJ+i5cS~>VOU;^kzT%W1)r3wOQ62dxdA=!iW3v0->?cO5ogj76A*5*a zhCM^JUnl%&ih zVFNe1s$bVk4sAI(0gkL_4@wx^Fkx3}_=1?h$!&nBxBgWq_~D^PR~`jw@>z1Y?pUYt&YIZtn+RH|IyM^#FM3W zo*U~=4xigw#rc?#uA(<&fe82Zj^a_k3rO`Z@aqJU-MB}N4meehAC;pmMHBz0Oyj?t z(4P?gM}poMY3?|WJp$r&0j=ydK`qgym%^1c^`R$w=eba;98F2UZ?|z8ug;aTk)64?90zgd?ZZ;49oV!iaFTra_DoE zu#0nO^Cm~ET~KRrs3ejOpbaKB|7^ewqY{aU>=K4q!*T^6zjq6s3bi?0%3c-D1`L#dDT@4c z?Yxxd(d?#xRpwrky>|H2J99d=0c!-4u!V$e6&plGU0lL?y-GvtUQ(wZBzO6V^H^=I zF2ZBvnrT=xpt`Kc?>;d$lZUBF10uI{$=(j7H*G&&PMmps0;D)wCl;k>ZT&WdAq^cS zGMHUlGc$J&asdCT;TYJZn3X#RVRVkyDY};-*g-IKRMD2na()ZSb3g=7q&Mn2N4@JG zMyS^Bbf?)*2^?P+Xpui&#R$NDRkVUQ(7$5BXqZ}=a`M|>yT1O%Bee(;`nLS&DF^9% zihUu2%?eZ^`#}BL~ZDMhn5icR>bt`TDle}ad!|?n6CT7ED6KYp#Ils9| z0Fuw>2L?A^rVG~G<{1Pa*PE%S%SJ*^-=g{C8#$8n1zpa*kodK&KeBUBJ0(uB8RUh2 z5p%S|Tg82|J`lE7P82F7a<~738U3Bk~b% zKd+&I`-Uw7In|Q8*?0!)qkJ}DR7+j3bcT9)ej_~mjLoB4#nl}o1T6gHHRKhE^`V_I zV0wqWgckoH`z6KLbQ*@b=5Il(7$@k!_iuwrj~5~XM*d2UU({qNwm)BHUjD2F(F zDWbyCzNv7$bD)!85p4BL9{tgGZjxj=Z}#mzloQG`glkTm`hYZ%He1B(f*TWaQb~oqkyf^pCy}P@{MIK&x)e?)#*5#)ohi@i_?fn=2D_O3Bc;(oO5K*We zwg2lnAx{%BH$zz%#APYZ<_As%y&)gBn~YMl3kk6{Z>E9`aUFd00=~RyAFo|y;okmz z%P|^i!r3>JaZ(6qv8dX+Qg$YMJP|nPYM*h)hPy!CgjRabbDAF!0Js8(@(gSx>4{4W zg44957dJnY^)i<)UN_u+P=!0axbm%(cT?`rryBXwlaCV#+h-7Km&&4g7gQ(iO)BNC zXtWr|8yDxmX50N!AIUfqF^%Dtx}H>-T&yeB)pjXRE5h|;u>86wKEkAKpAp)#_sqN7 zxaQFhq;KcsuFlT8q+Da7tyP?EX1i4IbG7CO@9JFf%XoDU2+91Z*xDPD>C^j8+5X~6 z@hJw1BFndEr%fRjz<2O>oz!xHq&VQf3y#S1>dOM&QIT{3W2Mh>dEP%Yhje{?3-C!| zV-I@i?>qZFLiIc>R*tT8$S@xF+Q!}lNPgcK9C`D64@Nc)dj;XJIsIP>MXJFj_1{Wp}Bc7R_tmbaC_jMw}W=P5vf&7d>~q@!rs?HsWz> zh@a}Eh!7ipt)@{Qx6VEtx%b|78%$?I_X@4-me0G$M!azPa3j;>IpsOon9)e}PNkG& zGHe#NS=Z6CgF`fhXTTK|1uqEBt&XD4%2<|sA3ctI(TSe>fLIK#S-0ENy0n`geo1US zRF~3%JMMGM8uC~-GufQ|XHYR9->oxi{?ueX)X&NTfI3Af1{~-0dw^7o*SAi-($Um% z=A~?+>azAEKa!P;S#?v5Yl7VnQejmd9D^A9fm13(>;gsw0s!i7{lg*xL0}Ez_%q~7D^9gL{Jq;MHiPHb)357V+tuh!WWdyr*ApI{*LREQ z_JQ8}pDx?^?l`S(<+m4)_=={fwvn_e>M4F86AcHng*?njchdMQXbd_MYLQ`qRd-YE z$>!(oA_Z8$rtHpnnea|J13g0%zmX~!fRrt!C}m}K zcl3y)1U7$gB*00L$urqe`dC-bT0vwZ<`cj+R%9=wLxfHwIPRZ`A=OQiS4!|HWv;qn zhGPH3`GNuzso_L>dGT0Sc4%=WE7Hst1jI64z-@;}6I=zM+;sTua6+^SAZLkza)_lD z&ERb9n!cyt5^EDYv|?G;^k^7&kC?QR&gmZI$*;r2_<1hO;Jfes0P}uQI01L{OXuE3 z6gr^@hF-<&hI!~uMiACG+W79$LHGAAGd1* z@(GBbCRSt7?_t6L5t0%(KwNA&b7d(mNgw+ae&hAJ%>@fIZ(pbTp_5rPziCXPS_3H! z4nw$qu33gDCrEh5>-DD0LU6qd#%)UxHN_=7nlwu9Y5aNuuC{j1yXx>Y>9WMe@s#;q z)&AT9?aAg~c%!-dwWTL@(!}H`ZlZ{pMyYMTn|IEw7W5f}f4frS>K8RbTG;dZ|1%ad zLj8l1fm8_B{v1+Y11O>J1|5nJ4^|IG-qMT}VUAWG$%RUSYQ@tBye1lWKFIABhof+H=2Bk3 zoX-L2|K%0**=SEWC5s|cz1lixLCM~Hyu$j$srw4h_!VQ+mV?K!hL8`;&`LKc2fHov z)8uNDlluTd0?WsAudLFE%?N4#)RvEMfg~hP*3XP@phKalf zp?4AvBbd3@()S?ru!>x9>xmkpiFJKr>6-%VebkccU~PZm2b=);wj$5y?4NxgAl9^S zq~UJa!E|p8PG#&`JqIpzEMnpPS?%%ARL;_Qqc4C!)<)K~V=@4rr`6UK$2Wt9whS+& zDVaW)YpqhVkV}}@8tbD4C*h{pA^jpXAwIv%fE$_~C&iKhv*y<9F7tlnib>nE4jlsi z&6kD*kE0lqO^Int2}C@P{O}BufC1>j3m|WSgu}e0R@9eG^3LNQ%{TOOOb^<-o)dV; zN_)OwN^Kfm7}wUq@0iwznmB99@n8A=%W~FfWD6BuSDAn+J#Jb4>-Ao^L&4bo1|b-& zW^L@u!k+xt-)#5YYI#YSffLsaH(^0r$$v-9m=XF_LroJd&r@u=p7XAzLL4Z(jkJtx zlq;Upu_WM<(H2>C@E7oPp~t|B%i81)G*A*t!D$+Q@w5o1Y$YGxdwvD;98LZALK=BzIq6*rt(h?)4uvEgLR)cH_%C zAI3izbeWVJ@Qh2lBUZzMrYm4X=Pyhm! zB_V}5SKeZ3=QFjamWuRH{tNir`vYgLP+EbZ{6fuOiBW$Qa!>&v@>J?01f9?HWd)C-gnfCZDe(_SH@ ztM)0RKIg5JWG)=W0Zg4n-XEr{-fBF&sEW|VT37Lf24!C0ct8AldVoVRaYoS#Z(y}_ z-?8ki@`GN1g%0{r0<~EZsjHP6qPUV7`04Fp4Xmc7TyZL;o>GYi(<-;YsOst7)kFX@3&F%#Iulg0wJoT|5TqQSyrkxevn&QIXI(aytQ!?bl52mH7k(@3ZZ@YJFi~ zX}UN@W2K?2`4fiNxJ(@DM&qKu9c?-FOa|nDZZmm_ zepmJSZ}1_ljCehPf|DoDk6FdZbb>_)ITgwYfUb$@Me#T_z!mG1KEN5ot1Oo2(trK% z^G)lxQ1RT539yL=H|dvp+<(>jamnid4lk`C{yUw(pc>G=0Gjmc*KN<>9Nk#ZfrLBlF2?p zTLYnYh4t++(lxikpy96sQ0>sX4s9`z1hREYy3ri(s}2MA$S4=;{)tn2q4ezh8oSqH zyC(J$yNkqc&SgOaR*=i29Gg^Qo>#pK@Ox*&73iVa(YpZYLtRf^+L^bu+BZ+`$$)+- zxGuxfg=Lx%S~&-cSjYvnI9=Amg$X1_!xtJ1qVSqi&YOf2!L>I;?{-HjlL5!dGx;;v zc||BCMSfZ~FoP;wzw>Lw{C^6OjRx@-vbK`v z7nbZfy^+JmYWflY`a}w$m}Ia~p~_59`QvaWs5|tTwD&9n=%C$R-`zN`g&y>O1ypuE ze7>xDI5*^b2a{qfcVT3Vd1&J&LgIsmF+AG{nSzqf&Mjw=UkT5q6G3BSBLx2*1)fvs zg02hnYTvf~2%6bLzJwcs1`JR!w@D9rpN8bD5>}g>=1)4Np5<;mz0;K~`O8_@PnJhR z#zvnS;^;B&|CmFY^IXOMLh-1U1d1m@S9j;Mb8jQZ)yg{-*OdX2J zlPIOE!O<1tybD_0#O$HPq+-<22wpg<6HD+Yrvr9eU?FwI1a;ZJM`2M=6N>gJmO$+M2uk$P3c$@O#4!6(ah%__pQKw&AhxIs}gj!_nbs}$e?#k zW*;?=qoG-5(m2&;QuzYGV_Fthz@|pPni_(w4U0D7jnF;QX4hsP`VA5XdX^h?WUEbg zQ>;4n#N~~SPe}&YV4ra9!SE-)d3zS;(u4vQ0j!JnIeyxnc%9MxB;XsJy(^9v26VnL zs7+-Wz1;YS3VV9}%aH427n_b%>SsqbTPjWIl27eS4}sWm{_5Br6YmRN`gXYZ1Wd4( z@@AmwV}qW$S$IoX3TXR|HDml+i_1)+UTFG4Y%wYhZxHTp9e2pt7K6jTn1Yw}Y5kZ# zy{(=Bq(v-S(SB#&pB-1GReuN*^J4qFQG$S3Tk9!)Za_?C|ARtK)4bPw=n}lu#I+)<%Kzm`SNllK zuKZK20#{8}Ud2wv%%4@1I8em7vM{c{#Yk9PNf7j)WQ%!GEgmtZtuc;XQz-XuGmftG zoJ$be@v$4F1`ix^D9-CaPlsLyyP}rXLf1}|9=>hR`Y+%ZFrRV-VMtP$x@tI;y%lVP zy6mtMI0c!PQoisst{xGrtQhk4Ox(jBZo0}Tm2wi;UQYba;66$meHQa}2*`38*x1|W ztk{jO4cs5T&K9q<=8?m#6y)PPTwvnriCPp(Rv$@z(>?DgO2_RhT^TO5Li%|;Kg7*l zpskc#^V1Q_oX%{49o-c;LKA=PrO59cX?EM1c~8}bGash!{D+7$_CJS_t9V(Ad6apw zQ1hec_%?TJK{94b4THT}@%0R!eyMCJfKPUX$NkJ9{S=yrbO;Be$b{0u(3I!A$HVlE z0`SuM7`_`z5s^~D4~A%6_XiL8=cS^QiA{eV5czSs)PfaHYL{U z)ZO)Uc9K4b>Iuu&V%QmdPQ}DdGQy5(UkjLyAWJ-x0gzgOtZ>fj2&6*;QN{_^OD5#+ zC7rlZ=cf|0Wz>^sU#hF-6ZSOGN%kr65n?t}&tCzH(aoKNbMY|y-tRxtxh^ML0wU&# zNPpQcuYan@I~K&t^|J?dE*c3i1YpEhnZp3xP65eT}m=lco&( z2OdE-t}HyIs5rkLJesAqH3>1CmJ2uEnOzhH`|jy@YFSacO6Uz$AY%yQ@Mr|L_*Z95 z87^O+4KM59Q3!PYDgD&nM$b&d$dKWogYR_W1I)jfIk}t#s=MHPR4C`T{kzc^af8)w zH5tbU7LjNa>lTRxcmqf;l!Ku6aoIfx(**+%e_xhn)P;vSa5pGtC}`5v%?9R^5332_ z^hjyuUv?ZHo~@8C@g|s*9vyOsRo$WvX!hN^u>GI=cQ$lElb?oL{;|MNm;4x6slgkq zAI$tmnf~&Iu4l^=#c95O4fvi%boHZvq0HMOU5uChu6~Aa^}C!Xj#tv8Y+yWV_ld<% zrTcU=>l?2?nahjerCxcjq# z_|D)k_6?2ukTG#XtPXnr3U_O!iwP~jiN^wXHnd&)b3F)`3NN~P9HU(-@U0b0+`EIX zbDmqxVcw9vl~33FzObc+Kw72)wNZ`<)qyzcM2&8s|edaF@f zYwxp>JO=+?3jm^8RtG640)Q^_vs&7w6P%_u%wB)$@tr zt`S(xo*V*M$H_Q`t>E#`X(3KjHYBzGq^q6Gk-Xt!Pn=<@OO@%;WfNT z=0yozHF_TCl$S+UzNeYXDy9Ns)G@v!kof@Gl!J{b#fV%P4Xg3L6N(NUIq}?3C9G)g zMV}|_EM-&4a)=_WjmEulmj5}n0|Ij%i6D2AksqB1pQpwy>1WxptB|id8+=4s-d!pN zZ9S+_sh{xGrx-6Isz0o$Fh#IX+K&XFtnS2TpbkjQIl=GjbY!?b_j`Qr4WXGx=e?U+ zY&|T-jh#3Zm4fCuY8-NM-1?KEmWS>Nek5C6p+5{@;Z4mO9maC9XFVESNCl-M&q*5Z zz=q~)JdP={+o*2M&YO9C4EL0c9?725Wk`5q@^6HRBC`KVVus2WjSIYAlE*k;j?P!P z>#j%^O`pCLunc?ZDgrp$dxR+vdvQP>pkl}~P&-ZZ`BG&93t~0>oFaVqT57bKJ&My#$*^#_EAEOwa`miS!=Cl+nTbw!lHewsr^Pw#o=GrE?YO zB>ft^66KdRJGssziEtw<7KcN@EV3IWL`Km^Vv5W&%P90jh!JJ}51G<)Y? z4H$F2-Xu38L&$HXzq2KDlcT1MFB{*Rsr-9Ion8vwK0sEHi`7q*&Wo-IK#MDx zLGIxARm^zUbfV90LsE2bX==CXZ{2-CybV!aW2r2+#KgZfXhgc>jD@yr*&9}qfuJT- zWIg!<`P=IBYpq<9hZac`2lVC1VPW|QcjIa&i|<%40}c+KqX$rL+e=*DOt@+9+d-B& zkf7fc|8yMmAmr|I($6;9b7@au+0B%QpT8qv^_8AaC)e2>^S;3ug$g_ms?1pM7;(lI zOCC4giIAe~Ld`2UC(5${VSTIw@{vnlDZBCEMW>R3rlC_$mnIW53t=miL&9+FmP4BZ zTJYErd|n(K@nrjrTh{Brw;LPk)=ZY%x@FT^{Hmqj(|D?Ofq3;fc)UyrR4X2A+l#Y1 za8?Qe-4nPbV2cE7b2i>TeY{ffpWpiY<0z(4sqe{ci4*VU8|ZV|FsK~gSUB;=4Fp-AAKCT zro2g6U&Hja61!4*7GHk_dPN{)6$qgSgYFfh`2B?mF~&+^a1lOwN38^S#b+owD3jh> zvyXhCtT)Fb3mjhq{=KhVs~~08 zV-lg9QRfA{2o$9C)$YK8n_C}lq7iy;5)m~7dpwcCZ`N-9;VC_)pCUkTaXoiSMFhV} z&822XbWC4|m3Ai!T`&AYWWmVk%Ad7gp6{bRRSj=hC7H|sSvSh5MBaZ*h6;sFf2Pu= z$e9jT`!sDv-_7R3^5hwI(-2SMO71ud?kwSsiKLf$zm9IOo>KV`Bp|2J+r5xe(8 z$c4rRls}7Z8&-87x!>F?e8MxB=cZyhe1Geg#WRvBrV(LDnof4#JR5J>>X;XHZE{hL+doqH0wUIrlI_vVyVUQTzQTJk`%yb2usdla4B3)*-) zsr684*^}rolWjTMyVb-ap-n~pdM|FaX<-DKNoA|VF0Z*y#4T$$?}%_lDy9Sl3iLW6<*`qN>BP@|J7?F+>xt6cCkUghv_0bhDKV;Oy?0GBv^31{ z)nr)si)5t{b!L+si{BK|d$yYWl{VvhpE%iEuGmukJ0FVvW??;JDbf%|;VPHGl6c{ZsU}w2%uX zb@}ulRFpDn$i{DUegD@nFcK3(X+b_$RN;VbSnB|Qi zb5gFZUheT(vm~PKl~l$En1~51ZjOd5%pLrpt<-8C0f3)TW`pAG{pE+D#}R-kJVv5M zMsB(3Je_Inzc_sRG z;{ADv#vqKuRl^lN`$t*RUj?4ZXQ`nned{aE)EgZGe}{sUfvQsQP2cjCFAG+QJ^|Q| z8(snOBe*01gurHS(+BMj+4n`7f?1k_!310LQlnQJ_|1ne)J!jlL&D0dExoQv7ua#% zl>o=50cmCn8;_j*T4rlR@j*gtu(bueW_#JWoJUEBT=oPEY0QieOeiGcW}d)9R3Nj3OZ|EAV@@A^LeQ%?Ap ze-I6>X`;#7#BSUonk!oS8ZuHsoNN3mub}Y0z|x+uHqBvOI|*na5-Hw60`|<@P|#AN zBAh)=3=!IUB0j>wBRPt#n9BDjEv{k;2eqa+3B=ttJwXWcI4up+d;mN8btXFGQqRZa z5Zwi`r8nbs*zK1bc~t@?WCoa11$bPKzhupvXdPskqyQ4@*E&ZM^zpyH>f7Hj!M|}8 zjG#K09QGEYxVayzTXPq5W+jv#l_cRH_2ksqjXgG6FWTK+K5^2h>y`~x_Ji#HU zWif(e+dV~!nIBlH+%Bg6_uennDO~wVhPODx}6B zRPzV(#k<3j*^$qd|H3w>L&_11`k~25gS{FD9V>%d44AI+Mz=U97?{pBF3# zbhyrib}+FgGqUlD8OF{w2I)Th>b`_1r-d_C(sFYNXDDsAy)6I=imJ!>O!$5*FC^g( zqIsz!1yoIEJS8Gio!;u)*d%TMHKZ4XnBDRntY$)g*p`o(b#T%T$ib0`c zalIuCcQ_u}1u-IS+)P{i3E0J=jg)Y3E!ON}Reao=chJpUoDRqcfN@Tyds#zQk?TiE z%nTitRnr&YT{pc)#d=%~OMSFtl(=tX#u$V5S#o+Mh-%JND`+Zi(h$e`gSz6Do5Ofa zn09nUE8;Bo>#;j}TCQ_Z79#W5EpPlIB9fB%o23?;7 z3HGRK#$kfoZdq|KP5`!y0abuHJ;yK=BnlwWe_jiW5C=LX8!n-OD->-F)+Sm8A_6e~ zI)Z5$Y~HZzEiH?0vdg=27j)6mhlEa+_hM`8VQc5gDB~NCj=rM?WUK+@(5{nvpn~i- z)Qj)G&^u%?>&-3FIhN^IT;XCfP6*e7T%3y4;)V34q?-4?O!+fiW$)Sj)Sw z4<9fx!u)}>2F`hRxzxfVJPk@HiY=U#jfK!Np$6T?hP?BA3R12>lhIQu1Dex;2~)ab zRS&@3(2?-Bk>Blof92SE%e)NzW-&4gPlU&6O8=Qx=0oBp8#!|sQ^~=NGDD%!@N*?E zH;Et)PZx&0T=f5x*vV=VI$^#QD7&EetQ3GwQLpYo*e3O7$S6O){NT-oLFZeBDmsA+)vd_RcZ_S8R02X7eXVq-l=OKOJc=qA|_P zknJ-ZoXS}vXis`N5J2&OmO`}P3$4SMkQ7tvmU%*baHPiYUQUnv_jQy)i)lW(@@`o_ z%}&-iT!(tvVr=|)`eWkH*HfZquN*6s#T#(YR6@U_bKMKhbMgb7I0P{CTA61MZS?XG z5o@Hq2vSw9A*3|~Df*1xVYQ#GsVaYd(p-HInsumzW?hK{PQYFEC%RXd{q8NizTmO3 z-;wfMWRd@UA4gh6i?@KUo@a13Y53gx79q=HNJ`uUZ~DdOPfi}SACF0-4?n6pXAgLF z2(YY|%|6O0E%)nf5v>nZR-8wMh&M?9I`dm%F~=BJ^)r*4^m&LtuQ!@;;ccZ5n?~&h zn`4;8as>}!BJ3;nXC{-862&M??`82o-pg=`@Z4p{9|S#)x1e55M|Pp&y`#fNw%x6e zt!Mw+F@H546A+>`JuL+%mU+}=1y6?(hRzIpEkft-C+zy2P4u=M3L>U)S4^eAs{G17 z*GWpqJgC%Q8p|<|Y*s~qAUIMijBhDP~#s44`cH9cMaOT>uyxGkWtni)CQojxV^|v;q}*T!t;PEr}tsak|tG z*lU27!&S~V>SqRlmaU{;t4!tRcRZ|(;l^Nq;HJ?$Km7giN^`L=8++*K2-f0iUt7HO7!YwrwBAyvN8#v`tyK`4 zT7vO*W{@}>rr(HqnmGc|FAKIDND{XrH>w+&r*hB)Ixadbs&bXJ^|W1IJOoh5v%%oE z-NmT6=m!jNZKWrgf)IfSz3`SxD|{4z(cbW6Cf|N5#ur2`&_Yr0y#yEl&HeLOr`YzD z^!@qvnR#tPlwBEgc+>3MMd*S%lvKPL%V{yD)e_DTf>MES_9iy0Z9N~Oa2q~b1?q0d#e{=8}M-)uk?Q1?c>}YIIOlo{H_3K_o;s$2#`&)zA zu<=!Uqkf-sJV5W}f?jgU%F?-J-^y=NC8o78D0tiHJ7VeTCW+;{P@^uy`#7cYVHRJO zbyMU-LO&WFcZPQiQa#Bpu+b16$djNiqTx##c-YwVESBn)iZ+?vG^Nn|=V-nrVwD`)Q^)sDFQQjIM?b+8CQ9NiVuP zATqjCpq-Gtevp#exIcfe`bc4#--RtlOLpbjS(7kvEYGC$tQEC)jap&L6MpCR#MHxI zVt}Myw_XWpmFM)~x2kk@NAc=vxVa&S9yeqF*oyE4?+=Q%kbZQDZ+G@gJ)J?5kXTj& z5Vbv#K^{;~JRTTHGpx7iVTexx_>yBNhuc;0mg5iLdPLTGd+91(w_>8KV#1}eNwKXx zh&*IA65O57b3+2`X1)9gJKY*QygQ7))d{d{au*9nRxTM($?Vr`v177q3+H|i(5o(d zx+yB`+qgPhkkw{*uy$YIF7Z>E1A;MO{drX<{gM6eOXRKWTYX$ zn9Fqvxr4>;bEjlP0)Ok543e7)or}-&nnmRjf?lXVWH>;dx27#CL_!Lc1?|O%Cot?q zRopM8I}_Qhn@sX3%l^{OVQcqRk)-^m_K4xw(A8jfKR|Oc0Nl7`1%17Jyw-90xJc9m z&9i&%QPNRV&6btNjbSFsZ{24fFItHdG0or>6|lE$RxEEfnJ<47(47r&Z24auLkM74 z_f2~|xKnrpsmO=TGSE+!7L>5!{(*qX?_l56q*gQbRi4{WiQ>L;Q#0IsyzV-KCLs<= zRK1IkdPoQ5TGPwFaRG{Es=nuuyfG+{UA4r!7TLFYmjCQ{BQMPGu$Xr?B^H-|PWkhBeeoq7 zuO6e1U|L(nsF724lo$J2`!B6(2v_Th#35AWs6 z4Lj`p9X$5#?pGr2xBVpEkH%59$5;VtYh3kr$BQv1MV9JDE48w}#47q~Scy!RL1I6? z0MDORE~O;Pen<%cozm#&o#v13eK@uIUn1_QwOhP`?K_9g?dmt~)vbM-3StJXMdaKY zyqC9am_$=woQ)5v<{A4`<)zK|7tJ`_7hA0PF#&O+NiOaZuNFhpG6w0GQ-u!_&lSwUQA7ga-I?wK6+%8KYBL z<)D0}jlI=mm3dIcTaU6i>$ueX+5S!7^O#iIThO?))VMDs{M@3n4m0R-_-q}LDuau-cs|tJK7&y>AZ!Ia2d*|bOXd$pXMQ#50GIp4+z!=czo}p|X z2kN1V=;Z!8X$@aMw3tfl@A;>s?#Emo3mvdiGOFK=t8rJ=lXeBt(zq%QPh7LzmZgq$ zNt0b^AKRJZpoZUFC+m`iDHL@bvd}sm7oo?Y@aW_u(g2*3@Vxp7AklOwvsqW49Hf%> zAEV8K@E^u8VFfMGO76GTPI7Lf8f|XbFyR5FiwmR;0`>vKf6l)5KVU8a2qfcgU7?BJ zUNjeu-_w10<5`-t=gftsWu4-o#*?Dw`jE-QJu=S=ZW5F3gnQ%MgE&Dpu~xL$v? zdllpg^Yav?4VNRfqwC4+p4u8qG2+yerr;jEfUBL=`Qpc{vQU$!;*1HbA*c?t<%WP8 zl+LLE;7qJxa7llBJ?bhgs>nT04j3?nQIXBfYZ#PXy$in8jKMGHH+oZ5>8e4j;K6m> z3Lbe8VT-DjVF7q1oewEONpNm=F~Zc@tXzCx3%me6qN>BS$F+=IJ6{&voWf_rL1v!> zV{qmwh|KIqpNOi!o!~oKz6}44(QW-o+?|c2&9S+v3lJi2`KbDN%P@wXHZk7C2hsiK zG_cLaxds#sIx>R4p%zAvW#Fb zGge9!K8IIGi)JWVP6CboLk{};bY@?`u*jEOb+2BN#AwKDuqVq3Gc}mo4L)WZvXMk< z%x&_C^)|IOIzwNuo7%Y22D1D5W??-y0Wr4FIRs$V%@q(lzyJbB$U3*~Gx3VJwV(QB zSbS^9VFiNVfUy;^W!BQ?##ci{UA_T@40pMgg9Z^mhQo|*6c|KsI+rmj+xOQlZ;TIL z991qE=ePhJw1N$}`sSJZNtQV3ngPPUi_>=}?OWC{<{UQ5ZtU{KZsGS1hmU_*g%C{q9YEUmu$c;QNmMu; zv(7x0gsTt5V9C^PL&GF;b0Zxm?MPcslGz}T&1xMn=3++uWT0NJ6xUYa+^{cvev-GE zGF(4rR9csJM}6$@swPEM+WUjgtB|E7Wum&Ctz>^;{zK8;58?Ws{+yTQ%CaPQq=zQ^ z(b$46mJeij@XWI|HQ~NRB{?4L1OZ6F}lh ztZSRSlD(l1kC9&B)clv?Gf)K70(kUJbY(`T8kRuWttiy-c5-O!D&eZOXh1 zK6=AnjS00^Ypa{~pAN?Sj|)(TdoLIm)%}45ka1=HP0~D!WS&h@@HD->yA@InzgW36 zk>g<48mI$Lh7q-sdSFM?=_ zqBzp`VhMev$g_ht9h>B*SHc>ix_*TqV3HE4{I8n971oC)gE@k#huC5Fr`^pfR8ggr zxe~t|QeG6ZzdiLuq25AhO-9niBOSO&c|zgl^0wvWJW{=Es)2r+&8$EwI;9y9E8WV&JMFBS0wSgq;!RuINn_a2`#kH6T91;ZY5R1FlNMd8{d_5+*;jxE8W z$vy4`O?nphgU%l)>$^lD1W*GI4E>+n1N z#aJ9;MY}JCbkMH%@`eAm-44r5<_Lz$`{D>2f_XIb<>K$3;j)L*kx=aXU?iB~da&|) z&MG%mIBT`ir|qRO%w|Ht&B$2g3qvS!31a*1UJS&aU9dLEz)C72@s^j&6M5xz-{|~5 z$cD59WgS#)CM#`D>-~QVF)v{^KM`_P?DeLJSHFpwWReOb4t3U_#2J%W<}g zybO1$XIxzvD^eY@{9;*SSy#&yXDIC_M(1V=YDsenv?pr+FCwQ!yUl z#zQcy^D5YsJ4p);u?`tlyCmy-E+ToDSC0W@`3vL*N zmpfpXpo1~9^iT^lva|wuZb3r)J7|O+?fxJh$gwk5t?zRR3H68aBGM_yv_n;H&ehGU zT#~_8(o&^FS?*&NEyocmbkO_ra<*b6?T)bAhI_5!4|<8b=!Vz@s(kGai*QF+vNQU+ zM*i^Pyf>2H+|TrRr;(Ga!?u5`HVeMfq^!iPEBX_j(BZVoSc?`ZD`8W8jt;#eZWkLK^P2)N*c@t zatyCm;*d&W!R9lZ-{KD6PW%KK3yj|NQ3sY z36uD@Vk%K4-`|tZ`7(2RufUY_5dTyhvGeJE*m2{ZUGn{Z6K8?!SUUJ(;rme*i5cbU z;k=&rp<68lbd5f|=8kUXkbrm>k&-OFF)n57Er*gewFR)4 zV>BR24!1+#ytzPnRQgr6^uUub8eR1?fZc%E#3Xs2TQ7g{5F@^;FOZ?hpS}bLoQrQu zJ&a=XQ!oV*ohseU6ZdR3ZD+x4grbNxA^I712Bdoj|B|GBwAt6-b zV4O|hHcM$wIiDS`Ib#(ze&p*-Zs|uYlYK%kPYAHWs%_ro($HK%ki0i{gTJnG)DI7m zJ()co)WFgeHK~ng0#aCiV|-!=b>&jDn(SywhxbgXj*LlJStbvi#GaNu}M;E z1h~v_o<83kc2~!e>p{yu-WP%rFHM`s>GPUD?Emr3{pfb7X++ttqGUUrYz0g5P$FpE z?H{*FuUo*@6|yZdl3-$&>JI`mr+_}-m?-wD<)Iq)2pycI3;YJlR}V*Rtly%M7)58d zl5U3sMSt&gD?A;$^o+cm1LlP2VU}3UBwY#~zXl#bj(fZ6l@UE12@&lDZ5#^+tfY%I zs(T%_|2v65nI>+>LL-YB(gyzsK*j=EwlN zbvlV)`_nsa${O2eavaKi`Abu(HO$^!Fj9x#bUHY+?##neA|PPeGBK#8J^FgDzORQk zg(DMNsmdpRcvg1<$dYf1rwc33U>-2lxV z-?3z?cJ3x)BHvE3NS@o6IQ!A=ueumTEE9|D*`BrS!#;DEX53;$Ta)Dp zwb2wgn_p(4^?x|9eFs3OXaDR~TTK6=*UDSDexP}6eE(L$_g~9%Lg6d+4xl>1F3EEoTs;=M#!07LGRW^VW` z;5RHD*yhctmw0{!e!zvBVL(`Lu`^ZLDmT(%iB?n3@qr0LMUm2E-eB|{^Qt{pE;uJPnD!AjO%~i5`&#BTyA{QxX3vk38n*AYZYlD z8fJ;d2=%B7hg}BpsHZD7V{$Ixx_Qs7{d3k>&aubWtvXt)xf@cj>sku9v*sg}?<9U? zG}Zhnb2kGKgxDLYFPK~rsv&}Yi?rYxW4|onn*~mYHx^X%sxmu_-aQxW0a%pNlq!>} z02({vNYOs9)|IbBS7vW1x6OdT)pep{K167?ZdE?R4lRm!`e<>OMaON_jXeVAs~CEN z-{ZA>Pl4sz;GIChUqO1wI4WVTLGLK&5ozWmmB&^XB67Pp`CM)pi7~#x&stW-L;iP1 z_btXoEdy2b%u5PjhtaWv3Ld&W)UIYwzZdhCk*_|q!_PK-TYxXLbZnz-r}go8c2f6t z#qXduxA(;a`Bu#7Ckg=jQ2?I6&DCw2G4Up5>F#PQgsK4A$p^9I7yjbRzgR*aG^BN- zZVk6-KWMzK1^HgB;QJTAuTNbm0T<;?a*J;8cJ)6gWw3kCPYw?wGlq&gUMzQ6r}Aii zm_UW&>Z_M+5;of@SLxAhf59T!2hG)C*FDjV~{xggTlkc_;QmFHKn7q;B-v zf6DA=YJcOh^YzPzj8q5pO03g+aIQ6m_Kucsd^F20@GEI^@e0D+Z!ybN+CXMybHz2V zDZm%5+Dyce=uGdZ21US$Vd9yOhW4m1kf;I{ymbN`GSoY(xE;`f-4iJ@ z`7oS5m^E&}#E|EU;gMDUd#C%0&*juIzZG!Cx z;KRHpJ}7BeCe2+5zk^;h8fg;K!jSqVwE>lp=lQERmfh(s>;(W0=qX=4LP&LI&0pdn zJW&0}Z#9}!S*CrjUeA@!scGm^+FHZDy*M2kNwun-UoT_O{iuCiQsLOTl-~MU9}ndU z;+=xdc^E}pUS6rX=$<9&hluJ4eARgzxR3!g4v^4>yMCmqY*{tdzo^Lh(x7PfkO`(M z?jb2+9DO;b@a1{!1yy=!ItQp&VX5WRTh;ltyKFCfZB~|ngtv?>IIg2*cApMh6FG;c zPAm2l>T{gqZu}r|4sZ-RZ#OZ};*5Gfftc$W+pP_E8NV{wj-K#T8?0Lr*b%PLP6Sd( zLDug&oD$P+ST)49>>|y&K#hjR4D;68&pniY`PYWL$`4;UHzm+A3k4x;N%efgj83Ue ziPme8YxgCY?w)6j0a!Nj_cqMm2x9qlX+9lKf&h84Ra-2WH#Z!|AN(Gl(KIQPagX{0 zemoFmxuWP4;#6S8F6T}wA-eKr$cvE8*hnU3huFLz)`#~JJE;@eL>iOQ&@aOz@Vpi- z>@QUO%XMo}K=xKV@KLm?nnDH3ddf8j08 z4@@81M(%y{=YF_8^g@uE^Wi&dh?4iFwrToQ+JpijO~=o|+;}uT_@T~E#?8V#}35&Idh)+itQj7ADcBxg7SX< zte?!G^s99+r8dEV9c|hg6r(iIcA&SPoC>fgWa7I3dz?hLOA5T`sb_)lvrzdB?&BLR z@gQ1o@$ApjuxKvhbl?tVAZx=#)1D>30NbX+O;#g#-!H4q;)Pq7VAeZLH*@e=W?r-V z29Y5(UI+FI>CI3c-P>T{^s9c_EP;pVu1D6{lVK} zjD0XNfWOdg<4_Rb7}^~R{ejQ|qR?%oDlUFL_2pPq`2=i0QtR*bF&3d%tYd#!UiHu=S79OQ=!>l zW17x;;`?!m{LI_o=P#Gra1|Dl<1PAuHf%0>$Iy?rHg;?{>s;<^(>Pd2x>8+n@=N@c zhe-H26T1789l?pR*JS8fNB@{A_B4d!K+?Q09-y$Zya2i{36X+;cyX(3j&Fif-+Px| z`#rKzIdt8ATv873kKx5?E!mo~;-Cw~p}Z`LAL2B(1h#)H6fLLl-wxu{ye8HCm=%a- zO}*h?pMsw_NMCi9-Zk1UT(?T5bQ52Gfvl~!RgBTr7xdCWSKe{mP<5Xh*#^$Z{@Drn zW_)kcC2^hO0d>nAYrTBZwMS+6c#!vOae5=Fck*{m<`YdfXLW!Vwu5e(`2Ke=K z0*&F|+}yR$1k6*5_GP(C*Vy7659R>C)QvMp;@Bp=WjJYel6>5_6v-coBkAL~R&7F( zZ(IdQa%bp0`Z@YrHkDO>wns?IMBf5GLM+phgZ5$(E zT@(taJ&6o85z(uSPK3;&Wej!nOuJ<@(Ueo#$`YD82c7rzSEhv!&* zSg_xjBn884KH@ZK5bV;yiD}C|$WO`>d`AYIX>ata!+;d?>o_fwJrNWKXd2EX{zwY& z=;zc+U%do;VE%vn9L6<7-8uv3%DTjY&fjAjSsSmbsi`6B!g<|Jtu8#?UE~oUm&FAI zB+Iv-+p)E9SYqkw_4!8dZAf_SCn#&Z3574~KPi?(`-T+p3NY9QzmJ>HYZxp4{9Hb8 z={?TqWRznM|E}!jKFd}H)phX3VmsxZEBP)FJ(BcbS-abLis-|w2a~Rl;-fb|bhWy7 zXHTMg>`8YRUUKGSxOukJ^k3hEH3YwDVde~iB&WpsUw-Yqmcu=2EzM?P8w8 zo2nX_pvgV-YI$lKC4b}qGimU>J$tXnkmVdg5qd9+O)nuI<9oe7s4ho~;cS%(l&)P_ zhPS@TP`N-qigTx#sa_2YnBIFo!_}g@TVonU6WpF&0czX8)x)ofh{U35L$4NW+a1i@ zo3f+Q8oPJZ2+H>r)rw}@U^e~nlmR*=3!!oNQ)h9N!?24RCiFPE=Rh*WaDVM3zm$|K zTx%|8xeYWV= z(k}9JoHjQWk;t1-Pz40c>7~-!^77M091x$faZxJ zNN$qi6#)-WIW2PHeeUK~1x4_Nw*4Q!kaVrAf5ih*N$h{ z>0qb%e1F96F2S{NjZ2LEwQ#2~f~&N=(v>N>mRq8KD)=Is4y7Y$9^>f_*L*B^1AIyrV38t`co#%ve7fzA|0K&*`)&8q%r9_r&+IAp@t4ME?xc$X}$6 z2uXDtwXW3gXBdY=hph@e&?hLE^%-=Irm(z!HB*7o1gWf?SU_KoClXK6j_<=?SkXvj zgZZ?RF;pQK=bp~%d+O(b;OB>ZODxxT8?k)9Uf^iLpge*OWP@LQ2?!J6_9hQG*Ua46 z)4KvtSI%6*!b8eByi}99xeLj>kb6q#1tz3B_ZPtU0476x(3>#PPBY52oQT=l5tKhe z4Qo+LEy;*F#3VSUg^?i`(RNI#$9ib>C0mh_YO4oJZcxiWh?LKaCcuLfa}5W7ZbD3M zD%|gN_rSc_lODOdJ+uDy6%EU-U2fzu%%g9(7s7Y-!?4gc-ea*=LL502BiJ=pQjbI^ zy2_U`O13z*mzndzbk?LH$am|na=dmy9)mB`b_cRh?me~4aS9s%vFg7T#9!R1*m!mj zt_C|*@pYS?bVARq@+xlZxR}9MVh@GCi9&d%VI+=dUtT$v58h{-v{KEhO|_upS@ieU zyDipyujB}P#V!uVv-HL`J0T_yzEzII(4@vdCFjhk0(Av8&Iw4w#Tkv9cl=ybVncb`ww?#|{loU>;NI7XcXp}~rB{I< z@jd=-_XnpRX64hZq^6EQT&MR(H(DvyxMH4rT`A15RrgXcW>YTAPs(K*|quj!^|X_F;mEWv8!9%QLcngb>esQkO#t}Wcjiz9oz2m zt6NC>OOle3ZyuHWLf$a!GX`P1zuE*482l`Q)2wc{#L(}f(mXFeg?uI?K znNt`Jy`WD2b*Fn>(weE0U8W@3NjgrayC%Ujh>O-N?{T=#5=VD}>>_kv)Cwq1#&QY$ zQi(1p9EUy14e%VL?#)n1bn-H7@uDE^i8a@n&V@=iYhs;angS7SXO`{QAr8oxw5t4}1`lzn$H^KQrIt~_f)TVXrmE1ttv?U9gsY_y0hOL>L{ z@qqM4(o-A}Qla&*>hij(&^Vn}xD6oC@51^O*i7nN2vy)qgE2##w5{>KSaGrGg9Yb& z8rLaQ13bh<8v&Qp^-9rY{kxP8&A-`e?JpuQkz;yNWYaycM7_&8a=JuSh-qRh9(%OJsT(LDynN z%BbIVLrE1XygQG-t@@qCqJUzCRQ=Ck_x#77?iNpsE6!S{wqt#^qhBk2pHX{s`#I)M z7?LM7FExg`s4CblTbN=roDqJu#EVqrk{9bg?)kqPKU|&V^;UstdREb<09Cy)?@3w4 zE#mh#9rcM!u@-9BnVpaVeLYq;0jV$yb0l<89sLmqIJj?$|1%!2XZTrzRX{=Q7WT{| z#pEe22SC{BIa3=lYPZ#>U;o*=3sraeSCat+JgTk#O)F0Z9U`lwqLKGewBadr1&}Dpp`+rf>U5Od!{2V z!cujo0=u zxY34@>hT3g62@=8t@QHOypr#FHz_tl4%jB>M$K|&)qJvVu)-)5fB1TN2RGZUD!8kD z&OKwlsNw;3ez^3Rwds)CiWBYkiAIXvq;j8i0DQ+m1c{e@yV@(x#x0?VTelkXsFn@G z;c;6hKo0!aXPt5nd+Tp_KRnaFVXR(DBShDR<2kyG(4#NCt|b@w!&9WZa%{f`T9aW~m|N>j+G@3eDCc?pyo32}-}&-dw?P{QwZd;`2+LYE^q z6aIaduX6o(<;)}7VV^sfyp^nh0|v&;0dW2PhC_*|u+aCdQO`*$KM1+Iq^FK051q7T zi5lBxgT5yXKq{${Nacy%ELWo7=85uLFFnmxK<-+3f8P172(zT;;oRnaR5@;;yi$8w zbu-z^lCDXANk2blXUi3C-Ur^&O*HAYq4bo&M~`VgMp?=2yK(mh4>I&Adiz zxm5SKjN-*p`3MWS)11Ig*Ge_ZXopr!9U`%^gn0y z=A2~^zCNTd$JA)tPl=!m1SbLAwjswG`5P_YTmkY!{YP24f?u;Qe_XQ}b}C{kcK99v z-fP~_MtJO`FhSMY*TqhL_ptG1Fne1_34;n*KXuf59yJW;Vbje`goVtt;tSwPR|_}$ z;Iu(0!2OlLIqA8wvOON`T!#}NN^U){x2Ugy`D`Lp%TUHR zuD=D$5$f%@Yt8x=UR`ZSxFo`k-BQ1 ztDxs@-@KQnd&iX)y7l9hhtQm2-=rrajPh`J;HsdV}+Wxi0%!};WNJ#B$S;HEM=>q8yhod&}iW~NXkK_VlN7h>Eyl|@LQUv&n zB@oAYdYT!x$#_n#=mo55E}x?;ujN21HI(!2_mwKps8uq|@YG6-B znRfP;t`D3wo?+!o%u8!qb0Gye&o%DarQY?5bF>*vCs}P1sa5&|Mi;IzM7HhN%T5nO z-QIkAE7+|@Evr8yY-e)j>u$9rwWToPdn_u~_;%B&EzrNG()f@{ZeNM@ISFsP+;kx( z@v1ga0K)6>ldw$S-q(-PUpsdj;@diHUz17R0a|&zEab)kaY*r!li8^I5~E?m*Z3TZp{M9tl;d1*`x?pU!{7l;qfKg5s zK;^!n{43Bt?Mwa<{u#i`)fjMIQtv{>cL=0GMjRb&lnVF?-YH85j7=^?>aTHSC@B)? ziEH?gp&MlAwNL1;<#88@`PsSq8k#DbRzCQ zQkugu=LxESrk5Y5{$V~U7Cu9G>*PG$%NH&lhwFW0ZV&E2TS*A<1Y#|LCPi)h^v$Y| ztM$$K&g`xni+w2A)i%4J*wZSMP>{k~4o}f{=4@PERV7p4E_4@tt6Vq?nqT+ZFdo&D zXjsj6hBb%#>0Ym&z>`(>`Ls1a1m8#%f6#)z$TY3q*4(Sq^*8 zmL45L%pLhoDJh~L6fbLf5&wmu z85IG>6#VF%*>~Kwq8gVN2QfimkEZNhdQ*w@$mOuTtXCdfVuR!XzZ^y>#bp>@&$1kt;`-3ScIj5+X_3LEp-lvtMH$wu%>HdX)>=LCCIaPp^0% zn;D4?w$ro63=_?Xqnp0`^H)m-vL{L$zUK#5P*btinETd;o+&zT(_A7D1Z#g0{%}uc zAe@JKw-njqtOc<#>iu=kf`$N-$>mJOI8)ZF=Y#sft>l0{N1QWhk$UoH_ykCwPptfp z5z#Om#X)Hzi&v&S@mDuny4{qGG%3fD04Gp==X1&;U|wN82U+Z@~-D5NdxdyiAzI>^>;UoW?WCCb#!=>wE%xSk-&eke?S_qKhy)rdGHNr8)0*|T# zBFgZ}ksom}o5hW9*PlC=9c`<>L+#t7bxty9T?rI*36$8~_+9xJty$x; zFduj*;KB&gQ;X4;{d8F|Ek)0r!!2U1RI|7-&No14^DuakYx051Mgo}fl>8Qvh|3$0 zlBEK*T=e(NF$zZJI2U+r;1%02c-JK!34K- zuD3s4=n6jI&81TBpB$1GH^WZUEgSf9#MQPNMvXIo0#?-+N&U2KJKPR9i@smO0%=v^ z=J1eSZt+GntQ%y<DiLOjkha`P!Wpry35K}$8s!haZ`BG6%$<~l#3UwhBM!9biH!#Q$;5P*ZF7h z>i?w|k6QR?xX3+2sYUxjfzNTnZ-WJ^5h6UyKdDp01n5IX`@m>AwPIZ<+Em8WwytY^ z;yScRdAi&ugO2CSZ& zU+b1w`_8z869hshuyPduAD#blq(T((j0cwyqFIJ6|YJV zIo|zqJv-*~7^>lC89IXrv445PxJl5G3$oRch5RsKaT}YdI>)#~vb?7d@$6mSuaSNA zA&~c{;rR@03pGX03*(*pfqP3xzYbW*L&xO$y2CfmqGKcHC zlFJMoH7{9*5gKn4x!e<^w?wA>d-j1m238$XjME$n$)khLEYQvC)NVsBNOu?c);^yI z7aOlrG@h_OKHqcZCipsOpz#+?Y6c(CCy6X9sVVwPy4auo=(PGK3V@$7TgK#@vujlRhLudZRQa{629ncy52}TS-`_xTgbyNuV1T ze9FxVI0eu_T>V77m0J_%%D}xW|wJ5B2DmpYM*@ef2~Jl6i$$1M==~H8D5B$4I)hQUB9YZIkib0q&LNyi4~L`>yCXJ(i@(t+A{UX0f&ZA8Z5!pmAfH75}bNndNnBX0wMJ;9Kj_ zTR8i^NyrfY`%7mo%6j}DJdHHy@r5*!l!^J;&OBfCwObU2pC7yRsI%#69>IEt7%s}0(`~K{&kas5U1dL{8+VN^G`KeMT=&K--n-u8( z5&wXQZMshojvv+m2C})CO=tb{FDSYaeE8i`3ktXx(`F3@(eE?PR}GBpr-}sb{0h;| zyh91WJr1ZI-khNdZBDQ~uP~h?ifjR& z!UZMD#AD1=PP^=cVZbO#eet`Igz@Qy9$ku(qU=SKGD=iE;MOj-Z+~TUqh9$|bD6QP zl34O~jL!s5_7K`o?+H01uhGJ)N3t+!e_Hl_eHRI6Fq<1c0G@+NZ>qT6gVG$>3q%M} zsc*t8I$bYH=?K2IfM@Q*^r0aYj3K4-M*lXj7H^z4XvQy3s*VK(S)4Fv=TtpuWRAZq z->mq?m9QO|bP`+OibB{?el2?!!|qLhD%=x-!p~^Ngqwcl;(DehXyQ8kM%=(TR4-pU ziVrKnL*P;*os*^S={tSh>9>_oHJcH37@(#4uXo>I(G!SO;Dm|G^vPXo&0=@v8T@05 zFG`Amv2(7TEE{W3NIt{a@%+Ml;W+(gqJva9abnnhxcAYq_q(@?j}Ld{^ou3X=8rPk zMO(JNPfbnT`0AKp_+{BqF}b2Z|M{JobvgQ%&V<&(?bSw0F%#MI=~_ke|0WSCQOa}F zm^hXL+T3br(e|O$7S(P|8-AtRshPC3ODzdIQP!M~Lhs0mYeha#Cf6nSx< zS$Ye?17I%gF4kE((jhDx$%?Id!Gd?WF{_&`MN*1!u4fg1j;%b(l@8}nlO~s|#vBXE z)syBdAP9{(SASlf-e;fV1V*czGKP91%f3^-UT=R;!!xOqKI@6tgM|pPbZZ&Tgx86~ zDY{htt0Lgb+!#IbY!nH@Ts=Q{>}ouMDqwsFF9;exzCO0du3a*7eD7mmv97BdrW_Bc7yanWH{PNY*F{+U~Mu*xe{ zo@3(x?XgKk6hTnG66nchd@e8R(g!m1Dhc;F$J2#QmhYngh8Ba;e-8(*v1Pwgoi0tU}JUzxCC99N9(I=_x8?J{y{C-k~q89 zs+tzthGHKVZKn-Z)v4*@_8~~72nxI* z&VaU_6o`ajN=FyHS!-zNSddTMylibmnn_=mP2-SE6?zmS#V&;J6}{b9+%C6Y#27j2 zKkT4VJ?~$RgR^*tO3ow?FLG1N@3Wxl)zo6BSGjR_%Jca1BdBS1FQY0|dtb|@z9VkV z!EN~wDjW%Q6%Lu7jMObc>S61yvxZ6u>wF&*e2B7hc1|=wd3@=@>GQA;CQn*J`NjJj zd7Q}g>sCqOfAy!1fbfp#$G|i(e|mrt;B^cLmPER(?tJ$7cZx(w-Jci@{d&1bC!oFP zfdkZtbY{JS!Ql4q{CBrUl;TWNzWs2wp*2Sa>nm zJn8QT_37a70|Ru>NsC?5NkP*t*3&spy7|Y0-Mzi0Q{>@S;Il6f;-hXpaiyY#iM58N zZi=Hw^X`n-ciaB$*D~ePt&V~sdL;}PERdk2PS%@JYIc8b5Hk47AW*O9smIqxnm37} z{?QI!Fn6lhC6gFlR-L_ANssicwoVD`ob8MNAKc=9{nZ+;cKIrm&sK|gOH0z`G0^SZ zT+kL{Pi(v6JTXwPzFqW6i8ZvEjKbgG%}__0LWVC)Bd_%_=}>MdiX-T+p)$RlS{g%z zg!=cnp|Y*6gJ+BEe`Ahk(QsaX9q5$n$MpT*9{g8K57)C8qZ@hajY4h&TSnN#gVIpt zYvT|^|1;M`&i*>!W-ia`I$gPL#ANHz@$~gz%4^mL1*c>_{b*6WC*8*)J ze(LqmMIFLgd)?c0koYq9<-7e=#~@A^cqD^b4Qo`So01H%DCx(>=pF{3G(;bs48{Jj z91@Zkd7g zV|P$Pfnf3|=%G{Iy{RTW(CwKl3?n3?y_+cAN7I^c^DytP_PFX@>!`43s0l}`vsxU)lF+{DCc9fv&Dj3F^YN5-ule zZOyt?xsj9d)w5h$0 zFB-Lf=BXHk7h4$!+>nzdYNzu)Z=w^*%~h0S8UH?L&!4_~Likj*%6;1yd~hHKNoCbw zje3Spp}j6>l^#0$I9yc3fr-~i@wr^6M5W^(PstFC%+3kmb5C;FYzrKzaFMsEPZN*S z4H=-aa0V?uZKB!lb%7u=XM9f2|9=~6Al^hh$Hh<)%!bCv;jS)Q$3pu_LuS&Xi6dzy zusP=l1R<-6nk7I+`|yxMXvqE9dK&P#4^^qKblTv_vtwcLa3o&hAp(AG%^`CF@J-d;<6WfaKk>gES@vbR_dZ0DIU@CP^^0v!4u@9Q51ya-(RAEIaC6icMHYHha1pwz>Xtmv2Bn zt8E9W<JXR~=5a+Qg4~)dMDf1nFzs zBL1E9F&d81D(Z0^UMW8x)N z^a4fLDGG3K-tFK?%)AFYUWY!88^AjDTJBr~1YO}|<$=;yw?$_%m3&0rQY`G^W(=uOt7)HA42xItzI+I^@Xy?}V&ZmUtkP4<4rH5+|1adwn!G{&5v)DMLwXNY%rXOOK8*;WYJ;LP&pS z#;ejRp-!{-S1%OVxPvJ2k|Ems5ExPfAui^3RM(Q>6dr!VV%L&hNcQ`P6w6_&?bOISn5i^f3E#0S^&NKW{eVM;>YL9X=Zwstp10~!S+E}026^F|z}8k@ zv-bZ4iFM~3bUxW!tXrIm#+*reL@Bt z{kyW+JCZPnd+c<2Gzcb!ps*SU_-a>@_-JfL%030))$APNj|BRpwhVsDb;-Qf2>~9N zwC)i7wV8L&!$1B8!S^e@>v4?}4!*u0Cy<<3}?h>jlB$px4W zJ=De<&8aDn9U;z)BYJ{lps({`@5A^y(WEjPf&W=yAwq`-nMfApnY)t;PHrG+C z%rSIl?{!|Mcar^;%;B?YYz_CsM~{xw<+h1)7yEj#w6VcU#O3R9CuQ-N+yIbLNRN!- z)v22!;;XfC{pvK&T&E|nSzJ%1c{rV_uLER!e{WZ)OFr<3_t@#&8jwk?&j;vW7Ekbs zaTKcEmGj%jel!V@8oXx-v@RN<$)8!Dk!dVLYPclBS+sfBL=&Ak&1n!8`fA*XN#a&; zE!ISj+}l!}!4df-^re2E7iz7L5E80?`vADjeC8bJ062Tr;os2)IjNdUE1_D$zvgS@ zASUvP`~+%AefAEeLK`stvJ%x+5sHM3w$()!H-Ga2w>mRTSG_nzHS^aS90bX?KprPS z{!5KdO$a>juM26W*V4zb;|jEj z9t&36yi9Ibyu~Kn7s+w;2_fAD`C(3xl!1@8D$TYkO}LVM8$hb&QidujAgVPxRf)?M z9F(Qp@tM`ZUhNWlwf+mlOKMShcNm&E-?&jr2TI2ar0MeVoG~%5nS+TDRHBb+or>LX z%LAgTPqfFg|8W5rw3R5f%;^q^dvctMRY(l#x3PIx0u}OCIH*NO5t7PiYPxEmp2rkh zx(XQ^)WbWh|$E}q)m7*dZZCswGlORNj zb^yRY0GVn>-W5QR7xrf+2&Rc=bw(-GCNXd=mn#3hXuPv!7-JV47OYNwPjmauc) z_TZR4?uopn7MmWhE<4Zaq~3crerluX*|TSIfGbyiXa4|r-2VvK?b8^l5qX`Z3VN%{ zI$Zx_rOFIQ9FREGO+qyxU!ttqQ+kD{ET$`Rm{FShA068-I=1E(DwH=Cb`PlH)Nl3q zpw%F_Bv<}Fzq%dnVVcSSv78YXcW$6V0RVrdHh%IJ5L6<%?#Q?vbk$^)^D#yWvUBGe zOSNJPiEJX@06ubK9A{Ttx4B9Yi<8RARvlA}l$86=-oDFyZL`?rCl=R&i)AORQ7pt` zxBCidcw)Kym{S$b&5_l4*xmqCVmnlIUG(g$2a|NL)VbezJ{1b~i=eVFGH!Y_ z1bP807~W7;NMl{AxzSomd_M$A1#JdUBt@Bw+Zd})oQToBUL@gnk0!1dL#V0k45oa>-c zbE`Z_8d0);#phP#(zfP!7m18Zrq*L7*&xd(eb3y#ZYV3q$|v<0?nbhQK$Om~)~QZ+I%hKM;1=^bytV3e6V;5k5gK_`*MJQ26b8 za(dCcAgA@@@?4Cl`VIFed$z=`-LIz(3r%@6O~=9F-!f+P__>X3VuwdLz0^(??yn6a z>HE-Q;K)Hv^tRTNop6gL zHZSu}OQY=FRb}z?0YX!N;`FJsc}mAGm()9qmODq)Skt_8VIdcHE@ASlE1fN3-e{yDoxlw^4>X0AKqzpeQa0HVM?Z9<<;rv{nZ=oOg@T4^=Xn6k^u z_>8C1=jU1b3=G~E(Sne!Cddm;y3AR<9o6Fv>W+pYhj`5j{C#SDyRm(yx51BLZ7;7q z*T>YO7Mg6ujlg3m#ckZ|t0OrFPa#I&?g9o5HI`do%ARVbkY_`C+?WG$vw8Oo{n2nJ{Y zk*~zRz?urPJ#S{n7!#}c@vs6tZ@Y9|w5Bj*8la3up*WG6C zySFk459X4=jd4hI>Zf1t@Sz;3@lTD@Of7`ut$cmb{%ojHH@!N=y5Y|V|9yT=0dZ+* z&;JunlHFqUnrS1;r9O<$GVT0gcoA?k0}wsJ77eH@-f}~@9uw=lPn++oA>acS80D0) zt^MPb67pcJ!xFefFR%aEq!uxG0ZW@qlt^P_mJ(T5RrM^H^fh0ZaXEYD$b6%GS9B$k z!ap&q&-EdlqyxGYiU`J-8p)r|2EG^wO5JnK0qk_~8u9_TgqHwogcf#AhpNwgaOS-@ z!%=V7Ob{MJATLf&fawCwDOBrTKpE`G&6Ss|p9rP`8=Ctk8=JzFdM;t`IlTs1l};`$F>hgt%F?=>-6|E5mk;$1IQX zpM(oHPBL9%!zNqAJ2d7`p7+Y zmCF{+FN#@{E4rbp)*WkOsv{!kH!n>}G-vHPd<*NV!9YfF&j=a?IF8xjtC!EZpcJovG z-!l9!=(HSY09HPmy(S-V{qBSA)dVXep*3vx$bS6g=>H+ACYlY43Nmg}Jc%yE^=NnZZi znVQ+u`iPLZc*Mn#gB$PO^8RrEwEI=ah%;7+-5pMlKL5B&LkdFM+(>b|3tshRCwOne zWz70j;bW7*%qX%|Tn@c7SMLvyo*aEbYscqif8Rn@$oWiJMMsL%ck8)th^!+E4}1pK zC&)wPAq&*UorU*AoZWevkE0RaWY;%*N?Hpgf6LKjd_ ztL??m75Fm0)x#EL-?6T{TkOE9C8|aO9G@3~VjxV3J{Y@yF-ipVtQ0H4oEk9xa!4XGVtdOxHzbVb(`YOk zdgRDUej&^9!HqA&tJT2{MUbl=j@-ee*pduSs~f6UFzAXUll2cSCXGO<{LaDk#$RJ4 z^u^8Nkm1mydqEvC#7@zGt*D!|(vO;h;48{mDLK#e+z3-n4iROk$;FM`Id?#HNTUNy zV1Z}l118U`(W;B?kTK*O^B-1OR7$s}c_lc;yd6%ful8~TdbPdSD0*r&kdq3h5U=64 zj;AfJfd%q%S{Bc+#A9X3B{BuwTSpK^u61uj)odjF#j^r;zUONQ5_hgQ4*df<672BD z&?f>atevx98IE6_RZHJe-rrukLgVgvQebtEP9LBCp}Pv4J(Q`D)uRLKivm}9Mmgo2 zsdWF7tT(UF8w{FX76kFEW6OEXhbM$MzLxe9FIF0+4_^3eE`Ry-8H9?5npL{7lfsbEG$*or-z{-j=BK)Hq zOk+x~-8ULixG%Vy$Nr(u?h~R_tu&|%M9MgbaPXIXmh^BhIZ7Slptca;EZeq~8>G<# z%05B*px@2!_pdnIcNK6}{5U$nJTVJB4qe3xzj4ftvgZG=`s)q-AeU)ke_GDN9D29e zjbz-_x+l1_v^2RzS(VB!Ppg^_V4n9;4i6>HBQePnsTZiv|JY*5#6}KFz0a(=UOiHY z1e<$uyu8gxkUE3!m9k}fe?P=Q8INLCC; z$$6()DsYhbb`%n^BoBABt#OG>PSs-Y< zNWlp?Zd~E5zFkwG3|vW2vgQu9?-D6QkY}x><2t8z!yA(^Y%lRbKSW5kFXNfaZU=%Y zc-ikW;DFGX$BwyX*tG21V^m#oFy5-xsDM~vy&Z^;n}C7@kv~n&Gw!z}IeE06@a-Hz zu(;+FneptQJy29RC=Bdi7+0Fk7~Unf@mEwRdsI;1($j6#hFJaPN%cpj1+Rg?phT5x z?#(lF`VC5lhZ-wtk&}HzZK#UQ!yOiPP)J{qbtvjoK(iQRMq-MuNgGu|nfUjkZw{+W zilgRSKX}x8QOAokWNM;@z-kXuEHF}=fu=C8l z!?eCmnu*;K7pGw^_V+TgeHw~&Ed=5mE}!+E#&WW7PzneS24vIb6lo$YBBwT|VaF=C!&hT<7gV|5g;E0)LqvcBeM*&z!R)|3I<%=@qy8 zf4gOf0?;c*ozwF&wGK#Rk+IFx!o?z^HFXqjsY|iH15uqMIxILbrw7=i3OHNnBNb-# zDjMBhl@#6ZH<*d}-{9s4s!sW!B1%M8n&12E(@LS5gd~o#=A|ql_i-?W1`f-9ZfN=Q ze%M036UxLKf|k2>!&&b!EVlsJo1z?tj$Wv?_vzQTLT|fJIFt&fOUzf46?p@M>MQXM zl2@#N)xHkM>rI`eakN~#o7cQPqXXAxJ6IhlJFt=P1PafO54p%5#5@6kNrM0XU64b; z4A(+U~rB8>@ z^5Pi~bC;2jFbyMSNA5^NRzprFg{LvM6hEnel z+&~r=qGfncVQW)#(BB0*<rj_p8&Bm-7oR&20e^oWd${-^kt8+D1|UR5?gj7g41Cf+s*e+kO)T4lmv<6LtY%+RnjQw~X%itdw*MRmM|xq*B&2MT<5; zLkGQmw15`oI!)$l0ifwtxg@&U=!F}DWMaP|D)oOMHnLmI0R@+lye z%O49)l4%N+>wMjTC>`^~?7BsX)QXL&El6IhkwR$xyWI-)MG5?e@tZHw6c85DY;OS9 z6ePGi{8CEy&BB~xyIrxYyXYQiV?DUaMU85z5%w?7MxX}Ql9Z(F?woBE%E~`U7M$*y z9bo(S`ujHp#x|9msUZVAId2uSFt?A}fgPe~Abr`4)IPXgEzHN0Q;7s8D2V%m2TYMS zOYd1UEB)_*01IvZEfa8&2gCY6oaXe#8`?B4D+8<7H7h^BA+fOd>$ius_S7a)@5vQC5wcG!14AG}_{`nO}Lkc=Z^p75NZ0%ijJ@`9D zCt8tNxV{@onMsEFn_b39vKaOF7-EmB(f{!0>kB3)MY;ndGDuC$PO9MO&?Z;hKSxYx zLc47S@Y4UKNu2xDyh0qP8!5{0te9!_TElcRQsNwd3u?JsOA3e!T~wyIi=a$qEcfy|-;|ns@wlH{ z4?6N%Wnnf;im(+-AW1kfBCCyq11=X$VSjN)ftI7|3Jg}!@N}O*Zpl-Fb;JmUMm)%O3*@-cZgrE@uAjP4 zW1wOn;b5H$>N2Xz94~g&WAUSZ{fsoQ5U~GbHS&)8AYc%AKGkhq(MrI@yFq+e>jZvJ z95>uy=ubvT>BIF``Np^HQj%n!Z6zO&Y(MvTnxzFK)O@B3H1>)d>}U;TUELHt!nBN$ zuqr+boD%~c345;i-n}Ly)cau9a8_??12{(>d62w6!>$0M(HlxIn#;g9wHtWbt+k?c zTRmtz;^5Xlw^|qYbiPMQ{@x@jH${gFJT@$ac@{lT`l)y&oY(-dVy$lW;O!b5e+3hJp_WR zcKDz3ckIo7+oi^fLPK?_W|hegn$BGeXvuL2|!L#>jKpW`RPhN&Epe$ckpEODms~K(GfBIX`>hIjj zwxFE(Htf4?gnf$cnC@q&E;RLEg#&f zq9OQY{=&FGcF~%jsLlW)JfbqA<$JizP@!HGQb8R?DiA#-j9=w@Y3Ol@Y^hmOIwKNb+KN3>E|Tr8)6406+3#;!gBR-wD&l_`0t zyyrMPl`nWKzzvB1)bbD6F37Zc^D@wWVNrIze3&27d16Ug`5+a(My*WTA#AcBIfZ3Q z5$3T}>9P0gDp^ne=GT3z@S9FGNpiC;<%;&g@E#E6>~`kdf4Kv_ENC=aVsmhCr=V;W z?3%VPS0A(X6_R+$-5bDYvCBlg3o>UFJ_+8w@0ndx7x*maV3)Fs6Jm{uFUDqjyqZ{; zDP{aL$SM-@hb<0>f;N*B=^GtfX|6Y;wJhmf{bjQdqlrAwawepWC1$}DbBiaE3EVk~ zh9$ET!kKVgZgyc1i0yvF(`pKfK0QeQrYh!s(q;`gBhb@vsLs9GseI z$rB~aa$!IFU=Yi~(`)^{2)v!AIo2{WuwYt_glh!`b$P1Lau4}?A{AtbIDqQgF|RUp z9G;K>#t@(-IIUPU?MucatpCe53Tv0J6ev*&yepJ3A~E4?Potk(0AMqI?+-c=ibZ(q z=k(1hoyA@C&91XAijlG-tpx3zaC3LGBQ+T>-f$->_3M?a>`o3@FzO zh_yt0Tk(K8EeGokBt}|5mJL&l)7qGLWQlT*g9wP8t4l!R(!`OB+QNwIx`SCj=Lr+f z&<_+pH~h2Jy3wuw4i0x|oW>p((&^bawDyQ1!M7d-PRGqcjBYTt;G)Y(@zHb1{bp0A9ve4ptU^vl zoT0}MwT;&+{wB~Ep^P6|6sn=kmX;b?ancY>!U7d8;^)g8Kc1&mqA)qgzeJdIwHiVd zm=!+;N}~|G7U*jZiLKINp;eKIz+3jV9xyYp)H{ZB7ya_bH}AjPjo-a~`Da-#DRjYh zpfHS-INm%aHvCUnMVj`F<=VifC9L9)vrT|s;0aC^`$A=RJ$tNG{6-l85nPcx$S0OpfB8e@uBTAmO&1L3D|nSBKZ>jA21N zi+LOS7w{e56m`C%)bwhV?-Pe5bV~F|!FE*8YjFu?9My+QgkW_)x)6Dmsu6N3Sm% zO8PZ13!LZi?1Xz%@9*AgV2o#CLR|j&bB@HQFDX>QoT%~EnecS^tw!&+z=+V+cAmhs zn)>%0w16{oqUSKt+6XucmLI(Q6H*z5-q%2OoYjFihBLtpdL?lNI|K`gMTtkW2}poQmxJ#;W=v zS%SYykhd+2XPJc5j>Gwx<G@>CEAUbftGxUdo3fNbvvbk!!EpDK zbj%lz@fG@oics-mO$BXq!wbYUq?mqPOC8A-`TDB6S&M#N#Zq(c^L>py2i-V9SY=E& zMnEhuU~gAZMi&G@la832M!7HhI-i9SbR$T^H?wBE-kD_&L{eFZnWi9!`HLAo+yK~o z47~1-N_Fg3x{AXD)XM$uR@5~u`U}{v{6Xy-BDi>v>M!ij(( zZB9R~|GD}?;*Z0V>yN7oud#fCsfa~o#DXOK-BC06;;|46NyUG&bnH>bH}hgqww*bD zuFqGOrL5{CNZV?eX;@(gmkHG=Q1K`hII(PFvnI7&D~VHdOJF< zW^lcO(MPm2NE0uVaox0toVa$HJne-Mt%K(f%)$}1U96f2de$7)Muz9(=(Yhaq4i77 zZ3<4fS84kQneD{>!Z`Qs?QNp^;Hu6>+!)mcb=Ve~F2P*YmMFhIdUo#LPP~|N_vSf( zD83=NAjP>Xc)LRTh;sTT@iD|hbb&Trp>)vpe!$ut(#qnaJ3~~dprZHXE3Q-)RhzQh z*V=}&03s?976i>|h#4zjOh?6+Y_$6UuXEdgGhF}G)W|IqazhB_lCwP;r;lK;P*(~Y zs{_hMZ^QJ}i~P~qY{jW^DM4PYfEh=?Rj!I$9O9T?Hk(PlT=Q)I%uzhv=<&M==O)`2 zqp0R8cktY(hxgxwXtO$(HQ=>9y4l0&6hD?hcL^5RwRTbXmM8EcegMMdTEb3~>w}pd zmzKDuT=r#e*%c>!XIjP6Es>8Vjx7Y~re?$oG>rh3_rChWjB}8G{alnO&AA<~g!(x(fjw>g?y-0(lJj)h!{N{oL&Cqarsx zd`iV5$J}hbAul0?h^r|*B+u87JXCbK+>-W7Fca%ORAld%VuMqlCM&){jd)*3;4_~b zd(`l0A;<8_9566xhXYZIA2+w_?Hs&^h45P^H>J{bzoAFlRnwQADK%K%(O|~1F5(=}rnkQ#c z>GAB0DXHKTLq^PQQvb&2hHeExjWrP=9j$CZwT7euzSU`A3x!WQy)D|2Ek=flT!3j_ zR+GlRI5#I6XwEl@d?*LM3MfD`=QQ8tQtR2;w*6O9jd8H~hee>^Z9WNruBO}x!iv;2 z9Eg9Zd}ik0V+Dkm-WmT~XT8l7HntjA?`cYR{&coh0*b%yKIsvPFBLfC_e-5{`?xio zOVu)6W1I8=H9XFly<>~o7(hiP76(?>)N&&w>j=ta{z712JPuq*1t;{H9<3Jl^6GAZ zyP2;*(uny^v8(%jFx(lV8V{+Td&+XV%u58~lMZVxe!Vs44vX#R-^bE3L51UOK++iJ zjwgPA_X1LHEL!p+N-V|yCtvBndNSmRk7|#qkGr4z%#}hL zdG%Y#(yn}Zr60TC6`qt4_?R!hY|lYy=@>CKfhvPOC?IK*iLY!1=fo9lqq#vE@%Ie0 zAQo<{1{+b7S%wFp-AL9jK$1ZX^jN@&;cHy=ty(1`p=3|>Ve`pZo!KxNm~XFmP{pcE0;5|wq;HP@+9-Vhf=ev_7RM~Gg#cHzdN)LXA(KwJ zd5Ny3>#VtD#w)ezxV<_^N)IE*&*^T?lT!{Kh>qTFF(|Huq9}Z=v1LXO1ZQPBT%U;( z2vfh1Ambz!K>;aobGnBW9b9G0#onqLu#6EqR>3NCF;u7DOjoo5@7|8E3fKbAs@wy= zDZ0q!SxLzjyaHY!VKd*k*>iDguEo7`0)9cr8MbJV=xcNSjy{c+Rbz9mfTANdDvfpoD5;8*cWrUL{!}+%dm3H zBTB_CWusb2il?q;Ljj*_4A?mV#fMfZd?T9yx}~%Q&PAMBk5>~@*XD*A@ ziI$!MA`Ji+@CNh!^(rf$**AEQ9&wCqPZ=K6B13GuCAktUW0urWBpg{qoiU{`d|Za` z3=Uz}REZJVvRx_wbomZNl4`CRa?LZ;`l8#nzP>92HOq@e8KT2Wo*M$HMd{t>56O?4 zE$_v32OOmTnU_-4>-#z9AIuZ*0MT%a0Os%^KD62(m2WMCl3Bme;gP0T@)bAtbfnnD z`76H1nt|7wu}m5hthiwri$ff1B)KYf@N)L7IcCg5G!m9}ErbBz%hy3X%=&K4{?QV1 z{wd51KR!JLlug<~J3yXR5;pl7a2KFJVehJqhP=frSRqsz92+PrTR!6H`aY(DwVG9E z!jYdd#9@>Z1{#t`y#2TNaZC6}v;rpNONuIsm9b_C5?FGnqZB}fk}-E3O<2-H0g=;n zNdI0}@w5R+T>`}&6$M?%WtRp*z4}V)^q)8)!|IDk6-Ae$%V%bN4;P-!S|ll zT%H%yIx$6+*9ZYIh#*+(0aC!lFg&F4`+e#g;ClZ{Jn#<4^b%gbosbHLp$CZ~`SaeR zG~R+Twz=;=B0j^~ug2Z0NDxygO!Vy>pq((C&jE2nP} za#gzsf*?MUiu!9){UNwlWGrkBKSC^S{fS{M7n~QSdoJ^3-PixumUqbg`In&q5kTYg z_M+xXX98lGzd;yRB+Ir#2W*{rIjWTrq|_J~ovoh8DL?EjKY;{D3V}r-Zx>*7#qIBv zs!jZvFdv|mfvLa2X~Cee0l9{dSK~)DKTa|2eE=^DoXB)sRq#3^9ZRHltpS}b zo&Fs20{-3R^zt9ulBXM<%63k_0g;B~$Q-SqD8Ll*4lSMFcx8H;5$3O@Jp~e=Fgf#@ z$aJar9ZG-Q!MJ1rQwt$4Eu~(X>4{Av%$3WyRP_DJkA8O0_uPq;CHkl|R!O}`*foE# zv6NKfp35B!@Sa&|RU%bkv8O#(L#x{SIih5haFcsR2rYD`5d^Lhy7#B#DMTntT)ThR zrm>eZ^lD2>n?9CH2&Z2|{$)emAnwz(Z&QFtdBEK7>cS@cGhOx;UTAnE6U@RCqRcJE zhjSuVN4(Mgd-8qf==9MuR0!*qM%%B&aGw&RGdA~tmX-32^wHS1+oRZq49|6>&XC^> zu3q6*?|pze;ma=RyCM2p`1kDY2lT`e`O~lpJk}V%UI(F%S95eS7_@l{e*pp|Nx*F7 z4t2Tu0mnBZ=0V$CRpL#Zv2bW~ELRNO*$mcydJCA37CW_w+dGVY!0n-HFt2bAYN$nv zwkj7Vi6XiJ{d2+Lz>jB2QuC{6=T(tZ^R)= zRcirXz+rI6!pFChUq8c|ubi^Y1|}Kg7^>qYJKmp+asRF2;@nqhE{;*h%dR9}p<@*) zL1Rmfj*CH@Te6St07lZ2XGSNlEp2n70BM}s&lZIQnIcgE2x{ecWzli~T*Qo{2V|fj z<%hp+_nKS3$p|#h^Hppd@8uj8*@3vosGtJp`Qh8rq3Vc2E3)`R2|O>ftUXq%t(e7D zkBM5uv)kiC&6mV!S=mmXQZJp;P|d2C<7ew5Ex@<-^)%V;1|m1-+;zyc)8qIDkxHV$ z2JBlSy(y&tPt3(hE`F%-w#q&g7U;{HVHwTq-aklXop>bj>)|S+OpjVIoT_)-Lvbl| z!xZD?Do4kq5zLE(??2F#JF6>9jG6xvb>t>8sEO&_d;enbGyOO=$|s;cN%<#SbRckwFN3WN5=*Z7VY`4 zUirH3hNE9&dx(x$ z7jWC-B9l4HHeOvwl!5Z(Snsc1T4TMi(Yc~M)MN6y!ek`fCU9z$HLM=vu%KaM_560V ziS4op4I5i(*R3y6lFVwHD!QP6>N^_wp0+DYffl>{cON`bBd)aFCI#?jYcbx@Hc2%D z?jEp6Kavc{UfT5gtnesVl>L6dUCf(zxBi%}xGlG*+Gp-TH#5F(As7{~0yfa)U;&zW5Fce*u40nP>%xn#b%jnKb#XPFms6Py; z^GqDeiPN)cf5~_-{?`y>ysFB^K7rg^=Kdhh9h*YtD7(*U1Ec+)A0+O|U(~SeK?7nK z0fHlHYzTY7MC>CPh6~~G?)C!7o%_ZertpE8e1a2jC-#>>5gpTe0SH8?n&-p_@HxTo#PT+~$ma4xgE3bR= znQHsx-tS#iMIcV36L7${dg1oKd3>0L?C`3x)SH2)jFc4lGUw7m(7bjI`=@h!_c zd~|;NkD*9Z$0X*po=YD-xdbAeG)HS-*$cUXfd3r4n0}UdX)jnNO`Co`@W3KQW2ZA# zdkcLr^q`-sgBP~A;$PoGkOevw!AqgTN7MZaz>ojB5UzQ2?!Vd%{*=3Zt9(8o_9F`A zqgv}i1G$^gT!8`)Ea7&p03z(oyx+IHo`91Ls^qw|hMiS@)35v5u zEazmy&4FC^8RF*zr)jImL7Mxk&&qmCzPN|5+2y8FZe=3f)rhMst6cLmWR<;VKFsc} zDDIXSPjT0dKkO-Cy5+Q2wlgOUd1>d=#=clA`f?OyAbzb4cjWmQ0@^yyB2R`Hd*xze zijYh>VZB)MAlpiHC3|?`vH~_>5aIyaJS$Inu*&izp+7P%N=`EA`R2Q z46MlEWf34Nb;BQJ4_}grRd0)iC&*8{!>Ztl2dv<~_BzbijO#E@FgC*;_ePNV=rjUta+enB`zAljQ zQ>FSKN*^)aBk{PYl!F_umG7ImX8WRkv_R5m5(vBEQA`neK;d=pBrXb&`xE?dh{CrzqjtClR!q`;n;xD7ls@uLAmJz39Q*(M*n}lj;D+7JQ|m%5uW)5z76_ zeq{Lt*zwNEPHhD!^slMBrw#+1L%{ftJ|Pai6zp@s)t$K}v^mTbwl=d4h@ancVH6s` z?*y0{hc-)sQqmjIw0gL2n@`$hfEX`YV~e)7+qutpS3{Q+{RQ{zGpn*z6`2y4;(!I0 zg{pk@ZWVnp>Z(cAh*!TV`atn13uDR&rKx_6t7ylq+tOgeeSnbL++B|XotAkiWw5WJ zXBbQxgF`fO>9b3O+49}Y4wu8T17mv4eKBy7?K=JGY$gudeUF#M3t-wJe#$6U1r8|Q zn5%#PvC5`}PM-}Zf7kFom3D3d+~!|bGGHAts^Vfmq6^tgjv-!3q)2qjTzb2S9>{ZF z3~gf`F?)qQQ${GHdL_Kk-SCTdwpcaKWjx||mHROMP-(OhBegD?)+tx-!sbsVi zVF?1b*JO4ATwCKDfRr}huH@+QI-kdIaaV4hp_L)8ijl4tp_cSEv5d~{Ky@W6)=kutWJ@*RNh)I7a|>HRlXlyT zgbtIJ-g~+_s=9J%;1JToKcFOmb`%#R(dVkAVwQ%vi%!`E`?aCg;Q*^Faik;_=~?QC ztIAxV8ja9!q)f<2D0HfW@uBJF?Qrvm&$I|1P?j8bwJUFque#T!8|#d~*^?mcQnUQ7Vp zqb1wCWKNnuQ-H)igBQ5u#f1JhBXsLGz?0jUqaM>kDCBO&nKfE4AN`+Z|3Kufm(p|1 zNlWD3TP)9^>^m%=(KTX|Kcv#X+6kHKI^td99xeQfH;L@}Y}den{}_Zu+JoG{S6;aY zTO72nwzvl2Li>-*L4Oy{E(NMjmJUka%ATPLi<9~GOUSPwzI|p3z&OM%#&eMw`nI~q z$FY{^canTquQAU6Jha2;Sk03Dac$})9WHNDy91fI;AlY*^3|q_+#mf=^>rmIa3gkV za_3CG+f*cd>$#pq|E9wq zqFKQ`<<|0BYv(| zDF^5chFcfIS4TA`xvB<+K3?P@7yB>N3&S++I{P|BiKi*8ar@2B!g--C^eKXpJNo`) zgr%(X6|Uy7@E@x$yLxAdS8YX;s)0(Q3ue~Ect$|nnGyy}WNB@&yYL%jJ|y49{z)Dj zLR~tobS0SqInk4v`jDd}2he2#YG;99jXf8kWEa`eRM)M$L{mn3Ko2*J*g$R$>D{`YdS0ccARMIMY!=^ZPZFqysPl&)9k^o1(nU`3Lq*n zOJpiTd@GHCo6q0`ainlfRgUr(USf^n+Rv^F`R=~@3?d{3&I1CPnOAxl(){SXp22r2Wy3=Ls~$r^Xl-sQOBOzJ5`EOszF>ax_F|iEou9vw{i; z_6tuT1on4OXwG=2h7Yr}V$MFzX3B8zAWM3b#Apcbz-Wlo+C6S1a6i9IU! zH|M!Ylqw8AE8O9Xze`uy^H5$_#8yfu?9%lw$tB+Z#1;nKhW+CA=4mS!Uu6 zApIlItXyY-P(861dg$@y-zri}tO0r}2Y5^8l2nzNPpQdn@Uqsm3mVkLsQz$=M4Y~y|20`qf?26>dNOLth1n{jf2}A~ z6A+R4xLSn0Xh<@jEz$7HIM+c3Xi4Q`-N@wnFpY?Bp)d7q^jOO4l&Q#?+(+r-@tFT2 z(WO;`EZ)5QK7~|kSnd2{`?+Dj?+xXdE3waTKTcz%;_z6$G(4r9k6x?T+?y_w^7sk9 zkF{)EwO^!x+={+=!4~Ye@GR5&ZH4N``=Jg|cL*yi$nV2m<>Xxf>avkJrOY~TMRuKQ zO8D{-50aowRQ;*2{Qa5E*J;U4CITh@MDcv}s3;oLNue>_zQq==kUqGsaj&VB`hc#C z>_E=w>{@LBS3SmT{7dyibp_d)5=a-XP#58#A)} zPY+PS!*)DhJxk2p0Ms%6T~Nj-N~CnOCQA6|k~d{1)t&UJGBBk}sYmnfr8y}6>3rQ^ zTn-k*Tq9|;z4f`eC05)38m9L&LIybRY)yr5GX{}zrO?)CSAk<_DFu9St+6@ZcUQ$HIjsCT;?>XeYa zYRmvQ4wv}3Ro!P-V6OYXxIacecQX2F4=|urR@%!SYzHL3*v@kJ^-I&u6)Qic!?RC5 zHwk>N5lxA%LBdPpU8k6tHLWgLwJEH1`J3N3v3D*k^kz>*)fD~$YpY96%os!qPt6kN z8X$ZV7!~l`0-D;Lq+(cdgQdmjFxKMMs@F_Y@eda}7k&YxW^H`aq*Zy+VzRiR1vi&}nxDt9Zi_&~h4-Of~Ah;j>TCst8MaWyu{M%_y_rKeUDUAUs zU12xS&nyOBdtGED9X8r#94e*S(DIBvBVYsu#~OP=z9TD2R|lc)wa)nEd$fjm#P1(Wa_zME$jAG$tpDnh_Lu3^wo8tF7tABoI_>h? zK!&r1g4MVmR1IGO9&4)S`r9y9;A)|{y-MI4Iq$XJ=k9x}XXkk@|8 za25O;uVAzIFO@Bka)=8)C5&PCPBE3^jc8)t&({#+U?m9&#u zKx09gH}_s15UbrA*Uzt0U1*&wxD#zAYc)@mL1$oVQa14% zJ9ldQ)GvPd*Pt_*-_<);kf|m}w}7n!Na)oEWq9}kxi_#^rLG+};8hq~>yi9_XYb(@ zO#pv_%3&H)Ja(f3PbCALqJd&=RQKKcn1&nxvv7`bv!%u!60Vqcd_pR{6S+F)N+Jf0 z?e{y&MSj|~*FQU)Y6sGKx}pLr>!<-6YYZ~%Us%1m;8or6IpRGrv2xAPXrqbSZn9)>4z9<)a-8ArKr9u8@Vi^M z&*o!V!87bAjphDGWu?&O4&Zq=x_O9iq$&lMr=>^BwUe(E*@Ak zeLW%Y{Y6SW%BoN}ewqJa$qO&cYej3#haPMRobn#po+@Ir<~-2hC9*)?UXgLM&_7(o zG5nGfOViQXwlQXH1QN8o#hHPFVRgS&?FAS_@@x>dtCw}PACQ_6qUB6$77Tf`k>jVb zgoh))0rxhyTp22Mh&~c`Y}2$RIT9FX@8nmu~gt$<;Uj(@L7 z$f8rv572>WI5Or_P!k)RLt|_moAj#vYIcwGIo#+T!TsIh_&#$L-K*ycd;#8_&u`!r zo0w<(4$Qu{Hh>BIkmT@cnGp578~Zp@d@#G$LpPI>!8zx00%uO%s%C&RRP6m;o#yrR z!Mvd^4fVzlD`@r&ZR{||h}OZ#9h>d`(fo~sOB|&I=UMyyD?y!o1P%U(g;8>~e)@mw zLHqo#-{oGy-|XSGdi=aYf14C8?V(|WSWs%lkGaU(NSPP#-0@PSJ`3fSn})MXpUeIh zU9xvo3ZE-fwIhGnS(bg0s|l?%8G>BR>}e}0FqRkFRv3=t8Ra4lk&=S&2`lw>xNk1xV_keO=NXc3k_Tsdy2fG;PBn{F4ZVGv1$< zG-ssQ@}du{cpt>TiaCA+@*4h!BAMc?w7QEG@T>JHufYKX#2rR9>Pm~EOfREbTYo%Y zVt7n?cT6{)KTw)TQ!eQ*DP?V^9*>Ib))q=^R>dA|0E3bcMa~KFvU{&T1O26dNxpYv zhVcKj0FL*FRWWY#FLRnh&+B4spAoP^(lmMti~9@Tqsrmk_X9+SKYCWMig56e$J)|R zbj33_)pzsTT>63JHA2uz@8;jtOngw*^sxr7P^SOA+$zzYNZ?jGQyHp5OZmMYFU%_i zT-T>9-`MAmeuc8#t{i~3zN@brHEKPa5{JnCOquwZA(25J4w&t&g6`4vl;3q@JsVTJ zRvUSv7KEY}IRzhQj>BT?iG6xHZlt1TsSY&d)`uB5Wfq8v?%(Y|as9N4R97`=sMd0w zBL#5?EDSP+6hC;EdK1EMcBGm$i1=$jQEp)g+hh6JasQQp;bS$?=Atc`IccX9N)ng0 z_%K~AzoFXwo>T46RD>RuWC{RiE}mO98c-;I%TVh*BvO7BK=0Rg7Cy#kkXJr8NjWE9ZuA@CrvzI(&{bMKex8jeSIOT~9wq zKkD}uIzUSuA5j?cESF+dW$_NnUP1W2vhb(P$-4Q4>mM$*2tYAY(r~oN6l$k%@f^mD zmB!y_8(`G0cvF#kF?$F)NL9`d7qEhJ%W5tBa63K4cHio%QF~d7b1o9nAvPMVyTjMT zO~o;1LsOO`L{lUumy{4BW5c6b&BTYqQGp$p6;*Kh*t%qTHs88bR7PaW%pH04Ak}_% zlAECXP5`0&ir}hY(iBHiZ~C8`>YyRkhmex*e%N&m~L|V z2pA!}ec(dh=rgSBP81D(o1bhVU}Ar*!@B|cvue-ORTd~!$X6#j{0rl0?(jqRX~e89 zjakasNq+n;zFx^))n#|%=P{wH^$?L>OMD>nnJ34Cn}>jas)?eVw+fu?0zF3{X7N;9 z>yP5jIHH7^<6Vq9d{R;lJ}&q}Xvg&hsuh;J0>a+>X8L5esQcx+N9|E{VO`317^}Ke z!U=9h&8hkxjWs;Ra2cZ*@$cWjXIWSoIsm%0W@LTr{5(Ds&JN`Pggo^7=ISR*oMm@N z#J6i)Keznq14=sqBh#;6)bCpY*D#Dpp+Z0gck!TPehEgs^*BPMCr#73qO)?r*~%5% zKrCg9+uJQLcG^q{WP5>o8b%n=1;)A5dib=kqzU|OdB_R4tOSfsk`W-fu*0c4#%?BR zMYI+M1+eOaUM`?VhXqBh^1ry0Qy-Y2?LjTUmY|`nC~Z@uxnQ9!R*U3CiooGPnlr4( zRf7fqpa3-c6}pD$WLmbcfON^{HT#R@rXtMtHSBp+*T(@h?kh>!`GZh}g271%T(|30 zowZUs_AVa*55iq>(WOD>pgkLsjp3E~`P5~(CmvvoJ_uS_*5u_}7s$jZg!^p1&n~_d zNKLLq$Vq>wjfcAm1CSzAF3Sn#nOs_+#4TykySMc=7YV!nm~!l^m>$18CP*_w+N`yD zNR~96P^JfOUlKqo-PdL*Fq~m;*V3Q=Ft^xT{5kn|Md%hl&=#ovweNCAt1Y1E>VT=! z#rkP&QE2w8P2H&U35HX0y{-g7!`R}^0~eXS1anCdXds$iBBi|Nm$@4}Z4)Ki;EOYb#o_5u<9>UX2>DX=xRqXiH*K zdvCROt=NLr3Pp?}blODBqDE^3FTEG_diI^IgihHzh1BB>+4KyGv>Eh3Fjkg z*pNXoxX$Naa~#Nk92Dr5=O5(md(~onlN2lwc@iEq?c8~|OcQok$37kB1YDp!Y)-wT9DPD=Ux=j}3fR zJ3iBMHyCwoX7{=IW}-wDG>Y%#?f!4-(?WK8z|BSJcBX2jBR#-7kaDOcZ-;=s-^f54 z-t$~KAoi26VT;KXI7CZvPq6uw(y_CDb+mb|$Dxk*EE1%}LM`nTmW4FE+B|!u$sV$Q zie7p>$kF*+d{K!EWjezl2y<;U_G{V|J>$bS&Nx9Yrs zqvW{cX4$EWZRE3+SI70i<9z_2xXJ#MSgp}yjl*$1K9*flo!Othjc zoZ~1n8pWv-xc$lxFiUGG8~xdYGxdZ124cm5FwY5Pg14d`t|7@+pr3jNj*IX;`7hQM z2(aek)1sUd_ZJlZs4_+EE|Z`t&l6-3z!KW@Y6^%U4qsBn8)>Ub(5O+q==)onS-|8r zRz%7&Oiu>k=DzG|j2?3KkRY_t@9k(gJ7Z!>Ay4Za0rosB;e|F0(G*v;dJT47lU2dG z-C%E7-y*(0a^s%;>`zO>J5oU|Yd+GyC$m*b3haXri~+mw)6xaHv4L|3$k&!^%zos5 zLy(|G&0^nL;?4&1My~+q?C)|f!Hk9(UZPOb@q?pSxrPb8aj&G?*$_;oL(c@A4`zV%id;}8r6&IK zyVeG+3SptQs`ku|_BzgMc7>@-+V(xpC89JUZ?I~}Ev?zPOEs#+z1y6k88{8GZ_}?q z?6vOlsaOM)bz!LsL8@F=usP1ov~WsL9j306BV<|aiEw4$aHTOSzq3Ceo4ykVv^%lz zg37OW;$g&NE#fD6qw;WllZCR5#*L*``;dvC4i$MFf6h~ZvO?U^?Az4F5z~%wc>a6y z53ia3KY1LIvN?$!xFcU6QR>s~g*f<~Z%>E^AtjWyAEC|@L zl=T6M1rvHIP{a7H#`Rdy%83CS+o~$@P?aj}Y`@Q-Ey;H(k0c(Hu>Y_2Q{T9Nx)+s? z#5gfSK>SYgiPr8eoC9&JebBy+^|@Djc(BA=@@7?YJ~1&I+~FD12KdF!gE_(|8wH#A+&MNOMVSL=Qe`bZF8l>DzqW^xmuQ zu)^KI6!Qi()x`uF15bL=#mVTfl}Q&5K}SmfTLJe)$;VtVN$&ppD-TL{eFcqHhS?$S z4*!9qJr05~Q2#^QK=B|$9w}E0dTD`~^{A288|Ly3YFeZ{e>h>$gz~W;=9GcRSF}7| zmKx>|R@t`j(zbcel=h5N>DhcaPuLe_Dtu7sDHADb^EMDf^kFapjCp>xDXPXSEU2mW zKHYt;igZ;s%Cz{M-z7>;G|aH7kF0$;ldsfX--y3L4AS3*?ka0Hp({jSz%Cv=Fen3v zt;2xJx2mins$LHn8*25~{f%w<(Lkt2vxWuvUH;CjZekCebw`j1fHDQ6mz&of&PofE zI6Z7V)U6K)HJ?!UA2MY*6aU;cs7Lnv_|W%7 z__}WRV;`04n0G_YUE@1$0%CFd^_BG00Plt}Jc6=xA?9UPW(gg`Ws+R(){pujzQ>^Y z-qAu$Ou)c_CwYA5BSt(S79Gz09yf-+7Bc6}KCi$$7|Q9{E7 z6IM<$TnC}8qrC}~4D*Zu zmB}K|L*+U$a>VCB5n_PNZj$tgrZZg3s8qAw_;k8*vEUwL(iuR23*FQul5T!7QwL8# z)uX_;hicQmpB=Bbh#aT)c3#2_i&dB_r?@o%R?{b^LkkqGEm6<`fC3qyoV1L4>bC0u zC`}~*Hpx3ynaM~uP<~Xd7B0t0XO5sYuuM_io#!#}-3PMzop)snN7sJj>)I){F`wuV zOs_=4>K95Y9^oZb@j^cj^oBcYQ9@Cb)v}C^q2?BM7jE^g2EP6^q%zZ#lq`$0nSc)} z$LJx2oLCn*hXP*+dHtNqt2)*(QMv1`$~(+DWAtTHiR1c?{YAJK!9Z)#HM{MIHcVm9 zOze(7S}~73EKs6lpsV8Fd$-K72eJ z8r9=)p;YQ0Hi%-Le_3-Qp>x<;$p=d>H{ta0c{YtugBoZ4#q%?-RC1>&`*d#e1I6r5 zeFL+73&Z7TWde3@_=ZCKK))1H)B2XQ%zG@(j#TJ+eC>!XEVkIz+vfJfzKZj10FFFi zN+~Q|e2Mn;8xmvp`<9oYNPpEu2Uzy1z9W)lRQpBW0KYnXzLE%|^oQY!H!P138OcLU z)@>Q2no~vbMXgjr!&}Lw_Qu=p1G`v)0r3rQH#U!VWw>{!ZJ=uhD8s&7%;~0f+T`&}^0CjAxYBQ) z3r9@j363j6TCZ}D0nXRW%A};NoY)n^tYfI`M*zJqtgNqoR{LR}58xd2G+}DbD zFApTgFg&BQLcGm!v)1>TqNKug5^eZ&CPGIj4~vA3O)b#cKaQngyHh-h;}3Tz)Mp<% zFJJSa)_S3%BA)u)N%kSfosywL*(JABi3>XB%ftFGtA9tW-5zh=;~i=gA4|(m@6fz|547`Bvpl$mt8}0Xfn8K_0Cbx*grZPuvCi+BhHFttxDyN8VN$(4*IWA; zzgBAR>#@lA+`rvZmY9drkz)q+}{TdkgdG3WmB-9kZ4lWZ# zhLWqTD^{0lB~yj#i5vTljCR{!b-t*je#Zw)h}?d7*3B2Rd)WPt*qsfyx;!g@KZePQ z{88zqJola4wQ{Wgl-Z~YE9S0x@{z-!Y^tRUHTmx59+9Ec+-8E(Tgx|nHM-CDJDX6W z5)>Xuj$j$4g0e1cl9ncb5ae-2cbf))HmyohaQWg(xM;xZCbGb(b(U|6s>*yqdy&=? z?4lhH2e0sAyL`zVJTGqh(C$xJV6?ifEXqT-=Ya$(XIdW_^!WTzpGvz%KeG!Kb7bm{ z3u$h?8?^kbVoRSb#Ha}Ybq<~^Wq`+kX#S4KW=bv*$}!HQlPkN5cdLZH`nsAg?K({E%)0k@ zg-(oyg%=HmImNUa0m(ag4=I>N{fz{z_HffnZmI#ZuBO*>SG)U4o`2;< zz6AOiRi+=(u(-~{4h)F%ajMN!0*$M=Q+al$xJK_<0A$bKZMSALaUX^45|@1I#XAQv z$5jo{RoCLUK37rG!@62j>YU4fr4LBJ>DX>K5XX|l5!OcR6d6htvo}Ba0@2D2?apoq z_rbQ?#j6j%m!)O35_q2^uDm2UyhwesWlpZ91y%OjE%k|xbTC(|dUw#27p^uS_TTB+CizBS&j6y5Es z899L@x^FPT*r7^{HKB5l>DnEqXSbUVmGq6EWizB$)+IjkSMx^w*%Fp8C|_FN9I;Wr z8n1NEJ$HlNv~k5Whu*dM$}`0BWj&<;f{s~MsJvTW$Ig*v!snWyS>&4bKXHMBXNM=b&wf9!tutR55!nRy4Vv4uI?T0Nl9zV=9Mc{lk#O7-dXDFB88OC>;RR2rE&)xv>a)xUOfIW?K z{!qw$lIZ{;p z^2+$gFPLYkYDHCR_y_X_1Fh{<2W%VkjS<_%SotdN z{^a-FF`;Wb%8OT;w&i105`4p;W1zvl{o-iOz1W7DQL_-zw3>_Wj9;T@cjQYIqe-f@ zZJ3?0|7`SQK1rhxP+r%Rm5sI15B&!JYUF>2p_xf`S|f~0!^VK9UUESMZm)FGqwNq)mC>X1+p{@;5 zKbpPD5%55I@NoYpsH>4D%Xx6Y2Zl$z(1yd7OX=YP-WS>Mfcz6=6Z>sy7ER7YCPKa0 z-8+R0k5_=~SZ{s@w*Kusjlm(L3y9E+KIED*xPHACoZJ$U#{HR>|M@ojCagqgeASVK zay=vr%BO8Ft}Tz~^qJW!ZlfZAj7$djaTPp?Fe`BemVPPe>+u{9)CCrrE;R2EOF9Z* zUeJf{;g>ezITEYRz^k|*7g_!=yFIi|1>}cm=^ZfiIz|y1OmOvH) zd7WSZ+mM2G7eS_N1yVD(%E8b}V#?hC;RNexPq$So^^NFMC+Gq7IFE<**t$M9ys&`` zQ@dtFN#FmGEd(~Y0_!cNO0Ru#S4268h?DLZcW(an@fJ&fYTp<^jW9oZ6V8^-Qg zlbKJQ1T-+ko7hRXc{wcUzQtzNsxxypln($}^lqDa3NTYgawjpe z;Bx}uVZxktX8Qe7VK@YJpz{x8k5xHj#Zep%eS7@8BW+}epjL*$n-ERve`cIWiHdYX031YuY>VMN4bsdF3A;1u+;aRs(2^yD zB*>Q_AIZm~5J&c9%j!F%UcWh6-jf88UC^KX&XVdKyK8iMcwxku$c=aKOTy-gD=7Oq|@l zdEl`YIS)2TR
      cFO)B#n2B3JZMOH-2(a&0xUn0mNmIH$^#~wVte4w@7o~;@a+cA z*F8o@YzLDD;;hS-vmXxnkg@aPX>My8IbsfhTzkqbQm{yP?Zj($ir7F9H5rusZlC^p zO`iqNsMZn_INg@+_>t7NqjfTEqfBQSn|rL9`|_I(f`kAc1K6jYaV~ZbYZ1oysczpt z1x3U_SGt6Q+wlW~#zrEf_-$Xy|H@N8gGGXV^({ALe0SWwZW-FczWU12hT-uprJC+_ z$x-u(X))o!e6g7n{u(-6s`neeuQ@aQVfHrP5_)S_~Ka`d#3~{Jur5;Oxumw&zh?L}T++}9&51(uQWvlkqv1ENZ-y8j1i4%s% z?W@m*2y_?)Sh#EF%>~udWUphWQdVrI_AS{AOc01H7oun5&=u1LR|?NXhM3*yp{Zd^!A8@k@wm zXnv02&CmRo9jnS(t3UUYw2^1b(WsAjlJscko_kh)!ej&bcq7}<2W$N>ReynH5~*Ub zr0hjIlaKnJs30d9H|*Uuko|6JBRGPgtyAn|gg!8&{^m92-xK%OL%St*2OA$GwV;r6 z!%@&#*atbh5J~IKH@n8D+xK~JOfBuTc2O}pKlYz?s5#tldG`A?3zH8Sn8P)gp%wJu znXjO}i(NcSMEUKiLRQkuKtqtg;@LZ63YO-pbPHMFOOqZ2fJy7vmfT`(^J`icgOvpj z2WF2j2c0|h)QtUqolfDE7{-Xw|8h`BXptO#{bTBZ=BkJMmFkTl{mc81-lh+gt%?-? zGj_4c|1hY^6?jxQEXqOpU?wR(;dKc`OYIX0qL;Z}hA95)R!=N2fA6YIJm$Jpe|fL^ zSt`j`HXM$r2;vFw(-hN&+1Ss|YbtvV%Q!%8eEU(R3?fi`{!tr#R9W0{hD<})m8#PIMVulu;BiGZ$P~s2a7e~eZeaeu7vL`ce+$_kYV>D&GN^REdCC4d zoKzFlH}$ua5*+A)@<6+Hf>om%KQAdhQC$U|^MAm7+dDotn~qM>={wodp!;TLm2~vY z%Q-We!^K&IZ+U#k{Otc%^n?D;0A`H-q*t+@KE2mIJHnxI1$Z&88J+$#<#Z=c6rO=P zNKY2t7k-qPMOKLC&)DeXA&U)%GZ45AV8SW6-mka@mDH0ex(%ulZ=!t3`HLWU($zz7-zLvp6%aFv5nqY0Ad~*p|E( z0JIH!JAou!pv8XjDUqJG$=juNi=y6cC{jgdUCJxv;9ZWcSoXW|_?nVF&kQVWsh`pB zcepAxMku!=%CuVB4{YPXJ>v8nwy)pvuDP9tn+{YbW@oj1p>8CjB7fXR79>dR^=`S* zdq5N)TvI@~4Qs-^kr!XJNC*}tN+%LqEyR1ROVG=%-ED&_7B>%rcl85 z^@O6`sI|r@pBZJ|D;+`z_j?*WPU1{HWM3{!i|hFmtwr-9P5u#|YV=YXrKTwr%1Msy z%!WJ`BbTt67SQ|tX)Au0_45lfd!|@c6ZE?5Nj#bH;Pp{gEm=@w`zt6?8{8i6_ zv7pz@I`GlC(`%tfO=&l86Ps&*(>?{&fR>IGeJEB_mdSpN?PSZ!e(tvRs;@D>3;vAy^~RH1*cl5y;T3{f3LBYbAbR5-@@=ol zbrWx@IMc6IR(HgV-p{?$d;j&O@=9LNqx&pAeriZ{p+V}9g(_AG`7E0+_l*W5a;`ByakbpUf|kh4x8YDSdvvs_s6GT% z%3dZWTbZ=Sg&R>aZm|4;sNtEWMq$5u3iL5%F&f#_l4HwFk&7^ouR_5NCDfnqFs!fl z8o%?!&6-%fFLD&y8(1!LnXT*;e%k(KDJ|>eJGFRnwJZa0$Xon=YtWk8#N-eM?yMP8 z|L?!*J63+D{~5N+@RX#F53j@u?_`GD1kh)Ur7qc($sJUW89^EOlFYb460nFlQ7oT0 zT&*77H*43ld`%5Z7cI4lFilpD`WbQ!E%dsfC&D{M>@GVgSmqWs{QcfXsbxpZ_%A%r z-gKl#H06JujEVO)3WJtJT;u`e4bLYC{n?j6hU!xm#nx)YI#JqK0`Dc{pgRyi3_PrH z)LVJqKdqfssZCjOi(d2UP8KdeGLEgbD=|Np$%v0%$>UFZ&nvG3H>NFw+8ifi00)%E zzsi9r;B{ZeIdeqmx|jLr%FWtNV4~J(uxIz}9UmAUhBPgI9m{TPbUN(Xn3us=eAbqKf)7mwG3_nNR1Ta> zvqtPxcZ(dVm*s2i?GE<>Q>MYxI}cSl&aA|9R)M(Qmr301&brmKLQmT@pXeXEvi54KK};O9R(-M2T(d7%z=Yl+>=@W9|M^+xTo1;0s?@=HWj<{AE1 zTl>_Z=261*O9SUJbH^_Wr~L}grN&GB#xb)+THIoGFT^8qd_;A^Nao+D!x1p;s%q_T zOF;`tchHwbzS)x%5@WWiGn#w)53?tKRVT4aJnJU7oyD2<;*X_fy{@6`kMu?03&^CY zvVxpSkt(W-GS2`s%`J*cdn#yCuNCGNxLcnm$Ine#-li$BM0oE3G$TF;Iq3){;!gAT4P*HX{50gtkKBsSzu+YP;X09E7R&}6ZcOd(j=z6+ zkCUN<{1Y)2$Kfo!mS;WbO$Noq>yJt(;`kZgazCy0?c@P+d9hMryX-97w^-mi-hs>C zJu}2g62cp~T4!YMEnhs7;U4LtGV$(pAeYDe&IxobY+ZwW5^{=ZAO@WIy!fSvahn}B zKR@C)=Ibr!m)i#!nMTjHd!PoZDs18~iKATtA?rhQ8Z>s#>fjV5BYijOO&HC4*SAjr z2k$dgCLHPZGhXDaCEi%_tlZMQM)@@QZBp=r2k+*PosYh%m^7L$=o@c!!e3sUiJfRW zWeX6MG39SlVa)0h0AhtTI3XCh?Ok_a`{_H{NBWUJ;IJ-*k=b;f>y)*)RnqBn+4SX1 zEoB~uJp(EodT|`O$y&IBr9sJiKYps`Uboi~qruGBFU}4eOvFXi3B5OK*8Dc)zDVzp-Vv$OE@QB4(+|RJ7`Cfl(YfiQRdC}42l(}uWW+;4&>PAzA z%EReKQ3fVad!<77z{qWySz??UedLh>R#5YgR8tXf_IO}(9A^P^JyuK`@QwRZVzs=* zspH$KMjgCs6LC0)Q2!4?%++;>BlAGsb+>$S)pn@9a%yE_Mk`Xjw-jP(c&K${J1;Px zbQ_r@TvK516-5~*qdMTkz{I#sq(07mVuy(rO$L`|Eh)Or_&AZX1dKWk1E-MO^KFj@ zsr8%(md?+db3y=B3Rte1b-#UnnEEeeAV*l>AD4Wp$z7Sj*ao-gzG9Jf^D_=jm1k?a ztTwJhuX^|Aj>XNVdH9dhk_iCRbJVU-V`S~{(Af?kuUx%*eHk=S`Wba5&85o?vg>%=ZvdW{aey8uOWzVX zTv6KZ4I1wAm=b`~vFN@45I8GqdO`=mYWWqX#@kK=pNRM)5G1uT`_pW|6lunL+)Kwg z586A@=5w3o{@blonoUqNpBUIg$|?Yd?v3%&&<_(7X?lgjHGWqt#IBjYmdZB{`uKdH z*x0_a*+3q9tc848Su<-q)#MU@^ts6bVK^n>p>13On8e9)j?(WT47VGB%C)3g5?VF> znv3e$kkU)RHYcz`YqBoV;@>}J|}@OP`EX|l(Fn~n=} zLv$b;8PJZ%-p`+0{V=8G&BcWS(5+o?fkd4;h)^X?=2hR97_n&z5k9?#Q%6n`C&}#{ z+uLtPwlZb+I*V#$_21V2UPL)3lu$YSW8467UuW5{Z6J}@lZO<~D5Z*>Td9K|PsafR zNIs#!D(76Lsv{890PS9vHw{j&YG#)3E(2Dc8kDT~+trQdqF=QXxC<$p0#ykLH_CBszrHch>jK0 zjdHQW#!7@lmh_Cgc}fCWP6OUat`-u?>YY8e8_D;5(Ke@SH9W)01C0064?u$!7$*14OAV4U@9mHLrt?u!5h_ZF6YIL&Zs_?I9; zVcPl|E)os^D&dZR_|=G7(KE2f-kyk5AdfXloM|RC7I>y$5sSEEyXIx-m)pn=UH<`j zzem6o58es8c&UWkdt^ZV<_C5w*g2RVfsRP$DU&87n2l5)COx>16jS6ALWSuB@z}`D zr5i8C{l~+Vu>%{GNA0IeRY{Oyn<#;{A`zjMf$z=qgIk_gX52wD`Cx0dI)Ta*P&$va z@%vxW=v`LDH%C8udwchK?}UklUHt9cJKyb==)U@Qo}(Bp6|>?D;^Y7QuG{$&?tAVB z`^4jI3aC(Df@*rS<{5#{-E>CjZ?zzP{V%lQmAKH^VXBSwO*n0HGKLiO@ZZT-QQ7^* zTvT`=alYaB7p;-z7bLs6EyaT=?#{}nS8KA~$_`k1AePW8mh2mRe`UMWbJ(FmX|ID) z({slXU=7L#P9?fKr~iEb^iM@;04+G@a+kZ3VQBfcI$yg156krgBYl6YU#S7ChI8HG ze71J_Ag@{Hp-JSO>#;y-+dioy13<3zUDr&Y7upuex10ENS6F@=1~t`6uT!*^zHB|4 zWi`SyOBd*NA7UuIJB-AP#G2wl|6QD(`faOPl0`b(y&X-tl@YWXpAMiK_RCLY?OLjaL zx9NE`4tBbV8mM66cVcg~?&0JJ3hE;_7qFkb(){PZIrqOupBi>yd)oW(-(RFLKY?W6 zwo<1czE8J88t8hnkHx9E?^o)UrC&Fki7pGIkO%P4B=r-|?RLNmRC zM^dMYaxh(9>{)}GTiP=o)j-t%5h?mNzHW~8@)p06=&>ISIs8{zj^;sic%KrXX|0Oz z6+l2lqybusTOTM6xuLY>b1MZSRpzCjq4Z^++lQcXDj@yKm@<7RG8NNLPZ5u32>_^h zn1x}Ce2@?sw7n_q(P_~~_WEY6Af%#OcF8Y=&HZq)*Un)dIt!L|O<-}@(oFM4k&xwXgSWqQSB)Uu^ID%)@+IqcMLVtZ(e&J}k&5;4>@H;@y= zav*Ko#7bv$_#jS|TMD4}(s!Il<_7Y_A`&IXXre_G0CXl4JY|uivq(2H2;=e5nL~)r zd0EasLe()p`;b8ao#Hk&c@?w7H~`966d6gSpmW%tN=DxMJ2{PcGQr2|C=sXeDt`~F zHMq}rAGmf^5;>Dw-iMu36Zs-FDt``MgIc%pvwIUuX2*=wO8SKRn3Mfa}owVA=LQX zvGvrMWg!g7iuyG5q~Lod$!_Wv|C%l`zHHGk27ss|ss`HSH|qmKYsAr+aJZ-SdVV2C zUf{9~jRjEj^61V_TwW!Hz(wQiHo?JCI)b34h08nYKW`mlz3y66l}tn4vR7wBBkCja z{PFG4C=DL({sm+|H6#*137ahQ?jIHD5 zP+YhV0~F-1uv;`p^!?e)I4t(D&h8+tTm?2Bj<4ryy8j>JY{@3kT7U7CB-yKvcLwv7 ztdG*NB<-@|&5mbhO1kVXTc%cEDjz7c!C{SoTzER!>sl-44uvQk2TS{|{v_~>VOvPf zmu-iz#>O|=gi0Ul74xar06@A5!qP9`072>9H3d2i#ucT!Ur@(2em2Ji!Pqr9Sl|Og zDCOg+!Y^46LqA&$&N`|xDL=_WLHImrZ6tUl95f$kK$-5-E7P8@7lPW4KuViIhVZ@oeeAzYN8@So@k(2Ol9r^eTbok+joNNXu{6e zltgBjS0+h6Y$*sIyXwcjM#Rs|s^rd*l#|3GPI}mGH}ceMC1*d3Z8WcacbEB}c`skn z{OqErtJs9=4y(~=)QD8N z3;x9Z_CI=T#>6EiRlq}QeeDLL_^5-|bdfqy)OC=jG5KJ-KO(YO5vNID=&h621$5nwA%!ONBZhT5ad@I|7hTzR5N zI&Bn~Uu zD)YX-+*Z!jDFU8Lqn&>XwrTm*=Wk)J;-%uIhIsY{Op61;f|@UbeLq|#l?d@YDrBn5 zJ_q0ELqn{{z`O0(|42q(zDSj|W{vkTOVPbCnv%Ft3(=X7?m>JHnDK06QfM+gKU=>n zJ03o%w$@4~&o2udXM)cl zb@7{X7BCw%Y=r z8=vXv6!oySy~L7|aVuFN_0R99ifWft(Q8*>L1vA79iAeSRzA4Hf$rZ|SF~UCuPp?H zyu7XQzJ@5aRojc8isj<3D5owN)i8Xb*U!(_50YB9*0qGr`sa~ZI|pH?i79Tf;3+YB zs~DlixYEj-37TxlujSac+%yv4)I82^C_@)psaVz=KdK17h#KNp_Yu<&+cZWZ z1&pl5v&?X6#5_C2=7>3uzxv25kz4_XEkF^B zO4dk4{zA?AOn_e#PhJ9H+K2-UINXLJxv`J#UfT?bYG)FtF%7bjxUc3*dfn7=CAE1O zx&7tqc?zg!CbRkSmvsonVSAE&@C{>z5|sT;nH^&ePQVAvRwI#tfoW_KMF0qw3{&NH5FQ?x#gdDG7gFv z{T)BB(`ni^^=h`A8t_9p0NaG|ai37#HCygYz8`ERBTQMM2&p9Rcqgbe7$Q(FqTgbB zM~$(!^)d1zItuQ1lOM+aJ#ux|A_w0nt&@8TZfrLIM}6{RQIi3W4BE|^Bh}gCuT8M2 zbc80|E}lK)LF@NvLo=vWc^cY11E+_;aR=tme@--tc0PL=0`@u|W`!j*ETHQTEU$wz zpdyN&z1ygNKZmBbdP)B_H~w(f=h}fYnDZ?YJBDq{1&M6lM>WNF*3#9>wzc*hi~a~y z(_DP1D9txlnn9Ac*y8WiGsrfylA3-x z*nYytMGPfGGhsYA1{P-5SoNEjnG~TJCr=klsZHi`4yogf?Yx331t+%`*D^Q6F{-aH zf(;mTSsWD(e->l+zdLii^!cW-{1W>RTyk*9zw5Ybj`h-5aWHvO)p5bvDD)KZPM6nt z$L_)+1Ij5n!k<9>`vKG#`aDTND^oasTktn`{aw-Ad$A3^uHI8=S%#SqKU^r{(5lvJ zXvYAB+rjIBM_xXD;96EIp054VL8?sw+jv1cUxVZ}kzvsCp)Y@|6}j$0j!(b1_4xT6 zNNUlbT@lL@otv6@{OVBhGb^eVWA-*}gq^J4QM&}HhXm%S^HzQD{e{)6GUnb3^gX_4 zv?al5;(HTUlQy$%*bHC3-6>zY+>^I8M;B@TQU&A7g*pWFnoV=WC4jOGrvoPEHF90B zk^s4f?)#5-Mf$v;qpzlk82dM*V!hIvs=pM?OcCjihBY7Eot^*d0_T5ir9Tuf;$#|C zxuz_gC^7wJnX16}1w!#%wn{bth`- z%%!J`)puW35OaEG`gzaXz8Q3V=dr>|!K*wWIWvNBEMrhjI^C6xYnxJ)>x883ZHSuF zL&x@SUhtcl@ z(xZ8>mx&Rx)SqME31o`i6Z`MZ zkhSwK3a&FW_ddldW$8kskO-SJrfH1c&(4;yAd2S& zHsr?keim^k+Uwy`vCWqm?3#^3_r~)U2I^{IQCPv7LElxFc=N>P2_UkNYTay0n| z(W2PCy-{d-=Sa3y9s6STkfHli%F~}hH99HoJ=zzIRX<)ArGY&4?um_!FxMQ(B%uPb zVYv4@Zd#}a+sBMSZ`EMwc9`3sVG!$D{mA11e)GP7}dUdzRz@A=h-zxC^0r{54_4njMq1f}n{%6x_uN1ry&!2n0eR zHK2(Q_Vx*nbr^M}?v*uc3}=0{V`d^(8~Pm%?}!GW`er}($F0C3?9qHr%alhs0mDKz z7%RAYwZ1#O97gjoptGm$k>Fb)uYa_E9QY2dMlZ_?eV}apm@wymEZS|IEe|BN4SiLD zR;jF8IU_+St4(&>*@uA`9^x?9>5QrNz0}uzH%#nxO0n0$i9*!@{?Vh`zCqZY0l~3< zxzFu8muHpMk^kQdaMT`uc=8sVS8Qr#oEgv}+IFxtc~YAGr@H@Jm|*ZD{n(l`)i<}t z_?f^7QWXX3Z5GtPddzv-GZNHd)fPl>LgWnIxbQ}#UxcBfHTw>Db`+KC+?B8zDw{aY9@tCi7 zU$L)LkotEnlnMBHTj-gziX^g_h79d*?7DcN5Fi~}p}DRuL1*gA#m&z6I;H{Y93t~9 zNfozWqUd04^VDTos+#>oHeuyQ@IQCa>7qm!*ra~-No^pxn#nlDed+f)%y_lpKw5J) z?MR2msLD5@V}E=vedH7Pm^4}4gR>$^=d}|-XHQ!AsKNE3kEZW|2jLII%W8?ul0aK$3YA{ztfcss@||>8y3relB+$R{iweBv{Htj*$c|9 zVd{E9TW&6q&Zd~-c~?X@cAu-jfa9!DbkQPipxv!T?m^QyZ25$FpUQweD166i*Lrdv zvgz{92V#^MEIhhf0r9>b~9#6(H!fy=kqWEqJ=pL>S9D<4gXH|Y*?Acm^g z()j3V>0z@6cbe`00cR}g-%|7$+VrJM1K_yP9hw25QF5kD`WT(;8R^8vjR!)Uyf{(X;5}l-wnjExMYo^*CH62 zEcGTE?lJe%IYX%F?@6$Vjk6K&V^J$5L%qyt#B6123Q!OOb1Ta9>YR6zVD1?Znr(7Y zBQiTiYyu~~I1_sUlXQHXAsZ-Cfx~!3Ooe@(m*s>PRVq4RD%SQ73uh{7&d>H$zdBaC zniTe|(?%R$V}e%JDL)-Agt${W5n7q>S4N*Q`@wr#l%C|>J~aUY2yNwG2i{*2b6f?XoD8?>F}A7v;9{ccj|QYv-exCH?rQAZk4(q z+II}>n_uRXrwx6=cRj7A<6QkpJlB$cGb%6{H2Y}f+B&UG%_Np9>=M>@rw*yj^jAA$ z{oBg*eo$m3&2t0%O0-Th{f?1^C^$h&;&~a_^%`O>n=DjpYn5o6_*`)cGB07o_*@C< z5Gll5HzHcJ73|CXq;HIO?6`j6jW&=Q^z7r4OuY0DQptH=>JyPNIYt<>ppwm_3|b&K zpUGGjnYqTy&0H#-RbN7lB^pf1j9DP5WG75^>Bm3Wj?<=l76wkz%hQ5EzZ{{=u$F}} zjj^!7bM*{ksheHvzj!@$>?gFL#@_X{nr?yoNkihotHEfFu;%@HN-Z3bm73i(epYc>*Ks=a)K7{T}lzb8CZa68vV{Ojy-JgE9Sn_Vdm zJ2BhDfuGpgwW*-SH=+Y7t)@p=zE{V}NGb>o{Ak zO@On1@3GdxBAQctMyjp()mIn6^c=PF!C{mr7|Iy1lBM#f9;#2Y+w>9D2nCJ3Vo(m3 zvp2dc30bh|3VX8!mU(oR`@pqwsJ(NI1DX-HB(5NtJgyj3whF(wVa4j)TagCJek~0y z)k=QztbSfpv+K1Kk(if9@Gm{$~%~0cd!_GX&;Q-4BTR1#=wYjWX zc4+hge&e!oHN?akR2Z0PMeuplAd?x`U&=S~CLLC2IaJY%AR7v7qi7HdDy$qFmZn=!(khD{gJsr(!tKPo1qHRz4}XN<)H zM4`(o$=dr8Xl>xIBMZyP-7Zbm&2Ug$bQ8M95xHJWBlKf@J^|PWcnDr|P~W zlX&L|`>d=ooUn*K3jlET!VO>>CQ||Fue`S^>$8Zp0v}^95ulcz`=qaFPTD=s2HZIS~nX5s>2%7Bv%04D$ zHPy+{bzuIQ(TIVY-^D+fQ|W|4vHtr_$R44PKA!5D#JjdG#bPku{1`91_u)7i>lU`Mcg%T1LfL`SJF#P-4DYW2jlrCCu&l(gI3O`D6wS#z;Ib zek@hQR&<0RcOM&4pq9BF`s>8RYOzE` z+e#H7B~#=1?_l?Uf?FRQDjKHxhDUlE631>lU#z}-|DL8Mhxnt0>{r98Vy%r2I9&CjMaoTDrBTmxE$8&3VLvBcrB|;SH?L5T&laH82VRs8p zS3bcB$E-47@Um@#4x_GQGYApUp1<0Z)OuhlZXl*6Fg8{;mcU9^W+^c+1(6vRbx7|| zl$u301?K&6%lmR~_GoMilc}{<|0ra#%es`hb(>11{*C8liL&O_Z{NL}W(#C{0y|~C zon60$mI-HXv@2ew$TWnuTTI#vb;<)%-A{Mkmo#Kc)+yT*uB&UgoYF(dVhau6}R z5sw4Xgo|pvSC;pthU#)7DmtwLjqZyoR3p>g_m#T!1pfXmQd1kDG>JO@q}o9$C)ucG zc*7vYl!S`E{QWcb*VrLdB!1%^v>C6NpNz{5aEI`+OPM$@x#d~qz>nscy9K)EL*Jy5 zXDJ4<@G{`i3psa23DFS$XE)`4=7eYN?kVU zp`9}+(KPz8qw9W1|g8pQfOdciku>{6KL3?lbLF)Ivj8klu_E5^NkhD*4x`t##8YxKiqrDK;4NR4Gkp=c{o8L`H2P*r|v3I!+U{>CLW_t)78go zHCCR@l1Mq@3mapUG1+|)yClnOb2QzWBKzeOH zSS3?Z0w-MKYA3TdvSwol)S|TP{B3MThH3W&OF<%to{mqZ_yy0ogRyW z!EFK?7qUgb-C8r!#KIVvoa>~Z1|xeDHKo=g!UbzRG|jqHQht|wh_kx@#Nz>5cG`tf zw7@zj=5&lA5W2(@sS3ps-L5PM$*_1KXWz?TAx6m=TkBSeN6fiz`ud*Ort!vR9>%`8 zVt!c7cA&)DweaD$u=5Km(6y~hhwU)R9;v5LJ?P|=7iZN|?IbS8Q#WDLW(<4<x~>DgXXM%%XK@9oSQ0_SvSOj)9# z>vm#p>HpiXQz9{}HPAi!J5*jq&BwMj^8tKDe*3D%q=a-)`**J_i&;tE6_Z!g`O5xV zb86~gjm~06Qk_V2tPX4=>Lvc*dx7E#kHhRJo29VA7#sa#kT=3)C=ujoNtsmtxQqhP zN0eVv&nIP!h^rbOCvy>%)nyyaq;$xVMDKRPUIZ@-8AlMpi)t4d7MzNH7Lp_%+qaW3 zh8|Gm(BLSMYx7QteJ{M4HvVXRt4gKFn*!O#pXDn>Sv@4Mh(CdWwc|F-HY``krvQCi z1U5NeBZ3D#ZCy|S4z*buzuxJU6@TEK&SP?5449bOFVn7KL3=(hoh0_TV~@!HT%M-v zg1l&V(U=#f@wH`(hvqfmzjTfI%>a4SfEsV}k|}?_32M=~B3Z@XczA2j7)<8NCv3|) zz^?^0mMIY9ov&v7XR_-4cRM(}D*FL4^P3j?8<~d0kALD8|}Jdnt7x3r^n%1tr=X!o!Ov3h6K{iyRq@y8?= z$N6|6P}O0Z)SzmcSze{nDMhaJ)m=h$HPXcYJd?m3sfELd3W~Cv4_6pi=Tp2=`!YUp zW^K&{L*AV9Q=wkllB)Uk)ZVbmpH#kmGAzlfzqI{&b;Eqn`50b!5^|EGS6)Oygc^Kz z;V5@z{4mZvAB_|6$U;^+V3F0(M~K*&xa$PrVTh#qxR6pxNnKGBmoIiIqvj;D3q!mR zZPwmcV;p>7a2!|vb%b|P&euD3CqTRBPxh}v_of<^r3k<3i49K4z{)h77 zQwNF?%%*yXd=%T0i$MK)TY9j(lS1;Ol&eQdqLe1~(J$-Q>-T>lAH38^JbGr3VEce9f+Lu=YDiRPh&yG&(z9)MRy^_co z$=q!6395I6e5`#XB!;yx$|)5J$*e}dqUg&covl3!M4r7J{M_GCg%c)8j{5iGY9{9Bke#o8FpD^0vRQw% z2`IA?5Dh{t02q9Ygb=U(rWdo;GInR>>OvRrZ@K^+_WiQzggxL-QQ}|_e$r$ z^};1SMU6FrWan}_t=C~3{b!A%sm;bq_opgs4@l_-@!7kgR_}b*;7U0Oo*J0~dI&(P z$RxWWDPrVCs?L48=)cM!2=E%^Khk=S019a%j1;d>uDez)Jw-%V=e(#pv4qk?>6)P= z5cS0lP?NST#k{1BuE5$9=TS;jog3r;f*>4{Cp&ut%7#SiaM*oCT_cnWgbBr z1#r}Pm!jFGH2J*lvaFE5zH&6r7#Y&JrdOy40u)zYZMOjdHz2j*Z)3H>RQ0&v|{}23Kf)mD)MpXa-RlmhpYc@5(bJ9$vw85Z^9}u=|wl=4}ryJ3ze^2 zfPu;1uk@G%KOE~+{w~6c9m6_55vYF7B^g6n;;}Zup9`eUF9jAnHgGV|krlT!2b0?$ zE1Qz$laxDo%)81M>S0IeC8eiG2_SEWc9{ifC*2#g7Ub*$CSy$+35eQX z0j5yMAj*WIoqE|}Xs$2**iM;WZ7>PdZ5$-<`gYUN<34$I`9Ki;N2o-~%Ur zCD!AiGHmyuOt;Abx~5rqLgDN6m7O_MCDG*bUEf#S!ANYtRObx09-A9ZEKT5e1=@yw zG8ZOF$;bieQb}gr)uTZxX_Uol3lb0RT#TDTGY+FpWO5~%&z%8)448t^&)nm4x2fmr zij?wiDL3Mb+#tj^7QJxsG~Z#B7t9_5QPb4P`!Q{24#~Dm)waSjI3OQ{w5RqX+4k&$ zZdr<3LmF}w$g|wP;1z>S=yB}S7Y>rgw2ISBs-LzvH;+j)hew0i(>&IqNf~kpfk>)X z&69^Dz{_L1Am))MqwT~=r(m}r_tc}rz%lP`KO8B3cXHvpSXuyp^=HnUro;pSRk>aO zAr}6{E3p;%khKxuDW>_dq0C$?xd6JPv&q}d<(g9OM~y^?6#e2J`B@9aRtL=DT1g1>zBHozj^5bYY(~V%{H4Q8#`pUt|9R5fU78ILO{p zCf405hVvfHRF=|Df}j~yn>Je+_~0wex#o`dUVfh!BF}2VBY)XH_;7gsLVBXhfEZV^ znk<#bHA}*N54%00Ywo(_eZv$=x8=*>iO^EB89H(A7Z`_pKFF$eu2U7B`{+~W`{`6< zN^b4CERSWSMG*)eitjF6>q*Ae2<|&GyVKp%k7}V8EI;j5>w@BPm)dzN^3ZvuX)yNg z6Z4aS){%i{8y97kgE9lr-)ii(h_$Jso!Dm(6JNR5IbEn5JlcLKvB)&a<^6b~bMDc~ zVVJ$Z0A~A2&BDXltUtPew+L~h45r1v-k@g916W6JeR&P1e6OxK!29Y$1O%N7yYZNb z2rzL|sg4~nV_+%5BHr+&zQ<)JnkG8h{c#m8A&C&19DZ+FKU)Bh9>bP9W!2qRG?OlslD|Jikm*GLf<03k?koGXQNt z=%=ONZLUc7_h+2L=qOR*)~k3?nmL*wkgDXy6^9C!OT^WkN}O?L${+ z7#1ospkjVR>iUg;8zA`z$-1^#pV&|9#Yx~GHibE%*b+hnf$Qtwjo(yxkHM57-@ix$ z-0WT8XzU`{oZBX^6PqI`-Xgp3+!HH~&l`aI(ojCm8tAwR;1=}$b> zRa>t>v4C>eL0xo9x>u8IzMbrwtpK6OB(wIqB{ms|dhq_YuiaEwG*ItOkBQx}mil7U z(>J=z_f zm-hFoenvaYQ;tT`&NKinP}D2DCzKd5Vz=)`P;zR$?|5{_*O-WLB`}Uk2RGG{EqNYH zMg+9<^AaNok4G72+{cWJ6VN7sZ>l9!VbntJ6hsHVPu+w+5WwF0wF+=l@GVRVw~9+j zSbQcw1s)TI7|Qap^u5Y%B{2|ibjxQ?Jd36!YBRKIZyRklxMHDdQ0XL|pOL>;D@vLC z9+*VAR`W2;qfh+)D|Oyq&=Izw#+Q%OPZRo@0iDzTOul7j3=x<1s-e*eQ0J_>zfGIn~Z=?t8L zT$q?2AR?Yz8=JvE)BM##673@IL9jNO97SWEZY-EgGh5IA+O9)HPz+0C>O>3?za|(% zEKp{xW-@Xeq?z1os`G(r>W!d}kLWNs(;~k1up666(XK}kjaN17KN}ir4ZEKp3f6^t z%Y2}}rr6<)o9*0yj^B+!=>@lp@#bd=z|F6!7F(aq$bmQa5piaZ?}2Pb z#?caI(w!v&gZn3CuXs;3!F$NZJPE07(p}gOi)djoJ35pmS!&J{1Dl9rxhvFH3o5Dh zCFAgQ8z$iwU_XSF>$j<07(0<2FX}FzXbC26l$>hN1A3`ynp%_z_H_B!8N0g=tMR_R zzJO7#9N+|YKB;%D|~z0OOTA=WfP)BQ7kT1p!?QeX$6Cvl{~#KE`^3^^FN<@ z_bePYFwAIW-%(mf+x03gc+{L*GuhWz<-T+wI4}#tppp2{V5P%EjRsRl_3x|g66}_Z z#=WKMC(C|0``#+6X;e-r*83vK+p~${PB*m|rF(VQ+;>C~Q$_N8WMbKJuFgjG*1Xv? zL`S0uz?gb{Ay^!<>77c(s%2|2R4?6l;%VTExNf`PFckQ0{GDMHV2yr;8}*2*#IPhL z|J?h!a&NPR;6V0xT?579Ir;w(K$xb#kKU7(aqR(@Fn`Dpe^pI#_Y18Mkj+u%@HjiD zyjP||`%@jvZ=(bAY-v?1^EkT=9@n?R3;*jV3^G|RZ<1!OF@c$uW}l~ybp$d=QZbKG zzQ2Aw(9-%mi}t8Lqoe1|_>UNAzQzYRb-c2r>csT3eBX9!vSTf&ItrKO%^>;dN2v6kRrMb44QV^~K8A|IY=;8X5NL z4&9>bT7dlC2YD}1KXpiA?q}~h2x$YHie+808)tDAFpU0A0(c+DebtM_UDAw&hnGT& zmokU1{kQ1UOIv=kJHBhZOr;n$oCEprm1RQ0o-pf-Jm$ll#BBO$DPwGQV+Zq+VT zDI!*L$x(Ar8A~6YGC0D8M<7%9ro&vZVB+ME+SgN`WE)c3yWmX_*j}x@l^DQp!j=3| zW}o58ABurjs8fC$YqT;%?0u_nM12l$(O!<}hW{2HpmbSKD+beg{E!B@$qU?7ZCbJ?;~}^C|hWiM6}m<5{Z)lUo)B z9RX0b{T ziyCA#`CU65(4=h$%*`&$vh_zSdJ})~nz`|@N)SiGo}^huwWUw37-2;^BnFs9tJ(^| zsHJDz+D_N~z~?(|_l1U~*PenrC3XMj?2rQ~HOcZ;2V-*!G2O1R_P#c*BIB?yJ?YZX zd=B&<7J6t4w48EuIp6*aMU~R3w14ovakr19_fOA*`1(b3#-sVg`~sRX6jWv4Azaf~ z$Mdqx83IpbGqFulJ?toE*G|9Y1&V0 zRL@X3d2u>zBr!Rs#Lr7t)?Fn+)>oKn>QXJ>mhlC!I(!B}Q+s27)Mh%ZpsA?|a4k9t z#i<<^Cu&CY3=d`j+9)7PvMMJN#@1oA_o9oABY&>6o$NXJMY*;B;WZ9qj z(8l9Zy5zWj?#6gq*Nl5r9C!5gpWtz6E)*yFU*NR%XQ{ovT|#%$`3b<-o}ifkPe?xC zOBNA*x?gJBixs`jV-mCT7F$C-f~Ca`m8c}x=3+Fb0aqs0b0@hUVHL6TQOwYd!9$RQ|(BJ=; zikYi{17@7IgO(%He}Cb|skY|_wZ<*H3H_?uIa(1USw3c*ep3S;_siH-WYXu{$kciw z&ep#4073Y){f6*C<3H<2ty1DK<)g>abJx>+g|-0Smrq;(7I<^Kx1-5oHu~ z`t#C9e5+>~(}Ue6B<47H<`f?m+`1yAT%H)8i??+aJ?Lv^D#5;sDw0Y!0&wFkZv1|f zV>u@#a2^-^vw#0YzxNU(anFlskMFKu?Pyi2cm1Q@r#ArlP~v~5l=GiE%iVU2xoPMf z3GlwwUk;p0t5vlgm&yH-ryfsCTVvmcQ8@6Zg|dESWWA~*oMYz zi~XORPPVcYx%BLtB(tu-CzJg*^dt4#%5eReL3t}JyeifpKih{-G^i!FE~7ZlJq~{w zzr=1s_EynoaHY@0ckPIO3)AY+a^n@Z`d#y2Uq>Knjjhbdx!HK_^oiu#3HuwDv2RN6 zsKR5}_i^1Bo}9BjcO>g4l2}4TKnrkaShZn%1&mcN|N(zPMLQS?N;xH?<3#ykoRzTUlT4DUPe1uIHnOW z0T#Qe#=^MT|JL<8*=8}#BbHSU5tv&4Xf4}}0zfN`_;~lhajnp!rtm`w833x4Ju#;t zaGrM|eC0<1@=;0CNaLSX?qU)9rssVl>~9hc4#l?EQPh`K8+VPdGo*2wO(?EL{49_P z=u-gER7!(x9;bmFy7i|h z0lJlAj57;+gky!#!V==Iukci9d>QGd$g&6%i%@U~z$799bTIqNt_y`&uzoX5@OgoS ztbUzyfX9|^t#zP4lT^2|gQkmty~Itf)(`_PJ0e}$Nv<5-@LE`)jZ9T)KJC5T|8f-C zqV0WUIbxV4b-(^2(1u>Nw&@ThJ+~hG(flEi?0v!;_J(@H$E}(hlSC+pcMqx^v|iqF zQ^T)QWGAi&y&y6(Md`A)dQta(#-DfU+=*?upnWxlI3id%&5;vYS#O>d`YxF7Q`59| zz!dr`8Am)?$E3kSEd0y0o@qiP-g&({*g5+t2jMdFek(^m0ya~XqM`f3dE`XXV-hEZ z0EU3>NAUN?_=*&Ay%+I^kj{@U87sFBR5~}L%Vd|SSm>O_U~Qs*wM%n0?OnwooULni zZs<5YHmHQ&)DAArJw)uhV~q7ahDI!v;v_=~!+IsuFzyaQIDFhgPEmwLOaBi9Bxid8 ztcT)h1fi?xc>0=m4QeBsSC}-noH~X@-jqR~<>n5!LNEWkVSlS6$ofl|U9gxa-2w97 zb-M9*dR_7yed*WPSeCL9MUu5RE}RYMtY%W8rFwN6gfUcf*$ z7s&}1uExCU)1L^*!IE=ybVKHag~8NddG{-^*A&tBqevGYy&D`TBZ?-k^UaS(#AVjOztcRD6 zJY>hQ#rZGSdY8{Orca71MBNc#A-}%5ouF4{@xfVN(p-2d^PSz8Q-TzSz&GY>0RKk0 zGfLmg%GerO(EZ^t0gM|YB7i;-%>t^nk;anFusgYn0Pgk)a6fDc_VZfet~=Y&Pd&=q z`bc~HOfH7?_2WCi`N{C7SzpLP`85TXe%A&at^Z=*^4sc!}) zoxasD*-X~CUBtV(iyp`67ef5vwLX_r#o$$jgM~Pt!k{PW#KdUAWy`+AIjv~+tMY(n zC~XceZ>hr-^UH+Z8P@rRZ*C?+gQ3U1yPu1!yi$Np9bO+?kTzur9gHc+sT7YyL4h;- zLHh)*nXBBWQRzTgA@`xdYX?J_7s|XQs7jCe?(_RUMtw11U^@X)jcBrMdHGY$IDs;H zCZys4jKS03UZ$35T)>W_-Dugb|Mm@MT)%QDETKtx86Aq#NilYX4yWsry-G!Umu0+@ z|1zenZJq5V#w^AaLr`S{HJKk2rhm6dyVGwm}vA)H?io1&Nb;09x)NLsN4)segjfy+$j;zcLRyWx0AA zMBh;`l}VCZ#g@9Y!Ja`N8TA3HPwoK7;3EJ4#DYOp$FBPcXJzqa*IvQS&k41x@UhDJ zit*qOEL|k^Hqm&XhX^l~HGlR?yC(Kp-KdFG79l;k4fYark$dZVe7u)wclxH{$g#H# zw@|DSfUUHUfKhUIT3p!0x#%0CHa5qRz3-g_V}O$6sbF;B)zVMCWa(}bFfJP!PNIUz7P`nCH@1@p56ED~jTtZu7RJ6$y&BmyUJ?|2WGmp+r>ia2TYtk}y>i~1@O|~o z6z)QO5*ugt7o(naU%$f-I-#S(aop>lMQ7o>LaYW7b5l+~^GoG8wdu`@)BiP5GWa8; znRxERai_NweU^o!Rb|OHts;{LH7P&lbANfBEpMv0Iaxn7%AIp<->w6*7><3L;qA?o zDk=wx(;(Lqv+_jlZ~Vx|jKW-y@R;fsLAIWnolV(Ke_}xNp5p*-t<(3_-`ampxk;;; zCk?}u>n2cmsNcioE9ZyO#0q8ON^m_ znhkg<7i16`sgBJaas_Gdd&K!?ZU5bsNP=QL=oG;0E3MF8$w(I6qS4aPH5f6x+N_H8 zlZh$YV$|^AuXHw#aqH^7dADoqYfHR8%$lP9Wh;9y+B)P{*-3x|OO29Vghp_p!?%~} zMhcR#45K6JF^#Eq5y1C{Rzo`m33llmcGIq)za8%1W33*xibO(9hJWwuI8J4dw;a>O z#t`bBp*p_p7V<-u%HMBC?S8_f&TXdM%O?q&zVQspo@-Di`+=&`EUSLBmRP7kQ&c6K z{ih`RtvUe%xmtDg-t`wA@KbByLqD1UlH*<+Ennci#=Dvn1YKDvWx5aWZA%A!wL3Dg zBzc=>AC)~@@n8^oQB0s>o&ag-pLxyQ+@1PlsAN-Z$0Qy@M`gP&uT8J7pA8K>J;r(Y z3`efHtpU$d%amu6iZ`VDzy8|V+JeVf!+=aqsBufY=KIV8$RERF*#6MI%u8p#YT*G* z`{I>b&?jA;1qII?1K>at2_I12({KCQMYU&^38qkFgwXA(DM~Xd{Y6Z^%UXz_0 zA)iVcipbulLQg6lZRZ`e|E3SBs`GUXI)mlmPB|ib=gZ&=j;yHoOg1+?k^HoG5k@O} zg#uXqUyfK811=v?(sV&cNAUQBVM6^Q;&k8N@I8!R+QTk{VxC{aXpv z;0}0H@fcP{ran3F)k&=4VD%}=A35hu{g7j3PH;w&(Rtu{OYm9A5y?=gOnDR4 zvoG0&`)yC>rngKiuZuZW!k%5IX0GTS!Iiy@f@&%%bdL@yqf_N30S-d-QT#?hG-8zo zTMn^W47EeS&2OkeOSzcg`XP%WcIGF}12bk|=LAIw>dEj8!ECr1t9V+&yzlX;D}K-8jkiWeYsw44n&-5w zQrf<|0{3gP`x$E)3Y*Eq(ML#@97ug!O5q_7&+kGm>Cd%vHX2W{ZAKi|Rs~x@e z-V=43w2h5_gNUp)3lD_?Z}Gd!dv>C3wI9n!ka>Ug%0(~l2&DNT+}#ldw#2JX*NTDF zJyBThYj8*%(9?N}@kP8y?~MQmio8Y*uXNf>qPoYMZLq@g>Er3)U`2fn`zCn5ZNOi( zx07;Ll<(W|VFU57RBuSyN?#trmE#tgD+9}clPJF=Gnm@_vkt*>x*3*!VOxeP%^A%J zFv;W!=DL2t%ro2((}7bL4Wa|%*{osp*YL<@$IkbnRotYmLx)URDTlG@bCslv?Z9dT z+Zp=J+_mGVN4i;m6U=%yB+h+ltSx*HSkiQ=T;P$i4S<{jI+)z#8hIMaU%fhRk$h{o zYb8^SgAo<+pIcj7GZ#+~oP(p6#cpG`WXxwH_TY07piHTmIv# zs8K)LYY+~q!u=FEC{|KxXOhvT_;>W#$F6`c1^YVTv1Zm!%^l13af+gpx9eHutOI2j zVWPd++-RBF%lLh#O=VqbL;vNScmb)$~M9pe$RU%zqz&)SuZ?>3fSN7TIfLsvx!Lp zUmii-URL%4EDo^9Du_>^S5GxLI!VvX6r8pwr7imB4s{7_@`P}xc2!0lah8}$Yz1Gp z1^@A0DPDB#_|STLnCdRjiQx?Jrz!=E!Ne8q5@cO>20HKz#5o zFVI|GhQlEnJ8K#9y0hrB3m=X4X9~isYwsc6nf*i@XvwuWQF)QEYHmtMOnI;LmPYVgNQO947>oD{WImab}8t=*hooC_dm2eY^tOyC`=N6tt z8Zz&H_DB|XF-f8ef~i66WjWs?82j&kaLD)&qN7j`I+|A8KLepo{L1vX!)Q!UTh%*5 z*>duC1_Ga*Jmnw!=)c8UwX!WZGt_v*)Pl%Y>bb`WDqer zpN*N=^3AJ=9j9goS0R1rq>*K&aum`C_vRVywA4{*w;$9esCEMW0L~)x+((uoWnEFP zdKLE=z=Tc{rgPcj+%LVfR@JLFAU9;Ao~^%IaE|WyP-eF|RS%xzSMNPBgj0i0+8Z%w zTFP@*gc_|DB2*Y~N&YX#LGArX4eQy;F0c+bW*l1&x^XtdB`uniLlvLPXQK+&Bh7li z3U&_cG?|zqXxk4jz*xBy!r@$v1zDXbi3Ao?w`j=}Oh88qB@9J#v z9J6jt3Um>#7Q#1N=Bf!~^EX;mhE@cc@I@dlm!qDWiIbiqA|+6cPCSzHFj-d7u&7DS z4K)b}k&QWd?nqg6w2g1y#RBpLLjJ^3t)BETPD&y`&7vD~7ZNRm*TJd3m@`%0>9>PY z|C{kxC$NVXl;!uhEp>=TM@X%2;`L3A@=UJ~3+clcX$VRD3sO;t6ZHheD3OnwD`_sx z5D^L5*Zn#1P)QKuq{48XR^7V}90OL{hi=d%+EV_?z~op1ClHS+b~-I*zNLU zHf(0T&-_;$c_UtEYLm8Nn|2H84kQLQqTXDzgtfCv#s!ToINI%Eb@ytdqFM1Q9@9V( z#s|gLPLQF#lwtqzwmlhdIUhLKt%@qDEu5B@zxAXcXMTXQ`qD0rYKm=-Hz$6un{*Nd zo2*j73Xp^xyr=L{7DiAcV(#nLul)V_F-a11N@a_8FsmfkvZiDHY&&zy!V{YFF}ZwQ ziV^{m1L|adgR~!NELxIXe<`7{IQPTD9S4f={N!?GkBX>i6mJ0`udPGxr_SN|su4_0 zXolm$c@hD>yq^B~ESv_mnU1;acIUM^#9X+}aH=Mj_vg6J9b}equi-y;w>!2yMI3%v zHN)fgzVQ)Mw#MjFbX=SJ%AyxuO|^j6Lj)&|6_0Q~w0$vPsm$xbvVB#9cnn`4&D$tT0ie<)M1}aeuJmSUgzjYsa_J*^6 zFKV$DBeZxtm)>xRT{hREBA}))ay?_-0w{jbi`^+;aXBrQgi=D?LsQuh^5itZtRR|ejyoswUE!1T){`jrh24>wZFvCBO6YeL%Xknr#owAnUVJFpk9Z@o-~huvKtD<4OFwvQ-T-Tb=p+vFzUagQ6jkRJjQ_m*AA-LAc{9M6=y zjq0?spTSm6*0eMhP!&BD&L_h%!=&0ja-2QH6vGlaJ{%zyF4+}cx)Ebfp%w>C=$-hF z`~;iR+UT#Y#NkcLoIk_aHQ+~+5`wVDWmtsD>&oY3|95Y|>Unb(XRCp3xfie7u4cr* z(h(`iocK0a(}HsWUKnCBc2Bsbu+qbHDeUr$V{);OM4pB9B;x@<^UI9UdNv>7+P#bk zZS!%p)1*t^?VXul)l?nq?T}ohg$5d=Kd#1Ixh;;f6SXmE+=>U$Rdl&GQ0GjhZ{NLh zM;Z7YIxDZf`sdtRE>wJwferl4tC9#h^ZpJqq(AqJd;ZZcnN22rLi8if4>?UqpC&G) zNkvy1&;_Q|FkQ|j7f7ASk5Hc1UwvrYtRTjPt?^a^eJ~<{CdZSZV8f1a^X0n=#@p%5VX{clu#XnvlXeFG~0 zuI2Ie^>P4X`1`^?seJ+czZOm_DusaG9esR!>t%$r>di;YvjZTAz%}WlZ&jcDkCuLA zic(B^LR~FLqI7}Jp5yNe*eYk21NTWd>6RA03r&!gO}%6*WaNOIa3(5LU;kyv-h^~W zul|@^ZS?X}ZFo!!?uOH>ThWz;z@1U;gmD^D%c-^2gbcvg;~(7!ELkY7zlkZg)Ht9X zb}V&eZ+$`RpMaG2%WdodsQ_nlm%FUF62aP2bBebdP%zE{j(k-qvWuWqp%G!JR1@3)+Sr!9FSeMTh0W2V* zth3vPwr28@C&I3r<6v!KgRq`t=>`Tyvwqrswe%4z^@?az@zB|jSe*QY;~q2kxYxd#A5|d z+rZWVN&8MQMj{^ybvnW_92~gGXq7cpO#1jtj{K8)kn++bIi`xZTD%l_m4;Sr@glj6A4oXdy zeg3(&7O(|EpM=x&q~x#?!wkpE&r@1LmMQ?oT;R(xHQT?*Jipn~WnH(FvfR(2r^on* zdZzvmWeH&iBanj%y$j!;p2Lvj`~QYt{ij4HRiYV4B|DtUf1!yYQsEJg^3dB%rw0r@N`(BjMa>_O9B*jN9 zal;(NcydQfaq~G~gwW`I0a0omMGzG}I~;#N@tpA+9G@cG1*v!tJuBDyo}WQKI>@xH z_G=N3VcFj%(Gk&S(Wy&b(KB$k=UKW`S~gCOOp9M_V{x_(QQ7fbqBzPUL<|r=2eT9G z0xkj9DoX(tZ$;J1$129hJx)37{r$GSyxe&L*2xOlQuGsQ*qK{%;E_?fmqI?s_>K7r zq2ukWFAkcT3ZbjXEon5Ca({kjFDdwO+A!^Gj55#LiQ66N*&SG-3ezDf!s+Z+o5Daq|7w32+s`kw^O+uDU_>{=pwgAu?v;6!<0rJ*Zwm@paN0i*+0^H7jF}x_-T??@@0mYQ;J21c`8nrZ~I3`uYW+w@unXRMQ(P{08f!b$BX+Tb((3PSK4Hg zkg>VCI_RN=O`wo}I?;CiZM1-5!*J&Xxqt0&73R5dSBR5IwXKiSG+we*e3@f&!%TAf zPiQ5lJ{mWsRFJ(5coUGI^HO7&nYrrSu9e$G$n+nCXqaN_Q$sPSq$e6AG88vr7Hq|7 z%P*1AGJjvoe@$CD0E|Oz8o)2AgS0iE4RuM4g+trgamn!Nx@wB zJ6@oWvw3w&KyRpvW+R?SK}ik0k{4N1xuN1(&ZX-$)@I#jO$%{P$flVYTfzrpnJ|8- z0s)ZOzCN|9K>xk`r#)cg>w`9RrHTDZj6vrv9JmJb>hj5DQSVG;`s1a7+H(aR!5ldk z=4{hmLZeku=-;MQwNBUcPfd%1B~e>G!}*X2ZM5Y71qcfF^?wHH1n(z;pfk>SdewU| zA`ogGYu_ViM^*5q2rA9P;Vx0q#@*GB4$W$BEEmDvC~AICX94B^EZ+x zQ{POi>(p|0gMk9U`-vcq<_x#2Tbx@Yin0XJsK@C04iQ9B$Xd^f`~42v+gqAER_2iO z7rh`szD8#=ZMlXbatQs7I_`Ma%+o}wu}Nq5y|bP5&bmI%?*CcG8Ih&vdS=R!ybPk2 zbFL{5i!y^41CLvO&|K>;&1VIpVAPIt~a!Pvwu1G5b z5h@u%$l5_4NgAOt3cc~F1EKf#_vLoGy+{(>btv2M%M!enC;@>ainb`pL*lt!_K+6X z&1U;>gSGye9C;kCvcceqQp-7k$YsxtSebcfY_qyaEv@O#(5Y-@pBCK%nk>?5td*g9 z|Lb4>y8P>3|KcbU1VIqpj$6&{*xrjNv7bZJ>+qjVX!S?|P?jjF6-U*Mt3?XEzrUvl zqNo*nFFAy|&FI$g(lNi?Zp-aX0}8DkhbXEch`i2ah$yniq88nvo-y!R#d}@D z5Sb(2kM4P|d;@*1{A@{Xt#R)o5>AssNRtS4bF(s~XvfE0t1XG5p3kP8w%5Rs8e26w zNv+S%AV_^S{~_9FKx>F5>P=0ezx?Gd%isR?x8;vN{^%Y=PGpYD5gb;6n9Vsmn+?lq zNz9O4MD*VmTREq^N6zK{cqL&GIaCND^t=4qD_4_$kMh;@uDuitE#LKcJia;WV!z;3A=FbX>Jve9o}Wo;}vMf{&ifq#i*EMc)@?5cSTJS~6&cb$sOa zZV`8SWrMZX*V4RmGl~B4m%l9k_{Tq%KmPcmI}Q9u%JMXd=QqwAdtz35a3lwIbRa>; z{+##q2%?CfFBFxOS!HJ)c~qlYw1!_|bweuzQ7Ju>=Oo{wOW1mRqSkCGFB{4e;Vys6 zU2Chv40UD7mdbed+*P`m5p%~Uqe$q?eGmoznXZ8&j&bj~xAylRi71jK(UPq9)|UI9 z|NQ4Ktva_lX@Z83An0uIJcx7HeS#Q45b2**7Lk5fSw)eak(F&Uaz3Cg!pJc%L`r#& zB!|jp^p@;c**o6*B4R%hpO)t*H8HH?u>xG{Sh%^+J})_L+r>Cr5(?4xMZ);4_JtkG z*1eWlQS)f7XEmYjW%q(0)(9AC#Vu)Ah%*u^=yPdziL=>z;{3L3OZ%85h;(@wdTtNB zA_>&>43&?S-CdMHRNLM?B6c$W%Vd7mjG>i5WPLBnOkzgS*ty4X>6_cV0>h*2dA5sL z58)ccZI*T#{ocO&PLt?aLNIfUVJ4B>xgdzOZfY)C1cNGqIJdJ*5UqCCA{bECk4F?) zmkz%Ir#8Szq4qc|?)^Y>ynubbKO+E5=f- zSxdF{#+#2(r!}JeKJYS%TJ)gIOd<|BK@h|_122Lg7*y^p^x3HFEUUr6b(h$~&TUyr*82KUb0+FM zNV0alYwn5q>(^U0)OucnBoRRn#EC#hl^_V@sLx;AL|#Tu3qhnm3k3!(-QQZTVBVmNXS~guDmzOG(z9g zB5-Z({_3u0(rK^phpdt@{l7@-sI}b08ymEn9T9Pvb%JXN*Jpyby1!&;6Cn+w+PIq} z(Fz8Z80QdjEO;*x+g{tuXOFlyIoH>{en%Kz5=B1wakTHSQr&y6d4{;i5Jed+BCph} zmmsnccG(zVF$R-@yNGKy+;!?_NP9|MjLK^(&`h{UWt@|T%J7Z3DiH}YJB z2x30FG1GCJ!A8*GCWzS9So%3u){E4$8Rb-4$J<+W7M-vBU)EOCkZx$~UVk@U!)zde z#?bp8vYDAKXGdN8W?h>&J_Ipm-0aQGT7sRLM8P6=X6I|>;DkXFLChDZ9m$F1c@V_h z&a5N?YHX29Y9yTA3?XF+B2JSBIdkv4$sp<&lLCkXxS&r-M?aq5k&_)Cc zwVzc>1X&tQqwRp#WiA?X+7p5xt^})N*@!iV{RS%Mh` zWyIR|O{U9LB$z$x95|XL*VY;MR#uVs{a4M1*`n#h$YWyG5<$!jl0-CA9D9xnK{Pvm zqxB&Of;j&Ag~)^vWVEG8gvzI6_b^M>25B}}$By2US+BjaDfxF#xtXUuVSNW0>z40C z0^B3kfHm}o2;%DYnBe`eYj?9F7;v=E^a|g#PQ;cpVJ~3wcK7$#MaX0vtktpNh=y_0 zxEy&5&bE;DeD)g0HKNs*Tw{zzWE^u%X&<{NHaxR`vPIn68fUc}6Iw_0^+nox)+R_M*1T*c zQML<1i?g(sagQ9aJ&bZ@T-IEej=T`}B$J>y<^GNJ6OmURvE-M3JYVqn~>&%kpjzMui}% zy)Qh12$5f{*VH13%6EKzelCy40}?|XNn{apHAIm-hA6AaA_#j3qNCZwH3IuB{qZgQ z|CvarEqw0Ub!eut{!#by7MqJ}#aSaaj6G7w`(I|Pp3mp {: .agenda} -# Title for your first section +# Get data -Give some background about what the trainees will be doing in the section. -Remember that many people reading your materials will likely be novices, -so make sure to explain all the relevant concepts. -## Title for a subsection -Section and subsection titles will be displayed in the tutorial index on the left side of -the page, so try to make them informative and concise! +## Bioimage data -# Hands-on Sections -Below are a series of hand-on boxes, one for each tool in your workflow file. -Often you may wish to combine several boxes into one or make other adjustments such -as breaking the tutorial into sections, we encourage you to make such changes as you -see fit, this is just a starting point :) +This tutorial will use an image dataset from the [BioImage archive](https://www.ebi.ac.uk/bioimage-archive/). This dataset is specifically prepared for training nuclear segmentation. -Anywhere you find the word "***TODO***", there is something that needs to be changed -depending on the specifics of your tutorial. +The images are saved in the BioImage archive and can be uploaded to the Galaxy server with the corresponding BioImage Archive retrieval tool. -have fun! +![S-BIAD634:IM276 dataset](../../images/voronoi-segmentation/BIAD634_IM276.png "An annotated fluorescence image dataset for training nuclear segmentation methods") -## Get data +> Data upload with Bioimage Archive Tool +> +> 1. Create a new history for this tutorial. +> When you log in for the first time, an empty, unnamed history is created by default. You can simply rename it. +> +> {% snippet faqs/galaxy/histories_create_new.md %} +> +> 2. {% tool [FTP Link for BioImage Archive](toolshed.g2.bx.psu.edu/repos/bgruening/bia_download/bia_download/0.1.0+galaxy0) %} with the following parameters: +> - {% icon param-file %} *"Storage mode"*: `fire` (Storage mode is always fire) +> - *"The path of accession"*: `S-BIAD/634/S-BIAD634` +> > BioImage Archive +> > +> > This tool will upload all the files into your Galaxy history which can be very inconvenient when you have large dataset. +> > In that case, you can delete data files you do not plan to use for your analysis. +> {: .comment} +> +> 3. Rename {% icon galaxy-pencil %} the file `Neuroblastoma_0.tif` to `input_image.tif` +> 4. Check that the datatype +> +> {% snippet faqs/galaxy/datasets_change_datatype.md datatype="datatypes" %} +> +> 5. Add to each database a tag corresponding to `input` +> +> {% snippet faqs/galaxy/datasets_add_tag.md %} +> +> +{: .hands_on} + +## Earth Observation (EO) data -> Data Upload +![Datasets of SH's AI4ER MRes Project](https://edsbook.org/_images/7d3b3ce159046d8da12d413a00c69137e4a073dcf1ee27d7cd4e33af6d93d526.png "a top-down RGB image of forest, captured by drone, aircraft or satellite.") + +> EO Data Upload +> +> 1. Create a new history for this tutorial. +> When you log in for the first time, an empty, unnamed history is created by default. You can simply rename it. +> +> {% snippet faqs/galaxy/histories_create_new.md %} > -> 1. Create a new history for this tutorial > 2. Import the files from [Zenodo]({{ page.zenodo_link }}) or from > the shared data library (`GTN - Material` -> `{{ page.topic_name }}` > -> `{{ page.title }}`): > +> - **Important:** If setting the type to 'Auto-detect', make sure that after upload, the datatype is set to tiff. +> > ``` -> +> https://zenodo.org/records/5494629/files/Sep_2014_RGB_602500_646500.tif > ``` -> ***TODO***: *Add the files by the ones on Zenodo here (if not added)* -> -> ***TODO***: *Remove the useless files (if added)* > > {% snippet faqs/galaxy/datasets_import_via_link.md %} > > {% snippet faqs/galaxy/datasets_import_from_data_library.md %} > -> 3. Rename the datasets +> 3. Rename {% icon galaxy-pencil %} the file `Sep_2014_RGB_602500_646500.tif` to `input_image.tif` > 4. Check that the datatype > > {% snippet faqs/galaxy/datasets_change_datatype.md datatype="datatypes" %} > -> 5. Add to each database a tag corresponding to ... +> 5. Add to each database a tag corresponding to `input` > > {% snippet faqs/galaxy/datasets_add_tag.md %} > {: .hands_on} -# Title of the section usually corresponding to a big step in the analysis - -It comes first a description of the step: some background and some theory. -Some image can be added there to support the theory explanation: - -![Alternative text](../../images/image_name "Legend of the image") - -The idea is to keep the theory description before quite simple to focus more on the practical part. - -***TODO***: *Consider adding a detail box to expand the theory* - -> More details about the theory -> -> But to describe more details, it is possible to use the detail boxes which are expandable -> -{: .details} - -A big step can have several subsections or sub steps: - +# Data preparation ## Sub-step with **Convert image format** -> Task description +> Select channel for Voronoi Segmentation > > 1. {% tool [Convert image format](toolshed.g2.bx.psu.edu/repos/imgteam/bfconvert/ip_convertimage/6.7.0+galaxy3) %} with the following parameters: > - {% icon param-file %} *"Input Image"*: `output` (Input dataset) > - *"Extract series"*: `All series` > - *"Extract timepoint"*: `All timepoints` > - *"Extract channel"*: `Extract channel` +> - *"Channel id"*: `{'id': 2, 'output_name': 'output'}` > - *"Extract z-slice"*: `All z-slices` > - *"Extract range"*: `All images` > - *"Extract crop"*: `Full image` > - *"Tile image"*: `No tiling` > - *"Pyramid image"*: `No Pyramid` > -> ***TODO***: *Check parameter descriptions* -> -> ***TODO***: *Consider adding a comment or tip box* -> -> > short description +> > Why do we need to select a single channel? > > -> > A comment about the tool or something else. This box can also be in the main text +> > Select a single channel from the input image. Note that some tools number channels starting from 1, while others start from 0. > {: .comment} > {: .hands_on} -***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* - -> -> -> 1. Question1? -> 2. Question2? -> -> > -> > -> > 1. Answer for question1 -> > 2. Answer for question2 -> > -> {: .solution} -> -{: .question} - ## Sub-step with **Convert image format** > Task description @@ -182,7 +168,7 @@ A big step can have several subsections or sub steps: > - *"Extract series"*: `All series` > - *"Extract timepoint"*: `All timepoints` > - *"Extract channel"*: `Extract channel` -> - *"Channel id"*: `{'id': 1, 'output_name': 'output'}` +> - *"Channel id"*: `{'id': 2, 'output_name': 'output'}` > - *"Extract z-slice"*: `All z-slices` > - *"Extract range"*: `All images` > - *"Extract crop"*: `Full image` @@ -251,40 +237,6 @@ A big step can have several subsections or sub steps: > {: .question} -## Sub-step with **Convert single-channel to multi-channel image** - -> Task description -> -> 1. {% tool [Convert single-channel to multi-channel image](toolshed.g2.bx.psu.edu/repos/imgteam/repeat_channels/repeat_channels/1.26.4+galaxy0) %} with the following parameters: -> - {% icon param-file %} *"Input image (single-channel)"*: `output` (output of **Convert image format** {% icon tool %}) -> -> ***TODO***: *Check parameter descriptions* -> -> ***TODO***: *Consider adding a comment or tip box* -> -> > short description -> > -> > A comment about the tool or something else. This box can also be in the main text -> {: .comment} -> -{: .hands_on} - -***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* - -> -> -> 1. Question1? -> 2. Question2? -> -> > -> > -> > 1. Answer for question1 -> > 2. Answer for question2 -> > -> {: .solution} -> -{: .question} - ## Sub-step with **Filter 2-D image** > Task description @@ -361,79 +313,7 @@ A big step can have several subsections or sub steps: > 1. {% tool [Threshold image](toolshed.g2.bx.psu.edu/repos/imgteam/2d_auto_threshold/ip_threshold/0.18.1+galaxy2) %} with the following parameters: > - {% icon param-file %} *"Input image"*: `output` (output of **Filter 2-D image** {% icon tool %}) > - *"Thresholding method"*: `Manual` -> - *"Threshold value"*: `{'id': 2, 'output_name': 'output'}` -> -> ***TODO***: *Check parameter descriptions* -> -> ***TODO***: *Consider adding a comment or tip box* -> -> > short description -> > -> > A comment about the tool or something else. This box can also be in the main text -> {: .comment} -> -{: .hands_on} - -***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* - -> -> -> 1. Question1? -> 2. Question2? -> -> > -> > -> > 1. Answer for question1 -> > 2. Answer for question2 -> > -> {: .solution} -> -{: .question} - -## Sub-step with **Count objects in label map** - -> Task description -> -> 1. {% tool [Count objects in label map](toolshed.g2.bx.psu.edu/repos/imgteam/count_objects/ip_count_objects/0.0.5-2) %} with the following parameters: -> - {% icon param-file %} *"Source file"*: `result` (output of **Compute Voronoi tessellation** {% icon tool %}) -> -> ***TODO***: *Check parameter descriptions* -> -> ***TODO***: *Consider adding a comment or tip box* -> -> > short description -> > -> > A comment about the tool or something else. This box can also be in the main text -> {: .comment} -> -{: .hands_on} - -***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* - -> -> -> 1. Question1? -> 2. Question2? -> -> > -> > -> > 1. Answer for question1 -> > 2. Answer for question2 -> > -> {: .solution} -> -{: .question} - -## Sub-step with **Extract image features** - -> Task description -> -> 1. {% tool [Extract image features](toolshed.g2.bx.psu.edu/repos/imgteam/2d_feature_extraction/ip_2d_feature_extraction/0.18.1+galaxy0) %} with the following parameters: -> - {% icon param-file %} *"Label map"*: `result` (output of **Compute Voronoi tessellation** {% icon tool %}) -> - *"Use the intensity image to compute additional features"*: `Use intensity image` -> - {% icon param-file %} *"Intensity image"*: `output` (output of **Convert image format** {% icon tool %}) -> - *"Select features to compute"*: `Select features` -> - *"Available features"*: `` +> - *"Threshold value"*: `{'id': 3, 'output_name': 'output'}` > > ***TODO***: *Check parameter descriptions* > @@ -540,42 +420,6 @@ A big step can have several subsections or sub steps: > {: .question} -## Sub-step with **Overlay images** - -> Task description -> -> 1. {% tool [Overlay images](toolshed.g2.bx.psu.edu/repos/imgteam/overlay_images/ip_overlay_images/0.0.4+galaxy1) %} with the following parameters: -> - *"Type of the overlay"*: `Linear blending` -> - {% icon param-file %} *"Image #1"*: `output` (output of **Convert single-channel to multi-channel image** {% icon tool %}) -> - {% icon param-file %} *"Image #2"*: `output` (output of **Colorize label map** {% icon tool %}) -> -> ***TODO***: *Check parameter descriptions* -> -> ***TODO***: *Consider adding a comment or tip box* -> -> > short description -> > -> > A comment about the tool or something else. This box can also be in the main text -> {: .comment} -> -{: .hands_on} - -***TODO***: *Consider adding a question to test the learners understanding of the previous exercise* - -> -> -> 1. Question1? -> 2. Question2? -> -> > -> > -> > 1. Answer for question1 -> > 2. Answer for question2 -> > -> {: .solution} -> -{: .question} - ## Re-arrange @@ -588,3 +432,5 @@ Consider merging some hands-on boxes to have a meaningful flow of the analyses* Sum up the tutorial and the key takeaways here. We encourage adding an overview image of the pipeline used. + +