From 95df0a8e4ea93c19e8c713b047d1cb316df1a8e6 Mon Sep 17 00:00:00 2001 From: nf-core-bot Date: Tue, 4 Oct 2022 21:52:56 +0000 Subject: [PATCH 001/201] Template update for nf-core/tools version 2.6 --- .github/workflows/awsfulltest.yml | 4 ++ .github/workflows/awstest.yml | 4 ++ .prettierignore | 1 + CITATION.cff | 8 +-- LICENSE | 2 +- README.md | 2 +- assets/adaptivecard.json | 67 +++++++++++++++++++ assets/methods_description_template.yml | 25 +++++++ assets/multiqc_config.yml | 6 +- docs/usage.md | 8 +++ lib/NfcoreTemplate.groovy | 55 +++++++++++++++ lib/Utils.groovy | 21 ++++-- lib/WorkflowChipseq.groovy | 19 ++++++ main.nf | 3 +- modules.json | 27 ++++---- .../custom/dumpsoftwareversions/main.nf | 8 +-- .../custom/dumpsoftwareversions/meta.yml | 0 .../templates/dumpsoftwareversions.py | 0 modules/nf-core/{modules => }/fastqc/main.nf | 12 ++++ modules/nf-core/{modules => }/fastqc/meta.yml | 0 modules/nf-core/modules/multiqc/main.nf | 31 --------- modules/nf-core/multiqc/main.nf | 53 +++++++++++++++ .../nf-core/{modules => }/multiqc/meta.yml | 15 +++++ nextflow.config | 7 +- nextflow_schema.json | 18 +++++ workflows/chipseq.nf | 26 ++++--- 26 files changed, 348 insertions(+), 74 deletions(-) create mode 100644 assets/adaptivecard.json create mode 100644 assets/methods_description_template.yml mode change 100755 => 100644 lib/Utils.groovy rename modules/nf-core/{modules => }/custom/dumpsoftwareversions/main.nf (79%) rename modules/nf-core/{modules => }/custom/dumpsoftwareversions/meta.yml (100%) rename modules/nf-core/{modules => }/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py (100%) rename modules/nf-core/{modules => }/fastqc/main.nf (85%) rename modules/nf-core/{modules => }/fastqc/meta.yml (100%) delete mode 100644 modules/nf-core/modules/multiqc/main.nf create mode 100644 modules/nf-core/multiqc/main.nf rename modules/nf-core/{modules => }/multiqc/meta.yml (73%) diff --git a/.github/workflows/awsfulltest.yml b/.github/workflows/awsfulltest.yml index c6f0c9c6..d54a33a5 100644 --- a/.github/workflows/awsfulltest.yml +++ b/.github/workflows/awsfulltest.yml @@ -28,3 +28,7 @@ jobs: "outdir": "s3://${{ secrets.AWS_S3_BUCKET }}/chipseq/results-${{ github.sha }}" } profiles: test_full,aws_tower + - uses: actions/upload-artifact@v3 + with: + name: Tower debug log file + path: tower_action_*.log diff --git a/.github/workflows/awstest.yml b/.github/workflows/awstest.yml index 73640cc6..ecd16998 100644 --- a/.github/workflows/awstest.yml +++ b/.github/workflows/awstest.yml @@ -23,3 +23,7 @@ jobs: "outdir": "s3://${{ secrets.AWS_S3_BUCKET }}/chipseq/results-test-${{ github.sha }}" } profiles: test,aws_tower + - uses: actions/upload-artifact@v3 + with: + name: Tower debug log file + path: tower_action_*.log diff --git a/.prettierignore b/.prettierignore index d0e7ae58..eb74a574 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,4 +1,5 @@ email_template.html +adaptivecard.json .nextflow* work/ data/ diff --git a/CITATION.cff b/CITATION.cff index 4533e2f2..017666c0 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -13,8 +13,8 @@ authors: given-names: Johannes - family-names: Wilm given-names: Andreas - - family-names: Ulysse Garcia - given-names: Maxime + - family-names: Garcia + given-names: Maxime Ulysse - family-names: Di Tommaso given-names: Paolo - family-names: Nahnsen @@ -39,8 +39,8 @@ prefered-citation: given-names: Johannes - family-names: Wilm given-names: Andreas - - family-names: Ulysse Garcia - given-names: Maxime + - family-names: Garcia + given-names: Maxime Ulysse - family-names: Di Tommaso given-names: Paolo - family-names: Nahnsen diff --git a/LICENSE b/LICENSE index e6309f57..9ddb87a2 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) Philip Ewels, Jose Espinosa-Carrasco, Harshil Patel +Copyright (c) Espinosa-Carrasco J, Patel H, Wang C, Ewels P Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 095d129c..0b1f436d 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,7 @@ The nf-core/chipseq pipeline comes with documentation about the pipeline [usage] ## Credits -nf-core/chipseq was originally written by Philip Ewels, Jose Espinosa-Carrasco, Harshil Patel. +nf-core/chipseq was originally written by Espinosa-Carrasco J, Patel H, Wang C, Ewels P. We thank the following people for their extensive assistance in the development of this pipeline: diff --git a/assets/adaptivecard.json b/assets/adaptivecard.json new file mode 100644 index 00000000..8c6fb5a7 --- /dev/null +++ b/assets/adaptivecard.json @@ -0,0 +1,67 @@ +{ + "type": "message", + "attachments": [ + { + "contentType": "application/vnd.microsoft.card.adaptive", + "contentUrl": null, + "content": { + "\$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "msteams": { + "width": "Full" + }, + "type": "AdaptiveCard", + "version": "1.2", + "body": [ + { + "type": "TextBlock", + "size": "Large", + "weight": "Bolder", + "color": "<% if (success) { %>Good<% } else { %>Attention<%} %>", + "text": "nf-core/chipseq v${version} - ${runName}", + "wrap": true + }, + { + "type": "TextBlock", + "spacing": "None", + "text": "Completed at ${dateComplete} (duration: ${duration})", + "isSubtle": true, + "wrap": true + }, + { + "type": "TextBlock", + "text": "<% if (success) { %>Pipeline completed successfully!<% } else { %>Pipeline completed with errors. The full error message was: ${errorReport}.<% } %>", + "wrap": true + }, + { + "type": "TextBlock", + "text": "The command used to launch the workflow was as follows:", + "wrap": true + }, + { + "type": "TextBlock", + "text": "${commandLine}", + "isSubtle": true, + "wrap": true + } + ], + "actions": [ + { + "type": "Action.ShowCard", + "title": "Pipeline Configuration", + "card": { + "type": "AdaptiveCard", + "\$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "body": [ + { + "type": "FactSet", + "facts": [<% out << summary.collect{ k,v -> "{\"title\": \"$k\", \"value\" : \"$v\"}"}.join(",\n") %> + ] + } + ] + } + } + ] + } + } + ] +} diff --git a/assets/methods_description_template.yml b/assets/methods_description_template.yml new file mode 100644 index 00000000..a30b1eb6 --- /dev/null +++ b/assets/methods_description_template.yml @@ -0,0 +1,25 @@ +id: "nf-core-chipseq-methods-description" +description: "Suggested text and references to use when describing pipeline usage within the methods section of a publication." +section_name: "nf-core/chipseq Methods Description" +section_href: "https://github.com/nf-core/chipseq" +plot_type: "html" +## TODO nf-core: Update the HTML below to your prefered methods description, e.g. add publication citation for this pipeline +## You inject any metadata in the Nextflow '${workflow}' object +data: | +

Methods

+

Data was processed using nf-core/chipseq v${workflow.manifest.version} ${doi_text} of the nf-core collection of workflows (Ewels et al., 2020).

+

The pipeline was executed with Nextflow v${workflow.nextflow.version} (Di Tommaso et al., 2017) with the following command:

+
${workflow.commandLine}
+

References

+ +
+
Notes:
+ +
diff --git a/assets/multiqc_config.yml b/assets/multiqc_config.yml index 5b7d1652..46d7ec2d 100644 --- a/assets/multiqc_config.yml +++ b/assets/multiqc_config.yml @@ -3,9 +3,11 @@ report_comment: > analysis pipeline. For information about how to interpret these results, please see the documentation. report_section_order: - software_versions: + "nf-core-chipseq-methods-description": order: -1000 - "nf-core-chipseq-summary": + software_versions: order: -1001 + "nf-core-chipseq-summary": + order: -1002 export_plots: true diff --git a/docs/usage.md b/docs/usage.md index 997dfd2c..776325ae 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -237,6 +237,14 @@ See the main [Nextflow documentation](https://www.nextflow.io/docs/latest/config If you have any questions or issues please send us a message on [Slack](https://nf-co.re/join/slack) on the [`#configs` channel](https://nfcore.slack.com/channels/configs). +## Azure Resource Requests + +To be used with the `azurebatch` profile by specifying the `-profile azurebatch`. +We recommend providing a compute `params.vm_type` of `Standard_D16_v3` VMs by default but these options can be changed if required. + +Note that the choice of VM size depends on your quota and the overall workload during the analysis. +For a thorough list, please refer the [Azure Sizes for virtual machines in Azure](https://docs.microsoft.com/en-us/azure/virtual-machines/sizes). + ## Running in the background Nextflow handles job submissions and supervises the running jobs. The Nextflow process must run until the pipeline is finished. diff --git a/lib/NfcoreTemplate.groovy b/lib/NfcoreTemplate.groovy index 2fc0a9b9..27feb009 100755 --- a/lib/NfcoreTemplate.groovy +++ b/lib/NfcoreTemplate.groovy @@ -145,6 +145,61 @@ class NfcoreTemplate { output_tf.withWriter { w -> w << email_txt } } + // + // Construct and send adaptive card + // https://adaptivecards.io + // + public static void adaptivecard(workflow, params, summary_params, projectDir, log) { + def hook_url = params.hook_url + + def summary = [:] + for (group in summary_params.keySet()) { + summary << summary_params[group] + } + + def misc_fields = [:] + misc_fields['start'] = workflow.start + misc_fields['complete'] = workflow.complete + misc_fields['scriptfile'] = workflow.scriptFile + misc_fields['scriptid'] = workflow.scriptId + if (workflow.repository) misc_fields['repository'] = workflow.repository + if (workflow.commitId) misc_fields['commitid'] = workflow.commitId + if (workflow.revision) misc_fields['revision'] = workflow.revision + misc_fields['nxf_version'] = workflow.nextflow.version + misc_fields['nxf_build'] = workflow.nextflow.build + misc_fields['nxf_timestamp'] = workflow.nextflow.timestamp + + def msg_fields = [:] + msg_fields['version'] = workflow.manifest.version + msg_fields['runName'] = workflow.runName + msg_fields['success'] = workflow.success + msg_fields['dateComplete'] = workflow.complete + msg_fields['duration'] = workflow.duration + msg_fields['exitStatus'] = workflow.exitStatus + msg_fields['errorMessage'] = (workflow.errorMessage ?: 'None') + msg_fields['errorReport'] = (workflow.errorReport ?: 'None') + msg_fields['commandLine'] = workflow.commandLine + msg_fields['projectDir'] = workflow.projectDir + msg_fields['summary'] = summary << misc_fields + + // Render the JSON template + def engine = new groovy.text.GStringTemplateEngine() + def hf = new File("$projectDir/assets/adaptivecard.json") + def json_template = engine.createTemplate(hf).make(msg_fields) + def json_message = json_template.toString() + + // POST + def post = new URL(hook_url).openConnection(); + post.setRequestMethod("POST") + post.setDoOutput(true) + post.setRequestProperty("Content-Type", "application/json") + post.getOutputStream().write(json_message.getBytes("UTF-8")); + def postRC = post.getResponseCode(); + if (! postRC.equals(200)) { + log.warn(post.getErrorStream().getText()); + } + } + // // Print pipeline summary on completion // diff --git a/lib/Utils.groovy b/lib/Utils.groovy old mode 100755 new mode 100644 index 28567bd7..8d030f4e --- a/lib/Utils.groovy +++ b/lib/Utils.groovy @@ -21,19 +21,26 @@ class Utils { } // Check that all channels are present - def required_channels = ['conda-forge', 'bioconda', 'defaults'] - def conda_check_failed = !required_channels.every { ch -> ch in channels } + // This channel list is ordered by required channel priority. + def required_channels_in_order = ['conda-forge', 'bioconda', 'defaults'] + def channels_missing = ((required_channels_in_order as Set) - (channels as Set)) as Boolean // Check that they are in the right order - conda_check_failed |= !(channels.indexOf('conda-forge') < channels.indexOf('bioconda')) - conda_check_failed |= !(channels.indexOf('bioconda') < channels.indexOf('defaults')) + def channel_priority_violation = false + def n = required_channels_in_order.size() + for (int i = 0; i < n - 1; i++) { + channel_priority_violation |= !(channels.indexOf(required_channels_in_order[i]) < channels.indexOf(required_channels_in_order[i+1])) + } - if (conda_check_failed) { + if (channels_missing | channel_priority_violation) { log.warn "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + " There is a problem with your Conda configuration!\n\n" + " You will need to set-up the conda-forge and bioconda channels correctly.\n" + - " Please refer to https://bioconda.github.io/user/install.html#set-up-channels\n" + - " NB: The order of the channels matters!\n" + + " Please refer to https://bioconda.github.io/\n" + + " The observed channel order is \n" + + " ${channels}\n" + + " but the following channel order is required:\n" + + " ${required_channels_in_order}\n" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" } } diff --git a/lib/WorkflowChipseq.groovy b/lib/WorkflowChipseq.groovy index a5952af0..b85fcd58 100755 --- a/lib/WorkflowChipseq.groovy +++ b/lib/WorkflowChipseq.groovy @@ -2,6 +2,8 @@ // This file holds several functions specific to the workflow/chipseq.nf in the nf-core/chipseq pipeline // +import groovy.text.SimpleTemplateEngine + class WorkflowChipseq { // @@ -42,6 +44,23 @@ class WorkflowChipseq { yaml_file_text += "data: |\n" yaml_file_text += "${summary_section}" return yaml_file_text + } + + public static String methodsDescriptionText(run_workflow, mqc_methods_yaml) { + // Convert to a named map so can be used as with familar NXF ${workflow} variable syntax in the MultiQC YML file + def meta = [:] + meta.workflow = run_workflow.toMap() + meta["manifest_map"] = run_workflow.manifest.toMap() + + meta["doi_text"] = meta.manifest_map.doi ? "(doi: ${meta.manifest_map.doi})" : "" + meta["nodoi_text"] = meta.manifest_map.doi ? "": "
  • If available, make sure to update the text to include the Zenodo DOI of version of the pipeline used.
  • " + + def methods_text = mqc_methods_yaml.text + + def engine = new SimpleTemplateEngine() + def description_html = engine.createTemplate(methods_text).make(meta) + + return description_html }// // Exit pipeline if incorrect --genome key provided // diff --git a/main.nf b/main.nf index d6adc851..06d6e411 100644 --- a/main.nf +++ b/main.nf @@ -4,7 +4,8 @@ nf-core/chipseq ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Github : https://github.com/nf-core/chipseq -Website: https://nf-co.re/chipseq + + Website: https://nf-co.re/chipseq Slack : https://nfcore.slack.com/channels/chipseq ---------------------------------------------------------------------------------------- */ diff --git a/modules.json b/modules.json index db838714..cfa6d32f 100644 --- a/modules.json +++ b/modules.json @@ -2,20 +2,21 @@ "name": "nf-core/chipseq", "homePage": "https://github.com/nf-core/chipseq", "repos": { - "nf-core/modules": { - "git_url": "https://github.com/nf-core/modules.git", + "https://github.com/nf-core/modules.git": { "modules": { - "custom/dumpsoftwareversions": { - "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d", - "branch": "master" - }, - "fastqc": { - "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d", - "branch": "master" - }, - "multiqc": { - "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d", - "branch": "master" + "nf-core": { + "custom/dumpsoftwareversions": { + "branch": "master", + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + }, + "fastqc": { + "branch": "master", + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + }, + "multiqc": { + "branch": "master", + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + } } } } diff --git a/modules/nf-core/modules/custom/dumpsoftwareversions/main.nf b/modules/nf-core/custom/dumpsoftwareversions/main.nf similarity index 79% rename from modules/nf-core/modules/custom/dumpsoftwareversions/main.nf rename to modules/nf-core/custom/dumpsoftwareversions/main.nf index 327d5100..cebb6e05 100644 --- a/modules/nf-core/modules/custom/dumpsoftwareversions/main.nf +++ b/modules/nf-core/custom/dumpsoftwareversions/main.nf @@ -1,11 +1,11 @@ process CUSTOM_DUMPSOFTWAREVERSIONS { - label 'process_low' + label 'process_single' // Requires `pyyaml` which does not have a dedicated container but is in the MultiQC container - conda (params.enable_conda ? "bioconda::multiqc=1.11" : null) + conda (params.enable_conda ? 'bioconda::multiqc=1.13' : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/multiqc:1.11--pyhdfd78af_0' : - 'quay.io/biocontainers/multiqc:1.11--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/multiqc:1.13--pyhdfd78af_0' : + 'quay.io/biocontainers/multiqc:1.13--pyhdfd78af_0' }" input: path versions diff --git a/modules/nf-core/modules/custom/dumpsoftwareversions/meta.yml b/modules/nf-core/custom/dumpsoftwareversions/meta.yml similarity index 100% rename from modules/nf-core/modules/custom/dumpsoftwareversions/meta.yml rename to modules/nf-core/custom/dumpsoftwareversions/meta.yml diff --git a/modules/nf-core/modules/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py b/modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py similarity index 100% rename from modules/nf-core/modules/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py rename to modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py diff --git a/modules/nf-core/modules/fastqc/main.nf b/modules/nf-core/fastqc/main.nf similarity index 85% rename from modules/nf-core/modules/fastqc/main.nf rename to modules/nf-core/fastqc/main.nf index ed6b8c50..05730368 100644 --- a/modules/nf-core/modules/fastqc/main.nf +++ b/modules/nf-core/fastqc/main.nf @@ -44,4 +44,16 @@ process FASTQC { END_VERSIONS """ } + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.html + touch ${prefix}.zip + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + fastqc: \$( fastqc --version | sed -e "s/FastQC v//g" ) + END_VERSIONS + """ } diff --git a/modules/nf-core/modules/fastqc/meta.yml b/modules/nf-core/fastqc/meta.yml similarity index 100% rename from modules/nf-core/modules/fastqc/meta.yml rename to modules/nf-core/fastqc/meta.yml diff --git a/modules/nf-core/modules/multiqc/main.nf b/modules/nf-core/modules/multiqc/main.nf deleted file mode 100644 index 1264aac1..00000000 --- a/modules/nf-core/modules/multiqc/main.nf +++ /dev/null @@ -1,31 +0,0 @@ -process MULTIQC { - label 'process_medium' - - conda (params.enable_conda ? 'bioconda::multiqc=1.12' : null) - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/multiqc:1.12--pyhdfd78af_0' : - 'quay.io/biocontainers/multiqc:1.12--pyhdfd78af_0' }" - - input: - path multiqc_files - - output: - path "*multiqc_report.html", emit: report - path "*_data" , emit: data - path "*_plots" , optional:true, emit: plots - path "versions.yml" , emit: versions - - when: - task.ext.when == null || task.ext.when - - script: - def args = task.ext.args ?: '' - """ - multiqc -f $args . - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - multiqc: \$( multiqc --version | sed -e "s/multiqc, version //g" ) - END_VERSIONS - """ -} diff --git a/modules/nf-core/multiqc/main.nf b/modules/nf-core/multiqc/main.nf new file mode 100644 index 00000000..a8159a57 --- /dev/null +++ b/modules/nf-core/multiqc/main.nf @@ -0,0 +1,53 @@ +process MULTIQC { + label 'process_single' + + conda (params.enable_conda ? 'bioconda::multiqc=1.13' : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/multiqc:1.13--pyhdfd78af_0' : + 'quay.io/biocontainers/multiqc:1.13--pyhdfd78af_0' }" + + input: + path multiqc_files, stageAs: "?/*" + path(multiqc_config) + path(extra_multiqc_config) + path(multiqc_logo) + + output: + path "*multiqc_report.html", emit: report + path "*_data" , emit: data + path "*_plots" , optional:true, emit: plots + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def config = multiqc_config ? "--config $multiqc_config" : '' + def extra_config = extra_multiqc_config ? "--config $extra_multiqc_config" : '' + """ + multiqc \\ + --force \\ + $args \\ + $config \\ + $extra_config \\ + . + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + multiqc: \$( multiqc --version | sed -e "s/multiqc, version //g" ) + END_VERSIONS + """ + + stub: + """ + touch multiqc_data + touch multiqc_plots + touch multiqc_report.html + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + multiqc: \$( multiqc --version | sed -e "s/multiqc, version //g" ) + END_VERSIONS + """ +} diff --git a/modules/nf-core/modules/multiqc/meta.yml b/modules/nf-core/multiqc/meta.yml similarity index 73% rename from modules/nf-core/modules/multiqc/meta.yml rename to modules/nf-core/multiqc/meta.yml index 6fa891ef..ebc29b27 100644 --- a/modules/nf-core/modules/multiqc/meta.yml +++ b/modules/nf-core/multiqc/meta.yml @@ -12,11 +12,25 @@ tools: homepage: https://multiqc.info/ documentation: https://multiqc.info/docs/ licence: ["GPL-3.0-or-later"] + input: - multiqc_files: type: file description: | List of reports / files recognised by MultiQC, for example the html and zip output of FastQC + - multiqc_config: + type: file + description: Optional config yml for MultiQC + pattern: "*.{yml,yaml}" + - extra_multiqc_config: + type: file + description: Second optional config yml for MultiQC. Will override common sections in multiqc_config. + pattern: "*.{yml,yaml}" + - multiqc_logo: + type: file + description: Optional logo file for MultiQC + pattern: "*.{png}" + output: - report: type: file @@ -38,3 +52,4 @@ authors: - "@abhi18av" - "@bunop" - "@drpatelh" + - "@jfy133" diff --git a/nextflow.config b/nextflow.config index 08da317e..fa8bfa21 100644 --- a/nextflow.config +++ b/nextflow.config @@ -21,7 +21,9 @@ params { // MultiQC options multiqc_config = null multiqc_title = null + multiqc_logo = null max_multiqc_email_size = '25.MB' + multiqc_methods_description = null // Boilerplate options outdir = null @@ -31,6 +33,7 @@ params { email_on_fail = null plaintext_email = false monochrome_logs = false + hook_url = null help = false validate_params = true show_hidden_params = false @@ -74,7 +77,6 @@ try { // } - profiles { debug { process.beforeScript = 'echo $HOSTNAME' } conda { @@ -183,12 +185,13 @@ dag { manifest { name = 'nf-core/chipseq' - author = 'Philip Ewels, Jose Espinosa-Carrasco, Harshil Patel' + author = 'Espinosa-Carrasco J, Patel H, Wang C, Ewels P' homePage = 'https://github.com/nf-core/chipseq' description = 'ChIP-seq peak-calling and differential analysis pipeline.' mainScript = 'main.nf' nextflowVersion = '!>=21.10.3' version = '2.0.0' + doi = '' } // Load modules.config for DSL2 module specific options diff --git a/nextflow_schema.json b/nextflow_schema.json index 8080b723..dd7c26cf 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -213,12 +213,30 @@ "fa_icon": "fas fa-palette", "hidden": true }, + "hook_url": { + "type": "string", + "description": "Incoming hook URL for messaging service", + "fa_icon": "fas fa-people-group", + "help_text": "Incoming hook URL for messaging service. Currently, only MS Teams is supported.", + "hidden": true + }, "multiqc_config": { "type": "string", "description": "Custom config file to supply to MultiQC.", "fa_icon": "fas fa-cog", "hidden": true }, + "multiqc_logo": { + "type": "string", + "description": "Custom logo file to supply to MultiQC. File name must also be set in the MultiQC config file", + "fa_icon": "fas fa-image", + "hidden": true + }, + "multiqc_methods_description": { + "type": "string", + "description": "Custom MultiQC yaml file containing HTML including a methods description.", + "fa_icon": "fas fa-cog" + }, "tracedir": { "type": "string", "description": "Directory to keep pipeline Nextflow logs and reports.", diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index ea403618..a39a34d2 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -23,8 +23,10 @@ if (params.input) { ch_input = file(params.input) } else { exit 1, 'Input sample ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -ch_multiqc_config = file("$projectDir/assets/multiqc_config.yml", checkIfExists: true) -ch_multiqc_custom_config = params.multiqc_config ? Channel.fromPath(params.multiqc_config) : Channel.empty() +ch_multiqc_config = Channel.fromPath("$projectDir/assets/multiqc_config.yml", checkIfExists: true) +ch_multiqc_custom_config = params.multiqc_config ? Channel.fromPath( params.multiqc_config, checkIfExists: true ) : Channel.empty() +ch_multiqc_logo = params.multiqc_logo ? Channel.fromPath( params.multiqc_logo, checkIfExists: true ) : Channel.empty() +ch_multiqc_custom_methods_description = params.multiqc_methods_description ? file(params.multiqc_methods_description, checkIfExists: true) : file("$projectDir/assets/methods_description_template.yml", checkIfExists: true) /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -46,9 +48,9 @@ include { INPUT_CHECK } from '../subworkflows/local/input_check' // // MODULE: Installed directly from nf-core/modules // -include { FASTQC } from '../modules/nf-core/modules/fastqc/main' -include { MULTIQC } from '../modules/nf-core/modules/multiqc/main' -include { CUSTOM_DUMPSOFTWAREVERSIONS } from '../modules/nf-core/modules/custom/dumpsoftwareversions/main' +include { FASTQC } from '../modules/nf-core/fastqc/main' +include { MULTIQC } from '../modules/nf-core/multiqc/main' +include { CUSTOM_DUMPSOFTWAREVERSIONS } from '../modules/nf-core/custom/dumpsoftwareversions/main' /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -89,15 +91,20 @@ workflow CHIPSEQ { workflow_summary = WorkflowChipseq.paramsSummaryMultiqc(workflow, summary_params) ch_workflow_summary = Channel.value(workflow_summary) + methods_description = WorkflowChipseq.methodsDescriptionText(workflow, ch_multiqc_custom_methods_description) + ch_methods_description = Channel.value(methods_description) + ch_multiqc_files = Channel.empty() - ch_multiqc_files = ch_multiqc_files.mix(Channel.from(ch_multiqc_config)) - ch_multiqc_files = ch_multiqc_files.mix(ch_multiqc_custom_config.collect().ifEmpty([])) ch_multiqc_files = ch_multiqc_files.mix(ch_workflow_summary.collectFile(name: 'workflow_summary_mqc.yaml')) + ch_multiqc_files = ch_multiqc_files.mix(ch_methods_description.collectFile(name: 'methods_description_mqc.yaml')) ch_multiqc_files = ch_multiqc_files.mix(CUSTOM_DUMPSOFTWAREVERSIONS.out.mqc_yml.collect()) ch_multiqc_files = ch_multiqc_files.mix(FASTQC.out.zip.collect{it[1]}.ifEmpty([])) MULTIQC ( - ch_multiqc_files.collect() + ch_multiqc_files.collect(), + ch_multiqc_config.collect().ifEmpty([]), + ch_multiqc_custom_config.collect().ifEmpty([]), + ch_multiqc_logo.collect().ifEmpty([]) ) multiqc_report = MULTIQC.out.report.toList() ch_versions = ch_versions.mix(MULTIQC.out.versions) @@ -114,6 +121,9 @@ workflow.onComplete { NfcoreTemplate.email(workflow, params, summary_params, projectDir, log, multiqc_report) } NfcoreTemplate.summary(workflow, params, log) + if (params.hook_url) { + NfcoreTemplate.adaptivecard(workflow, params, summary_params, projectDir, log) + } } /* From f8b2f3c013c78c812b13f211eebfe18474ce221f Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 5 Oct 2022 15:03:11 +0200 Subject: [PATCH 002/201] Bump pipeline version to 2.1.0dev --- CHANGELOG.md | 4 ++++ nextflow.config | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ea9b4606..de7b178f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [Unpublished Version / DEV] + +### Enhancements & fixes + ## [[2.0.0](https://github.com/nf-core/chipseq/releases/tag/2.0.0)] - 2022-10-03 ### Enhancements & fixes diff --git a/nextflow.config b/nextflow.config index e7c2b71d..da798582 100644 --- a/nextflow.config +++ b/nextflow.config @@ -232,7 +232,7 @@ manifest { description = 'ChIP-seq peak-calling and differential analysis pipeline.' mainScript = 'main.nf' nextflowVersion = '!>=21.10.3' - version = '2.0.0' + version = '2.1.0dev' } // Load modules.config for DSL2 module specific options From 688be0a143c454e0d18e95d826acaf394f5b3dfa Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 5 Oct 2022 15:07:16 +0200 Subject: [PATCH 003/201] Run nf-core modules update --- modules.json | 259 +++++++++--------- .../{modules => }/bowtie2/align/main.nf | 0 .../{modules => }/bowtie2/align/meta.yml | 0 .../{modules => }/bowtie2/build/main.nf | 0 .../{modules => }/bowtie2/build/meta.yml | 0 .../nf-core/{modules => }/bwa/index/main.nf | 0 .../nf-core/{modules => }/bwa/index/meta.yml | 0 modules/nf-core/{modules => }/bwa/mem/main.nf | 0 .../nf-core/{modules => }/bwa/mem/meta.yml | 0 .../{modules => }/chromap/chromap/main.nf | 0 .../{modules => }/chromap/chromap/meta.yml | 0 .../{modules => }/chromap/index/main.nf | 0 .../{modules => }/chromap/index/meta.yml | 0 .../custom/dumpsoftwareversions/main.nf | 0 .../custom/dumpsoftwareversions/meta.yml | 0 .../templates/dumpsoftwareversions.py | 0 .../custom/getchromsizes/main.nf | 0 .../custom/getchromsizes/meta.yml | 0 .../deeptools/computematrix/main.nf | 0 .../deeptools/computematrix/meta.yml | 0 .../deeptools/plotfingerprint/main.nf | 0 .../deeptools/plotfingerprint/meta.yml | 0 .../deeptools/plotheatmap/main.nf | 0 .../deeptools/plotheatmap/meta.yml | 0 .../deeptools/plotprofile/main.nf | 0 .../deeptools/plotprofile/meta.yml | 0 modules/nf-core/{modules => }/fastqc/main.nf | 0 modules/nf-core/{modules => }/fastqc/meta.yml | 0 modules/nf-core/{modules => }/gffread/main.nf | 0 .../nf-core/{modules => }/gffread/meta.yml | 0 modules/nf-core/{modules => }/gunzip/main.nf | 0 modules/nf-core/{modules => }/gunzip/meta.yml | 0 .../{modules => }/homer/annotatepeaks/main.nf | 0 .../homer/annotatepeaks/meta.yml | 0 .../{modules => }/khmer/uniquekmers/main.nf | 0 .../{modules => }/khmer/uniquekmers/meta.yml | 0 .../{modules => }/macs2/callpeak/main.nf | 0 .../{modules => }/macs2/callpeak/meta.yml | 0 .../phantompeakqualtools/main.nf | 0 .../phantompeakqualtools/meta.yml | 0 .../picard/collectmultiplemetrics/main.nf | 0 .../picard/collectmultiplemetrics/meta.yml | 0 .../picard/markduplicates/main.nf | 0 .../picard/markduplicates/meta.yml | 0 .../picard/mergesamfiles/main.nf | 0 .../picard/mergesamfiles/meta.yml | 0 .../{modules => }/preseq/lcextrap/main.nf | 0 .../{modules => }/preseq/lcextrap/meta.yml | 0 .../{modules => }/samtools/flagstat/main.nf | 0 .../{modules => }/samtools/flagstat/meta.yml | 0 .../{modules => }/samtools/idxstats/main.nf | 0 .../{modules => }/samtools/idxstats/meta.yml | 0 .../{modules => }/samtools/index/main.nf | 0 .../{modules => }/samtools/index/meta.yml | 0 .../{modules => }/samtools/sort/main.nf | 0 .../{modules => }/samtools/sort/meta.yml | 0 .../{modules => }/samtools/stats/main.nf | 0 .../{modules => }/samtools/stats/meta.yml | 0 .../subread/featurecounts/main.nf | 0 .../subread/featurecounts/meta.yml | 0 .../nf-core/{modules => }/trimgalore/main.nf | 0 .../nf-core/{modules => }/trimgalore/meta.yml | 0 .../ucsc/bedgraphtobigwig/main.nf | 0 .../ucsc/bedgraphtobigwig/meta.yml | 0 modules/nf-core/{modules => }/untar/main.nf | 0 modules/nf-core/{modules => }/untar/meta.yml | 0 66 files changed, 130 insertions(+), 129 deletions(-) rename modules/nf-core/{modules => }/bowtie2/align/main.nf (100%) rename modules/nf-core/{modules => }/bowtie2/align/meta.yml (100%) rename modules/nf-core/{modules => }/bowtie2/build/main.nf (100%) rename modules/nf-core/{modules => }/bowtie2/build/meta.yml (100%) rename modules/nf-core/{modules => }/bwa/index/main.nf (100%) rename modules/nf-core/{modules => }/bwa/index/meta.yml (100%) rename modules/nf-core/{modules => }/bwa/mem/main.nf (100%) rename modules/nf-core/{modules => }/bwa/mem/meta.yml (100%) rename modules/nf-core/{modules => }/chromap/chromap/main.nf (100%) rename modules/nf-core/{modules => }/chromap/chromap/meta.yml (100%) rename modules/nf-core/{modules => }/chromap/index/main.nf (100%) rename modules/nf-core/{modules => }/chromap/index/meta.yml (100%) rename modules/nf-core/{modules => }/custom/dumpsoftwareversions/main.nf (100%) rename modules/nf-core/{modules => }/custom/dumpsoftwareversions/meta.yml (100%) rename modules/nf-core/{modules => }/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py (100%) rename modules/nf-core/{modules => }/custom/getchromsizes/main.nf (100%) rename modules/nf-core/{modules => }/custom/getchromsizes/meta.yml (100%) rename modules/nf-core/{modules => }/deeptools/computematrix/main.nf (100%) rename modules/nf-core/{modules => }/deeptools/computematrix/meta.yml (100%) rename modules/nf-core/{modules => }/deeptools/plotfingerprint/main.nf (100%) rename modules/nf-core/{modules => }/deeptools/plotfingerprint/meta.yml (100%) rename modules/nf-core/{modules => }/deeptools/plotheatmap/main.nf (100%) rename modules/nf-core/{modules => }/deeptools/plotheatmap/meta.yml (100%) rename modules/nf-core/{modules => }/deeptools/plotprofile/main.nf (100%) rename modules/nf-core/{modules => }/deeptools/plotprofile/meta.yml (100%) rename modules/nf-core/{modules => }/fastqc/main.nf (100%) rename modules/nf-core/{modules => }/fastqc/meta.yml (100%) rename modules/nf-core/{modules => }/gffread/main.nf (100%) rename modules/nf-core/{modules => }/gffread/meta.yml (100%) rename modules/nf-core/{modules => }/gunzip/main.nf (100%) rename modules/nf-core/{modules => }/gunzip/meta.yml (100%) rename modules/nf-core/{modules => }/homer/annotatepeaks/main.nf (100%) rename modules/nf-core/{modules => }/homer/annotatepeaks/meta.yml (100%) rename modules/nf-core/{modules => }/khmer/uniquekmers/main.nf (100%) rename modules/nf-core/{modules => }/khmer/uniquekmers/meta.yml (100%) rename modules/nf-core/{modules => }/macs2/callpeak/main.nf (100%) rename modules/nf-core/{modules => }/macs2/callpeak/meta.yml (100%) rename modules/nf-core/{modules => }/phantompeakqualtools/main.nf (100%) rename modules/nf-core/{modules => }/phantompeakqualtools/meta.yml (100%) rename modules/nf-core/{modules => }/picard/collectmultiplemetrics/main.nf (100%) rename modules/nf-core/{modules => }/picard/collectmultiplemetrics/meta.yml (100%) rename modules/nf-core/{modules => }/picard/markduplicates/main.nf (100%) rename modules/nf-core/{modules => }/picard/markduplicates/meta.yml (100%) rename modules/nf-core/{modules => }/picard/mergesamfiles/main.nf (100%) rename modules/nf-core/{modules => }/picard/mergesamfiles/meta.yml (100%) rename modules/nf-core/{modules => }/preseq/lcextrap/main.nf (100%) rename modules/nf-core/{modules => }/preseq/lcextrap/meta.yml (100%) rename modules/nf-core/{modules => }/samtools/flagstat/main.nf (100%) rename modules/nf-core/{modules => }/samtools/flagstat/meta.yml (100%) rename modules/nf-core/{modules => }/samtools/idxstats/main.nf (100%) rename modules/nf-core/{modules => }/samtools/idxstats/meta.yml (100%) rename modules/nf-core/{modules => }/samtools/index/main.nf (100%) rename modules/nf-core/{modules => }/samtools/index/meta.yml (100%) rename modules/nf-core/{modules => }/samtools/sort/main.nf (100%) rename modules/nf-core/{modules => }/samtools/sort/meta.yml (100%) rename modules/nf-core/{modules => }/samtools/stats/main.nf (100%) rename modules/nf-core/{modules => }/samtools/stats/meta.yml (100%) rename modules/nf-core/{modules => }/subread/featurecounts/main.nf (100%) rename modules/nf-core/{modules => }/subread/featurecounts/meta.yml (100%) rename modules/nf-core/{modules => }/trimgalore/main.nf (100%) rename modules/nf-core/{modules => }/trimgalore/meta.yml (100%) rename modules/nf-core/{modules => }/ucsc/bedgraphtobigwig/main.nf (100%) rename modules/nf-core/{modules => }/ucsc/bedgraphtobigwig/meta.yml (100%) rename modules/nf-core/{modules => }/untar/main.nf (100%) rename modules/nf-core/{modules => }/untar/meta.yml (100%) diff --git a/modules.json b/modules.json index 81c94b44..d9f0b83d 100644 --- a/modules.json +++ b/modules.json @@ -2,136 +2,137 @@ "name": "nf-core/chipseq", "homePage": "https://github.com/nf-core/chipseq", "repos": { - "nf-core/modules": { - "git_url": "https://github.com/nf-core/modules.git", + "https://github.com/nf-core/modules.git": { "modules": { - "bowtie2/align": { - "branch": "master", - "git_sha": "848ee9a215d02d80be033bfa60881700f2bd914c" - }, - "bowtie2/build": { - "branch": "master", - "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d" - }, - "bwa/index": { - "branch": "master", - "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d" - }, - "bwa/mem": { - "branch": "master", - "git_sha": "4f5274c3de0c9521f5033893ff61057a74c45ba9" - }, - "chromap/chromap": { - "branch": "master", - "git_sha": "897c33d5da084b61109500ee44c01da2d3e4e773" - }, - "chromap/index": { - "branch": "master", - "git_sha": "dbb46c9b635080b132bab4b8d5b9a14f0d1c22e7" - }, - "custom/dumpsoftwareversions": { - "branch": "master", - "git_sha": "e5b44499efcf6f7fb24874886bac60591c5d94dd" - }, - "custom/getchromsizes": { - "branch": "master", - "git_sha": "213403187932dbbdd936a04474cc8cd8abae7a08" - }, - "deeptools/computematrix": { - "branch": "master", - "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d" - }, - "deeptools/plotfingerprint": { - "branch": "master", - "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d" - }, - "deeptools/plotheatmap": { - "branch": "master", - "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d" - }, - "deeptools/plotprofile": { - "branch": "master", - "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d" - }, - "fastqc": { - "branch": "master", - "git_sha": "49b18b1639f4f7104187058866a8fab33332bdfe" - }, - "gffread": { - "branch": "master", - "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d" - }, - "gunzip": { - "branch": "master", - "git_sha": "fa37e0662690c4ec4260dae282fbce08777503e6" - }, - "homer/annotatepeaks": { - "branch": "master", - "git_sha": "233fa70811a03a4cecb2ece483b5c8396e2cee1d" - }, - "khmer/uniquekmers": { - "branch": "master", - "git_sha": "82fdff4fb4ce6cafcc028a7503da835427f35352" - }, - "macs2/callpeak": { - "branch": "master", - "git_sha": "f0800157544a82ae222931764483331a81812012" - }, - "phantompeakqualtools": { - "branch": "master", - "git_sha": "233fa70811a03a4cecb2ece483b5c8396e2cee1d" - }, - "picard/collectmultiplemetrics": { - "branch": "master", - "git_sha": "682f789f93070bd047868300dd018faf3d434e7c" - }, - "picard/markduplicates": { - "branch": "master", - "git_sha": "682f789f93070bd047868300dd018faf3d434e7c" - }, - "picard/mergesamfiles": { - "branch": "master", - "git_sha": "682f789f93070bd047868300dd018faf3d434e7c" - }, - "preseq/lcextrap": { - "branch": "master", - "git_sha": "7111e571cc5b6069de4673cd6165af680f17b4d7" - }, - "samtools/flagstat": { - "branch": "master", - "git_sha": "ecece498f10b47b7c9d06f53a310cea5811b4c5f" - }, - "samtools/idxstats": { - "branch": "master", - "git_sha": "ecece498f10b47b7c9d06f53a310cea5811b4c5f" - }, - "samtools/index": { - "branch": "master", - "git_sha": "897c33d5da084b61109500ee44c01da2d3e4e773" - }, - "samtools/sort": { - "branch": "master", - "git_sha": "897c33d5da084b61109500ee44c01da2d3e4e773" - }, - "samtools/stats": { - "branch": "master", - "git_sha": "f48a24770e24358e58de66e9b805a70d77cd154b" - }, - "subread/featurecounts": { - "branch": "master", - "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d" - }, - "trimgalore": { - "branch": "master", - "git_sha": "85ec13ff1fc2196c5a507ea497de468101baabed" - }, - "ucsc/bedgraphtobigwig": { - "branch": "master", - "git_sha": "233fa70811a03a4cecb2ece483b5c8396e2cee1d" - }, - "untar": { - "branch": "master", - "git_sha": "51be617b1ca9bff973655eb899d591ed6ab253b5" + "nf-core": { + "bowtie2/align": { + "branch": "master", + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + }, + "bowtie2/build": { + "branch": "master", + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + }, + "bwa/index": { + "branch": "master", + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + }, + "bwa/mem": { + "branch": "master", + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + }, + "chromap/chromap": { + "branch": "master", + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + }, + "chromap/index": { + "branch": "master", + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + }, + "custom/dumpsoftwareversions": { + "branch": "master", + "git_sha": "8022c68e7403eecbd8ba9c49496f69f8c49d50f0" + }, + "custom/getchromsizes": { + "branch": "master", + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + }, + "deeptools/computematrix": { + "branch": "master", + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + }, + "deeptools/plotfingerprint": { + "branch": "master", + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + }, + "deeptools/plotheatmap": { + "branch": "master", + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + }, + "deeptools/plotprofile": { + "branch": "master", + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + }, + "fastqc": { + "branch": "master", + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + }, + "gffread": { + "branch": "master", + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + }, + "gunzip": { + "branch": "master", + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + }, + "homer/annotatepeaks": { + "branch": "master", + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + }, + "khmer/uniquekmers": { + "branch": "master", + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + }, + "macs2/callpeak": { + "branch": "master", + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + }, + "phantompeakqualtools": { + "branch": "master", + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + }, + "picard/collectmultiplemetrics": { + "branch": "master", + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + }, + "picard/markduplicates": { + "branch": "master", + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + }, + "picard/mergesamfiles": { + "branch": "master", + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + }, + "preseq/lcextrap": { + "branch": "master", + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + }, + "samtools/flagstat": { + "branch": "master", + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + }, + "samtools/idxstats": { + "branch": "master", + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + }, + "samtools/index": { + "branch": "master", + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + }, + "samtools/sort": { + "branch": "master", + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + }, + "samtools/stats": { + "branch": "master", + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + }, + "subread/featurecounts": { + "branch": "master", + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + }, + "trimgalore": { + "branch": "master", + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + }, + "ucsc/bedgraphtobigwig": { + "branch": "master", + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + }, + "untar": { + "branch": "master", + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + } } } } diff --git a/modules/nf-core/modules/bowtie2/align/main.nf b/modules/nf-core/bowtie2/align/main.nf similarity index 100% rename from modules/nf-core/modules/bowtie2/align/main.nf rename to modules/nf-core/bowtie2/align/main.nf diff --git a/modules/nf-core/modules/bowtie2/align/meta.yml b/modules/nf-core/bowtie2/align/meta.yml similarity index 100% rename from modules/nf-core/modules/bowtie2/align/meta.yml rename to modules/nf-core/bowtie2/align/meta.yml diff --git a/modules/nf-core/modules/bowtie2/build/main.nf b/modules/nf-core/bowtie2/build/main.nf similarity index 100% rename from modules/nf-core/modules/bowtie2/build/main.nf rename to modules/nf-core/bowtie2/build/main.nf diff --git a/modules/nf-core/modules/bowtie2/build/meta.yml b/modules/nf-core/bowtie2/build/meta.yml similarity index 100% rename from modules/nf-core/modules/bowtie2/build/meta.yml rename to modules/nf-core/bowtie2/build/meta.yml diff --git a/modules/nf-core/modules/bwa/index/main.nf b/modules/nf-core/bwa/index/main.nf similarity index 100% rename from modules/nf-core/modules/bwa/index/main.nf rename to modules/nf-core/bwa/index/main.nf diff --git a/modules/nf-core/modules/bwa/index/meta.yml b/modules/nf-core/bwa/index/meta.yml similarity index 100% rename from modules/nf-core/modules/bwa/index/meta.yml rename to modules/nf-core/bwa/index/meta.yml diff --git a/modules/nf-core/modules/bwa/mem/main.nf b/modules/nf-core/bwa/mem/main.nf similarity index 100% rename from modules/nf-core/modules/bwa/mem/main.nf rename to modules/nf-core/bwa/mem/main.nf diff --git a/modules/nf-core/modules/bwa/mem/meta.yml b/modules/nf-core/bwa/mem/meta.yml similarity index 100% rename from modules/nf-core/modules/bwa/mem/meta.yml rename to modules/nf-core/bwa/mem/meta.yml diff --git a/modules/nf-core/modules/chromap/chromap/main.nf b/modules/nf-core/chromap/chromap/main.nf similarity index 100% rename from modules/nf-core/modules/chromap/chromap/main.nf rename to modules/nf-core/chromap/chromap/main.nf diff --git a/modules/nf-core/modules/chromap/chromap/meta.yml b/modules/nf-core/chromap/chromap/meta.yml similarity index 100% rename from modules/nf-core/modules/chromap/chromap/meta.yml rename to modules/nf-core/chromap/chromap/meta.yml diff --git a/modules/nf-core/modules/chromap/index/main.nf b/modules/nf-core/chromap/index/main.nf similarity index 100% rename from modules/nf-core/modules/chromap/index/main.nf rename to modules/nf-core/chromap/index/main.nf diff --git a/modules/nf-core/modules/chromap/index/meta.yml b/modules/nf-core/chromap/index/meta.yml similarity index 100% rename from modules/nf-core/modules/chromap/index/meta.yml rename to modules/nf-core/chromap/index/meta.yml diff --git a/modules/nf-core/modules/custom/dumpsoftwareversions/main.nf b/modules/nf-core/custom/dumpsoftwareversions/main.nf similarity index 100% rename from modules/nf-core/modules/custom/dumpsoftwareversions/main.nf rename to modules/nf-core/custom/dumpsoftwareversions/main.nf diff --git a/modules/nf-core/modules/custom/dumpsoftwareversions/meta.yml b/modules/nf-core/custom/dumpsoftwareversions/meta.yml similarity index 100% rename from modules/nf-core/modules/custom/dumpsoftwareversions/meta.yml rename to modules/nf-core/custom/dumpsoftwareversions/meta.yml diff --git a/modules/nf-core/modules/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py b/modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py similarity index 100% rename from modules/nf-core/modules/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py rename to modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py diff --git a/modules/nf-core/modules/custom/getchromsizes/main.nf b/modules/nf-core/custom/getchromsizes/main.nf similarity index 100% rename from modules/nf-core/modules/custom/getchromsizes/main.nf rename to modules/nf-core/custom/getchromsizes/main.nf diff --git a/modules/nf-core/modules/custom/getchromsizes/meta.yml b/modules/nf-core/custom/getchromsizes/meta.yml similarity index 100% rename from modules/nf-core/modules/custom/getchromsizes/meta.yml rename to modules/nf-core/custom/getchromsizes/meta.yml diff --git a/modules/nf-core/modules/deeptools/computematrix/main.nf b/modules/nf-core/deeptools/computematrix/main.nf similarity index 100% rename from modules/nf-core/modules/deeptools/computematrix/main.nf rename to modules/nf-core/deeptools/computematrix/main.nf diff --git a/modules/nf-core/modules/deeptools/computematrix/meta.yml b/modules/nf-core/deeptools/computematrix/meta.yml similarity index 100% rename from modules/nf-core/modules/deeptools/computematrix/meta.yml rename to modules/nf-core/deeptools/computematrix/meta.yml diff --git a/modules/nf-core/modules/deeptools/plotfingerprint/main.nf b/modules/nf-core/deeptools/plotfingerprint/main.nf similarity index 100% rename from modules/nf-core/modules/deeptools/plotfingerprint/main.nf rename to modules/nf-core/deeptools/plotfingerprint/main.nf diff --git a/modules/nf-core/modules/deeptools/plotfingerprint/meta.yml b/modules/nf-core/deeptools/plotfingerprint/meta.yml similarity index 100% rename from modules/nf-core/modules/deeptools/plotfingerprint/meta.yml rename to modules/nf-core/deeptools/plotfingerprint/meta.yml diff --git a/modules/nf-core/modules/deeptools/plotheatmap/main.nf b/modules/nf-core/deeptools/plotheatmap/main.nf similarity index 100% rename from modules/nf-core/modules/deeptools/plotheatmap/main.nf rename to modules/nf-core/deeptools/plotheatmap/main.nf diff --git a/modules/nf-core/modules/deeptools/plotheatmap/meta.yml b/modules/nf-core/deeptools/plotheatmap/meta.yml similarity index 100% rename from modules/nf-core/modules/deeptools/plotheatmap/meta.yml rename to modules/nf-core/deeptools/plotheatmap/meta.yml diff --git a/modules/nf-core/modules/deeptools/plotprofile/main.nf b/modules/nf-core/deeptools/plotprofile/main.nf similarity index 100% rename from modules/nf-core/modules/deeptools/plotprofile/main.nf rename to modules/nf-core/deeptools/plotprofile/main.nf diff --git a/modules/nf-core/modules/deeptools/plotprofile/meta.yml b/modules/nf-core/deeptools/plotprofile/meta.yml similarity index 100% rename from modules/nf-core/modules/deeptools/plotprofile/meta.yml rename to modules/nf-core/deeptools/plotprofile/meta.yml diff --git a/modules/nf-core/modules/fastqc/main.nf b/modules/nf-core/fastqc/main.nf similarity index 100% rename from modules/nf-core/modules/fastqc/main.nf rename to modules/nf-core/fastqc/main.nf diff --git a/modules/nf-core/modules/fastqc/meta.yml b/modules/nf-core/fastqc/meta.yml similarity index 100% rename from modules/nf-core/modules/fastqc/meta.yml rename to modules/nf-core/fastqc/meta.yml diff --git a/modules/nf-core/modules/gffread/main.nf b/modules/nf-core/gffread/main.nf similarity index 100% rename from modules/nf-core/modules/gffread/main.nf rename to modules/nf-core/gffread/main.nf diff --git a/modules/nf-core/modules/gffread/meta.yml b/modules/nf-core/gffread/meta.yml similarity index 100% rename from modules/nf-core/modules/gffread/meta.yml rename to modules/nf-core/gffread/meta.yml diff --git a/modules/nf-core/modules/gunzip/main.nf b/modules/nf-core/gunzip/main.nf similarity index 100% rename from modules/nf-core/modules/gunzip/main.nf rename to modules/nf-core/gunzip/main.nf diff --git a/modules/nf-core/modules/gunzip/meta.yml b/modules/nf-core/gunzip/meta.yml similarity index 100% rename from modules/nf-core/modules/gunzip/meta.yml rename to modules/nf-core/gunzip/meta.yml diff --git a/modules/nf-core/modules/homer/annotatepeaks/main.nf b/modules/nf-core/homer/annotatepeaks/main.nf similarity index 100% rename from modules/nf-core/modules/homer/annotatepeaks/main.nf rename to modules/nf-core/homer/annotatepeaks/main.nf diff --git a/modules/nf-core/modules/homer/annotatepeaks/meta.yml b/modules/nf-core/homer/annotatepeaks/meta.yml similarity index 100% rename from modules/nf-core/modules/homer/annotatepeaks/meta.yml rename to modules/nf-core/homer/annotatepeaks/meta.yml diff --git a/modules/nf-core/modules/khmer/uniquekmers/main.nf b/modules/nf-core/khmer/uniquekmers/main.nf similarity index 100% rename from modules/nf-core/modules/khmer/uniquekmers/main.nf rename to modules/nf-core/khmer/uniquekmers/main.nf diff --git a/modules/nf-core/modules/khmer/uniquekmers/meta.yml b/modules/nf-core/khmer/uniquekmers/meta.yml similarity index 100% rename from modules/nf-core/modules/khmer/uniquekmers/meta.yml rename to modules/nf-core/khmer/uniquekmers/meta.yml diff --git a/modules/nf-core/modules/macs2/callpeak/main.nf b/modules/nf-core/macs2/callpeak/main.nf similarity index 100% rename from modules/nf-core/modules/macs2/callpeak/main.nf rename to modules/nf-core/macs2/callpeak/main.nf diff --git a/modules/nf-core/modules/macs2/callpeak/meta.yml b/modules/nf-core/macs2/callpeak/meta.yml similarity index 100% rename from modules/nf-core/modules/macs2/callpeak/meta.yml rename to modules/nf-core/macs2/callpeak/meta.yml diff --git a/modules/nf-core/modules/phantompeakqualtools/main.nf b/modules/nf-core/phantompeakqualtools/main.nf similarity index 100% rename from modules/nf-core/modules/phantompeakqualtools/main.nf rename to modules/nf-core/phantompeakqualtools/main.nf diff --git a/modules/nf-core/modules/phantompeakqualtools/meta.yml b/modules/nf-core/phantompeakqualtools/meta.yml similarity index 100% rename from modules/nf-core/modules/phantompeakqualtools/meta.yml rename to modules/nf-core/phantompeakqualtools/meta.yml diff --git a/modules/nf-core/modules/picard/collectmultiplemetrics/main.nf b/modules/nf-core/picard/collectmultiplemetrics/main.nf similarity index 100% rename from modules/nf-core/modules/picard/collectmultiplemetrics/main.nf rename to modules/nf-core/picard/collectmultiplemetrics/main.nf diff --git a/modules/nf-core/modules/picard/collectmultiplemetrics/meta.yml b/modules/nf-core/picard/collectmultiplemetrics/meta.yml similarity index 100% rename from modules/nf-core/modules/picard/collectmultiplemetrics/meta.yml rename to modules/nf-core/picard/collectmultiplemetrics/meta.yml diff --git a/modules/nf-core/modules/picard/markduplicates/main.nf b/modules/nf-core/picard/markduplicates/main.nf similarity index 100% rename from modules/nf-core/modules/picard/markduplicates/main.nf rename to modules/nf-core/picard/markduplicates/main.nf diff --git a/modules/nf-core/modules/picard/markduplicates/meta.yml b/modules/nf-core/picard/markduplicates/meta.yml similarity index 100% rename from modules/nf-core/modules/picard/markduplicates/meta.yml rename to modules/nf-core/picard/markduplicates/meta.yml diff --git a/modules/nf-core/modules/picard/mergesamfiles/main.nf b/modules/nf-core/picard/mergesamfiles/main.nf similarity index 100% rename from modules/nf-core/modules/picard/mergesamfiles/main.nf rename to modules/nf-core/picard/mergesamfiles/main.nf diff --git a/modules/nf-core/modules/picard/mergesamfiles/meta.yml b/modules/nf-core/picard/mergesamfiles/meta.yml similarity index 100% rename from modules/nf-core/modules/picard/mergesamfiles/meta.yml rename to modules/nf-core/picard/mergesamfiles/meta.yml diff --git a/modules/nf-core/modules/preseq/lcextrap/main.nf b/modules/nf-core/preseq/lcextrap/main.nf similarity index 100% rename from modules/nf-core/modules/preseq/lcextrap/main.nf rename to modules/nf-core/preseq/lcextrap/main.nf diff --git a/modules/nf-core/modules/preseq/lcextrap/meta.yml b/modules/nf-core/preseq/lcextrap/meta.yml similarity index 100% rename from modules/nf-core/modules/preseq/lcextrap/meta.yml rename to modules/nf-core/preseq/lcextrap/meta.yml diff --git a/modules/nf-core/modules/samtools/flagstat/main.nf b/modules/nf-core/samtools/flagstat/main.nf similarity index 100% rename from modules/nf-core/modules/samtools/flagstat/main.nf rename to modules/nf-core/samtools/flagstat/main.nf diff --git a/modules/nf-core/modules/samtools/flagstat/meta.yml b/modules/nf-core/samtools/flagstat/meta.yml similarity index 100% rename from modules/nf-core/modules/samtools/flagstat/meta.yml rename to modules/nf-core/samtools/flagstat/meta.yml diff --git a/modules/nf-core/modules/samtools/idxstats/main.nf b/modules/nf-core/samtools/idxstats/main.nf similarity index 100% rename from modules/nf-core/modules/samtools/idxstats/main.nf rename to modules/nf-core/samtools/idxstats/main.nf diff --git a/modules/nf-core/modules/samtools/idxstats/meta.yml b/modules/nf-core/samtools/idxstats/meta.yml similarity index 100% rename from modules/nf-core/modules/samtools/idxstats/meta.yml rename to modules/nf-core/samtools/idxstats/meta.yml diff --git a/modules/nf-core/modules/samtools/index/main.nf b/modules/nf-core/samtools/index/main.nf similarity index 100% rename from modules/nf-core/modules/samtools/index/main.nf rename to modules/nf-core/samtools/index/main.nf diff --git a/modules/nf-core/modules/samtools/index/meta.yml b/modules/nf-core/samtools/index/meta.yml similarity index 100% rename from modules/nf-core/modules/samtools/index/meta.yml rename to modules/nf-core/samtools/index/meta.yml diff --git a/modules/nf-core/modules/samtools/sort/main.nf b/modules/nf-core/samtools/sort/main.nf similarity index 100% rename from modules/nf-core/modules/samtools/sort/main.nf rename to modules/nf-core/samtools/sort/main.nf diff --git a/modules/nf-core/modules/samtools/sort/meta.yml b/modules/nf-core/samtools/sort/meta.yml similarity index 100% rename from modules/nf-core/modules/samtools/sort/meta.yml rename to modules/nf-core/samtools/sort/meta.yml diff --git a/modules/nf-core/modules/samtools/stats/main.nf b/modules/nf-core/samtools/stats/main.nf similarity index 100% rename from modules/nf-core/modules/samtools/stats/main.nf rename to modules/nf-core/samtools/stats/main.nf diff --git a/modules/nf-core/modules/samtools/stats/meta.yml b/modules/nf-core/samtools/stats/meta.yml similarity index 100% rename from modules/nf-core/modules/samtools/stats/meta.yml rename to modules/nf-core/samtools/stats/meta.yml diff --git a/modules/nf-core/modules/subread/featurecounts/main.nf b/modules/nf-core/subread/featurecounts/main.nf similarity index 100% rename from modules/nf-core/modules/subread/featurecounts/main.nf rename to modules/nf-core/subread/featurecounts/main.nf diff --git a/modules/nf-core/modules/subread/featurecounts/meta.yml b/modules/nf-core/subread/featurecounts/meta.yml similarity index 100% rename from modules/nf-core/modules/subread/featurecounts/meta.yml rename to modules/nf-core/subread/featurecounts/meta.yml diff --git a/modules/nf-core/modules/trimgalore/main.nf b/modules/nf-core/trimgalore/main.nf similarity index 100% rename from modules/nf-core/modules/trimgalore/main.nf rename to modules/nf-core/trimgalore/main.nf diff --git a/modules/nf-core/modules/trimgalore/meta.yml b/modules/nf-core/trimgalore/meta.yml similarity index 100% rename from modules/nf-core/modules/trimgalore/meta.yml rename to modules/nf-core/trimgalore/meta.yml diff --git a/modules/nf-core/modules/ucsc/bedgraphtobigwig/main.nf b/modules/nf-core/ucsc/bedgraphtobigwig/main.nf similarity index 100% rename from modules/nf-core/modules/ucsc/bedgraphtobigwig/main.nf rename to modules/nf-core/ucsc/bedgraphtobigwig/main.nf diff --git a/modules/nf-core/modules/ucsc/bedgraphtobigwig/meta.yml b/modules/nf-core/ucsc/bedgraphtobigwig/meta.yml similarity index 100% rename from modules/nf-core/modules/ucsc/bedgraphtobigwig/meta.yml rename to modules/nf-core/ucsc/bedgraphtobigwig/meta.yml diff --git a/modules/nf-core/modules/untar/main.nf b/modules/nf-core/untar/main.nf similarity index 100% rename from modules/nf-core/modules/untar/main.nf rename to modules/nf-core/untar/main.nf diff --git a/modules/nf-core/modules/untar/meta.yml b/modules/nf-core/untar/meta.yml similarity index 100% rename from modules/nf-core/modules/untar/meta.yml rename to modules/nf-core/untar/meta.yml From 2ec84ef2c5a89cc6ae2decf45603c8a07e746399 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 5 Oct 2022 15:42:52 +0200 Subject: [PATCH 004/201] Re-install custom/getchromsizes module --- modules/nf-core/custom/getchromsizes/main.nf | 24 ++++++++++++++----- modules/nf-core/custom/getchromsizes/meta.yml | 19 +++++++++++++-- 2 files changed, 35 insertions(+), 8 deletions(-) diff --git a/modules/nf-core/custom/getchromsizes/main.nf b/modules/nf-core/custom/getchromsizes/main.nf index 0eabf3a4..8e1693d4 100644 --- a/modules/nf-core/custom/getchromsizes/main.nf +++ b/modules/nf-core/custom/getchromsizes/main.nf @@ -1,6 +1,6 @@ process CUSTOM_GETCHROMSIZES { tag "$fasta" - label 'process_low' + label 'process_single' conda (params.enable_conda ? "bioconda::samtools=1.15.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? @@ -8,12 +8,13 @@ process CUSTOM_GETCHROMSIZES { 'quay.io/biocontainers/samtools:1.15.1--h1170115_0' }" input: - path fasta + tuple val(meta), path(fasta) output: - path '*.sizes' , emit: sizes - path '*.fai' , emit: fai - path "versions.yml", emit: versions + tuple val(meta), path ("*.sizes"), emit: sizes + tuple val(meta), path ("*.fai") , emit: fai + tuple val(meta), path ("*.gzi") , emit: gzi, optional: true + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -26,7 +27,18 @@ process CUSTOM_GETCHROMSIZES { cat <<-END_VERSIONS > versions.yml "${task.process}": - custom: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + getchromsizes: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS + """ + + stub: + """ + touch ${fasta}.fai + touch ${fasta}.sizes + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + getchromsizes: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') END_VERSIONS """ } diff --git a/modules/nf-core/custom/getchromsizes/meta.yml b/modules/nf-core/custom/getchromsizes/meta.yml index ee6c2571..219ca1d8 100644 --- a/modules/nf-core/custom/getchromsizes/meta.yml +++ b/modules/nf-core/custom/getchromsizes/meta.yml @@ -14,12 +14,22 @@ tools: licence: ["MIT"] input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] - fasta: type: file description: FASTA file - pattern: "*.{fasta}" + pattern: "*.{fa,fasta,fna,fas}" output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] - sizes: type: file description: File containing chromosome lengths @@ -28,11 +38,16 @@ output: type: file description: FASTA index file pattern: "*.{fai}" + - gzi: + type: file + description: Optional gzip index file for compressed inputs + pattern: "*.gzi" - versions: type: file - description: File containing software version + description: File containing software versions pattern: "versions.yml" authors: - "@tamara-hodgetts" - "@chris-cheshire" + - "@muffato" From d69bd44f83c7fbacf129740ea5b59d26085badd6 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 5 Oct 2022 15:47:49 +0200 Subject: [PATCH 005/201] Patch custom/getchromsizes module --- modules.json | 3 ++- .../getchromsizes/custom-getchromsizes.diff | 23 +++++++++++++++++++ modules/nf-core/custom/getchromsizes/main.nf | 9 ++++---- 3 files changed, 29 insertions(+), 6 deletions(-) create mode 100644 modules/nf-core/custom/getchromsizes/custom-getchromsizes.diff diff --git a/modules.json b/modules.json index d9f0b83d..5bd172bc 100644 --- a/modules.json +++ b/modules.json @@ -35,7 +35,8 @@ }, "custom/getchromsizes": { "branch": "master", - "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", + "patch": "modules/nf-core/custom/getchromsizes/custom-getchromsizes.diff" }, "deeptools/computematrix": { "branch": "master", diff --git a/modules/nf-core/custom/getchromsizes/custom-getchromsizes.diff b/modules/nf-core/custom/getchromsizes/custom-getchromsizes.diff new file mode 100644 index 00000000..18fda554 --- /dev/null +++ b/modules/nf-core/custom/getchromsizes/custom-getchromsizes.diff @@ -0,0 +1,23 @@ +Changes in module 'nf-core/custom/getchromsizes' +--- modules/nf-core/custom/getchromsizes/main.nf ++++ modules/nf-core/custom/getchromsizes/main.nf +@@ -8,13 +8,12 @@ + 'quay.io/biocontainers/samtools:1.15.1--h1170115_0' }" + + input: +- tuple val(meta), path(fasta) ++ path(fasta) + + output: +- tuple val(meta), path ("*.sizes"), emit: sizes +- tuple val(meta), path ("*.fai") , emit: fai +- tuple val(meta), path ("*.gzi") , emit: gzi, optional: true +- path "versions.yml" , emit: versions ++ path '*.sizes' , emit: sizes ++ path '*.fai' , emit: fai ++ path "versions.yml", emit: versions + + when: + task.ext.when == null || task.ext.when + +************************************************************ diff --git a/modules/nf-core/custom/getchromsizes/main.nf b/modules/nf-core/custom/getchromsizes/main.nf index 8e1693d4..562c693e 100644 --- a/modules/nf-core/custom/getchromsizes/main.nf +++ b/modules/nf-core/custom/getchromsizes/main.nf @@ -8,13 +8,12 @@ process CUSTOM_GETCHROMSIZES { 'quay.io/biocontainers/samtools:1.15.1--h1170115_0' }" input: - tuple val(meta), path(fasta) + path(fasta) output: - tuple val(meta), path ("*.sizes"), emit: sizes - tuple val(meta), path ("*.fai") , emit: fai - tuple val(meta), path ("*.gzi") , emit: gzi, optional: true - path "versions.yml" , emit: versions + path '*.sizes' , emit: sizes + path '*.fai' , emit: fai + path "versions.yml", emit: versions when: task.ext.when == null || task.ext.when From 50ca23a4beea355fd512a043c0092cc0d5e91124 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 5 Oct 2022 15:50:26 +0200 Subject: [PATCH 006/201] Update custom_dumpsoftwareversions module --- .../custom/dumpsoftwareversions/main.nf | 8 +- .../templates/dumpsoftwareversions.py | 102 ++++++++++-------- 2 files changed, 60 insertions(+), 50 deletions(-) mode change 100644 => 100755 modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py diff --git a/modules/nf-core/custom/dumpsoftwareversions/main.nf b/modules/nf-core/custom/dumpsoftwareversions/main.nf index 203e485a..cebb6e05 100644 --- a/modules/nf-core/custom/dumpsoftwareversions/main.nf +++ b/modules/nf-core/custom/dumpsoftwareversions/main.nf @@ -1,11 +1,11 @@ process CUSTOM_DUMPSOFTWAREVERSIONS { - label 'process_low' + label 'process_single' // Requires `pyyaml` which does not have a dedicated container but is in the MultiQC container - conda (params.enable_conda ? 'bioconda::multiqc=1.13a' : null) + conda (params.enable_conda ? 'bioconda::multiqc=1.13' : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/multiqc:1.13a--pyhdfd78af_1' : - 'quay.io/biocontainers/multiqc:1.13a--pyhdfd78af_1' }" + 'https://depot.galaxyproject.org/singularity/multiqc:1.13--pyhdfd78af_0' : + 'quay.io/biocontainers/multiqc:1.13--pyhdfd78af_0' }" input: path versions diff --git a/modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py b/modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py old mode 100644 new mode 100755 index 787bdb7b..da033408 --- a/modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py +++ b/modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py @@ -1,12 +1,16 @@ #!/usr/bin/env python -import platform -from textwrap import dedent + +"""Provide functions to merge multiple versions.yml files.""" + import yaml +import platform +from textwrap import dedent def _make_versions_html(versions): + """Generate a tabular HTML output of all versions for MultiQC.""" html = [ dedent( """\\ @@ -45,47 +49,53 @@ def _make_versions_html(versions): return "\\n".join(html) -versions_this_module = {} -versions_this_module["${task.process}"] = { - "python": platform.python_version(), - "yaml": yaml.__version__, -} - -with open("$versions") as f: - versions_by_process = yaml.load(f, Loader=yaml.BaseLoader) | versions_this_module - -# aggregate versions by the module name (derived from fully-qualified process name) -versions_by_module = {} -for process, process_versions in versions_by_process.items(): - module = process.split(":")[-1] - try: - if versions_by_module[module] != process_versions: - raise AssertionError( - "We assume that software versions are the same between all modules. " - "If you see this error-message it means you discovered an edge-case " - "and should open an issue in nf-core/tools. " - ) - except KeyError: - versions_by_module[module] = process_versions - -versions_by_module["Workflow"] = { - "Nextflow": "$workflow.nextflow.version", - "$workflow.manifest.name": "$workflow.manifest.version", -} - -versions_mqc = { - "id": "software_versions", - "section_name": "${workflow.manifest.name} Software Versions", - "section_href": "https://github.com/${workflow.manifest.name}", - "plot_type": "html", - "description": "are collected at run time from the software output.", - "data": _make_versions_html(versions_by_module), -} - -with open("software_versions.yml", "w") as f: - yaml.dump(versions_by_module, f, default_flow_style=False) -with open("software_versions_mqc.yml", "w") as f: - yaml.dump(versions_mqc, f, default_flow_style=False) - -with open("versions.yml", "w") as f: - yaml.dump(versions_this_module, f, default_flow_style=False) +def main(): + """Load all version files and generate merged output.""" + versions_this_module = {} + versions_this_module["${task.process}"] = { + "python": platform.python_version(), + "yaml": yaml.__version__, + } + + with open("$versions") as f: + versions_by_process = yaml.load(f, Loader=yaml.BaseLoader) | versions_this_module + + # aggregate versions by the module name (derived from fully-qualified process name) + versions_by_module = {} + for process, process_versions in versions_by_process.items(): + module = process.split(":")[-1] + try: + if versions_by_module[module] != process_versions: + raise AssertionError( + "We assume that software versions are the same between all modules. " + "If you see this error-message it means you discovered an edge-case " + "and should open an issue in nf-core/tools. " + ) + except KeyError: + versions_by_module[module] = process_versions + + versions_by_module["Workflow"] = { + "Nextflow": "$workflow.nextflow.version", + "$workflow.manifest.name": "$workflow.manifest.version", + } + + versions_mqc = { + "id": "software_versions", + "section_name": "${workflow.manifest.name} Software Versions", + "section_href": "https://github.com/${workflow.manifest.name}", + "plot_type": "html", + "description": "are collected at run time from the software output.", + "data": _make_versions_html(versions_by_module), + } + + with open("software_versions.yml", "w") as f: + yaml.dump(versions_by_module, f, default_flow_style=False) + with open("software_versions_mqc.yml", "w") as f: + yaml.dump(versions_mqc, f, default_flow_style=False) + + with open("versions.yml", "w") as f: + yaml.dump(versions_this_module, f, default_flow_style=False) + + +if __name__ == "__main__": + main() From 9d70ec53f3af057045bbc6ba7734511377d9600a Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 5 Oct 2022 16:50:18 +0200 Subject: [PATCH 007/201] Fix modules path after restructuring of nf-core/modules --- subworkflows/local/prepare_genome.nf | 14 +-- subworkflows/nf-core/align_bowtie2.nf | 2 +- subworkflows/nf-core/align_bwa_mem.nf | 2 +- subworkflows/nf-core/align_chromap.nf | 2 +- subworkflows/nf-core/bam_sort_samtools.nf | 4 +- subworkflows/nf-core/bam_stats_samtools.nf | 6 +- subworkflows/nf-core/fastqc_trimgalore.nf | 4 +- .../nf-core/mark_duplicates_picard.nf | 4 +- workflows/chipseq.nf | 86 +++++++++---------- 9 files changed, 62 insertions(+), 62 deletions(-) diff --git a/subworkflows/local/prepare_genome.nf b/subworkflows/local/prepare_genome.nf index 9b6422c6..6c18b41b 100644 --- a/subworkflows/local/prepare_genome.nf +++ b/subworkflows/local/prepare_genome.nf @@ -7,19 +7,19 @@ include { GUNZIP as GUNZIP_GTF GUNZIP as GUNZIP_GFF GUNZIP as GUNZIP_GENE_BED - GUNZIP as GUNZIP_BLACKLIST } from '../../modules/nf-core/modules/gunzip/main' + GUNZIP as GUNZIP_BLACKLIST } from '../../modules/nf-core/gunzip/main' include { UNTAR as UNTAR_BWA_INDEX UNTAR as UNTAR_BOWTIE2_INDEX UNTAR as UNTAR_CHROMAP_INDEX - UNTAR as UNTAR_STAR_INDEX } from '../../modules/nf-core/modules/untar/main' + UNTAR as UNTAR_STAR_INDEX } from '../../modules/nf-core/untar/main' -include { GFFREAD } from '../../modules/nf-core/modules/gffread/main' -include { CUSTOM_GETCHROMSIZES } from '../../modules/nf-core/modules/custom/getchromsizes/main' -include { BWA_INDEX } from '../../modules/nf-core/modules/bwa/index/main' -include { BOWTIE2_BUILD } from '../../modules/nf-core/modules/bowtie2/build/main' -include { CHROMAP_INDEX } from '../../modules/nf-core/modules/chromap/index/main' +include { GFFREAD } from '../../modules/nf-core/gffread/main' +include { CUSTOM_GETCHROMSIZES } from '../../modules/nf-core/custom/getchromsizes/main' +include { BWA_INDEX } from '../../modules/nf-core/bwa/index/main' +include { BOWTIE2_BUILD } from '../../modules/nf-core/bowtie2/build/main' +include { CHROMAP_INDEX } from '../../modules/nf-core/chromap/index/main' include { GTF2BED } from '../../modules/local/gtf2bed' include { GENOME_BLACKLIST_REGIONS } from '../../modules/local/genome_blacklist_regions' diff --git a/subworkflows/nf-core/align_bowtie2.nf b/subworkflows/nf-core/align_bowtie2.nf index 35219131..4661c720 100644 --- a/subworkflows/nf-core/align_bowtie2.nf +++ b/subworkflows/nf-core/align_bowtie2.nf @@ -2,7 +2,7 @@ * Map reads, sort, index BAM file and run samtools stats, flagstat and idxstats */ -include { BOWTIE2_ALIGN } from '../../modules/nf-core/modules/bowtie2/align/main' +include { BOWTIE2_ALIGN } from '../../modules/nf-core/bowtie2/align/main' include { BAM_SORT_SAMTOOLS } from './bam_sort_samtools' workflow ALIGN_BOWTIE2 { diff --git a/subworkflows/nf-core/align_bwa_mem.nf b/subworkflows/nf-core/align_bwa_mem.nf index 0c5dff08..eac98188 100644 --- a/subworkflows/nf-core/align_bwa_mem.nf +++ b/subworkflows/nf-core/align_bwa_mem.nf @@ -2,7 +2,7 @@ * Map reads, sort, index BAM file and run samtools stats, flagstat and idxstats */ -include { BWA_MEM } from '../../modules/nf-core/modules/bwa/mem/main' +include { BWA_MEM } from '../../modules/nf-core/bwa/mem/main' include { BAM_SORT_SAMTOOLS } from './bam_sort_samtools' workflow ALIGN_BWA_MEM { diff --git a/subworkflows/nf-core/align_chromap.nf b/subworkflows/nf-core/align_chromap.nf index 7eb73977..29b77442 100644 --- a/subworkflows/nf-core/align_chromap.nf +++ b/subworkflows/nf-core/align_chromap.nf @@ -2,7 +2,7 @@ * Map reads, sort, index BAM file and run samtools stats, flagstat and idxstats */ -include { CHROMAP_CHROMAP } from '../../modules/nf-core/modules/chromap/chromap/main' +include { CHROMAP_CHROMAP } from '../../modules/nf-core/chromap/chromap/main' include { BAM_SORT_SAMTOOLS } from './bam_sort_samtools' workflow ALIGN_CHROMAP { diff --git a/subworkflows/nf-core/bam_sort_samtools.nf b/subworkflows/nf-core/bam_sort_samtools.nf index 418e14cc..deb06c4d 100644 --- a/subworkflows/nf-core/bam_sort_samtools.nf +++ b/subworkflows/nf-core/bam_sort_samtools.nf @@ -2,8 +2,8 @@ * Sort, index BAM file and run samtools stats, flagstat and idxstats */ -include { SAMTOOLS_SORT } from '../../modules/nf-core/modules/samtools/sort/main' -include { SAMTOOLS_INDEX } from '../../modules/nf-core/modules/samtools/index/main' +include { SAMTOOLS_SORT } from '../../modules/nf-core/samtools/sort/main' +include { SAMTOOLS_INDEX } from '../../modules/nf-core/samtools/index/main' include { BAM_STATS_SAMTOOLS } from './bam_stats_samtools' workflow BAM_SORT_SAMTOOLS { diff --git a/subworkflows/nf-core/bam_stats_samtools.nf b/subworkflows/nf-core/bam_stats_samtools.nf index 89a7338f..207c5ece 100644 --- a/subworkflows/nf-core/bam_stats_samtools.nf +++ b/subworkflows/nf-core/bam_stats_samtools.nf @@ -2,9 +2,9 @@ * Run SAMtools stats, flagstat and idxstats */ -include { SAMTOOLS_STATS } from '../../modules/nf-core/modules/samtools/stats/main' -include { SAMTOOLS_IDXSTATS } from '../../modules/nf-core/modules/samtools/idxstats/main' -include { SAMTOOLS_FLAGSTAT } from '../../modules/nf-core/modules/samtools/flagstat/main' +include { SAMTOOLS_STATS } from '../../modules/nf-core/samtools/stats/main' +include { SAMTOOLS_IDXSTATS } from '../../modules/nf-core/samtools/idxstats/main' +include { SAMTOOLS_FLAGSTAT } from '../../modules/nf-core/samtools/flagstat/main' workflow BAM_STATS_SAMTOOLS { take: diff --git a/subworkflows/nf-core/fastqc_trimgalore.nf b/subworkflows/nf-core/fastqc_trimgalore.nf index 966541ca..8a18098a 100644 --- a/subworkflows/nf-core/fastqc_trimgalore.nf +++ b/subworkflows/nf-core/fastqc_trimgalore.nf @@ -2,8 +2,8 @@ // Read QC and trimming // -include { FASTQC } from '../../modules/nf-core/modules/fastqc/main' -include { TRIMGALORE } from '../../modules/nf-core/modules/trimgalore/main' +include { FASTQC } from '../../modules/nf-core/fastqc/main' +include { TRIMGALORE } from '../../modules/nf-core/trimgalore/main' workflow FASTQC_TRIMGALORE { take: diff --git a/subworkflows/nf-core/mark_duplicates_picard.nf b/subworkflows/nf-core/mark_duplicates_picard.nf index 33e88bf5..72a0eb8e 100644 --- a/subworkflows/nf-core/mark_duplicates_picard.nf +++ b/subworkflows/nf-core/mark_duplicates_picard.nf @@ -2,8 +2,8 @@ * Picard MarkDuplicates, sort, index BAM file and run samtools stats, flagstat and idxstats */ -include { PICARD_MARKDUPLICATES } from '../../modules/nf-core/modules/picard/markduplicates/main' -include { SAMTOOLS_INDEX } from '../../modules/nf-core/modules/samtools/index/main' +include { PICARD_MARKDUPLICATES } from '../../modules/nf-core/picard/markduplicates/main' +include { SAMTOOLS_INDEX } from '../../modules/nf-core/samtools/index/main' include { BAM_STATS_SAMTOOLS } from './bam_stats_samtools' workflow MARK_DUPLICATES_PICARD { diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index ffe99518..7be0f832 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -92,22 +92,22 @@ include { FILTER_BAM_BAMTOOLS } from '../subworkflows/local/filter_bam_bamtools' // MODULE: Installed directly from nf-core/modules // -include { PICARD_MERGESAMFILES } from '../modules/nf-core/modules/picard/mergesamfiles/main' -include { PICARD_COLLECTMULTIPLEMETRICS } from '../modules/nf-core/modules/picard/collectmultiplemetrics/main' -include { PRESEQ_LCEXTRAP } from '../modules/nf-core/modules/preseq/lcextrap/main' -include { PHANTOMPEAKQUALTOOLS } from '../modules/nf-core/modules/phantompeakqualtools/main' -include { UCSC_BEDGRAPHTOBIGWIG } from '../modules/nf-core/modules/ucsc/bedgraphtobigwig/main' -include { DEEPTOOLS_COMPUTEMATRIX } from '../modules/nf-core/modules/deeptools/computematrix/main' -include { DEEPTOOLS_PLOTPROFILE } from '../modules/nf-core/modules/deeptools/plotprofile/main' -include { DEEPTOOLS_PLOTHEATMAP } from '../modules/nf-core/modules/deeptools/plotheatmap/main' -include { DEEPTOOLS_PLOTFINGERPRINT } from '../modules/nf-core/modules/deeptools/plotfingerprint/main' -include { KHMER_UNIQUEKMERS } from '../modules/nf-core/modules/khmer/uniquekmers/main' -include { MACS2_CALLPEAK } from '../modules/nf-core/modules/macs2/callpeak/main' -include { SUBREAD_FEATURECOUNTS } from '../modules/nf-core/modules/subread/featurecounts/main' -include { CUSTOM_DUMPSOFTWAREVERSIONS } from '../modules/nf-core/modules/custom/dumpsoftwareversions/main' - -include { HOMER_ANNOTATEPEAKS as HOMER_ANNOTATEPEAKS_MACS2 } from '../modules/nf-core/modules/homer/annotatepeaks/main' -include { HOMER_ANNOTATEPEAKS as HOMER_ANNOTATEPEAKS_CONSENSUS } from '../modules/nf-core/modules/homer/annotatepeaks/main' +include { PICARD_MERGESAMFILES } from '../modules/nf-core/picard/mergesamfiles/main' +include { PICARD_COLLECTMULTIPLEMETRICS } from '../modules/nf-core/picard/collectmultiplemetrics/main' +include { PRESEQ_LCEXTRAP } from '../modules/nf-core/preseq/lcextrap/main' +include { PHANTOMPEAKQUALTOOLS } from '../modules/nf-core/phantompeakqualtools/main' +include { UCSC_BEDGRAPHTOBIGWIG } from '../modules/nf-core/ucsc/bedgraphtobigwig/main' +include { DEEPTOOLS_COMPUTEMATRIX } from '../modules/nf-core/deeptools/computematrix/main' +include { DEEPTOOLS_PLOTPROFILE } from '../modules/nf-core/deeptools/plotprofile/main' +include { DEEPTOOLS_PLOTHEATMAP } from '../modules/nf-core/deeptools/plotheatmap/main' +include { DEEPTOOLS_PLOTFINGERPRINT } from '../modules/nf-core/deeptools/plotfingerprint/main' +include { KHMER_UNIQUEKMERS } from '../modules/nf-core/khmer/uniquekmers/main' +include { MACS2_CALLPEAK } from '../modules/nf-core/macs2/callpeak/main' +include { SUBREAD_FEATURECOUNTS } from '../modules/nf-core/subread/featurecounts/main' +include { CUSTOM_DUMPSOFTWAREVERSIONS } from '../modules/nf-core/custom/dumpsoftwareversions/main' + +include { HOMER_ANNOTATEPEAKS as HOMER_ANNOTATEPEAKS_MACS2 } from '../modules/nf-core/homer/annotatepeaks/main' +include { HOMER_ANNOTATEPEAKS as HOMER_ANNOTATEPEAKS_CONSENSUS } from '../modules/nf-core/homer/annotatepeaks/main' // // SUBWORKFLOW: Consisting entirely of nf-core/modules @@ -226,7 +226,7 @@ workflow CHIPSEQ { ch_genome_bam_chromap .paired_end .collect() - .map { + .map { it -> def count = it.size() if (count > 0) { @@ -274,12 +274,12 @@ workflow CHIPSEQ { def meta_clone = meta.clone() meta_clone.remove('read_group') meta_clone.id = meta_clone.id.split('_')[0..-2].join('_') - [ meta_clone, bam ] + [ meta_clone, bam ] } .groupTuple(by: [0]) - .map { + .map { it -> - [ it[0], it[1].flatten() ] + [ it[0], it[1].flatten() ] } .set { ch_sort_bam } @@ -405,15 +405,15 @@ workflow CHIPSEQ { .bam .join(FILTER_BAM_BAMTOOLS.out.bai, by: [0]) .set { ch_genome_bam_bai } - + ch_genome_bam_bai .combine(ch_genome_bam_bai) - .map { + .map { meta1, bam1, bai1, meta2, bam2, bai2 -> meta1.control == meta2.id ? [ meta1, [ bam1, bam2 ], [ bai1, bai2 ] ] : null } .set { ch_ip_control_bam_bai } - + // // MODULE: deepTools plotFingerprint joint QC for IP and control // @@ -445,9 +445,9 @@ workflow CHIPSEQ { // Create channels: [ meta, ip_bam, control_bam ] ch_ip_control_bam_bai - .map { - meta, bams, bais -> - [ meta , bams[0], bams[1] ] + .map { + meta, bams, bais -> + [ meta , bams[0], bams[1] ] } .set { ch_ip_control_bam } @@ -472,9 +472,9 @@ workflow CHIPSEQ { // Create channels: [ meta, ip_bam, peaks ] ch_ip_control_bam .join(ch_macs2_peaks, by: [0]) - .map { - it -> - [ it[0], it[1], it[3] ] + .map { + it -> + [ it[0], it[1], it[3] ] } .set { ch_ip_bam_peaks } @@ -489,9 +489,9 @@ workflow CHIPSEQ { // Create channels: [ meta, peaks, frip ] ch_ip_bam_peaks .join(FRIP_SCORE.out.txt, by: [0]) - .map { - it -> - [ it[0], it[2], it[3] ] + .map { + it -> + [ it[0], it[2], it[3] ] } .set { ch_ip_peaks_frip } @@ -550,9 +550,9 @@ workflow CHIPSEQ { // Create channels: [ meta , [ peaks ] ] // Where meta = [ id:antibody, multiple_groups:true/false, replicates_exist:true/false ] ch_macs2_peaks - .map { - meta, peak -> - [ meta.antibody, meta.id.split('_')[0..-2].join('_'), peak ] + .map { + meta, peak -> + [ meta.antibody, meta.id.split('_')[0..-2].join('_'), peak ] } .groupTuple() .map { @@ -561,7 +561,7 @@ workflow CHIPSEQ { antibody, groups.groupBy().collectEntries { [(it.key) : it.value.size()] }, peaks - ] + ] } .map { antibody, groups, peaks -> @@ -569,7 +569,7 @@ workflow CHIPSEQ { meta_new.id = antibody meta_new.multiple_groups = groups.size() > 1 meta_new.replicates_exist = groups.max { groups.value }.value > 1 - [ meta_new, peaks ] + [ meta_new, peaks ] } .set { ch_antibody_peaks } @@ -605,7 +605,7 @@ workflow CHIPSEQ { // Create channels: [ antibody, [ ip_bams ] ] ch_ip_control_bam - .map { + .map { meta, ip_bam, control_bam -> [ meta.antibody, ip_bam ] } @@ -616,9 +616,9 @@ workflow CHIPSEQ { MACS2_CONSENSUS .out .saf - .map { - meta, saf -> - [ meta.id, meta, saf ] + .map { + meta, saf -> + [ meta.id, meta, saf ] } .join(ch_antibody_bams) .map { @@ -705,10 +705,10 @@ workflow CHIPSEQ { ch_picardcollectmultiplemetrics_multiqc.collect{it[1]}.ifEmpty([]), ch_preseq_multiqc.collect{it[1]}.ifEmpty([]), - + ch_deeptoolsplotprofile_multiqc.collect{it[1]}.ifEmpty([]), ch_deeptoolsplotfingerprint_multiqc.collect{it[1]}.ifEmpty([]), - + PHANTOMPEAKQUALTOOLS.out.spp.collect{it[1]}.ifEmpty([]), MULTIQC_CUSTOM_PHANTOMPEAKQUALTOOLS.out.nsc.collect{it[1]}.ifEmpty([]), MULTIQC_CUSTOM_PHANTOMPEAKQUALTOOLS.out.rsc.collect{it[1]}.ifEmpty([]), From c417d0967d484b333fe5ae0f85ec7af6e1d8e7b3 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Thu, 6 Oct 2022 11:54:48 +0200 Subject: [PATCH 008/201] Force modules update so that nf-core lint does not complain --- modules/nf-core/bwa/index/main.nf | 2 +- modules/nf-core/gunzip/main.nf | 2 +- modules/nf-core/preseq/lcextrap/main.nf | 2 +- modules/nf-core/preseq/lcextrap/meta.yml | 0 modules/nf-core/samtools/flagstat/main.nf | 4 +-- modules/nf-core/samtools/idxstats/main.nf | 1 + modules/nf-core/samtools/sort/main.nf | 1 + modules/nf-core/samtools/sort/meta.yml | 4 +++ modules/nf-core/samtools/stats/main.nf | 4 +-- modules/nf-core/trimgalore/main.nf | 2 +- modules/nf-core/ucsc/bedgraphtobigwig/main.nf | 2 +- .../nf-core/ucsc/bedgraphtobigwig/meta.yml | 0 modules/nf-core/untar/main.nf | 25 +++++++++++++------ modules/nf-core/untar/meta.yml | 8 +++--- 14 files changed, 38 insertions(+), 19 deletions(-) mode change 100644 => 100755 modules/nf-core/preseq/lcextrap/meta.yml mode change 100644 => 100755 modules/nf-core/ucsc/bedgraphtobigwig/meta.yml diff --git a/modules/nf-core/bwa/index/main.nf b/modules/nf-core/bwa/index/main.nf index 3affbf16..aa75ae5d 100644 --- a/modules/nf-core/bwa/index/main.nf +++ b/modules/nf-core/bwa/index/main.nf @@ -1,6 +1,6 @@ process BWA_INDEX { tag "$fasta" - label 'process_high' + label 'process_single' conda (params.enable_conda ? "bioconda::bwa=0.7.17" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? diff --git a/modules/nf-core/gunzip/main.nf b/modules/nf-core/gunzip/main.nf index 70367049..fa6ba26a 100644 --- a/modules/nf-core/gunzip/main.nf +++ b/modules/nf-core/gunzip/main.nf @@ -1,6 +1,6 @@ process GUNZIP { tag "$archive" - label 'process_low' + label 'process_single' conda (params.enable_conda ? "conda-forge::sed=4.7" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? diff --git a/modules/nf-core/preseq/lcextrap/main.nf b/modules/nf-core/preseq/lcextrap/main.nf index 97261557..a98a922c 100644 --- a/modules/nf-core/preseq/lcextrap/main.nf +++ b/modules/nf-core/preseq/lcextrap/main.nf @@ -1,6 +1,6 @@ process PRESEQ_LCEXTRAP { tag "$meta.id" - label 'process_medium' + label 'process_single' label 'error_ignore' conda (params.enable_conda ? "bioconda::preseq=3.1.2" : null) diff --git a/modules/nf-core/preseq/lcextrap/meta.yml b/modules/nf-core/preseq/lcextrap/meta.yml old mode 100644 new mode 100755 diff --git a/modules/nf-core/samtools/flagstat/main.nf b/modules/nf-core/samtools/flagstat/main.nf index 03ec2dcf..c3152aca 100644 --- a/modules/nf-core/samtools/flagstat/main.nf +++ b/modules/nf-core/samtools/flagstat/main.nf @@ -1,6 +1,6 @@ process SAMTOOLS_FLAGSTAT { tag "$meta.id" - label 'process_low' + label 'process_single' conda (params.enable_conda ? "bioconda::samtools=1.15.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? @@ -23,7 +23,7 @@ process SAMTOOLS_FLAGSTAT { """ samtools \\ flagstat \\ - --threads ${task.cpus-1} \\ + --threads ${task.cpus} \\ $bam \\ > ${prefix}.flagstat diff --git a/modules/nf-core/samtools/idxstats/main.nf b/modules/nf-core/samtools/idxstats/main.nf index 4b245419..87618e5f 100644 --- a/modules/nf-core/samtools/idxstats/main.nf +++ b/modules/nf-core/samtools/idxstats/main.nf @@ -24,6 +24,7 @@ process SAMTOOLS_IDXSTATS { """ samtools \\ idxstats \\ + --threads ${task.cpus-1} \\ $bam \\ > ${prefix}.idxstats diff --git a/modules/nf-core/samtools/sort/main.nf b/modules/nf-core/samtools/sort/main.nf index b4fc1cbe..ab7f1cca 100644 --- a/modules/nf-core/samtools/sort/main.nf +++ b/modules/nf-core/samtools/sort/main.nf @@ -12,6 +12,7 @@ process SAMTOOLS_SORT { output: tuple val(meta), path("*.bam"), emit: bam + tuple val(meta), path("*.csi"), emit: csi, optional: true path "versions.yml" , emit: versions when: diff --git a/modules/nf-core/samtools/sort/meta.yml b/modules/nf-core/samtools/sort/meta.yml index a820c55a..09289751 100644 --- a/modules/nf-core/samtools/sort/meta.yml +++ b/modules/nf-core/samtools/sort/meta.yml @@ -39,6 +39,10 @@ output: type: file description: File containing software versions pattern: "versions.yml" + - csi: + type: file + description: BAM index file (optional) + pattern: "*.csi" authors: - "@drpatelh" - "@ewels" diff --git a/modules/nf-core/samtools/stats/main.nf b/modules/nf-core/samtools/stats/main.nf index 89b92d79..9b0c3867 100644 --- a/modules/nf-core/samtools/stats/main.nf +++ b/modules/nf-core/samtools/stats/main.nf @@ -1,6 +1,6 @@ process SAMTOOLS_STATS { tag "$meta.id" - label 'process_low' + label 'process_single' conda (params.enable_conda ? "bioconda::samtools=1.15.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? @@ -25,7 +25,7 @@ process SAMTOOLS_STATS { """ samtools \\ stats \\ - --threads ${task.cpus-1} \\ + --threads ${task.cpus} \\ ${reference} \\ ${input} \\ > ${prefix}.stats diff --git a/modules/nf-core/trimgalore/main.nf b/modules/nf-core/trimgalore/main.nf index 3a3fca90..a69e3de6 100644 --- a/modules/nf-core/trimgalore/main.nf +++ b/modules/nf-core/trimgalore/main.nf @@ -32,7 +32,7 @@ process TRIMGALORE { cores = (task.cpus as int) - 4 if (meta.single_end) cores = (task.cpus as int) - 3 if (cores < 1) cores = 1 - if (cores > 4) cores = 4 + if (cores > 8) cores = 8 } // Clipping presets have to be evaluated in the context of SE/PE diff --git a/modules/nf-core/ucsc/bedgraphtobigwig/main.nf b/modules/nf-core/ucsc/bedgraphtobigwig/main.nf index b18b190a..a2979e04 100644 --- a/modules/nf-core/ucsc/bedgraphtobigwig/main.nf +++ b/modules/nf-core/ucsc/bedgraphtobigwig/main.nf @@ -1,6 +1,6 @@ process UCSC_BEDGRAPHTOBIGWIG { tag "$meta.id" - label 'process_medium' + label 'process_single' // WARN: Version information not provided by tool on CLI. Please update version string below when bumping container versions. conda (params.enable_conda ? "bioconda::ucsc-bedgraphtobigwig=377" : null) diff --git a/modules/nf-core/ucsc/bedgraphtobigwig/meta.yml b/modules/nf-core/ucsc/bedgraphtobigwig/meta.yml old mode 100644 new mode 100755 diff --git a/modules/nf-core/untar/main.nf b/modules/nf-core/untar/main.nf index 29ab10a5..71eea7b2 100644 --- a/modules/nf-core/untar/main.nf +++ b/modules/nf-core/untar/main.nf @@ -1,6 +1,6 @@ process UNTAR { tag "$archive" - label 'process_low' + label 'process_single' conda (params.enable_conda ? "conda-forge::sed=4.7" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? @@ -25,12 +25,23 @@ process UNTAR { """ mkdir output - tar \\ - -C output --strip-components 1 \\ - -xzvf \\ - $args \\ - $archive \\ - $args2 + ## Ensures --strip-components only applied when top level of tar contents is a directory + ## If just files or multiple directories, place all in output + if [[ \$(tar -tzf ${archive} | grep -o -P "^.*?\\/" | uniq | wc -l) -eq 1 ]]; then + tar \\ + -C output --strip-components 1 \\ + -xzvf \\ + $args \\ + $archive \\ + $args2 + else + tar \\ + -C output \\ + -xzvf \\ + $args \\ + $archive \\ + $args2 + fi mv output ${untar} diff --git a/modules/nf-core/untar/meta.yml b/modules/nf-core/untar/meta.yml index d426919b..ea7a3f38 100644 --- a/modules/nf-core/untar/meta.yml +++ b/modules/nf-core/untar/meta.yml @@ -26,9 +26,9 @@ output: Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - untar: - type: file - description: - pattern: "*.*" + type: directory + description: Directory containing contents of archive + pattern: "*/" - versions: type: file description: File containing software versions @@ -36,3 +36,5 @@ output: authors: - "@joseespinosa" - "@drpatelh" + - "@matthdsm" + - "@jfy133" From 0fc1b938a0ce3b414fa8aed2b1b2347a6d8e0044 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Thu, 6 Oct 2022 14:14:11 +0200 Subject: [PATCH 009/201] Merged changes from nf-core template --- .github/workflows/awsfulltest.yml | 4 ++ .github/workflows/awstest.yml | 4 ++ .prettierignore | 1 + CITATION.cff | 8 +-- assets/adaptivecard.json | 67 +++++++++++++++++++++++++ assets/methods_description_template.yml | 25 +++++++++ assets/multiqc_config.yml | 6 ++- docs/usage.md | 8 +++ lib/NfcoreTemplate.groovy | 55 ++++++++++++++++++++ lib/Utils.groovy | 21 +++++--- lib/WorkflowChipseq.groovy | 19 +++++++ modules/local/multiqc.nf | 2 + modules/nf-core/multiqc/main.nf | 53 +++++++++++++++++++ nextflow.config | 6 ++- nextflow_schema.json | 18 +++++++ workflows/chipseq.nf | 14 +++++- 16 files changed, 295 insertions(+), 16 deletions(-) create mode 100644 assets/adaptivecard.json create mode 100644 assets/methods_description_template.yml mode change 100755 => 100644 lib/Utils.groovy create mode 100644 modules/nf-core/multiqc/main.nf diff --git a/.github/workflows/awsfulltest.yml b/.github/workflows/awsfulltest.yml index 5a1c3622..85133f57 100644 --- a/.github/workflows/awsfulltest.yml +++ b/.github/workflows/awsfulltest.yml @@ -29,3 +29,7 @@ jobs: "aligner": "${{ matrix.aligner }}" } profiles: test_full,aws_tower + - uses: actions/upload-artifact@v3 + with: + name: Tower debug log file + path: tower_action_*.log diff --git a/.github/workflows/awstest.yml b/.github/workflows/awstest.yml index 73640cc6..ecd16998 100644 --- a/.github/workflows/awstest.yml +++ b/.github/workflows/awstest.yml @@ -23,3 +23,7 @@ jobs: "outdir": "s3://${{ secrets.AWS_S3_BUCKET }}/chipseq/results-test-${{ github.sha }}" } profiles: test,aws_tower + - uses: actions/upload-artifact@v3 + with: + name: Tower debug log file + path: tower_action_*.log diff --git a/.prettierignore b/.prettierignore index d0e7ae58..eb74a574 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,4 +1,5 @@ email_template.html +adaptivecard.json .nextflow* work/ data/ diff --git a/CITATION.cff b/CITATION.cff index 4533e2f2..017666c0 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -13,8 +13,8 @@ authors: given-names: Johannes - family-names: Wilm given-names: Andreas - - family-names: Ulysse Garcia - given-names: Maxime + - family-names: Garcia + given-names: Maxime Ulysse - family-names: Di Tommaso given-names: Paolo - family-names: Nahnsen @@ -39,8 +39,8 @@ prefered-citation: given-names: Johannes - family-names: Wilm given-names: Andreas - - family-names: Ulysse Garcia - given-names: Maxime + - family-names: Garcia + given-names: Maxime Ulysse - family-names: Di Tommaso given-names: Paolo - family-names: Nahnsen diff --git a/assets/adaptivecard.json b/assets/adaptivecard.json new file mode 100644 index 00000000..8c6fb5a7 --- /dev/null +++ b/assets/adaptivecard.json @@ -0,0 +1,67 @@ +{ + "type": "message", + "attachments": [ + { + "contentType": "application/vnd.microsoft.card.adaptive", + "contentUrl": null, + "content": { + "\$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "msteams": { + "width": "Full" + }, + "type": "AdaptiveCard", + "version": "1.2", + "body": [ + { + "type": "TextBlock", + "size": "Large", + "weight": "Bolder", + "color": "<% if (success) { %>Good<% } else { %>Attention<%} %>", + "text": "nf-core/chipseq v${version} - ${runName}", + "wrap": true + }, + { + "type": "TextBlock", + "spacing": "None", + "text": "Completed at ${dateComplete} (duration: ${duration})", + "isSubtle": true, + "wrap": true + }, + { + "type": "TextBlock", + "text": "<% if (success) { %>Pipeline completed successfully!<% } else { %>Pipeline completed with errors. The full error message was: ${errorReport}.<% } %>", + "wrap": true + }, + { + "type": "TextBlock", + "text": "The command used to launch the workflow was as follows:", + "wrap": true + }, + { + "type": "TextBlock", + "text": "${commandLine}", + "isSubtle": true, + "wrap": true + } + ], + "actions": [ + { + "type": "Action.ShowCard", + "title": "Pipeline Configuration", + "card": { + "type": "AdaptiveCard", + "\$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "body": [ + { + "type": "FactSet", + "facts": [<% out << summary.collect{ k,v -> "{\"title\": \"$k\", \"value\" : \"$v\"}"}.join(",\n") %> + ] + } + ] + } + } + ] + } + } + ] +} diff --git a/assets/methods_description_template.yml b/assets/methods_description_template.yml new file mode 100644 index 00000000..a30b1eb6 --- /dev/null +++ b/assets/methods_description_template.yml @@ -0,0 +1,25 @@ +id: "nf-core-chipseq-methods-description" +description: "Suggested text and references to use when describing pipeline usage within the methods section of a publication." +section_name: "nf-core/chipseq Methods Description" +section_href: "https://github.com/nf-core/chipseq" +plot_type: "html" +## TODO nf-core: Update the HTML below to your prefered methods description, e.g. add publication citation for this pipeline +## You inject any metadata in the Nextflow '${workflow}' object +data: | +

    Methods

    +

    Data was processed using nf-core/chipseq v${workflow.manifest.version} ${doi_text} of the nf-core collection of workflows (Ewels et al., 2020).

    +

    The pipeline was executed with Nextflow v${workflow.nextflow.version} (Di Tommaso et al., 2017) with the following command:

    +
    ${workflow.commandLine}
    +

    References

    +
      +
    • Di Tommaso, P., Chatzou, M., Floden, E. W., Barja, P. P., Palumbo, E., & Notredame, C. (2017). Nextflow enables reproducible computational workflows. Nature Biotechnology, 35(4), 316-319. https://doi.org/10.1038/nbt.3820
    • +
    • Ewels, P. A., Peltzer, A., Fillinger, S., Patel, H., Alneberg, J., Wilm, A., Garcia, M. U., Di Tommaso, P., & Nahnsen, S. (2020). The nf-core framework for community-curated bioinformatics pipelines. Nature Biotechnology, 38(3), 276-278. https://doi.org/10.1038/s41587-020-0439-x
    • +
    +
    +
    Notes:
    +
      + ${nodoi_text} +
    • The command above does not include parameters contained in any configs or profiles that may have been used. Ensure the config file is also uploaded with your publication!
    • +
    • You should also cite all software used within this run. Check the "Software Versions" of this report to get version information.
    • +
    +
    diff --git a/assets/multiqc_config.yml b/assets/multiqc_config.yml index 4493905e..ada4bd5f 100644 --- a/assets/multiqc_config.yml +++ b/assets/multiqc_config.yml @@ -129,10 +129,12 @@ report_section_order: order: -3400 deseq2_clustering_10: order: -3500 - software_versions: + "nf-core-chipseq-methods-description": order: -3600 - nf-core-chipseq-summary: + software_versions: order: -3700 + "nf-core-chipseq-summary": + order: -3800 custom_plot_config: picard_insert_size: diff --git a/docs/usage.md b/docs/usage.md index 4a656032..bb6dcc52 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -296,6 +296,14 @@ See the main [Nextflow documentation](https://www.nextflow.io/docs/latest/config If you have any questions or issues please send us a message on [Slack](https://nf-co.re/join/slack) on the [`#configs` channel](https://nfcore.slack.com/channels/configs). +## Azure Resource Requests + +To be used with the `azurebatch` profile by specifying the `-profile azurebatch`. +We recommend providing a compute `params.vm_type` of `Standard_D16_v3` VMs by default but these options can be changed if required. + +Note that the choice of VM size depends on your quota and the overall workload during the analysis. +For a thorough list, please refer the [Azure Sizes for virtual machines in Azure](https://docs.microsoft.com/en-us/azure/virtual-machines/sizes). + ## Running in the background Nextflow handles job submissions and supervises the running jobs. The Nextflow process must run until the pipeline is finished. diff --git a/lib/NfcoreTemplate.groovy b/lib/NfcoreTemplate.groovy index 2fc0a9b9..27feb009 100755 --- a/lib/NfcoreTemplate.groovy +++ b/lib/NfcoreTemplate.groovy @@ -145,6 +145,61 @@ class NfcoreTemplate { output_tf.withWriter { w -> w << email_txt } } + // + // Construct and send adaptive card + // https://adaptivecards.io + // + public static void adaptivecard(workflow, params, summary_params, projectDir, log) { + def hook_url = params.hook_url + + def summary = [:] + for (group in summary_params.keySet()) { + summary << summary_params[group] + } + + def misc_fields = [:] + misc_fields['start'] = workflow.start + misc_fields['complete'] = workflow.complete + misc_fields['scriptfile'] = workflow.scriptFile + misc_fields['scriptid'] = workflow.scriptId + if (workflow.repository) misc_fields['repository'] = workflow.repository + if (workflow.commitId) misc_fields['commitid'] = workflow.commitId + if (workflow.revision) misc_fields['revision'] = workflow.revision + misc_fields['nxf_version'] = workflow.nextflow.version + misc_fields['nxf_build'] = workflow.nextflow.build + misc_fields['nxf_timestamp'] = workflow.nextflow.timestamp + + def msg_fields = [:] + msg_fields['version'] = workflow.manifest.version + msg_fields['runName'] = workflow.runName + msg_fields['success'] = workflow.success + msg_fields['dateComplete'] = workflow.complete + msg_fields['duration'] = workflow.duration + msg_fields['exitStatus'] = workflow.exitStatus + msg_fields['errorMessage'] = (workflow.errorMessage ?: 'None') + msg_fields['errorReport'] = (workflow.errorReport ?: 'None') + msg_fields['commandLine'] = workflow.commandLine + msg_fields['projectDir'] = workflow.projectDir + msg_fields['summary'] = summary << misc_fields + + // Render the JSON template + def engine = new groovy.text.GStringTemplateEngine() + def hf = new File("$projectDir/assets/adaptivecard.json") + def json_template = engine.createTemplate(hf).make(msg_fields) + def json_message = json_template.toString() + + // POST + def post = new URL(hook_url).openConnection(); + post.setRequestMethod("POST") + post.setDoOutput(true) + post.setRequestProperty("Content-Type", "application/json") + post.getOutputStream().write(json_message.getBytes("UTF-8")); + def postRC = post.getResponseCode(); + if (! postRC.equals(200)) { + log.warn(post.getErrorStream().getText()); + } + } + // // Print pipeline summary on completion // diff --git a/lib/Utils.groovy b/lib/Utils.groovy old mode 100755 new mode 100644 index 28567bd7..8d030f4e --- a/lib/Utils.groovy +++ b/lib/Utils.groovy @@ -21,19 +21,26 @@ class Utils { } // Check that all channels are present - def required_channels = ['conda-forge', 'bioconda', 'defaults'] - def conda_check_failed = !required_channels.every { ch -> ch in channels } + // This channel list is ordered by required channel priority. + def required_channels_in_order = ['conda-forge', 'bioconda', 'defaults'] + def channels_missing = ((required_channels_in_order as Set) - (channels as Set)) as Boolean // Check that they are in the right order - conda_check_failed |= !(channels.indexOf('conda-forge') < channels.indexOf('bioconda')) - conda_check_failed |= !(channels.indexOf('bioconda') < channels.indexOf('defaults')) + def channel_priority_violation = false + def n = required_channels_in_order.size() + for (int i = 0; i < n - 1; i++) { + channel_priority_violation |= !(channels.indexOf(required_channels_in_order[i]) < channels.indexOf(required_channels_in_order[i+1])) + } - if (conda_check_failed) { + if (channels_missing | channel_priority_violation) { log.warn "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + " There is a problem with your Conda configuration!\n\n" + " You will need to set-up the conda-forge and bioconda channels correctly.\n" + - " Please refer to https://bioconda.github.io/user/install.html#set-up-channels\n" + - " NB: The order of the channels matters!\n" + + " Please refer to https://bioconda.github.io/\n" + + " The observed channel order is \n" + + " ${channels}\n" + + " but the following channel order is required:\n" + + " ${required_channels_in_order}\n" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" } } diff --git a/lib/WorkflowChipseq.groovy b/lib/WorkflowChipseq.groovy index dfae806f..ec6e85fb 100755 --- a/lib/WorkflowChipseq.groovy +++ b/lib/WorkflowChipseq.groovy @@ -2,6 +2,8 @@ // This file holds several functions specific to the workflow/chipseq.nf in the nf-core/chipseq pipeline // +import groovy.text.SimpleTemplateEngine + class WorkflowChipseq { // @@ -67,6 +69,23 @@ class WorkflowChipseq { yaml_file_text += "data: |\n" yaml_file_text += "${summary_section}" return yaml_file_text + } + + public static String methodsDescriptionText(run_workflow, mqc_methods_yaml) { + // Convert to a named map so can be used as with familar NXF ${workflow} variable syntax in the MultiQC YML file + def meta = [:] + meta.workflow = run_workflow.toMap() + meta["manifest_map"] = run_workflow.manifest.toMap() + + meta["doi_text"] = meta.manifest_map.doi ? "(doi: ${meta.manifest_map.doi})" : "" + meta["nodoi_text"] = meta.manifest_map.doi ? "": "
  • If available, make sure to update the text to include the Zenodo DOI of version of the pipeline used.
  • " + + def methods_text = mqc_methods_yaml.text + + def engine = new SimpleTemplateEngine() + def description_html = engine.createTemplate(methods_text).make(meta) + + return description_html }// // Exit pipeline if incorrect --genome key provided // diff --git a/modules/local/multiqc.nf b/modules/local/multiqc.nf index 702b239f..27dd8f29 100644 --- a/modules/local/multiqc.nf +++ b/modules/local/multiqc.nf @@ -11,6 +11,8 @@ process MULTIQC { path mqc_custom_config path software_versions path workflow_summary + path methods_description + path logo path ('fastqc/*') path ('trimgalore/fastqc/*') diff --git a/modules/nf-core/multiqc/main.nf b/modules/nf-core/multiqc/main.nf new file mode 100644 index 00000000..a8159a57 --- /dev/null +++ b/modules/nf-core/multiqc/main.nf @@ -0,0 +1,53 @@ +process MULTIQC { + label 'process_single' + + conda (params.enable_conda ? 'bioconda::multiqc=1.13' : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/multiqc:1.13--pyhdfd78af_0' : + 'quay.io/biocontainers/multiqc:1.13--pyhdfd78af_0' }" + + input: + path multiqc_files, stageAs: "?/*" + path(multiqc_config) + path(extra_multiqc_config) + path(multiqc_logo) + + output: + path "*multiqc_report.html", emit: report + path "*_data" , emit: data + path "*_plots" , optional:true, emit: plots + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def config = multiqc_config ? "--config $multiqc_config" : '' + def extra_config = extra_multiqc_config ? "--config $extra_multiqc_config" : '' + """ + multiqc \\ + --force \\ + $args \\ + $config \\ + $extra_config \\ + . + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + multiqc: \$( multiqc --version | sed -e "s/multiqc, version //g" ) + END_VERSIONS + """ + + stub: + """ + touch multiqc_data + touch multiqc_plots + touch multiqc_report.html + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + multiqc: \$( multiqc --version | sed -e "s/multiqc, version //g" ) + END_VERSIONS + """ +} diff --git a/nextflow.config b/nextflow.config index da798582..f50ebd04 100644 --- a/nextflow.config +++ b/nextflow.config @@ -71,7 +71,9 @@ params { // MultiQC options multiqc_config = null multiqc_title = null + multiqc_logo = null max_multiqc_email_size = '25.MB' + multiqc_methods_description = null // Boilerplate options outdir = null @@ -81,6 +83,7 @@ params { email_on_fail = null plaintext_email = false monochrome_logs = false + hook_url = null help = false validate_params = true show_hidden_params = false @@ -232,7 +235,8 @@ manifest { description = 'ChIP-seq peak-calling and differential analysis pipeline.' mainScript = 'main.nf' nextflowVersion = '!>=21.10.3' - version = '2.1.0dev' + version = '2.1.0dev' + doi = 'https://doi.org/10.5281/zenodo.3240506' } // Load modules.config for DSL2 module specific options diff --git a/nextflow_schema.json b/nextflow_schema.json index 2a5f445c..e07ba6a6 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -528,12 +528,30 @@ "fa_icon": "fas fa-palette", "hidden": true }, + "hook_url": { + "type": "string", + "description": "Incoming hook URL for messaging service", + "fa_icon": "fas fa-people-group", + "help_text": "Incoming hook URL for messaging service. Currently, only MS Teams is supported.", + "hidden": true + }, "multiqc_config": { "type": "string", "description": "Custom config file to supply to MultiQC.", "fa_icon": "fas fa-cog", "hidden": true }, + "multiqc_logo": { + "type": "string", + "description": "Custom logo file to supply to MultiQC. File name must also be set in the MultiQC config file", + "fa_icon": "fas fa-image", + "hidden": true + }, + "multiqc_methods_description": { + "type": "string", + "description": "Custom MultiQC yaml file containing HTML including a methods description.", + "fa_icon": "fas fa-cog" + }, "tracedir": { "type": "string", "description": "Directory to keep pipeline Nextflow logs and reports.", diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index 7be0f832..eaca622b 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -40,8 +40,10 @@ if (anno_readme && file(anno_readme).exists()) { ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -ch_multiqc_config = file("$projectDir/assets/multiqc_config.yml", checkIfExists: true) -ch_multiqc_custom_config = params.multiqc_config ? Channel.fromPath(params.multiqc_config) : Channel.empty() +ch_multiqc_config = Channel.fromPath("$projectDir/assets/multiqc_config.yml", checkIfExists: true) +ch_multiqc_custom_config = params.multiqc_config ? Channel.fromPath( params.multiqc_config, checkIfExists: true ) : Channel.empty() +ch_multiqc_logo = params.multiqc_logo ? Channel.fromPath( params.multiqc_logo, checkIfExists: true ) : Channel.empty() +ch_multiqc_custom_methods_description = params.multiqc_methods_description ? file(params.multiqc_methods_description, checkIfExists: true) : file("$projectDir/assets/methods_description_template.yml", checkIfExists: true) // JSON files required by BAMTools for alignment filtering ch_bamtools_filter_se_config = file(params.bamtools_filter_se_config, checkIfExists: true) @@ -680,11 +682,16 @@ workflow CHIPSEQ { workflow_summary = WorkflowChipseq.paramsSummaryMultiqc(workflow, summary_params) ch_workflow_summary = Channel.value(workflow_summary) + methods_description = WorkflowChipseq.methodsDescriptionText(workflow, ch_multiqc_custom_methods_description) + ch_methods_description = Channel.value(methods_description) + MULTIQC ( ch_multiqc_config, ch_multiqc_custom_config.collect().ifEmpty([]), CUSTOM_DUMPSOFTWAREVERSIONS.out.mqc_yml.collect(), ch_workflow_summary.collectFile(name: 'workflow_summary_mqc.yaml'), + ch_methods_description.collectFile(name: 'methods_description_mqc.yaml'), + ch_multiqc_logo.collect().ifEmpty([]), FASTQC_TRIMGALORE.out.fastqc_zip.collect{it[1]}.ifEmpty([]), FASTQC_TRIMGALORE.out.trim_zip.collect{it[1]}.ifEmpty([]), @@ -737,6 +744,9 @@ workflow.onComplete { NfcoreTemplate.email(workflow, params, summary_params, projectDir, log, multiqc_report) } NfcoreTemplate.summary(workflow, params, log) + if (params.hook_url) { + NfcoreTemplate.adaptivecard(workflow, params, summary_params, projectDir, log) + } } /* From ddf3e6b8093401502ef561e26c1d63caa55c0ca7 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Thu, 6 Oct 2022 14:41:54 +0200 Subject: [PATCH 010/201] Reorder onComplete snippet --- workflows/chipseq.nf | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index eaca622b..54fcd44b 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -743,10 +743,12 @@ workflow.onComplete { if (params.email || params.email_on_fail) { NfcoreTemplate.email(workflow, params, summary_params, projectDir, log, multiqc_report) } - NfcoreTemplate.summary(workflow, params, log) + if (params.hook_url) { NfcoreTemplate.adaptivecard(workflow, params, summary_params, projectDir, log) } + + NfcoreTemplate.summary(workflow, params, log) } /* From 3f548fe5b5eb2997a4a0ab5419b4c9f63e6bd23b Mon Sep 17 00:00:00 2001 From: nf-core-bot Date: Thu, 8 Dec 2022 13:09:28 +0000 Subject: [PATCH 011/201] Template update for nf-core/tools version 2.7.1 --- .devcontainer/devcontainer.json | 27 +++++++++++++ .gitattributes | 1 + .github/CONTRIBUTING.md | 16 ++++++++ .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- .github/workflows/ci.yml | 8 +++- .github/workflows/fix-linting.yml | 6 +-- .github/workflows/linting.yml | 18 +++++---- .github/workflows/linting_comment.yml | 2 +- .prettierignore | 2 + CHANGELOG.md | 2 +- CITATION.cff | 56 --------------------------- README.md | 4 +- assets/slackreport.json | 34 ++++++++++++++++ docs/usage.md | 24 +++++++----- lib/NfcoreSchema.groovy | 1 - lib/NfcoreTemplate.groovy | 41 +++++++++++++++----- lib/WorkflowMain.groovy | 18 ++++++--- modules.json | 9 +++-- modules/local/samplesheet_check.nf | 4 ++ nextflow.config | 14 +++++-- nextflow_schema.json | 8 +++- workflows/chipseq.nf | 11 +++--- 22 files changed, 195 insertions(+), 113 deletions(-) create mode 100644 .devcontainer/devcontainer.json delete mode 100644 CITATION.cff create mode 100644 assets/slackreport.json diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 00000000..ea27a584 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,27 @@ +{ + "name": "nfcore", + "image": "nfcore/gitpod:latest", + "remoteUser": "gitpod", + + // Configure tool-specific properties. + "customizations": { + // Configure properties specific to VS Code. + "vscode": { + // Set *default* container specific settings.json values on container create. + "settings": { + "python.defaultInterpreterPath": "/opt/conda/bin/python", + "python.linting.enabled": true, + "python.linting.pylintEnabled": true, + "python.formatting.autopep8Path": "/opt/conda/bin/autopep8", + "python.formatting.yapfPath": "/opt/conda/bin/yapf", + "python.linting.flake8Path": "/opt/conda/bin/flake8", + "python.linting.pycodestylePath": "/opt/conda/bin/pycodestyle", + "python.linting.pydocstylePath": "/opt/conda/bin/pydocstyle", + "python.linting.pylintPath": "/opt/conda/bin/pylint" + }, + + // Add the IDs of extensions you want installed when the container is created. + "extensions": ["ms-python.python", "ms-python.vscode-pylance", "nf-core.nf-core-extensionpack"] + } + } +} diff --git a/.gitattributes b/.gitattributes index 050bb120..7a2dabc2 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,3 +1,4 @@ *.config linguist-language=nextflow +*.nf.test linguist-language=nextflow modules/nf-core/** linguist-generated subworkflows/nf-core/** linguist-generated diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 2bfaa681..5d23c1d9 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -101,3 +101,19 @@ If you are using a new feature from core Nextflow, you may bump the minimum requ ### Images and figures For overview images and other documents we follow the nf-core [style guidelines and examples](https://nf-co.re/developers/design_guidelines). + +## GitHub Codespaces + +This repo includes a devcontainer configuration which will create a GitHub Codespaces for Nextflow development! This is an online developer environment that runs in your browser, complete with VSCode and a terminal. + +To get started: + +- Open the repo in [Codespaces](https://github.com/nf-core/chipseq/codespaces) +- Tools installed + - nf-core + - Nextflow + +Devcontainer specs: + +- [DevContainer config](.devcontainer/devcontainer.json) +- [Dockerfile](.devcontainer/Dockerfile) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 1d09e717..99d3b9bf 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -42,7 +42,7 @@ body: attributes: label: System information description: | - * Nextflow version _(eg. 21.10.3)_ + * Nextflow version _(eg. 22.10.1)_ * Hardware _(eg. HPC, Desktop, Cloud)_ * Executor _(eg. slurm, local, awsbatch)_ * Container engine: _(e.g. Docker, Singularity, Conda, Podman, Shifter or Charliecloud)_ diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cf99db7f..fb742746 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,6 +11,10 @@ on: env: NXF_ANSI_LOG: false +concurrency: + group: "${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}" + cancel-in-progress: true + jobs: test: name: Run pipeline with test data @@ -20,11 +24,11 @@ jobs: strategy: matrix: NXF_VER: - - "21.10.3" + - "22.10.1" - "latest-everything" steps: - name: Check out pipeline code - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Install Nextflow uses: nf-core/setup-nextflow@v1 diff --git a/.github/workflows/fix-linting.yml b/.github/workflows/fix-linting.yml index b4f90734..f99a8155 100644 --- a/.github/workflows/fix-linting.yml +++ b/.github/workflows/fix-linting.yml @@ -24,7 +24,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.nf_core_bot_auth_token }} - - uses: actions/setup-node@v2 + - uses: actions/setup-node@v3 - name: Install Prettier run: npm install -g prettier @prettier/plugin-php @@ -34,9 +34,9 @@ jobs: id: prettier_status run: | if prettier --check ${GITHUB_WORKSPACE}; then - echo "::set-output name=result::pass" + echo "name=result::pass" >> $GITHUB_OUTPUT else - echo "::set-output name=result::fail" + echo "name=result::fail" >> $GITHUB_OUTPUT fi - name: Run 'prettier --write' diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 8a5ce69b..858d622e 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -4,6 +4,8 @@ name: nf-core linting # that the code meets the nf-core guidelines. on: push: + branches: + - dev pull_request: release: types: [published] @@ -12,9 +14,9 @@ jobs: EditorConfig: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - - uses: actions/setup-node@v2 + - uses: actions/setup-node@v3 - name: Install editorconfig-checker run: npm install -g editorconfig-checker @@ -25,9 +27,9 @@ jobs: Prettier: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - - uses: actions/setup-node@v2 + - uses: actions/setup-node@v3 - name: Install Prettier run: npm install -g prettier @@ -38,7 +40,7 @@ jobs: PythonBlack: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Check code lints with Black uses: psf/black@stable @@ -69,12 +71,12 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out pipeline code - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Install Nextflow uses: nf-core/setup-nextflow@v1 - - uses: actions/setup-python@v3 + - uses: actions/setup-python@v4 with: python-version: "3.7" architecture: "x64" @@ -97,7 +99,7 @@ jobs: - name: Upload linting log file artifact if: ${{ always() }} - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: linting-logs path: | diff --git a/.github/workflows/linting_comment.yml b/.github/workflows/linting_comment.yml index 04758f61..39635186 100644 --- a/.github/workflows/linting_comment.yml +++ b/.github/workflows/linting_comment.yml @@ -18,7 +18,7 @@ jobs: - name: Get PR number id: pr_number - run: echo "::set-output name=pr_number::$(cat linting-logs/PR_number.txt)" + run: echo "name=pr_number::$(cat linting-logs/PR_number.txt)" >> $GITHUB_OUTPUT - name: Post PR comment uses: marocchino/sticky-pull-request-comment@v2 diff --git a/.prettierignore b/.prettierignore index eb74a574..437d763d 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,5 +1,6 @@ email_template.html adaptivecard.json +slackreport.json .nextflow* work/ data/ @@ -8,3 +9,4 @@ results/ testing/ testing* *.pyc +bin/ diff --git a/CHANGELOG.md b/CHANGELOG.md index ddd11538..89107f2b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## v2.0.0 - [date] +## v2.1.0dev - [date] Initial release of nf-core/chipseq, created with the [nf-core](https://nf-co.re/) template. diff --git a/CITATION.cff b/CITATION.cff deleted file mode 100644 index 017666c0..00000000 --- a/CITATION.cff +++ /dev/null @@ -1,56 +0,0 @@ -cff-version: 1.2.0 -message: "If you use `nf-core tools` in your work, please cite the `nf-core` publication" -authors: - - family-names: Ewels - given-names: Philip - - family-names: Peltzer - given-names: Alexander - - family-names: Fillinger - given-names: Sven - - family-names: Patel - given-names: Harshil - - family-names: Alneberg - given-names: Johannes - - family-names: Wilm - given-names: Andreas - - family-names: Garcia - given-names: Maxime Ulysse - - family-names: Di Tommaso - given-names: Paolo - - family-names: Nahnsen - given-names: Sven -title: "The nf-core framework for community-curated bioinformatics pipelines." -version: 2.4.1 -doi: 10.1038/s41587-020-0439-x -date-released: 2022-05-16 -url: https://github.com/nf-core/tools -prefered-citation: - type: article - authors: - - family-names: Ewels - given-names: Philip - - family-names: Peltzer - given-names: Alexander - - family-names: Fillinger - given-names: Sven - - family-names: Patel - given-names: Harshil - - family-names: Alneberg - given-names: Johannes - - family-names: Wilm - given-names: Andreas - - family-names: Garcia - given-names: Maxime Ulysse - - family-names: Di Tommaso - given-names: Paolo - - family-names: Nahnsen - given-names: Sven - doi: 10.1038/s41587-020-0439-x - journal: nature biotechnology - start: 276 - end: 278 - title: "The nf-core framework for community-curated bioinformatics pipelines." - issue: 3 - volume: 38 - year: 2020 - url: https://dx.doi.org/10.1038/s41587-020-0439-x diff --git a/README.md b/README.md index 0b1f436d..eae41b5f 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?labelColor=000000&logo=Amazon%20AWS)](https://nf-co.re/chipseq/results)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.XXXXXXX) -[![Nextflow](https://img.shields.io/badge/nextflow%20DSL2-%E2%89%A521.10.3-23aa62.svg)](https://www.nextflow.io/) +[![Nextflow](https://img.shields.io/badge/nextflow%20DSL2-%E2%89%A522.10.1-23aa62.svg)](https://www.nextflow.io/) [![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/) [![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/) [![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/) @@ -31,7 +31,7 @@ On release, automated continuous integration tests run the pipeline on a full-si ## Quick Start -1. Install [`Nextflow`](https://www.nextflow.io/docs/latest/getstarted.html#installation) (`>=21.10.3`) +1. Install [`Nextflow`](https://www.nextflow.io/docs/latest/getstarted.html#installation) (`>=22.10.1`) 2. Install any of [`Docker`](https://docs.docker.com/engine/installation/), [`Singularity`](https://www.sylabs.io/guides/3.0/user-guide/) (you can follow [this tutorial](https://singularity-tutorial.github.io/01-installation/)), [`Podman`](https://podman.io/), [`Shifter`](https://nersc.gitlab.io/development/shifter/how-to-use/) or [`Charliecloud`](https://hpc.github.io/charliecloud/) for full pipeline reproducibility _(you can use [`Conda`](https://conda.io/miniconda.html) both to install Nextflow itself and also to manage software within pipelines. Please only use it within pipelines as a last resort; see [docs](https://nf-co.re/usage/configuration#basic-configuration-profiles))_. diff --git a/assets/slackreport.json b/assets/slackreport.json new file mode 100644 index 00000000..043d02f2 --- /dev/null +++ b/assets/slackreport.json @@ -0,0 +1,34 @@ +{ + "attachments": [ + { + "fallback": "Plain-text summary of the attachment.", + "color": "<% if (success) { %>good<% } else { %>danger<%} %>", + "author_name": "sanger-tol/readmapping v${version} - ${runName}", + "author_icon": "https://www.nextflow.io/docs/latest/_static/favicon.ico", + "text": "<% if (success) { %>Pipeline completed successfully!<% } else { %>Pipeline completed with errors<% } %>", + "fields": [ + { + "title": "Command used to launch the workflow", + "value": "```${commandLine}```", + "short": false + } + <% + if (!success) { %> + , + { + "title": "Full error message", + "value": "```${errorReport}```", + "short": false + }, + { + "title": "Pipeline configuration", + "value": "<% out << summary.collect{ k,v -> k == "hook_url" ? "_${k}_: (_hidden_)" : ( ( v.class.toString().contains('Path') || ( v.class.toString().contains('String') && v.contains('/') ) ) ? "_${k}_: `${v}`" : (v.class.toString().contains('DateTime') ? ("_${k}_: " + v.format(java.time.format.DateTimeFormatter.ofLocalizedDateTime(java.time.format.FormatStyle.MEDIUM))) : "_${k}_: ${v}") ) }.join(",\n") %>", + "short": false + } + <% } + %> + ], + "footer": "Completed at <% out << dateComplete.format(java.time.format.DateTimeFormatter.ofLocalizedDateTime(java.time.format.FormatStyle.MEDIUM)) %> (duration: ${duration})" + } + ] +} diff --git a/docs/usage.md b/docs/usage.md index 776325ae..6ed6fb45 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -83,9 +83,9 @@ nextflow pull nf-core/chipseq It is a good idea to specify a pipeline version when running the pipeline on your data. This ensures that a specific version of the pipeline code and software are used when you run your pipeline. If you keep using the same tag, you'll be running the same version of the pipeline, even if there have been changes to the code since. -First, go to the [nf-core/chipseq releases page](https://github.com/nf-core/chipseq/releases) and find the latest version number - numeric only (eg. `1.3.1`). Then specify this when running the pipeline with `-r` (one hyphen) - eg. `-r 1.3.1`. +First, go to the [nf-core/chipseq releases page](https://github.com/nf-core/chipseq/releases) and find the latest pipeline version - numeric only (eg. `1.3.1`). Then specify this when running the pipeline with `-r` (one hyphen) - eg. `-r 1.3.1`. Of course, you can switch to another version by changing the number after the `-r` flag. -This version number will be logged in reports when you run the pipeline, so that you'll know what you used when you look back in the future. +This version number will be logged in reports when you run the pipeline, so that you'll know what you used when you look back in the future. For example, at the bottom of the MultiQC reports. ## Core Nextflow arguments @@ -95,7 +95,7 @@ This version number will be logged in reports when you run the pipeline, so that Use this parameter to choose a configuration profile. Profiles can give configuration presets for different compute environments. -Several generic profiles are bundled with the pipeline which instruct the pipeline to use software packaged using different methods (Docker, Singularity, Podman, Shifter, Charliecloud, Conda) - see below. When using Biocontainers, most of these software packaging methods pull Docker containers from quay.io e.g [FastQC](https://quay.io/repository/biocontainers/fastqc) except for Singularity which directly downloads Singularity images via https hosted by the [Galaxy project](https://depot.galaxyproject.org/singularity/) and Conda which downloads and installs software locally from [Bioconda](https://bioconda.github.io/). +Several generic profiles are bundled with the pipeline which instruct the pipeline to use software packaged using different methods (Docker, Singularity, Podman, Shifter, Charliecloud, Conda) - see below. > We highly recommend the use of Docker or Singularity containers for full pipeline reproducibility, however when this is not possible, Conda is also supported. @@ -104,8 +104,11 @@ The pipeline also dynamically loads configurations from [https://github.com/nf-c Note that multiple profiles can be loaded, for example: `-profile test,docker` - the order of arguments is important! They are loaded in sequence, so later profiles can overwrite earlier profiles. -If `-profile` is not specified, the pipeline will run locally and expect all software to be installed and available on the `PATH`. This is _not_ recommended. +If `-profile` is not specified, the pipeline will run locally and expect all software to be installed and available on the `PATH`. This is _not_ recommended, since it can lead to different results on different machines dependent on the computer enviroment. +- `test` + - A profile with a complete configuration for automated testing + - Includes links to test data so needs no other parameters - `docker` - A generic configuration profile to be used with [Docker](https://docker.com/) - `singularity` @@ -118,9 +121,6 @@ If `-profile` is not specified, the pipeline will run locally and expect all sof - A generic configuration profile to be used with [Charliecloud](https://hpc.github.io/charliecloud/) - `conda` - A generic configuration profile to be used with [Conda](https://conda.io/docs/). Please only use Conda as a last resort i.e. when it's not possible to run the pipeline with Docker, Singularity, Podman, Shifter or Charliecloud. -- `test` - - A profile with a complete configuration for automated testing - - Includes links to test data so needs no other parameters ### `-resume` @@ -169,8 +169,14 @@ Work dir: Tip: you can replicate the issue by changing to the process work dir and entering the command `bash .command.run` ``` +#### For beginners + +A first step to bypass this error, you could try to increase the amount of CPUs, memory, and time for the whole pipeline. Therefor you can try to increase the resource for the parameters `--max_cpus`, `--max_memory`, and `--max_time`. Based on the error above, you have to increase the amount of memory. Therefore you can go to the [parameter documentation of rnaseq](https://nf-co.re/rnaseq/3.9/parameters) and scroll down to the `show hidden parameter` button to get the default value for `--max_memory`. In this case 128GB, you than can try to run your pipeline again with `--max_memory 200GB -resume` to skip all process, that were already calculated. If you can not increase the resource of the complete pipeline, you can try to adapt the resource for a single process as mentioned below. + +#### Advanced option on process level + To bypass this error you would need to find exactly which resources are set by the `STAR_ALIGN` process. The quickest way is to search for `process STAR_ALIGN` in the [nf-core/rnaseq Github repo](https://github.com/nf-core/rnaseq/search?q=process+STAR_ALIGN). -We have standardised the structure of Nextflow DSL2 pipelines such that all module files will be present in the `modules/` directory and so, based on the search results, the file we want is `modules/nf-core/software/star/align/main.nf`. +We have standardised the structure of Nextflow DSL2 pipelines such that all module files will be present in the `modules/` directory and so, based on the search results, the file we want is `modules/nf-core/star/align/main.nf`. If you click on the link to that file you will notice that there is a `label` directive at the top of the module that is set to [`label process_high`](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/modules/nf-core/software/star/align/main.nf#L9). The [Nextflow `label`](https://www.nextflow.io/docs/latest/process.html#label) directive allows us to organise workflow processes in separate groups which can be referenced in a configuration file to select and configure subset of processes having similar computing requirements. The default values for the `process_high` label are set in the pipeline's [`base.config`](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/conf/base.config#L33-L37) which in this case is defined as 72GB. @@ -189,7 +195,7 @@ process { > > If you get a warning suggesting that the process selector isn't recognised check that the process name has been specified correctly. -### Updating containers +### Updating containers (advanced users) The [Nextflow DSL2](https://www.nextflow.io/docs/latest/dsl2.html) implementation of this pipeline uses one container per process which makes it much easier to maintain and update software dependencies. If for some reason you need to use a different version of a particular tool with the pipeline then you just need to identify the `process` name and override the Nextflow `container` definition for that process using the `withName` declaration. For example, in the [nf-core/viralrecon](https://nf-co.re/viralrecon) pipeline a tool called [Pangolin](https://github.com/cov-lineages/pangolin) has been used during the COVID-19 pandemic to assign lineages to SARS-CoV-2 genome sequenced samples. Given that the lineage assignments change quite frequently it doesn't make sense to re-release the nf-core/viralrecon everytime a new version of Pangolin has been released. However, you can override the default container used by the pipeline by creating a custom config file and passing it as a command-line argument via `-c custom.config`. diff --git a/lib/NfcoreSchema.groovy b/lib/NfcoreSchema.groovy index b3d092f8..33cd4f6e 100755 --- a/lib/NfcoreSchema.groovy +++ b/lib/NfcoreSchema.groovy @@ -46,7 +46,6 @@ class NfcoreSchema { 'quiet', 'syslog', 'v', - 'version', // Options for `nextflow run` command 'ansi', diff --git a/lib/NfcoreTemplate.groovy b/lib/NfcoreTemplate.groovy index 27feb009..25a0a74a 100755 --- a/lib/NfcoreTemplate.groovy +++ b/lib/NfcoreTemplate.groovy @@ -32,6 +32,25 @@ class NfcoreTemplate { } } + // + // Generate version string + // + public static String version(workflow) { + String version_string = "" + + if (workflow.manifest.version) { + def prefix_v = workflow.manifest.version[0] != 'v' ? 'v' : '' + version_string += "${prefix_v}${workflow.manifest.version}" + } + + if (workflow.commitId) { + def git_shortsha = workflow.commitId.substring(0, 7) + version_string += "-g${git_shortsha}" + } + + return version_string + } + // // Construct and send completion email // @@ -61,7 +80,7 @@ class NfcoreTemplate { misc_fields['Nextflow Compile Timestamp'] = workflow.nextflow.timestamp def email_fields = [:] - email_fields['version'] = workflow.manifest.version + email_fields['version'] = NfcoreTemplate.version(workflow) email_fields['runName'] = workflow.runName email_fields['success'] = workflow.success email_fields['dateComplete'] = workflow.complete @@ -146,10 +165,10 @@ class NfcoreTemplate { } // - // Construct and send adaptive card - // https://adaptivecards.io + // Construct and send a notification to a web server as JSON + // e.g. Microsoft Teams and Slack // - public static void adaptivecard(workflow, params, summary_params, projectDir, log) { + public static void IM_notification(workflow, params, summary_params, projectDir, log) { def hook_url = params.hook_url def summary = [:] @@ -170,7 +189,7 @@ class NfcoreTemplate { misc_fields['nxf_timestamp'] = workflow.nextflow.timestamp def msg_fields = [:] - msg_fields['version'] = workflow.manifest.version + msg_fields['version'] = NfcoreTemplate.version(workflow) msg_fields['runName'] = workflow.runName msg_fields['success'] = workflow.success msg_fields['dateComplete'] = workflow.complete @@ -178,13 +197,16 @@ class NfcoreTemplate { msg_fields['exitStatus'] = workflow.exitStatus msg_fields['errorMessage'] = (workflow.errorMessage ?: 'None') msg_fields['errorReport'] = (workflow.errorReport ?: 'None') - msg_fields['commandLine'] = workflow.commandLine + msg_fields['commandLine'] = workflow.commandLine.replaceFirst(/ +--hook_url +[^ ]+/, "") msg_fields['projectDir'] = workflow.projectDir msg_fields['summary'] = summary << misc_fields // Render the JSON template def engine = new groovy.text.GStringTemplateEngine() - def hf = new File("$projectDir/assets/adaptivecard.json") + // Different JSON depending on the service provider + // Defaults to "Adaptive Cards" (https://adaptivecards.io), except Slack which has its own format + def json_path = hook_url.contains("hooks.slack.com") ? "slackreport.json" : "adaptivecard.json" + def hf = new File("$projectDir/assets/${json_path}") def json_template = engine.createTemplate(hf).make(msg_fields) def json_message = json_template.toString() @@ -209,7 +231,7 @@ class NfcoreTemplate { if (workflow.stats.ignoredCount == 0) { log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Pipeline completed successfully${colors.reset}-" } else { - log.info "-${colors.purple}[$workflow.manifest.name]${colors.red} Pipeline completed successfully, but with errored process(es) ${colors.reset}-" + log.info "-${colors.purple}[$workflow.manifest.name]${colors.yellow} Pipeline completed successfully, but with errored process(es) ${colors.reset}-" } } else { log.info "-${colors.purple}[$workflow.manifest.name]${colors.red} Pipeline completed with errors${colors.reset}-" @@ -297,6 +319,7 @@ class NfcoreTemplate { // public static String logo(workflow, monochrome_logs) { Map colors = logColours(monochrome_logs) + String workflow_version = NfcoreTemplate.version(workflow) String.format( """\n ${dashedLine(monochrome_logs)} @@ -305,7 +328,7 @@ class NfcoreTemplate { ${colors.blue} |\\ | |__ __ / ` / \\ |__) |__ ${colors.yellow}} {${colors.reset} ${colors.blue} | \\| | \\__, \\__/ | \\ |___ ${colors.green}\\`-._,-`-,${colors.reset} ${colors.green}`._,._,\'${colors.reset} - ${colors.purple} ${workflow.manifest.name} v${workflow.manifest.version}${colors.reset} + ${colors.purple} ${workflow.manifest.name} ${workflow_version}${colors.reset} ${dashedLine(monochrome_logs)} """.stripIndent() ) diff --git a/lib/WorkflowMain.groovy b/lib/WorkflowMain.groovy index 904824ae..91ffb560 100755 --- a/lib/WorkflowMain.groovy +++ b/lib/WorkflowMain.groovy @@ -19,7 +19,7 @@ class WorkflowMain { } // - // Print help to screen if required + // Generate help string // public static String help(workflow, params, log) { def command = "nextflow run ${workflow.manifest.name} --input samplesheet.csv --genome GRCh37 -profile docker" @@ -32,7 +32,7 @@ class WorkflowMain { } // - // Print parameter summary log to screen + // Generate parameter summary log string // public static String paramsSummaryLog(workflow, params, log) { def summary_log = '' @@ -53,15 +53,21 @@ class WorkflowMain { System.exit(0) } - // Validate workflow parameters via the JSON schema - if (params.validate_params) { - NfcoreSchema.validateParameters(workflow, params, log) + // Print workflow version and exit on --version + if (params.version) { + String workflow_version = NfcoreTemplate.version(workflow) + log.info "${workflow.manifest.name} ${workflow_version}" + System.exit(0) } // Print parameter summary log to screen - log.info paramsSummaryLog(workflow, params, log) + // Validate workflow parameters via the JSON schema + if (params.validate_params) { + NfcoreSchema.validateParameters(workflow, params, log) + } + // Check that a -profile or Nextflow config has been provided to run the pipeline NfcoreTemplate.checkConfigProvided(workflow, log) diff --git a/modules.json b/modules.json index cfa6d32f..5db2402e 100644 --- a/modules.json +++ b/modules.json @@ -7,15 +7,18 @@ "nf-core": { "custom/dumpsoftwareversions": { "branch": "master", - "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", + "installed_by": ["modules"] }, "fastqc": { "branch": "master", - "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", + "installed_by": ["modules"] }, "multiqc": { "branch": "master", - "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905" + "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", + "installed_by": ["modules"] } } } diff --git a/modules/local/samplesheet_check.nf b/modules/local/samplesheet_check.nf index 5094e5a0..2b5892bd 100644 --- a/modules/local/samplesheet_check.nf +++ b/modules/local/samplesheet_check.nf @@ -1,5 +1,6 @@ process SAMPLESHEET_CHECK { tag "$samplesheet" + label 'process_single' conda (params.enable_conda ? "conda-forge::python=3.8.3" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? @@ -13,6 +14,9 @@ process SAMPLESHEET_CHECK { path '*.csv' , emit: csv path "versions.yml", emit: versions + when: + task.ext.when == null || task.ext.when + script: // This script is bundled with the pipeline, in nf-core/chipseq/bin/ """ check_samplesheet.py \\ diff --git a/nextflow.config b/nextflow.config index fa8bfa21..dd16a37e 100644 --- a/nextflow.config +++ b/nextflow.config @@ -35,6 +35,7 @@ params { monochrome_logs = false hook_url = null help = false + version = false validate_params = true show_hidden_params = false schema_ignore_params = 'genomes' @@ -81,6 +82,7 @@ profiles { debug { process.beforeScript = 'echo $HOSTNAME' } conda { params.enable_conda = true + conda.enabled = true docker.enabled = false singularity.enabled = false podman.enabled = false @@ -89,6 +91,7 @@ profiles { } mamba { params.enable_conda = true + conda.enabled = true conda.useMamba = true docker.enabled = false singularity.enabled = false @@ -104,6 +107,9 @@ profiles { shifter.enabled = false charliecloud.enabled = false } + arm { + docker.runOptions = '-u $(id -u):$(id -g) --platform=linux/amd64' + } singularity { singularity.enabled = true singularity.autoMounts = true @@ -185,12 +191,12 @@ dag { manifest { name = 'nf-core/chipseq' - author = 'Espinosa-Carrasco J, Patel H, Wang C, Ewels P' + author = """Espinosa-Carrasco J, Patel H, Wang C, Ewels P""" homePage = 'https://github.com/nf-core/chipseq' - description = 'ChIP-seq peak-calling and differential analysis pipeline.' + description = """ChIP-seq peak-calling and differential analysis pipeline.""" mainScript = 'main.nf' - nextflowVersion = '!>=21.10.3' - version = '2.0.0' + nextflowVersion = '!>=22.10.1' + version = '2.1.0dev' doi = '' } diff --git a/nextflow_schema.json b/nextflow_schema.json index dd7c26cf..cd6daca0 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -176,6 +176,12 @@ "fa_icon": "fas fa-question-circle", "hidden": true }, + "version": { + "type": "boolean", + "description": "Display version and exit.", + "fa_icon": "fas fa-question-circle", + "hidden": true + }, "publish_dir_mode": { "type": "string", "default": "copy", @@ -217,7 +223,7 @@ "type": "string", "description": "Incoming hook URL for messaging service", "fa_icon": "fas fa-people-group", - "help_text": "Incoming hook URL for messaging service. Currently, only MS Teams is supported.", + "help_text": "Incoming hook URL for messaging service. Currently, MS Teams and Slack are supported.", "hidden": true }, "multiqc_config": { diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index a39a34d2..c0645263 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -82,7 +82,7 @@ workflow CHIPSEQ { ch_versions = ch_versions.mix(FASTQC.out.versions.first()) CUSTOM_DUMPSOFTWAREVERSIONS ( - ch_versions.unique().collectFile(name: 'collated_versions.yml') + ch_versions.unique{ it.text }.collectFile(name: 'collated_versions.yml') ) // @@ -102,12 +102,11 @@ workflow CHIPSEQ { MULTIQC ( ch_multiqc_files.collect(), - ch_multiqc_config.collect().ifEmpty([]), - ch_multiqc_custom_config.collect().ifEmpty([]), - ch_multiqc_logo.collect().ifEmpty([]) + ch_multiqc_config.toList(), + ch_multiqc_custom_config.toList(), + ch_multiqc_logo.toList() ) multiqc_report = MULTIQC.out.report.toList() - ch_versions = ch_versions.mix(MULTIQC.out.versions) } /* @@ -122,7 +121,7 @@ workflow.onComplete { } NfcoreTemplate.summary(workflow, params, log) if (params.hook_url) { - NfcoreTemplate.adaptivecard(workflow, params, summary_params, projectDir, log) + NfcoreTemplate.IM_notification(workflow, params, summary_params, projectDir, log) } } From 8913497f785bfcc8a73171e7439c0717eff5c5cc Mon Sep 17 00:00:00 2001 From: nf-core-bot Date: Mon, 19 Dec 2022 12:04:59 +0000 Subject: [PATCH 012/201] Template update for nf-core/tools version 2.7.2 --- .github/workflows/fix-linting.yml | 4 +- .github/workflows/linting_comment.yml | 2 +- lib/WorkflowMain.groovy | 2 +- modules.json | 6 +- modules/local/samplesheet_check.nf | 2 +- .../custom/dumpsoftwareversions/main.nf | 2 +- .../templates/dumpsoftwareversions.py | 99 ++++++++++--------- modules/nf-core/fastqc/main.nf | 40 +++----- modules/nf-core/multiqc/main.nf | 2 +- nextflow.config | 3 - nextflow_schema.json | 6 -- workflows/chipseq.nf | 2 +- 12 files changed, 82 insertions(+), 88 deletions(-) mode change 100644 => 100755 modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py diff --git a/.github/workflows/fix-linting.yml b/.github/workflows/fix-linting.yml index f99a8155..c695df98 100644 --- a/.github/workflows/fix-linting.yml +++ b/.github/workflows/fix-linting.yml @@ -34,9 +34,9 @@ jobs: id: prettier_status run: | if prettier --check ${GITHUB_WORKSPACE}; then - echo "name=result::pass" >> $GITHUB_OUTPUT + echo "result=pass" >> $GITHUB_OUTPUT else - echo "name=result::fail" >> $GITHUB_OUTPUT + echo "result=fail" >> $GITHUB_OUTPUT fi - name: Run 'prettier --write' diff --git a/.github/workflows/linting_comment.yml b/.github/workflows/linting_comment.yml index 39635186..0bbcd30f 100644 --- a/.github/workflows/linting_comment.yml +++ b/.github/workflows/linting_comment.yml @@ -18,7 +18,7 @@ jobs: - name: Get PR number id: pr_number - run: echo "name=pr_number::$(cat linting-logs/PR_number.txt)" >> $GITHUB_OUTPUT + run: echo "pr_number=$(cat linting-logs/PR_number.txt)" >> $GITHUB_OUTPUT - name: Post PR comment uses: marocchino/sticky-pull-request-comment@v2 diff --git a/lib/WorkflowMain.groovy b/lib/WorkflowMain.groovy index 91ffb560..bfe9c5ea 100755 --- a/lib/WorkflowMain.groovy +++ b/lib/WorkflowMain.groovy @@ -72,7 +72,7 @@ class WorkflowMain { NfcoreTemplate.checkConfigProvided(workflow, log) // Check that conda channels are set-up correctly - if (params.enable_conda) { + if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { Utils.checkCondaChannels(log) } diff --git a/modules.json b/modules.json index 5db2402e..6e4968b6 100644 --- a/modules.json +++ b/modules.json @@ -7,17 +7,17 @@ "nf-core": { "custom/dumpsoftwareversions": { "branch": "master", - "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", + "git_sha": "c8e35eb2055c099720a75538d1b8adb3fb5a464c", "installed_by": ["modules"] }, "fastqc": { "branch": "master", - "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", + "git_sha": "c8e35eb2055c099720a75538d1b8adb3fb5a464c", "installed_by": ["modules"] }, "multiqc": { "branch": "master", - "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", + "git_sha": "c8e35eb2055c099720a75538d1b8adb3fb5a464c", "installed_by": ["modules"] } } diff --git a/modules/local/samplesheet_check.nf b/modules/local/samplesheet_check.nf index 2b5892bd..5d5d6afb 100644 --- a/modules/local/samplesheet_check.nf +++ b/modules/local/samplesheet_check.nf @@ -2,7 +2,7 @@ process SAMPLESHEET_CHECK { tag "$samplesheet" label 'process_single' - conda (params.enable_conda ? "conda-forge::python=3.8.3" : null) + conda "conda-forge::python=3.8.3" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/python:3.8.3' : 'quay.io/biocontainers/python:3.8.3' }" diff --git a/modules/nf-core/custom/dumpsoftwareversions/main.nf b/modules/nf-core/custom/dumpsoftwareversions/main.nf index cebb6e05..3df21765 100644 --- a/modules/nf-core/custom/dumpsoftwareversions/main.nf +++ b/modules/nf-core/custom/dumpsoftwareversions/main.nf @@ -2,7 +2,7 @@ process CUSTOM_DUMPSOFTWAREVERSIONS { label 'process_single' // Requires `pyyaml` which does not have a dedicated container but is in the MultiQC container - conda (params.enable_conda ? 'bioconda::multiqc=1.13' : null) + conda "bioconda::multiqc=1.13" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/multiqc:1.13--pyhdfd78af_0' : 'quay.io/biocontainers/multiqc:1.13--pyhdfd78af_0' }" diff --git a/modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py b/modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py old mode 100644 new mode 100755 index 787bdb7b..e55b8d43 --- a/modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py +++ b/modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py @@ -1,5 +1,9 @@ #!/usr/bin/env python + +"""Provide functions to merge multiple versions.yml files.""" + + import platform from textwrap import dedent @@ -7,6 +11,7 @@ def _make_versions_html(versions): + """Generate a tabular HTML output of all versions for MultiQC.""" html = [ dedent( """\\ @@ -45,47 +50,53 @@ def _make_versions_html(versions): return "\\n".join(html) -versions_this_module = {} -versions_this_module["${task.process}"] = { - "python": platform.python_version(), - "yaml": yaml.__version__, -} - -with open("$versions") as f: - versions_by_process = yaml.load(f, Loader=yaml.BaseLoader) | versions_this_module - -# aggregate versions by the module name (derived from fully-qualified process name) -versions_by_module = {} -for process, process_versions in versions_by_process.items(): - module = process.split(":")[-1] - try: - if versions_by_module[module] != process_versions: - raise AssertionError( - "We assume that software versions are the same between all modules. " - "If you see this error-message it means you discovered an edge-case " - "and should open an issue in nf-core/tools. " - ) - except KeyError: - versions_by_module[module] = process_versions - -versions_by_module["Workflow"] = { - "Nextflow": "$workflow.nextflow.version", - "$workflow.manifest.name": "$workflow.manifest.version", -} - -versions_mqc = { - "id": "software_versions", - "section_name": "${workflow.manifest.name} Software Versions", - "section_href": "https://github.com/${workflow.manifest.name}", - "plot_type": "html", - "description": "are collected at run time from the software output.", - "data": _make_versions_html(versions_by_module), -} - -with open("software_versions.yml", "w") as f: - yaml.dump(versions_by_module, f, default_flow_style=False) -with open("software_versions_mqc.yml", "w") as f: - yaml.dump(versions_mqc, f, default_flow_style=False) - -with open("versions.yml", "w") as f: - yaml.dump(versions_this_module, f, default_flow_style=False) +def main(): + """Load all version files and generate merged output.""" + versions_this_module = {} + versions_this_module["${task.process}"] = { + "python": platform.python_version(), + "yaml": yaml.__version__, + } + + with open("$versions") as f: + versions_by_process = yaml.load(f, Loader=yaml.BaseLoader) | versions_this_module + + # aggregate versions by the module name (derived from fully-qualified process name) + versions_by_module = {} + for process, process_versions in versions_by_process.items(): + module = process.split(":")[-1] + try: + if versions_by_module[module] != process_versions: + raise AssertionError( + "We assume that software versions are the same between all modules. " + "If you see this error-message it means you discovered an edge-case " + "and should open an issue in nf-core/tools. " + ) + except KeyError: + versions_by_module[module] = process_versions + + versions_by_module["Workflow"] = { + "Nextflow": "$workflow.nextflow.version", + "$workflow.manifest.name": "$workflow.manifest.version", + } + + versions_mqc = { + "id": "software_versions", + "section_name": "${workflow.manifest.name} Software Versions", + "section_href": "https://github.com/${workflow.manifest.name}", + "plot_type": "html", + "description": "are collected at run time from the software output.", + "data": _make_versions_html(versions_by_module), + } + + with open("software_versions.yml", "w") as f: + yaml.dump(versions_by_module, f, default_flow_style=False) + with open("software_versions_mqc.yml", "w") as f: + yaml.dump(versions_mqc, f, default_flow_style=False) + + with open("versions.yml", "w") as f: + yaml.dump(versions_this_module, f, default_flow_style=False) + + +if __name__ == "__main__": + main() diff --git a/modules/nf-core/fastqc/main.nf b/modules/nf-core/fastqc/main.nf index 05730368..9ae58381 100644 --- a/modules/nf-core/fastqc/main.nf +++ b/modules/nf-core/fastqc/main.nf @@ -2,7 +2,7 @@ process FASTQC { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::fastqc=0.11.9" : null) + conda "bioconda::fastqc=0.11.9" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/fastqc:0.11.9--0' : 'quay.io/biocontainers/fastqc:0.11.9--0' }" @@ -20,30 +20,22 @@ process FASTQC { script: def args = task.ext.args ?: '' - // Add soft-links to original FastQs for consistent naming in pipeline def prefix = task.ext.prefix ?: "${meta.id}" - if (meta.single_end) { - """ - [ ! -f ${prefix}.fastq.gz ] && ln -s $reads ${prefix}.fastq.gz - fastqc $args --threads $task.cpus ${prefix}.fastq.gz - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - fastqc: \$( fastqc --version | sed -e "s/FastQC v//g" ) - END_VERSIONS - """ - } else { - """ - [ ! -f ${prefix}_1.fastq.gz ] && ln -s ${reads[0]} ${prefix}_1.fastq.gz - [ ! -f ${prefix}_2.fastq.gz ] && ln -s ${reads[1]} ${prefix}_2.fastq.gz - fastqc $args --threads $task.cpus ${prefix}_1.fastq.gz ${prefix}_2.fastq.gz - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - fastqc: \$( fastqc --version | sed -e "s/FastQC v//g" ) - END_VERSIONS - """ - } + // Make list of old name and new name pairs to use for renaming in the bash while loop + def old_new_pairs = reads instanceof Path || reads.size() == 1 ? [[ reads, "${prefix}.${reads.extension}" ]] : reads.withIndex().collect { entry, index -> [ entry, "${prefix}_${index + 1}.${entry.extension}" ] } + def rename_to = old_new_pairs*.join(' ').join(' ') + def renamed_files = old_new_pairs.collect{ old_name, new_name -> new_name }.join(' ') + """ + printf "%s %s\\n" $rename_to | while read old_name new_name; do + [ -f "\${new_name}" ] || ln -s \$old_name \$new_name + done + fastqc $args --threads $task.cpus $renamed_files + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + fastqc: \$( fastqc --version | sed -e "s/FastQC v//g" ) + END_VERSIONS + """ stub: def prefix = task.ext.prefix ?: "${meta.id}" diff --git a/modules/nf-core/multiqc/main.nf b/modules/nf-core/multiqc/main.nf index a8159a57..68f66bea 100644 --- a/modules/nf-core/multiqc/main.nf +++ b/modules/nf-core/multiqc/main.nf @@ -1,7 +1,7 @@ process MULTIQC { label 'process_single' - conda (params.enable_conda ? 'bioconda::multiqc=1.13' : null) + conda "bioconda::multiqc=1.13" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/multiqc:1.13--pyhdfd78af_0' : 'quay.io/biocontainers/multiqc:1.13--pyhdfd78af_0' }" diff --git a/nextflow.config b/nextflow.config index dd16a37e..8f2539d1 100644 --- a/nextflow.config +++ b/nextflow.config @@ -39,7 +39,6 @@ params { validate_params = true show_hidden_params = false schema_ignore_params = 'genomes' - enable_conda = false // Config options @@ -81,7 +80,6 @@ try { profiles { debug { process.beforeScript = 'echo $HOSTNAME' } conda { - params.enable_conda = true conda.enabled = true docker.enabled = false singularity.enabled = false @@ -90,7 +88,6 @@ profiles { charliecloud.enabled = false } mamba { - params.enable_conda = true conda.enabled = true conda.useMamba = true docker.enabled = false diff --git a/nextflow_schema.json b/nextflow_schema.json index cd6daca0..29c14519 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -263,12 +263,6 @@ "description": "Show all params when using `--help`", "hidden": true, "help_text": "By default, parameters set as _hidden_ in the schema are not shown on the command line when a user runs with `--help`. Specifying this option will tell the pipeline to show all parameters." - }, - "enable_conda": { - "type": "boolean", - "description": "Run this workflow with Conda. You can also use '-profile conda' instead of providing this parameter.", - "hidden": true, - "fa_icon": "fas fa-bacon" } } } diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index c0645263..f43f0a6f 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -82,7 +82,7 @@ workflow CHIPSEQ { ch_versions = ch_versions.mix(FASTQC.out.versions.first()) CUSTOM_DUMPSOFTWAREVERSIONS ( - ch_versions.unique{ it.text }.collectFile(name: 'collated_versions.yml') + ch_versions.unique().collectFile(name: 'collated_versions.yml') ) // From 0ea0d5bfcda50c6c1014b2c8a24765c91695c971 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Fri, 23 Dec 2022 14:29:17 +0100 Subject: [PATCH 013/201] Update changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 03f988a3..8b41ec17 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Enhancements & fixes +- Updated pipeline template to [nf-core/tools 2.7.2](https://github.com/nf-core/tools/releases/tag/2.7.2) + ## [[2.0.0](https://github.com/nf-core/chipseq/releases/tag/2.0.0)] - 2022-10-03 ### Enhancements & fixes From 6e106dd4bde4682b2d4e1beb6a9687d3e9607964 Mon Sep 17 00:00:00 2001 From: Sarah Guinchard Date: Thu, 5 Jan 2023 16:34:43 +0100 Subject: [PATCH 014/201] Add metro map files + embed image in readme --- README.md | 2 + .../images/nf-core-chipseq_metro_map_grey.png | Bin 0 -> 203370 bytes .../images/nf-core-chipseq_metro_map_grey.svg | 2799 +++++++++++++++++ 3 files changed, 2801 insertions(+) create mode 100644 docs/images/nf-core-chipseq_metro_map_grey.png create mode 100644 docs/images/nf-core-chipseq_metro_map_grey.svg diff --git a/README.md b/README.md index 519a93eb..7c5467c7 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,8 @@ You can find numerous talks on the [nf-core events page](https://nf-co.re/events ## Pipeline summary +![nf-core/chipseq metro map](docs/images/nf-core-chipseq_metro_map_grey.png) + 1. Raw read QC ([`FastQC`](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/)) 2. Adapter trimming ([`Trim Galore!`](https://www.bioinformatics.babraham.ac.uk/projects/trim_galore/)) 3. Choice of multiple aligners diff --git a/docs/images/nf-core-chipseq_metro_map_grey.png b/docs/images/nf-core-chipseq_metro_map_grey.png new file mode 100644 index 0000000000000000000000000000000000000000..952be250fbcf0c3118c89448b0371e058e39bd1f GIT binary patch literal 203370 zcmdS>WmJ~y7d?zV>NZg<5JZrzf)WBMA#DPJO1H#T1Stt=kT6jYP+D4~Qw5|1R0I?W zDUlXYI;0!kd7;1md%m1;&WH2iJ&fVl=zg9%u6tc;%{kXx_d|JEsV$orHc=>)Ez;-C zDpDwGhbfdb4>qjBzeFuu&clEHu{tfSya7KqH(Y&yzi+fSr(uQ9zaW2BIqPf8;U9Nf zOQ>5bnHyN!UB01Dv9q(|HZn7@(z|S-&uxC=TIjGS1BLQ0Mf&V1W&5zfHamM|{iUT* zr&=nmeKhQ~|FA3i%l|_|E5G6P+uO=&S4;A~X^VL1)6!|%lz4wzt8jAv#m74Tu&>*< z>WS~&ZL2r-iSdrlALt0vy)S*}(^Hm_MjOkaFslfM?y4NaZrot+UvDpeNE*Ktv|?_xN~Ssn?!{Y;)a==aiFPCp-62xNGqNe#0;S zva+xQGsP-aM2KCo>aI8{BKh>{)vJbY-BxX)qTBVp6oIZ2rS7+yCTN*6EdJ)^f zFIkN`m-OfoX?_)NJyEZ1*QRg#=n9w48+E^f7mtZZ#u_(gCfW|SCQc2tgyLGY_6Dq? zvr$WBZ$4k^$y1mhaJ|{E^wDkuDfR}eh4IB29pA4h8qb|Z3e?DbH7Vd!jBggF zTC$Q1d8DU1T#GcbjAI`^-j?y4#^`e(7j@a4bz2nw`!7n`h{K>ENu~VrXI}5>2(e^* zP|z*SwWDci}>cWszvmz4-We+>CbNdi@}7ZR?remoxN~^MZ67 zrK`o~Q<{$Aq?;G#ryJ9>^B;8;I8B!~Ha31Z`^(SYKW5dMb%NpPYUvTU@|gAlr_jeq zS9uL8zP!Ij<<<4!!&!dg`j7Z%;~NL7l9Cdk@R646bOEzgwi72#>{MKJvhuA5p8bYT zpFUBSZ55x1YIhvq@~c&@@MaR>v-p0}-6}UXH{{6W+po>qk|M;MLi|&#?{zG@xw$c9 zOKV!{E|BMQy*abydUl(^X%1ZHHG$B|&Y5z~^c02p{j@rh+UlB`A(CDUvEd?iNf$!} z8p4u>n+u$>)5eVo%F4?8hmwLr zCf>bt%g=Xu(lcb6zclLOYS@-%(-5`+u{QkB%d6qR_5=RG!G^Z}!up?lSsi~oJXGPm zio)&rUW^i@9xoU9m3+Y8|0+Ik==gE9t}>s-TWi)=c(0~VHhA>*6lvb$N@-Y}30P987=j?p?v5cr1`xdA9xN6|yS~ z$`X`J1w!Lw!;`Q$AtWL#Q=~ zQ+-@SGTis+)5MzRQUkp;&kdwjQG!m93pU^>oQZCCU3SjUtCu$Uno=V+-KuB18Rr%5 ze7Byt-si-Uq3t7KR&jBi1Co!vJR!U92ot&N+@Iau#_#WLY%X#wYEtNr zY09`ZFkXG)xCpZB$<&}HPo5psEA9RH$_$r=|V$fcX%xibje zh}nPOK&7{0&$l7l$}l0Nfv>5&B1qjQQ|-Ddc4HaYjvlQUWV0#vWj#OfVW(U$F7VIy z_q}}i^5%o1(q?99r9RB*Yt~Z--o)E1%Lhg`S-G&CL7fFU6*d+ zNwPnE`jkP;G1Ggmm@yVSL6v5B6(!(DY>-av{78{G9;i|A{VjPTh4bXDDDsCyXTIN= z8!cl-){XyAR%Y_y!FFM%sTAa|sAdwL${`vV2JC!%_5a^IY6gB||6|9Fkw9s zJyrE$xUkCn^vH2+8$PEgQ|G1G9v`WNo5@jOq#RYY*Yjg_0` z77$Q9-f=VI7%wl0lD|P`+KwkJzh(da{e0J|7&G*84x5{ga6Fx^lRJ^>>#*u=0B+h% zxT-SMcuC3P_xDo*L&v0V+<4XQJguFfhZE;)Mm5jP&sY1@TC}|66i{(#Ppk8Eo60eB zV`Jlh3Mxw4hvGqe&MNDA%j@!Pal2uyfJ*H>^~q{-UJU$-_=&A%VrJIuvqD;_SKj3* zLG~WWJV8NfiB@&y1@>}clm7QN?~V=*4)%;NL6MP>l})>=Op)hZxi)S#wsV&+U!Lnv zPWKNCv{kTT61F~f>9uKM%+;(&RN|$Dak+x&b|(){&-{ekA6;EpS3mj6$Y68H&u?ZD zRu&Qxdet&S$1kU<8o02y$jPoUWbjhGK3%s+=IOx8vc1nOwnoX4aF_SlD>gAVkghu+ zIzKg}G}2zcxlf_3CPsRv*z&?SotT`aCIj{}#Z6KD@GgzRfu14HljdHpp~%yVA?W`6 zSnMOu;{O-F?=@Ke=P+rkA|jV+YHF}5fh@7{@giDsGBUo|+1a~mF4%QCJqZkqL*ZNSs zzS`J>vAi9CC`{gJDeBLV#ibRo&G`R&OVM^3%6g@K_*caIU{l7XEn6Bs`5g)f4ds-U zxp6qmFZZ z@so?w9h?UaJpX2S>(;G?;PR}Yjw0Q6@7|SK7C27wS^hX%urT)77>O&f+I70kZgQr} zhm(^t`Gcjd^JIg>wN$PfR#sUqi;nJA<^_|12W7(&)>7^I*wN7ubCn|RaM%_|(RKsH z!e;mG-FeGP^OGfXx*tjEjh7r~%g-*H?cQV4U!QoP3l&z!b9w$lI;*>izQ|;q@XBbrlp8r6>OWd+Yz<I+#1sc^VS{Uj6Ca+Y9o&8HKLc`fJ8stBz>Sw@YtrYYR_{jfqLXHk34BRE`MXRO4V_`7lV2Z2T>3 z7e!|D)1gTD%=D|Hqoa=BZ>^VMnnn&W8E(yOc$_f&0%c6d${;cO${LDW-Y<7%mncKs zweR1*&%E)ge1CeXM#lYUXIfM?^9pYYh0Y7f&i@CV-cga$shP$N93`ctfr8z*=2(6O zT0xtBe}Kc4>iYdOcWd&7fNKa3iHK#Cy<{Qjws%4D6yr5y304F7o>-bG9;DCmtu)}A zED!^@%I%r_{aZd+HMJh#EH`&FGWW;bd-t9)VPoYyw(6;R%Jl3jlD6rSo{Wr)mE*O= z;&>bk6#3h&ty(LE;`vtu9M`BLexCL)2$%*>4K_W0^k}n$loTftB^EJn=yeOXfI%vf zih=Dv6w3G0-$Wh&0HiXM zp%i0Rq{{E2Bvi7suAvyeS%PUrurP_(UMO0cOIA%$S9o@16af=k6)qwYb}9Ep zYy@_%Vq^<8Hp=a{z6DZ8o#!TYL=FrMr2=sZaZwAoF1;~(Gg?}EN6jzpVrV}K`Qb*Z zLEHSP;kIPE4reu8ms$PXsQ`u(E;pZ~2Ze?v-=m@noLj)A9w?k2=Jn1tZ90vD?LjDt ze3#8gdt2vBVthpH8;9`=GD>-`QXU}fTd3eNm61dy}4S{zSuRvOl(r+4aqb_N6oTH!CbJ zErwUoHD(kZe5rnT6E*eMYmv@zmR+Sr3p1nTm6cp|R-Psj4lUQS0}_$c+4hhytJKUi ze1`i^20`1jd9yO2F#uO^_wGLg=K_#=czbi(M1Zep6c!fJmcOtY(P28_qUBp3d!A0) zvV@j4eL+>rhJESgM#1hshTs5lwRtIFZ@1}Wmpq^T4Ol3XK&Zk*Oz)_ zfqg*}(Tsu?Z!_OJBdokGW%4YnevYhC+V$YUhIm^cB(i#PnwNS~YuByg;N?|{mkqD& zt_-#L@!{dI0v7<2h9Xy2Ko!lUrKR$U3gxR;V_sixi9=j|Ho9qH@q$z)(7di-JPfHar8=XkU0G=<2OHZ*Lv3ELuN!p3NZg|m zZ*wfWJh)o(b90R*dTS)a(+|?~8azTq=(29Ft5ZULu0h62aC4({Eri>(Ys6LmgPXLO z(Vjwzs{vnTWnUHx6}CyzL3NXv*+`+F%13#iTJ_%9D*gqVT&KHd^IlQ)Jp!g*T63)? zC+g&aW>tUW#psoJYi65iKWW^Q{pqQYRh;>kmh=y`*;+Hqf&BdW_}d3wX&*1m6~X}78xKo(x9fB zO3frpU-mhOM-5Mv@9M{G(uzRp49Cs1(h6sR8v4JchQ=(Y3T|QGlb4Z^d6M3iqQNVz z2$AE;l`Hi~kjIL=ld|K(3dV39j{rV-Om92i*aqQC}CYNWD zC0K4lY}^oj6V)dYPVCE(jd-jiQ20&1ed(Lqa=bOFGW2+mdS=jAk$qFHRs8KccR0iB zka1!QRl7>PCb7W%Pp?HJ{vJRISI)vog|n_3eTh1iSe^eOXs$N)eAdm`8(rUU$fRKcc%YyyW9`^HTNjvE1;z3W1 zQM&O&ZsbfM{umljt68MwL`UzQ*)Gb?E^XIp=?>{BmSk!WiP9{T1-d3Xo27->v8ky* z|03aK*X8+0NpHqPlrpj{sFO>Pyt4j#x4J8^-@I^E5|vg3Te&#w*|TSoUvJaS>FDTa z=2$!%)%48-q|$a>oa~2aLX;7AA%p6ORBZad$y8vJ1l6@gBD+*ybSPS4^=t-Gvl+^e zQ5t|4$qExFxqt^(9#CSIZ30MCItt$G$!PbPE1TY@F-7CRi4#RP3cQm!4TUuRgGdzH z{?4J3j@^@vCy<3p<5kQDONyJvGZkuz@{_l3Pl`=_)1&T@4HG08p025S9QW%uT0)m) z*(JG%B`r;|*t&HqXjuc>$pg9Z6&yclw|b=^{n zc~PS4@=||CQBll-PAnp#j+CItbuTs~8ulasS!`iAe=v^y#npSSBw=X%JH z;legDE!pOc{Eb=%q{#ue^9Nt;pQh*Vh>VO>P1i|X0rrxQ==bUB>bg7ML6L}qcEwPJ z3fN#(Ev6PXtNj!oC6|0LgijhtBi*vyEPLP{oetY*ZbU=`;Ek^(p$I^dGQO&5T8Z`b z%Fnf{AXE^TEz+j2nZm|Qs;dMF*fRv1P*^^69htVfCJ1InkaU}&tj7NMNEbyz!vvgM zH9)~c?D+BHpF8#7l5?*%yt+4j?~Y$9r74l<5(>=-HS}9 zEGa2@Z+vO0#XN6mZs1o>&mmV=R|k80!AY|=Y;=X3pct^7H}BKInJkVvPV_!I6k-3q zGYs?)=^{?td5$Qgr4GprNrc{Waix9`T3(ti5@DoE8RoXvlFvb+2@$xinRu^fHFC0M zfn(Oo@6U7!90_y;xVrp^z4c&EeWH@E{qO(0nuAr#mz`f7u8KU7j!-xmdfc4bvi0Ke zwipy{hBEAz(jX=%6Phot+=Gh6A#MCM<>~z`d%C}zUQdyCSt%YgrXec-LAZ=vI<55` zv?ImioK0Y*ffYxEZZAL}bs4Dg-CY zVa*~J=R`eE6F;T@YN911I}882dEI4%5+(elYcD0~TxWoUqKo;3U``NsAJMS~E^~c{ z0JC~0`s##%H?e5C{n}fMjEqP!Db9s-)~CBX7epcq0-g!*U&wKDoy5?_KvL>SAv6RZ z7q%S?-mzoHqc^7KaDT=-u%$_weJ<&xi1H}IC}LF0;{H__i(}bq!c0fk^JUjdM3iii zQ;-1&YiSo0!Oz79T($KOoDKPQBm2u51ORyI5FiuK?%7#bV!l}tumjBH)%Ek|)%a=w z0KN?HXRoeHX1OJX;cF-f^w6hI(*B;Dw9#DU486p!_GEcc!8G7GDKVU)WdH;TK>LQs z3bKu0Wj4P8)cPU&)<5?VPr?HoKoB<)X>3uL(7Nw;wpv4TQx)U{(6JG6p38h+TpV6C zKR=%gU}@Zzm-Xh&n|ib@CI_38z;Gkcc(^p!mOz&_yo7odR(e=7^BnGz-#h+dXxvas zc978c))Nc=4NB3{(6X{mX&D%juvUAV2dF|JaKBs*^zXReGjdZ>@!!9HztS=ALv*^;idw=6JDl}=pkbLelZTIwnvPBcYEI9K zQ}mE+G>{gxf84%OXJ)RtWo>P(@!3ui z4Yq8}QfJSy2?~DeyrT{NTrS#yw413{M%@OsV%+p9cHL(BC@iuGDqr42?RhUtK%9mT z4|jf^yj4@__2rrK7soY zc~tP?oasw-K9_|VMco5Oj>sR7@;+>3vIoo_2#cY}4twf?i;GKXT(;tnnV(*E3)7}) zMVHUdK6B?^kn-8fUxiHewNs4U2fR=g6_R_DcQYl*egeWIhefAkyf1f>1QmA`5Y;b> zHxNYQ8`SSPJq?sXB@aBT5si8s+5hF)o$l&LSA}t4kgt8-UhhL=RjhRY^LW7``rqDK zL*0X_&}o4SWfTzPN(ZG5FuB?J{w5yf3O?bwjAhJ3F4}Z0aU)dAuqu9|+7F%fAWp2@ zCpjLXlEhtjs`#vDHAUSL@xC9T+{TR?sY~YeiaCN(Nl17v&-O%yJIX^Rn%uN$6UVqo z1ZuRUrKLWDNtUK(L11{ecDKs{NRK|lwb$>HhgcI)U#QE>%*-4YM$5t@)N+D)UR*Aw zVPs5^4Hr(t_9yzX(&z~u9ywjt#jN3?Wf%9{^EWO(S$d!18zwMC$S=UWM}TbcdMKr)i6H2_o}D2UB@D?%?1cltNGTBKDuB)>$QgtaCpUI@0+&yvtL^ zzH@C?bALnf=eFS&ak+@E@G9*Yhac}n{v{ntXP~K)Dvd9yuYQk%?m0b?UKM2)O}712 zY&1z`Iril{9}wr-Kfg&aJJC>k( z0d1RxY~4xBLz2Ao2yC@LM-^whWf{sYl0nb?E#;soAG@0bFqcCC~WX?X|Q{epp401S~4)ht@@+p!AW3 z8lh8HN;bI%a%yO3Xui7o&~mV=>p6?i5&Qpn0XFVDC|H4(UPs_uGo5#Cu&vO&j8x66 zB(3qBkYAsJ20#jAU4Q)eLByij@g9-3dvk;#nO<-L85n3xSG#%h=EL;R;Naf+E4}X> zC=~rO;FU=qi6Dgf?QTUn)6M9j_gk%5y}CX{BO}Q}wde4q*A<<2F5kLcSwlDjB#?gG zif!-YZW@{x)Om?hr%rjGefsgq0WaDa#Um_re!EY~Rht}YNE#33?BP*t&P&1TCOG|5J7+g$DFF`0p_6-~!YzePd+ zbGHJTQ9>)`X^({j*QM9WKuY0DeAk=njZ!KN>R@gd_!5}#efZw{@-Yb+g|35g5r?;K zWe}&FbWkAq6&3qOef3M^n&y{!?&v-1T$LLmhzxS`SLiT|X6Ge7sitbiqNvilRz-*n zShRt&)y7DZo?0gGKx|wb2P>-tIy8 zVv#0tC3n%njW)0lB70CX3Pz#70J_h9^r*u2?b}JGhtGCU9bicgeGgd;A10AFQnX4u zXgwZ1QoeE}8dYs2D51AJW+B*;xGji;1J#v-lk+_3ZkGpe+JI0Rc2_)orI{+39{~}v z7yGg~%OnWGerS?wF{E6MUSvTc1vAb?ov%uM1uoy887Z$oLIX*+LGU%28JaecetyqE z_uQ?raxcnWCeR)MJvTL!jJ;dZ*^GV`<5UZ@FVaRbh5s1cJIS%9948qoizwWMc z6TX`+x+-c@Ww?kMu|hy)u}lLQAs`r~EB(&;tz;chD2*G_!t3s9uO%#w0QbBrje;o5 z95#>eL_rF5jjQY0^6gBZ8kXqDoj+ekZXB5JMXM0iU`w`KcI%Dv5A~v>qpiW7fd5fG z%-@XOZ@2IA+H?)K%$A;+nYm*=jP6Ct5CjCpn>XJ8bCNCzmu_L}vjk3Q^jZkBFAn>q z@#y!jAl;-D;!8G!mjT#o@f*6r*Mx|lCE(}i()-he{;uoY8jJ&2;`5CwZ6N_EPOoNr zjLtT;AyM2#MYW&>NqCFc4Tlwnp(aw>#Rake;z9IP81Jt1vbwjtn{@YyiN#w_Pwz7y z52c=;5T#8}3rJ%MO5c;Za%R{wCV_H4^c*^Pupir@0fgD;raV#*rGn3_HAg0V1nh~f z;oz&7lHCX0bhiUZ;)N zL+Rh7`HOOr_A{O*{2MFcGFXYeV-;}mB+yY3K08IQiqVUd*8Jk~9dz=~hmSlw6mdj=Gav>g2UWI4R9{+V zW^=}%$zAFzN2MrlS<$Z1>4`?7)|wC{#hf+f32H?;TrXGOMTgEKn*gTCjvkBY4R z+mc!h&4Va(=*Ota%gaA(T(f3PGP`t}QnM4;z zjL>0g2uqkkiikC+3Nu1WJI9bbdKwgbdd|y9Z_#iD;a}cS)@swJO%e+~Ym&%1YQ_YZ ze2C2fZ6U~*M0$jE#6|}_i!9@Yq;CTw1=D+rf>ff>SVL}nlpnXMe$z0|8|dK%?i7j| zI-4Q@1lQZ&G!3$4mEyvQF8Zms`1uD*a1SDVqPjzE`D!eqmY-$XqwiEJ9mw3=dk8=jv&oEzChXBWmi&nV0SSS4lbX^xAF>qoPj z*Za=x+tzR(oG<73*AD!7=fMl|p1Zip#q1;{?}Od2N-r<;oS3XU-a+436(;l?f`-o3 zxsYU(cjR7w7TBiFmH99Sv7m!y8N}_T`H-{%>(F$thMoXn3Q~j-KyztUqEdW6APDc# z@LWREM!U-Pl#x3^gZ}`#>+>eFw!BX*E&1=qBZ1d&NP^N>jKDEU*M9_oW)l{k+h5yg zibgQ?o=74#5(Sy{S4Zv_sHWmy5X_qfkfdDZhmLoBGstLYvh`I>Zs@G4F-gmnB>sSj z#-|YUc5!PNG9pIE6Lo9iqlYAn#&r@yKkWf48u7af z9-l4j>>800Vs`TyDEAHg-(Jn++Qvj9(&N<>!0wf?`~G%SW$@86PSeBuA|B^+0D_1V zZv*K{Mz;sdh=531CMNCpY3ohMB1CLN)03FQlGY-^68<4JRXBoTUpcjsH(Ju{r>z9 zAHG0nP&CE}oP|MiiKGFLvx4v;TrJj1_#+dT8 z6aD9c0t62p`B&=F4r+hFxQF@frQz+D=BSpM6=k-t$(_ZqqpI>^8e;ozOkO0{VN&Bg zQR_;_9O@#w*T{%8CBg_Hj!rmv+WFsW-ojam6|qavQA|0n%EdPL;!^=RFx zG*E)}hVY?zhd%b;h6G8h3I1=CH=3QKM~q|-i)WK1CFpTPgi?R-t0m{elp;0wZOhM} zvk>g*?A!+(03bruz8$s=Fo*$Yf8`%P=6nmLBoPNTlni28LY~qgChT(wr)h?@&!UP! zz3~TJhZ7{Di^8@Zhz9Zp>2kqnlw6-%S69m-{Wa#oud}S>*-}*TM@v%gOP9Ye=^54X z%84HA_-Nkp`r?hQ6AOS9*hoBGc0S-@9RL1%5}1HCqS_#%4`L>E_u~fR)DJNyD}#cE zSwF>pIQsQX?Q;9oyCuDkrS7L~&YQUaoLl~YdoBcE2UsBK?c29EDtGVMlMKM1;7Kv2 z!1*{cV_#BMHh`WA@eus#>oc-Fth{~G^uf>23s8vQQZR$Bk&c`)31;Tz*Vj3>`jpQ$ zni!}Crm#Qtcv>Kn8}HY!@bKB#h*e^7aJ1?O%e7{kx|UDPdjjIC;~N|6UE1{>3(!z) zN^F5y?YTV`17IU>@YUyfXn4m?kUIh|l9?~M2k(n+>5`I%vrV|!*h|CW;z=6`s%Z|V z)RdINM3jZ-6{K}T`e_7lSOZf1E@6^iLn=OsYTj_(K!x{hj`!V}2SK<9*<)*7lXVU@ zXSg#pjf!RrVp!O_b5+V8%J_>_$MIS$W|P3>s^=wf;ZC0f9j(yl-)w?rc8`+f#W}T=2Sjfu^P=nVhJRs|qsnQKs1%la*mo z{yPI^maBg?S$9wB`oB!?o!9d_HpnpLDlxxWHPm|kz4G;oK0IA=2w>x+gakI&+|BhF z&e!Zs5Z*l>O*=ob5bb;`BT-<>y!osBSCR|mbpnez(BOb2F?sATC5iYfD!koRt^;BS zikZAb`Pj4wD{JhBfnCS#w2$k@9ggtMu4}eR^;n!1jt`h#J7no1($_lfVlBrrInAk? zejZI7UOWTZ{PnVzO;1xPdp%l=r1jnQ-U!L4*mfG#3!{eFX zRrCtS{a`LKT)#KoO(8QqPYhEcZd5ji4)Iwz%ARUr%us_7 zPHQKrdixgcT%v0dh-af2LV9uQSI}}|^vn+pIpK0=VLrRzz&pN7L zm6&VTOOVVR|5$su750{}S8Dn?XO^MvcirQ&{aL;q(?)$NOmz4Nai228gnNQ}}i;bdgcDJwIPMvRy~lPg8LE-FiyBHhDbvISfO)y8C2TuI7kzmyt8Rb#3K5 zGexh3)=JD5O;4xIMN!-sN{BDb&0`!ZZpL%ZP~lGa%578p_#(baO{Vw#n=Wum-=%8j z@mb@u$K@ssC5+ZlzCWVH{T4Tje7n1{r2oAdqZy)-&sS%%ZZ5dRMNH z86Rn144vHH$~?>m*9||cEdeZ0aHYWy9A;fkuB?{_F}YK6VsLO1I9FM{`_O+FE|}KQ zzVV6Gmj$iK>uq@|U@pEa%*@OHtQDO?kXPpbZULWv_VmQVI8)x%)^@o9SuGPPsk9=F z6TWF0%3lM{WW=az+oT`Ddrh{)WkuVdaGy+Ogvvh#KgF++5gyY1c64OuA<`JUAO!FU z+CjZ#@F_<7up2UpU!{Q`3r3B4t4}OjGbqhCz%Y9wuMmDP_bwvAear`M#!tcqf}`I4 zBA%2l1gQFm&z*~Oo_Y%SC4~Ab;(Jq~@k7GquP=Z(zVW#pOJ01=B*7Ql2r?FoK zoI}!zxWtBBt81i{thiLZOmvnCADE|b#VjjVyzU$B5;I7oEed_752IAP9zSsuW!S|T zOX;|C=(s=7rKC+yPBx&Ng6uq+r8;}|ERB#4OSq6#Y41ZG$6I!#2X4q+J zFcGnv3~w2A4=*pT&Dc+AXpIXFX3Er9|M23d;ooe|pagEY zIBgvI5e#Lj$tt9_)9K!PhSI~O{^BIU)Hf(7=xCf;x(@02$1KS#~ix)>&4<3|Ri9O<8(o|IR9ks`Ug)PQaf3cS=wwv$+lHd|7 zNk<;@eMYlmzhp4CgvcO1HV8p_7t(bKCScAySI*N)mstnm={6BB6COZ#HFO@^d8RN~77 zz`K3E^y0r;XXIw7(EWF{>NVGm!egT5G6S!ShZW2HC>m7qXb{&F6@GWPM_WP6tZ2~h z=d~XATB+XYiclr(IY=lRi|)J{$Q>)bHFV)20{VS=NKQq}m6&>@-L@?X9U{Zu-``2- z;KAqP(Rl?5)1|!*8dK}kwP{e9gC@fwO`M5PA|DN)6=J)+@<94TJ!JH9xkJ znpx4Ee5u&o2k|*k53a0exW{N5Qjs$x%p@=QW7$EG)3s(fNQ971uKOYdwxtAYG7c`T zix5Qu8jM%S#M7tJfA5Hf+>x8+4?JlBk16!~zJg%bz`sdvw+%B)pj(`Le3>#j9pL0` zZ3W*309#?sI&67C1$@pA^sBYCwR|CLaL^R3ui%h9xZIO%#0pM{+V#N0LlHhsmQQVM z+Qa|^(lT(Q6n{b2LJf5e=_$PX+{KFxaG1xFb{fu&nGqs5z_9iVOik!fR?84kGRZg` z(hU@HSzG}TKCnYg2X|Wh{J8zz{renfEC9~q%f!_Ut1(oZUBnK0x!vENW~eP+4Hi}; zuzJ);aKZzq#)L1T5nDh8g|O>DUfB8hRp9v|9s)e!Fo9jNa&m-iknR@Te59WQFBYt& zYOtR3J5CtJdwD4-D#9$FdGFpm_Jao{(cADH8>!fUemn$z)MwqLKS^Hx5A8L+1&7XV zA9Ozkl{1Uv6`a;E3f(v><;`d*Xonq9fXNe#DCMDV|7aW*s76#=EYO7u%E)9f3tJpd z%=I21rpdfEGc}}Qq!FUW8bR+S#xfRmc(S*O{&vHxOL%u>dAXv!eGWQ0o^Nas=7c#z zq^f~^LSL%|1E$1C?LKOouMH;xvAz(yEe4_KOXiUt#O4PxKy57?!_o2~c!`Xp!gkIY z&%;DQGV0YzolRIv%5@oS8}nP3WyzQdQZ*Yo<0u?#$Brrb5=`U%ei2<;uQK?elvX?= zs(kPu%OmANlVuC7Jc#}21!gGbI3W)?;A^^WI)Z@>=2a>>?s_sB#9kDogOL^RUJNNn z@|%3U08)h%={L%om!CfXim8T8PbTN!wd{jFfK?=eGK|Dv61nWMIG2cp$FeBF$Lg{) zdkv!@Y#baiWF#7$ghSH8mOt()WNzKGiHz>hp#NJ@aRIwpmW*4SJNE?>h-Rjmm=UE= z0tiomD2S%kWzn?WxC~tN7cxoBh^9<~WA8I}f3&+W1%jMXmYDj8#f$#vX*Bbwdr0EN zHj%DHz2v|A{-3U9S~aa_*CHGwQA%JZj3NfJ_pZ0#ndmonoe#AX#gsRY=jV?WWlVPT zjp%b2rqug9d}tXQk3K$wpheV~VKhG2kbwwJi&+pjvlikhqmC7E@s5JV{$*C1y|?h&$DiG>#)Ly-?Kkg;$y>P2=#c$-X)%MVDdp zEc}Iak)t3HC`r!_nQk&c2mECt(J`<_WMUgtrWV3JK_Ac87yVREDLQiPGVVCn3mi%g$lbU@T~O;+Jvg$X;a<$J~q9{^tdlyuB6f*1d-g9SSm% zwX>VPlAfDOTd-Fj!9$w<;d9-(Iq!>7HWmK+xEvii{FIYHW*qqo3S`$Pk|QUdlzwV` z5ToZHUE1v+Mz!1^<;O+zI3a1VqH>~sG{nm>6J;M@e8o?=bLVHVYnHm($nj3<6Gsb0 zp2~WtxxxM>+SXv(eXwTpbIIWWDB#a;Zr~%Y^n6n|hJv333aFw!F z%H1CG?{!(=Qz&JNILMaPfgk8sM^c9{rF}o;NC?#OUp0q zIyw~sjJnE-uFbK;_(`4)_;NTx!^K6G?tgZQM^TVOu zq?%U3nExg2@a96 z01C@5SHJe>ZVZ4(OoAvDJs(Zp(YokaQb=1j|puDsIQ zkW2?X{4zXxg5k1-bN!r=0{iyu3&SMUmc1jk`Ar2*$6+0vY8E%BphtcEdhqDV88__v z=iCn+vNG2mV0+-=q-|{lP+KsnzYRFz?Ad>iZ8tNEhoR>|T{L3|?qH8hC1mlP0-XIk zDvIJ>e5>TjK5_8~WUU&whEfm9o;$YzZ!Dm^q033N!W3~`k*jOeYtakg&;@xh07H2s zsdwk)St%)u%vZmF*&Uhuyrt#Qb$4z-R>XACkcw=4T4bI&LlW}|G(#{^wC8XiuT8%) zesk6-f+770gsE4cgh(F=X=w*pSni_OA|Ihyu~|FM+UUp<5ZJbzJB#r-3qeMxtH)6P z?o%^0C+XkAN|QVOk%#yAGOZ0_K$48||6%)A#%f^~3RO zcBA?VL+!|OzK^ohSk zJEQ9v3kFviv7C+gDn~V={cZX8v0J|S-xV04LN8!;Y>K_Q)*t<(!iBN(m_#fFz*v-( z{rjlyZcCNkF-^YPYmEd}mOoPH*)n8SGYSO$1}ZFuq1=cKf7d?R|D8Za`p?r1FNdpX z7WrsTn>il?Ub4U{AP|UXym8}3LSmxP3;3%|UbYO8mp>SXMD7Eepg(qX0|iRJ5Tn=M z<+{N7aAogUGr+%p4Xkg=un0`mPkFCVg9aUiRiPPUsZ}_V1B}5lX!|IrGz{b*NPQna zehbLk9{19-?hM#Uu!x2mwU$Y2>{N=${c}2zdkY9)W?6*=;b-@{b6>~FM zR+aoZ(oPig?@%c41-(ad~+LYbvM^Y@1L-Ie^iLNu7m`l&Q_kek~Z z2*|2IMQygB4DSs1mS@8WMmpV`mc+sAGV`qZ;w>dEe*ORqw0*Z0ZsDi?ds*AApZ|NL z->Ad0Fa#C6ep+dOv4{!?F>Crcg@r?46P>F+e&WW@4M0eued?Et0r%fv)Yi1=)jdFn zE(^hCu3i840gYF-d9-#So1l$>mN2hu$=ypwe<*CWr>KmMDC$qXwy_u8n|>YdFQLN< z>Udu1uX(;6uNyc_MmZX%_}TN%F-}Vr&B-et-^AhA;H6`8S$>FK%=S?P1I_9^xsgaw zq><*8*^y;JhyGL-MjeZfR zMd#u6*PjOLu+C?;idic<6XT8O;zS+6d@Zk+d$?$}d$$`JTNZ8NIB3UjAjf}d_{Qzl zU-V*Ak}Z&)##^nbXZ=?RTla1Q`(9Pe_V=V4Ea&__6p+6(hiPAnt)-W~C%(g7T=4B^ zcjbh(_Pd7@i#jdvcU@3cu9u!nZXC$%PfE5&-pIO6eTh~`YU+#g+a|7IHHmj=TT9cn z#^u5f9zSkIUWelrhdi^$XI=R9XYJFEY-;u+Pp@H~W3m}(1%;HCPRrs{Xz9Oyj~4Cx zcjKnMf0iL{DihWEjaG$os&-1bp)2E}f@aTxaQKMVdY`g34(H=>Ntutg?k#vyyKp$t z8HxA%dnz8&y7B*I4MSJo9I_T4q%C_7(>%>ry8J*icH_LT_Wmn3U;pZUEh`j?dKY>9 znSv#`#-z_44$Dt8X!MyUn~ocGchCzgN*Xh2sJGHy-*xAIaWr-4PcF!Ou%4+T&Wt8B z?-|EXwyEs781o-4h`iL=X;hh;uWgLJ-%Nd{qy0|Gr{nayQNBp$9@+eR zIPgK^WTx28JN>49>VI$ibS95Rm?}xntCIQ7KCaQHm+1ard$DxlO;~$eo4P3!|LO?wjXsa-@ke04yIjG z2zgrbU*mee-F(4pPP?9XGt%t7LrNl9f2N2(siKDExZ@aC0sC=VvA)8IBv0lA(iR)AAbE&OWV$)g>eKN1BsHk9M*b7PZ7G6_SG@q1`@)M58ZZJ!o7J!c`l!eA0 z^piO+^U7Z;%Kmfcx4p8C!=w$hc}H*E>*Zdm+_@#SFMW&o($UfKhQqP}`yQF`OC7Nv z$$dsn*vQ;QZJW7Bg@%dGnBWhP$agzE<(poo+ei1ii%1AD7DuRd!h8acyX!aY&(0)E4d4t4c z=9RncQ1NH$BA0$aFjrp|CNad#g)wg(_zc99IX~b~I_>8)z_i;z#2U*v)4RT!n^>N|2$=AaW&1T?E zd9y1y6-vZ=pqRz}fj8q-T|nbf@h0KY9$<#MIn~l8n%WUtu%(@smw)`avNv&GS~uJF zD$%iuf){;fR*UNfh(D_MeszcG`lAk}hiLQvx2ct+{#0$s+h-Y%nfSIzQOR`mDj!$y zX57yxl&X_2F7FX-(WD==ote2BndH2Y(f8xq5AULKUFc%YMdiN4l?KP~Z;aW@n?jlH zfgwBwZpbZrui2{A6gcwGmKvfISg@D6RSkU6__&$j!s*I=DQRQ7O1S^-n;-SQf2!S! zfjggGQEw1r-@NT7_kk+gf1dXn-ub9$_VeQtmP3a!AT*Gtla!nsDpqR9cMM}-7+aBf z|6WsIAZi~-D$-5i@20)9v?Z9#-nezE`I!CM4K};Jl&G98%sr%E+Ur&|qPm$ed-K1~ zx{tg|^L6w7Kd`U=PxTNiZs^T_tk2|jY2)Cllc!i~BQB~*353OcjtZ$XNXzTzK#ne5 zTAats@gb;G{s93Bs;ZI}7DpgHeJCk8dUM7C4ubnltz#wjdtO~GUMD{DeNE&L=)Wk& zv(HLM%(ex|+H6;|y33umLsot6pNWt}4{uYG6F-c-cl00rJumowV&hLTdB7W7xlJZ8 z_QYNZ<}a29eZ1^jE+3BQmUQk_)TTdg zhI6M~aa2|DHR|O!st_W240>P5t=`z7G{-h z^^{GFj=l{HN;kTbDX6&fq)LM-Gdt(mYpRJ`50%w!RoQ6T*&u&ypXHP_O+%aH6B}v( z+#dK3$E2IruU$KeQ8yr13&q7fD(l5e=h^uVDVoascB;Cwi6+=-)u!#pfz;OpjxbNo95nZNw(^y$^$BtH=< z2Ze-oODJg0Uyj&CUiuaJq1GHiu@xrovKxJ{ zeSKE>d7a&&_D2YPghUm5Ax^Ry?v1Kw2~TA1^%w{cWTeJ0!?|j9z5Z<`gv`G z3u8uph}L;#E({?VkG`Mfc(*QlBa+@FFEv(TOi-E<}pA z^~|6MER6*fJq`%?l~s_J7XrGENr4i)1@S%JrB+O6zKqZC#2Ch8x<>6oOyLo+mf10l z{-bDz%RCnaBPs`21H5E)4YaNZJG z=8W_T14%iG&qtUn3Goot{_pvddxC8$eZ?PNPi#T zdOoX;phqk_zj%rimg{mmrlS?0L3qh_p>K7fq=xS>sFBoOhqHTXzF{5(lVqorm1$U6 zS#Kh+7)9;3Ww%r=FLo@GbV^=o(Dk{zJXp+00LG=0LqWG;tMq~57u7gG9ty}25jBE7 zH*oumD(?|`y<<+IB;}F|go>eP{0fcZ6Qh{`bEq1u=MJxLUMM zr+;HYX#Mk=1g2#;jz`hyF)G4)GmhaU5$Hu>Eq-CUpu(@oZ*wVU4&8P=RgqcNOy0Gg zQd+S`lzPYY^+)U;J5CJ&cYEPojGqn}nIEB_Y3W!hh2s;Y*}#rgENS}jb*7VE;@?KP zjQytf?vFK<%>b3G|88g%E-NK3zYXsy)Wa0wW=6p;Cd-(XbijN4D0nT$X3(}q_J`9~ z1A>D5A|j}xDoqFK;#~2~+2!W+|)aV?b8t;k@hO zfUah(I0uIZWb^=B?fi#)#2?IYy44a=*=T4M^?wjyq=r)X9w_Lyy(knPUQD4+%$0uT zL+8#4*J3Tq1nHbqSe?a&`g(iTeAGjB9v-RqI-~1KN=jMVXNAMP@$R0vN9B0S!8#CO zP8cEvJBlJPT@+xmQXzNi=9LDkv#+Wof53j^kZ70R(_KY+lzOJ>6e$_0qi3^$p|mIjgPY9={T* zEU&I^+|jf}`r<`>h-)y1-Y4;XeT-M(0WXG!o&|n1s{jolatSe@%Z08wy^_I(QkyvSXJBhw}J%F$zlc*i>D{-5Xlz=wMtuI#pHevUIqUe6cne@mTbFclb89QCNuRsMoEWFGo$r6+r5oZ(f{t z8Nc=YZ=z4|+#k+lx<^KiXO8>HQZlV=${RzbZQ%--zXV4(Li?8I;JhLrB)t4F9AP{$ zAjpL964*@^VQ9yA#Qo=D7tM_odjaTY#daIxC|{%;tQj0ZK&4P94YZd4JbMp_dl?BR zhO|x};7G1z$!Ta^l|zo5hQmcWDD=)Q=y7 zCK&^9aU*^YMEi4a#iqT_7rnVRYj)&ZWdc`demZ^BHrHdg71H(ggqc2m z7Jc(+jRJ|vrBcZjc)LZg=`SH181+Vn5j!A;mvAPSt^ukz4Q&d+y?gp>vB0a&d@JtU zHZ90u0B8u5cz}$t#LDch3EK3{hZ>g`nmN&|jRbGWm~r~n{vC1vH-wlzPr#r z!#{Wf3v0_X9@-kPLS$uS{V;jf3#k-f6OGsYO$T!t^ay|@!)HQP8IrGgLWX-CX#?T! zW#vf0F-*+FLyxrhJ$SM-NFnCaIg<)&{sp9mIyfDxJw9!`gh(|g%|TuJ$CT~gR2dOi z2Yh`C@YU<5ZD3W_12-s%LJ@+`-U#UAk(a+;;jO$+>>trKwvv!{UKX)s@AA+VV(5Y3F#VPfNVpEY>ojpB__1ULf=h# z9tQ?_5`EYhDtL%Q1`S~(0SfN1)4>Hqg@U^J(!e=1#e?@cv}@fszy_QxADh`^#RdVG zkl5+dsK2#Zc{h!oYr^GAbVUJU<^ytaIa%2dCwnFyo>-7IOs-ZG)Ey(w$BbQP<^HW} zh)537VlMxHehNZO~n0`>q& z4+e{M*-uYk?_lg&KY-K0T+$u>N*djWY!RF|8&LBgn?c0Fg6R^x0ext7WRorc@JF&^ zMIU@$Ahh|C~;k+RxbG5Gm$%ciEJ796hGzB>5NdKF=-2T6Q zBC`gFBeH?3f`$ps4p(Zu)hG3r!SGgcr5QXi4RDgjJ~PFGw#|a`=v-@WGAP8e(89!f zJZ9y%`NHX4ya|j21~A%!4LlgAx?pii0F@EG2^8`$Io9g#z%xsu!_LV;h%p38cv7|W z81`NR_=GS8(LE;px?LH%&SA~7j1*}Y%Gu@Pa|XO zLacF(mE2IQpeHZ%$)ra+Q4D#6S8Au#YUv@hVFb~#%IjQ}FDLBhFpV#whSLzDQqq~saw zHxOFA2Di1~BB(X*c_01OgTDqv5$BRC7!FHUyTSkYxBJEIyX54dqw5RcO`io`**a=b z9QN{kn_pA^rvN?tZ6xTyt2Zps;X)SGbc3X z)1?=P3Am&SL_T)l_=d6-09_0?r5E9c7B(B-W{q-u?@HL;zj{Ptxg?2b<1TWb1$}=_ zPbJuQPW#+^@?4Pstk5N8U}L`oW4XyFF)_1ih8q}2J@9b$Rs-|Z3w@CJShv;nEp!nj zKhI&wRY2O63zSMlR1~avWb+|EP#EjsyX6i%-IIX$UCx!dZ{KbKp;z?g_e*JMN?5lD zSP9XS(8HF@1;}Og=^h+!lDLkG84vVsb7PfZhL;??aCGE=K`lY8wUigy#x2vz&`=+# z1ZEtuwuO>7STu^dy14xlFF~qg4BEhvb4XT24+|n%lQR!^1}wl&uOEP|9xB|-fET+Qs`J7!^`0vh-G>~np;s+g)fZEQKH}%Jjfr@LX=;^X&C1?2HU5Zqw+K7zJp#9O67q8Ui4iyfAg zyiT_yk_})KJ_5k}5PsClt;mEfPT2vh$;n{=Wo$D9ti}Y(`s~G_qK=V6T=6!KKvgO!kck|{=NonbbUdjF^yQAv0-ms~_&s*xJy9uF5 zuqFLQ*CAxf7sfqh6l&gnjLdoLCrt6`Wfl(*acjoY&EaBy2qg1?PNr}3@OW=EGfx>I z>=B7I5`VCcWEaOmRhFkuu4;Y;G0I3EdI_Nej_X7m?m?3&^ybZ*|AAHN>go|e_=Cpf zqsYwcVWs(EU6U+x2TiZUndyiK&vT70v>+)JfuV3Va+BY-gO45Qm!B6eGCh5Y3>*mL z0JDs``hDc~gtqz9vWta&y{AaZh1Ww`QEA|@gJ6+yR1|=E@DzPdb0J! zeNL&&|!5d|8i(hGxn>Xw8OX~t`SCD7jQX4;wK+eInNU(H2wiZ zBhbL;2FC@!>_1@|`l(@@C}wBJhP+y6gyEo#_9u4>0B{N84v4sPrkt01{q9nVe~09w zOMs!Z0G-?aYFiwIf;PA|BRBa2ve`emg4%ly5c8q^5K^9SBmwVdgFrtGE3$)ux@~|4 zrVE;+;NSE5ATt{Yc{^#gB;60>cS)nU5M+BK$k7t%x=_GG0d_?gQCt9Fy$^YDPVLa` zmL>!6<$;7FrZ}a~f{^Dvhnb2mD-j{#-3Jer)$&jja@WI4thL?Tco7`{Y+~r=-J^PY zmmQD+A28!io<&kHLibNi)pm15|rtDUWbX7lxew2YDim1Uu)CnlDHQS39E zmqWVld3u|_j)&s*jFmVW)}8D@d-fNU11^>YLVPp|dqlRlCH<@(qGB2uJbDwh}{l0aQfwpK@&^|-|@Ox#IfUw-VF!= ze^orJK;XBsVg^A7tp7nTAj!F&RmErsU`;s5o?bFQ!8Y(Q!XfTB$^?nYa)lxfVAt22 zoIns5Z$qIlct(swx5V-}KY>qbF;aq+m1pV=affD}xa9nw0c48-dt6Em10q5wA9o@_ zpNww?goS06lthA^5$3!uIOaRxD53h`-b3-Sx9&A`jq{M9WXV>!yyXJvsRn?Pd;?e( zP6`BvMEJqHkl*t&QEIwdaX(SUAod#r0Gw=L5?gYjJQT7d6JhftsXTNXQgXz+0s>7E z%WCNHm`#O1ERTRFshuJD@Ik#RY5`?z_6stwInUpQ+3%T!15cYBN<2W1CA#ZrKF`X1^*R2)$4^<6hOl1Mk<)^ za0VTT>Oi#90_WD{AMlMjVCV#-EHgb_l%x^YWkBK#V$lwPn^=aS1HkIcoE)imBP-7M zT5)l3g_uyT*xT8`q708tNCrGcLCfb2v`Xn288D3g0w*_uvcr6=`=uqNOcXK->}$%9 zn@C2js%1(3Nd(XWHn(rsLAj$*mnbj@!LYYMWA+K&CUqHs7zI0fL|WS8O9f($3=9k| z@Sa`3pMhx6fUQ{r#jy09{@Q5Al^E>LLf(Q1W(|EXG>f;g&Wd)Sbg@RdZggs;Cs{?03v3b)qtBLzj~tz*B(ieW zw|1faRYW53#S(%zN|UXtmT4@>J^;_0AZHwecL2~ksK23=1A(LA(Rm0Ecg~+65q=ermN!@f{2J zzo34*!q+I#AP36l6qc&RSVfO{&ln`sg+g}Y3F$*JvJNmyH2{!F>>+;%I6PZuMqgsQ zNZ5xLoC{DpoDBZ}w#qq`?&*mDAfS;nfH4S%M$8|M7f=olOo#6~u7n@F&aZzP%J}Rc zrKLab=zW^--ed%F6_21XgsmWQGiW^^5-kkWklT=4V@fTs;;jqU1dQf(9kWkh9F0Lt z2?@Nn=a$2X&}qfPKt_st9Te#!#(e$Jn0RTm{TJ0pmY1rg864{fI0ewYFMNA15JaCt zc=ir#M~sOtv%npmX2!(7NX4&xkSI zQ~rf#_gV-KtwD>50Os&hBW|BSZ-p$XCSem3lj8M@-Ao}{0Q4bY>K*_?Hr3XNXruo0 zKiA2pU^r(7saU^M#k=?K?I48{UN-^=!G%~9^zjTZ;&54By0xC~ZUWb69 zA~qOf;Zf~wPNMss@|Hr!xV~6LLLKrUC}YZiqY=I_^5eC zz@5xoh8NsCgXdX?$yvp243b$BVdTy`A$*U3G=dYl9p+WyG3!!I_^L(wuAu!B5f{G( zDDi#{nJz6OV-Uku6(omzRFSLHEjWe3;2kQF#}VM?Wk zRLft>4%^UgoRnn8H#$LuECQ>83Toiq$hT@%-E#FJ81r9xc+&;e102=`y%nGf2#!0# z%eDvOA^Khy;f%_Sn>P(0*B5C&vU1vB2;JBzS1wmLgxKYho-N>UjKR$Z)!ZLWUf?H7 z_Kg!ARiCqhQqvzwh2<-$v!Y-}2j0XX3;lmVJmNl!)#jmxS=4@4U)C zzz)@6@@&J|t9%m@d(<#Wd4PJup>gpB3ri%ZNL?-Mc@qK41WdjIh^FCc=cgcSk^SO{ z;FG2OT~z1%Xmk|RlO-m<$zG@^#2h(2Vz0cVGy7OUkZSo%Ss9YPq#*&SwhRYU%*cxZ z%_m?dxX)_3nfoWQ5I7(7lY5Mu6mmqUV-{c-F{DPc#!ys$a2-a{1%4ot^tFh6IJFSQ zACbJ_Jn>p`;6;!*@LSRWl4-R~3R0+fZ~$8GiyKR%rr;S%zbMSP9M#dvbDcr z?r7H+^McxF80(PW%cz80{D%+a0b^097KfQ{tR8YSpiQBM6Atk)SOUuihJ@R6Fh_AU zL&>v3uD^n4%9?%pKoJFIBrC{SIXNV=?KXA+;bFT?VIW+!HdN$J1$MQ?_0-vSqO z)Z)3pzFf9(OaT@3;ypbUxECl8p+T76_Qyex+u+oaV9zm(K|cU@!@|LN1Hul={kXtB z37CQ5;Qs<3DFhimtF+P33J3`Jo3l6hF@`8p!OY@#A*DI-S7w`coCW^u{`bPas|&tv zo_K~Fi7rQm=Ts`$@bGgknbH%t-UP4HZ ziN)WHu$&w?zoA404_nZ%u@(JnGy_ruFxb?rtQ+N{vOrV9R;Hq&I*hcm<0ge=nBvs$ zq5LLM1w~Cu>kri${6&C3rNW>U{(bWY;I`k!4^7(vU$2pBD!JE*M5H1sxq(P@99c1Subx7HPlddz0{s zhvDN{v2|9(U%q zPw({iQs)R++_N3Coa@id%5h5Bzpl2Wax4Iprzy!vA=*r1PUtAdHdBWMZwl^Fc;Ere z6j_;9UKVm0Q0$E7dn{~hePHC)$==_|%kRA-97-)IK63FsC&vTy?}DRG0bB#LciLH! z1O&4H)VzRI3z%`vkYG?_J!B+~(?{&v*imlk1b#AcH-fUq?H%rdW6H3s4zM`d=)uaK z8~Qg-oD2=x_&r@9LRi7m^eQE)*ZZgD_Np>LV?l4?dFKN7GgHb0m6QQt)mzM)-CTS1 z-zsgLDd|uLX90{K#{X%l6^xcNwfY3#`k8bjdQgn;LMx=Z7ntf)xQ5(VCg!*V`J0={ z@enyx2pcvcaK~Y&_o{i2?08H0ZpOUy<^R)*X32|>olL`gk^(pa!a zI~N=O1ih;TMEN+MM(;#wMQd+VL~iaQH8tVNnI9S4Ji9w)$z^acmP*iX4;b*ykGj0= zU>=;>aw%EYTUY2HWgS*H}8~-~pi`lLZ&G|4?F^FCD^n)9Hlm5h& zTw3t`pVaN0NdVQxnFAnNy|wPnFj1`RIXMO!cuSDplvuxP8vX zR$b4_*Kb`-UzN6<-m*%`iL{VD7$G1b`3(hHex(M8%SE78jR8j)Da-M7O`u~GeWaLsF)hHJgMg#o41HI^= zd2P@|;_{x?eC60=y!DCOhY55P8aqMCu_DJfN_)PTnTMwmrT>7HI<7X+T`f zfBLILl~RfX1L4-owCi~rQdMf3tKTKv<7eg=`!4I=9BI;hQKttCs&j0Iv6hUCOl|`K zq@Ndephg^K>gp_XcrFUpW+;C@jijryb-Lo%dZJ+b>gHe-A?C0!COvyonWEvpog6T7 zu5iR&MWi-hG6?-OZSwDWb$Cop08%|}tMxD~EDNQC0hC-?-t1t>MdQb2A>Xp?VpgKC zWRO7zHZB$C0dt3%frOO5!x_cLNd-LqyJ9tF<89&wMnA$f9a2*8)FQ;+?T9{ac2(eh zy)0YyRqw~9>Hi)(cZB0{Lv31#tj;hr0C2$d(s;sN;@$ySJ)7_QQ|G%QKLo3*Dx{Wl z?NeSnxn`!O?eTh|IcC9ArKgBw=KagbSS$$Uq$Sb(a(4f*uU3DI^48zP&cyLQSpR(hQQH1x`~xszSq?foIXT7eF@v|I zJta-SVny7@hRw-y3Tv9hm}1=Gx?+D5k+p!%{0gJ%cvYgxiwVg+gMeEitS)-Jh@OXb zz&H_Z135~1$_Z-f_Q9x~_l|tQ!rX3oe~MiufzJpbHEor`rh7}C&k@Q9@J zr*k)YJG&!)`vm8zhv`U|GS86)Mquk($CvyA)n2u!b#PGta=ZdJt~q86Nzfn@*&8tm zxK%&KUexG0SU5drAkBbJCQ$if_$2*=Zvez(ODI~`=!vY$wU~rbGFvM5zXas-hzI0m zy{Pj>d=K!%((>SS3H%Tv(rJJnhu$+7(AmIOts3wWs!DA8*Uxk;&YAW1$J5Lfc~$hy z5hbI^-XA%?kR}<`_|OEEug+xH<6{&KJMZqKYVz3Zn+&cUm%dBP$w9;$z_3;{E&@@7 z3}CvW?-SS)usW&QB8lxBqYRhZv^;i%#opA?`(h{hO0S=FJANl{`po_?qB<@i<-8*D z$I5v%0X`HCsqw;wLBm)3hv=#Q)2qY36Y#IF)RxzVUL3w$*56y7CO&l|a! zj`#EgqEx0x`d*ja$1M1yn_151bGMWG*tJR@E$l(l7`d@+MCI3$oY}uX-Hii}PSXSO2 zMUN+#Hl*;(a9{r|vA8?5KUe=tf5&T|cpFntRrqyEH6uP*ZNQF$>33Q1ks*ye#5`_~ zoX4O~{eW`@Sbh572rj&B0XOPDzoyUlli>*5-B{NdYzhcH&!;=CPNVA^K5BIdUVoqP z7XQ$H*RRHWxRFVV?dN9<-m=;U{J2nwsE0;kq+Uq3-Jn-_@HmT86g0{dZJ$CK$G5Cx z{%>EIuj~f(A@b&R;j0WdcR?8xLCznnWY8{2wT^mBRtc)_QHqFtj=-SX->S7DOXUB) zv(xI}(bi&5?@9Me1jG%Ggk-g}W7>uVaH?~-R_i#jcI!iN#(NMTvBH%?fq^wdp@@|% z&OG0A`;a9pR_M=(t=eAYuDt}ua2dsLmEF1JxMZQedEJ(&xW7MC-G&kN?w%sQ@YQpp z(5pBUeY^p71`a{S8UK6Uq7whPPy$qE6n9ltUt~WMRWJ=`$V)hF{`PbBQ5{XlBWG7e zQJ0k{Mkm4VYczU9>R1Gryfl2rEKRXX&g+Qz2bj)ggD?Sc$GrlMJ{0N=WMzAR>#;q7 zCjv&MNZ{-6$jD?(P3fUod<~eq2f*Gyv5aNvi76gVUYzLxf_D~3sZ`3AYeeUM>xhZ# zVg36)^mQD9WsB3%s)$&QRybD91UDQ~E=`BxtLwa((>&I<7G6%^<$PhXKGR|L)JOa4 zyNW<8rjc)EfPx_2`t%FnFJ|8O(?6|AhVnL(mvxR0voV zE96}#pN-5%$Q4(}5Bfxzzz>ly0U&>c^!FXLTjS%YP`M>C>e@GF83?a$YB<}r+~B?uVw#C8DVuHWhS5h zKbu7+qZn#H94!yQBoUtvS1~ML=6F3_@0UsSy-(51i~+{80WWXhODX{8KNCE+_C6tj z0vk9~<}WxA%0X2#pidx@Ku#bgtQbd5y=LcrN|%^6leV0mhoP<_WOb#=A%)XZuv~E{ z=fh%IW(otZgNs6cnfzEbor|3CGOq8+qmd-Ztm5w-T?4A2t8IrZ;eoPP7VjJ$I$s(3 z2?JLuP@Xten8#n7s3bs=9a6c9bv6 zvk!G$dLm>rq=D-4cDL}+x}KELl^M62)#1_gwh0|pAuy$gy5)9tV0MdGo9>dBu$X_E zo93HWZ+!yO+`4n+ZjoOXC;dEDHX?i@2PaWza`xTdU*MG=vcMH_;D<&(u@ZH){2>vB zNC2+*!1>S>@AG}aTleEF=T+jYXC=7EqOX(Dk$DeCS1D2IkTvt|ik%9+xU3hqKdppu zQp8^WpzE20H(Gl38FFzYKX6E(05(1aME$ZiJsGS16$nXA2h{~FSrD$D5cl!jd`)#r z-oO=OyJ6opwmxBoLiV2F)%01D+p20j0y@?798HQQ8xt8^b#jferN=4`=V$CsMEPu8 zQ!35xdgFzQ1S}jm*KVjuoNp~ErNwSiJ}Jkhd$ij6>?O*fLd#s^<<*4GsTSD`R>&%spvot?_E8 zE?wSdEFADz0w1slVal%|TILjbV-;0Z&XEZV&WMDBc6jZG-BF7_bOG zPDTzr&<$Hc{5htKFCBjOL`nn;8a$zn0M|$>B&2szTL;9u9ULs{0f2a7@aCaYF; zH}&JVslRlQaxCE$JY|7O4AR(HPoC1yJqv$ww?|1_D&g+8B&oDDo-5UXpy!L2ssAOl z^V;dY9R{+PAFiFpPu_#6V;0jvvK@l#Zk7<^*jG#!AcgTQzY#^2|*c|;SD z-7#~CTPzu(_8wi56ctu^>C}k#E$*SN_U@%+Q!S>ZwUuXW?_>22ON9K}eIwC;GFcf2=mI4`{3zEY+ec_(d0K?Q|^0Ubsw z0??Iwsj4yv+cmfLKK%6%!7_*wG$$28PELeIC|V^`xM_VofT`hXL10L)KRAeV3PSYrO_#Q{Tl{(0y(v?1hvc zMCSZtu47iXo9fL!BR6?UEO7?j)JgtM>ArCsk|c9s|Maox+|{LBwh(0payhGi@DZ!cA_4Ac*B_%1DD znSW`KBdZqttPchwoKG)1ViyQW+w~h=f31H=sZrt3JIhv zytv_0&pVMeNv5H=uP8@4F8{{#GK$*ovyTr}NH8T6=RX^mor09tjInIl2vp$g5FIII zb*Iv!C8p)r;G+e`U=K+986fqnH`RGVk_6mANg)FG?vRt@*hvmuo58Qln}7Ds9`jpW ztnjSvUVE>{op{q|T-L^Ah%@y2`ds?gq6MLymy@-vn+D$~rh{u&oH}dQjBe4`lZX$M zg>Fo=IA6HMof=#}6Qp5CkKXWxaCE3{_>>#`%OXs=i7^5yP>bp+NK}hJ_5Et~8jo?Sx z$JE(_>EsniLlLJz+pQD{ zu7y;;Yvr1d7u7x}gRsNE7g|Gq&%75DUHF+(X6p^`j>d5g*bHY%I0M((XG=!^95#|z z=pN&C#{IC8Iv^2jK7!HosKUjZ=N-C#rQp6QoQIt zukQ2W<(g0p;TLm0x$2OMu8Bl{2~^^3(u)bc6GJ`d)-TuB`DU#>dXy_B_LbpYqYk5H zF6wV4u)#5A%$iy~3@W+mia&8aiV5HOsAGt8r9}=;WUzJZ;QTyAoR&S-FkF&NvUAbZ zV}!?kGnPH3y}fqRv&&u3Yg%wW|HOKn}+)YmDDpG1c7Y!+%!cD66IURIUe_svQ5B_7Pd zJj7!VZxo3v{%E3hm$wl&{GHa|m$I1y!mM!i;hK}?NgIdeD$U~eXFTx{KhJR<_E3}( zZPA;`veXZz&dJ={31O`|9v zXZy#{heD0EiE_V2-JsvMR2P=fH^!^lxAM7* zEiyVC84|gSZ!66!BXu=go#W*t2;iZ^II#Q(_obz(s$3E55YHW$vAgQU+LMG3n{bsB zN(k34_{2w9B0zq5BCSuPyx^E~bhQ3G@&HK;_|{WENdN>Z1TD3JAOMVC96*2x9(-8s57D~V zW);6%L!|jRonZ;ZckL^7?Wj+y<E2DOqd=y_LS&UU!?0ktGs--b&<(35zQcb`h1@JJkNohMs0stzA=h*D|% zdgFZY;bw*|(YsGrKWChHG`7~PB`5bB6^>WOobPk-SKg{sY`jaF4OH8mGGuU2icF4f1qex_h^$ZbyU{;9!BAa?t3vwO+0W4j6+ zS$lGcB)WEO0A##~Dgg4Ss01gR$B!Yi@EjPi$zQ zlGIkM-cB(&ygal=LRft{-Cd}#NAj$;;R@ud7fyziQC-p@yrtbIN4CIcc+nnS(;MJ{ z5N8rxTJww;2XwU-lXZ#mf=BNxM{9;++60UIZ=Z99Nk6PsyCQ&L$V_iA&?m2?p|rM_ zpj%)Jf(QhBMq-W-ZRhXb;G00~05hNA?5;& zrQ!3K1KnA7t%BjxDnqQg{I4SkL)*Nyor})T#ZmX(Y}kdjf2tspV?ycw z?9!w@j^y?Jm2t^rC|%|GGc zYgTLWEWcV_%}x?wMIeK~2#EeP zO3es~bX3sz#bBhcgSZ$)mATlS)J;6;mEXmk$vl4dC9EC{A9x0@>@!8Mf-niF`{mM) zw*Q(v;U1*0zU3nWQl3gKtb<^j5f|U=(^Us-y`#b0Ge~<|gzV2IlW*19??DFzOz9$o zvF^A%nVzr}m0KZ>Zq_M2>@!Ew2|g$w@P6xxY&rLhqPuj+8Qb zpNvjcKqlJh1{x%vaIc&o?nA+~J?*uG*A3^IOnxXbQ?sh+hD7DRqQ&r5*?zcbZ$p|+_`Qqz@6&Zn?@PvqW_XgQVMPWejk0TCf%JS z7j8j|l`F3l)4dQ7d{UM@QNB$McZ!7xU5feL2ufZ=SLx(F#bFgcl6<~P3%BWk5bhCk zp6Afl661uu8zY!1>%S>3Dsi$p7Z~Rij^`-~Qan98_>ucmoV&?i!JShe0hus3yL3rn zfu{}4LmpXpO>2vfuhwTD(L#c?+OgJm{}Omfu3OjcMXR|VH93%Kq#n$E;~h)TsvF7$ zwS@H|bpHiv-Q=Ay3&-G7?F2Q<{N7mQ!9mK1n2q!u5ygre<9y4HH%6{!#qfoWS`c*$ zn4%9r!Vm4~ z81&p57)_r3W&@-L`vN$$(`)OOL5hKdA3DDISr)6jc`dRH*^mXxAIe=CLu~fa6zVj{hHdx;Vt=D zA#If)B(>W4C^n~dc<#bgAm_`n??H}Ms>A%{f_>1hqJ_CsuiYkZN7A4Mbho!|;}Gj9 z+s#Gl9|`t-VFoQa5EZZ4Vlg(XL921PUyk0hP*IUmb$vJ)t-59TeyFhv?t@-px33e_ zb)6@CQg^5y#;I257uZ2d%r7o{Cr;einaNq>X?itZ*;oHw25P$3W2V&~U+2$7lLvM; zs8k1qU${-q>B92{1^Dylo`_Hn{-kTvMDCau_Gn?f=DryTL2iWoL$|I=UQpW+cn)&~ zxoY&AdLc&MVDY|2WBCI?W3d|@nRBxbZPZ+7;3D_&c*GwFc9#C?WJoL%gtQItX;1g) zYW04Yl69=&Dfb9dI{_Pm%UWSGM%ytMB)Ijwj;M`_7l|=Z?nQ;?>dsii!X~){V{^H* z!`b=s`12^I+||Mv^jIl&pBluCe;uA2wU2C*Dr8X zBF6`W$KLlCEN}PW*i2V*AJ*Iq7x(EVueAA?zp=nR@930czItnl&k#R$;j)UEL7eG3 zpGVKGqW?K*X?Y1MAVhODWDk_C^~-QGI~OK{o3NeyiF&RZv*0 z6^=hWfSdDn+UiVkG_Yh>Zl)WqH9>r9ZngcjT*eekZN9<{#Io?B_C zMG>(#4ByR;y@zdiyQ4<5ZrnB2_(^wQM1}p2i@RG;r_~eWxzZvTW+^qIz(3jS=@*TP#+BcAhxjw znYG*QNuM_eJ`^CnE#7s@W)nm0K4HPZh7b=Bvf&J_Azdyd z(%94}TfLoHFfv7d{@gUV2U79hwR(*2CaPCuDu+5!AQI!+*Uh+19mgu$g{Z4vt%dJk zfIhuDs-<>t`m}8#==-I6-FPeVnQhuLOKoQ;%KOtY!eKY2%CQ(!)^~2**Fh^#vXv&jN0OsbE;8WNW%v&`{I8e14}S^@opuO${nDYM-{@6Tp?HRk zV=x>sKcLF~I+wy@@Ach(PIxu;-N?VdLly7Hc)wHp2vNp{aW<|rxc#XPt$S4BEVs6X z;wqB!^v5;}!_0a~@Sy6W^$PvU#7z-Kf_`~RIJXhyDaii7;atDS2|D~K&`Ib+s)t}Q z65ezOBIf&$ACVV}WYHo?9{^u`9URIILvkU()L8IJ@Hr@Ikkkcezi8p&-dP_1FMD!{ zk+Qtu$)7{B(P8Z;0U-%6P4jQ1FcB@SS=Xm{WC77UQ>=K29pFnEJ z6hb6<9`9yP&7k1@8jn_1HryJxbmmgsOB1I1OjF_ugkn^Fb~LmcUsDhl!G+?Rj(Ew>1yd z{2miS*c0R&I66;=;829HQd69lkG*#|7Natpa-=xjJdlS{Z6;$q z`h}@EM0xU_Fenb+sXMlfD(Q$H8)ZfM@pUZRpJq2;*nf{OzBryL{9;3i2%5GxOa zd3tjCB_AC>F&*hjI6Sy>#ao;EQ0^=euaiZ+Dt$0KO4X8Tc)=@OJuC&KBUpa-3Ps5w z&Y1O|@Bbiu9|?)HZQ){Mcf3_qHt&7hMRThQ70m@&xDx(0B%fTFf(WQb5HtxEfxP1* zunD?d*#HyUbFhr;%_2f==pWm^bU~G}0fXGi!(BK^kV2M1C*}Ad0bKE6Oh;fPOa_CE z>n=O^Fd;2|eW{O+}d8n??N3pPZcL5YM z2O943cGHcCo@;+t4&qA_j>M=VlC4s%ypa5`Sn^$^I69M1i&=}Sz%HVmjAO)SZ^FCk z^}e)$46)U%PX~3QSDp@%;-?q}{#z|R! z=<9(c;U#=uvBGL8^ptq*d}xVojeP##NMZJepC}K5+cVL@T3-cg>}%Re_pRt}mG{Tq z=O9naDj*NXi?YEZo7NUlBT(s-q<-`!6~)+1cdtbKOht$g<4ug^{U~geb`z5^nTXw) z;{I>-=fCZzo3eNe2woXVK2Sp?-ITgWowM1}D6kLB;14yB`dv{&NZP#g`TlO{m9ji5 zzQI5Xhd6F3dhVZ_8T;3R5)<_JaRUm zNLGM3NRhw~U?9kH9^%|nEY_WeOb~vb{Y&74c>{OB>fZd2Bdq<=Y;ZWFK{H;+c*~!Z zXh(0KOw`j!_5RIjGM}^;!tS-+??w;bys2+*pJIBn>cHFj`}d9s34v;7shGKMueU)q zL;H}=ED={RM0Aiv)_Lx+_k3(D6-!k_bIRJe>WFg9yQ9UA|4|h4hu@ATjLzOP&P5RZg1d9!Jgg;m+RrlV**%QY^~55qHeD*y+-r8&uQ zk;o@e@nXU4F~NKV0sJ%H&jma@7n)XzD$ABE6po2r{gA)NH1w9neepL{8+Z2Olh7`l zEsxi0?@-wMrZf?h+=R3S^BN{*SVugD_!FT&&)JX0r<6lX2y~1qcy}zab0#U_9 zPPEF7m0QQF4e(z6FGdDr_pwm+FM|oVXK4!=2WGdx&Fo=y0P1!3s~cL?5AC$IkL`Gj z8Ec=eBqtI!)tmk-P#&xGeQzCh!LLjKB^wNo?1n8L#rLWqG7!W^nQ|G9Hxh#tBz>%G zi9-obYpi~N55kt4G$elu4e? zY0TJafmmvRl8)=M`qeU@GDv70zO?q@iepVIzf-VgklZlXb+Djl^(4U2ud+9fB%M#h zah?mfATHgT&rP0NDyyW^3Fi)77wMQyN=}xSl*9t*c*x4ovV+~}p>5aD_7)fQ={JMO z1K0EEUq2;N?k4l33IwSz1(#^uH|?6)3ViX6)nR^fI@{2+9%F?z4BrB!#wJ&lF<8VS z*ZRDyQYahc-~C~#_R+gVP!X!N*#g;Xm@?OwW$d3#vTM0)&3%krd{4t z_g78$%XL%Iv2VOGQ4e(%i#6ySJ|jryv!AE_PBBd@Bz^-t>R3`5P0*CK=UTqXEOU)u z9%Smt7Jsz~5D@qthl(W5js!y=Yot*3pPqp0SrA_XqZF1#fnBJt(#V1_wR#ELuJraP zDc~UFxusj?av!=99wiv7thX1D8H^7XxaK^@^dAxx<%T?T zFzo=Ev$f)9f%%%{eoawgkQx0`yl3RbP7DDeyP z>=wprB>d!jiE`wgyFKE2%d3Bmc$;8cyB(p~`KmcaTX&D3mUQxQ-{JGvsUWEw^M~jn z!DgG2>!J)l8She*eEV&F`W|c*e<6cJXQevpkKXc<3_q}CVqo}} z3RXdbI>umKv&)X&SGmL?#5}&4wO>cD<-{SS`N#ih0X(c>5)OG{a9oZ)>o_TGsC<+7 zq`)>w4~1$372a@`pgkl^gOo&IM9JXI`v4Mp5x6(L!x1G^bhLJ_X{2_@ZD)~6s7U^- zX_HfK_+@D2Q!7c2&MOoISD9^uAlDoTE_ZNna2$mu9?1tojK~@lHWUTubGO8^^vq0l zFgXK8*##xutRoT&G#{y5nzo79WN!a4Rkp`tjy%z3A)dSe@T3wkD2S zEdq+S&)}&15d63hsX-*Rlgt zXD%zFkSTf*f#0I5LiY`{#NXZcQ_iD?yCrztbLImrlLNqqw5F zJPlI=`$)hlD0r{!9rW2cRPq~_93CIw#Ys$3;dt`8O*|VeHIEspeEkT?HH|8rq!2NZ z3G0@+f-P1jcoU4Q4qwd1gBH6xum=!=e0UR*ybM65db;6^MxX?C#6ew~$p%3!y6)>7 zP=+NS`~q$kn*sOaB0yUEZ6&o}$peHy;<x=3SE=`Z>G=0Zd{s%SV@WV0{L*u*OtG~ zDMgCu7+kgW8cYqk-soAkmCwtRH?zM|OZ*lzwnKa}x&87wuw*&`l-?Ndy7(%tq%X2& z74oRWphrqDA}{EH(S>NFjp?%}!BFeZihHDFc6(W?s*OLgKwc8qc?KCx zv>*PP^&nZt;@eP*AGhdH@Kt6b*FZGRI8D^Zhz6u=rV6bI05$fmj!@Ur`5C5(x)<5R z9q{Y{a@q)x^;c!9{t$u__TywN z`z24klt#}t@ZLRd$*E6_-gGVBWuYlOM_Zos%g))1ZE~veBzU}V&iYDI_vi*QrAa0g z2>uUTYCMkY3L@s9MqL}ThUgI_ND~=W;FY8S=}1m%6i&rzH`ns^L;&*EnrBCRE^r>$ zXGwmDu3gC#>5FO3rsvUID10zMJBqyO!@twI%Ad@YP*DhL69gAlfZNYq;9`x5T`{Bk z^i!opN|N5ujc;h^vJl%BH?l9QA3ndP;Q znk$_*+|}?KUKx+`MuLR9RB*chenUs>vD;Q0%N%ix9zZ8=00P~6!jqfBfDjc(CiRg0 zfgDROwVcPomDG&8`wn$<6SBcdliSq{e34JH8ZN9~e|-{Nd@L98Fy+w=Vf+%kp8$=9 zHS;Dejw5CR44k}=|5gQ`(3*4Edv6VtU1kyf*ZqC|zjMCl zdCuu5pU-{2->-4KuGe+Btqqc%bn69c97!$_nxv?J z$)v@o`VCxg;-ihYEh<&*?Xkl5A+#kRos~P<_?}(oSagTz1R%=H1PIv})F(6X93 z&0Khv$V^%!Z~tRa`nR%B+4Nhs!kvt|T`JbS=b2YxPdrk%p?B^v8>s}9+#lULYo1v0 zW9Q~xF?kvgkODojwcn^qCLtoV{2c?l3s^(Jp_NlsCQb*&=DRdBo^5KSv`pGj!)BVtNOjv^F)J;^Qk?L;ikB$j*tZ z5qr6a0gEQ0waFZrx!bqkOUDZ%XQi7NM>wi zm+2poR{VJQ+?JoekK~2#&n4Dt94@Pe(9-s2GqE$Vb0nUO+e$D>dZSn;#Aqe|RN_}9 zPn=cw%?g{x_kz|%#r%VUjDTzsJG7WNK}|@I7@+rLeZ`-MuF8}4=FP6g$pw-PGyZ!& zVV!wp-B?stWldBIR#LZ#zlSLb{vK2uF4|Ag;P0jLeTkt-zr8+x>DiI)vY=$m%_;1aTA5!7s5j)oNd5_NyqFIpOO%60rZ=&{wbQz!u8yvW54fY zd)0)n{Qc+nAm@mOv#2A-{*^Ru3#n%;LvuAZ6N=cm>6NSmKWQ;ZU$;q?w7k-isVUyQ z;r5SZ`fruF^w|^AT8Vy~lAW{rUNAb$Icf$OIm~<>GnsNs&OEb|j-_?!U0{HOapQ>q z|M}J;s^}aT)C_p8KGHm6;QtToPzypJtmUn|52_vqUhedt%A?KX&tV^}W;OoUC`)&W;+{|N zxQt{gQ&86AQR}$x{{Hr{4q9CmHe8{GJeeocte+K2QpvKC2Bs;f_P@U(pJq+|PWEaW z&*S`{>`T|KNSsh$XHu?z88*#y^oDF(j}3Eug5B`-6}lX=q0cIeJ&k|4KF%aC@txa| zt-wG&HaBLr=e}lVI5j)HwAl@>n&=M-GpCN7J@M6v?9IhPC--vJ%^CT(y?sF4-7>Qf zXkj}4Mwf-dtU}+V$C;Fo*rrW@$4G?Ylu=%&(@1s`2M{y z?x4rZ{gZ9`)25G3LvG^MyLi*v$`Kg3Wh(9Pfdapuakm%EFdI`_F7>yt7ndnz?HN1Fr`_y?ZO zSo!s8maSzQccER~kk!n`lZ)qs>MYq@)lE7xUM`L8pSrw~xSz%@Si*7_&%=N1>HHmf zqn(4LQP!y?b4T6kdiEQ|{FWIioO^KJI(?swo4i=<+U{A)$PX8D7(d$#(`AJ^I#+8- zYxp(hq%3-!RPzv2G)QvvD=BVy^kM#t<1a_uk70~5lhl9NzNv+d^|&wQoj<}hq*WTo zQp`*-cQ=;XkM=;AT!^$^tZGqvRAbTj&1+db?v@jZJ}Gxi|2XCF+hw}meScPfV=vbw z=X#gK_XiWXyBuyAjv1(pwZ&!X> z!ldR0maT$-mwLvNCL&)Q8Bf?fsdgVs*?y?I=o!YO4bR!31E#gL3WkAe*FfQQ&VMKy z2t^bth+_4|AqkBEmA`~ihEQcdKL^DN3CJ{H_JNhj0=#@ezYRhcgdh_(av)d=g{<8V z-zOjPxPAKsqkz>I(Rd{J9{X_TcYK-cm+I~Q{{DpCG)5kE`BzX8LzQ9-I&o)9OMeu+ zKxlQwzU`C1z*L}t-ML}m;Y6ca5A`M~{4CMs$!@g@F9wXRy$~yf`y(ARx|Y8K>L)bR zT`dZ#h3T%HX?<)SusJ|C$G^-hy}$NlS>07mwxZan$!DeNqkhs8x62QSM#o3@Fvhkq zo!5!1n|&qfBd?>NzGs)hZ0f_8EFuN_ZaDL~@diix7EkS!D@Yl?;Lg!YU-pp1nC6V3 z*=*;IOO3aOOn!c@V&?uTb64fV!0#W@Chm3)0yf&Tc7yhh;|CYdNA~5_(7lm%I;%O% zz!n;DM@cJax<-{n`aq^ZGIL%`@KuHFesc%MO!j<>(D`9Q%1ST5Y%$;2SjzInJ&sN= zCE){qr|<%wyG_xzP{Eq}dn$^@E_~a#yEOPh+BeLQj&s)bsy@9R{aQ;?TiX4h8#1rd zwCCNgjh)-1=J(e6D0`s4MeHWSDUVbY!{|z$$+-*pI|PH`wj7Tf_6zq-t=?#mD!gQZpU!OIG?v5 z$$b=jvh3*TBC;J1dS1P}bi|kM48@IAi*sGMO*z{3=SDn&TCc?A^^X_Z2RRgx5r5umG+lM1|Eoaz$UmHbMf` z!y=pP*HocQT@Oz^>lKKQyr#xJ)#GyS@`u0s{+$SFo&5Tb`^y5i;eA>DsJRa(i(2|6 z-zRF!1{75&g|3@auTPlm$!k0plOc2=RpQ1N{oV}$qfXFQVz|9J=|+VXwI>Ce(}J!j z|7GJl%rzO6q%yAHei(1WvX|^c(N!;{7Gcec7yfp64E$&gxn5t5(3R8XX!uH$@05Zf zxmUdgr<;M;XXBtNmG<$!Ig&6{m58jSUE|hER$*2;*e=0rdA#`I-s|`!9JQti1)0n& zBAv_Zdg=2G<7?b6K08J-IoUjtH}R;TNUx1@nJ-W|+!}bE`AzqC$C*2(LLwi%WYHh(%=##VwaReiHN6aG`#`1$OO zD`vM0TQgGF@JL>%uiVJb;o`}l)w^>;B8&RE$gRUJ4vfaOYOXd11GAi^erR;8PFs}C zvHu(0Q6S;2zH!gtPSPC~9sUr`n9t4zJJr*<^J(`=`-i{SI$BF-b7YW4fMb_`xZY=P z#_*Q=bbk3{mW;|iWQLmE(m86M=~Mkp`Y+4YOO>;^vy(2rG`k$fRoZNg18JGDj|?b=2yY&=rYADzEio`JtXeB;r&)hdREh(|;f3OfFG8 zwa3Vgxk_caN%U;n(w#u(?a7vk@^-yd`(J5u-OaZ@Kgw_~^>U~1Q_INk@Mj4Lgjgm7 zoC)$2*bUUw)IZyjoDWq5sgg(CauxYvzk_3pgrD(VvYxWV%V&HQFNPF$d)oMqG5@$s zd)U+Kf})O#>C2zp{*AjH?n-S-LjacGiQFz4PBkzu*(Q1 zEAH*L`a=;lkfd~hAFMuTMtvlZY@2T+W?b99W38OK{Femy8ghDidSL-9`WKs>rWxtF zsui|qO`b-h1tVD zhF!BU*X@1ov5RYzF{k$A=W}&$BGxp&hiM#6w%DpMVEg`hE;KQ)76Lqg6@SB?q1!w# zHa7MMbfXC?KnOjP6B7N9Y7u8tIo&HRGZ>M?k|(XDV($Cqqu`!YzWCyFj$sGdb4#83 z0>Wo)-)M_d5s&az+sy2fZwy{;&HLN_P>z^ibt<)^jI0ezyRuTH`9*)3F*J2f&ZEJv zl!eQfBHgYq&Z4bvm$=CbO{ZObE)++Fp5NSB>+KFcDqHZzepWoac$T|_gLF1rKeyIm zC4oLBF7Af;M6Rmm`O-tY$^ypk_&b-(X_xp9>%5D}qrUX&zO1UEhe<5?&ffS}({no< zZVbloROpO;OWw2GnWxaMH}i)|-oDrTI9d4KnKOQ>{(ae1RXuFa@!q@v#d}oC|N&V2J+kAii zoARFG6><0ekIUCzE(?CJ6Qp2JFLe%j)-%T{H2R^R`&sty1ZfjlT!3>78%JT2?P3sl!4;6c7Ad)X>bb-FV##A=C=8D>CR8WcbJXP| zv~KC`rts&yohRtmoN?JWceM2W@}K>uUY4DeDVuW**|_=e)R{x^?4zy!Ot#FKHB_5y z>|rsucf(36N0F&P`$_$5Mcq3lQYA@FW!*jUp-+NV_C-IBi0C=fw*v1Z>)E2BUh>AK zCK|C&?>3pwpFXugxwUGLSSV&wxFs%pVhK<8>fb|m?w^sbV`KU4#6F?ss=B7hA}Ex^ zBc|6wks59|y7Sb#{pV|n_i^ptadDijZE5V%$H2a^$HM^xRT(@#(uR9k?{5(@QHDR; z9*6&K|MunNI(gYe#~$0@#aemkI|;WB$=ZKsTq@&I(3mV@iA+j}m-SIe;6|?Bv-o&r2qp3a%2D}DbiKJN3;W%ljxkW| z%y*n0F=BY88dj6qW^TKGXOH2_f?bEIwa(Vbl$lY=*(cl_r5EwerP$m$w2$ru`)J^? zu&vplLuHyrrF^I*gRjFQw?jr&_L`2)K*x7d?TifmKOd@$s&C@do45`MMcJkwh*b<^ zx@$na?Y#3Lq4~2Zjg==)k~1EodZzw!-JTy8^RJcF@rH*X%bl?cg&X}Q(XCE{jC9>= z#uKN?f_Xl!318Z0Ti3Zl`IAo(1s#SM?wbyc`Asa5dLJ;Mnd~n(4IV}8CC4C$Efruw zNZ7{0zN1zYN@0Yj2b5o5w#3-*edf4`NtI*@b)AGhhgG44z~e2U*2T4W6&<`%Xsi#>Al6GL1 zqSfp^eWK>{wbF-$^Q~V{ z?RP#@q-19r_tcY=j89|QA>q|q!-mqSok@32KFu0iek$2r7$0`Q*MRlfr2wgM64oNl zMEB%yHgYQ*U>LGI2`M zNcfYM#LF#0$~Z}fmXe>c7f@(GjCg!c_8r0gd7mAuGhC#)}F zRVAqRxaZpUL6*sj*+*ppLM45s#Lm1%yFoU$&*kFVTbhb_jR&r$%6UXRp0yUd4s|un z%Jwof_Dxir(~M z4-e}zsf;A=_heOn-7Z8cQ|bC#G{%-8g66Dz?6HVyM}d{^eJt$Plc(dgPmoG%5OrqZ zy_43XLbR#Uag-y+DHBtc-vqT~Qk^spK3o4sVjL zKDwi3K>FX)DKLRDAlA1Cq7txo|I7E8>++ijg*^yON}*th8+=Oqk{c(j&vwaq=Dgn8z1HE zj;HxfyFL~YH4M2+K{gjgLEg8M#>6GB{-3Ue+BC;Q1C9couL*nPgnIId9w-PsDp-!# zJn}AuXXQzmA{Ci86&>+*SCmNRbaP)8vRQm}5juKNtLi8Xz4EE*kRxr~qU&$cGQH0R zvU?QF4Tr+gN=Po<<7Nlf^m+F1lhdL;M4x{uz3K_W|J=fq|EH@8Viri$sujPVvtRoI z7`gxCPKsTGu^T3-Ssrf9e7)zO4suHVSzLwC24ZM%;P1`$}T3SmwA? z#D=d6@BBebX`sSOF~0An!545%Jeb!B5cE^^3 zzG`gStA*-&ny5qmol9msEyI%Je_znM%>ecS>c)O~a8C)I7Zj%&2qJXx=o1M3E06=r zR|m+vrj{-DANFv2xp`?{{p0?38&>%ZeNnzIAO9V$33wK@P+@O0>|5F>moB8X^_xs- z3IqScUhDjI->;eQGDMxbEwTK4Xh<)(+8vNR6h+M|+aJ9EDH>L9h{f2}klh<7L!`{T z_`+d0S?_PgzifSVg!I;-$35xi9Qsc<==H{2JKVcfW5Xu+icux}$Vbva*PmTAhEsyW zd2@NjH6~Ra8w|9CdjJSez|;FK*0{PYCwEzO>>XNCu+WP-snL+P$Gwz8iDrNO1O1}jdv4xLBv-5^w-Y72 zgzFEi$X4WEy1C_WPUEUq_`YXD9L%F)G6~HWm3Yfug=N!!GF#lyV)pOs1E`g$?Rq-A z__!7rHDmV=6+$eh+o3$qYj56Wu(bc}hrdTO=?hh^oc$WwOG$F1&~e&eMX&o|_S>by z;;#Rzw_Vn3T(p9MRMNNhCs6KoosC+!z)_GLW$zG{I+JP3NXyoHy35mo_<#tl_$w!* zVkc>vr)0TVZA~7WuFh!Kl@NQY?#JmEqgzUKCqL)E=S_IH#?D5;c{uFm#EttII2M6N zb+R|c!ubn7g@2MCw(jxaN__oH;Eaw$!}~kj+6&A&uD1lZTT*56*1qn&c&JVqTVF&k zv#q*PTcmFG=BkkYw&zi|e76?A^!IS`W^66?yQM$iD4OeN86PNNqOGJMd4Kr-T9|L= zO#fQxi{V@D)HrxO@Ph|qKHY-!^xly(CKnT{0{AAxc-a!&a~jq^K#@?;{--+^|4j?B ze+wyk%D0jyk2%mye5s}hNaD-PdDn7oCHtX?p4V_8-tmXB^|Og5-w#PKAN=pdn+&Rx z6%Tg>=LandC#>aMDlt1dO_$b3H_f)N75#dQV{>|Zr=TITL*SNl2-*|D|NDG)7H;ID zL+7b{FXnMBc}y43m2o_f&XSOeiv8r$x#4EH#+7>ie#Poj%2m<0i#rI7hP74=R=Y)1ca(2uA^p$_ zyV$TO+r$ z7`}_O0C5KX(>MO>$ygm+1~^P=O9>nUvWdtYF6H8J3`mRP;0e(tOLrOdT*HimwS}ad>W3w89z^K~qO@75AkUGN3H9Exiq<#KK(jw*N z^wmwZs%33C?$mChk*%@V*bf&a$z7wQ140$|tjgaR>i?8c`XZcqDLX0bwa z7~{#*Qy?U{Fdu!(Qx2}8<9juUI z=AUEx4x1}Hn013APwYbPjir3NwX}5}pWth!Yp_pZ8WN>9--YNB6HKc1HaM>(xJT)2dT8Q zBx1Dm^qL5l*D`za>_M#N{l+d;J3##1RY9PBL6dAd(}@#auw2Z1?_P8$!EJ#I0(`r^ zfaEZdk(p!m^#GZ~;Hw7e(bma_x~DrA-<7+}_pZhqQO|DLyqU`P^`}lx+f$ja7bX4> zrJgD#%n3l&)bv!@^$q3!8LZE|k&QVeZ}8)AQU+5|d&z%S=dZ`Ds1;)u>BZUEoi>y1 zkyO+JqG_FepVd}{j#xP!-M(9l@RNik&9)LSJYu-4k8_CPpkW`h1apXiVb{Y9^Dy@L zwWgFQA7N-!{`3b<7vvEpy$ud$|AfXpM`~88$Lu&FAwQqw8kh$V4!hYB|Zf>T+e1KSWmTA z!ds+Jhby;YMW=#i{w5X`k9qvLo$H{X(GRZ(Lc$+=N3Jn@EqGIel|2&ZDl06RtZodl z9XQ3S4-w;^!-I}1BP#vnI0NO_G^_r5>o(iF+2TP$e$cuyOU3q@MmRhff5Cq1f>{@v z%gRhW0;kk3eUm&4(C^%B&85Gltu3#wf6VGFqx4n6_XQo<5M0!_gcZc8rqqVGGUlq? zZ@C*GesN{_dcdoiX%d&)76tt}V>>jcd|X0Kt?1c{ zZaXgbt1>&hIo%W-E9~?<0?XO8aEsWXLj4E(OV8UKDe^^go)}>rbNP89w`_&aa-_V} z<$Yc8OWa4PHvM0zkge_Jp)yZqBZp)H9!g2oVsygP*B_X%y`?>Lh|pc%28WM8pj=_yF4NA!HBf}mM;2xRWUgB9ng>oCvG!x!<9!1!O z;}o0%8xB(72HLC`*ui-30Qe=-<`d)NHVb3&aCFGK&IwWzL$F(1pba$7(gI|LVp&HfnHYZHt2;;NX=`iTKgF4nWy=*r- zK>P5$tV<)5zqMN zAt7H@dDuy_m9%SJNE$NteF+uUb-nZTGxup(`yx?_%VfsWZtQPUB*S^-rnU+kN87Jz z4DPJ0;tA82XAUHh@NJVk{eX(ej!G))I+e8Q)fDZ#2kPSS&SbFNwiuJhy$62jjGVfa`B_Hhp zb>}U-v)?W)66>!3TMTO1!WGKwCMDp#l)~wpt=S0L<2IA7*9VBH^-L_p)NP4Z2`XdI z!-qQwwhfr39p|zB2httw11wP~G#^-8Sb%5K2`H)q=OCVpLh4JK?=|~?41*v?e`A}Z z^T7f9Q?T-TsG0fs{d+HB=vu-l0s(qB3B7?g4EN1SB7ICuOz>I`JO_p97a$Bp%Ck#Y z{QQHvMT+b`P-Ko#Y_eMVujOSH=(@vaPBU5;)+6|>5yMjV28#nB-Mw?1@`~A-HDGOq zwXH7|J501ce%W}a!!Mhpdd_{#j<8psl(}&hjWiBYJK{3DHRQ2KXk%;3jL-Auj}vsF z1;Kg|inIBmldjH?ok9*ns)h!Ch_&=i8<#PfT|0IPK2KSD0o||quZ>=b*!K3_)LtJ7v8CoA6VPs@WF z2mlOF`mluF(a{7D4R4w2>ff(!YzOwBawkQWt$1ibbKA1;J?IaKG!Tl$1PJ#z;s? zrs`iPE-oh7wTn<9?w|jIQ$@&RgAn^He9&yTjE_)H1M^HKVG`UGHxSu7c8ZGV>gp0p z>tMCA&T05~mfu-7Te0Rizo#IS+;KfqG0|Vl_lR_N=Cu6-o!efIa$dVEqKed!`l9c2 z3ln+y!`?8Skr7`Xq&G_O_4VCZ$F01K2bZ#8R>bfCo4Jiv)tITL-o=gwtL12cF(ndd zcp%_RIO`Z=5rZ&qfUm$!{_k(n@E(F% zMfmgWVNp@_gsJqBGamy5FsX5@0vJH0B}@11env({DCVcMrbWJZA$RA_OS^a`Qb#X| z_vtpx?N#NKvtf28d+^P8eV%q-1RHBDo1$Vz`#q*%+zTi7>%(v>U(m5dZk_IR$ADR4{;$U zCnxLi23lN_CqY3INXmp2RAkKv98$Xue;gQKa9v-}sfG&|Yk?2N@fm3u8RE-L8lOIW z+QP!3#CeewUl|(~ggF|nmv3(FS=IO>3t%!RQj#|{H>1iEPwRa4;>8o0zc}Tx%%VYstH!D4!xt_AtzL~X|!*0>)6w$Pl*{6V#$sM#olyv4%4D0bjg3Q34B^) z2`@9G2BK=de1q)6#>=j<=!!@FP4A1pRaaydPr0rhAq(U|NS`o0Aa9)mH>B)+@wxk6Y3r90}Vd106l1E$;6qH+5-MM3jL9NiGOGHUI zP;B`$DvBOOv_w4G?fJ}ANB1nDy6Rh5^Qmm0s4{j}U(Z`D0g{YRLstgPJreD%c-mwm|UnL<1? z1iz@HwDjxrbR$B$oJwRb^#;P`IUXLKhK!BVRO2>2Yf!+bov+%mDy%?%#0$i~=KJLI zSKr5v6`DZ&e*2_W+2v%;@1HV%H{yp;hS~ z`0oIgkFuRLC4%(*xuJ`28;2*7+LuibnAO@wdV3=gKol}}<>*&%WDB1w+Hsj`>YANh z;nDzE*-K!|RPRMFO4mc|-3nDOF!R( z!DldT4e<%Dw6xP8_H7H{cH8c;v8=`ZZW_DR->~xXd}Y_3J+?R==`vYKc&*Gd9|Tt#4vr{$kaP)8&61LmU-)ZD>Kv)n z?tsq;YtfALa58VzNU2{VPed09ekJ^QQe}NzKwXHZ~?q=-`59QYbWu zMd43iioTBhym5tO_R$&|OUWx&0@@uA=fb>PuZ^dheaw6N86iEj7m0cw&|pN%m+dBk zo}1-%8`rd!qSjR7OU2L=;!5v%9$C}QvoA;#wz_I<$3ncbQtKbsm}0O{^e zpFb1kxTdHjH}+h+Jw2K$TeWZr z`B3w!T-g!bG$ATHQ$@D+W_ETK#a$3@E*=mSHT4Ie0B|Ou!<+Bx>m%Gf6cieGp2DcP z4mwULZ*+<+>T!V6c@?82qdRvQiYOLPBqU$Us5@SX(x4nVweU?Af%g66V1yrey z*&&4dJ2UjOrr_0|KY!2!H{)&9x3tuZjKpKnx1QU3xluW(oFrIZN#Q)NX@?K+TIG0Q zdDznj1qJbenCVYo0c=lOQMF^Uy83eR z-;uMcKHjQ_?YcMIdo(>}jdFM@yhlywZk%VcI3psHM%C-*t=juv`iHlad@e;n+*~U1 z58>t6PjTw`o`+Z3jqNkkGsuI_8^US=!EoSpfU;7}xv|+)uFlxx9N z_d+#`1(xN%Hgiu%2lg&o!h?p;XzLcO%(*Z}k(+%bTc!&<-Pd8OnH263xeBQt+S`A} zH%n4k{rLH_4o@aZ2%nQRO$d!eO4ZkynHloqq}8LVcVR#`12aujO54XPJ`>tQ*i=ZC z2@K6&p{Q+XYRa;+*boW(D!GihNn_oX^n)18`&R82Jqx;z$Os=f=u@VdT)hE9UBVsR zy;+)S>Uly!!qOVlqgSn2$KkwAh#4^i?haRw#vL;qDmf2?=pSlE)<(gfJU!@(u|B1_ z_~s;@17W!W*C9?$PB0C(q1G}mH0&)SWVW1;mm)Q4b$JeC`GN^#K>MfYC|G z-R9=ziRD&K;^JPM^-@%G5yU7M^~?3OepD^S#y@lnlNockfB*XRnpbypbo4me{NOSe zF9&e33D%DD!YR~!SjR^DmiP88p|F-;MS1q@S$!BolGj=d7IQtA(U%{+rA1&~oAn%l zHT0Xu-`r}-i%+%Qnj9+S;Rq)Wl#vA70J=;!$L&N_HtbxkPL9pjdJO5%-0}`a^+wP9Zy@=%e?nSVv!{Caj>-~ z<4}!>!o82+3ukW`jdCd|zv`H-eacqIw{JkjG`NNc&FfFo8GfOJIKj=m{{h-}M!wvN z<0bFj*)C6MB$ki3W5Z?scYu#4v#e~bP@~M-{QM8y-Qi%$$!(~8I&|8Ft#LKP`l(1rh|ko6t{l4Q?L z`_>>e9)hCYz#zqrs|$MxlR_3)LL~_QM2ibiVh}oG1nwCDUUcO3z0_PHP@Xeb?#zRW zgiFNBpp>m8P5z;RkN`^jx3x}~Yhhz4)g7fc^rl__#W5X(+KZvsV1Iu-^^1LtJ(IQE zaB;`L@f^cCva{Mnl?SLf6|i5rW)2mfQya0^JGgqa{iwSpF-0mF%*gWmjjEWMj*d+z zchm^}f#1kB#j0`n2~TeLd|@?#5awdww_w|q@csMu)M!G7DXfK&5WIrI8T3a1RdoP0 zLFt7(kLS;Aj?>Vb(p59FvI_F`-NVk#J~lCN!LWe_Br_s*s|f%0;apt6xHR$g>nHq{ z10j)-wHOqpxTBfrm`2M_h|rn*xw@Sgh{mkl>lY(ccYzRHZpE9mwo&n|hbiKn$Lh_9)qA5RumOL|ovanSaX z;M_Xov+h+_p6iHw@B@G?;f)%usUhwhavPIHA|tLAo|VhynU!`v@>R4mOPdE_4gPv8 zqN4G@TKBT4SmfbOw6+FgJ9H77UnpYwiY*xd1B3-0prW!q`-+?3?(Errgb7^_a)s#H zPiErZICF-l)c-QoCK<8EhCMw+tYAX61+@?|H6;p8OgLY`#}yEhqyp&`Ik{VyCH(pO z_v`$8Fq&}Wk?Q9(9ZUY78C7wsDsCzVa z+lk5#(Dx&Wq%WY!u*P)m#Z>9TMpi?$JNyy-urs>zlTXcSU9q5i*05`|+`03$X;gA@GG~Ygrr;QMW19T>dGqbp*l%T><`iA- zy5{!pckQ;0^~s%+XpO%=lRb7D3;(Ea7jfno;^vXr(5+|bjz4*eT|5GOF`hAU^f zM`rxHcbCxgMtJPsx6c5gDZn#;3bg{SFB{5ks7)Qj#yu&q1@QGxW5ER zQ^b`Y+Em-}*J&R~cm)OqE)`^Ep5X}h$5cZhHF*hk&4gFuOdmmKL?>uHJHQuqmoev@ zCL2vh#WmQJBEcdNnO3Q#(@@rvY?mudHJo?m>%G9I*H9%9%}v2`no+%l|2n_@=d!>{ zY@aC}Fbz@ClwG>9$liq(zcpkQSXfw?SY^PXuYi#LSpa>&hcIPA!ru$E1Wx>O5i7E?vIVe|MPDiI;UTK5 ztSorxQfI!Q;^X~C%`O}iML-G(p@Nn_Zb(g2(>`1m0K`hbW>bueUGSx#8UenaKB^Y% z<$kEICqq>R1gsgs(C~06N{4T7eA{&ktFNf%ttUHJaD+^ORHBNajc5k!bBHiGz;%83 zVai16|F{4zPZEVbI9KNCTU+AL%aZzD6L?0%2oTk`3GotFJE1bGcM^>s<@toTl4ADM z9>4cUnT2~K6PwBhOp78;04X7qN8i0$zY(LD`B8wh&w<{|Ix2EtAWHIV;X$A@m73TT zfx0p}8YfrRMoo^XNjo8{k#cnO`_Y>U0%;VU(?=1_!p9em>@F-Kf~Cp{ST%2N&{}AU z5tt7eWk&hfur-H{$S=Hmi*TvKtZ4iA8T-t^L=j|X)Z2;wzD6b_+_mO0>Yl~3DB$w5gO%;CCUuf$qhLGa+FHYa(b z(^z)0#_>N3;wI0Pq7H33X1%x|aQxvn>SgL{ zn#Vr>7RT4Mx)AxAy(oql7H__LcChQCD9 zE6&u$Tb`MU)B1=!0gda5c89}<4-;=ACPufSHEFg|N@(NQ&173lB&gmKLppZ#8UacbtGMo ze7sLQxg8>iVs*vFSSv;y3@Td%xof}>yJ1v>Rh8b$e!u4oaa#JvWJzXseYFzA+Hz7- zl9P)|2T&fgbjY(QDbKftGt@bD@1wI0HfG0f6(+T-UdXc;+2ncKv2UHc^=xNo0ncOa z*QfGF=>5`E#_^q~rs7N1|D*bQhHd3KQ~EO)j=1VIu{s%^0yh04!dI#L^uMQwVF6GU zcbMrrF&G~aQ4`9d2$^b+IDucqoNUa$JUzd9u&2rVNG*0aB0c9*PG4Zm4^3@S851l3Ivspty zmOE{Z1L=MG+6G6MVb%NB7izw_N1h~cK@Th=O*J0oU)&~?>do_U1^!_S* zL~hi%X{?dTe>XBB;=aIw5#P@jH>j*=3g`RYFr%u{*gc!{FR2xF$|x}&wO5*ZKC%^^ z2^NaZW+K%%ka`~t2+7x*bN`rbHgG<-8+O=bW-W=+?0Y~_h5CHbuHGGUqb@0^axopS zo$6u-reELG#4A+O(h>xKilBO8p63&#J*;<`U|-Q&%5fpXq#RCY+EtJaqB5lerzov%vp_hm9mmlEC#1L2*k!d5Lb)AxW4cp`nL_ z!x1z(D4Xt@n%0A-poo08t*)ub0Q>E+LiP$A%ipG^8o$J$lk_6TYjOWF9XUILndTy86aRzmC<#f=9t3^Z0{GMkMvV zLesGJ=FwU3rQuseOupWK{``mlac@;W5Yo0nY>VQzWME-o!JxKrg{VIO<`QEt`r#`h z%Belys#X~`*AHGbF^hj=fBOOD)w|KrdIOxqNAR}JMS=nX#53hM)At^Q(H%QCkinrJ zu?=bR&8_!4umNLG3(5;I8Gt`=4P;19T0)VF18V#!DP!~9$^TPECY}^B-)R<2l-qg4 zU$nI~yqlJmRsiaB&dsV8Om{d3v7{@6>fCS;0g0HA2;3Vvb>TuN5Ug+0)4JL7ugWU9 zDoqM!@xv)-K8qOcft~B)<6{l{+f-Nc{*K-|Cx1=1W%exMNxA^SA}|P&ZQQF1DW7^` z^%?J+Ka;KfH~iIsbYB1Zu_kLV?$s5kwDPy_Zx`t_JC3^7V!UVWW`)**kk%sPf57AU zI5M&s^aImRC(P4`8;HamU@?jg?hp8!fSAl4QIa#nH8R~AG_)}9dvK`1l{)rV_wzn4 z(V}QjH%lj}{z5_| zfPDh;8VkW}zXMJ5zm1LUg3b#mG=*>T@@};yiem`z;^oVeoBtM7fC>}HoUm}Y^3K)z z0g00hV|){sC~9Xf2-0HSLO9^zW62b6eDkXyU_D1KBE1mbt90ajc)5U3=T?X6(`1g4jKHp*we{*CKAnNhDK&aQ+{p(h(pBYEyR8_10xT`+%Yn$K?g`& z0u1N8Ek@B2;`c$%Li$ko+eWsR)5VQWpXnl3)Atvp`hO1_2<>Va51Qcq?_{b*66JGV z-ZmzP*#h!8c<2!8Y*mGNpgtam>0oiTg)Vl8VG6t_5zQQS{>29bFoYg~m=+YfaZ8@< zScRf-$9V*IKs2-uK=wUn_fwU9P!#(QPY*X1^kFhZXiBTt!J0 z_Xu{bxjz*o;vol#N&@H8;C}hcpSzmdyhcBN@wk{abRRsk+XbIA!pB@7EgbikC@HmLzg{DEK7F}i-+DYPiYENic zYG1#84g;M-;E7?vXE6$R9zFOSP)+&_54BI-qHg}Ec4g#+hHPafpRc}2EtksRrTDl1 zom+_;(LBb=kJf>7${>AYiu7Q9lhTV>_&;EC`5WlY02?)i3LQCm6vUD3w;&}#=%qb) zunk?;8`RtvixpBYFyKD>W9ro3w>GVcbsYl1zEqjf@uWLdjq&DjRT< zul8IR?0MZ=J*%dB(Pk;C`1y#j$Q~l>h*NRgv9eOWb&H9BZ|bLu{OKY(2>cYo2VUnP z%odrUso<8iwVBA$_4me}~BoY}k;_l!CHzvvV~wk!5yN4-Z!; zudzg_8CebO6Oh(5C~U4xvr=Fg(eFshD)f2zPxt!ZR$Skmq-almb$NX3(9& z8|mubW@Z8+BM$>Ey5KwqaE#!rZYS71&STGH&G>v#=gVcfqpHSt;t_fUb{WFe&Nd8R z&`Vm{HQ^sj?Y>Af_82<>;wC5ziEiO7SOL-b{`dc~9;<2db04u0|H24myLFcRi!bwa z0>2-N40P4w?+=_Q?dW{yv&~V#a%z*BkSaMMVpeY92$4R>8Ij4>`YWztfP+S!p4WtG zzI<^%fRnJA5wrR?9*YkFg=<68MjqU4Rs=2&LhN5G zK=#4P0l<)Cwq|nYBs2yLA?wVkTO5E=s-b3Obu|s#0otJK&dIjPP33Y`j=+c0_R{7? z!VX@_TOE8Iyq{}oYD{!ZZIU>xZ)!pJ@y6Gk)ND834gui6mLpC zk7lg-kPEVmx7#ZoyWyaBqDXpYj-wqj;?=GeM-R!Q&dHRgCnfPK3{h=$SK6qht3xS~ zCRGhjL(yOzEs;3Nv8l1$?=Mt6U(xdKAFvP(PRnK%4?8`$qC zNF4BH^z3wi+qt3kp?!D=`-5SKcUmU_dAO zuB9T^|6K(Q4(sAOqnUBPD3ww+;z?+t2O@2*MwtHgZ~kzm*p1Ah@+n`G(viBA;_nf@ z6uVk9X)az*ELM+dV!glu5SQyaulK{AnbXwjqmMdQOhcXRW; zNT2zh`r_@oj>fP$n`ZWc*D+=3|5XE|TQr-So7c6quj=VxKp=?GU>M(9L{y*{+r`Ah z*msIx9FEk07=b>QWcO}0b@fkxj~*;sj`grWULYpxd-o>a8?DTr(ckC;fh%ms65=E) zEHUt!JU0It$Gc3iPda56J5)T)_;}4Umev#V8X>Zwgp0N^D+SpPc{mEz&T0`<8GtI= zo=2V#^4t_gD|tD&onT?0k~G2Sx}sIGeFwS!V~L-0}iNY7Zw^0zCrE-#hg-gQ?*^)!9$7I zIU~|g_seS>f6kPgueXewEFP!kCM(rQP^WN+k|wgQ;Dzj-yEBbq28EVLnMEx@S{&hS z5VEtI8=?=CVYaL)TULqhyZN@+AtwEZ;1|Kr&9@GrW>n?9+t2DZdN*@h05y%_pm>id;gfC3K_Dk0*eV_Ad)?MM%zok-<1(b6pr~j+Ww+@{L7ci0Krld zDk>^~u?FxaK*k4G0$#v`NDI)yvGMWS#>T!VkAZxopumxtC(aZ6_lTK24m4t|o0}U4 zR{>c_NC-?2_LO*R2x)6;;{&3w-HA9%&u{UA5DgHLMvy@mn`cPJNcK`T1o z=%qt!t!9*a_cC*EC=}mG#-|6RuKt+ZWNKO(!MYR$PYq=;>cjW#?av_p^c!XnnmYay zNO{DJ1GU0&j6{xt(&4f^^%>H~hW0~fU*&WLMpw-qr`{!|PX9KxHr=1V?Ev&cV)BF` zVEVouAF_ilMBRl@Nzk?sxj^kpCH|L?#0lTbxpwUumcBzZ`=q3#0vrs~qFuW@* zE4$b%FiNb&Vno9RHU>araP5ELAvZ=Z;F!ju1KkOkbn$*cK$vPgH!A@7YJVB|6$?&= zT>l>sico#;9N%DlrINtS2yE4tfVrXF2wht#Jblc9{wtK>!S?0Lt^Y0XkR%!9yUp}3 zx)}dce%1cB_ssS2%uLbrW2WtI3V5#;H#atB_E7jQ4ZOYAiuXW9K@naY$EkQ)TlYz% zU%;zN?P}w7$9!+^D=7-&yx~`P<7tq*^Pcmv^(2i|<{4&9;jxsk|VZ`qYS)hK*8GlwbL zGHSo*1Zzdk%#Qy*vfc!m>vetOCQ0+CInA}HG*2oGN|Thi5}G4QD1?*-4JwUNp-_q> z4P?qtLJ}Gbl`$zHL?H?9=c&El_kY&A);VjPeRlEteZS9h57&KN*F9qB#*G`rPJx7k zefwnSm>Iyb4LlX%-uG(;bYNj6dCybo(??Dsr1bp&`A=T$VeFiapo ze1&y%x?k`9P<+q+uqPCHPPbHf7z^=^ohslV!l?|-tb5&vkt1tZ@$!6jaPv+-T4Rzh zKQ~h|7tsU!UWA@ojm-&!4Z+WjUg+hWyLYU8|UMoxQ*O>TJc@5#Q_TE=X5GtxTm28><$_ zFoo&sH(ZW({{CqhP>ip+qX{EsM#VJk7E}_Yv68>GIXJ7#qwkrHe+PGV6LY`U;fMD- z#9uK1Aiun^zA|s~{zlsW@i6+BNeuDWNFB|1X+5>TZT--tf2DQv{H2`_1m-D+zsh&3 z8?th%-Q>Q`59>bdtXy#G;bNPEtv*fLVXawZMJT%;7v1@%+Bw~l{SHo@x1=4K-g)!4 zpsqC?FCX9fvRWr!a$C>O9mBqTI2_yI%&CyUv7POu{+y=4xr(g28E$IbFvT@y!gg!n zgJlaXm~dBFu@-jhT-8)5mejebxs z*b%w8x!0{`S*trAn9xi8=Z&8SLV`F8kPn2ZRJQ30TG;Q*Q)k=*NNLqodUL<3JaUYX0$V|ii(PxnQaPaiw>G8=GIrf(sW-UpO-s zw|+{%qjZe4x7>gMZQHkh!gvj*YQWirR#x|4dBWhOZkC$i)tTExZ?}~hJ%f}1N><=0 ztwEC*63(GW!9Yr<5dEN6RjyDJBqb$x+u8Z(1ro_SidOsiN)3@3 ze;K+SJ$m{;o!1QO4JaL;mx-ZKOjF$&diDlP*!VbSKW})Jm30Af*~hA?6}0Mq5R896N^Yjq<2oMzDYt5<*?f804p$1t zvYgRwODXfWSh*gC-*Za2?jm?96J_xbsnP|#gU*iHcoqBY{)JF99Q?AjFk5}>mT&a) z$jGApj^FRdeA6}$?9|0J%iI5!<=H9D8Y@O9J6xPn+=W=0+{tHdz3q*q3i^p9RU2PT z3ND=B@7VMx;!gloQ7(h^8kA;6M;Yp|Ua0W=?_F0Q*Zim|xXR;L=`b);ZcTbljt4WJ z=MQx+1g!0y|FH5Yj)v!JY)Ag&(|^eb=s^&;{c06se=?<>{afGc5kD=zdgYaGiqUQ0 zaQ)=JCmzn6F+>q+w1^D|cx2-P{}M{VDGRdIrTCoYe*H7hoRS(%MQuT@+68 z_hshi=jX!*ZJA(S741;Jbbk>aXCnL5wyuQ-V8_O9r<$)0+Kkpl%}jd96jA_~qcRH| z17UPN1}>ToxZCgKVb)SEA@1z+5C?{IxOk3?jEq{9NR<~m=I+CVh0~yB;~Ep91z#n^ zk>-QVz-!y*+LmP;^HXzwp7;wC!|zBBOj6HIO!fKgV48WWCpSrKFyQXw7RN`CJ}>?@ zN_3S=VWPjus-Pn4_Ud8MjlC81pK{v#90fq^*jVEbz_ENT2p-{MELxa0Ycmo$ z*BX{>uT1NFWXLLo;*(pBhi-n<^s%?@*t|atEyN+O-#T@VOg87n28$KZs62Z~2`=~!@cs(y&cJXTS`S3+iC+5Fp%x_*=OZwh?%D}lkCf~T=y zG9Yd5s#O;?BZg^11HPUP7hCgM#3IxN!GmC2yqgX4RmjD>AMHw`xHg+yN8sv1U6-si zf87AtY==@m_f1KqEA=lyP)xjMCf`j1I#6ejtnuF}$a;?i^UZq`dzfBzm>Z}&Irv~3x4 ze0!9ohS!U=m$z;8i21sZ(iJjDH_G1l7cZs{-`(`fT9oDNxl+5f%)zNp;rqRvw>(;3 zD!a%rXK9fny^7$b({a2d29tgFG&hupa76zsP^0goMt3^z<|aLOX8v7CbKM{HG7w$e zrs@ZsWXJ|jZ>U2Yz>|5#mxqzeBA9uQy$|s+Ur`>vYtB(S&P-t2_U)9n0d?~SM#FL` z4UGwL8xp_e?%|W>owiQyr?A^dLt`$s?(|9@Ip+cs!x-_U{F@dV;=)|Jq1hEz!zS`e zcCptDh)PV|VJypf?#O?n1Z_p?xs-C<<#+#a0e;GK8Cc9krnuK#RnRPse8)NabOU$) z3(+5%vGU6%)r|1Zo_+IVuTJXwQ}ueGrGkv}jmnfSyD$4sTf2JF{mbL0EO*QZlbP!? z_`yBpl~IxBUS`V8G@Eo|(e4_qamrXvauWg#CBpw$0!;0s-hTjt);?*laMk7&<@68C z>gnLDlp}Ze<**$yS8uNQ`W3RwL~J$yEBnH|oIQK?+jsAnvUWuV}JDwJ=|riY4__{ z(`E(v=i6_0K5|5uSZ@6aLuK8L9Vg%`Ov0AsbJpV+5 z<;C)MiStS!%0YS7uc)>^>3G)L_;bc5*{Y+?&eG1#pB(S}7%kP&ql;~MmiqII;G=M+ ze*6O7&fL3$wu^3#PRTbUBqXiX&%=IO@Pe2J9)JC+ZDnpUvu4xDS1=}P)eOBWH0^!x zSSqm6T0;Ky8=>})ZeE*d_igAo;kNTy%}ayh8&Nq<6Ei5Ji!@gd;l2tT91mXV8%lx2 zCy#fMs%M->fp>=7D2n{j`j>Yzmh0}^1=-SQE&2R)^B~{9vir8Ss>g!*Rx8g^s(Cag zrRBH6598rf)`5k~1cg)_FCfj#Y*ZRpd zkGk1D&EFs(wC}roo2Rz*gCSI^tgU)+!EgV7-4Rl~8>dZd|GvDoBF9}w{I;)@m(@x< z^|yf<+^1|?`LpD({x5@7E6VST4timE_0`qK>5p7gEUV@pC1pbIQu|~o^hMvkNq7U$ zy|$!eaPN1xA7|&R5p>Xv#>O(|vxBgsJ|ky#OQ-8^!}klWy}An~GxO(UtHbk3Bimx& z-c+w8l|{gt4x?k3~Mz0!#aSsv)WN5!Vu%bB)O$Vrn=G?bBr z&b(6HIyYOQbH|{3=aKED{jx?)-m0$Ech`(p{ zfJ9-Xck#HpF!+s1ge3u zznmj%VQoEP^k}tS&!)XNJ&>3L>e0H8UR6LJOaw&Xu-tRHW_fzq$B*;rQ6%Vsm4Mvi znfk)W0IV1xw^FlB1F{A&y&^<=Dmz?Y&8q7AX{^gVSCTQ@q5!D0)Y`;EUi-!}v298C zp~3VKTCjf8%wND&LzFKg)uy92lSf%uS63PUD_oj1)pMhT#oZr<=;WANOE8Q(_U>m@%wT%UT&FtN!C8g3s{1&}nq z<3arK>(@OiJ`eeutbac^QMT^!U7KD59{GRHo;2dCa`0#U8yC*rk3D#7)FQJnO`i9l zRpnHkoUrrG&6wp=PLoK?&F{Rjp$ink3pTfG$}w`R)fF!f{s1*EW(@{5`4uBZ5}D^S zm7@wGS0}eBwrBKygB^pH&TfVVqwaGvNgSxg6 zKxB9a^ZrYhEt|ahaA|aX{ze=@N2UiXDa=nwIwBSxpkieb%qFx>5-@a!Y8bheu#|p1 zy&dRM&&V(bd;9xf(xXxa&1#Bcceb^@i@mYP}ry{19w ziHQO~y$ki{T^+6AIy18rW)V6S_XMzU?bK{jox?XcSW|8#tr|3P*~K{2T6gbHG}K!p zs$BlFY=ZU^@2Q_Vntrz}^*pghQCaTrTq!fz&!KDO^xes7*W1K|J@~_{@40W^zSZgu z(KIeK%swpPfFN`yGyF@%0QxLtdF|KT^l@9#JeO?RG#my8)CD-u$D^Z_DH8w~4)QGe zN{9cm?4na_>>QlqhbkzvgChzCiRfp_s2)JeLrYxQs5?p5`)qS^hI|x>+Kna-qZ`UgDAW?baXBE z`ze#46JsxSWQ-#87hE9dM_~v`=+Z{+5XYc$5nY7tg*Oaz&RxFM?!dQoB(2k?`&Je+ zyt{w+;*&W?RM+=C^~gG;=HTVLLnZ3Q)%{FA&c1Mel&hUeeJlUmQOb!ClcmGXn(4+A z9Q=xyODjtd{O!=&l-D*fzk3Q9Npd=TTa+BZ+4YS#8&T-^b^ImbA;ZzH1Jj=|&ge@F zg}z$&_3N04e_WyF?H2gvV83)!5~OEfG5xc{G~T@Z%=Q5Jrr?xs)~ za-i;;AZvr9ptK?N=^_lCKM!}R!lVeC_vpx{A2Rb5*Pzr%u7ZS~3D ztmMs$@B4(^Nx}d?Uj8WW1A)^rMEUI2Jb!syeR=kZf04G`7LWwQ$7N&R`tz##w59;r zC!d$RY0+266(2kg=oTwZ!1iPYjv4b`)E0b8@m98=JI4Of#Qv8Ye+jOj(!6 z^U(;X+`d8ver$UOr5{v5NNQg(Wd5&8IG7Y4e~@0~G*?&n8)TSThoGRa5H3fC}=!^nXjk#MMT(TN@bh@3j{!t{E{2--O!<+ zF^`Usy@Xu^)t5#J4DaLT&kGT_oV=WyKe~(ZkFIc14I-?Z*_DlK#nQsUo9}Udpz6OB z{1d5UqO16Q{9w!`y8tCGS+OGc+isu_g7u5jL*|>jzMh=tVIp_z=u!V&$zz?6mJ7x{ zvCej@p03Ai$4H$dOS(~cw;E|5Zfx!&yB^*PyR0)8mN}p+M~@$$^xhV41F>>YEQDUS zZe38p{J+83e-MLJA3jsa_MAGS719#W3K++HtFDg7*6z0KE-Y0>j39;0Ml1YOminC) z1Pxk(_NTi2OLrM)!hM?6^y7{A@9>c$#Q*}rHmMVKIhX7N8U`kRliK%d(N>x<13g>2 z^D?)=U?mqXTUJb8vITx%{T@3L>yv18AxlXVmX+z3TM{PxyrbdlF|1;;DmLgSD9j7e z6L8SWTe_pEGRrnq{=IomymBI~M^pJ4GfaMj*A8JZw_Ks!6T=}`gNjr7+wAABUy#lm zf^TY8UD?-cw|f3yxkNc;#TF_d-IRW@ct?a(osQfct^&Ky5}= z_VzP~jt~NwH7^^O9d5Z1hb*PldTKT{QwQz&CP_%(bBgKogbfS4QiV4z|M8EW)BN)w z4_NY3;J7)BUneoJSq`RNRsEv1PxF7X;U`je7#ndnmX7j+{xc#c`0p@o$dDnB7u9l7 zQ&WMmhXIUT&zQB9@dN3qqZ187^3s&wWCOuOq}V4Q3<Q~HmDJP4|1rN8>kvO+v0bWN9v6u673XyIxKD%eN?(b+qMV1o#J}RDhzdz zUNBF(wVy&SojdmPZaEqF9e0wCcJ4gn$MEyRhaWoqFe*8#q3KLP+U9qYRhBr_f1fpL z1%uxQ#y0b9K6~xV|Bi3kH@YDcQNvPdBZF4t!Nsnh z&-M15p4678 zi?D1Mrb26-5<0Z_wpuN1soG1U+}@j>MvKq?RC!BdT?I9MuV;PTcHzo1<#hAgji)rD zY_^A*^9w1}T3H>)g68H+nR9X3NDx6nTi{%OSn!n0V{(krA3$R~xNua@7^ zgp5f;D#!G-9CwIsXL(9YArK+1Cn5+-3JNL-Hj3~P zpfD>>?nzHK4ZUxiK2QRZv?zZ7g^-a6MbUHjab4ojz;@UZj4wJ>{S#qZ2y0sS`3KtA4Nn4$+su|ucwfI zTVVsqXa&&uH)7!G0a<8;gMxSqwIu+G67IW{AX)k_Tr@3=!4~ty6=e@{8m;U8)GgXO zVm!B6xja`g{PjM!7P>p~n@@Jj7A{oAAm1s^ zWwKIQw|c@mR6$wQ$Lq$wWYV%L@`+)VQMko^>UJ0$DzuXDYpXx3HYk@_XwUo-zuv^n6SU7n@jhXh-ZsB^<3EJf+wZBm4yk$O)L?aYVT>eEn|KR$ zJ_Evt;`H><>S>|Feq&;yur_8^uj2{Zi(5jMx{Xq$;}m2q_i<~tQ1?@#t!c`;s~I}pIxeby0nQE-&ee>s8Z7GIv!y!;|0*(;6kiYa{(;^U>9 z$drK{o}(hZ0HItvNPh~cfl5RBlmi4B!}k$W4P74?8W-k6ydn7FvQecqZ5q9Q+5E$_ z>fK~z7eKS@GucEVrsOTGKU$GVEI@)AYK(eL=k}^@N8;xp)!Fjk63frlcFJXVJ&7b< zyW1l*k>8#7zEit)|6Psk7tWr2!n<9prnXZd+hlUbKI5GzRBcAKb2nn%GbsqW`+}xaBnT+`{Cn~S<^%f?zbnD~9vgqOd1`!j7Ej&@k_((5>2O}_fM!K!7YH}I!1h8D)C>@u;TeIaO zvO=$YA-I*D-BR*?uH)XVR-)Rn-WC0L-C#uaN8&XLBQow7dhj4oQcD#V7tLY%hf9&h z_nNgHvu}>y-u_Qy%^8QtkEZPe?N4|`d0x~sYAD6SM(s3fp8XBJ=jBnhz~bvFv3BiR z;qnn`nu&iMLf`j_p~T3Ni9=u}wHLko~h)$ss+9ZtoBlhP$zYvC6~S0;`j@o1dRgw%*5G z$1=1P1^-8mD$A}u@^87eq_>?)NoLFn1ePCq(u|CxKR8>NUskNw$7bDk8I#- zigDJpMO|RsbScbgp}f|J-RmffTJXA`;E{TMl&X(d_~k%vAS%QL^YS`(>2i}=7CFo!MF(1DL)STs z(E5ds;|4PnNUN^}x^G{6qALbDtw)|a#{XBt;IqWTSk9Y!K$MR6+Xf=S47LNLmuIcM zhZc;YHH;4Uh@lr96@XmtUwuHp$aOrXiVClim~u>c-tdzQ>U9IOMigvxbabT7Ro@?s zztWm7&3}&S(KYFtCQjJ?ezLpuX_8*q)1B$cEBPK_9`ClL)lQ0CgXc@h%&w(2|L@m2 zmwdhX>oPkl#b~3o{&Tml=amb7q=aD8!WVl-FTfXoD${H0yxVX@0_NmY*t~x81}as= zh^C(6*>x>42gXa_9vNh5Se0QR!{(LP$~`xqZr?oBL$GsT0z5j)oNS^#`RdQt&4HJc$P{SrN|}lw#+@E=$6Tr0^Q*Hj z{2TGkQ}KQH^hw$&({wX+hhXNDDLCC9E}V+-2cFG5KLa>7jxZ!*c|-27Kiy=k&(!Tx z`|~mN!pt&nIR^(m7(b)sy-jHjSl^F>kJOlo5As&SR(xmrC& zE?WlUfxfyTh~ng{^E)!W zq7Xcmr`y*OE$!(4UYTxQRvrE2y>*Jj700^O=#p12i&nS{C@$hwV2+FLcs9u*Jj%;j z9c4J&Le!o|yWgZXUFI?Mq*#Z79sv;UXu<}`!8jR^5GHc|XzY*w?w6*z6+bNhmBCl^ z^D#AqMAD`BdP?#*i$QX7US@Wb&tQUsD2T^ewfsrThr-t=4d}f0=LeZEiLrAb%I?4m zm8Lb}BTH!#eHfGT%Lbu_uNMtXlo4vTuNPN{1XBS@cA=ped z&1icrnN^);t1vmn!4;AZ7xOudyT5IE0J)gw9EkjL&Q;Fq@E!o8;jMgqShZhfAUMfvjqC^Ai_G0lpPtKXgcKGP6g+I$ zpJGbW7wCXjx z=9#e8*n2CC1_VvM|BgqR*JuApB7ANA$XyE1xp$2Y*79plJMbhYC#sMAh^Illd-hbN z)De_f`{?F}j}HGW=`?)>6Nvss2=19QEaskJm*T0k^YFgrhDAZyOh<->?nBdVz3D04 z@-kALRZu-?TNI(#91F`32lUF#Dt2D$b^NtT zno5YB9X57KaHAz=+I*ECZ&5XC3vpI7Nlv_WjhoBmpbofXto(BthE%p$)ADoN=nLa) zM~mKFXxtstIe%7ga`poq7E-=Hx0>axI+|O0~SW=Qivvay?g9^Df5%(eft?QsUu3Wsh zq@+dL=Y;)G0?cx;_e|KZ-frx)@&7)Y(RD$F&s^*ZBHi2-*IZ!wpaJo6!xy)%wrTjw zUE+-^?pV1nw*z0tcR|3adqWv+p^uaV&|b$%<5gn>8~v6}K&zXB4>Kpa+VcCKY)58x zpq*Wu%N7x?8?f2SeV%l(zk8J>m0HBWfBszNr_rCE-S~97C4E6y4c+SmvNtZKEXL&DCSP-*c3XHw7@fFcQ$Gf%P>FwD2vzvonf-}*RPjDu?;EG3#O&^WB(GAd z5-UQPL3`%n8#bYK+0i08za?CN2nd{tTUTg(`u8vW`S@0TCLsnhtEPN@w)}!)bFa=( zseV`TQ;vr%a$IbZ8o8=+Tkk3dg@tDOADrt^^l^g61Id>XpAP({x~q}2W_z& zm+FWqgZVARc7LAm-*3~_a*$Sg&7|A4j~iR|#q6#b+~PG^)+6Do)}ovBH|oQ$R(ITY z^zE8_HOJi)^V6NSKRX@@ZxjSA z9ZEo2jog=(|MNA925!DD|KjIA9#?I*^zhmiYhI=5u6WYu$c{JTpa0l)V$ta?)q{c) zE_;?{eSQfdh|6eW% zhb_~UPIN1I^=o(0_|>^(voc$h^=$|335*)`R9O*g5jt35KEmD6^4~c8ZvgoBiPd+F z@*Qss2wdXn@-r$t%Cg{lZEdt-1#r+QxT`9e zZaPZ;_YDkN*l*a+VWTHxJJKGE5oMc6_8mELgaoS!gxzd})rdJwKLp+1Jjrf%+1A>x zqwQiot0qlI8|AQLNlTUSg~?K9HugT_c3Pz(EK;kox{dRUJLBhVxi+$POO)+e5w(Ti zh2nPO&7WE{QkS&)p93J(Z07nQ=k`YPPxKobsEWi0#k}!{y)s4rHLMd(^qV3ajs;E~ zo^fxD;+V!F#Ws5*2AoV(-hV`MV^Q}dVU-Ii=htP7DN4GN(A~XFT)>W%=N8V8Tro@I z+hgaWQXW0)GZqcq0VjAEX^k4J_l!_=quIZ|%_pPV#wRWLTQU3_WTHH!Wd>cYi*TER zm7Xv%)!1subg2O?fslGYciO)h`QMR;3n|=QxgG_=Hh|hxtufSJn2pYOa4kqkp4JrPZ7*a{s))@<9uHZ3=j^ z<@|`Rl7h7^n%c0M)Z;Nv%pc_I%uyXXx!(bqIVZAmtWSh)us!{=w%5ckPsJOq$BKsk zPq3@B`u^f(-gAmG)y0b!pLx$-qRFCBQ&3y6d~n^D%AukE)Rbt)w(6N=v#Ue?M~%h5 zYyw+XRn7n3yEE1%e|_Oy#RR{v$NstE4P8UkT>IK9;e`=aqus6l@!T8FuC8cmuhZxI zOKG@X7b&h5u;o^Zs5e;m3a z=A=r%RJJ`Rq9(yM~>;p4x5j z|Nbsh_W>ir?!SEba?NWS=#wcA^GqL~zhtBKzL(v(!swSh4OIV6aM#q@Jle*6J1l3T z;Mft{f%~J}-i_JfUSWLyja{~^gPPHb-z)UJ-Len-FjyQCQE4GRImg!J-pN@K?L#H1 zcfLIqDd!~{cJg27>hGNnKdzhcD{|Y+0iA_!xZhGY^T-N1DfjIs7areNx-L6A?4R$a zKRr{Az3}s@&bcRV3a&@VRO~lOjb8QRY)`N6%BRMKD~~h#tXSz2p7*!T{`UhvHN5Sc zl@#<9AxYS9i&zkG_w5B*n_t>5UR-Ts)uy70XZkRcIpZY^+bwb0iw=fqell$VRzGb9 z4;vQmw;Y5rPit)63NEza!>g#opzO0LUgwt1F;dh7q}?zF49b#QCjKpH{(PUx4MDR~ zBHV&j-8(?ZlB*MCoPK4*sOM82FI`oUI4$$Wvx1%n58A9XwiuqKY*KL3xp#-Po#L(? zYF!})1q{@wOOnHk;7Ou0vh`m%qJSPe^D2mRD#e*{)yOCAg zHN?EsiuRoi#V^!DX9ClO-Jj7VG%8@KYQC0wd%4(Deq~@p?+!~fUhV~%z}`4K&O2J( zGdz4cUGDvrYfc*IA%x^6J}xm`JrtR7Z%kVh%4Z&E& zk?iv=)?jG_aY716NGsoW=e|8^ZV>@{+uPd6gz%aQqMUoHwQ;-c-9%VJ@Vv>=_T!Zh z(4ku6Kb^3x4;U}=IR=-D0yDMf#zw8Yb0Ri&pQUZZ6$|kBtUHFsVPc?gmnj5LXKOP7 ziu!)(gnA7gqWoT}MWD^1PoGpVq_qnAF3i}GeL+$Sl%n8jeTJSL*wCX~9LyIFftRuO<8Dp` zIuCF8_Q2X3vG@iajjMq1HeKxX1xiF`;*m;eErZm?$@q%hVTkn_H%^?m(X+_B_SlX| zQ`hu(Yqs;GLMn3thD2g2A|SfCbDeVT2{$yRNG0Ic)@s50GP}x(^y+qPBZHb^uUeaW z8#k0ontqEho;0qP``t5j%g<&v*J;Xvvya^0c=js@_9pN)T%RH<9=zKoNSp$rD_ar} z9xX_-JW?$GgvFU+W#v(aRTzo^2`89LE-EcO7XKj*JeLrfXD-~t!Ls>CZE*9H$rPMhPgzF@sBmEDB2l|L`d5>~|O(a$%4|_MTxes9U$kNJv>m z&dhmTsJFsj>{dCSe-0Gmt7*TIt}^Cd}4~a1)o3_-XnwE5k-KD73gwyUaR^M=i@&N9zD8)s%AzU?(~o2V0WG!4rU9?m3;IPZ{5(}WH83QJ2@`*)DI_UfonaC+_f zkG0HkTztc8mi@=KSr#C3|{5)xjM=Ej9UnT}!50P$9j+=O0mivThXy+sIJ4v)q`Jf@X z8&`FNm;pgYQViTq8!M}7wr?`rIJqD6{-}URetnSM8vi4&ott88vk?7%*%kIVYbKj3 zc&PlTcJ145pq`!uE5jsIe?Vs$Xr1CFz&4uz#hg-%;4zJ!5CPQLOP7ujia;E1FdHkg z7JQSRAQcd&n-xoMcJ*r9@7)0UEPSB| zC{`%Zft*|7`KSzj0ga#g~vj5QAtkkV~Evpd>Ro^0mg zF-l(vA*Kyd2`;{c1bc=t zUl8b}wD^%g#0nW^JOrre13E)N5y~ZqZ(8N=D{Kg+DPnyGu@^9=?0lunz}-&Z6!#$F zgMohoc`y&tzGI+-?OPlu(-*6;!b?X`S4WP#Rq`4N_^)ncChE*d*&nkVaNF(yI`s^S230y6U^?0&Y00pRg-&7cQ2?(?)76vjBv*J z;x1$5j%^P9dJp>vjD0`eUdz=FUO>u9xgc0#XphPYq*OJ9%#)56wbCHy18L#@s~?OM zD0zxm6gVO?8kfiGB&=FhLKU0NaKQK1%ek7ew1`icBu{s!yRDzj*YjK2lX36@jsR7X zFleLkV{~X97Fd-4Iv6M5|3YI%g+=)ScH{lgpbQ-{L=wCiUKysnn`4qT8ygE+Fvpqa z8LDRQ#n%wJJYKB``F3_<>vs*SJ;M!p2udUc5FqY;M()9bOtbH#3LpadNoFKD_%|2r zHwlV&j&_{CPDB)|gTx0%opvv$qAcz}Z=>D&$qnJHa};}Z01OlIY5Fu-RgtuXJAcwZ zhh;(TVDSR-#GUMNOLjxyBPJCBa%W^JZ2p@;aFEbQ3d+hm5HQfyF{|!6fkA)%)x147 zyxZ}F0~8nq`&yz?B2cXgb7^3kJ~MX7_d4#(Dg%Ls{>!?=nC?+iT@LcmH-33cR*d#k ztAdt0Gi<1zB&(7uXKLSgul(TPHZRgQCHVOIO{tduG(Y0QsaN;*?7Q<_w!o#Ay{TZ}0EvM0!=tF9=LU_=f(y356p34!zXP zZ#kE=b@Ba;Hoe+#Z@h8Z02-=!sB8J*Z?{c_uz>N{`ILmn$Lk9D%Nuy`W1GrApJ96q zgDU`N9~f~R?442WC)&+j9hPC`GZ9+&RP$W_&$SP8DzIF>Dn{F3=7tg!6_25jv*1K8 zJ(T87Y`z$)^rc7l?iVL-?T(~J=lem5j!D$ka6LN~8+=)DdGay1l!3h)(37u&s{CiN zN|7ae{f>4UCdPs;zIVBW6uy6^?dfcups?$S!mj+njvAPq%dXD$A}|(NOqckEUkVAt zd|IcX=3P*ktq;{{uTXZ|k!QAVExh`lY$_s;mMyk{FhLPc6TX20rEG&030zmIF73?f z(>=VQVHDic4-#9Yo;Aca0jc4<=DPgm{NU`5A3n@u!xTd*@pObgu@l^EaT%<4MNOK% zJuF9w_kjZ!W$LYA1wB=<{dQ%7B5uSjy`c8R#a3PuHnt%m!VvL!WuhVL%;d|GDgnIW zY*qX$CsDsqo;`|=&Xn28pM&#*6WG&#uI@Qoat}rZC;LQV%SjF4+blTT{1L27xgGo{ z2AP7=bdH^ZG&hnLr&|tX7-;RV4}%D(D??BT1VzEJ!cApAuy;Xko`RlUFR)IXImRUi z+Z>61%nScRkB9RYxwx98bdR|Lpq*3$AjSL-aUI1ptX+?hi00AAjpxb@pEA7_q*ODclE(>BKZ{7>S(Ds?64@c)G00(Z)p(B!yBM_7|#k4>5+qatrsV1FfX$ z8Au>*VFLW_U5na>@ob(a5#Dq?%B=9ohI?HphJ;Q3oPD#Wm}ZDtzhmEthxiK^o@Z34 zsA>xT1dfrZq0>NRdo=$i7hcmeKD#wkp9C)ui~XLGT?v%(E-DPBVS067WGA+X%uTER zKr5-__$#De?n+r_K#@NpDfqff4B80s{|jjAPz`u<0d^(u!yBshwWtx}2@1;aNBVSZ zQ#){RVCGqVX`Z=l|3j8R0QxfLk{8f;tG#U2CrbPS^g)S>I&Tm^HIebKNSr@^zGQ+q zD~DP8Sy$bo4vQ5AbxJwX=KkpS&l^*geLeB8SK0KF?ylZxwF-IHy6LY~Hh7dO*VA?i zTz1z14Fw0D(f5=H>GqFm>Q-%I_kB!Xg*2pcWa^b2Etm_43&ge)NTnU)7(WUgSKhD9_g0DJI^-g)af3tkgY3JBWjEb% zR^e&y_l(oSG9Y|U!~M%KkCpUmDQJc2nP($p0xSry4%?ac!1$E?9k)@sLt(n3RJe5h zyew0r%)z>dS(w723pq_ZWR|fEow}MA7fQrOKv^eG?;8mlG#A|%Fk{zIL5rr)W*pvc z0kxPo!-C#|N7=)z#~nO$pU1y6(N$%`l+B0Id01^IoNc_bH`|E*W2W%)&349xloNK#&*Q zDzPtwI%Lf1`-dn@K=uUC$lA4}ZBxJVSYb#eQzJ6z@n!fS?{dIb9=#9Iejx-R(x6z7 zMMRcV(*8s>c#_0Kw;;F#Tm*Wwgf%;&>C=7_?cjF)saiS@SWIoAuStzG-1!sG>FKCcMji`e4R0_-~c6n&_NI;7;XsmG~Rq0rh2Sq>Lm&w zN>{5+6L2YJ;A?(LEv4q4MO10K1k&9eO!F~yT}SP zO>Na1U`>&+=FN3uM^OHW8#S+jLgJz5|9bn zi?H>CBPZz6ViF*HTSzI;O%`DeBWYz=oUMQp-r#I!)LUlw;G%@k-*uHzw z>>n2DD{LOEb&2o2{q~FvAA&#XrTM*G^4wybty5M~55v`S9+|fJn0F&%I_xn+09D|R^DT43f<-U4s;8ie;U|Fa_h z5}hbJ1w}^uTv$ykU!q`Vc02ATetqqme!q~kZ?%0=-u;*eL8`L#yq7rOn zdgA$5)Z0YK@#CTJ;IU#`noa33p2*zLQ2khDkZ=iNDb{lyeljnY;ow*y&EjXh@S5ok zL6QqhBZ0Q-N*q_6FC}a;Ym;*++z2TYt&@O>8GJt#f19if8(b7E#A6pOePEZ46f(jV z@`Uuig7OYFFz$7pP{nTRjb`w^nY_Tn`(?P~dW$N%u+<7Sau-!iV14;r62H(` zm(5S+0z~D`#dz!TmoHxoZeC_pP1F0V1=wDGzpnGRNoxY?1celL!VwQFlX%#3Hmg}`%aHy+o zaH5;_ERPcDMiI0(2kC>m&EJQd)6L z@Mrl^nbHGT#=OM+7hw+f)!~FGiDDQNLnQ|-pmxXd)Q{Teb(+rDzstLtsBE~G8Hb_)sE&@k`O@*cH=aXar`akU+5UV zvGW8x?p?^%9@HG08O~9h3!R)8q=kBsu3yv34=&j+{B!K@qz%?5yV_wCBbWhik)9HB z4nBrzrOGnh2&>Ix)`f)5-MG4mDTPKkD4!Ojw$QX5D`xp*DJ&)^WDYjq)roFUbgA5G zsX}Ohgo+}F5TLcC83E_)w{fd73jI^JjLvQUq3Ft|J>Hu_BbRSqrmn8Lf|J0o$(=5LCT7@g(`>=BP^1LC8Rx=RLuP&dXQ#e6b35ATGLxfLlh-c{t9#mj{cyH%P;~ssF z8b60pNmn~pNxS`w6t9C@Jj>$^@E3fxB-yS>%B&=E9I3CNO+J*YyCCMF`tBhP)1E6` zyyMA#8J_Tl|O8ul7OzOA(v;=C(UekN#xWKCwC5h9I9071q|8mWa9S0 z2^HPRp@664AFG&JPwghJ@)kInZJza=J3_E8+L2hn{V+vQVO}<4<|BDJOBMzp(m8VR z;>A5OK5*kK`I5Ez*D+@@xAv?~0PW-tagxVAc;$6R?shmQqrbgGB}`rVp0-F;D2mH` zYp3}ZtM)t8A=+pKWqd}3)u-nI3ww=FWQzLoy?5k>lnw|eEgrCh4l-!$;)a*=yL?hA ziW$GueJpQ9-eLjE9xg;`Y&U;1#j8WjjT<*^%~J`|^QiJKeBv4SZd;mIR9~29%=+z3@#cec>31g{!2hCQFLDi^6~x$++fToU}>@cI_F;b@Ny|R&B_@ zJ>TY$)|`_!StZN$A2{$%+I7O*Ikm!k_*b~al8pq4IK%C?{j^_$pXcPPQSa?`=FEqO zbEZtu4YCcSv<@8hE#I!hYgSH-&4jA*Aj7B&JSHe&yDLJo{h`V+kz=v(=QOXt&vA-l zjK8%kJQbzwxo?eE7kkz_UmJq_LA1&kUeLl*-#*>G(1b|~h%pUcu0~&BZL2$ZMD5H|B{k~RZ#~9j;*Y+-YKlSGXO&Sb@UKW$8K46 zX6cK2`6ZCxfH_HtiMK4@2`)NaOr+-uwpoZ98_<>3v!bHZcwI^H3wOPc}*K>Yumon&+@t9rTYriRhykM-IUr-nDh5@Lg!JNlnYG+2~ck_2N96pGFdDZA|@MPGTBUn9Q0n7?l{J$1mfM6WId zcZ?_Z`)(LskF%($`R)?;9rOSI8sHFL4ll}uunu7v8oUhM87nFk6>hBzzSG?Fqqf#M z*{h4v)yyEzp5hJXhanoTbr42)=Gk|ssS68Qny2wwV|@xOAk?#UfY|ZPW>@14nB>j~ zm?=%&N~SzJX|%#H_^ybPz*$~< zRrAKS=zPz~a)*@|o_BQ`wji-B%^nDG@GsTye<-}57?OU`y79_{>BcbXHS6T178P@g zIZP8wGvo)C#KeLUmmO`P7!7#vxy!&={%tCiXU*CT9t$@v+J0bKZGq?ZUWpvEJgwg< z%R4tQLcOKXD!6K=`EZMUrviP- zg7kIel=fiLx<^~`SfdAE2=L=%9DK#1;73S-#NecT&r$T}i`CUPgFVOttE_g|z569S zA!=GNM|fA-isK7EMfh`ONf}0Ypc{X zoev+r)$q+Y^|EvP2XDSX+517f6h8uP*}1yh={H@jV&KM!GR^P@c>PB~VM){Lm@}(e z5gJqg3>i((SqKYq29{+_e>Lrl@s6MvbX_R84alEaL4P zG2GN-!g#S{TP~+f*v#5>?E>6e3 zrt-ByZ%?5E=EE7O0Ja7w+_tv20teKy^g6*Xw`*Ej9j zx6O@hSblR)eZeS3ZnJqZK;<>?plxgGw~{9#tZ$iU2$=QZJWwq!)$yyA~ZUb zTtGJi$Q_Ww4325=X`<&VIxPVLx@Qz+-;hp&2~}k&?f}&E!TcsZVE*O_$rL(56%IY+ z;w-zGPGNGKci<^OG8PCE6JT%>GG&e7#dcP`9I?O@(jS55A$`z7&Blwk#Gcwni*3ME z5?>&wqo4aAG8XOdEbx1(H(_-QyTz_DqJ*|Uh79lzxL)5$TNsP_xwgjtZ42^d=8Y48 zs`Ty{Br_btF0T)eB}ekUW1|gsn_7sH+=*n zp&AutR(y(pHudTwd+?H+?YEam&Amw%Cf4*|Y_OX3;V?l?E*Pwm`(f+x~r(4ce< zX697&k>@VA#Edszbh>~Qx$yFYDpUjlge%wT(ziT_`1Codc~Tntovbsyd*aSS9>ZB; zso+Ugu4m$u@WG<6s;X+@m(TimkWAk8_B2KHU62qJnM$BgJMqHz?3pE`IYjJz5Ep^6g@F5tKrlm z)QPFI4!%ZRW(?>|g-i6HaLbRP#-m#hdIJUR8@zZxVg6<4o!otpqQd)9 z{`@G*RO@v86mTTH?_#;hb>LKrP!Z~tnADo2#2EkRsmush-JO_I|UI*L%2u;_m-nT&xjDd^*T&sy|!taRE1iY7C zO^A6UgmRu?{V8Uij3{W0O4_bt^d%S-ATF76S|PbbE(y*kuB3~v1x*m13a+eCcJZa* zXY5Q*T+;vBm~9fvg0sb#h};alt~>G%6-`+ZA5#@L24T5AMa_P1O2sk(lA73nV(@5p zH$>&lX{0ST(n;iP`+Ji{RP5~qsUZEKAkUm>@BJ*%b&rprr?OpT+W)5$(*(R{T% zOFGe%3d>q*=i2pRS-sqhU4_oQjWkXnGku(sGc)_uSIz+w^Qb(}Hux2H?OIslbeqsD zhOt6a4HRs>-wdda+qcuu;gZ3K4#NPs!^hYGcj7L=59TFq!TTpah1wIVms za~zMFm)7<%J-oQGwLZ?NTjJ@BHs^IJsn!e3R7|+Q5nd!YeNnTFv^02S;r+y8+BkL1 zaQO184rI+RKLsp*hIS6Cf+_rtU2rONZ(Ef|!(uzKnw;9JEm3LNm4g?4cK^8@$%D zz=5t3FMs-9eY^V;ngI!=f~RkkyE;MxI-u9$Pvfg8~cSLTqGW<44ElQ_+o`&B}hYNHlkD*MDAD zX=zEtr3uk-?J9u}x9ggkl@GMGQPN)-q@T0HD>Nvm+0<*gS%P%YlOXHCvOT-?zF(jA ztLgE%9E0wQHDnX&%k6eAt5h!eJbdEWbfuE-^E8{TQREGkmv4)NkbKi+uzLzt%mmy0 zl(ie_Wqj+;GH%`+iZhXy?0Ck)vaRazA@*MrHkO^W+GW-uZ$#T!L_+cXPKb&pXDnSd zQ?6gXQSEc3RIB7B?<=`7%kBUP4nw!LJ!&W^#HMaGhkvQ^xwq9SBx#I$igWDaewZWA z1r*b?)Rs8yKiYm=i`iF-43%z4MLZ=}%o=H) zCNTA{CYxf~wQTpKGEfUZ&||lT_kRr!5gq^I#KbmB{krp6Pp5pc*tP2^)zJb4Q!arR zw+j)R{r8eZcvld)cK`e~WYfgHco1W9C|1mP6?Me??I&|?OE^!O)hYb7^|)`Sd`P9G zgcTye`NI07N6kk>m|Y1I^TB_rzq}eI09*JN;Tk{nd^AMz6H|zFJYNU_9~mAzrn@^d z)hc2D{Zu?H!XfW>0NSU|o)zI)h>OD6U`C*Cb8LZ7?;by3!u?Mq2fo5g1meB^^nv~Q zxd`8D>b4_%;{2Cp4_`3JjLgW*`%!a`103FJ5B#U}5S0${mo3gN^;;P9^+L)gaFm0~ zMji|b3i`JG$Li!yR)hzvWjpe6$8B=cV+Smul!G8Sb7s`UIa}z)aChN@OZM;YakIJM z^>THjtj>5gW7D#cTq~U1Sq*fLWO_5w#x5l-Z6SXL*P4!5LlinxWIG)_YBUgvd}hE7 ztz5pz+Q{vUEy?xZh#eS=qnnvjh ztDb#kjlTV3;f~?023?)7JE+ZaDev(ww}jhI9;~Qb?lk{H51n!0JHAzaX`p&|+o8#z zj*_LF!dgsj0q=)+_GhgC|6;J|9IVfTpgFuCVyE$tRD&f6TUT6})s9>w5yw3L75l2a zEa_<5j{eNL)I~!^occUrvZSq_Ry)}90%{k&O-{bahoA!YmJqJyA*Qw{P^*-i{seG{d7G`?M_h1ehGPXeeh?OM)wTx zosqJd;}bd7hg_cif=9cKgeN~{%mNS+j`3BcxT)mF6NBaq#53w{SXlPV_$dq@Ddzp2 zn$a$7%jgfpk^%c96vTcu>1yv@wm@CzsEhie7O!N-*0zB?bm>k#Y6F}XT@ z;lg2J{0D|banvwv@MnrSbECW4=0%73jQKrt)1PN#{BSOr7kc;Z?i)SxKlOZ+_Uu_4 z1{soA(|$NrhZCt~Rlf3KKdpncvyHCTbbf0#-ekps1)qc+CRL;i#iukjlbkD2RAOCs z_y6JQOTejI+wZq|o`+QCDWRfLC^D0wkSWR7U`R=%3`HnoNJ@!}MF<(9GEXIu3S|nV zM5ZW}%6~oQeBb%b|K~ba*STuj``z#RJoj_oYpr|T6&3u2j`;?VEH%9SMTTd8vCs@i zcl~(dL#Yig@?wlY2cJWS+`xY_)GeSV^8w;tGeo-Mf-l#Lv()9Ef)mKb@^#3{w-;-inf#pu4EXx*sN4rlh8(#%pCg%IkJVsY-=+B{LN8OT_#W zH7E@x1cN#|y*|!JXG~(p4iT(}Ch&&gF4vhFUqp>@b8&T@<%K?d`>Eii#pZk^?DMX? zJ!?i9H?Qmgb?KBqUJ-q3L(8pHZ~oxoO$D3#JPmE%@9Udxz_?kW6f;Pf!kDxJla!{A zB@~&AESV`v9_Jy$VE!0mlDJ3MW&OpFfXu5J7?6Urm-whNwQdfn#SAFR;l~lVn=zOW zLNZ=h;$Fn53j@%)jt+K2e}jt5?ene4CvOE-x>aQJ9{Xa93bN?31OP4hjqm3l7}1>!J+(3jS{n z6M2Y1n(MDd-*u9oQiR1knMRGD2E~2*_I14v5n~fh^kWgm5pmkI5+I_IXsgWKo ze`KQh0%m{NSNjuH1)mx#uI}%jEWRSTy`=jVrzOM$2m1S@P-cpXawQ^i(4ng%pg z0=Qf3YX<;w5Q`xZ5sYN^1PD1z2s=n8-l!5PG|93&``@+HPy5`wH$xf-ef8QqY%7F> zJYP*yV!<}Q!?M;=orOlWv8#&L0OMc4(s++$j_~UM;bP-79?)EtzYS;p|%YL9u##kNy>zsg0<%e zpHz}D;8Z`b@ml;g5ej$?C-?y_jP9@5ldoZ(SC)A}L#K1++{(j2c6N65bq2W3abFit z&vi%WHkj(U=Cuxq5Xp%C}Eb zGZPcCpSdxPrd#DK>TKww430TWjg~>6;NOqYE6jk=IH&Ww-BB1!ls)vFyfS{8^1Pp2 zM%FR^O;zqp&?`t(!ZRzIyJ6ljoU9~JS)@@>QQ>v+q#o!}U5@aGHZw%USpO`$a(7FD zn-YA`*?E*jU?rIvd26&cv=KpGp0vcy*=ZIX?C1aq>@I4*6;&b<_PLVtatw+ ziK|b)UMx~BxAnBxmhS4UC4$ic&{(j6;m_UwaLdW*fk-@7rjJlbGT}H5b?I>&t~sZ& zZCm4u7u*mcQ@`#?soT z>PLo$iHf}b&6}$B(~}1`u7sK_6qk-ODyz7dQ#NTrB{n%CjRD^rnGAOMy_0lYma;(1 z&cig9k`6$Zm_Ksz@Pq=2;2}@LY69ifJEY)zDi#!7m9MbY_RHWr3SyhItl_iMj}AT{ z)K9po4p1=S29($9GW)lLTwS{|j7dDh?uWP%~55Sh+kNH4<;PQbX~x4&3^q#H~TiZ+g%BogivT*Y;U{XRc9R_SO51d?- zu`ArYgfXNJH{85SJCBzn?S3=%l~q+ttu{BVM2t(_HqXPfcq$4s?Ug2fy?4@09dRyd z7w$+}X=%IAojM!H;4f|%XAvndX=nl*MMXhc4sUC@vJ+lj!KtbHb=gWAq$DLH>^ZQ+ zM*L2b93Lx>%)kZd#rxG|I4vUg95S58W8U}=M;g{)u7&IfRHgVaNWmtXl}a)cOMK$! z?#_J8xTQ{=tJ)MP#OnvX`Qxtv>4zadWm@DAQl%9Uxw%5E>}m@R@sa~ixJUj#NQ4vB ztyqNI9zGeUkud|qP8Z1`e)Qzr65@2kLvnJY5K`qFEp&7&(v;bZbSyLxOA~;hrT_ix zl32=ZV+RK8aD-T(**s!=rJ~nvylQjR+rRH;+a6?+x*Rw@)42ZnBptGgIRE;`TyAsO zq=7d^Itx+cyZ-YtF4gewrO{;+783B^qZ?VpRmOimQJoE3|9*TC_Tv9u4qVkb0+nn2 z_sjl~$PoVeihupFz@1>ZK>6PX|1iH3Td^k{Gi3`e3o2a^Y-<+z$Q*y8Q1;{&vp~PWl{Ws{>PM>ii;tL3hQ}sE z_>dd(pC5}Sx!rYb&$r7f$44*Nm3O6n5g(oVJ{eljjuAfFJZALlLV8@65UHKgy zW((PvU$yea9PNtgt`5f2-TJ2%KB+gIcUb$eiz`8~a`c}Y7>~LWId|$iX=!Q1-jMKc zUAmY%Un&C@*W*y9qM*3M|ak!0vVlx&JRbcOQ0!}GuyMzPW; z!H8B_fF<}gUWCkc03Ns$WJo^-gb#an?7h*kyGvz#k|7YUU|6+?K=4T*f({fd9Pqka zL7)emxRF2C@_B!@-Lf+4%8Z`xeg96+0gKb&VPO$9Z|%1tdkDC5=6_E-K@{>$1w zKQI4lopOJ|P%6yiWurXq?9>M@L=09yPLWCr(lBDojX5O_^%7FC+smovy?y7q7ALw{ zpi@1E{Jq{I`Pwxn07$SIW}@d1X05VYf5XUMAolFVqx$(nRAZ_~?*t+N*x#jn$_)oU z4$C*W75};o1|*mO?;kmX;{{52KZ3ykyC&fm)dCl%DEsIK*lnZegZdw{i}`^>m_iDH z4yLRo(Pbe0$1(05>AJRfLORZ!+4*^Gz&5^pce>r}9-buDVp>N};s91wQ6Xt266Y0t z*y^JwMj*-LyEyph^d3e%$kh5#z43NnS_PTsLKY#;N`jN1?1Y1HP17J9(1Ci~a!w(k zSkzWon96LGe;fcZNmd990}pw-{rkJ%b%WD>m2a%&53W<$ZCpYg;1#i=W10IrCeg_Q zE+i6f6Ls-sU(Kp#57^JO$9!eaJpkY+6etf`*5&+VHl!jSZ^W#u|L<;TBJCiJp??AH zb$~o|LYB~Z;|P^3P@@%J9|B`SBg1*fiyG00seIQwZx-qG2+)xIoKib29hw`HrTn7bn@VXkn50nt~l$lJcz&0 zu}5?C!s>w$(4mWAm>-H=@83KAK;uyEfMWsCmsR*AvS15hcsC*fYb>@nm-LN1#Z-`b~G}!N<~b4Mv~kB zb?9Mu4X?5~+-)FUp-4JF05Tw^Xo;9SuQ_!SsEQci7&wv;Y!+0ZVUP*&ycBbFz_KS( z_W&7SRf7XM-_aDT-qmKTBlA+Hm2{!uNv;08j|}&Wre36YO$OowI$(I}kt!Y#oXC##3uKl6*zdC$yRjzcFguYch?Q=-+>et?t$WNdgnVV7_N>F@ zj@y#0W5-oniC2Hcl9G~ksjl0Yc3kSnKj{|b@qy(+ zn(p_}y&VVl*PaQIl$K_8z+yV@HH}R|N7?Sbz=-&!wFJ~UqgpE?I3;CuaAw&i*(Afm ztiY->m*6x|54eqqf}N^wcjKt&LrK4xAv%hIB)89`wEa$?5f@?RM?--a69Xw&C=JY~ zkplvfi6S6iI^Y4Vn~EtN9~N$pb8Sdk8%ofuQquGX*%>7meK#Yo(XM$MO3~`6 z`7dA4Ugc>KVui^K$OR}A45SactbE?}BnKd}hL#q+8Q-kTObV|FGiD+%C9-4Egg;BI zs*1`8a%!>#ckkZd+x-YK8luwW<(ojChb-g)7r~2V;(P0ellG(#st*kvW$%3P~LnN#`IvO~?yx{pO1Zrpl&2il~I zZ~FR}d%N^Y@4V%lO8V6DtxGt%Ch0dN?8Yxjx`k})MArT$tCzPWVUwVZItW$aT4P4g z2~P0!R)*;;NZc6Y*;oA8RD4>+k_?TeTna`XuBK=l)ENpA_uulbGs}z&=o|R9u)urn zL0`xiNeKYqt^KOnH>IYgrU<_Nu<$+z488i3EhqXsp$|ES;{pfjWWj^p_tOl2Qce|@ zm+Jy8@;*UO@2t`Z`%>f}_37IvKA&FDfruuhhZh9%5N&XSQ$WcMSUyZH_zIFd{y;%-^g5__T&F-jZVGpSu@dJ|Y%!MmXmH<9 zo!_qXV}z>i*)tQycn6%4ptDq`a3COQj$P$|?m3`+>=e{!!4Drk^x75B{HP}B`}M#D ziWiJEx~hT#@7QIIQ~`t`j; zW_$`(uMiWBoBLybMymy(PW<)jQNX}h)&@fDB4ap{nR=nmQ#y_Ve1Ehw{V>x7_!F1}eLQ$<^kTP{ z(i9D($rK9mWGyt%5H=R)9Hej>A0J?8^3#prY*PsQ?u8bUs#ofL^?xp5dV$>opPjq~ zy%<^*j#j*SkIjjep(&AU!nyatT>wy#s0}At$Kta)F=8n9MEleG{d*kZB4S$qcZ$P5 zf(AX-s;xQZYcUJO4B#iahRd36Oo5SUMcYX|_K=CS1d}JpK+R>xzetv#f6pe4+I#_t|Q^)}f zRSsDrXp-LY`ZgGmhROWYfHUY>Wn^P(M(UYx=@K>YARtWN(R7PA2nw}#X_adtJb)&y|#_Q@Fn+1w33bGL%_s zg}=}VH4dN_sv(CwfsYX+-hMbDZ4ir$$UP}_z_(|6_8n8}_PuO4wukPX1OK5aX4W*m zTPL>fOycM)6MAeBJxNVaTfk&%zb<7|qQ3|&QlH-UE{bfS`_p)9qRdYw@Z1F5Vr-3i zQW0{Xq)*FN?b+ma8U43fEQ+;Oado&pA*4Ix}FtDx2yKkg^-nEl>&0TFZag+e#iX~2$YF@MO&?&cF`(m=`OtFpIf805Fo1R~B@RL0~@=CsU&e=x)OyB#~iN0S}YJf`9 zV(4F>fWK~TY)sR>Hc6Wu4fNI@EOa~1ABq=PS$DP1w(hva>dHbPYNKO^AIFa8##?lp ztJUF)%=7*SF|g&?Cl;bYtD0kgT z=he2M%))$JNn!u`V64*r3v?vQ-oEq@y9gywLQ;}tm-cCQEL}36?k{vuMrYw1v~#qJ zGjA{0t-pX7J1{Na*t6$llrTTK9Ok~yxd2~6^CK~A&l?x}4>o5e)l?TGMK~4X>zkRt z^7E-(K70~B0Z8HN+uI8=FKAhaz4ul@R5aXv40B}g*rAYOLF0oCGTO9HbEGcAhM5rD z3N$n|RS2ba7o?PEwi85pqdJAy6%74#Xx#klh&J-U-)mJ-Pm!iB5ULS<0AvY&1N(P& z?EJ61o#UVQ`1zdyUX$KcPCh;<)sNt3paf@~f!>=%=)d@+(-4Bb&*fSxWGcemX^sdm0W}k{B(4&!fyjT>TEV@BX)1mr+5_y??^gl}KfJ`A#n6ADL%xWSx2!yOlyA#{fY`WHN|bjmUa@`ry$4_m6W9I=;-iYItv{v za=Y$;j;3taKWKh(!ElU*roZ~nG3VGK--@JK-=Tnp`AmoRY4w9SQ0ch4MThL6hxrBxSd4vGw8zQz7fecapm=w}b zkTIT1Ox%+fcYJYrKdLnm3XrEbtOsH9JYLE$7$7Li$PwjTWp}&CZhb2NA~H}Ks?<6# z!#G~`p-MJn&0ZrVH3C;H0vO?`1M)XRk0?2*fr-4TK%XSipz~L+UiB(KT0j6JU{CR= z#YtYNub+h%zc zgb5Bc$O&M_xEO z+8nKniiO3$qUa(fX)uN?;dXNOqv_%ukR#-AB4|9Hw}`U@_z(z-tp>?HKtV)9EB4yn z3Mpk~KLTH_ZTX!J7yiZJdKz*;CaZDNr6s~ut~^b z`7i!hTACC(fkk45cZcqBayvt2)Jc?}Kmv4UR6y$@wZ9!8G>%y(8+B*Y}T!U>Y=4xE2+t9}qkuC@@;lruzNW z3|SH5Uz_XHs=aX_p>zElKp(YU%a44Tc^0GSK5YUH6=tc1XAE*$1GI7E@AuwS@g75c zeYS^vPyAguiX|ApnLE|I)eFj*u8Xk%ZAU__QIt91aJyzKO=}j-5C{c@6zvoZH8n}< zyCmBI>BgWBYV_>#61EqBTT(&HI+1xRTF-}`J!69sl(^S-C`*Wo&jJWFzxi}hZz&)f zVNj|9VlW^+Td@`Y7{~Pjtwr%qz$&Z&+^BDRij-mF9SkB7Ukh4=zgQwXYvgV6ib9vL zWAXiEXs1vcMF83vM(80u1b==nIvA&_@_}>b`iX*K@8zRUaV5wJh>Qd47NfR{!37b| z%cfU5`r?+c%qZkzV54wzqKZe21M9G1J%13eQz8?^d#prrRZ)CW1{7Zc+fK?;hEx59 z@`_PsB-KLu$oT0!UP`7&jCOtpFdn{hd%Dazhn?6#Vt2wz!8w}KEJE1ViWT51%|7O> z0#F7syQ1+;h7r71@Lz&1%n^Ml4NGQh;aVYRx*dl8g1~|Vv%28{{|i)7KEk+*)Yx8{ zHZ}r8Q=2+SRG2zBPQz*TJ8{>@#)R~UVe8iWQNp{bU`0kcWTEM}fNQ{+z(yfnAR`FI zlwdr85xiD4NCdzSEgJ)?KrqU@s1A5su0qTyzIRUxw=C~nu0w5&jBXbRj>vu}bpVpP z@TlI8jp3-IqM&(0F7WjOzZqfj!Ra#T%UE#ZgDNGiUE=VA zLMK+O<}tYa!qPqhI_)bz?d;bedbJQ=nt`)i+sr}AAQzJeRM>57{AzV285%ppS4|$M zRiib4M(C*PfU{C~`GQD48@RggB+up@vm&S{Wdyc)zc&zjcG z`)t5UOm8PqiQ~XUJ{5x1hq|BG;yWUu@ohI0zf%BkQvJt!9+)@)YB%&bifEwhGahf& zYnErB`e}7zLj$LXNYUc4Z#d!<(0t{je*+jlJxXfA*n>qy1=ozSJA8lkDxz@bEIS4f z2Ei6dVTlA*A1(`kQtr;%Kuw3lpt=88EgM7#;7A4418q*l1rlY3ig(yHf5e1bV}Z)s z)>d#(@`v*av|8iYuTJs7ho7L!`dC6R=8Aw6y1u)c50^?~T6SGoRFr})zoOxUD7V`O zA9#(N^LmJe7pV_Q_wU_1hv@wWa1W&pY3*}7O@j5?C>@0!5E-F*YeH=wshkIhiqyb> z)18@!4WSau{03(RUhg3ft5jf7hK#fKJ^QVWRa0q~?Fja$s9doEQ>YeC&8^}`dwmEd zGeg(AK1LCg7-^OOz(=C3yhDwh!BWn(=hRWi18}P#r*2rZ#+N`^eSH3diC8#^USS&2 zrkj~E)OKbUsfSh|n?ma!qlTGiYb!6uf3*O^zJ=u)MfAwmQ_E}+T6s?11TJQNY*-yx zBGxo=-w;Si^7G}uZR{JBOv0lEzY=zC6#Kyy!zYF+@JS8G55kuKb`rFYl8*g_@svE} zweYGyml{dzVUb@4_yNV|2H%FyNWCg?%3b?8o(Lrm0`v%W6ah(a?*FCCnRnqa>yrJ3 zj#WmU1qvaBAU)_C_kd>C_O<65Y&one?K}%-05YmG0l}GKbx5}9UzoDAPG)NZ{#a)e@Nzp>WdSH(%dL;;du zVk;M%$@lAe_wsr3wXQF|Qhv@Sc)Z;8W*&Grh4aNlif+iQQIV+e9Y4(-ldoTQhKw2I z&Ba}gvYR&TDJvJ0u@$1XdL= zUraM8ET#z`x9mb&-$+HxPgcbDR!rv2Nwg;}>SX%tuGzJqq%e(w3&EOAy#k+t%z2F} zKL)>nx1#7OZQ7ieh-^pz5oo>rqudih(5WK&>))ntM>?W#bU>LPSjTP>|0nQ^^sP)3 z2!9!%u@L`!w~N#tbO^j zAz!5g0~KPr1)0vT-v%wF4yCJ6U{GOGnF{TsykWv$YMhsDZ?S+< zU2tz-1Wdtd#fWiW#qJzZc^v?$v(UB;GHs$vgvNC&sdM!wum@;acS1)Ifh-{v1{pxY z1wOkrUJ=5v=qOJ@zzz-7G=1xnn=Yr>-q-tFe_L?@(;s(+5V^+nQ6JqJVG`Kn;HKfzSLZM0Ta{}z?B1Ogyb^|YYSy(6UZ*02;q?5i*Md+VbDb; zl%azK>=f1aq7NXLny{(ZrXANt;(yWLEy^2AG-WtjArDzs5dRx!ju|{g&HC~o1!P?N z2(;mIFw&3~Fa^O>O^y_8z=jJKeRF8Sxd;)Jw)jk8h*TdP2%Pv&ApHsI^#JjqyG)dgp7a6!1g&< z!`>DB4ao%2#5Mc|s5t_j_snmf7w_fwKd@l5Lc0;uR~^V!$z&z~(de(B$J`r=>B3f< z`AyvjcBpqn8V>A7W(>wur&(Hxn~8L*U|Tz*)Tcy6y(Ean=8IS~Oqxps0YJjg(2<6~ zfQ4$2yFY_z;6hj!qvjH*VbZrk(U8LiHa4f-^}q z&qQZA4?HaZ?Fi_YcyYeq-;-xc2k#$qAYEC|c*uTTg-VNG`ZH2C(O&`Jj45?k(z+o5 zQ?>I4nI81_^@-ycC!r=d)4~}|UmDQfD!M)wg^z6A_{|_-;l`J)CnrakFA%V6W#|)? zycaf=UKzz-zFXc0#__6fAJNY?VTZ~2E9bnhKVFpDyGcc5CB+M~hA>is8CA48n7K89 z<1cRXPTw9}#@aN^v*`5woYaiP3H=rL6PS~IsoHS}J@{n!-^d@J-8bD@jWCx3Ad=Yo zbhW|CZ_2rxc>4@Zx}W86WB3M(6~p!?MV-i$oh$}FfqzVfCw$LU6 zm;muIe8W^^H_%rz{}fP2VzZ=E*^Fxzl@w!$;?yc0_?8=fX0$StM`__h`y;J_z znM+R&pt_M^$>vFdbvOk%6&nStIX!4lNK#@+uZ`Z<-s~rN4z=n?N~kDkUD$%~6P(Eu zIMt`pml%HjWC;IO7=Whw*aMBK|NN%33$vr4oo&la)xiM96=!aq!3aPoZ_Tc?XzEz3 zx1Y+U)hSZDTY1~?AQECQ_;*dc<}D9`g~0Qv>*^|LuUd*;@k{=b&FL=o0f_zWDuduI z2-S;*#jFn=`)g=?;CrK6bwTMjQ3#@V#Da%yG!77!O!0#3n_!j++e2^>4YRavbhI*x z9EtV-uK`{%bI-35NeI-N&_+U^E)&luEPN41CCf+TP5Jj_ZnU6L*U;Fc^vIiya6HjK zc7hd6`k}h8UNJdW5XCr|go>j>Ch(^3RG;PRYl@i2hNZ!cA`5~&VDWV1c7qv)%3&CY z1r8iCXEOXaW_1Yy0VUxORl<2RB-bH=5#0%T$cGe#mAxqF-;U(`Yzz<*`WxTASU@1? zIoh<~&0XyUVFZR>hk4aPJ&QWL1(BU-d(eN)iG=~(aSI}O_({M4e1)$Vq9)QQx{00$ zP#}RgCrr>g(iPTM`hquuHhrtX5b^|M*a8}6g}l%mXB=XtRM*m^Y<3fWUwsB4E-&vW z*oY0ZEI6W~Kq(PJSoBP4qnLtrGB<_{WFyfX>4JiiQZq2D7+HQHxc1W4mHV|3@EO~* z4nQhK0fYfUCW8_wO>5^Cy60qK!^7za>Iz*KK?1%5x&_Qdo$lJ2duv+PE&LNy=OLtT zS)+@1c^^u0W7W|)Z&0Rw;c8pQtts(KxMDB_#SPhmJWWe1!tYRd7 zwX;+Ou;bHmGJ{;2;NZ}=Y^9Kkz`KHXQbAwLF)R4vm)0c-z znCkE~gUKcEkx&ZsC3-OeAwnJC=}4uy$waadfi0@ac6 zSq5-`u8fubZ8+uI6bnFyOD)C zha3D;+v=;#W@NT|I0`rBV+9Tj;HI_C%mG=%o6|xtM>ZiM#Bl(zlu^F9^LK9(%?|_) zBWS)n_2qr!u6{KTwI5k5;l(lH;2BR4SFFSwX_fU zxC3O->BR|?ujc{|J$G;EtzFB=M<=HoeiDbUc{Ykm2SzHCw^3O3ar2e5m&1I4R@Vk`v$&6ow18@$mpV?qqXsJI7naXl}_FQ?K=|kRT^fq0m#!c=cT2k zRW-j}BG4icD!@+5$EPfQ&o2lg{X@(8h&~j72^bX(l${q~oq_|223VN!0~BYc^e z??a6Sj36Mlk<0vG_^Xx!z!#?+A6i6!mA%ZrhEQgq9eK_6~dFq2Kv5&`xcsxpCI z0-W*~a2ZWnb7A^QWay^t(D5vVG|P62{GfU z%I;tJB;g<_6+$^_X;meTQ3W<7TCdfQL_i8pL?(m*()t;4DK~noC($s6Bx0ofnq&>Q zz)HWFv|Y?1a&mH?`|oq0LPjo_>9dw_p*W7=)=e$A)~xq%PCYI5-jKoNv_%nu8+CH%*T2ngx{uIY~u>|#qb97xv@uP3Bgx{N|M@(ZFs z#9|Rp4^$?e3)uL8N5oOIL!?p%s5N}^ieuGZuW&jpW9|bqn8Q$`f{=qDtS;jNwh+vfVXjPlV^aDp2P!jACSPU{2BB}d4P{l)x z#6ZYk9VlWqegFB>`Ek4$<|;^mph7cP3^0G@PfbWf!%J||!p&hdR4DYOWi)7-<;20k z6}v||vHIjg-N^ADik(XLE~e^!s$X!;8?lK@eXtO2v1+4b$cUbfg*4hCb56pSC2*lj zp9E`}*p{cxu)-y{2j#NOqdon^0T<;3<>!e->@Y4e*%Z5d4zxD#ULr?@1P43trQ0&r z%LMH+C2$nfAm46m^J7Qwn_XDYfjdoD36L4;;33Or;OEGfr8^{c`t`4T5ABMl|3sBa>(#JINbrl}&rl29gd! zGJQ~E!ssRfs!l^e{iJ?mb>#IgYcm~ ztkLy;250Nni)Q=K3QtUc2=NSXk%T?I(eCx%(Y!kYoSnF#2WMValFGrH#lqF3%MZ#l zkfOs-T$7-HJn}ru^{5dHc}}i$o7pV;3@UCiHmLd|`WeUl3<3imah5Sqz$u_KO+E8- zD4K^$tx%Tf=j74IWZCE%!{cvWd3C+H;~o&|Y5dC2pj&U3G-pB=fMdgBNPzHYHcx2( zj6US#lu=4uvKiWGdOr@pB~U57&7EA?HnR`0f>_R}wn}kF%5a?73G5z=LqfJ}33kXD zIp$7~ND?^#-0vaEHXT*Ma|CJNFu61R(FXdUTqamL!GQE)6Ejhm)h6yr3jkO^mZqv(C+K&wX9?SPIlw+Z>wENu znqag95+w%8#4Z;QGF))c=viz2XY8s2a}ZXEP7o@5!asIR3+7qKK7zrdRl^+W>30ON z^_?Udk??ou<0D-WVGq{nECd2^&^E|Y!kk&|{%b&vFp`Z3%25ZxAU76?1r_DiuGA>t zrY@L|LbA?|^}A5tkhBpzDWg*kOk;qu@>bw*&{z-ZJ`k=$x zLA02zW@<1gWG$l-lw42WpPWC>8h0V0%{X&?+Q)OU;mC-X_8Em_TDl-Z=2OnRw+Z$c zKw+!)&p=@ztE6GPp$G8<1wLVu>yY>y>*#7*FD9nBrkm6920)^W_!D@bf9Wk?* z6sfB%UH3*ZMfinwF4ZR?tqtb1T$-Q!sp#Y*yfxQTTWgwKx6m{lj#?0pe;zO+C;E0ky#wPc0+s{W zjk)zwwp0BlS~MiKY~g2Z6vdnb^CMi&=ioW9etdo6lbDXnSP0>Idz58gfuV9P5x_;; zr4OQT94^l^&wKykb%c(1_1gesaYQ8o_E#HC`kkG-4|gq%0%_t}vEl;W3@-u&d)fa? z+mk1X-X6Cb=VZluym34>jLn zETLr{fbBe)x+lwme_k^)ZoFXU+k2|Hh9kJ6E9a=XWMOpCjn%7gYm&7P`P%k9li!G!-^+@032ig9<3S3J3#<{b}^fw=~zT+F5r_8(v{bbAN z)!cE)-Sn7dM3<^~Avd>Y$ecQtR$C19Vw1bl(IcnYtWN9d>RK8;{A&*4UwN9>U(qYV}4!DUJFz`@YrGjIli@%yU-G;7#nvn_Pj{ zCqgvCm4kA>I=j2OU(~XboAB4Y#hp;$kFE>IyJdNFC4=%)qrn2lFy$jN$I7m0Xv$^z zhCQzf(Hr0~cf%X~^$UOf5y8j&=xS7p{>>Dty}5J`^i~ykzv|$46Z6_p$l8j2t7d#x zBXBe^%0VU3?0creY5(~!^1E{Hgpxv@o5a;8uUb9BMO8Vry5P&zvRhq;&RuJv2xNV= zvsf#AGKSM!n78up$pfgImzW4WqFQ^P zWhvKqqm!|^Shl#%m1)X9_lHr8b~fUv=Kb?1BIPCew94N<7EDPh3<%>9!i>l?l~PH3i$LNBh~bvZkog zskCByxbC@E$|jmj2#aMq|DWGgSjGR0y>&Qt&m6@=o+e1K=1tw~WN@8VdTlV*=(fEl zvY!1=EFbCkE>QUKR^ZO8DW*Je-pV3rWC-D)=e09TDU?f>E}iNJ&Cbcm=@@x;FI|#h z^X~#v887H$D8UAjS}?scg`1_3Z|pzMw@B=MlU>=65L=NzA|aAyBe$_`Qv|$+hB)@@F-oU7*ZWVgHP2)}+BBUsC@rnOa!^NCihD;O zm7dx8<~W0@Vrq@%% zzHRg~s{(7Syb8;yH0DMJ zyKfVtXvkY1|n_ov`I2h8ty+>#;n@usSx zH*wnk-GT8FJKtpldwt$px9+X$eks~hZ>!~mBiT4QI2+lIu}C)vU!8y*dw}<3x(`dVJa4#99aqiopYztY^VkRyn)%;@r|5oitZZ#k0nZTB8 z5NN-K2VS`ng~Fx`z0hwImSfE)OrNL4-vP+J+7}uzi252|4CbChRaOFf3M0SJe^vu6 zC7u28h4FWZ!KDM)KlMNVD$!nbq%4i~D5Fy!S$BpZ)zZD$E<9T87rY1hbHRV@eZbPq zuXg{x(TTBy{?5;9oN<*D1LJ*(@>Vj9Ti36P>2aw`7nkE`B|+L29^AfI1Ofz z5E|Ra?Q<8irBx%U#c0PS0#ozSn^n4v!sMKf?@l~_pipqFt;!7uyl5{n^0&=ik>va> zrRjC}v;5$GXQ$mtZy2pxMq?)EM$4)UdfGCmSVZ)g&t^zy=?znxx7gh`4^kGmms~n2anIs}@{;U-Ss?;V_?T63nK-OKJu z*gbccRn&+!litVzVZu$3isXh?g~;fvS&7&Vl`3WSIS@GQ?GaXE+b!nwbo2Txk^Dy z>-T~AQyEI0bJe4t1;lEuY-tv}V6}PQJEiy*e#avnDuSlhgEyi;`2A{ zY7#xJCiN2Sj~|8{vD*6~X#YwkewB*GQ%m$o&o^oPso$t^)JWw(btl!XTVtgR6eWo! z=Zf_6tFN}pMM{+ilJ}N3tk=B zD}NI@l7-1$4tN4>H~}@a@wyVrIa<$6jct72#hY$0+pwv(tAt)Vy|s-GifZ0M!A9?0 zPI^PWiFz-&`+W^oUbwrL;c3vcGu5xW2rXAD!L|6MiLadL~&lh;pevFukcyS=Z<-;Fu zhAFDyJF0ZJ5-;1Y4KcWldTi^YKkjciTy^!YYcaNpWU5-BptwkFarxV23+h;d-~wrR zi^L+0E#F;bl)`X9Ub9374+F5M-z3nDqEGJ8r*wOAVuu?N6I?ksa@K9i) zG5hU=xA*9olgE#Dxs?{&NKHMxW76Z;>~OtJv7=_5XGF6z#C!sG?>^X5-Q;{ml^uQ@ zLyCeza$7HWqX&tgt`KuE-~Vcn82kK@!VQsEye4Wgi=}Hf+w$8=@SGQ*H!YEE^sTEK zx-435Yoq+Do-8-ZtbEwfz2S)Q5u-g zFx30&?Szky*;Hfs{gnFF`tOHVC~nZpqAs&7ej=<9JZGVQFe$?{>)lX5gn81Ru~Oie zkd0q}T?~OBcAP2LI(Fk+x1-&(ip)M~=Z4klhi2qT9;s{{o&8<-BD5I%7cmDTM$*u@ zl6nb4B#sRtN-uCtH(&F+UT1IMlH}u7pKGacY13=UySxZ_&Bl8&Q|4=B_gw54IV+)^ zwY+KSn8$|Po*wwl)l zj&Iu)8@GHlXRGU5aL({Cq#?ovV8+Mx;eHaCH9#8-6id3lPTe|0Y{jv6?G`IuM;`gT z@}3Fn0>chDtt>jdq7FTaE7Rk8fEwWy&qnNHpI!gO?c-|3P)$W35W^?Bcp3 z!ul#RY$ZLVN8Nh8R{oHu-|$%HyjE5zuy#f=LXrS?z*~kYP#?nqijjDQPrt40?7#Km z-l-Wa$-B?IbO%@EI5^o(p3pVix~QRkaz{6tdX$bhxnbx>AyS0XpQLQAG=q&HBie{Y zbQRljdBr+azSz}c?^4dZxb&>=3j1y`N{*8Z+n&+09@&SQl0Ux?Uh~;_-`3sK0X_%m zwO!xuyO;7s%FZH>ev(t`&UvNQvIx2$v=pdnuAo4U-vU8pqg;wwK*cUjdI~VPuN8$| zu9X}1lkPlhVt_hddxVs|(uaP_d%_C`BEHLS`eRLAI=8pj3H~|v<;bNwrORpD9vz?P zr}lw~to`$o1*CxgA`c_&IE?g3OaWc{4pg^39%50)d!f_gZ!}_5?R(~ir1-KdXl9nL zga%6OI07;$4!Sf)JolXG$(flrGR}z@cVoC$#j&>?{b$CmtvbQ}-sR83&6BwgYy#~r zN^tmueuGA+2{gD->KnB8UBKSY0OtG}lPK_)7X}8-9-_(JT$jtH67jR1ZP&@3U%uCq zCv_Af0NjMEf^?=Kf77<@9M!9$x}=k}WSchf#;B?L zPDQYA?>V+>lWXh31qoJ;7@t=dJzExL!}asBn7=2K+s96)Z1IG;4GQl%aLp!1w@FFS z$v*{F!@=6q(#5j|`Z9RiQv1YJiCmvv+EbM+fm0x$|M*O>nRJT&IB79R$D2SY9KJ$u*^+_gnH z9f7=(Mh$G!29_a*)3;jEwlP2Iy>xWJg5l-j`^f>$BN*y~5rS@C3Z`KyIE?ED zq3Wke9(#u;)lMsK>-O@O(vsCaU&kg=RbC&I@Tpfb_L?c}#`C=bmt9$g<>D$P_R@zv zIy#=BnCA_s9?GY8!nNr8^`8Xizz$(9g;~Gf;ek({;m^bE@Cxz0<($$VQ~e;sLQA%> zXOell{}Ya;9?$}iF>OJMXA{0PXie2gqt6d=>Z-%OtUGB`pdS*|9CyKY{_?Tc#r5yg zgSgH+5hu~1XKylHe))uXyIC=?#C?#ExGA!ZVB?sw=;@6Z4jpp|CQ#Y0qM>~MQ7L%s zN6$Sg#n0RtT|Lyr%zO}FeBZtM9J(Ak-?l>^M}m^(;r zMifZhCj=+$2CiA`u+#4f85*W}6#P z!*Sg1ePww=i!OW70b;pEz^LeO|B92=i!8Iy_{qMy1=^ZST(jS6D;yoY+jZgkx`$WO zTjn?adG-ylCqx!Zr%$Ouo2oLcSctj1$Ujt$QaHc^1=WbCsb?GDjx_!yDH(uYp z5THhZzRAu1-nkNW42Y-R@;z`jcWnFaPU(m)G+H)@Au&@rGI`EB8R}p$~zU(14Z(RdswU)GWPbZu`GH&N#?{H?6ABWSJQb%N3F=jd7J$K%b_Y_ID?MA z_rkZ|yJqxIi?51uPBgz){`~T(Dl+9p-t%Qu&d<|(M+d|cpU7@cWRNi~0*fwzmWXJ% zmwvH2M=sRV-c;#a2X)Cd@`=$uhkRm<+O?lVc$s{T+aXBp^`xWJSmJZEvckp%$Mc%Z zx6LON97p8NQtSKb={_)G%sYTRz+W1$c$5fbG)BY^5M~-kAl0n?Fh&_^W|dqtW8DDZ z`8^k@Lz@idx9m>OQf<4GpKx2@*8|Q-8_E1cM4fZ>t7UoCTiL5nF-zQTzon_MlKPq~ zoRm-K=B3d*9!dJ~^XK&(Pq^Bq-eWk;J{y18v%Y^qZ@u@qSN47;93Ix`uf!#mC5sB) zTg-id0uo2x<0n5pmJ1}##7HiFp#LWRAv0->W_p757$;*%-S(^Doy@}2-wz+xKkwB3 z&42Cbqg}2c4CnM_kKf;9w3O{W*!h^=E6MuM-A=Kf(*;?4_6FWXhp&9|6v|&qkvPj# zWk8=-eS1zwUeqWf{N8KH$Te@aQhp`=X|gNgOP?Ju-|lrYnJT+_;e$0dbGo}@jmxDr zo{ZB}!8eD>HWnQh$q#-0d{EV4wQ~vMV-woV%a8oZ3ixe{9S@eLo8=|k+`ZO3DnN=; zLeuqv{~e$29vjU>y+T%v?aR7ASEuFIQ^Ft2Z~K0e)&Zs_1AfLigClXt)N6OG>n9K3U4lfj@*?Pt!(RxKI@jky`2505fz?-fRi>-+FCTq_K6){xrX zxi(XI$mPnxXSm_EBDX8+FHsnqrGrE{<+6&6Uark=@6326ZY`L3!bnV!vh?%Hbhwk$ z-9+xDMYHV!`7?p0_EPBuAwwi2nMDYh3uXGQtMk6+^Zo_jAKv$z!{d4G=f1CNUwf~; z_FB!yIR40JsIoq6A2}u%s(Rcd?VwE^PeV(<#|WLK9N!J}oPm?Y&7mXNkHDgXWgaqQ75;>uNL(FwJ~VU3{&YV-iH}2K7EwN z79)ng+8lAQYUDX<)5^jp=V@-uNU8gm6x?NgwXggRdL|mGlO=_Ie)N#7^9LW!+5po9 z!lE|OJZdIAk^Gdidzxn1#oU$(G~15DVz<~mrsY)%@9)`s>waI&5A~vHER>y!PAOk9 zYeaL?`TWqHpQyP#ww|Ig(~(v#N_*)?srPTk7~WAE+Mh@DM`V{43E>BM3SDkEbk4zw zXBTJ9*uRsZv*cLB#WQw$?r^jTE`IdbOret1HI;m}UqWf=KdHmJ}U^B1lT+)mGt&BRW10=+cu%)_4S-U~mDKfhAJ*>7z%_ru(Z> zQ$s#vc$+^w@-=Y`T5xZX(DHPQ5noT0fsaobZ?_7XZ0rp0Kw6e+nGc4tB!+{0t~Quf zBph5D=RY^HohTV%*qY^9uz_ZT4Lxpt+k?~;vryG~qgzKm?8l>SJ{xp$khOj9j9tU# zm4vuf)jvg-9gdMFNVrYhS360Qk^53=lu22qNZ!0)&m67Y<}y>#{$mVWrZAaTbWz`a z@Zz+Gvz}Fj%@;)|F95}$&I=@KfyL_Yi3%J zH+nX^zx?&Hjnn*Z4wbFtm!hYnzF?jkJS|ZbcKs5%w9QBjGhX+`4nrfqbP@hKS0V~3 zgZDy>27)VUf2>aFD5R$;dhja$*1t4799Rc90S4Yq*S6TBFF_pU3It`i+*JnK`mf#B zV3@zt#prl+vW9S+K;8{bJ_afXroV>nSqIuBsk~<7&oKG(VL$P~LOc9@a~GJ_q}Qbr z`muG}`u!_pTW@`#OI)8_a%Qgd3pnRJs0oqPVHSWC9d#ct;%%nW}z>!<$$tK|v^G7C~Pmd|YH zlcZAb35y=M-e*3rapl2vYd^ENd)b#Ba$pmurk;MeT8cKwX=k4rZIU+fA7UGJ?en+$ zzFfzdip9b4Nw8n(e;nLusQzZ3wL^~PhwR+iP4a+OWtDnhR*34F${UBTbeC*dwV_&D z6HW$%{f0ymCOAJ|t-xSqCCoLVm6II$KU}{f@uSZy=lI6=mv66dxOdI}TfdQG|MKs8 zH%3TBp)(!U5sWDg=t2;$ADz6C^DA0P>uMX&u}G!f!Z}j4>v_{sb*vLgQNrjW!!5UN z4bd}hhmKQ}%S@<3-h6tnXzX>L(G73Teie=0AUM<2R|CHo!aPRF7>m4PZ!QcnJ%GA_ znG|_}e~qP=N{guB$f1m_vky}qI3J~XIUM!MmCQh)SDy~yLHsBzbh)o1d7A)H_@lu{zOV)n{@-uUjg;p#V^B?mlKD~Y>Q1epl2lluvO z!V=I!pu~SY-5;VQWG3b>!{*5B>_rK#fY_W`R=^Lqy)>1_~#L3kqmVv zu~C2o1SUmNvg&Ni#12S>8EbQR7aCX&wKImU-ZoK#aOpExAJqpS;@189irmg@ppBG* zKTbqLBFqC)s5#AFXuSNb@0T#FqAfC!@Jq_B~hLpN4BPmLW$HP)KyPo<_UJRa`o+hSV2PxWWXD9f)Z&8ATKR#eowj-nm zsp^tN6d9OAGcVn?c?QGDJzya@{QUkvJUKtOid)IDVxR^R!)7RVk5pE`H*@b9<7M{e3vm;10Zxn1H zLeCzO2bAB|~{vd#F%+ z{)m^L=(^B-+oo%-cfRpLbwVs*h?Rt>{n*-=iKtm=0CA89B>n}3k{TYW_oA==d8?o| zw|7GZr{J0uMl&aW{IJwm?=wH9YaO^pk>ZW$PcqQ_p8qL%Qj&}LeA0u{d#7sNf=t)5rqtJW)>1{yx+|&F3<^<8=(k6GP1|xdUHImS@jGn1 z3ezkiM zc7RVKT55zv?KB_dvwV`lCd$l9+MYehS9Tcw*x|mC=^fR~OX|3L8}%pLdHdD~e{x^h zsNBxy|3IxYw}*RcbEx5v7-zXC$U|X-?KW;zEp7AD$KStybQavG*m(?~4sDf-QQFiw zj+IsLNpMe7Eg@xMh{8*LFEynwwzaRX&#{t!^B1>2Ka&)?C_8Yi%>LabZjOK>ceIWju>kZh_q`s^Q#uC>)XDTF~y{ zJOh0dY7mkzig4tK;EUNW*FP4Go(}qArMKa*`(V@jmG+JdCEnkI%McPGhLLk%`9fuR z4W#`rafo3e3I33f#vMJEk~!Zgbg%I#$;fn8lokA?t)(#R^Emyet5EMQi|O~x*N6ly zrmyY-+6Na99CL4w1q-RNcdm$GJeim(vlw=aH?65$u!}Nwvyo=Cdc9P&@hF;k2a)Nb ze}PbhizSoAAgR%$ojlq0>+MH|&+bW|xA*p|R*$=6ai!d!kr=DB`ZDp0Q9pk7)RF#y z0m2Q{cxAi+Y+Yy&(#9xx1F_UM4Bl3oY4hO94>$W~ckX@-l_;nAwKAY`>2~s!Ew)D@ zM66aoy%dcYPt1Lj#ttNApjtojvQ$O8l5=Cjblp%;>qw2-RH4D>pyzO^XZ;E463w6$ ziqcz8y`t>rY+hg1II0#72|OX-hUH)|1OqX=g)hG)jdll^(*T_@p`q^;!2M9Px6@5P z`b@qK%eA`?=&oo!ZO>pDys_|XqYyWJjE3h@lhAijuTtdV{XI=URWDi#FQOwC!|vEeb~u%i1zIT z`MWQ66ibc1`f+IMbr(Ul6`cMmFH)zn4y8LU8F{-Hx7j(HblmhjaC2sSg6@S;LgWTh z+tCu4t=$tFHB#O=^eZ1&!Rd7K01L-md7-QIwA?4e&TT88*W1xNz@8@mq7W>QCoVMm zGsM4Qa(F=F&BnMNM3NfdiN>2P%|-Uq*Z<1}cm#0h-Tm#?l`lc@h{(=hcuPuERW&bQ zP-TAIy{FTwJ-ec}`jo%jL{oaMt?W?rdZwKgC%FaY^<)lTyL0*bJ>B!g`~B~vj6FT( z((rtm61V3#n6rZhUAkuD?))cDRJzx@x_?Ri(d6MX%1A41{G~{ExAN-UGM!#B@!>qx zPqfa7U7mAmDNVC@Ec=}^W3P_nFQqg!;ewk}l%qoi#RtEC@AYuqI2iqYLZBq@N{q6e zbNLNrp&?Pm8qb@%kGar(F5#0X+(hG_zrH*@)U-#rtk_!g>`NJmGd6QAroOkU+PSLs zJIkuucZY2fH{TrgYm@ex!d-D@D_^qf_=?PN>FqFl?|Mo4MIvxvL<9C`8)lFA%5+?a z%)IwnUKaVH1bTj%Ifff+iNRhzq7ku9HSnN z?t9>4+}3x==~(fd$nIian|AdbV-4rhWj+TzIK$BpHzHxXd1;mYSeM$TlY0B7vKp;i zTX+^+oVL?V-CL=!iDv0nSj>ob_4D=@rp>kwG#G*_%KYwHUTH}?<8%0URzqn8N6Mc7 ziOSNAoDY@TQd-W*C~y5>cIl2cZ)J=+>!z2yjCAMo9rxL8|8;%tv$?i3VOqqhe;s(3 z@|u0=M1-o`pVyyhCGOgvkV-DvWkSP{A;Ot_Cs}Zf#f#mv-22yagZ+2mUphnox(+so zXi5M&B7)R}RkM5dj(z*?=6+Yi&AoT&Rrrdh<--{-S$)pWGP+E!6@1kDaGGb$D#un! zORKxJWm|MSela%Y>=UOR(R!0yPWR0)Zs+hHZan#u7BW1UO^el$e^PC2udhi{-|8g$IsvC3Rwqb{FkWUcSY8dF3n1?;{Fo5AN@?=if22 zq^2KVBw_K6*Z43`RYxJ`^n}diTk6kS62!1eL zlqWIpm7ZZ)>v?y=>YLY!uMAl*t=N$42{xa$8aHElzvAqv7s7P^bMsi%b&T}=m(w+p z^TYF@&C-F9ga74pF)APXV$yGUes8H-1l_x;m+De~2^87_TcCTSKg6$k@xzB#5#Q?dBKL zsmp2A9^Pu2Z%o1CB>XQ}PmtyohN&sn4yWw3;75%kgMMsn7jaL55z0gE3nyb5OX|ut z`iD1qIXFKa@)tWctPm8_3JlY@zjYOT{2j04LW-1=3DZ=YlBuRXOZo%vO;x); zAI+K8dPaBl=$$mhAMu(Zfo>l!N61KV7CG8|n4_|PMP)q-eyd&Jj_Hu|@7g)beW8Ih z^bLk-xX8~Xa(gB9{@P6K|0FgNcjc7Q!5fSjvb5POe%S{;dU~*~P^YF!zT+MLWgTan z8SY=%pPxgwFfm134q?KVWovJS{A44tOk(|!soXY>vGDj;^PHB5&73N0TMT1+kLS4-OZX6<>VF@hv$)3%=3WnN!hz^2Ns23^Q|sM$NpeYleUD zj1l*C6;R^d{Tl1s0^w3(K8R;R*xZy73@#F}$J8z~O`x8jpJbt>4Ns=?N=lUI180_@ zBS=lbU?!O;DfspIBIXfu_1XTVA7f#yq=1sW3UUhM(Noi`?Wut>h@;0mMzCOV)xgx5 zMTf~b?H=L`0Vp8d^8UZe9DjZ4M2(^B|Na1d&VSk7|M|H(0G@wofMn5ovj7eFclDE3 z>0uTB4=EWx`v3Vh8#Lcglgrxg6AR9F_2#lcwsswk52-611 z65$Mp*2IF)i9wQAwz!)W+7P!#Qy11hke)|P(Ub%OH$O;+Z=m3z+(uP;!DRay$4hY5 zvmDQbvO*739kMO&dmmjyuN_iSt0=a^p9n0(I<^7q^cNBy&bYgAYeB)gLlkq23o(0i z!KB9(k}DWgT|*%zT7UxplZRA7iiJouL(OBTlb@Lm`fS_HzNE+aI;$T?Tb4MnQg(=l zK;r8Md3pznAu9ltVhRO@NQt=$u#32mh(5X+*w#Asm@4RSR!mX9c&SGxUimAsV+tin z)fb~Hny*ji7$7E*CNYIfOd4Z!#mo5=E|cdUj&>4_PSMS3|MEs-A=WYfE2Pc)k3eT$ zW=V+z+&ehY=*DQ&M`NMAb!O?TaMyNTlA||f!dFd8M%Fh*V-IkdjM381R^2$b_UaHn zA{e1F69RdS33}t;MtO9ZD<`R5&x1&gOsq#?VPSP81{XoN?H`WKgTs#Zsd(MvP(MW$ zo1yX2J|E&JkX@-*H43RMpFMKHDAQ=PBMJ({q4Tp6KRfs(1hR0@QV8kG-Emt3rlD`q zlz>JyJt$a^_a%0zjI?V7ii0r5j(Z2tfk-K0tkNC$s{7k%NzC$-*^%$xtJ)J7-e)>2 z%pJrg;$)^Hnu@Wz+#wY|vGCgl;hD_(qjL$Xsgtcy6nr-d*)3HgxBhOCGe^(vX1e7O zvlD9$Y=biNMe=NqU>=vK7Xh4j_W1Jv*3y?e8zjsk9v~cJ6iE_;rkH0Z^)<{zYMVP@ zQ4g_*a{n0`cVMCLoQQ_c;uDO4Q!Ycn4q~SGm)}$Um^JGkJ^@L7bTU^_U;)4ib-Ml> z437Vmd&iVk0Tm@R1s;}vmBE0%o{^VdS#|)bkbgY^O&WK1ox6t$r@-kK z9YqPVQ)b;om-fw#q39q@*jeWlULF8Ka;|_U<1o=fg`pzg=Gb8OG4FE)lSc*NbYKXS zBiOE>K;B>_W?{=s$1xBuqoA-JS}yAd?^4?l9WmnEfyOe?nZiZfhW0I<0i+rOuu@}D zzG*MQGs4F00tIw5BIrz^K$ne^cqdRkUdtvk?6|2IAEKfV=Ll#t_%a-yqdi#XPJale3ofuR4)4ioo=3kk|ejHm+%GA5 z%DTF?VUk)J=dOI4Fe(>J*x!=aA%S;B7*V~}iIY^^VS)mwdteBNR5FM)>$;Rwl2kG0 z^bSK{J3`(Q^;R4P!#7hgV!A_2EZq5}dNS01Rz+JzpR6ujgE2!=6JsQZlgWp`e+WmL zwu&eTP4CC(5q@iFZ7qc>AkUHF6*Wq1S``%T;5=j(wpc45kfz+ui?Lb^0{a78#yC|O zhP{X&mD9-yjQ63vcw0SL8jF10Ot^t2v_ku^WXW_jD1K-VteZ*RouclC!)q)9yCCV- zK1BO3+x|H;g3hF<_hC-71R>3#AF>rNWu_*|V-VVgw77M+|||OeIU>46Vgb-wbf3G z`8f*ucTmeNTlLK2t-v$HCIX|8t}9lnmF`Y7BCDF6L33Fb@I+u6A8z{Nz31Ly1j*43 zL$cf8kpejsR&2%+EbrF>RhSy?7;grhCSr!@$%5yqb1eorALeN9us!8n5(iYjo}4Ct zcgYYeg<{cNdACKSPggBZzRb}01rQP9C!^0EE2`-5Rj!5R>~gxN1x zC4BE;VAq4i2hqX`gSiVC5d}Jq;DhQ}*)}FHt1F>&G zFnm3$yy4-Q+n59 zznH3-9c{mhU_M^BLxTWY6y#Yk;tv=uhg@2maD zxZEQFy^9l)QUbo?8cO?e`GeH+`W?T`=N ztMJqt}_V!v)d+UzDqMZT)41`AqXTH~?5Tqb0@*!05fWF#f znd1hR(RW}EY(XDODuxkf>PbjuQJA|_2}-3?;NSs(zX$r-E0i3X(yI_nCh#4~a7ZH$ z>UV6TJy;D0bP|su_)jZQ6h|t+3DXPoj6St4;Ycr>=RgtxHr1fT615jK1rsXqxvqe0 zpEm-Id1il$X-USVZw~&gd3c?q=X!Jm019DR6Hts_E3QFYP zls}8REp5g2A1Jc<^ZU0XIQvlTM>mb^DuNQ>wpp8_H>k1Cm|@|Nm;meYQRqTn?*Ez5jq+#rJ9Bh)QrlBQo_Wq@=_yE@FzfBBC2cq44{AW@R1v zoTgjv->d!Fk`s6eaoEMVPK~|STSNiEz=1wR!I8UAJR;{UG8b}4V5A*<)bu=OVhzaC%(Fgk9Lp?U{{1oI9B(cPZpdG@gwQic-w~@`^ig}n{3#4KfYQNy55Ro|2700ax*l zM{mCuf~iD75{zJC2f2Wv4+#m;*oT!=T9zBaHt}tKb*-5Wi6wT)J1``vDCmg41CcS$ zG~n68K{T>YK}Qi%K<>yz2%Q_{&s~|=QgEyDN?fe=YrP`kw2ZI-#i>TTmOHG7Y%0HH zF~~f~Y%PTguqnMyEX`4uoM>5rJw4aGytJBP2@xY4)D1;0&J-`4 zFbqWtF9b@WhlL`Cc;Y~_cEiSvvG$BKWe3PCALQ$3Ddd7yjjrL03ll6@!JMHft!w6; z`lyK+Kgon}pS4OE?2W)|4Zy__ITunbh3q@Lf4{%5mpBygQNNS1dJ@i2WbESRUW2F8 zJIuVQgl`DhQ-_c>BwYEI7jPfaVN~ki}{(SZW% zxpBAU_jOgylfA2EL&paPE78~3%|zS|Ks5hG zBLoxa$oU2E9mLsQt)^?5TL+yfi7RbyptL{oQyRMr+Z)sLchN+EP(jUpk(B0Z4XKyJ zhyo+zn-IqbBg>FL7e)=jh7UbTa*Uu1!6tX)9`$Xsg-`-9P?7k$&gU5!5^9P!9_U2n zrUp6&@+B_401gJQV*&<}bJw@M-Qb)*CBuP^ZSz*=aW z)P1s<=31JEm0HBbg`C|8^VoWGb8`@M@tWTm78z+VmEkKB=j`Y>bcrj?IO9^V0Wn}+ zwZ69Q<6DP2q!o<-`3`d!uZ31fC#`%Jzya-uIZx|Grf@;a9tp?@pGjOmY9vZuyP_vP zn49hs%Y}sjHF(jSbva-=t=OH@OD}TVaq4#Nb6YEReatLVEHW-wB{Ak6;KrRA~O-0PI2Q*8z_ddR0oGit8-hRB6gvvvLJ#E@AOw zPzAnZQZXOnT>QE_nnGmLkjxNyKlit)k{}HnZcBj0op4{uw>lA!&BmS(uec4SE~xlE zEJALEI{Lslg@zq>5csY9n%KByF9t?L_#?xP#Ys$|tG8LkdL+gRDAd4GT@8)Af}c6@ z$Hq}B(cqE6ku%4llUN(rcF2z?6yzg4o-@F5h;%TVR3^ad!m(H?e@ys(Z?P^) zE3zG8?M9lDEBo_`QHxzasD0Acvn{?qi2rz7PC@Cfn%&HF8EDxO7adaVGchqym|d%N zk^Yl$BO1vy8R|?vx9JyHF0_ToR-C>yoNp2m6jZUOttt7u*Y65aWHvBC_Gk02dh30d z92%|)a&k?rspId|OrreBsoeOP`6y@;AyWx2YXrknU-$Yo3_CBgxGjf;>7>3Cp1sGt zRKONd>D$dHf9{+#gNi(a~Y(6qdxfGS}%76%^nfNMnuL1SDuV%Lg>N zg)izINli^9#T%IsXmPbtU%h&DM8Pt$;#MqdlBudE6GaC&tW0}${`tGN9dYz`Fq=}y z_zq?}bW@9%b-QD~v32#{e{Y@2$KJo50%AU{UGR;fu`$UZUry?#E_g-D4Q8$Va;`o63D38a!`nFj(S^z9O2$dNiXg(w#v_JkS5qpeStP(|!G`B^1l!*h48v&Lj z>2Ospnj&j?TUR%ly>wdAS;~9Qm)2G*mAc1|9;Mq3DeDB-M;};iHaYaQ;&edBf}oCd zcdzg2sGsqn7YcKbP(@#oki?ZtET0XNR~`~R~Ts^>$)c#HjYeH zoBxtcZ8^`jh5FjsPoZ7gI5_I&#R!cCy0krwTbMgLIOE<7H^$T3A2LVwM{Zm0D5RCh zq3Qnie75wsy-hL{fr!Ru^nuDnkkB2ti=nhfaH#K3AJb;+<$FK1B44_+r&qpk&DPDE zt6g;bq5p=X>okJ$2KbYrWDH9zbNZeinFPRRb{hKjwmEF|rrVjAl#g;8dgf5<%j*9N zJEZXk3X&3xryv_?o=^LJ=VU|eNz7XeMv(+n$n^7Cgr??vnlonseH;@`Cn_?_m0d1( zPpg?TY+wE$zxVOB6>%GO$gVra_~vK8jz)nMI?RFFzq3%W^uM50R$W={%f_NA@$i`{ zRg!0*(#eppl~U|OkLCBObf1{|khfWx_6dcpWzf-~w)QB5Ney>C&6?>l_1}CbK`DX( z7&*i0P`#Z9J%O=6^)itgyj15Uiv~G=9DCA83soNoamGKtjODSXve4nV+H)ljHr<;K@g-whMjTP`u7Pu5Yy&Yh z_%Vz48)6z3h9>)8Oo5diEBA7RFAHGdhan+}Ysc(x`5hkw$|K$&;fEY25;i>{c1@tv zOmpTCRCq`|7LQizg4-z6qo2s{H88kb>X~AY!Tz#m_zgH7phTf3vv1cfA_)b~&pn02 zT>=94k$W~_mOEWUfyiCIu^8j~*w z^xKu5rKxZkL(m3=;x+&-o5eqN(95p{7Y`!JS6W>FR&#EnWqQqqf7YBwX8RkA)KF;B zNl9Ij7P{o&@wRZbH;&FAQg#=bP3sTJ!J>!?5IG&1W{8%lcU6BCPF>g0K<@QzmalOj91Qp zDi+`s8T>WS9jw=`p{-yjCZZa#x2>!AO?-6?>m%1K*sJTHr4v{rqRu2jW4IM-i_fd6 zqWdkLV}=Ib&B+S3Cv}F2%_1n~A$Q`1@ox&4B|`Bxs`&b>4Os*$6WsW+n5s(gv9NI5afrrR(pWTMVR(h42;}dprOlJU|NrM09ru1hM2KX`oL`@mR#U^ zI*Q?Jm%v^-JR`zWhy6cmWK04( zEJ%9{GBEL?14)UI&k$DuL;0ey{3tR~0a#CxRyGeZMjN`VNMSP^rwx&9y#qY&bN_y& zVHRC5YAc z5+j{t&$jn|1Z%Bd3xcT1KYkU?w3+@K>kLOZVTnThr_(X0^g_7aAE{ykU`we=Xqou| zK1jD2RKVJo$3VJaRwx|{5Ajk5rRXGZcsdRn$XXH@8c>P?J`ayZ=-MZ5w}rm#HJQIW zp_us|VDtyTbA(KYP=wWr;;911VZ@5X2ir9)wQY=zjbmnH0=6bGe=R(`t{qAF8319e zudQ}r>?i$*=q zOO-;31E9$c%8a_v;}r*!Jpw|iUO}K zg|J4yQ3*V`#U72g3q&Fim8s28;~qE{AYF(CfQyq+WN{Ina-rYJVo^-l+Zm$v)VE4Y zaE*bp*c!DkEqcCoefRzd1!6$@9!T_Sh)}{-#!Fc``+B#IrsnL0LNtTKVPp6G*B>eF zehMf#D@&m2=G$Ow`=V(86(7DJEYHq_{_MX2cpXm|3Z*->NPAN7#}pT8GCoQI1AGPf zj)ePTw~@{q{C$>MP7sAChLu5uakulNXeZtO{F3K+*busBOeM+FOR?!VpVfAOpst^45($4JSyT~jqtE);CHly2xi~NHd9$W0U+Rl)sTJ%9nyZ5-c zw)Wi8yRi1CiL%HCU(f$A3{MlQc9So35i=l?*W&X(vM3nn3j$bS1;ku_??zx`DB5y9 zUJhjdA6g6BK~r z#AXauSfqEgT*E|5M!#TkOI_PhAnM+(`?j(2hrbN zw+z`T+`0#G>piI@b3lKN;{5Vy*?oJid*YLdV$j)ZhbAvS+&ugDPUHW|si9*|uny9q z?{(Em$*GdaJ1HR{;ZrG$QFtZxqWq)vqv{E&soJ3sWet3-=tal!bgC$X7<5%w*nDcq zYceO0Lk&-U<27{3GX;lk+`M`7sq$E0oN~OZmpbcFX5mA+_@w3IzZS>b|E19&zR_|n z$*uVJQvUv+ocfewiNi! z3#G(&AWFOg1AE+Fcqw=rybb0%SCO~j^l;`Z?+!S;i%sqgmD~%eaIHEMzLoPYl78%I zE&K0ZjD%gb(C)Eg%BUk7~MZ}*AebH}{G|0(9t zdaNAtVq`el`*%tI8m1C**8k_@W`prp zb6aZQb!d?r+cX630hjgm{7$kE2)67m0~v5Ex6+oD7L#H?t7b>G05RCUJ&LK`G(+R# z$geMEM~I93%nW~)DNoJPI^Mjc2CX0J?Hn9NS!Kgl9nFrL>kV-U+&R(`q{4t(_1}-? zl4la7pA=?hVv@qpzd+$nV^A?bF@=c;_!1aXB~UKG+L5Fo%g}WgNy&Wn%JO&ivO&s8Zg_RWlrT{Pd-E3;XMdihr7C%}M~)bZCO2oo`CUqK-jkfg_>7ck@EDb2hNn#`+;lC9g;)EuXX5m&74tQ_CMRNyt@&&qKHq1R(QbL|SbI6^mmO zM3jPssrLqr-6^I;M(t_gfh{-k{dxB-aXrqFo6=I)eNn!}uVcnVM$~niV4uw21@4{6 zx@C(Tjsq%qn~|a<_b6HUbKQHfwO1NuZ4R%aiSAh2orEYNXi&q9ZH4Y|B4CM{8~}Td zf`Uk4hX=s>_;{tZXnn=5{F=BFu`B5pzv#bF|8^wyU|QAe|LmsM8z1qUrj>+%5L`7O z4vnoa{%RESPq^z}@$WxLZKW{34pS-a085E`QvV|QSI~C#Q%JlDf*gZ>K#kz^0p0Mw zThzh0qOx)$2gf-m%;rUu=?elfFGIF|RzZP3cUlBKnU+v+L1pT#lO~XR)%S65u#APp znC>+w;FWiWlTZZe-j%G@bgdLG3x0o@U0AgEE0IN2I53iJ@kI>R;~DB=BMGn-Ic?N`%9 z+e85*>cAE>u~a|Un{FWmI5s}X0&%HL=>FrKiKz;D9bB1<=rDf7V5n3jGQ?%j(O;;# z++HYIMy^A$60nG(k$|B(Ax+|kPo8KD-ymP(fhyJku^sTM@a(kMcjU-tlZ&8{fS{*D zcXG5fEAdPC2h`x{XucqEKsk05^7{aEy-`@B2vLArbIr^8$ZgwHpDRf^rnHP?Xr&l@ zc0G%*hyEeY&myh;S7ZLh*xph$JTlC;X@0Af246}$g zF5x7hO^XIfVdg08J_cYG%0Kl4jb3X^RFaH(oAZwhrg`Wv%aMSGLDZ>8e06^QfV84N zzNE;|EB9trxKg49N0AX zvq|wN@^Mt?5EU16ocbm>I*pF9qLb5`sX+z$;UyOIG;WCI_9k+>~3YvDnbiWEjy?_7S4_)C&e48os;fMnU*rc&$%P>w)Zy(*0 za}aea3d)p%RQP%Tb~XgTL3UjVj!1*;DeCXh(msuj7CI>XK^Jr+AuW9*JXFxY*SZMX z5BHhc9iDxtD2l9WQF;1_Cx`%qPG)*F4r2kJB)ddK!^jGQcUAi~652Xs|3)ohi$~@k zG2^9=HjqM=lB`_3G7<3}_z)onA{B;(h!8kX6JiLszHliG4+r3~a_XSv>yTS3|2cmH z!C2f)^uQ%>grf0UTDSkiI&;|i#2zxlX zWdtQQcaA?YOr|Ycl4}!YfwTGSi?nPr0(6V|mICXGxkfTpVmmw+6C(9#JJ@fpH`t*OUhtggN#7uyJQCNAD5 z2zlO(k4Vn=_aFv;1XM`4$ zS7SzjI;puHcUuytfZoP8`2>e0vuJ_{G6EIXrEiZF9hQC%!i4OW;M~{Vozr`9(H)zA zhn%FPk^oddTxGzxh4G;mluw}ZPtLr_U%&Q%5rlQrmGfK~Z$uC?LaQ;%0`sGcUZ6l} zY%vX(DVS`|c~PsQG0ryoP5eJkGaC)0{y}iVUuoB~0F6aa>UZ-F&RhehRL^8;UoFmy zNy>Zr2VcDsq9hjlmgeX?vrlW{NiWp;2qa|#BhDW;!~l!v;iN*`p2RnQ3{|SEj(vwf zDt35%rbmZ1hHwqx+(w*2xR0w@R_}Aq&lf|TyeFZNXo|qDx5VtoMrP(y_&)FRM=*tP z7aZ3&9re_K&TZTOlO6bJEp~g&swZd5xAF12&F7C7C9fRa?)>8*v0A{EKxs+j(!J#mS&Kcmv<{+ubfp>Ohgstm2(cT4sZltL^6`mp$T(<-T!rdzDoWLb1(|) zRTPi)3(bF12NV(uh+@;)JI;db+ekAMFXBDQ^Ii^kC(;Z47Ms6kJ?(iNx`Zd}#CJV2%Gn_8ToU90vMAT4&h-%vTH~h&Ud83>_(56>+7h1W{8ZiPk1YUTwIDZTy z=7)gdg{+j2R}5O4q5cernw)07swD{nv%qgL;0Z z%pV;K-_PpT^uw;w+5TCNyM&aKXQoz(vCxX&M~68Eq5i{-{(a37sU!jGt}H=V#nR=j zgxNxW7|4o2S5fiTfdN7V*N6m!pgl9!5ep#GBkRb)%v_EWCAENmq>ZY#>ma*7SQrlx z5*~$xITh#cx;?jrl#kwb-yuTRp;0p!n4HPCYW3T z!6r~60!W06IQ0AX?>q00prc3lq{vagZn*_EA-czyD^zQ&MOh(|GHl+Iu&#JviXJZj zQ~Q<&_3GZSF$G|aaPOc@saXB_^QSAP8&EoqWg=h*$u<+DC&Fu2}cP{;N+gEqSoqY_3 z=>Q-k)Rr~?81SSo^&Z4sB49L|jsuwp#HM~a^%iZ!EKpn$wI>jO`T#i)k_cJ4$c06- zLH>3`JeE7Wu9ad)*vGhO3YEmx z2fyH|6ro|>;TF7r$L|P`_j-FV5I~I4!=G&v4qThI&&cp}9Q%XXb0(u((VPXP1B5ua zH66HFZ$6&l2KkZ@)WZD%a1p=MS6ZWs->rStZxty)7z#*E9>I7I=dyishG?H#Cr({_ z(rUnYMgZkz^Tp!zvRV&>%HwX=8rtMNB{Dy7wj;Uhnhw9!cgUV*2tw)yqn`?NT;9Lx zgc)=M!5ZP}}6uCHq9aIng>N{ko z#0mzhAK-mszWw!%&d!J#20A)DY%qA=+(*X*JFsEMmb6dcyFjRqD64yIYqwl4h*?Y9 z!TxbOMwWk#v=A>>_-Sp}x>X*bBWM)hI1=_i0PI=lSP^0^xDfZnrwIRo&pJ4@?+H%g z4EzdECHUFmQ&qdLZ(=_l1nh?pO)ZkbOmJ?rc*t|p&a+l*?=oqmlk?Ni&3JT7pmtyJNG{JL2!%bzukOIZCDhP6_MtLTuB1> zY$SacM~2HU_l<5?_dJ59Pp3sCf;|Er+eLv7mk&G$3zLO04$699^C{&)B1qh7NZ*9H zEiybjd96HiN92R(AiBO1|{-J*l0nc~^_{>#}~K7M{6Hj{BUtkj>m+ZQ&> z2K?PL9H*^1V7IssAMb|Mg=%XO4D5x`r7KI|cfNL<-iroBKLT!kcPHnOBkG&I9g&@3 z(SvG+=x>Z>+Bq;T$88w=f*(GVw6Nd@4&aveJfqcY09X$YFl3E5n{Ko%VWx)!JX=u? zq4=Z6IY#QC9XrTa2M^Uv!0-56cxVf&CpQn})mr3E*B+|ps^`Urp;ZmD z-}MIlE59+Uzxih<5#~yd@%_H`_gA2~obbx#$Crb|+>Vcx9-P4Z&VV|@GSu3{MEPi9 zonaqP*nPOAdAYe-DL==%yG;%Zg7Ang$sO>mVw|vcdQpni@ps&RB>YP`-L{5bC!na5Z|rex;HC`hZ$`kDy@Y$3u4!svsN+ch(Rb zS<^TgxTE}Z(gss)*X>p+F}2)Ktm zFegLb=%|Y>Zr)&|^9PfjQLHLL@5bsyfO+Hb^G}E(}3)x(rfO}!M#X^{8Xhpbi~b`<2||%j z#VAP%{muKWmXEG@dn11_XEqKBPKR-`-df~dJrW*N(2s;4&YG7(&$*yA9}5?un>E>~bF&DW$;)E{HCqV%%T zj9qQ-jc=Ov-!2jO4n>sm%*CRcc}!;ZKU)m5P=}Kumq=HpsN)jQ^sO;l#v0SjQ$R-= z-D^DjIP2qCt@mW(dr`!YdS}h!z$v(?8&HJUI~}#Wa2L=L*C>3s0&#*T*4IpS0!aH} z((Q?qkJLcuPNKXJHGf}S{S|u+?~ImKK&zP{aD$rZyM6QN8hqIJDn~!)Wr!@giYIy0 z{g(@XVZq5(qbP`~_#;OD2@Vad2B5s$ILLjqOqhLCed(@pgM(FjK*i!j_X*xye)B6XZc4}-8gl`G$gRzZ5J*`BdJ*q?W7 z>Qcl8A$GX3>+7I34niWJgp1Fy0+ZT*gHs%O*p$_&a2qJF2EqR7$$Nx_Lr``Sxj?*~ zb)}1HlB$|aknqMS zfvp4M1=H)%ny5f}3w@<7=ka6rWOk7$A7rl=W}2^MLyN{64Q$@})fFin+L`)fN{awh zSKh8fg>gQ)8A`qpNW&6^L_ko-lxZaR(q9J$PlFl`4*m}CM-Ya*0De<*&8DG%;R0sH z13Cv%Bal~10ZigeV2v4uq6%p19A@h@if$fd_45J`h-kY29hHWOwN^?n=<1Cis3TW^ z7?TmEjtCtLR(X5&1fop{1_gF9QXT-dPerUe$rM0VYb_Q8p+*A-H9*YRD(=7tWU1@s z^f~wTgtng(6NDm<)ug7mE(5~@#JjBdT0e?dS>3H!OM`GkL#rR>7B=%F9M-T8DiN-T z({bi?ObMXzz7ynWglpvab13^!;z64^1l9QqB{!V2X!~8k2}x+1u?^3~%gEqL&G;3B z(LA)F_dZ?&e`C}i2JAw{5_s%b+6KTFD|Dv8IjXL!t3bkwogIa4D!huzkp>5Ptl_Nr z3r{l~%hswx#=9AaE}jawDk#X-5z@I6OrXDA1q4R|qzvMocF5=h zpPCpt83x$T=y51#=t-mSU;)&57d#IfQ3yhJKz;8pIclPbj$98I_qk2hEg<3F!g3>n zir8zKuZ++8m_y;z7iARc05V{ST=iXdH!)%$YTanUlavcH0J{YRmGi12fzklNLvr1i zV}234RE|u3Y4DLk3rRjw*)YLE9RzHKHTfK4mO*iK>xYXk94S}cj1dzYFh$*+j0~@l zcM_h(4z~(@YwJwGvO*bucIg2Qdv9OgxB7zEKWGOZWaHOX%E7hz<8HwvIcen>$JV?~ zH69j(oj9!3r^j91R0Tans#lYB$;yNs1V?}{;O&!%HymPt<~Z`6;e{004E=1abAGJ* zF_ua_Ws?XFYzX*q=c`$CALQrfH?F>L;Q~QzP?H1j1OJ$J9eNIxiTM|xdt+gcoC-VpQfneWBMeBR zd2$k9FqjYI3Q!vI)c?RxcfK&`qSFWwOYsuyaZsiJJ-#!MdIUBYP+>4U03@6Qc7@m4 z`?QRnNwR?{IM`$7fItC0<^IKE#JR*n`iV>G$kdkiSvP=P(1vsz8X0=4P#Nwzco3#?Y-9of75q~RRX;*k zA=cD5fN`LyPc5T^d=2>%gtXh?)*Jr5QO4bZzeA$*PE&?KN z8y-D1LJa~4>FWoX<2*th1a{G(NS7H+Oi*j&T5#YBF(wxP8Yu^ixDbgy0P*_q$pWNi zQs^Sz#rYpHEQ(@t;aFUXc)*aBs7IQuOg#6cBVWA4Y+9W@*S?wTdTp}D3B*HL1%(@L za@CSl0XpIl#mOgde;~A+SNu2;;+u|~7G*l^(fmkctZ)2AMar%(FO`!5cPvJrerLk@ zAlvrz(O%CXTTz2X|6SSlZuR9=9(>%sA^k|GJZYjU%!|%&Z=whU#Gc5F99O{9*b_v! zXUOMUf2b#`ZFbM=tTC3*EL2Jt01JQ=8a3m$V)s`b4i-9_glLMcBH0HxXVFF%&mbxsTZ6}zbI5<5^FZTfQy$W_E$xX3myBc_|aW2u3 zC0xEti+hYR5@S>9hCv_}fYA32lamKGtp(c(PaRZkLjavGFXobIw-pmW^#q}*3??-w z%ypUCd~WYXfPiF<3REE1#a|b|fFD;7n+>xbK7L%rn^qtN zs;3XaC!iWEnSxI(y&5@3G0Bk_y_iC`{s|nCqm^TJ79kUHhR$v2_dYDLUA(-0s0hiFN1_ex1W5{61$5SyV0BbOQsBCn zjWbYvuvq%Oew8F$XgodS+Bk@;A)jh+0;m>XM$lH{k&j@h6`|pS{!%#_1DL^&!bQ2IvBe4<>f+qu<0m=D}{rlHpb4A{qI*Y)L zDyiqh@^1#xMFe=2yRO68!C?YzasXszWF!%+S1b|n$?}bam>d5l0I{63m;uoP*o!Z6 zt#q$NSzEJFQCt!vEE2*ooI}p6A6VWYgYq~b0?cOx9>$}+2wo#jjnbt6LwWlx@ zu=TEgW!Cx#lJ6bO87#c&s)pa)&|oy^$ZDL1FLS&ymK@qV#iK4`h2Ne$XJTh}>K+MS zLK0VV4zKcO{glTfcrc^ z-ii*_SqOS{b#)=#c#6d!67k;b2=Lx+k^W#?GRlCw8A}DQ5fNFnXrD#a^#~NaI9W%8 z?uZ;C0|Rc4Wt`8GU>1qiMPu6a00I!v1w)z83C(^Hz=SZ6IPG{0IW1NQVPTVO8YlNw z91d9cWR~El&EDm?$`gT$huPO5i&gba3EqA1;6nhKG=3G&YCSg}xGWK~Cv{JCRh3dB zK{J1^PZjD$qzsJ0l#2qg5fc*=qG6-zF%RsR_x>1*U6=E~fpqP8Opd(h$Qp0YO;g(N2{T-Jer>_Ih-6ks ztAK-|w2UPlhi2cB_!M*`8J<-*NAQC_;qg{KrD_M(5Sf2 zB}PT*Cape?IX|2o1`xv_brQrdWMZvk#hk&oM@ocMPyrwgq|gTR84yMM{^GfLRV9m{ z)g*!8j$RJ*hj<^?5vOn2_?^d&U0N~wtm7eLO!lju~BbogYF6Z$YN{4JHKI36hCTgqw$`!s-{VZ4-I{ zIX>Ex$|@>Ur1&HsoR`PKb6c$~J`GhU)*Sb$@U3347{{w2#U!E~ppjC;EC^D*mO4zk zm9A@Hso4N)aS4Suk^+m1+AWh5rA9O7${Rtl@!H9K z#Ri478lW4MRaZ3o4-UGO&Zn*2HU7xveEE;X3#AtOCW1cHY`ktIIZwBZC#UF#T&LRc z%dgpvu}OVO(*;FC4lHl<;d?+_AY5n^V%As%IO!|Vsd#_PGOcNdv{vvR05aX7)^i-rB2WRqj}fZ( z0>(#W!xDZZ8>tj3p)g>`L~s^WZ1l?1=4&A5u|kkVZ0v4vaq*+sCEQna!*oDST#vnF zZCp?b5a1D{tSdt7VC32lgY~$T@StH#^9rsufSYmrgV+xOo?g=#`<3qSX)`I_G)Q4QwG+BFdhi5=c7doW4>jN&o4&flV1 zMt(soB;^xub0SXytOY3pACKB2u<$S78wc*T$JOPC z+kWPWs9cZ<{kV}Ym_Bg<+nlnzUtf*sbPV_EXki=0=TT7OB@SDDj~N z46jT0nF0ya!C*_@S)O_^Q>mt=$IOLfyEBfD;su2~$E8&TY0DTVM~>P6qK=E!LdzSG-% z!!IjuTO<>jXhIkQY{3wDCMpV4orYPOq4BP{1ZqZ!hBF4kf~@{BC(-Nm?JNeKLRxbK zXTpvFSQ6N##rprKdJnjs|9AgCd+)u8sF0Br5e<}8Nfa_FGoyhNWfz$#i8iSuSs}_S z5h)o(p{cB*kR*QhE1z@D|9@_`^ZlOl`B3lo>-8Mh^;nljJ??H$)&hrpp|Ou?W(yeWFfM1V)W&rNl*okancF@UB3$iyze+z_>NX>u}SvagS z1#a%4N!^WB+-bLz1BCff3(N+7diQQ3bZ5ygUnBQ1y*4OoyH}|V9qLIn!cr^UFuO#0 zKpf?3ubEXwg3&+b8+iZlI9ABY+e-37s4?kDHy6)L-r?qEd47)99WA&7;b8&2>^{F5 zE_pIktsZeN9c*oTQ7Unjp96LMI?bw_kVqzCsLC_V%K`aQKvYh{q8U z5;6zz*x3G;3)Wtbs}8lruffsY2pPqa&x7V(-iw8T?1)769VAALf_=h1#1T}xf-1d5 zDbju%okBiZfmy2;V(BeewtFpC5;C9yz?KB7q2eKuCI#vO4Tk3TXEQl^n1NXfB(tvq zJ$@00JwB|%hYs~pv8Rpm+VkqEw`%D(MVD961@qT+|MYlV%arKDu1hMt?@XvN2vA)= zwM;4Qm}cuHMt(dgo(O*M{bd$FUzA=VTX&84EDTD?_0kJ`X$q&Xw&Pf*jk}F@=&7h! z`+i`WF=GjztymXa^&Mkp)B4-(v?735kgKAhFR*M-qi&hCWR1?B>T_&4l)?6|W}kRsi141f1Vm@4p=UM?BcOJyhPdLsZo^*1&Gh~E!YW|CMR}sCL ztXMSR&#n8AQki6)!8g;Z)u~L4l|N1Xb+YkO4U2zT;`u$}i4kn9 zIv?oM(pta7ct^{MecdWs0wjXd&Ard&K>|SKgNned8t&ZnTYk$3z z#vJeoLi7vZyT!Yvr`bGqTl~XIK z%2*!fu;bCEnFWukF7@9zdy7VT{^T?ZchB$WztA_0im!m2^ERvEB;Y&^PS_0cy^&As zk^KTIWSHVf8W@87VlpptB+e?Z>c`cL5O>e!BaEwz!`!8}Iua%!_)oL$npf{{UN?IF z`RXp}OQs$w&4A%c@V<7ihuTe*uH8wEi~@C&dj0gic% z*yauu9p*QO64^p@1IrSW6u_tw?NTCa3Dt(&TPUm#!#y28e%!c$L~el)Ej~ZzCzqfj zq8qt@DDd$U2^=DdRnVN5=$$s-Fc8?eb4*zOUQeA*M9wd}b^T;gE2Ld_!Fq4g&=cO{ z>3Qd!#aR=s=7ZPU^-9>h=t`CuTHWfBiM|Yo37HW%j=K9?Lg+5*_qd#wQipTt4n?V> zG|8E*#s4JRrQ=xQOyVMGEKoc%vT?RZP9)7K2Wpz}bT^tfIi=EWy1D{ic0zE=@i%Zp zX*_K?LnG@`zUH#LG-2hF$8V)jr;8Hgr&gW%A}7RuNCB%C_LTB!n?*FlO78pj`h3ra zMcezo8=V!iGKq>vh%JsVFe?}%Dru7lXPm~``wlquH1yC4k6GHKG{KEUj!6QBm<1H z5hc>`6i#z?KxNs(L2wtQ`>T;szelWrJ|Fk2pkOMMKjzPymmD+ayr^R~D}|=i(m#My zrp0lpK)?~8T;SvW-!J0mxZlmAW!??!9MZOId`&*f4TdaMWu6#w1)@WHO6N7%S0_N; z(HFm+AKDpkfi}VWTG~GNA=n(LlKLWBKAtks!Xm&pJA$4&`G)8tkf1RQn0|!bY-a5T zSm{v1hZ|~j-Pnk~_mGSG5s(~f^-8lhTIiy9qSO;RF(khNP8UBl>;W9G*R4ySJ0#;# zhX12jsTZCAl!s0`@ub*f*mGpVXb-~X`2fc3WX{00#4D;Fegbk2fvf`v4sAOy{k=n` z&E>`R-`}pF&XmAGcK8WUuIEkB^AyorFCjn`uulZ?#yAm0`Mx;IiIp#kLm~7;@ZS!$ zIus=buh8h_+r-4s``&H#uN?T(d6r4_){w?s-|nL@fR`O1ZfHg?+o^w^^SxGO<@jzY zM?q^ aYkqyU$Yv7olo*0+ryWKiPoAmU=C{!-b|GB0=LyjNZSy(}Ld$0D3s?;WVg zI-J((nQ(W!^`KSnSAwy=0hq`oI<}H3>n0V&23gfe<%p}U3Z0!P0s>wh*8U!I*vj*McdNql|o~Zjs+=ce{ya)SEs$=p|Oe=rn$Hlj4T@N*|JaH zt6CX_D~kMzG>gXBzj?Re-2Z3+`dXC~X;jRNIsGgK(5b`Z9Pa^Vm5Romn^y0k?vaxN zRqX;t^q#B##wT3!@qy^^24B^O$BcNFP&#Pi*k!$v>r9%I)L{C!*tNMb#ldk;D|pjn zO6U1`50>P;?6upu*NzFArMsP#f4bST84~~Go0;TUbTp+CCH)};O%l9Ut$KA7p;{yc z0n|#RBN%sp{lp`u9Dbc`@FpXp)9AJ$O>v)eYJ>wJ2wydiYi_(?@!8Sn z#>>o1N%HC1wJStKUpiQXqG_?&t027^HEdkV?w7jzw9I?Ch!1FO7cg^Zoa&C2)&saYs7j7F8qJi? zBJk%**49vmhT87NJ+&UD4$>E1WadGP^^`;~tj3qQv+GRk^Y2ePTKFD4s_9Vw?9QF_ zh&-L4qS#B<3@~w+L&K20lk)(M0z4^NC6|s}tZ?q~}d8=Ch@7JV*5QRIY(GJl?y>prxvEYiVSB)X2?NW}9&IUUy0 zuKRATF$>l@I`M7Y63uh_^cyW{*d=10fl_xa2mA#Q-;{JWTCG^IhZY6Ubyss>oZYFrfV#)>uH>>Q}9WD$~?Y`bB@$p3y)eIGwZkK%A;9k<|v>)hpKf4%ge z+=X?@i0*soENnEt&ARQWS#CA|F?g`7GF=T@WMUSs)$1-?xX|?f_wReweDcEkD2WiU zHsnC1s_8VkYt4(=E_OFG3%i=@^a{26_xto^=_Mm&b(K5{KI5Wd!eNhTX{nU3e zdM0oEn>7z!JA2TOAx54*_)B|}Q&Yv3#*L!mrfA^X2T68bquUn#6TNg_CGpdffT}T;_Ct zP57&%Zj@zKiyoiG`yBWO3ZU-S1D&m{tmF(t{$+-RL%?S&meN$c-tg8tSpyhbk8XuW zeDvs1FM~iD!C@G;p;fY%ic=Qi4%CZghmwXZOH<&2A248m1Yp4h z6ka%64#|6U{pZg3G3fZ~Pnj~s`YmEBftwYmLY}r!Dgj2*pE9NYm6dH#%yYBX+Jc4* zLd)L1-1ws_+`I^u=*{qUrWk*m%?hd`EBe3Bk{9t19mw$EF`3oCl>pzh)*|%jJN2jx zNx_#Uqw1S>8oC20s_kgC;lsUIdQ`XQK%92x0c|7AMk^i)is95~o$}-zgvzx+iN>WT zsJ#M~5LDj>@xRj2PuaAO#(5LrXvs~>(cPSbO;F5wS5Sa{aT+qL_3PJT<7lt?!1vIh z+w?v182B%>3xSl>EV02gr{kr}Ou+F8q@nQVS$pxDX_`!Cxf6tKJZLjT^s ze}AR36f9h=y6mOPmoJN7VWVQ63zHpiN1aYv&&fLP%J%Jbgpt3&9}PKiLh3A%rm_7L zW>fwFd)HoD^*A9=PPv5?{L#@Q=uDNKiL$M)nT-b&i{A@`9 z&Ld3@H#!OFs%>YouBl-1=qi#gS4F?4=CQ^fBFq~rwRXLWStyVu0g6%40cY=%(UQq~ zofK#umXIMG7Pd6F{8VVD1fx>n3Nu<0qd`Y$^2UA(fXHA{Fqmrp03ivhdgc!#FM(Vf zow{`C;#5&GO=@1q$UBc8@29({lS6(Au=0b459{1|^5hVp1hs3uTM#nTzq4Eaopx;4 zBGeQ+7q{1LsNahj76b*WPcJzCKy+J4-@RZeW+1uIu z#L_BZRp5Z8?i$QAT5#F8G>@Yas9g) zVtZ(Kusz97lC*r{L~oc(wV}&foWp;M(?%lmB^iNzVvY6}16Qoo$h^M;c{yw#$u|Y@ z70C!krxHrz7|)}w2l+RI^5`SV6}=`{3y1u4U!y=;3W`xqQ4MSu5`BxLM|{4hiXKzw zNt85pU^yE2p|#h7H={P#K}{g>Y&aL`pbn&~kVZ%=#5 zW&Q89SWhSHfTVS}-HE2AM}qHev;l#$Mj14RvuLzekp=w(yQQ8?Lgdo~KUpS*(?g$S zDD$njjpbe^*HQU+S98$ifm4Xm>Ep+T!UEV8H2eqI_5Um^K%d0aK&=^^AQa-(3GS^F z2v0hbu-h4<)gL6tlJ+f139(AkM*C{H-mth16ohVS8h@#M`}U$K73u|NW&C=MkGQhr z{>dNdgMxZKsAkJ7Ub*riEST;3^=c#fzCQDf1XNIoTDK@hdT7{2A5R&#@Rq{fefu`P z5A~67LFf@vJu4kF4K3olYYw{sj2E}5xVADq@l5{(_BXkL zzaR+cAG+0{^ugWY04u@G_GD+kw}QUQJQzWH*E%>@(d;AFzOGv>3rz8*HRa_o-i=&U z$;s)FGaJ@Z*F_{`8FasCDJPv%H1Nx9w#C+MW}~HDU4N*btV#E>)xeRddg&JZ1`j?+ z(A-h*j!vvYbM7(>%sRWXW@Bgs2xw=1vTftm`S@N62nQ@g%p#pM$TC3QOSd15kSTmC z?y&X%S~`qA=ARa(qG44aVy>5TM66*MdZ<)#6Vd=w3&GU{q^CsYE~B_#zo2r+U8 z)iEbe^q+lV%CS1hLEBcJe-*;1ty<*R@%7C96)&#b%-}~3rVStx6s}8rcjyzlzltu& zhB~{Glr(A00xo453~R=q2p9>5)d~wKsub)w124xN>sX1F-d3-PR|d@#L-n?~5;M#7)^YIAnx{1hgmtuzo8bopJ$vy!BVicnpgcnq z?Pv^<$SBC^gN@cIC;ZRI?bj*p@Hc&-WE!&R=UP>h@LLqEsI?->#wNUcX{P_!eC}MW zOQn=;Ay1ZxdjyfhDO5iq9nLw__XUv&T7!MbJ4WM8$GeERK99a+D5dqd#|99i6XK$; z0t{j`0hcwjnhVU!egPHj#rWP%bi&Dp>s?!EXKP!l@r^JlB(eNS)XERUSHcP|io) zSZQf=ea&xd(f|U-1(X2+_mt!q37d4S{@#H$Z+7>O?c{cIY|mo(82>mWWuUG01661$Y>b;8PEZM?K6|(5fj|h zO^P&8g&GsDLnma|EDT}j`(J1(3Udv|FFiSApLQ`}U{DAgi^4b92o7cuiH%sD9ezpW z^fUQ^loWjP4(QU^FhfR+P#a+z-DMd>?IILokNh-dM&GNZj+hFZDX<17xPukZ%Sp|!^S*vQvRMmpg;a!tUSA9zLNGzKVf z#LeX~_7AdlS^N-n)y|SOsJ_3M7hGb2}I=K$=KP8N}u7ElnQ$a4TnLXN4an zucuIAv*`zZ8}^06aum-UG&?gZi%R8qgT7AG&C+xN2Pxa7r*M9fW+QqwGIo(7yhO5v z_vIb`oPQw3T-1HL!S@mW@hquv_e4iWr;F@?u7SB9)6Fhb@OqIZc4Kk}(wq5Ko2Zth zY~t3W1LbZHWvL%McI-op0RB`Hz$IyrvZD0(TMxC(mV!@ae=XkgW{N1t|2k_ zbLY;Ln>=B~s#VjtJ-uAGBc~HoJTyOE5>L<0GmG`%^9pQEi%3#l_=akByv#1az@D9* z?KNQ-ffjrn4JZZNfV96<8rz`(=vmN~+wqd=4%x~f5U5TWY6%zbKYe;Jt<8|Umx7(> z`gUSI6{Yy`;Jc0`=sXY%fdLJ7P_C&lmC7{xl>`SBB!gfr%RHAmbMNVIngeX#GQb)E zoPw9{bHnw!oxj?oDV0!9sx}$k#Hjh?yg!w_`*&;HD|sq8altx{YSv4aO7fzP+rJv= z&jL(@)V&}(_tJvBI?-%FB#hy6Th>4b?j5!@-OXQr#DUbb+a3G<s3?ox;u+V zl&^b{R2mx_o2K2SNAR3mBHSEJUjrMO1uA5hhaa8sNnLvP?oF4!qh+d+FEE0#dg`m* zX{oKFOjp*l^Z-7a#Y>kF9cXOuZllbEiugOQv8evpz^Tu)p8^;RIP||IMnfY5;K7a~ zY>xihCJE}(|F4_ZRWYZD=Cm7LgF^0b+*JdR{3{BTt?6H^xUm3G6M_aYe3Roaumc@8Na%Jbc3cH z$8(r8i8(%a(KgRZ8CaaZMCtRtR@8AGZ~{!HKN7c^_p0r_ z)LriS!dFBs)92~^2<^YFP8tR<#Vl}4CAz*zJZgxGW@cgDrSU z@;`k#bLDMD#_X5vNya|r)3avP)dg+gfj$Dotn(1mOHIQMh6oH#Q<>TDopU&=k=k*{ILhxUpJY|_hj;26I(rAi84DyN> zoZ3myn1DuNy6`OFvkBZpCDgwPDcu8*;_jJl0NC8{4H_@WAR=|L-m+TaWx z^HM*WwIfx5t0?fN{yTb42~y_XpJ${0tSB)=&!d?954sm|!(Si_Dn9+ZwBR9>Vl-ji zS4%P8xzpHat+(MRopk;Chcwl;%2x%zT|()oAch2rgt5b;+#sQ81PD?luwfi zIbMmrM}+J^fP?1@$g8xnDOT8l1E1A72ct!D87n$&XzBl=tA6cLZ%})-AdBanhxXOOg^2PNw}ql~M*x zQm0;<)!mU59Py0v8@#ACkE;K~i4zql$OH^wu?8N08PC}$sUwgaynkcZ?M~tVMtYCh z+vUtSWCJg0X}D<5Sj2aZ`IUIgxpRjOqBEBKG?vQj%Nstv*vB$7inX)ep7?_6&1Tgq zPRhY^n$lSFvs=>jZ%EDB$RxgI(aM#Am;#rbf{s-nA^^GJl(8=V_G-{V<763lW@{S^zqhM-(IL$N zu{KMV?DF+Bi|{X{OX1)%>VUg@4qsf%OOW8` zj+Qg=1rt4scr8-bpoQCnMPyHua`h*D}oQPF{a^P+jCi~2b?vt5rx-!CG&Ur<{FJr%f zhkdB>(#0!7X%FRHyeIJkZxrW7!D62%x&Qq6Ep@`)zJ+4fyt4LLU>E z8Yw_k?B=Qw|J8|3Lu9qXFD+iZdOt7|i*mq^(HyIpa7Dy9B>{$lK!K0c3Cby=Wb+?? zJ7+HLGQQxgJ9k2KOM_b~2{W6Zej>bVgaRq#w^LK26Ha82q7cOSLkL%5K|gtN1;L+>M*L%m~SgB8|F(PbcJQ5R^gsp!>T@+u^zL3^5Uz! zrtElU9~OW_;!*YjP62zjb4sF`cVjs-zI0yrh;{sFAj?TnrsDe+4KW1ZkdY(%5qri1 zIL~;C_<|eLNh-!>|Dwtz58#vjUNl$1Kd5WDu9{N8hW;)RMG)Z8x4vx&1`2DA7IM1>~tjh&N@J3JMG(nT0F_iU76dQTGxOcED_k_13!fbIt^> z)+!Zb5BC7aR^oz`3?c<-pK!bmCig?~un8BHJR~kLgL&xcch+~tQ52M&O7OlogE$SO zL_~_jR-Uyy3xgmR^If_%@<1k%H(+I@%ji?VL`1=zoV2SrWD{O2j3a~8I_8w z^g}{`(nXxh-X zoI)QrPn3m9IX1hvGgCM3pxV=CWX*{u2mSq1_$A&|BxBqGwpWluc6#E))Rj(knrmxD zboi*zn_aMqSAL0kapOyUQo$K_gJ)hzs4o6v zdf0_hcZ#2~b1UED$JOC1SkYj*OLFh*6b#ics)RzNoaBVu;^N8Ja9ITsr@$-X&~JK+ zim{f=+(5xzNavw_;)$?o9N!c?E#xIo)yV^(7_x_k;@ta-W>Y{b4l!A5h_yrUpqv1m1(BZ;u{(gUA2L=EF7_TZ>L|~)zxv6WG+1Jm6X(TXMok z$UGt`aY*t7yhkW-%=PWlX9ruPo~5Ow%zi*EjVjlm`VS&bZ(#nk5WOalv9e9z(B#md zS`)KU+sg7nvJ5f7N!HsE%yJ~qEQs|1c9Nc%ZC`e`g_fMod>S-qc=3+1^~k`~;^!g$ z4lQ$G-jg~=7rnl$%<~s7)>#NqfNw?;WfY*7x;whEo^ZHO0J||Cwe1#GP@9e&?^8~S zQ4*#ay1}bB;B7Qr^dtW<9f*eic+vV{d;TjdW1>$uvy+u6PT1<(2~Lu!!Qc#>wgWHt znZP0N0PfK?!LJGRThR_sWQm%f1y$tEu3EaDS%Te@_q3}K=D6ZPj&%D^u-Q#Z0G0*kBL zruaLsFm;&O(oOjN6B zCIZ%R1%R^n=)a|8u}&{77m!QvQ=*Q}L`890tOzzQ65kAu3O4`Z=Bo8P*Rx*tp)K4k z=7Qev$0E4hF*4|XYQah0q)8KsNZWPm>NQ?+hf5ZmaLc}Z%_v0{VWvnPu;I0~f5pY~ z=Ys*PdHb?MFoGjOrCu8M#e7|(``n|R{{GV_8>GNl5o7M#%8wY94SS(Op;eu%eef)O ze}zO~k)@>$e_5zR1%O|HXt?5rb>8QhBf>V!?DCnBc9OUe?DZw~uhZ+-ug_n&5JGE> zMjE~Av?WV`rA8QNXHzk7Nm0P?@3ljX8Gn+KJ!*Iz)hi2#L?1&t*T=bu9kX z2wVp+oM+|jTS>Le*U6>h%l1f`?-qfhf|&pug~8yfDYW zSrkTs8UfJupRvDfg|C_lKN6=CEJbpk*s2a^qUM|rDN}DKl?T6xgfT1DTk;0`*9wRB z$Hr>#$wi}KZ9S_vn-*t0#p3ei4_un{z0RsnmuT0zgI52FTs%~XZkyaE2knD%2J6Y=*zenz@0^&W2 z*y`|ShD4k)OqiIFO@<-kMlz&VM)h61D2~l5We@+dzaM@WTC-vk)D7^<0e?xSV`B2G z&G&V36_mc2Z*VBSqm0-Qatx#T6bOY_+x%T`{$SAxTG;nT{EUoi*RGAbG+@u!rn}T? zZP0pcZqAXi^OxG{^Uv60B0J;BL6}KsGkAsDg5tkVm7Le@&hku8EDu`wqS>t z3{UjI7_jqf#RR1d2F6`p-@Yxg2)6-TOW-kO{w~m)nscWh?L=Dq(rdNqjPGRg@X@0I zw%G?R2H6>9oXuJio@lTxu&AnmZH{XN+Kyj`N^Fg~J8ZrdHimMpN2ZM4kZ1zHe*W#a z9}7>FT%&V1J#z9pf_nypkLBYs2wn~>j!YSv!nx8xqY?b-tWI^)RURxga8K_eSYYf( z@)HUVsnb1i5o0nJ{*f^kvm!SC6dD5f{9{VOATb1yFVR&&LW&K)99Uy};QGJIwZn1P zTmTp6JQoB;2J61Q=s?m6WsOE+-wo^ZB`;p3aF#(bOC2T){dtptmo^e&^7t{`_1R3T z>Uf#xcZtg|@BBMgxaDyBUw>BBWAMT)#z&SBuOf{G zq+;9CU;l(VtV=BIHs@*7T*GI1S7sb9xp@50pz_^)tiT~IRQ@RqRAuXh@N6h1$fiyS=!OJP^lB^Bf zjsmFaOuEG|?&(%mePkmJG8nU=#KdKzstO$9$jB3;t~u?g!C`^xD}p+`q@p?rA}F3i zn!+apyg&fzP&RO+JLTAXfp(YE2oD{O?imPjO+Mu6OxSjozChXzp6fAq`$NZ%KcwOi znHM;s+Ox3LrX|qJVsHoZLM(E`al{ouYB=%b&SsSw1C+B{=7d-Vdhsv#TT&ljT97&b zh=F+SgBNZs)h{;i?W*PChY}Fq*mU}6k>1eTJv%%9IM<^cOQUtOU7Az*Z|E-Ct^9(5 z9Z^wHo?b5L6Sk%Y&E4WeYy;XpZ^T|Kg+04>H{x2<>u$Mxd84*o+g?#`@XJpDpe6sQ zy1Ae}_9x13=~BTO!L37C9y@=n0<@SueL6R385inPZc`FS$>J?!w>zKwn4TC^)u~C- zrsy1Z(6QoIL(ub8=i`m6tSo!%77+c@Sbl{1D|D}Z??yYe5SV~28tn)aq#KOJbiYxz z>E%&uyENsHAhSOeN%TFUhB6NDFWlae0!i>Vw}(^31osR7_FAZMgp62+ zh97@>vHF6|-@Pr4gPYPwJ;Gor94P)@5?cf-)jC&-`iw&C7URx>ZJhmvY9Jw1HF1ts z=I>L<6&DR!(e0PQC=-0Xl`KG%aJL+n$3{>pemgGil$*V&s5Vkn5 z;DRblr}A<5Kc9&nJVLzYfBrOM>1%euB;OFRQ|V?SLy2m`3QFxvHT?5q;1=}Z8t3; ziDm{5v%BLbo|@#ed-ux?UKqcHjpALLeXZhlcD5fYeK57B)H9nNJIqLD|59p(X|}3U zZ^ru?`_hjp(hmh}qO7G2tbgmpiz5`%QwBPJeHLD3-8dXkv*z*(PP9hJgSsowl~~g& z>s_v<|MYe(h8Gfz3httl95WQJ3iXDUmiV^<7w*DuYS6Z+0%yDG_lnb|QKvQQH>h{> zXYrDJIwntGQLXeCul0E@D1Q_3h=WyVHo$@geMo!8OlGy z1{Od17f77JZwhf(o%pox^pG{vl%`E%V_9Mv6#JT(Tkzo{mE?>z_WXd718UfEDJ*1_43 ze5M!>iVg}e(P+uwrHp?jIRtgym#<&tjdKpK3c%i0}w~tT7x zT%dlvBX8wo&C0rdf1JnMO(U4?jqNa(Ip!=ThB(QjEW!h4tw|dnWvXSovFW~vGp&4E z`#VQ7ez4uOH;@4W00QxWc(R75f9uq{=uxV5@6H|VH7_oOhFS;r3GnxyA8Z_`r<4jF zvS;7lH&#E%i{g$M0+K%H*<+R$7xnv9kp!aHHEY39HLsv3XTk%Q{{15t=Tm5#zG#uA z^1I&xWBknRwj+f{SZo#}B- zR6I+pjtY$y?Ve!Q-O$=5UD1YKPCIuBi^p0`4CB2n$~qs#v`e zb#-;;;vzlweu6CO#xjRFg#vI&_Bfsoi6LQWKZyTY+~G1SG!CjzuLROw`NvhB|4{h$ z)=7P9D()SQ!(iQjIJ(4@KOSQcQbt!k0Mj=7h1-i1wFs^-QFM~AaUlwgkkdz-PBIM; z#v-zeeFDbSgJooWE4*p_Tg`2UE0L+0^T3%G_I z__djx?uFjIcW)Q92SCDoW?kLBU2DUJiUw-Ss)k9p)i=iSQHm@Ao#QrYl5($o?S+6z zyP8jEXf#m>iW-6ry_6jyhCd?CQy>_o5uKiZ27=yO(kO_cOROR^kAwFkLsT(o$xHpr~NJl;;P$j{(*kPHwh`$Q%Qr<`XEZQ)9?+B^X`l^~U?W0_SFh4>iXitn`Aw!sz<41~=*c*51Pl5mEgZl#$|!5{lApnDpbSSQNf(i>5^ME>3cMR1;)P>fHA z>BVD;sS-9Z9pX|vNvWw}06V<17C+zKx{X@ozT{}agYiXsQ}Cde!WwoJ<+B3D;6yBl zOw>?E?J9w+z_*RPOIWIswu#kWK!1SD8pGk(cJu) zg%)*(f~;t;O_?@o{UsFgM*-7zapKVxB3kE^+Ew{9!A9u^ihRHxbkltHFnBg6OQ6cz6+ zCwL0wB{J>yglQ9>wvW53O_weYx!AgQep)@_aQ0vGk@pXBQgBZh9yF=={(Y8bK}8kT z-=pLwNU8|U7kI>R4mb&Fg6q|#(~}rd&ScQ;al`I~B){+~Q0WLizD4n7(fhOgk<-Ph zfeCKfyxDrueDozvWjA{Pp?)}rtVzf1>%7yzA;CH|H<90XdI{&Lmg$eO_3k&>G=kpn_0DMa+uxCBL6h|;2# zWG6E9ZqNbO34eR^9?x>F%ysKw;4qa6QPdb5j-cm0^04PwEy99gv%b{GISqW&haxP??zL2Y%gpD9Y;5A?$!I&@6+2S*mn8#aDbv0=bylyM5e4dG>wiOF7@TNq^DBq%}<34zvWJi2!4#@!{3 z2^!}1D_lu{XO~OX;x+<>5E zt}4xzX@RaH@(!vU;i{mMPH_s52_kX*p!0K7&m)5RpXULBd5(BQgw<%?0=lprxu&u#7OoN_*uv({-r9}xdY z>bK$R-?VNmYueW#0u_OeA6Pe54}iBmr7HO(6MQEu@Pmb+zu$=uG`LKkn-0=O=zF@B zb62jo<{WOMGz7hsoR+YE9InaEW}YszY!V)4SD2jq6anpp!uRhZ&gk?CXfZS&dDtlw zu3~HAezWG56+y-pDN(=-E|G207gl|k$5L^gd~nIiMsoqrPn@tkU)A3voDL+(GV$x+YfcqPiztq5>=s0s zlGAQ(zNp=Ytdx|`hxXGiY|3%Qft;6HBfn9V#6L<^?+g~Z)9xw?+;SvKofR+H5sxu@ zknLN9c^#a3)(8|ay3XMc<34EXRC@yJ_GvHIs{b81dW(qxr>~4!#*xfew_~+>x4yF$ zuiZjXRp#xivE=^y7PZe^y7a7nv~l;3H$>x=muTqNY3)BL0@5fyp-Z7#7yTzzPmtF#Wa|HkD|KT9Xoa&{T|BtvZv}LY_}^+iWS%ol zB4T?EZ1SU*=A0z{1=L)~8uO?h=ks~pVN?yAq_(8HlLgY_`XKq`?hOvf0J?vlBRQ1% zM#9B0v!A%K8H7Worg(YjvO~W8n8h{9p}ZAIkVsRgM`hd)v$9)IA`F;!wdK;KMXmjD zUG><)O0S7iZqtSxCxMdrl#Gu8wR)^v`O!GmwB{E(*Er4pJ-Od%PaQbC>2S?+b;;eWIMZp}H*w7&eNAdEwPEwV0p>iEsT zg)*s%ya>s~02b|Dm|pYLx=)tbga018vJXLAz@I%wj-0)wioGW-0&^6(r)w{y(4isv z?)d}ljU^3?7$H&At7diU+I0>&JS)C$zuB6PEA^KG7233aMYhu_^rXnX(%Z}rlP{N0 zZ6$`?hF|Mmu)lcKu6jT#+acM>2K`13YB6iv)t9ekCcfFdV!y?lV=p_8p33LS^Fr{&8 zACc=-rj}AtE0meO5{Ql=5Tmj{kt8i*3rEa_v5RWn^v!>6TIHS1CS|CvDKt>)F>c>L z^$v+vI=0H;T^onb+UV-g+2K!s$;yuR?uRufcdYs|s~ZPuL)(Yob&GiR7y=BV%!e~s zqIl}7I&@7JX?;jHdawC{i(0Wwg#saYN7R=Gy85G?A*20$_TUT#_MnuNuo<87i)0)0 zO89K>PsiM4y2a>QT`n$deY2wNX@@4Nq35pIColLLlRx>&!Os4-_g<=OI`5~lYJ_n= z)`^L`D0()i61(=^H1=`j<;m zi>ZHYn(y~`AKos*zWKh!G4oX}1?q%_*k--+ydQ+D&3eE!lx+2Sc`)!4SRa3KW zYPnhn}^ z>{+nI_G>@u{zT(9<=KbV;RDY;aK7$ytbY6}b?1Tv)jjjr?pHUbuQ%5B?!Cr4{_J#xI)R^4$5bcXUm=HE$hLUAc4$C5s3mcEX&^_yCa*wY za*Ptx$8l=pbEnt#mES*?s~F^NcvGY3_S*ID=_w|JTI3y0T{7nIk9Z3wzZtu3%x^(WmhhNzDaKx=xNbPHy4AP97Ygu!^wAGW6 zu*)63=tgjj$kBUMNxY9e-F!mZyq}3Wes7&R#^_9V+VfzlMb|+}YxpqkUAFl6_&m&~ zmhnm26Vi6_<&i62?B#a8*7fNMk3Zg-^k=O13!5tKeDZ}O!)O!CdEt)kOm{w{|-(}6I$UdyI@$FOL zK71|%q=@Y_)Nx78ZL(8vkq`q$7(C@rK{6CM+N(?Y{0*;XJ@1wM!!E^4w`BAlgIY>y z+lOop2>kQpoff6 zicNPxw-fj4L!|TvoKZ+NbM0PJYm-ARNnO~t6)C7V5ajdttOtZ6&-hC11+`=|Wv`af zA$%zRw1^zZh!2BTkCG-35#_9I_g1aRKa_Gb+A6r#rn}phcYSr?w2mAntLIYwoWOAZ zI0^4jQg`R3TWG|X>3J7&rIG+y|5cirnvPVV{s$<@9!NGiSXMC_dsgr$aho1rYijQ6A}997TnEz+e`m+Gi3DsdMh;u1$j; zsNKYp`~z*G3V^EKQFc3MEWMH?ayKT4%7joF^4ztfGH<$Sk#&V>_sB>4S3nOkxb{oV zZ487r<|W~~wk`M6j%N)$MX3ZMI+2=1ULBprB51YWXk$OY@}Yv88jJ*@GMLlQ%hn>HtqO$3;p95w&KUX^n*u0-w1;?mIz0gK~B}49y*QA ze*9K)^t5Y>(vOl}lgr0W!-vO+F0z<65_~*kPni$JG588|LRul&hZu2#s1rsnZhRJ9 z!dIF8!?xfN7#CN9gR4{KLtA{ZTg{dejXwX3q=N=qNJ1>Qe@NmZ+Laf`@?Uv>4_L6b z6NB#XaQ38F={;u5_0xAFhEgxnsbw4X z?jR@?>)JBLyVFSWuy#Wy_;juW5j#bfEuvs#RoImL9{iE-nbzkEy{#D_9X9!3fOSNM z_INXD$5iMgV%X{?nk05$5syOVM|pXf6#uD>JUZd++a9Fo(l8TcjS1%F`0I4XA`JOw z>ByyP+C*4^+A1=jIWcOHW-Hk1@9JuQ=RR|yO!q_FgA0%zlfAj(b-lCR%xs~g)i*Fu zBoz;?`TDJZCbR8Fb?rK4J&#|+qWou>EY%M$FpJFjZZ#z7XW`+* zlS-%Bzf|kl=b+Q!FjHd_@4LC@4t>ukH(ma0SYz)6Uh;0bOhAmpSW@K+On@4Ax!L$l zo8s*6zVsv_UvxK|L*7>pC@~%pt&(@502=+3RbFRfsMD^doy0pJB7TgEd%J3+TR*?S zaZfM2{z#4)1GxzE9oOC?@#VYyV@h(cGoECZ)mzNCi+2nD{_21v=CLK$&;Ysz^W_Uh zbJUFNRpWUGF^r!6*Zon!x5Zh{-`n*YzG-z-!urK8l+JW=jS8Bn)9mJoSzTbSxu|mx zr0_b$2PTtYWPD`Mqh`0jOxKR;D!d^_TAgzg+}cSz{sG(y1vq_s$QWwwbV=6Zx?6gj zg)9WN0x#8f%my_H4&54eeHdHh5e64Yc0jfP7bF12VInY79Tu$+r8=WplHj$q(0}-dnjR)qW#m!F`XY6*(h&moECIvQdHQf+sBvOm~g4d%E>2! zjx2kA?R4|`4Q=Z%=^cHXzE?)(KYjYtzshm`{MM+~<)5M~w;k13&1)kE zU?z7hoJT&vuaXfX92igWNmS;48`-sudX`j}Rk(OX;N zHeV`R`K+kl^NgsuN!ZkP7|dF0bdR%d8m`>5_t|r^+cUiz6o#<~Q6mN=LT4)Ec&5#m z{>Ry9@7-LOpxr@1LE0n3qX<^vl(YiilPTQj-pUarOKRrTcE@=q$B*|ZS)<+DZQt`S zSL@uuyM813Exd5u$I!U#&aQLS5>0M##+`b%X5Q4~mzj&RW<__olbN(@wzjVKpkBS} zblteyIWf4U&mnF5Tkp;-9u{`kT0d#=$m`#pgbyno?iAYcc$qcnEF?^$Aa(TV-qr+$f ze^eZx%?k&2lr$_v&{kYtTe@gg631CB`QFq2w*BvFH|C;r5WNoRW{R3 zi@Jxt?M) zHO}nq!NdMDt-9=+I4x;Hi#+Qu(I>-Ik33&}$13Hv)x%yHo;v0$>VLTDqI=r@^QLP~ zo$MF?SZrc8L}kPy*J|5&F>|KuYaC_n5oWM`Wc?M(;+K`o^sl;eJpJ^Nl}*h9Pj9s2 zpwd-p$lzcyR~Tv6FmhIjN&gmq{``?q?T=?=&q6zEM#XjC%&zYOaA@33qEZ)|J1|ze zYsadcAYPB+#|K#KZ&U@TCwMNkjbG9~d3|4;Ka?AmLw)_aq+3K043&Pg4H(pie;{mku|sLR|HaEb$#60!r4f0FT~?Te3;~ z3j{$MIS}EiZ!JC_q}(`lY=vLe5E_rGu@PwjB(*fH$v$@|F@Z{PNQ9o1k=l!y_wzdT{2V%$X)J}ZnaCAtsMz#4g+XKjF?AX`V z0~in}90~O(*z8H@9R4jO*xCQ)weEeQ;D15v$#t<-#?cnStsQR}- zHX9-!WLzy)qW|*3Gz~(IvcpdHKDY+*_^WdG)5g)$yktZ>(zW%**Ls zdNlgQ;nG*lPEE@kYu#fiz(?^PJJ%mB)pLW7TNTcXFuAn3tk(L0W(#&7icNiY&Q9@9 z&&WYt3&&5_-2KDm!lxy6pZXg7nh_Y*YFl16suYWWcLv4^Qswe_%3Qrsy+q4TqWG+8^@`solSf7=E`h_!8}ucjuYul zS3ab2-F4xD$BB0Ouj(i(XIdvuY-sC!)T`XDs(RreeP@LpT0Q#4kGt#{Vi%aQ$hy4p z?HtG4QAsIZtzOzq8EbmB!@Si&yXyCHTv~tesJ1igOor8ZKK6d|?`u~MsJFA@OjY|f z73WG1%o(?0_XQYcAJ!X}}`1yHffEEAN?Gh&mf!V3dCL+qyp%yt)1AOv6tGm7n{596w>_ zCg0ZDzdwJj{HrupEi`leaPy3!Kc-{*_fo8wKXpu^TLV{X=g0NzJ|D5`mh~Yl@zvO_ zZ!aAyZZj=sN#3}?X}0GE^*h$8>PG&FcP*ZVT3oT)C!=6mhQzfyaw&E8#U;~xlKz20 z$! zO0N%tRbG4=x-Zx?;;Z4uwD~dGrj;MBw$xT0_48|Fk0G5s&en^5z9M$b+8LY1)=^ct z;Hlxe*1baU^1+1>pnBpZmDtldD#NemEu8hMQ^0f${pt@J z{+0t}RNFaJEKdmY4^+ww zJMu8r~7P{o)J@G0Ny;)AKF11{_{2n~5sXH`U-^pl<;s=lTBqZS8# zHJ;^WwB+l%rtJe>-EJ`dUrwZZm$%gYzEnmEToRJ&0$bVm=2<3WFB^8PYx$2K%w+KNC9iq6(rLvPXr7d<24L=c_`Q(*~qqE_f6BQCKh&Hwf5=g+H} zB@}2JLr4YBk(DUI9?&0wHJB;91#{W#--iWUI@^mCG-vUW&PR;T^lA2d02J2Cov;$Elr&zoHitUSGA@_;?@KX;966nXdYk%aPZD=nTMs(IvB zfzWeNdM%-J82={u8)(^nKoxr$e4on%k05Zby9HIG6lj`a*Q{;5%AhwD49%YcQ>SA2 z3#29WCgM0J=VqzJCsH}!VeJlCHbcaN%Ua5Uu23b!2AIppAHI4RzkOQ5p@R1AehO6A%A(6RoA|X?Ttc8 z^0E;TzbDv0@-nJDlxV|FDaiveINQoCZ|(KKD>kG1?@-?Q;9-$xd;d8$*FWsL+wn=c zuWV$srMh;Hoyu2Fb{-oxO=VU$MxIjv)}r_&B=An-2Sz^e za^qRV?l?@3XmlsYeaVtH-KRlyP-_{Yen)kcJZv>faN~!Fu%k>8!^@Q$;9Sy+q!%;O zq5P-D5E5$?ols>C!WX6!Q%X|NfU?S#JwGj3Nq2N*UF*w!lG6#b^}I#Dab&-rPq0Ojr5F; zG8mipGr_2>#ip-%GQ}E-P=Zy&u}%MuM6zkT#SD->A}Ew43vrk&BZ4ftHg7XJ<2jE~udM zv}F#Xn>uy7apTPnx1H%{Oh={Yd~DTyQ-d1;)^k&gI@9J|+@18&?n6Vj-iq$KuT7n9 zUSDJROXbTqr|b$}H~O1J_u|c(U&_9pGMzK6Wc7=^-8Za1xoFwNE@un$Zw#~4?57rJ z^|tb&?)?48UOdh`YHE1vtn#R?jYs?M+VWxRv*V7i1 z95DJ$Kz@?G`-}vy<^PYS^Nz>5eg8j|x}zwo%!cfhnO!Lf*(Ta=qX0^E}Suc)gyl?*@fD!x_CMSA;HJ(a_kxbl9_) zr?hP}7BN>coTL+cZLZa@0>};@@Uo9uT(@{T;y4W`0*l z{(obx@&Zotk%80;lCq%g`+T+r6a#n~KL_RKJ=7$Ig6^Ll5F|vfb~V9H)`?m!ay_+h zseoB>^!4Sz+NA17a*$LIlX>Go9_vQ3-`3 zCNzp3f$-du4F)CW5a$sh=n4BR{*Q{^<`RIRqXxJ^po9B}ciRM6vTPu0}B z-Hcai{v@||O&Zt=P2S_^XV&jZQ&;14yDV?Qt(1JZsxNTVym{4<$HM1AcSavz1~~bc zFW!dv-s@NM{fLieM;_C}o(m~JH2U2hoF#o}V(erCO`E3%$eVp--F zn@fHAg5()fg+Y!I8En)C$Kd{DP#jAMdzSkwy@!3c@r~h|2bck-TkG;}j#~vcGUg~0 z(xM2-%>)aBjU{R)M|P9-ex&Pka6{&6!JvO$dLDRhEV{P}>hL@RgpEhDISAt2gXip2 zBk0ro)@MI^>lqr{7<>kjZV(v!v@x%rO6cyzx*lG1qV;-yC#zbT?BecnC!` z3SVN``%q*z2Ihvvvar11`__NnbnX}3^*BNK()(sAjE6wGc#aPUF zh#m*y%%teS%u1rS-@NQ?A2!X;&er$)_js-b4+mOn{aSOSxc}DVs>!cPWy4d8bxTs8 za6#GF;L!G}@ve!WTm7N7hwRarBuzAnIMDSZ&L;Bj6PL2b&Ge;L6S5AZ8n>7Wz1UN3 zVRTE#)&2_CvA?F993}qm+pwHDa!IQ@Dxr>AuPF+=^SO;vgEQE}Uhg7$It5r=WHOWlIPdnS2yY_zA3@c8EQg5%+<@l#TR~&NK0{fK*G}Jjil8l zbMA=6N>o{0D|x}WE{T2(I`Zve z^7mG-IrwAD!a3<7DW~wb-aI>oC^cNNzJA+o>*e~OYaY4(U4F*&fp_|1yyUpng*HE1 zIwxCaFC?7`bk4E5Cv{~@7ftj@OYo)z;JKfEzGdhtF_mfbk#{!XyF4N2yv+&&pB64} zlb0S_5S=`G*wH&b_U*}<{Az#EP={;T7Hw@z-May|>v}Y4+ME&Qcs@&PvCL`$juGCk zlq%xN$DMU>@@sZjBKMvWR$-6kMlliNClfqZ`5IXJ3U6y+A^pJid({G$qDy+4%U10@ zD*D_3`^1&l?h30tKfIrk#udIPgA#iOvWZD0%CE;V)#LaDuxtDI!W-6Ad5gD=f4W%R zc+Or`RyeLXFCwUZTk;Af=kEP$bBS7ZkMhoU&JXd##6Aw=3ec0F!Noo$x2D4_6tAfB zMb*~#l_?mBB3{uOxI&->xbn=tru7xjJ|HXg!s7c)6=5Xwu4HA?5(VxYJ^3D!pqVAOe7CO1!GTV+Je$7 z_b4b@^_Sa62v4_Gu5hzxNNz^A>FFCp4yTA|6N=nnE0`fOr02QGv3K^8ZHG)wCzOE+ z!ls`c4@xjOxe(I^#v2^a7X7!L8>336%+6wCy^^Q1X1Tt*Gne|S(a%g?QKu*W(`yG0 zylc6tjc#LCqlc_+*SlYpAvb8}oo7os@$Hy8tXQ0g?O3{Vb)W8z*A>%^P{Y2fwIkEl ze|)=*r|M{UzQW_=VED-$%!L}hkVMA~^%-Msy=T|;#TnMuU|;@MRllSA+1%WmY9KTd z-m(ZaFCZ&8!AWFKSyeh(^7l`!|F8YMy=pL5LF?@MTRfqkP)4r(wg(9z>=2irMLk%N zRR`t;yvX-m@ZP}tV!&Ce z1AK(&azoH3O!i{o6d68AL;yuIN7W+!9;0-ww)-|_r%EW>khs!ZN)j*OrDhvlr`ZK; zp_0J`wY@R?z1*Mt=l$e|h#?OS%2+b|os9Pd0Sa`%h} z!jE#_WcV4hcTRr)`;f$1`(}dM&gGzyzWiR@=$ygoI@^nk2JX^R(Gt`wVhWUIr6H12 zDrN?h3G3(h=X2|$)Gc*0{IuX-e+wC32;aO?=Ux(Z`|PWD#cCf7%RxwS6eF}=%*lTg zjmGD^`!I4NGSstWV{iPrbU^&j;iIff!Jmb(zNKlOOdTZMT}-wGRy}CfMz_c>s*kBt zGn8QBjnCb5B@K=KN@~-o5-B8juCQFoq@f{9_hmlEuf@b)zv_!vSo_vff*n|7EE^3d^H~nOFvT5Yr9Jy)>tFhtpug8J~MzvRI6w#P!SjD(i(@y|wk_@sP z$H&$jBGLD?g?;lO4@?=riXWPEtjsxa?n6c(9A#Wb<+!0~h^{b(cWH$^-WxO$fLGE7 zfB@%Q`DKE=Gk>9P8zTc*xXCh+l9|;mf0c=k`cmv4HRA7Nw&t4!GE_<=vb$F9;uuu# z(kmxTXU`n^b<{ZQ!b5lQs)y&+a9{+_hT3%qGl~q1o9@%j59M$E9vbI=TIeEJBYN_7 znz1y}bTB%^n#V8UYSD16!12&Sp07sdX+n=ene?@}U-6XKKR9VV^_SFS&i(ZJX}@lv zUeV%FNmPeO{=%Q7oo&k9n-}98s72=D87rcB2rr%Tu?{)E+b|pDF2=EV!qr6z&D;Uv zl1Nt8)v2fE0)9!?GPblGJM2H2>~Wgd)qCtJFfhAw-J+&4Cy5x5V3~j4-#TY0#d8#J z17|ziIOE5|^Q#jZpI#^sDvdq!cF?*}eSQr~0jpDK>&o1Ui^dn}c9yiyhi^}Q7@6Vn z{}GQj`qxeO5?5Rwe|E>*R+)AsUn%5X6~C{e*br1@Z>rrSM0oikW51`o&6W|53CVAu z-ZP(zupm7LI5u=JG8!gpo#q`@Ck>VTzlOi0lVJw_t~7(zmCq7sXFM4_ki~ z581^Kzr1VixZ2}kvoIVG9$(xAs~S(mrgZ$t!j5>&YPIBeh->M-Z`ZeVtuYFLLTH^( zSmeexAHQ0+i%s88n@Lx zNT>duBHO&5p?0Ry`(<66+2h&<&{F&)?#r>aTU*C*xIvf2v+&8a(ST=3m~Mctsi zKFRMxt6Il(#UY>Zw}1K0J~}OBvy~jtDec}AO-OSS=gfO{<4wBe(z)if?as+N`Oe@W zg7Rq3vENYY1S7^p^NeF=v7a>GgnFE@L4K``f3NymwNg+|mUG{-2jX5Tr2HEVJ}KAU zS(GnaV?aezdCl{w+H=r3S8+Yn@*Pr|WwzXX#blKb68+OOdHn7jhP2Ko<8e&ED7jZ1gww$5RGVsM8g7p7uw^L^Y&` zK5W)u%xM=t7;<(cD7e%~Jly%Pob*HpFu1ofjz{wDyv+L8SfCvq3 z0gYVV9x|i#9yO0!*d;#**8c8k?zzhH_16S7$6lpV)P!nm>e+55|5`U#Bw+sg9!O&BSl2o7VyF}!xJv-=wH4Hc}ZP;rSqBsY(z)>!*J`G z1c)|aAz9_fI~YX4s1^@oB&aJlGo!HL@FR;D{CEI;yvbqkvG*V3;Ax_H+xHqc1WP1~ z=Ko1jHvW~($%9d(Lp5yBpvQXjciz$F;*qWtacueC@4p-UF4LAgU+L}1=?2aY&kDOU zdNX7aClH@Q_+vECefx0&8gDLGNK1ac!mMR^w}v z(!CP-LX3J;rxYVr$I!!?>BQf7&oViWGlTL&lXjC4hi(Bw6q6E@-`h2vK$`)_!Q3Si z1=9CQ7NQ*E7`BzwGc}JPIO^9#BFJ^^R4Et~U}PiLYUnWStnU_6ntgL63GUf|6OiuoA80YM)T*U+1`8hnmkRxy0pA?Yxn4{7wFL%66Qo|czr+d z8E3xBER?EHaCmt1yWB$blwbQC1*t7d;Yy3dk&{g)6RvAf{B~H9vf7OwCMAU@M>{V? z-9AVqvzFEfFVg&XoPA)mCJ|)Sub!JhaP#?_$Xi13W4+rrj{=CBw43L?27d|y3C+|mn&0T?7di3TFZ0 z34`w)UfyUJaRRRfuul0QH%Cf9Uj<4SClEycGQ!r(p?_D-H9|aybu0H$Pwe*O>3h5{ z@??3#EZ>TVOHN`f$0-EGS_9{k-P&Hp+FcB-vCS@@&JnRVcX?u3Hm)>r6kBjlzMZ}- z-?-bzsn}g&6_=GS+J$kDtm3T%zZ79r%)WDVbxnqc1rChhH3fQh#I}c)BFl~B$efFv zKOB=pN6kE+Ge7hmk2rgFT>qRMU;eA=>n57jjz4OFXS=jY*+&V?XBZyNbsKoZK}Xe3 zSJrZR;_YrR>sb4AMW6iTl$#!v)<};JGMo+`U+l@#EOKW3rz+?$v81$uXV2^}W6()#{uTbz6~#o+0_1skmGj8^6O{ zr+>Vv_Ze@eJrQ5zCcFCI<&^$``u4NEUi@5|I;E8_&t6a-(}Z5CYw=xp;=0@BuzcV| z;F)+wWOvxZ{RT4IkhGy@`#&{o&n2_@E`wq_?ll9JT9^p$R7D@~ymq^`i+xxpXd^g&uH?r+x zpkshdSol9M8@GY@6h{z9WcR@oGHuNSBn}i53?v_DE-wJu+xcX?ZV!xnzj-ylO9oGw zb-e$_k27%&WA!=(_bn$L8BV!FIsoE(tkoU`f-Ng@X$uj+cJ$sr6gXI|!2a+79CeYV zYDqefqY5S^S@Ci_Z7_FU2D#4Z@c~M)XGt)IA@6MI^O0-}MKK2)yT$am6_&G!nTUJ4 zvrnr=$8*B+^q#9^C^B5B+&oD<>8rQkjSK#G9?Rz(P18l}0V^%pW$4Ibechc_+nO+8&Y#C05Ue&9(x!3_xmnccE2*qaz6lVzTEOY}M@A7Y_4debB-KI6- zgt4RM)H+Lva(xzf|KUzFb)9y6Pam_bvd~uTecjfeJUn&Nl$M`1`Df|4#jvncj7v#3 zrZDNBx!B7IVcbt?aGgRWmrAW{n|AR%=rO+XlYbs|x`1_wfx+O3e#tZMJTLK&IVv?{ zD;>Imf`U%2%N!RD`>eAQRC6ac=5NhUb%x$7lBiu&l~QAPC1o}}S#?M}UjB|8m#nS! zAakJaj5IewDag*|sA8;@v(m(zcJ-=|$eJ;P1HjtYiV{l?K;3EuVqKt#p*&2Oy>URI zOLa|6+zO)N!;lz)MgXf_2p${5bEm4HNJ|7Y1n^HN#(xB+xBO1bkTzo>2&?fgfQDFWhNMh@=isFddo zZy8N2E)bEvKFBA$uL6Fxh7;chXR4kbUA7ZaE9aKn;^&w6Z0^T1I86!hbNK5ImxY;5 zxi{5@tMOXb4%lOIWo=E?X|R+njbU@D?kRUJ2`(u=y7#|bSyeTc7~Fvv@MXT&$Zysu z&?dse;x4Uye#m7_y0b- z*K>)|@eRBS>^IN?%)r1JS?|FD%X8zcBp}CJ)@mZ5162T{{&^lGrG(qE zbI%0X2|>}@>Au=)_#n0ehOY52;@}P9vKadeCj)tSpy08Arph_6-rLeA!&CbT0dhfm z4$1>0-iBE7F{jg^n_!7U>@SddV{Tes0^^f*Vgi{@V?ETcFAH?Mw|F7U0ltMrrW2G| zgCy@Ep=Y(z5KfE2RXb;Z^de^7WdQZPjpvAY(7%}Mli>U5xqYUW;f8GSyCsH$yjvX0a|L?mPd zc20XMvlCyr!Qd=?FOIHnC(rOlb$$zzf!DKCIoUE(8`XE?>UsUOgT}?HkxaiyN6uV8 zL;&~Yhy#F35RV!}g-DtRO=81%ryu&>E>ORq2rIAvjlfj|waPjqlZ3=;tUJ7gO=@dE zHwal=kqaD7u8s?dK90);&1ypdAdagbbpx+VHK3#)X)qtdQioutu;Des{Q)-)F04K% zssjVnE=Yt&8}H}^%P_JjheSuW07h4FA!`jZFo-maK&2=k9aR0AfB)2+o+|^*9)?N( z>5;=S7{9@#O#~|U?{G6C|2iyI==SLBzXLhd$o2zj8a8N~A_N4~O#_v7*=_p=zKdX; zKy(s#7JtB04oO--_&g7runs8SK^FS~oDK0%AX&nT;HTq#1F@<~q26W4tbYOaEU2z4 z6n`7mdtsqU3)pNZOO?%f<~isTngA8ySslI)80U0Q%pw~;dMIEtjH*4jp**XdPXIHL z4t3p&SndFLGJk`@A#w@fzkpSUf;8c2YzIORIEB1_6l*tL1b4X`;!i2%a+&?@#ca4$~ z_xJ>?+UAmFB2z*ZE6$5WgF=+Gj$t~~mVY+V9Ac)=h zwaUh@v7kouYk5U|cD>d_yrHvv2mjAp_gQLc{`e8SJ*BGij*5H9Hlcy~wY87uC5?uE zV42@w3T)9cXskc4Uwdkox#_1GUPk2Npv68{+1IRff8DZRl z=ED#^BDbiFm1ZkKdHk0A7*<`)oS1+w=6Vd_E=SBpwx<~*1EP@Q40muCN?AnVw37|q zkO~B%=_mH~rEOUoz-dUN!v-?Pv*cgv-B0keOH@$^UZQU8!CWkOri&m{2NEoRp)Bml z4RrlG_wHE~{5X#%Ffr1;4UQlTu)Bo71?z?gBp9M#egjRs7xF-SQ@FSY+(E$K{%xljdi?abFZ9L%V;2b5CBU8GI2Uc`I1?-i*A;!( zpTlHY(DML63Fy#Yoo)nqU^s{@3!vM@N3)GQo`EZ*}wOZ7a zS;2uZk?2D?h5S{p(5Jvtbu-|HFl{gfJbM==j&tVD9Ke9s$?fUsn4?ZRWhr zXl<#5ori|gj9A%Gcx1}<)Aqqt>JUuVC)v~U>b95TLri{U(O)X5tKwSJE*kvc%W&BC zN=5Pei>Y8L+WWDij1nn5Faooq6{YH&x-}6bmH#+bZhAIUd01vkIVCV#=#W>%iR@H0 zhr5u2U99}`#IC?QHhOFaG~E zS8!OXzagn)kaWx1w{}($8@sEA$3(v%l?VoL2G zaw;7(cgTem-CGl(6dPGYmv_(flxs_(%oP;+OzQMo;WhtX3sBkXBviM1*f(n+e)l17 zyyjgRO?XiJl0HR6IrJa&?QG=}0c8mc?P`Iub$AEU^O2OThMc50HM*FVe>S`7UfsTP zCvo5=@`oXP9;|$b6$Q%h87N6WbV!OdG*`E#t?hAks?_Te!|GA@W~t@}*fRCuc!Z3w zC}Y$N(3-I9MY2CXShG1jVu7B*D6vQ57OXHr)EPaFNz5YnHMXhdt!c;ojPeT?-YGwI z&J5kHKdqlBrW3%7Q~r~oH?22I6B?_uNjh~6P3u2GUZAQ@XzE#Tz3f4kV6CR5~&ctz0v64vQr zLE_#Gx-Zatpkq7+oa-S`4#Mm4zyh&smfdH9ytZJ_Wa4xh24pTw@S5*R{3fLF2tVq} zPS_$S17Qeo{b8yHUc^VTg!5~}2Q6C@6BFlj|L!;g@ckP?s(=d#9!z~WE!zI=ZAm4U zss#^Qo?3;liHS*Y!JHHucAr zOrKQzOks!g{9n0kR@0$cPWtxhYKH@6lxQwBP$*&hMxCFH8!DFRR0H`m&}lzoD~VpqRz^?a^$4bN{eS+n*kVh_Q>MjUJr_cRauS+MG{d{A5Dhy0fCIedK%e{O2w5vn~RE~VS zyEtpZ z5lY01tq#vuKz@Ar8;BeL=-OyfVhw2ufs}%(t1oeMqoB5eD*hf=PJop}?5hop450F& zVhL)YOOI4lRSTw}{Yd!+6ffjHjh>_ChOmZwOUSR1_2y?p86x1&fa8&F@Y>q2@_I$V zy4?+7wWz-%elAq>#wEf;tB(~w2FPp>!B(GFc_C!w5esxVZ)rmqIp2%ga5xOT*lf*Mvfz$gw0H4nIG4<5TZ0px zcc841>9@=OKWC>7l)LlQA@opPOoBfaY&LOli0B58wWdx9l(lcs<%g@LyS?!1ecmXH zgaL`y;?G(O0`C8iB@b!?gyn)~^5AdjQYG-J-EQ93!jQ52x&kv~1cgLLq?okCECvvg zY&tRaCVt6jgL4kzjAvz8!(D>#dmzX53owN@dyya%2YLhu0snb-+y%m%9cROpU40Ls zzV9!ao&Z3YA$*)Glmbz(Y6JS(Gb;=1j|D$(>gSewKy^P*?Zg2uU}R@whtM^6>n<4B z{9`i00W$cWE&NpYUFq%2-oT!L3M^RAWM)2l8A5<<^-BqB@M{%gF#q1_LEb2h0 zT`m&dYeiY}$TSV%U0GS|whP@l%~fDfkA~#0Xu*#)=UsJU&%#ap~|E=?ozWl#yrpz9xRn(~~nTQ_41B{p}@1V#7`;?e?-8 zY}IUke_^XH38$I5$3K~DP8|Bz255+a!#BIt)c3oZ@`~YbBss+Y1!X(j-^tHMH-tfv zjt>2e(;E}Ee2b%14|bON)AidTnl$pE7J#F8!E=>x#CQSxJ2Z~nG|NQT<7oB;VDEPP4Eq><|OD#3i4s8I}FXl)3Y%E%Ij zy%2If(_y=LRR6RII?NFHB~swQN=QI}CSCzOnox{YZ7Cdw(Fx1!dy`?4SXf z+g4Sh0H6s0Fvy|FqBI!3K{9Uxp67AXUTDMV=rS-F76TdqWHCNXI*1&hX4j`!+kXOj zb?u37p0z`JGWRbBM@NgnUMh1x6OzGZ880bhAdxR*mH$jEmXV1;aZ3=tkk-I>ef`0{lI?dx)#f6_mB;*pcH4vw|ich z2DI9rSt7^xl3P;n@fB+4Qw7ZaJR+p(dYd=BQTa9MoVc0JzF{u*-(eTd2bBp`WF{fX zJ*{f=nh_ozJOO4di_`%Mim6R++Kgo%CJOggesU5#4S)H2r;_9GJ#_S!RTdEywOJ|Y zj~Jo>*IO?)7*@AVT)@XF!5jdPkmN0s#Oy4T!`Jz0(TqEm1acTGyxpuIm%MzXbXffO zl&fED`p5wqeBd}n(O$kQT|3J~UDg1K;(+up)TA8mud-c4`FH*+x;ZKMssOB3_x(vk8T^e1~_GpRqcGti%uCov0XCBZBM}qwY6w$RIpWot$PC zgAeI1SY3XP*gv(mSwW3H78XL{1MnM;`X9T2-vnU;p#|m(5g+3$fx>Y6|5&l#f=?B} zFLmeXsIBb1)yJ9L^`3rHXRR}>+MK~E6_>mBjslqXBV!rt2Cz984G7PNQkkcp&Dt@@ zKYDavPe_>fwmImnUfa}0W&O7lpCpE;HkH<&YXzAD7hYL$j^Yq~ev~a0lNP*mKfZk2 z%9cP>X^qK-%+yig0;}Ne^UT*Q_8MiQ`MZ@GMRm&mdM@u4Mk+XfRZ6#~ottE@3IX59 z+YIA5#BZ7JTZiP&3vlY9;^ZuTkA^Uje39i3LcFq#gu7E>j)kJI?kmX6nY|~zy%g@j z^ZK=Z(aS4>VouS#iq|9$yh-Ssl8s4uJNq5nA9PVZP;2C`eogKpsjWYc3 zXHDMkblH#2UdHXlNRC{3#Y~q<-u;R^KP@?Z`>jtnT90{>_uW$)<`9mPP+Q z>9uD7;{lAhW{>uN4@I6m1ImaB{PB*7XJz=W1|yQ?7%`beBJ~6Fl<#gty_fTIlf3TA zGN<0MfA#q@C%;o3)45!2#cPU#It>l?UmYL)+Hw^5%ond}%x1=GkCE>g@)&cnUjKpI z$59_eyZM-_VKnT~9h@t_N&9qI1n!-0a_#ISOWhwA%^Fnr%B3jV=|ZVcbU8KUb@rL5 zvwj!jF&w6Iqve0{$n6T^_f+0V&L=ZoAiaSTv=s*2g^qwZyDu@V8yx?eQT%&0-=j+| z{8%*io8OTa+p+TGcen6VcGfFwlRH;)F&y;gzD^HtSC%ZR+fOreGgV^J#CljQRdz-{ zX@;_e!UuPYFRIn&c)ZBncFgh`UeX&g zwE5`}aT)_;?!zQmP)^8aD#Gr})g6;x;xCTl(zZJyr! zx-%a>Q)QC&$IZ-0*DUxnzqLb3%&`C0Lk3s3vbmXoA5U#Z>$WSIZ@)2*v}F*Ln7+K9 z6=h>$Ble2vqBuk9ico9J_u24UGDK0wlM01J;&lmtMc)7j zcI1$22q@vK%11!tFt1wS9&G@K>)vv!)3Oho--xB`lUEQ0TU(7r}?CJ zvxWsa<=^AQ?3DK~@{;~L$yk+wj~{wsk#{}vD&|Nj-L_>xcP!g8dGH$6U{qkj%G=Pu zuy&;s$&#y9D{%}-QaJ+m8z($Db`Ns|0fn%`u(wU=4I!OE%U^H9Q<;&3SyGW2uZ;`Bfw1YPQzz#TcoR z{{sEDs}h=*s5jENT(^hQ!ztzUohRRVXg^dx6t@tOHR`4EWQ^I%Nz3@lqC6(s=vI@* z5q|TZr28G67)-s&M(xP}vBm+Q8$>6mJKf1A7c@DpQIp(}B%J!j(by zJ;_10s9-#yR=ggeRJ*tD#C@A*TXcU{ckz6({uo3_@3b_QtGugY@Uyv`<3yq%orY5P zSb1%8?7YVV!ts8_w4$~CtBy6NucJ9L83HOxnv;fFf2p$VpO@$2T77b^A=5+5MsAm4 z$Az6)aOVm^f>Z3DtFe}n=}QcPrMj77GcGnpqZ4vZPNWUvwE9_1+gt^oGzf!8D=g7e z%}lMr=gQtrdDoXEO2X9DlXOM&93-)z^ff@*+{K7Vv)UVVfHaDqQ0dDk{!5^N%M5Uq zr6mqX;e$pPLx)CiprQ@p?Lu`1mo^6m~eznl~12)3z(aoEdc(V88;cA z!FJsQVTcJsCPWkh4nGP$Mw{)O$*!&(!{+oX21I3mpHVxy03ZInU{M41>#@`TFkLfmH`Rt zDPW{vgpB4IFyg2jV1ons3;2H?2W^^Yl8XTa)GX*Jq3P!do#fvYHiihS4`gUupX8r5 zOyKp-v>C*r@)g9AG10MkjAipFYx302g34R=4yJ7J>acgHOW@Rw^U2?(KF(d%@gE%y zBTWPz9$uG@#!YzwsnSCoce3$bZk-7K-b=qWn1;FPqruGfYm|S|q=B^g)2!i?5bJ}W zXbX?dFXp4=c|F(a4$b+ieLVzDE|M6ZMsEFwdv$V`ERPi)UIHm>I=_~edBG|LI#_TxpF-A8EuenDeRS>m^~XT)0(2bQ_=I!=S10VN5NHb`M(1H! z1TE0k_^nmAuz)ZF7s1Rcl7z^}W)PW(fo=gVF=SyCg7Fr}!)@^Lb~rD+Pcufk5qLll zUJ5L!Fc-ywn7i7Rk8q%|f;1dhs)V2w1m~ei7%PGD0r;M-32|^}S3z?p7&oCztx#zp zZ2xzo^$4-Lg(kkbRb2jt*{&;&F9M9(seWZ;N=4r?#HMQ^hv0)?`ID|^^U zw{p}RFk2$<(E$60iB01Ne`_LAR>K4Z4$^o)yY?39Dj*fk5-*{!+6YU`m3-Cn+5L zwj1xq?H;!9rX5)oDAp-17VIw53; z0Dtggb>5Z_ZZ#TML!s?hXwt`k0h11&tgI2|rCbaYVTyqUAXTHCFyKYulF$fPsO*Hh zAN2u2ePS^1)ytcOCe#STkvM|n`&_#v)1U< zz!5zFogn%u(Hkmdhf50`Tu|?KONa!#n>fmbg)n6&NC$)Z0@@%q_*Wr`FffS@ep?Ln z{tf3Ego1?T9uVf%OmC2p;T#`;W8$d_YNlSHZCujI{Or$s-a=+i$<5elMPCo3#A}Ls zGV5uKRLpVhYmplx#{tzEXLhh^U+d3elif)!h+>Y)HQ2P-YH6|8k`{b&=sC?Jr5^&n z&Ioz4Q;X$jc6c-fx!^G_w_C}ZkHx>2LT}ty+fetp$$tz@_zi-tQ4YWCp`8W;dex=z z6}v+Bag(v*DI0s&van(TBw{FgLG{U^UH?w|5C>Lz z(e_gZv1Jnb($jT*5A{OtjEJj7BPA3Rd=4q5ZGSj}%%9s@)@#cJx?b|l6df$~xaESs zXJs}lw0ucABs5+!kE(3J^vjat2<4Lv*OFy^sWsN4tC|W$&L3|benlnD=ZZ@V0`G^z z#UJqw&s7#W>aILE4h#RellXe^SB`^s{=YmSE4G1JH~xP;>inxD?C$_|ivI@Y#Nm)I z6a_<>^@Zdhq&>kvbq&V9++Bz$NB^c@-GKt8$e7sn2OyhTAF=7uh5`V*W1vBU?SQZ% zK8Y^l?3I(k%fD&sHMLn;YSt~(ur(Ba|IH4`D;S{Y{k$g_yV51{pkK`faYIljb?uUY zzWxTh8FYqWW_M3OfV^tdeT=6vFY;vx3ITcp5*_rzFtPNVzuYF#1Z)#D^HEZlo;DyjNq!p;1*m@04 zRkV?UjwdDktb$)%&{R=nvL-lE`FN@t#sobzE)GD|`3Ldr?4$v02WT@0c@4jO6_A=V zg=?Un2@Qzk7PBVD(ddTj$E%5C3Ho&9I?Q|%MWrtD74tVsUHNJ8(r;2e>9?~kwEo%B zdPjd;c9&()D=UjG%TG*p-GnqIEu8Tn*Hkq+|8#=ot?@vOVD#3X!#J6KySVKzP9^ts zs^K)&J1LJjOS^9~)pNHiapaA-ZgP<8rKg12@eu?yzqG!2yHe!*n7fwQ;MFtH`u&=0 zrO7+L&z#qJ|FpmSHko^LB`9%`FWQj3MIf|gQqpBmE3PY22`B5&P~Ahar@NYuGLo!p zSpBbQ_S?z+xwm5SR(ky6uXWjDE0#;$pI&GtseGpXC3$kU{A)~GEDNhP`KW(eu)?IH zKxd)DGRCrC&0FQtcKx^0_bJtJ^SZTSIa?(9x!jfKtMYfUVnk+dF@*Bj~~Cw zEHqIU7241M^d*C|0-g=R5hPV*GtU_}cZY7aw{ zS?}ikCbv`iB@S8b1|g23?LAML(979RmD?!4AXEyEqHj3F!^K??9b6z7Nj>C>7!X78k}d zHW-vFz=rfKP|mz#>PS07ngUuiv==Lt1d-)Dk-&y6B%%|;+=WXjQeeOM5P1U#ab%!x~UF;nA@>oH#852!^roeW106T^wkbMB9sp$wiiJQI}0DLDTw(&?gGukgy)nO~2 zq^Ct_m~22j01@sz5VeG%>53ex7O7{@E^Z~CR|5+Ex!VE)Bg$lFX22bR1pxK>ySiv^ zf7$nDr=}fY9B zZ*5a^QEpX0BV8f()t*tR zET+~aDiC_lxv`|WHA+2ul1+d++;yMUhK!7xe71IgV#H-|B}($NZ>yi{LEyHcNNpNs z)t0bIbRrv5=aY{WuJfb|szRNgYX*de;`VAdMcL0r)(PtLXhWvy`6fftt9V0Wh2MUS zaBuowWV>H~vM3(u1M_yMkbx@&HuLX$H7H{XtOCer3?XN4yq@S|LQ#%Ak=A%P^iE&$4|3Q{(#}mTNcQfUrJBj0dB(Jx&{7<%c;xB<-#9*TTjY z0?RQR2}sd`kXJs14F%T|9i6+Ht{Yfz;(dk6N|#YTQK#_GsSfKVj)C793!D?0U57GZJNe!{^Tm zyTV#6d#1?&Zv4q%#~#Uka|ijD`!|`Zhgtaj)tGBi$Cna4gWY!+9gB1)SQK2(GT06J z8a_G*O~srqvotzc#V-?9x}o0Bc5pCvzt8=%U|lXF$L`mk_ca_{ZABWg2@2Jv1S)?7 zANN$d=@8-k4qAV?l(%j6=TfK%vkS)U`F3_rX>JT3wfbXwkk6-C4LE&N%MW!LoE*U) z`sgyf^;Kq9Fx1VN{?8W!I+J=I+Wfi6=FzPvYcndBEoq`7o7G-HJ^mHW_348D?E_|T zVPPHBkFfCc>Y^?ivBrTzZ4ww!0C&1y+YfygWd8z6l`jl_L3vWfaO`=Bast$FNYPV! zUK5gWkUuZq!^p@exNkfw3!j)+NpGj3&xD$ZX}Q{(*>DdXiP2meHV0<8NcDa@h;jD> z-YiI*ftU&gDhJH_ka7d4D|8Np@$UKCa2f=9e9m*%iVBbTd?I{&IX#^(_iN!MdE;?B zeamd5JQ$vO)EMbW56bTVGVMp8m_sfT=&zFKuwg?(tyR{og9p(sUc_*=JUE59A4u$K zZT_3+V&^k_7&-sr5G59|vI@hgNn?etV z9l}S~nb;y^+*df>A8IpS(JadwcD59B7(2NwTDqKF@ZIc0DPW+=jUO|j+q&e;pl?sW zV@*DVl2OxbIg9u@S<_j~*_Hf}4VWerZFO~LnmWksQto7Hx(ajPnh(n}>*p#hpT@~j z-J0BAZR8SCVc++5iQ3weZW}!fJ`-r{@A7z4^^xNI>q9&3qvO7ezuqTl>qX2Qj>r5q@GFy(+Ol)z z96hf~a?LnZ-I9fSwrf<7<;Akyg`!PI8ZrmhpYF<}2dVd#-KLWxv*Z3vU+9LR@!beB zafs|qhl6<&&5Ea7Xek^?2L=YRu&>j-Y&iq*Q30qxAkNd@Ra#N;E|tXCiCXjq)W_&vE(OKh;*=BUrjc-&5JF=Y4me1@OLX844K64v zrqW`~LsDw4HL%*<&z6_Z);;NBP%8i7hIORbUdg%kBZ;?&WTSn0`E!kzny5yJhGs$3 z*O(I*-Ob-C(ga$U^)_+VtQhDkhLpXsv&7YU4h6P*G9y<~O7aJMKxIM1MJQ-FT3)_E6TKYC&n^BZ)xPUF|*+gTANr7HwM| z8l37>9nm7BD&h8mk*n1755rTA72I1(!CZS+;qtd6#&W^{vktK|+DJ9&1Cyy6?2I&C z%;B#d{Og%d>GXj(8FpwiZ+8THo+;mFIRFfHE7LTu*rU@=rl&^p1qikT^$?hJkchZ5 zRtso>+Q*LP4Vy3DVR1%9?828p@t+=~;z`QumCuw$$Z}ZRADi6l`!-uLYB$*NR)oYS2_A>$fKiJCK zCa?qal{zjek0_tT4VN^9=Nwv5Qb8om3P)tH``;HO(orv&XV16<4j#(4bTGT&x9V{B zY~^`g7;Y^SDbB;;d?iDKm3vW~l2<^A+?{4YLPwtI-KDVn;)wsJs3&--j>k zsc3h#i;Fq){3XAgqX-*o8@cF}yJSDse`GYbnmHtXz`5FJj~RBsj~nYcfu31|^uMtn z`p=DczQ~mig%|Lrc|8<$g2~G?IPEC38IHam6h4hQ_kn)?ak6((Z;0vl@a#ISH#C^P z9PKD1Su^TaL>gT><=kg;>Yl}VeGI3s_{QaL+PvJKX6agR+ z-J_-Ye`K9?R8;Nv_CW*`5L8OqA|$071PMh_8Ic-96zT33L`pzKq+4kilx}H|?gr`Z z?st#R_le(n|G>3m4Ks7jxnu8r@9T3>1@~+2VtmU9Z#^&j_VRG{#qxJV(=!u9SLizP zsyWHIGRP#SZu-6VliG6V%=e^H?cPbu7;G;L%-FmEY%lXpleZ>8Uf^Fkuw_Ub| zeuhuhLyAZ@H}8h0h|u`o*FBRYFPQg!2y)H-jq>v8DAf~ZH9BC>M>@=j{@{AVagdnK zY?{3!lhpW>G^jY+;F?D8^N_3_FP$aN$}WXnEK*!? zyCB(EpgidDFmB|1%oq&ukkvUWCu$ry1J&gcb|taMRlzk&q0w()N`8cfs;e)5*U8E1 z9i0ZstMA{^R5P7zshXOOX{(M|s-4=Mv~^xz(NRV~n;}E)#gN|jY^)zX;B@lL4@6_S zI$No=OYj64KKZsGG)nko`8Wne#{Rtjhr&Q`@~60kpP_TLD>ey+P&|NKF8PecE=Yr}!sv>XS$P>p;FQLZcC$F!l0b~`-fx@D zw8z8J^)g&bdlcIy-KcZHWoAvbuPm27`Q4t4$y`t-$cW?>AWwsh z?o(_m65UVnHq`@a?N=Z~>(=#^Q=Nkb0aa|8z@E$`YDMAd-CMF9JVYggf^9A&+Vo;v zp8A}eweK3P5+mb$;|GjHAM9vF2&Pes+J2z9<1=V|e8DG(hLNQvh?|2>l~mIs@OQ^$ zO1}3gugaZlj0c0B?hIX}Wo2;+v~b)Mu(9IE2(kO&@03@cvu?>p>&cjhShD*E&1VXJz0 zIeFpJ9UmpNg6koHA1!I<4gb^((PP^8CVK@z@MX!K8*vvo$$}9lKAB#+I_p{#hIHuo}=S8x(~+r8WaMH z`kAx-bhX;#*y=S!g2|W2dR4mzDVuRHmHa7_Ct%IPX`S59PNdW>ggLYd=1E6*k0>;+}HuS^}cuSaeu9BsH& za{fqZ$o1lP8M&8~b$PA0HJj~=T*&RzW-!bnG?Hs$MiIz&q>NO5#OD1;HG!03{ZaYNWxSP*U znjN?OKZYalF(PMQwSJs&`IzV3de9)a@(WWgP8rkt!lUbKnVj3f2ETj>v3&6jUoK1h zMH&AN2{;6<#(zw3anjP|o2q)A*mb40jjhrQI`4L0^L9JmN>dh%`JL~r zV^1{qSuJUdH-jvHy<%)%I*0eP7dPCrHuAoKQBb_~1L_mX!nsfH!t_*3Lw9oiJoogs z$%fS8ZqeXY#M4^oO$0Z|=nG_V&;$Ekz&IE(cDK*_ck?9#L8F+bt$-s}U({q2>ijs>cY*`5C z5m5!L>8j~7r;IuZ@N%fk-eV6o_!)Q+>%w>GKAZ4=9_?iyT>r@+{x_&$JWFRSVEp~R zzXt0Dr(pX^AgGaOuBz209;+bUj~o=zH_QH z+Vtt)|HB-;`IpV!zrQrPVy%E{!Fe#%s2>}>E<{+0RoHL|Nu%B0If8^@BZx!f`>MmF ztH>xDyY*zaxBa7x*#GfV{qs$FWv=e^8Z?cynnY{}6Uv$uA3bZ)=ObKrvP8V6Xitl) zv^=3|Csb_q+Hd8Bscv{HHkIf(Q;E0U@2=AI{wS$NL$v<>I=&i8@Lr7>&L^u$SiADh zGq_Kh$X1ZmUi{+k8BuS)maiVkUfJO=Z3>d6O6TGG=kMShQXk#6)Cq**9lO0YgHMgh zL6zzc0$Dysia{`2J?iCPW<>elL?gZb`K*$Mgeh4vw5WzNMLYxctWB@9m+EaI_y2Ie z|9;Vh8~&eaU3skpM^Ej$HfXdoqXaikH2+;W(QlXN@TmwTgB(3OUq)y!CiJ1mUhaRL zSpWMlX0O|;86V%2iQ?Jb`oGU3(F#aWl%zdHd%2g(vXd6ZnEg_?)a8>S2_^phq8Dzk zUqF9CNn-p_R3YxRkn)t+Pou1b%m02!AT)Vi_d620XWe^R>l)wtF1yF(zxVZm%3g%A zkVk;umX)YuPtOA2pT#`+;o?>fJ`uuN8-7GqAo{y|bf` zI^`!8oN8pZ3O9?rMOQeC<&o%lSgAnke=hyuH$>7q-m9qpGt8d;xh3xSBTsTB$Ck2A z{EpV+4Pv`hEyjqn z?jH zZGy>Lm+D@Ae@>XAd-3~~%hdN?y0ESY-R=;+@#axfL6V9*OG|oPN51X*tfIZ50FKa* zQ0I5OM}1t@bykFH!VhNsxE*5HM~W3~6l7IMS#P{KFLVA0O8vf&y-~ZUD^7PJ68FAk z53gdO*Qo62?|xI`fjm?4J3c`lV?HUmJ!Ov-VMM0jDs zF9_#UZ$1AOmw4#z7lxQf>xTS(NXK~J;z;#AJD#%=;2!+pj=xoqb!(yHN>@4@fgc+0Qs$e;M9l_L418yyiPG|Hg$RyF_TQn`!{wh% zCBT^vJtPBG2A4u+TV76;Azo4oJ#6he1{F;hv}7ErX6U!E)T) z*#u1fZk__|Vm*qjK@hJOx`#xC&GqXQE$>!j##CJP$jf{wrgex_*%sc=w1R8-bj6%uT)ld3bRf0_UM zQo)sLG;*pL4%sEijKPEyio@?>(nV%r{3f#=zC($}R4v5#Gzo?%xVgEd?JX2TIkhUG z>Mfst^3?APhouC@2L@U@-^u4bpIiu;YkyvqiT!m|R1T>@b`a#E$T_37i77exg-}6}X$LF&|86sy*qFZa-6(;5vM_)+jA*5GL9|IZR`}P~c#MAWyPtz&_g{OX%6|tR zlb?*i8Xz%te$LPD0mrmbAV{@?wOy2VPCiZ$XAFS7@ z8H}%Y$yL7l=We}C6=rX&J)vu&a$JwFq&{?|Qm0UN%Ub8X$tCnDCAs_;cYiQ@{%E+8 z&h%0W!$C|@u<YyZ$@{)b9dB`Csp|%)=;|MXmDV?R*6Ht+#CaLT7&!L-q4 zoU*~uOy-y^xxv3#_sg8c)CASvs=zVQyp&XLZO}c&4E{!NRBB-{YBpB1_9~k~G_iWB ze0$~mYQ>D(r>85aKfa23fKaLf96M`UGej)5Z@4Do!K$!l&@o^5XPl`x^4fE zC(Gqwxe-AV2U1~b{>#aT)n54kP0FRfi9W5*kB2Iz-DnFFmIBXa6;4kEhQCq^yzAGr zR>~ZnnrNhZSa#fRdF(1v_vo}p@B5Hj7qLz$juE*Mnv;cmrlx>@}DH-5)$MTXH zlhC)*2(10j95-si{#ev*tKT_Sk&qcBL?l~~lw5P?<2$pLDo*(wHZixB?6{BXINu$X zme*fhmuaJU_QRS}r)>MiLfUHr?c5&=(EoM6AwtOQYRH_cR)Qr?U~#~xcy|3nV^-~j z=KGu@TPToh7Mr`h5f#n7I&~-ReK&>6$!3GR_Tek<1}lNwqScSW>U#?!R>oCpSAzSS zt3ri~X3}tt|04hWwGyecF1k#PB^6)eIb^px$-{X~`elx()!RxQo}}(k%PZEQ;*PZn zdXQfrn%6r*S4Cd1K0FxD28-bmFXgM+9$w=`Pd8 zZZEkIi_`TCWb%F9smaX;;{t!?op0qql( zm3G?~d%Cp84GuLYaR-yOd`dc68J~8&mly2Dj{1GjMah4@OR9{mkmcFnCh8gAjO^xS z`s})*d#aJ3T;P7h*X)ZW+13_=d|lRx2fgi6JJ;k!jx_Hd_tQ`{exKWSPcWM7s7^;Nk|R4JG~|6KkCO9JmyVK2)7hc+yc>8;G$tCVyK4_rtjCT@gdnHV66Xv2J#r+KK;?0$4F zPtShVD%8HyaN=Bm`r_J}KtFt`E|VE=!cs*lKZr3CNg|O@mC8WsBkB{KN6I( z7U$=D_mfipiAYr6l-;5G$1~VPuIC|dCtT9IV1Dh9lnW20gai`_b(^txj6{9slb6(T zHD!d(98$IA)U@JYZkX;vgzld3tjA9b4IO*IwTjJ~<-)u7@91~8 zAG#VlY_{?boNO6cS^qktoG($_ED<#kDvD&$*k)CW3&icqai1WoWW3l$N^({Hfz7oW zmJ+fJPdo9S7Eol3o}jqO*Io$6>371`Tx&O9@^k|wJ} ziHwQ0>li0(q?FkuF>w1rWOd{i&PI|c7i>QKd7^!^d4Os)+0CK*@$j&9`+D84wS)Pr z;D=**;~lpjAd$4(;%5n3en-%lFvX>;S>8F5rG9u~@}hd`ktsPXb@Noecq97fix-uH zTbJ|gHf@DNNE}44xf#>xSXRSMzxzHJK91wb9n9ROvZfj@=c0(BFRHa09oDK#Z=bW8 ziwgd+9ydO@u6K@}g)O9C?C5PAl0|3o6#DsC!MHL_0FiDDT(ZZ zXLon*-)b%^(2xI2a4*W3LvJQsnl*M?)LvV(YydW9Pq~1@i^uDmDK1<~#FX|XL5bJW zkc70d$icw2L@KuP)2}DT^sf8SYID2`7CRz052V)7@1ngf!W7wn8>D}7EWPctE(5XY zaRtM@q3k4T!SccuyENS6$}k0nP&fNgW&N&Gt+4$0`s%&cIW~1J*{&}Hb~I}BAi)`C zouQq|QcC_1voL<6Bt5ZX<4eZDX)lqS!Vvjm<%7io_s&Fj^2$}+;D(x2Zz@aY<_e|F zXu@4q4RZt1vP32xlm7SaE}|c8$60^xB5V8=hOo{LR~MJmVCYwfcozrgcP{($xt(bl zMZW9)ZRGmTLJ6sPPgCv5HtIDcv)+sRXGJy!=1<$=+D%8zxm`|*a%9RJ`|(Xq4CyP` z5BxNBoWoCPejz6^oNe!4T=m7__2~p^97L6&n;w{cNx2Gl)74{exx}=XQl2Y82P3y|jk}I8HI#qnBEBRgA2+ zo?GdRPWOtgn>NeQfMMV5Y}VXS^I`H3*O39Eqr)u9jlu0;3fIw-v+*%kSy@DuEA?5d z;lhpbjvMEd4RKVRlrO7%^>a}1w_r7GoP-msl~5*uZwyY|b#p&p6zMz%E;HuPUkGrIP1e z9bT1q-tPCO*4t%BG2d$CWufjTjB8OHHVBG4%6MvaD$>yq3Vd1dw=l}iQRPepU9e=0Jo(`Q#V2W6yPVokZ66g0VS^Pa8%G#P4%4C@e zV)QOlFKmmbsv!_+Gev!O*nOT@YsN-O@79&%uSh6Q-EH0S-!zR@5Y?Qy#^G+7U~@60 zyDlQm?e*#?x50P@chcNhfVONUiYq5OEt9w@a_&5D;LrAq#nxM;xgR8*%_7b=1FRZZ zA0+BckvSX~3STd}-YO?I8zHB2Cc1IWTfI0k`{LyuR!=HanZ#CE*Lw!9S)y-v0@^}E z9)Rxudw%Q$ou1wx_v4)?n-vt(#k4W&%_n@C6qu+NC51^)AGv~>H_T5;XC_p@ttzph zDa)|+PtU*O#>Pp(dOqLxovSQwYcBb~K-fB!8V{t}38&tef4gERswidNiKJfq!TG=G|3l=Z_iLryG-$BOutD?2Ym)W>M*@hqBa zV?XD)c5kkm|KBT{TuVS=?+F5+)#kj9gu*ROs_q^ygl*_8~`+#CDoj#AAdX z#_f_;y4@6|c>S^9_m~M+=ft8SFER?#tD=(avBkfY`;9^sl;;u8lH)Sp3gX8bl?2-y z%9ZyxE0!^mmd~FNGia0U{q7q0B%@YU-sfCoBNgkPc;xb?tGcE}nE=ng;c}H3$IZ%| zoL`(%&f|?;Icj(0JI1WbxfD}EmfxHF;Qk@F*L>0K(15s|FIHknEXHwrbz|Gqy?nM$ zp`ksl#;o*i`L^*dU3-iDy^zp~*yzv6#jnfinyX*6M)ukm*2PJ;#>tX~)syM|d!u*W zfGlx;V+xdn7N^IKf3-V7dmow)%gQTo_Jjk05ClUyF#h?Pocvf>`8V||~6 z_GJ7X)A$hZMAl+0E7!*%tDBgX1rO&*tK{pt%oN!Q|MY|uJMCQrhc(^IWGIcSkGE0w z=cn4t1&Qf3s{`*=d>6=N54+4Qi;d3a=B$d?LhBo9?&T{(QF4kpgX>(+jxg(HvXhvctiX}zfBS}SB|%to z9W*93q5JWmi5nV&NQ3Y%T!@FxqY;;_R-mF?HD4Ptyr>-kt%5lqECcFVbFnq)>qlZ@ zVjzQxuw;t7dv=O%8Dm`>TxdN}rML;m}m-BM|vJnf(;3 zMuXHH+!cJ@=g-F*h@{>_AWWnYY9m->JSz{YDP`xiBO9XG$<@;+j<*l^-VqhW46=|p zi1cebQ#RM264Yk5%4J>)(D|SlfAT@kOY-FV9PKx6pL0MIpP zAPE5#-+PEpRVjzCo@G51J6h%jw5F1Y2`h-2>L)CE4kPW>##+Hu^%1x}sh2reeoGL& zCn14}wo3;w2imY(x-gMqM3$M*D@)wSC_2@r4IafURG=^n6Iz9bs zwA{;y`&$p1Tc&56U#khH{M7Fr8=Ak#+}MQL<|S3;6&sDeM)0i6$nGwiho|S~jz0~j z=!I=^tsZEqzrBclIBZOEjhh2B7}|=7fdz|Jr3BPTf^GzquX>={12i@f0`U;sYpdU0 zMC*P52o(*dk>pkB>A%npt02y5o<@QL7Mk0FX0n2k3FzDC4r9Pz0l+gC9Iv7k87U|z zL{9go&{`+Zzk=9ObBZ@KRjta^Bdp>Je=$X<+8FWyPEsOEHg|*(85y&G1uQuXT0PMt z{Y}gwDh7py=BRTHC9{J`w2U|IM4)1I>?Eq4Ju>s;#bUO^Ry6WwSC{Ia3iiF=>(59x zmvx&_5@Pywb}HLE`?*=VBI_`PQ6#|@>jC!X!|fXKf956=h$R9*wvq!aaeI5<@lg$e zv;}Cc{k8?tOF`)BLhBpRkK3#eeIeNuhen_?RRDUgEh;T1=L3iVsIO_&c3W&S2jTHc4 z1<0t9`_6z(7CV?G2FRWk{Kd`Nx8DNh)CwrY;CL^D0at%bz~VZ{qr38x#WU1M_bSNf z2pCqXbdgpvG?_BONh;0(1lT$A4(;D42%J7So9Y%O#%D2}(iL_}x%=!yHpD(0RF51_ z>U@6v?oXxeXhFSX?jmE6JyD@RZt-I|GsW!W1E;Ulg3TuZ`s)*V0n9YS^HUj1YjLPJ zBAI47rNC#lP!YfazqdAK(&6J)jFd2YQr&vcsdp2>N3*)(=h7a@sM1UIMf(5uAi? zU%!5@J0C4xO^I{Ey9cOVkj35ricj@-0N_H?D;`loU{KI3EPA@YcR~vyfi8&_pTQ!c z0Qg3p%7(5*gazHub?T79-2%?yJL+FGi7#Fu%<5A1WppgxoloEuRP(yK(`VCE{z8U(B97R$q8C{4JaW!5Hy3G z_J=!9lF>vCN0&g5z;VNb!T>@e3&9EvAui}D@nBBQ4tz(8!0+9|fQ4!bW+7{LGZZhj zpxrnmCZ-h>qVgcfhwm^8On?j(*+3`K5g%;6TI%@>N2FVFD94`Z3zy??p=Y6Usx(3bsiSc$>VEL3lotDA>auK$Dp=hoEGdtH|}&SSe( z4D&3Vx<2y)%hS23XYH>)#zpC5_|)k$e*Jzlujr)p)RJrTW+FC&I7i1m#v=(CLS`IF zpMo@RL|+gen}#kAC2x$RnY{p5%T#G-yy2<%=e&0tBvV4@%ft{rJLZNPfU;`?xn2a< zD?AL)RiJgOS>3$;FMv`8pyqQ->}J}&J|{Q zq&p$Cv)2Z+SGMxDM>&L1`Vxk2A44-kAZ2hoaI{8j+3}X}-y4>pQNMdiVdwtiqo}yq zTqp-}rsQE^SDCf32`8W(CTF|XS>Ljd~rub9!PKiR1Vr|#fY^da7yP7#Q+um zQfDOd6O^a3M|fM9pIthrWp^9qk4v{_OS$^p zR9ivHwheB<ZF`FFdPwJ6R3)oM#^H68*9r zE@Mz!`nD}L){XB&&enq_d=;9T^nIT4qsAGgSxHfPyFUzK!)&>{d7b-us_}T-HW7E{ zMZ(qp&RzCPOV3V^fC6wGTIfLnp|d=5Y|5(sSgUaXkjZcdn#)&hgapC05Vo_V)YM7I zCg?pPq!oD}CwJgEgqDVY5FaB4q}rQXTcSu}RqD)?l$2bcRPM!T<{Q<4R$~xQ9~Bku zHlBjcyR2(vTZ+X8;3__1QF93cA_E_Yf>cYBfAy69J`IX8t8GwnE{$%fn-gE5qd^eW_$|(K>Fs`QfVT!5wYm zbo|y^dg}p9?(q+7GY6l}wxEtN&?aAhMFCn)U^4+`FAM?#*8;w6N{U6b)`Kc(pxBzR z^6XUD+uIv~hwf)mE*u7#IgWnB=AAz ztn^OHFu~K1t^>B~n>TNc7_)qLIoQNo_B##~iD|9k8*!l=z4NCfyC01< zM6mvTOp|NVpx;N!k^r9$fC|mk9boKQz|8Ij7ClJnq+r?d3k;+OOdTc`js@7Ka!qx2 zb)oH9K>~-4=Fv1VV&eNiRAkPq#u)(45x9s<{Agys1)b?YB1Cue14rfo(A-as_U0f6 zByH2Ka1lg{wQt_^EGiNJGbS_*5gypfm!HMoTfj$dFZKoic^RSsBJ?H)&_x*jt9Q$@ zUE!;(vYG;U>J`!%VnCpeUj=pzT6PP{-cPVUS+|Qez&Oa!$kK9N$p=;u4gvvJP}klb z405>6Li2Gh@e~+|C6(FiMbM5f{M6V|cNMe<%+$H2!+d-F0LPe#G|tBKAD$an+2x8+ zfs2qeGczkT2BqdtSA$KMpBY+D5R2LtbXTt_Y{k;pAW-BaB%3RqGX&vW>Gh_zh#zwq^aRcY_ZF~1R_~%nqWiSbNh3`M>?43p$KS<3*1kK)kJTCjxd^W;RLBGrE zNk*0w%GVsreYN=eVFSeC1#ivD4=vA(gG0=l)9hSqHKYo@H6cuGTX%N1vNv~FqU`B2 z^D9F7bGvfG9mfguGsAeDAEa#h(O@UMv57L%~{jd+~i;;)&q}V?}mz zMR#wG-OMhL!nf&`#1C%%n|z9A^!@^!u>h#Vu(7dUA%z{*uLGqG2`mT6OqI+6VGAwf5MfBszSfr%9kbTarb8yytTlvZ=;+M@-Z z%tR{2ohDfnY)8ro1H?DN80#3Kpj9&Av(vrGQIv3uqCL@B7ifD&eb&LLw%`{p;v3XO zF`lf_C_VqMo37&_V$3c)cKoSrL-b%zSSciA&Cz4cVsOyL0;{m4D6A+})Nvzr@VLN@ z-_S2@np9OgjlhY>0&%xLr$JPRPtb@*2|vrPBwOxPV_vdR?C$Vj+&u4#3yk(OJ-tSZ zdA9dU3RYBBiag(oTn&!aKgjE!x4KV_Cqyqe5;-!{J) z^MQESuWH=bq`lGm11=6;*~Zb2#H;eYS^HA;Ma7ODZuM0nf6phEM~m4!?zUYmHN1P8 zFf=@aaXU_KI-xVxa_24#PRKYmPlLXy4``3z}j|O*u+z~=|c#>!$8rTS+ zy`4cd3xOn6ILuT`O!w$J`{1Wx2|nKMWp1H~Xpq51!?^%J63ogrWH8V^C0x4hhG;); zNdKX+QsvpRMnFA}igp4+&H+eLBYH84DW&`_u;id=@t})-`T8}`MrhH-K3sLJ5WRu2 z779N1ApA#fI55=EKEuF1q2x31?KNT}77McjycHU+Vmed8C})08O7^Ui;swMptLb}? zr4{p&u2vkGp>tBuy$u2k7y}xiMr`}FG0^rPK)dG#Eq+<~8IuTt#2W;|R(qKbUc5*= zTKd%bMf}mDN7nAzR-*tNf>JhxkPQDLK zBk?9QcOm8AbRDx`d8BSaTRddP`DR}aD<0mj-3V*JeD8@EO`BUk?&EWP>Pn~6dh?lh z&SBw=VCJC-4KdxdhOB;q`u2>;OVY*?WaFoKe*NP6AM~C*d<-4|*BTy5NvKloehkw- z<^0Ry3_W6d%DV*H0nsD?VYo7NTU!KoO3MHc7dpU`bT4jeb8{c+I2dU9YY{LaMo`jH zQtOaocBLa&@bK}~fqMnCCl>oNP;qyH&kL8k8_2*70k8(9J+RFb>%bVeC0bsDF9lu% z054nZM+Y0g9eXxA1W}2#nnUG!H9nLsdQUXM*tH#i8&wQWN055qqV?#&;AP>igq`U9 zHBL!2@MC3J7)CMS0aAaag6J~YQ_EQd7erPAqgKhx@JnDye29tBo+*ls78la~Y;x^b zeIbP%x~<0D&qN_#u4--$K(ENoFOq&(U-tA0&@2br-SnR3-(xTDZfz5X6t7k8g+ypn z1c#&mApMR&#DmQysUVYqX3AWOkh-@`FX|VpJn^Ze?Mw=8Mz{UabWTkbSm`Z1Rqp7| z98<2D*6!?lgG3-qBTB{+Pw|zdmu&Q^7qtQK=VxE z&q!GrNxb4FifM+gAtAAWN&e%Gww_VaTw6i7B3e3wN7FCWo75|#289VXoC2itmPh?? z&FCatN>|Sx$sioF-nN8{h`qWw7yR_ZKv~*_a-Tc(QC;xGP_ionpZDDf^=CrNom}RB z#X%Ux^{Kn@SxCM4__BWf_|Y?$^1I>k*IH!=7_it&iBoF)l5%_jkm`?TiWqC3>Dblf zy7r!+$o2YbduoRMbdCq@O$D1<xH5#6 z^{{ScI!3n3F{yN8efj4=Tcr;ok`Wy+lNjv{0{&y1a8Y1Dz!V^(XX^6|Iz7Qj3L@V= zJg*~vDQW3WphUo6nju_F5YXD)+^p8m-2hrrH&`%0bu_rL(%rlN&M03BIy&j=2N1VfWhz8=PqJG-pit)C zd(3II;QoNJQb44IRf+!WV6S;*(=5B}V$VicTCtwPlhXb0P4`6v9hvqG#5WUcH+ljg zVMNq6-N|7k)zYQYd}_svDa&)Fg-oo4h#JsOJl_Z*1gJ|`^EctIsCBV?JNmyjILV)MSx;b2 z!4t@`b6MEs4;DLQf**r#dS@>2rnanPkBZkEot?P>D*@^3BWT7rJM6DS6Rgnn7ckX> z$($%J?IbDbd9(yXb2UfttflUB8|P>MiP~GxL2&^BUD&M9c2a062)qVeb>Rja7Meba z-XDP``cOsX3ffN?9GSo<&!U;F5cuip1tt+kY1k><3xrLN%<)vezPzM-Tv`U^2EPIg z2XYchD^H=&(F8ytz$QXWgf-*br`Bi1NKcQ=r0?yqhY0J1SSA^>>adzpzY5C z0x~vBz76;Hcz5-lMDd#^gTLs#jdmySRYE%#>&s+Q$i-iQ#{Z_b*3*g=XN zl8CBP3hW=n;Mc!&W{nKAVe8iOv~A?jKrza zRk-D7*rgXa`@YhQx_qq^8+DfNT|95&#-l&J!Nl2bmu~qeU5JtXpVM%uEWC>sF|Uh@ zSGFX44ZTBC-yY8C1v$Cu;dsA}yEcn4&ou&A3_^iX4<+dqKzWU%d)rE#>Y=cs^Hk_SDD>XR^bmQd}mjlI(d3}g8w6$Xy*cuq!GJeQxHL+ zDJR5AA`)=w0}hO6s67Nr-y#2kLynPtjY6{+2&L}3v2=qcm3{BYVs8cu>-oyvA>-!b zVmSW+Knf0%*wpjEAFo#X;c2N)gj_{$t2)jA)InsYF^4%kMwC}sdWE05D_!Z#TO1p= zRp3O>Ws?{F>Wr<35Gk??wecPu>NDgDFS<;>NB)9X5?qV$%U7v>o%D}?GmN$Rh^40^ zPG{z{PRB#oSAn(P8N$)EP#_jAPkuH*BRxmV#^4oUk96{@SIaA!=70Bh-Q$7^_qUoM zV4jv#oyjSXGE%R)}` z8R{o!SS%V?$(2yvs;}4diT>V(BL+~)QmquA3k4G2a~2T#LS(CL)&ib$TFK=Kz_dX# zYyn!F08eRE&dCG)1~aq3#0Rq5OofhZ)I~(L+Fr|}#1FSid#KQa){WJDro?5}a$F0T^3=fgnbxZC^M&tx!_Oii^^b*Iam_%HW9bj-$x zb`DiTp*_N=g=|ts!eI;j@cHw35;_shF5y$4Ik8(8nHsu_{ZvIoM@Ms!&d>vAK+eE` z>0X4LC?p})_9SS|lc4)409fow%jHYMy2#ixz_#;2zE7Ex5oCw=EW@>}8jVezz%F1! z;;`}KEl?fzwiQFkZ!}^K3`daJ0p5j${E%cY@!Opc|`k50HI8Kg^j-3;IW0}scE;4wXc8J1) z8Mu}i-%x&k9e+K;O_C;UA$gQW)J$)&S*h!8fuHKwKiS#NPX+!_DS3JMZ)c&~IUHFw zb*@rU=b<1=pse*~G~qt(OFg^j_Ve1CI-|J>0&|>C{Ij{gX^1e^b=9Q!O~`> zagkS6O0$*hZdSOQ^-{`+a(nAMHMue6QjcAX>NL2WCt;C4Ws_fo+rn$|?L~*R9%

    d8{_h|o@jXyLn05AU8>5XHA(?>FKVZ}jRJywt`)_w)nnF5(HY0&!V*rxn z8ug}IiH?X0&i4^R&;lzM9C~T%lDb35-2sX=%`WEfxFGl4fRhdI{XpYuMJvXEkB2tR z%_8Gr2Q(z3FJHQmAM*16*b?5^oz{y1N7*^-#)&QecE8>f&^2nLn`tK?r7@fQ8 zcDzq%{`>eFRQcC`zRPr9(5oohVu_8(_jtSF)7aLM9irUR-X8XoVM2?4S3j24(mj8Q z6d|$2MRJ$Ycz{`U?lxQKseY2QS_65OZe^?;6V5jW=XgGGEN}qJNme0nwPEEr-Fhhh zZjr7ottIOg&L>Ac@2_z|daaFV8xpyQiw3`yl8lGAjQesVsIEdY#d#_0?)62F z{s4?@NI*x&@c~y1CY-F`i37zeu)Ony@eJi$h(ov>)_+^Y@PPvX`cMy!k0+CY#U^1v zgK7ye1qHw=6?}t(QF&`lfPXcBcSDFjZY{A}`SpmSycQ~`76R00eT5wM1w4K1^ZSM21Ov_A zf;tM8f5ss>yH={90;x(5zWS{5o3x^5x%QXv$6TVG2orvc`YeG&R;v}W7Lidhik97 z1I^mwL!&aKPWQX%IK>a4(TXb4;_gHd@(iAd_lsXVw;ywJB2%c*SgLqx$jokcRuMxk zcIcr~F(}=)Kw_1fIk0lruTlMilla;d$(pt-$KO?!BZEtJ1n)}5bB_*x3Y~6ko>?yX z=rlcSi|^3S2wkEiz;QV_Sr0b2XOr@jpyUEZrSU zix9AVx8k4poBX%ZgXRZAm*(pW`qgw>3!Fs8UvhDp)Qh^@-67T9`?vF=D4antx)E?* zI3#no(d;=mqqu&%HkXhLs$zgK3V|@|V^kDAiFu<7R4n$7j+QjKAx3rpf7(%ZS};}x z{C0}Ut@cf2XhVXSw-M}xA3S=56%U|yG%p%TwA#kZD;zWHaR~e|v9SWrNzQjC@K=nzL1+~lX$G6<9(C$q zu5(7N7m)06a}>)O-VnpQ_8xBxNp_fDsrZB{lrGq0&c#fK9YN2{A0?SWtQwkG?V?I5 zFN1|iW`3_K_1Xrfb7z_g>&lBskqX)4w+YKms80&Ma#DN&vz2F~??P^px$Rt}svMCT z`p8Y9KmAzsd5sxM^@Por!48m5CUyFDKL5G=sw(9T$0ZG!PHO`l{UEmwjqwbTeevGS zGcViyV#+pp$(M)o0$Qg0NM6o94%bvJkkdq1mS|nOghL`-_55!9H4=G!ZloLXnJ1QS zQRW?2+`U)TJNFH*SUSdJ6*E6nPjPVTJu*46!l$T=yS3*+w(CM=mx7g2qn;f(YQRHQ zNhf{h)Y*Vjck}yinrS7AEvBKJ<=XjE{;nib`{Qyi_D1LZ(?&Anp#_C3-x~eWvZH^d zx4^QUmLfSjf^CZy`o*r1up-HhtIzo@_xOL;Gkc{q{_(2@@qFKRjtIlpxDGR}h@zRn zQuSSfl^svwf4X{#lvNQkgRkRW0bzQT8hs=L6$0yF)51p`Yg224{RU~{al z?ag<3wTm6Shq@|dR$A>iLlK8UowQsZMNsT%OcI6P*O#wUcY=~2_kBD5t&fU@T!E|${$m;xO&PYx)KIoN%0t1JuHi>ZJDB05NInDU%7E- zMue{vtF%T!0x33DF%~W_b9~}jT=t4UTaWz~dosS*7x7c2Y1R50CAN!?WUNXW_CEjq z%a{ed6S-rfdl@Q@R&U)(S|0ogsM|yc=cHt1!O~Y6+84kIbrO)}ukaYk%gWFl5lW&v zs#!ae<9UX}0DZIFOX27QL>D-e+yk4t)6>)2^z@dHW5GF?S~81Qr@=HNHt4|c*{RxH zZK~5RRpqIbha=*jV?y&!(xj63S_dkPaW5TLFBu>t9aiP*bxV+gVcTDMg6E*w`dxd8 z&o`n+8PtD=Jd!=;U>ngACmsh&j0&`Ac2a}0J%ou7!uHw8UIwC}adGX{-uRAS0o>Tu zw(Ed|=q6m;T?|eTGk16&UMx;k+g|>92M1gFpgE?7b@7f@m2cavq<;!=Hx@)Qu(FD6QChWUta}1C%2L;tP zG|YKsNqai0RL(of)TTb?X_VF0q9h^d*qHXU;r(ZB*6Kt6)*sRka%YNHaFfBj)kbBN zEz3$uG)Z)whY3$6>HOYgSA6_@)5^d1rFPu+{9Ynbg@gvt;O{9x%YG&7LS6h;oVIA( zf5jsl4=p$rNwpJFB$!w0z9khQf`S}N+U)-+%e=k3^AY_%oRop&&KD(nd=syA*bA9v zas1_5{UNJ-Q ztHtjNqOK~;Pll&9s2PivhxSd;>h|tzYFdY61INehiooO?e#VM#`P6d{9t9 zgmC1FuD(yHihA=N+Ws#1H*fQkv)=RW(gaT?ZW= ky9J78w89Hsfk#Qd>ziKpu{^u2Cd>c?p00i_>zopr0K + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + r + + + + + + + + + fasta + + + + + + GFF + + + + + + fastq + + + + + + HTML + Pre-processing + Genome alignment + + + + + + + + + Cutadapt + FastQC + FastQC + + IGV + phantompeakqualtools + MultiQC + STAR + BWA + Peak calling & ChIP QC + + + + + + BAM + + + + + + BAI + + + + + + bigWig + + + + + + + + + + + + + + + + + Bowtie2 + Chromap + + + + + + + + + + + + + + + + + + + + Picard¹ + Filtering² + + + + + + + + + + + + + + + + + + Picard + Preseq + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Alignment QC + + Deeptools + BedgraphtoBigWig + Preseq + + + + + + + + + + + + + IP enrichment analysis + + + + + + + + + + + + + + + + + + + + MACS2 + Homer + Bedtools + FeatureCounts + R+DESeq2 + + + + + + + + + + + + + + + XML + + + + + + + + tab + + + 1. + 2. Picard Mark duplicatesMerge alignments from multiple libraries of the same sample SAMtoolsBEDtoolsBAMtools (paired-ends only)Pysam (paired-ends only) + + License: + + + + + + + + + + + + + + + + + + + From 860a044201ba3dc14e0ee672801ae25b26cb9783 Mon Sep 17 00:00:00 2001 From: Sarah Guinchard Date: Thu, 5 Jan 2023 16:52:31 +0100 Subject: [PATCH 015/201] Added name in credits --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 41153384..c4ce42cd 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?labelColor=000000&logo=Amazon%20AWS)](https://nf-co.re/chipseq/results)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.3240506-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.3240506) -[![Nextflow](https://img.shields.io/badge/nextflow%20DSL2-%E2%89%A522.10.1-23aa62.svg)](https://www.nextflow.io/) +[![Nextflow](https://img.shields.io/badge/nextflow%20DSL2-%E2%89%A521.10.3-23aa62.svg)](https://www.nextflow.io/) [![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/) [![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/) [![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/) @@ -64,7 +64,7 @@ You can find numerous talks on the [nf-core events page](https://nf-co.re/events ## Quick Start -1. Install [`Nextflow`](https://www.nextflow.io/docs/latest/getstarted.html#installation) (`>=22.10.1`) +1. Install [`Nextflow`](https://www.nextflow.io/docs/latest/getstarted.html#installation) (`>=21.10.3`) 2. Install any of [`Docker`](https://docs.docker.com/engine/installation/), [`Singularity`](https://www.sylabs.io/guides/3.0/user-guide/) (you can follow [this tutorial](https://singularity-tutorial.github.io/01-installation/)), [`Podman`](https://podman.io/), [`Shifter`](https://nersc.gitlab.io/development/shifter/how-to-use/) or [`Charliecloud`](https://hpc.github.io/charliecloud/) for full pipeline reproducibility _(you can use [`Conda`](https://conda.io/miniconda.html) both to install Nextflow itself and also to manage software within pipelines. Please only use it within pipelines as a last resort; see [docs](https://nf-co.re/usage/configuration#basic-configuration-profiles))_. @@ -97,6 +97,8 @@ The nf-core/chipseq pipeline comes with documentation about the pipeline: [usage These scripts were originally written by Chuan Wang ([@chuan-wang](https://github.com/chuan-wang)) and Phil Ewels ([@ewels](https://github.com/ewels)) for use at the [National Genomics Infrastructure](https://portal.scilifelab.se/genomics/) at [SciLifeLab](http://www.scilifelab.se/) in Stockholm, Sweden. The pipeline was re-implemented by Harshil Patel ([@drpatelh](https://github.com/drpatelh)) from [Seqera Labs, Spain](https://seqera.io/) and converted to Nextflow DSL2 by Jose Espinosa-Carrasco ([@JoseEspinosa](https://github.com/JoseEspinosa)) from [The Comparative Bioinformatics Group](https://www.crg.eu/en/cedric_notredame) at [The Centre for Genomic Regulation, Spain](https://www.crg.eu/). +The pipeline workflow diagram was designe by Sarah Guinchard ([@G-Sarah](https://github.com/G-Sarah)). + Many thanks to others who have helped out and contributed along the way too, including (but not limited to): [@apeltzer](https://github.com/apeltzer), [@bc2zb](https://github.com/bc2zb), [@crickbabs](https://github.com/crickbabs), [@drejom](https://github.com/drejom), [@houghtos](https://github.com/houghtos), [@KevinMenden](https://github.com/KevinMenden), [@mashehu](https://github.com/mashehu), [@pditommaso](https://github.com/pditommaso), [@Rotholandus](https://github.com/Rotholandus), [@sofiahaglund](https://github.com/sofiahaglund), [@tiagochst](https://github.com/tiagochst) and [@winni2k](https://github.com/winni2k). ## Contributions and Support From 9bc62ef78076b40bfaf8f8aade083163906cd606 Mon Sep 17 00:00:00 2001 From: Sarah Guinchard Date: Thu, 5 Jan 2023 16:52:46 +0100 Subject: [PATCH 016/201] Updated changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8b41ec17..491f4296 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Enhancements & fixes - Updated pipeline template to [nf-core/tools 2.7.2](https://github.com/nf-core/tools/releases/tag/2.7.2) +- [[#317](https://github.com/nf-core/chipseq/issues/317)] Added metro map ## [[2.0.0](https://github.com/nf-core/chipseq/releases/tag/2.0.0)] - 2022-10-03 From 183b641799adbf546d14763cd5f3f0d47faa2a0f Mon Sep 17 00:00:00 2001 From: Sarah Guinchard <99276764+G-Sarah@users.noreply.github.com> Date: Thu, 5 Jan 2023 17:14:33 +0100 Subject: [PATCH 017/201] corrected nextflow versions --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c4ce42cd..232ef8b8 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?labelColor=000000&logo=Amazon%20AWS)](https://nf-co.re/chipseq/results)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.3240506-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.3240506) -[![Nextflow](https://img.shields.io/badge/nextflow%20DSL2-%E2%89%A521.10.3-23aa62.svg)](https://www.nextflow.io/) +[![Nextflow](https://img.shields.io/badge/nextflow%20DSL2-%E2%89%A522.10.1-23aa62.svg)](https://www.nextflow.io/) [![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/) [![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/) [![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/) @@ -64,7 +64,7 @@ You can find numerous talks on the [nf-core events page](https://nf-co.re/events ## Quick Start -1. Install [`Nextflow`](https://www.nextflow.io/docs/latest/getstarted.html#installation) (`>=21.10.3`) +1. Install [`Nextflow`](https://www.nextflow.io/docs/latest/getstarted.html#installation) (`>=22.10.1`) 2. Install any of [`Docker`](https://docs.docker.com/engine/installation/), [`Singularity`](https://www.sylabs.io/guides/3.0/user-guide/) (you can follow [this tutorial](https://singularity-tutorial.github.io/01-installation/)), [`Podman`](https://podman.io/), [`Shifter`](https://nersc.gitlab.io/development/shifter/how-to-use/) or [`Charliecloud`](https://hpc.github.io/charliecloud/) for full pipeline reproducibility _(you can use [`Conda`](https://conda.io/miniconda.html) both to install Nextflow itself and also to manage software within pipelines. Please only use it within pipelines as a last resort; see [docs](https://nf-co.re/usage/configuration#basic-configuration-profiles))_. From 9d9ab30fd32e81edaa9e367b1654c189c2c1feb5 Mon Sep 17 00:00:00 2001 From: Sarah Guinchard Date: Fri, 13 Jan 2023 15:32:05 +0100 Subject: [PATCH 018/201] Fix node label --- .../images/nf-core-chipseq_metro_map_grey.png | Bin 203370 -> 203855 bytes .../images/nf-core-chipseq_metro_map_grey.svg | 169 ++++++++++-------- 2 files changed, 97 insertions(+), 72 deletions(-) diff --git a/docs/images/nf-core-chipseq_metro_map_grey.png b/docs/images/nf-core-chipseq_metro_map_grey.png index 952be250fbcf0c3118c89448b0371e058e39bd1f..03b254fc9be1698c4f53cf84ef996dbdd956d2e4 100644 GIT binary patch literal 203855 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 literal 203370 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 + inkscape:export-ydpi="89" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> image/svg+xml - + @@ -631,13 +631,11 @@ id="text3422" style="font-variant:normal;font-weight:normal;font-size:11.00666809px;line-height:0%;font-family:'Liberation Sans';-inkscape-font-specification:LiberationSans;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277781" x="398.3688" - y="-202.90166"> - - + style="stroke-width:0.35277781" /> @@ -717,7 +715,8 @@ id="flowPara4861-7-7" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:17.5px;line-height:1.25;font-family:'Eurostile Extended';-inkscape-font-specification:'Eurostile Extended';text-align:start;text-anchor:start"> Germline Germline + Sarek    +  Somatic Somatic + Sarek    + Sarek    +  Exome Exome +  Germline Germline + Sarek    +  Somatic Somatic + Sarek    + Sarek    +  Exome Exome + r r + fasta + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:32px;line-height:1.25;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold'">fasta + @@ -1370,7 +1382,8 @@ width="112" id="rect10549-8" />GFF + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:32px;line-height:1.25;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold'">GFF + @@ -1403,7 +1416,8 @@ width="112" id="rect10549-6" />fastq + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:32px;line-height:1.25;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold'">fastq + @@ -1436,7 +1450,8 @@ width="112" id="rect10549-2-3" />HTML + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:32px;line-height:1.25;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold'">HTML + Cutadapt + id="tspan1347" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.3499999px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono Bold';text-align:center;text-anchor:middle;stroke-width:0.26458299" /> + BAM + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:32px;line-height:1.25;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold'">BAM + @@ -1689,7 +1706,8 @@ width="112" id="rect10549-3-4" />BAI + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:32px;line-height:1.25;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold'">BAI + @@ -1723,7 +1741,8 @@ width="112" id="rect10549-9-1" />bigWig + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:26.23099518px;line-height:1.25;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold'">bigWig + Picard¹ + id="tspan1347-9" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.3499999px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono Bold';text-align:center;text-anchor:middle;stroke-width:0.26458299" /> Picard + id="tspan1347-9-6" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.3499999px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono Bold';text-align:center;text-anchor:middle;stroke-width:0.26458299" /> Preseq + id="tspan1347-9-0" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.3499999px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono Bold';text-align:center;text-anchor:middle;stroke-width:0.26458299" /> BedgraphtoBigWig + id="tspan1347-9-0-2" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.3499999px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono Bold';text-align:center;text-anchor:middle;stroke-width:0.26458299" /> PreseqBedtools + y="-5.3573666" + id="tspan1347-9-0-24" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono Bold';text-align:center;text-anchor:middle;stroke-width:0.264583" /> @@ -2557,7 +2576,8 @@ width="85.200035" id="rect10549-9-1-6" />XML + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:26.23099518px;line-height:1.25;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;direction:rtl;text-anchor:middle">XML + tab + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:32px;line-height:1.25;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle">tab + 1. 1. + 2. 2. + Merge alignments from multiple libraries of the same sample + BAMtools (paired-ends only)Pysam (paired-ends only) Pysam (paired-ends only) + Date: Thu, 19 Jan 2023 10:34:28 +0000 Subject: [PATCH 019/201] correcting link to blacklist directory --- nextflow_schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nextflow_schema.json b/nextflow_schema.json index be4ed6f8..77a094e3 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -138,7 +138,7 @@ "blacklist": { "type": "string", "description": "Path to blacklist regions in BED format, used for filtering alignments.", - "help_text": "If provided, alignments that overlap with the regions in this file will be filtered out (see [ENCODE blacklists](https://sites.google.com/site/anshulkundaje/projects/blacklists)). The file should be in BED format. Blacklisted regions for *GRCh37*, *GRCh38*, *GRCm38*, *hg19*, *hg38*, *mm10* are bundled with the pipeline in the [`blacklists`](../assets/blacklists/) directory, and as such will be automatically used if any of those genomes are specified with the `--genome` parameter.", + "help_text": "If provided, alignments that overlap with the regions in this file will be filtered out (see [ENCODE blacklists](https://sites.google.com/site/anshulkundaje/projects/blacklists)). The file should be in BED format. Blacklisted regions for *GRCh37*, *GRCh38*, *GRCm38*, *hg19*, *hg38*, *mm10* are bundled with the pipeline in the [`/assets/blacklists`](https://github.com/nf-core/chipseq/tree/master/assets/blacklists) directory, and as such will be automatically used if any of those genomes are specified with the `--genome` parameter.", "fa_icon": "fas fa-book-dead" }, "save_reference": { From 232ca305b77f6476b73fc3a36fbd8043d87745a4 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Mon, 17 Apr 2023 10:14:43 +0200 Subject: [PATCH 020/201] Bump chromap version 0.2.4 --- modules.json | 4 ++-- modules/nf-core/chromap/chromap/main.nf | 10 +++++----- modules/nf-core/chromap/chromap/meta.yml | 8 +++++++- modules/nf-core/chromap/index/main.nf | 12 ++++++------ modules/nf-core/chromap/index/meta.yml | 13 ++++++++++++- 5 files changed, 32 insertions(+), 15 deletions(-) diff --git a/modules.json b/modules.json index a2d49adf..7af6cca7 100644 --- a/modules.json +++ b/modules.json @@ -27,12 +27,12 @@ }, "chromap/chromap": { "branch": "master", - "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", + "git_sha": "d6b7b1f108dab88b0269a4331767c36a1a8da960", "installed_by": ["modules"] }, "chromap/index": { "branch": "master", - "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", + "git_sha": "d6b7b1f108dab88b0269a4331767c36a1a8da960", "installed_by": ["modules"] }, "custom/dumpsoftwareversions": { diff --git a/modules/nf-core/chromap/chromap/main.nf b/modules/nf-core/chromap/chromap/main.nf index 137f0340..5b7631cb 100644 --- a/modules/nf-core/chromap/chromap/main.nf +++ b/modules/nf-core/chromap/chromap/main.nf @@ -2,15 +2,15 @@ process CHROMAP_CHROMAP { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::chromap=0.2.1 bioconda::samtools=1.15.1" : null) + conda "bioconda::chromap=0.2.4 bioconda::samtools=1.16.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-1f09f39f20b1c4ee36581dc81cc323c70e661633:963e4fe6a85c548a4018585660aed79780a175d3-0' : - 'quay.io/biocontainers/mulled-v2-1f09f39f20b1c4ee36581dc81cc323c70e661633:963e4fe6a85c548a4018585660aed79780a175d3-0' }" + 'https://depot.galaxyproject.org/singularity/mulled-v2-1f09f39f20b1c4ee36581dc81cc323c70e661633:5b2e433ab8b3d1ef098fc944b567fd98caa23f56-0' : + 'quay.io/biocontainers/mulled-v2-1f09f39f20b1c4ee36581dc81cc323c70e661633:5b2e433ab8b3d1ef098fc944b567fd98caa23f56-0' }" input: tuple val(meta), path(reads) - path fasta - path index + tuple val(meta2), path(fasta) + tuple val(meta2), path(index) path barcodes path whitelist path chr_order diff --git a/modules/nf-core/chromap/chromap/meta.yml b/modules/nf-core/chromap/chromap/meta.yml index a86fddc9..10ce8f58 100644 --- a/modules/nf-core/chromap/chromap/meta.yml +++ b/modules/nf-core/chromap/chromap/meta.yml @@ -20,7 +20,7 @@ tools: homepage: https://github.com/haowenz/chromap documentation: https://github.com/haowenz/chromap tool_dev_url: https://github.com/haowenz/chromap - doi: "" + licence: ["GPL v3"] input: - meta: @@ -33,6 +33,11 @@ input: description: | List of input FastQ files of size 1 and 2 for single-end and paired-end data, respectively. + - meta2: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] - fasta: type: file description: | @@ -86,3 +91,4 @@ output: authors: - "@mahesh-panchal" + - "@joseespinosa" diff --git a/modules/nf-core/chromap/index/main.nf b/modules/nf-core/chromap/index/main.nf index ee370695..25ee6a7e 100644 --- a/modules/nf-core/chromap/index/main.nf +++ b/modules/nf-core/chromap/index/main.nf @@ -2,17 +2,17 @@ process CHROMAP_INDEX { tag "$fasta" label 'process_medium' - conda (params.enable_conda ? "bioconda::chromap=0.2.1" : null) + conda "bioconda::chromap=0.2.4" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/chromap:0.2.1--hd03093a_0' : - 'quay.io/biocontainers/chromap:0.2.1--hd03093a_0' }" + 'https://depot.galaxyproject.org/singularity/chromap:0.2.4--hd03093a_0' : + 'quay.io/biocontainers/chromap:0.2.4--hd03093a_0' }" input: - path fasta + tuple val(meta), path(fasta) output: - path "*.index" , emit: index - path "versions.yml", emit: versions + tuple val(meta), path ("*.index"), emit: index + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when diff --git a/modules/nf-core/chromap/index/meta.yml b/modules/nf-core/chromap/index/meta.yml index 6659221f..39c5459b 100644 --- a/modules/nf-core/chromap/index/meta.yml +++ b/modules/nf-core/chromap/index/meta.yml @@ -11,10 +11,15 @@ tools: homepage: https://github.com/haowenz/chromap documentation: https://github.com/haowenz/chromap tool_dev_url: https://github.com/haowenz/chromap - doi: "" + licence: ["GPL v3"] input: + - meta: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test' ] - fasta: type: file description: Fasta reference file. @@ -24,6 +29,11 @@ output: type: file description: File containing software versions pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test' ] - index: type: file description: Index file of the reference genome @@ -31,3 +41,4 @@ output: authors: - "@mahesh-panchal" + - "@joseespinosa" From 91b3763f98748dd84cbad1327770ef10d066d980 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Mon, 17 Apr 2023 10:18:41 +0200 Subject: [PATCH 021/201] Enable chromap for paired-end reads --- subworkflows/local/prepare_genome.nf | 4 ++-- workflows/chipseq.nf | 36 ++++------------------------ 2 files changed, 6 insertions(+), 34 deletions(-) diff --git a/subworkflows/local/prepare_genome.nf b/subworkflows/local/prepare_genome.nf index 6c18b41b..ed5377bf 100644 --- a/subworkflows/local/prepare_genome.nf +++ b/subworkflows/local/prepare_genome.nf @@ -176,10 +176,10 @@ workflow PREPARE_GENOME { ch_chromap_index = UNTAR_CHROMAP_INDEX ( [ [:], params.chromap_index ] ).untar.map{ it[1] } ch_versions = ch_versions.mix(UNTAR.out.versions) } else { - ch_chromap_index = file(params.chromap_index) + ch_chromap_index = [ [:], file(params.chromap_index) ] } } else { - ch_chromap_index = CHROMAP_INDEX ( ch_fasta ).index + ch_chromap_index = CHROMAP_INDEX ( [ [:], ch_fasta ] ).index ch_versions = ch_versions.mix(CHROMAP_INDEX.out.versions) } } diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index 5d7c67af..08069eb6 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -208,39 +208,11 @@ workflow CHIPSEQ { FASTQC_TRIMGALORE.out.reads, PREPARE_GENOME.out.chromap_index, PREPARE_GENOME.out.fasta + .map { + [ [:], it ] + } ) - - // Filter out paired-end reads until the issue below is fixed - // https://github.com/nf-core/chipseq/issues/291 - // ch_genome_bam = ALIGN_CHROMAP.out.bam - ALIGN_CHROMAP - .out - .bam - .branch { - meta, bam -> - single_end: meta.single_end - return [ meta, bam ] - paired_end: !meta.single_end - return [ meta, bam ] - } - .set { ch_genome_bam_chromap } - - ch_genome_bam_chromap - .paired_end - .collect() - .map { - it -> - def count = it.size() - if (count > 0) { - log.warn "=============================================================================\n" + - " Paired-end files produced by chromap cannot be used by some downstream tools due to the issue below:\n" + - " https://github.com/nf-core/chipseq/issues/291\n" + - " They will be excluded from the analysis. Consider using a different aligner\n" + - "===================================================================================" - } - } - - ch_genome_bam = ch_genome_bam_chromap.single_end + ch_genome_bam = ALIGN_CHROMAP.out.bam ch_genome_bam_index = ALIGN_CHROMAP.out.bai ch_samtools_stats = ALIGN_CHROMAP.out.stats ch_samtools_flagstat = ALIGN_CHROMAP.out.flagstat From 595c679d59427bdff979b40d89da65230b48e221 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Mon, 17 Apr 2023 10:39:38 +0200 Subject: [PATCH 022/201] Fix black --- bin/bampe_rm_orphan.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/bin/bampe_rm_orphan.py b/bin/bampe_rm_orphan.py index 4ab9935b..ddba1d6f 100755 --- a/bin/bampe_rm_orphan.py +++ b/bin/bampe_rm_orphan.py @@ -46,7 +46,6 @@ def makedir(path): - if not len(path) == 0: try: os.makedirs(path) @@ -63,7 +62,6 @@ def makedir(path): def bampe_rm_orphan(BAMIn, BAMOut, onlyFRPairs=False): - ## SETUP DIRECTORY/FILE STRUCTURE OutDir = os.path.dirname(BAMOut) makedir(OutDir) @@ -89,7 +87,6 @@ def bampe_rm_orphan(BAMIn, BAMOut, onlyFRPairs=False): ## FILTER FOR READS ON SAME CHROMOSOME IN FR ORIENTATION if onlyFRPairs: if pair1.tid == pair2.tid: - ## READ1 FORWARD AND READ2 REVERSE STRAND if not pair1.is_reverse and pair2.is_reverse: if pair1.reference_start <= pair2.reference_start: From 8cda00ff923da42bd3141c10d0c0c215fba0a41a Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Mon, 17 Apr 2023 11:06:14 +0200 Subject: [PATCH 023/201] Make black happy again --- bin/check_samplesheet.py | 2 -- bin/igv_files_to_session.py | 2 -- bin/macs2_merged_expand.py | 2 -- 3 files changed, 6 deletions(-) diff --git a/bin/check_samplesheet.py b/bin/check_samplesheet.py index eaf0d24c..3fd6ff8a 100755 --- a/bin/check_samplesheet.py +++ b/bin/check_samplesheet.py @@ -49,7 +49,6 @@ def check_samplesheet(file_in, file_out): sample_mapping_dict = {} with open(file_in, "r", encoding="utf-8-sig") as fin: - ## Check header MIN_COLS = 2 HEADER = ["sample", "fastq_1", "fastq_2", "antibody", "control"] @@ -156,7 +155,6 @@ def check_samplesheet(file_in, file_out): + "\n" ) for sample in sorted(sample_mapping_dict.keys()): - ## Check that multiple runs of the same sample are of the same datatype i.e. single-end / paired-end if not all(x[0] == sample_mapping_dict[sample][0][0] for x in sample_mapping_dict[sample]): print_error( diff --git a/bin/igv_files_to_session.py b/bin/igv_files_to_session.py index 629e6cc9..6fdcb1a9 100755 --- a/bin/igv_files_to_session.py +++ b/bin/igv_files_to_session.py @@ -55,7 +55,6 @@ def makedir(path): - if not len(path) == 0: try: os.makedirs(path) @@ -72,7 +71,6 @@ def makedir(path): def igv_files_to_session(XMLOut, ListFile, ReplaceFile, Genome, PathPrefix=""): - makedir(os.path.dirname(XMLOut)) replaceFileDict = {} diff --git a/bin/macs2_merged_expand.py b/bin/macs2_merged_expand.py index aa401123..28ffb087 100755 --- a/bin/macs2_merged_expand.py +++ b/bin/macs2_merged_expand.py @@ -55,7 +55,6 @@ def makedir(path): - if not len(path) == 0: try: os.makedirs(path) @@ -78,7 +77,6 @@ def makedir(path): def macs2_merged_expand(MergedIntervalTxtFile, SampleNameList, OutFile, isNarrow=False, minReplicates=1): - makedir(os.path.dirname(OutFile)) combFreqDict = {} From 261cc8640ee5a2dcac109a9bff652cfeb74f86f2 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Mon, 17 Apr 2023 12:45:23 +0200 Subject: [PATCH 024/201] Update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 491f4296..8c56805d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Updated pipeline template to [nf-core/tools 2.7.2](https://github.com/nf-core/tools/releases/tag/2.7.2) - [[#317](https://github.com/nf-core/chipseq/issues/317)] Added metro map +- [[#288](https://github.com/nf-core/chipseq/issues/291)] Bump `chromap` version 2 and enable all the steps below chromap again when paired-end data is processed. ## [[2.0.0](https://github.com/nf-core/chipseq/releases/tag/2.0.0)] - 2022-10-03 From b4ad530dc270036271205f42110f116c22d03279 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Mon, 17 Apr 2023 22:07:19 +0200 Subject: [PATCH 025/201] Add back skip_spp parameter --- CHANGELOG.md | 1 + workflows/chipseq.nf | 44 +++++++++++++++++++++++++++----------------- 2 files changed, 28 insertions(+), 17 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8c56805d..173b68d1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Updated pipeline template to [nf-core/tools 2.7.2](https://github.com/nf-core/tools/releases/tag/2.7.2) - [[#317](https://github.com/nf-core/chipseq/issues/317)] Added metro map - [[#288](https://github.com/nf-core/chipseq/issues/291)] Bump `chromap` version 2 and enable all the steps below chromap again when paired-end data is processed. +- [[#311](https://github.com/nf-core/chipseq/issues/311)] Add back `--skip_spp` parameter which was unintentionally removed from the code. ## [[2.0.0](https://github.com/nf-core/chipseq/releases/tag/2.0.0)] - 2022-10-03 diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index 08069eb6..caaa4c0c 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -310,20 +310,30 @@ workflow CHIPSEQ { // // MODULE: Phantompeaktools strand cross-correlation and QC metrics // - PHANTOMPEAKQUALTOOLS ( - FILTER_BAM_BAMTOOLS.out.bam - ) - ch_versions = ch_versions.mix(PHANTOMPEAKQUALTOOLS.out.versions.first()) + ch_phantompeakqualtools_spp_multiqc = Channel.empty() + ch_multiqc_phantompeakqualtools_nsc_multiqc = Channel.empty() + ch_multiqc_phantompeakqualtools_rsc_multiqc = Channel.empty() + ch_multiqc_phantompeakqualtools_correlation_multiqc = Channel.empty() + if (!params.skip_spp) { + PHANTOMPEAKQUALTOOLS ( + FILTER_BAM_BAMTOOLS.out.bam + ) + ch_phantompeakqualtools_spp_multiqc = PHANTOMPEAKQUALTOOLS.out.spp + ch_versions = ch_versions.mix(PHANTOMPEAKQUALTOOLS.out.versions.first()) - // - // MODULE: MultiQC custom content for Phantompeaktools - // - MULTIQC_CUSTOM_PHANTOMPEAKQUALTOOLS ( - PHANTOMPEAKQUALTOOLS.out.spp.join(PHANTOMPEAKQUALTOOLS.out.rdata, by: [0]), - ch_spp_nsc_header, - ch_spp_rsc_header, - ch_spp_correlation_header - ) + // + // MODULE: MultiQC custom content for Phantompeaktools + // + MULTIQC_CUSTOM_PHANTOMPEAKQUALTOOLS ( + PHANTOMPEAKQUALTOOLS.out.spp.join(PHANTOMPEAKQUALTOOLS.out.rdata, by: [0]), + ch_spp_nsc_header, + ch_spp_rsc_header, + ch_spp_correlation_header + ) + ch_multiqc_phantompeakqualtools_nsc_multiqc = MULTIQC_CUSTOM_PHANTOMPEAKQUALTOOLS.out.nsc + ch_multiqc_phantompeakqualtools_rsc_multiqc = MULTIQC_CUSTOM_PHANTOMPEAKQUALTOOLS.out.rsc + ch_multiqc_phantompeakqualtools_correlation_multiqc = MULTIQC_CUSTOM_PHANTOMPEAKQUALTOOLS.out.correlation + } // // MODULE: BedGraph coverage tracks @@ -688,10 +698,10 @@ workflow CHIPSEQ { ch_deeptoolsplotprofile_multiqc.collect{it[1]}.ifEmpty([]), ch_deeptoolsplotfingerprint_multiqc.collect{it[1]}.ifEmpty([]), - PHANTOMPEAKQUALTOOLS.out.spp.collect{it[1]}.ifEmpty([]), - MULTIQC_CUSTOM_PHANTOMPEAKQUALTOOLS.out.nsc.collect{it[1]}.ifEmpty([]), - MULTIQC_CUSTOM_PHANTOMPEAKQUALTOOLS.out.rsc.collect{it[1]}.ifEmpty([]), - MULTIQC_CUSTOM_PHANTOMPEAKQUALTOOLS.out.correlation.collect{it[1]}.ifEmpty([]), + ch_phantompeakqualtools_spp_multiqc.collect{it[1]}.ifEmpty([]), + ch_multiqc_phantompeakqualtools_nsc_multiqc.collect{it[1]}.ifEmpty([]), + ch_multiqc_phantompeakqualtools_rsc_multiqc.collect{it[1]}.ifEmpty([]), + ch_multiqc_phantompeakqualtools_correlation_multiqc.collect{it[1]}.ifEmpty([]), ch_custompeaks_frip_multiqc.collect{it[1]}.ifEmpty([]), ch_custompeaks_count_multiqc.collect{it[1]}.ifEmpty([]), From 77907aa5ddf9f60cecc7d795bffb02d583708d6c Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Mon, 17 Apr 2023 22:44:59 +0200 Subject: [PATCH 026/201] Install fastq_fastqc_umitools_trimgalore subworkflow --- modules.json | 154 ++++++++++++++---- modules/nf-core/umitools/extract/main.nf | 56 +++++++ modules/nf-core/umitools/extract/meta.yml | 47 ++++++ .../fastq_fastqc_umitools_trimgalore/main.nf | 123 ++++++++++++++ .../fastq_fastqc_umitools_trimgalore/meta.yml | 96 +++++++++++ 5 files changed, 442 insertions(+), 34 deletions(-) create mode 100644 modules/nf-core/umitools/extract/main.nf create mode 100644 modules/nf-core/umitools/extract/meta.yml create mode 100644 subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/main.nf create mode 100644 subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/meta.yml diff --git a/modules.json b/modules.json index 7af6cca7..8f10866d 100644 --- a/modules.json +++ b/modules.json @@ -8,171 +8,257 @@ "bowtie2/align": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "bowtie2/build": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "bwa/index": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "bwa/mem": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "chromap/chromap": { "branch": "master", "git_sha": "d6b7b1f108dab88b0269a4331767c36a1a8da960", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "chromap/index": { "branch": "master", "git_sha": "d6b7b1f108dab88b0269a4331767c36a1a8da960", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "custom/dumpsoftwareversions": { "branch": "master", "git_sha": "c8e35eb2055c099720a75538d1b8adb3fb5a464c", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "custom/getchromsizes": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": ["modules"], + "installed_by": [ + "modules" + ], "patch": "modules/nf-core/custom/getchromsizes/custom-getchromsizes.diff" }, "deeptools/computematrix": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "deeptools/plotfingerprint": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "deeptools/plotheatmap": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "deeptools/plotprofile": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "fastqc": { "branch": "master", "git_sha": "c8e35eb2055c099720a75538d1b8adb3fb5a464c", - "installed_by": ["modules"] + "installed_by": [ + "modules", + "fastq_fastqc_umitools_trimgalore" + ] }, "gffread": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "gunzip": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "homer/annotatepeaks": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "khmer/uniquekmers": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "macs2/callpeak": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "multiqc": { "branch": "master", "git_sha": "c8e35eb2055c099720a75538d1b8adb3fb5a464c", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "phantompeakqualtools": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "picard/collectmultiplemetrics": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "picard/markduplicates": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "picard/mergesamfiles": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "preseq/lcextrap": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "samtools/flagstat": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "samtools/idxstats": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "samtools/index": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "samtools/sort": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "samtools/stats": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "subread/featurecounts": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "trimgalore": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": ["modules"] + "installed_by": [ + "modules", + "fastq_fastqc_umitools_trimgalore" + ] }, "ucsc/bedgraphtobigwig": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] + }, + "umitools/extract": { + "branch": "master", + "git_sha": "ffe2f5865f608848e440a52b73c304ea79aaf818", + "installed_by": [ + "fastq_fastqc_umitools_trimgalore" + ] }, "untar": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] + } + } + }, + "subworkflows": { + "nf-core": { + "fastq_fastqc_umitools_trimgalore": { + "branch": "master", + "git_sha": "100caf3506850ffcc04953f724a97f422940c377", + "installed_by": [ + "subworkflows" + ] } } } } } -} +} \ No newline at end of file diff --git a/modules/nf-core/umitools/extract/main.nf b/modules/nf-core/umitools/extract/main.nf new file mode 100644 index 00000000..64fdd367 --- /dev/null +++ b/modules/nf-core/umitools/extract/main.nf @@ -0,0 +1,56 @@ +process UMITOOLS_EXTRACT { + tag "$meta.id" + label "process_single" + label "process_long" + + conda "bioconda::umi_tools=1.1.4" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/umi_tools:1.1.4--py38hbff2b2d_1' : + 'quay.io/biocontainers/umi_tools:1.1.4--py38hbff2b2d_1' }" + + input: + tuple val(meta), path(reads) + + output: + tuple val(meta), path("*.fastq.gz"), emit: reads + tuple val(meta), path("*.log") , emit: log + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + if (meta.single_end) { + """ + umi_tools \\ + extract \\ + -I $reads \\ + -S ${prefix}.umi_extract.fastq.gz \\ + $args \\ + > ${prefix}.umi_extract.log + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + umitools: \$(umi_tools --version 2>&1 | sed 's/^.*UMI-tools version://; s/ *\$//') + END_VERSIONS + """ + } else { + """ + umi_tools \\ + extract \\ + -I ${reads[0]} \\ + --read2-in=${reads[1]} \\ + -S ${prefix}.umi_extract_1.fastq.gz \\ + --read2-out=${prefix}.umi_extract_2.fastq.gz \\ + $args \\ + > ${prefix}.umi_extract.log + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + umitools: \$(umi_tools --version 2>&1 | sed 's/^.*UMI-tools version://; s/ *\$//') + END_VERSIONS + """ + } +} diff --git a/modules/nf-core/umitools/extract/meta.yml b/modules/nf-core/umitools/extract/meta.yml new file mode 100644 index 00000000..db64a0f8 --- /dev/null +++ b/modules/nf-core/umitools/extract/meta.yml @@ -0,0 +1,47 @@ +name: umitools_extract +description: Extracts UMI barcode from a read and add it to the read name, leaving any sample barcode in place +keywords: + - umitools + - extract +tools: + - umi_tools: + description: > + UMI-tools contains tools for dealing with Unique Molecular Identifiers (UMIs)/Random Molecular Tags (RMTs) + and single cell RNA-Seq cell barcodes + documentation: https://umi-tools.readthedocs.io/en/latest/ + license: ["MIT"] +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: list + description: | + List of input FASTQ files whose UMIs will be extracted. +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: > + Extracted FASTQ files. | + For single-end reads, pattern is \${prefix}.umi_extract.fastq.gz. | + For paired-end reads, pattern is \${prefix}.umi_extract_{1,2}.fastq.gz. + pattern: "*.{fastq.gz}" + - log: + type: file + description: Logfile for umi_tools + pattern: "*.{log}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@drpatelh" + - "@grst" diff --git a/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/main.nf b/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/main.nf new file mode 100644 index 00000000..db2e5b32 --- /dev/null +++ b/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/main.nf @@ -0,0 +1,123 @@ +// +// Read QC, UMI extraction and trimming +// + +include { FASTQC } from '../../../modules/nf-core/fastqc/main' +include { UMITOOLS_EXTRACT } from '../../../modules/nf-core/umitools/extract/main' +include { TRIMGALORE } from '../../../modules/nf-core/trimgalore/main' + +// +// Function that parses TrimGalore log output file to get total number of reads after trimming +// +def getTrimGaloreReadsAfterFiltering(log_file) { + def total_reads = 0 + def filtered_reads = 0 + log_file.eachLine { line -> + def total_reads_matcher = line =~ /([\d\.]+)\ssequences processed in total/ + def filtered_reads_matcher = line =~ /shorter than the length cutoff[^:]+:\s([\d\.]+)/ + if (total_reads_matcher) total_reads = total_reads_matcher[0][1].toFloat() + if (filtered_reads_matcher) filtered_reads = filtered_reads_matcher[0][1].toFloat() + } + return total_reads - filtered_reads +} + +workflow FASTQ_FASTQC_UMITOOLS_TRIMGALORE { + take: + reads // channel: [ val(meta), [ reads ] ] + skip_fastqc // boolean: true/false + with_umi // boolean: true/false + skip_umi_extract // boolean: true/false + skip_trimming // boolean: true/false + umi_discard_read // integer: 0, 1 or 2 + min_trimmed_reads // integer: > 0 + + main: + ch_versions = Channel.empty() + fastqc_html = Channel.empty() + fastqc_zip = Channel.empty() + if (!skip_fastqc) { + FASTQC (reads) + fastqc_html = FASTQC.out.html + fastqc_zip = FASTQC.out.zip + ch_versions = ch_versions.mix(FASTQC.out.versions.first()) + } + + umi_reads = reads + umi_log = Channel.empty() + if (with_umi && !skip_umi_extract) { + UMITOOLS_EXTRACT (reads) + umi_reads = UMITOOLS_EXTRACT.out.reads + umi_log = UMITOOLS_EXTRACT.out.log + ch_versions = ch_versions.mix(UMITOOLS_EXTRACT.out.versions.first()) + + // Discard R1 / R2 if required + if (umi_discard_read in [1,2]) { + UMITOOLS_EXTRACT + .out + .reads + .map { + meta, reads -> + meta.single_end ? [ meta, reads ] : [ meta + ['single_end': true], reads[umi_discard_read % 2] ] + } + .set { umi_reads } + } + } + + trim_reads = umi_reads + trim_unpaired = Channel.empty() + trim_html = Channel.empty() + trim_zip = Channel.empty() + trim_log = Channel.empty() + trim_read_count = Channel.empty() + if (!skip_trimming) { + TRIMGALORE (umi_reads) + trim_unpaired = TRIMGALORE.out.unpaired + trim_html = TRIMGALORE.out.html + trim_zip = TRIMGALORE.out.zip + trim_log = TRIMGALORE.out.log + ch_versions = ch_versions.mix(TRIMGALORE.out.versions.first()) + + // + // Filter FastQ files based on minimum trimmed read count after adapter trimming + // + TRIMGALORE + .out + .reads + .join(trim_log, remainder: true) + .map { + meta, reads, trim_log -> + if (trim_log) { + num_reads = getTrimGaloreReadsAfterFiltering(meta.single_end ? trim_log : trim_log[-1]) + [ meta, reads, num_reads ] + } else { + [ meta, reads, min_trimmed_reads.toFloat() + 1 ] + } + } + .set { ch_num_trimmed_reads } + + ch_num_trimmed_reads + .filter { meta, reads, num_reads -> num_reads >= min_trimmed_reads.toFloat() } + .map { meta, reads, num_reads -> [ meta, reads ] } + .set { trim_reads } + + ch_num_trimmed_reads + .map { meta, reads, num_reads -> [ meta, num_reads ] } + .set { trim_read_count } + } + + emit: + reads = trim_reads // channel: [ val(meta), [ reads ] ] + + fastqc_html // channel: [ val(meta), [ html ] ] + fastqc_zip // channel: [ val(meta), [ zip ] ] + + umi_log // channel: [ val(meta), [ log ] ] + + trim_unpaired // channel: [ val(meta), [ reads ] ] + trim_html // channel: [ val(meta), [ html ] ] + trim_zip // channel: [ val(meta), [ zip ] ] + trim_log // channel: [ val(meta), [ txt ] ] + trim_read_count // channel: [ val(meta), val(count) ] + + versions = ch_versions.ifEmpty(null) // channel: [ versions.yml ] +} diff --git a/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/meta.yml b/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/meta.yml new file mode 100644 index 00000000..b05004d4 --- /dev/null +++ b/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/meta.yml @@ -0,0 +1,96 @@ +name: "fastq_fastqc_umitools_trimgalore" +description: Read QC, UMI extraction and trimming +keywords: + - fastq + - fastqc + - qc + - UMI + - trimming + - trimgalore +modules: + - fastqc + - umitools/extract + - trimgalore +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] + - reads: + type: file + description: | + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. + - skip_fastqc: + type: boolean + description: | + Skip fastqc process + - with_umi: + type: boolean + description: | + With or without umi detection + - skip_umi_extract: + type: boolean + description: | + With or without umi extrection + - skip_trimming: + type: boolean + description: | + Allows to skip trimgalore execution + - umi_discard_read: + type: integer + description: | + Discard R1 / R2 if required + - min_trimmed_reads: + type: integer + description: | + Inputs with fewer than this reads will be filtered out of the "reads" output channel + +output: + - reads: + type: file + description: > + Extracted FASTQ files. | + For single-end reads, pattern is \${prefix}.umi_extract.fastq.gz. | + For paired-end reads, pattern is \${prefix}.umi_extract_{1,2}.fastq.gz. + pattern: "*.{fastq.gz}" + - fastqc_html: + type: file + description: FastQC report + pattern: "*_{fastqc.html}" + - fastqc_zip: + type: file + description: FastQC report archive + pattern: "*_{fastqc.zip}" + - log: + type: file + description: Logfile for umi_tools + pattern: "*.{log}" + - trim_unpaired: + type: file + description: | + FastQ files containing unpaired reads from read 1 or read 2 + pattern: "*unpaired*.fq.gz" + - trim_html: + type: file + description: FastQC report (optional) + pattern: "*_{fastqc.html}" + - trim_zip: + type: file + description: FastQC report archive (optional) + pattern: "*_{fastqc.zip}" + - trim_log: + type: file + description: Trim Galore! trimming report + pattern: "*_{report.txt}" + - trim_read_count: + type: integer + description: Number of reads remaining after trimming for all input samples + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@drpatelh" + - "@KamilMaliszArdigen" From d67a0fda5cfadc2520e832ec3105c2bb3dc8e998 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Mon, 17 Apr 2023 22:46:42 +0200 Subject: [PATCH 027/201] Install fastq_align_bwa subworkflow --- modules.json | 27 ++++++++ .../nf-core/bam_sort_stats_samtools/main.nf | 50 ++++++++++++++ .../nf-core/bam_sort_stats_samtools/meta.yml | 65 +++++++++++++++++ .../nf-core/bam_stats_samtools/main.nf | 32 +++++++++ .../nf-core/bam_stats_samtools/meta.yml | 40 +++++++++++ subworkflows/nf-core/fastq_align_bwa/main.nf | 43 ++++++++++++ subworkflows/nf-core/fastq_align_bwa/meta.yml | 69 +++++++++++++++++++ 7 files changed, 326 insertions(+) create mode 100644 subworkflows/nf-core/bam_sort_stats_samtools/main.nf create mode 100644 subworkflows/nf-core/bam_sort_stats_samtools/meta.yml create mode 100644 subworkflows/nf-core/bam_stats_samtools/main.nf create mode 100644 subworkflows/nf-core/bam_stats_samtools/meta.yml create mode 100644 subworkflows/nf-core/fastq_align_bwa/main.nf create mode 100644 subworkflows/nf-core/fastq_align_bwa/meta.yml diff --git a/modules.json b/modules.json index 8f10866d..6c75bb41 100644 --- a/modules.json +++ b/modules.json @@ -30,6 +30,7 @@ "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", "installed_by": [ + "fastq_align_bwa", "modules" ] }, @@ -179,6 +180,7 @@ "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", "installed_by": [ + "bam_stats_samtools", "modules" ] }, @@ -186,6 +188,7 @@ "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", "installed_by": [ + "bam_stats_samtools", "modules" ] }, @@ -193,6 +196,7 @@ "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", "installed_by": [ + "bam_sort_stats_samtools", "modules" ] }, @@ -200,6 +204,7 @@ "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", "installed_by": [ + "bam_sort_stats_samtools", "modules" ] }, @@ -207,6 +212,7 @@ "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", "installed_by": [ + "bam_stats_samtools", "modules" ] }, @@ -250,6 +256,27 @@ }, "subworkflows": { "nf-core": { + "bam_sort_stats_samtools": { + "branch": "master", + "git_sha": "3911652a6b24249358f79e8b8466338d63efb2a2", + "installed_by": [ + "fastq_align_bwa" + ] + }, + "bam_stats_samtools": { + "branch": "master", + "git_sha": "b4b7f89e7fd6d2293f0c176213f710e0bcdaf19e", + "installed_by": [ + "bam_sort_stats_samtools" + ] + }, + "fastq_align_bwa": { + "branch": "master", + "git_sha": "901fab507683647b43e7032f3ae9e4c234eb68eb", + "installed_by": [ + "subworkflows" + ] + }, "fastq_fastqc_umitools_trimgalore": { "branch": "master", "git_sha": "100caf3506850ffcc04953f724a97f422940c377", diff --git a/subworkflows/nf-core/bam_sort_stats_samtools/main.nf b/subworkflows/nf-core/bam_sort_stats_samtools/main.nf new file mode 100644 index 00000000..617871fe --- /dev/null +++ b/subworkflows/nf-core/bam_sort_stats_samtools/main.nf @@ -0,0 +1,50 @@ +// +// Sort, index BAM file and run samtools stats, flagstat and idxstats +// + +include { SAMTOOLS_SORT } from '../../../modules/nf-core/samtools/sort/main' +include { SAMTOOLS_INDEX } from '../../../modules/nf-core/samtools/index/main' +include { BAM_STATS_SAMTOOLS } from '../bam_stats_samtools/main' + +workflow BAM_SORT_STATS_SAMTOOLS { + take: + ch_bam // channel: [ val(meta), [ bam ] ] + ch_fasta // channel: [ fasta ] + + main: + + ch_versions = Channel.empty() + + SAMTOOLS_SORT ( ch_bam ) + ch_versions = ch_versions.mix(SAMTOOLS_SORT.out.versions.first()) + + SAMTOOLS_INDEX ( SAMTOOLS_SORT.out.bam ) + ch_versions = ch_versions.mix(SAMTOOLS_INDEX.out.versions.first()) + + SAMTOOLS_SORT.out.bam + .join(SAMTOOLS_INDEX.out.bai, by: [0], remainder: true) + .join(SAMTOOLS_INDEX.out.csi, by: [0], remainder: true) + .map { + meta, bam, bai, csi -> + if (bai) { + [ meta, bam, bai ] + } else { + [ meta, bam, csi ] + } + } + .set { ch_bam_bai } + + BAM_STATS_SAMTOOLS ( ch_bam_bai, ch_fasta ) + ch_versions = ch_versions.mix(BAM_STATS_SAMTOOLS.out.versions) + + emit: + bam = SAMTOOLS_SORT.out.bam // channel: [ val(meta), [ bam ] ] + bai = SAMTOOLS_INDEX.out.bai // channel: [ val(meta), [ bai ] ] + csi = SAMTOOLS_INDEX.out.csi // channel: [ val(meta), [ csi ] ] + + stats = BAM_STATS_SAMTOOLS.out.stats // channel: [ val(meta), [ stats ] ] + flagstat = BAM_STATS_SAMTOOLS.out.flagstat // channel: [ val(meta), [ flagstat ] ] + idxstats = BAM_STATS_SAMTOOLS.out.idxstats // channel: [ val(meta), [ idxstats ] ] + + versions = ch_versions // channel: [ versions.yml ] +} diff --git a/subworkflows/nf-core/bam_sort_stats_samtools/meta.yml b/subworkflows/nf-core/bam_sort_stats_samtools/meta.yml new file mode 100644 index 00000000..131065be --- /dev/null +++ b/subworkflows/nf-core/bam_sort_stats_samtools/meta.yml @@ -0,0 +1,65 @@ +name: bam_sort_stats_samtools +description: Sort SAM/BAM/CRAM file +keywords: + - sort + - bam + - sam + - cram +modules: + - samtools/sort + - samtools/index + - samtools/stats + - samtools/idxstats + - samtools/flagstat +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: BAM/CRAM/SAM file + pattern: "*.{bam,cram,sam}" + - fasta: + type: file + description: Reference genome fasta file + pattern: "*.{fasta,fa}" +# TODO Update when we decide on a standard for subworkflow docs +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: Sorted BAM/CRAM/SAM file + pattern: "*.{bam,cram,sam}" + - bai: + type: file + description: BAM/CRAM/SAM index file + pattern: "*.{bai,crai,sai}" + - crai: + type: file + description: BAM/CRAM/SAM index file + pattern: "*.{bai,crai,sai}" + - stats: + type: file + description: File containing samtools stats output + pattern: "*.{stats}" + - flagstat: + type: file + description: File containing samtools flagstat output + pattern: "*.{flagstat}" + - idxstats: + type: file + description: File containing samtools idxstats output + pattern: "*.{idxstats}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@drpatelh" + - "@ewels" diff --git a/subworkflows/nf-core/bam_stats_samtools/main.nf b/subworkflows/nf-core/bam_stats_samtools/main.nf new file mode 100644 index 00000000..c9d7c8b7 --- /dev/null +++ b/subworkflows/nf-core/bam_stats_samtools/main.nf @@ -0,0 +1,32 @@ +// +// Run SAMtools stats, flagstat and idxstats +// + +include { SAMTOOLS_STATS } from '../../../modules/nf-core/samtools/stats/main' +include { SAMTOOLS_IDXSTATS } from '../../../modules/nf-core/samtools/idxstats/main' +include { SAMTOOLS_FLAGSTAT } from '../../../modules/nf-core/samtools/flagstat/main' + +workflow BAM_STATS_SAMTOOLS { + take: + ch_bam_bai // channel: [ val(meta), path(bam), path(bai) ] + ch_fasta // channel: [ path(fasta) ] + + main: + ch_versions = Channel.empty() + + SAMTOOLS_STATS ( ch_bam_bai, ch_fasta ) + ch_versions = ch_versions.mix(SAMTOOLS_STATS.out.versions) + + SAMTOOLS_FLAGSTAT ( ch_bam_bai ) + ch_versions = ch_versions.mix(SAMTOOLS_FLAGSTAT.out.versions) + + SAMTOOLS_IDXSTATS ( ch_bam_bai ) + ch_versions = ch_versions.mix(SAMTOOLS_IDXSTATS.out.versions) + + emit: + stats = SAMTOOLS_STATS.out.stats // channel: [ val(meta), path(stats) ] + flagstat = SAMTOOLS_FLAGSTAT.out.flagstat // channel: [ val(meta), path(flagstat) ] + idxstats = SAMTOOLS_IDXSTATS.out.idxstats // channel: [ val(meta), path(idxstats) ] + + versions = ch_versions // channel: [ path(versions.yml) ] +} diff --git a/subworkflows/nf-core/bam_stats_samtools/meta.yml b/subworkflows/nf-core/bam_stats_samtools/meta.yml new file mode 100644 index 00000000..b6072686 --- /dev/null +++ b/subworkflows/nf-core/bam_stats_samtools/meta.yml @@ -0,0 +1,40 @@ +name: bam_stats_samtools +description: Produces comprehensive statistics from SAM/BAM/CRAM file +keywords: + - statistics + - counts + - bam + - sam + - cram +modules: + - samtools/stats + - samtools/idxstats + - samtools/flagstat +input: + - ch_bam_bai: + description: | + The input channel containing the BAM/CRAM and it's index + Structure: [ val(meta), path(bam), path(bai) ] + - ch_fasta: + description: | + Reference genome fasta file + Structure: [ path(fasta) ] +output: + - stats: + description: | + File containing samtools stats output + Structure: [ val(meta), path(stats) ] + - flagstat: + description: | + File containing samtools flagstat output + Structure: [ val(meta), path(flagstat) ] + - idxstats: + description: | + File containing samtools idxstats output + Structure: [ val(meta), path(idxstats)] + - versions: + description: | + Files containing software versions + Structure: [ path(versions.yml) ] +authors: + - "@drpatelh" diff --git a/subworkflows/nf-core/fastq_align_bwa/main.nf b/subworkflows/nf-core/fastq_align_bwa/main.nf new file mode 100644 index 00000000..4ce4f886 --- /dev/null +++ b/subworkflows/nf-core/fastq_align_bwa/main.nf @@ -0,0 +1,43 @@ +// +// Alignment with BWA +// + +include { BWA_MEM } from '../../../modules/nf-core/bwa/mem/main' +include { BAM_SORT_STATS_SAMTOOLS } from '../bam_sort_stats_samtools/main' + +workflow FASTQ_ALIGN_BWA { + take: + ch_reads // channel (mandatory): [ val(meta), [ path(reads) ] ] + ch_index // channel (mandatory): [ val(meta2), path(index) ] + val_sort_bam // boolean (mandatory): true or false + ch_fasta // channel (optional) : [ path(fasta) ] + + main: + ch_versions = Channel.empty() + + // + // Map reads with BWA + // + + BWA_MEM ( ch_reads, ch_index, val_sort_bam ) + ch_versions = ch_versions.mix(BWA_MEM.out.versions.first()) + + // + // Sort, index BAM file and run samtools stats, flagstat and idxstats + // + + BAM_SORT_STATS_SAMTOOLS ( BWA_MEM.out.bam, ch_fasta ) + ch_versions = ch_versions.mix(BAM_SORT_STATS_SAMTOOLS.out.versions) + + emit: + bam_orig = BWA_MEM.out.bam // channel: [ val(meta), path(bam) ] + + bam = BAM_SORT_STATS_SAMTOOLS.out.bam // channel: [ val(meta), path(bam) ] + bai = BAM_SORT_STATS_SAMTOOLS.out.bai // channel: [ val(meta), path(bai) ] + csi = BAM_SORT_STATS_SAMTOOLS.out.csi // channel: [ val(meta), path(csi) ] + stats = BAM_SORT_STATS_SAMTOOLS.out.stats // channel: [ val(meta), path(stats) ] + flagstat = BAM_SORT_STATS_SAMTOOLS.out.flagstat // channel: [ val(meta), path(flagstat) ] + idxstats = BAM_SORT_STATS_SAMTOOLS.out.idxstats // channel: [ val(meta), path(idxstats) ] + + versions = ch_versions // channel: [ path(versions.yml) ] +} diff --git a/subworkflows/nf-core/fastq_align_bwa/meta.yml b/subworkflows/nf-core/fastq_align_bwa/meta.yml new file mode 100644 index 00000000..03f84860 --- /dev/null +++ b/subworkflows/nf-core/fastq_align_bwa/meta.yml @@ -0,0 +1,69 @@ +name: fastq_align_bwa +description: Align reads to a reference genome using bwa then sort with samtools +keywords: + - align + - fasta + - genome + - reference +modules: + - bwa/align + - samtools/sort + - samtools/index + - samtools/stats + - samtools/idxstats + - samtools/flagstat +input: + - ch_reads: + description: | + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. + Structure: [ val(meta), [ path(reads) ] ] + - ch_index: + description: | + BWA genome index files + Structure: [ val(meta2), path(index) ] + - val_sort_bam: + type: boolean + description: If true bwa modules sort resulting bam files + pattern: "true|false" + - ch_fasta: + type: file + description: | + Optional reference fasta file. This only needs to be given if val_sort_bam = true + Structure: [ path(fasta) ] + +output: + - bam_orig: + description: | + BAM file produced by bwa + Structure: [ val(meta), path(bam) ] + - bam: + description: | + BAM file ordered by samtools + Structure: [ val(meta), path(bam) ] + - bai: + description: | + BAI index of the ordered BAM file + Structure: [ val(meta), path(bai) ] + - csi: + description: | + CSI index of the ordered BAM file + Structure: [ val(meta), path(csi) ] + - stats: + description: | + File containing samtools stats output + Structure: [ val(meta), path(stats) ] + - flagstat: + description: | + File containing samtools flagstat output + Structure: [ val(meta), path(flagstat) ] + - idxstats: + description: | + File containing samtools idxstats output + Structure: [ val(meta), path(idxstats) ] + - versions: + description: | + Files containing software versions + Structure: [ path(versions.yml) ] +authors: + - "@JoseEspinosa" From 8b93ec222b5cf706ea3e682ce6e90e22b664ec26 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Mon, 17 Apr 2023 22:47:29 +0200 Subject: [PATCH 028/201] Install fastq_align_bowtie2 subworkflow --- modules.json | 23 ++++--- .../nf-core/fastq_align_bowtie2/main.nf | 45 +++++++++++++ .../nf-core/fastq_align_bowtie2/meta.yml | 63 +++++++++++++++++++ 3 files changed, 124 insertions(+), 7 deletions(-) create mode 100644 subworkflows/nf-core/fastq_align_bowtie2/main.nf create mode 100644 subworkflows/nf-core/fastq_align_bowtie2/meta.yml diff --git a/modules.json b/modules.json index 6c75bb41..43a96a34 100644 --- a/modules.json +++ b/modules.json @@ -9,6 +9,7 @@ "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", "installed_by": [ + "fastq_align_bowtie2", "modules" ] }, @@ -180,16 +181,16 @@ "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", "installed_by": [ - "bam_stats_samtools", - "modules" + "modules", + "bam_stats_samtools" ] }, "samtools/idxstats": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", "installed_by": [ - "bam_stats_samtools", - "modules" + "modules", + "bam_stats_samtools" ] }, "samtools/index": { @@ -212,8 +213,8 @@ "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", "installed_by": [ - "bam_stats_samtools", - "modules" + "modules", + "bam_stats_samtools" ] }, "subread/featurecounts": { @@ -260,7 +261,8 @@ "branch": "master", "git_sha": "3911652a6b24249358f79e8b8466338d63efb2a2", "installed_by": [ - "fastq_align_bwa" + "fastq_align_bwa", + "fastq_align_bowtie2" ] }, "bam_stats_samtools": { @@ -270,6 +272,13 @@ "bam_sort_stats_samtools" ] }, + "fastq_align_bowtie2": { + "branch": "master", + "git_sha": "ac75f79157ecc64283a2b3a559f1ba90bc0f2259", + "installed_by": [ + "subworkflows" + ] + }, "fastq_align_bwa": { "branch": "master", "git_sha": "901fab507683647b43e7032f3ae9e4c234eb68eb", diff --git a/subworkflows/nf-core/fastq_align_bowtie2/main.nf b/subworkflows/nf-core/fastq_align_bowtie2/main.nf new file mode 100644 index 00000000..eaf4ac5e --- /dev/null +++ b/subworkflows/nf-core/fastq_align_bowtie2/main.nf @@ -0,0 +1,45 @@ +// +// Alignment with Bowtie2 +// + +include { BOWTIE2_ALIGN } from '../../../modules/nf-core/bowtie2/align/main' +include { BAM_SORT_STATS_SAMTOOLS } from '../bam_sort_stats_samtools/main' + +workflow FASTQ_ALIGN_BOWTIE2 { + take: + ch_reads // channel: [ val(meta), [ reads ] ] + ch_index // channel: /path/to/bowtie2/index/ + save_unaligned // val + sort_bam // val + ch_fasta // channel: /path/to/reference.fasta + + main: + + ch_versions = Channel.empty() + + // + // Map reads with Bowtie2 + // + BOWTIE2_ALIGN ( ch_reads, ch_index, save_unaligned, sort_bam ) + ch_versions = ch_versions.mix(BOWTIE2_ALIGN.out.versions.first()) + + // + // Sort, index BAM file and run samtools stats, flagstat and idxstats + // + BAM_SORT_STATS_SAMTOOLS ( BOWTIE2_ALIGN.out.bam, ch_fasta ) + ch_versions = ch_versions.mix(BAM_SORT_STATS_SAMTOOLS.out.versions) + + emit: + bam_orig = BOWTIE2_ALIGN.out.bam // channel: [ val(meta), bam ] + log_out = BOWTIE2_ALIGN.out.log // channel: [ val(meta), log ] + fastq = BOWTIE2_ALIGN.out.fastq // channel: [ val(meta), fastq ] + + bam = BAM_SORT_STATS_SAMTOOLS.out.bam // channel: [ val(meta), [ bam ] ] + bai = BAM_SORT_STATS_SAMTOOLS.out.bai // channel: [ val(meta), [ bai ] ] + csi = BAM_SORT_STATS_SAMTOOLS.out.csi // channel: [ val(meta), [ csi ] ] + stats = BAM_SORT_STATS_SAMTOOLS.out.stats // channel: [ val(meta), [ stats ] ] + flagstat = BAM_SORT_STATS_SAMTOOLS.out.flagstat // channel: [ val(meta), [ flagstat ] ] + idxstats = BAM_SORT_STATS_SAMTOOLS.out.idxstats // channel: [ val(meta), [ idxstats ] ] + + versions = ch_versions // channel: [ versions.yml ] +} diff --git a/subworkflows/nf-core/fastq_align_bowtie2/meta.yml b/subworkflows/nf-core/fastq_align_bowtie2/meta.yml new file mode 100644 index 00000000..ad378077 --- /dev/null +++ b/subworkflows/nf-core/fastq_align_bowtie2/meta.yml @@ -0,0 +1,63 @@ +name: fastq_align_bowtie2 +description: Align reads to a reference genome using bowtie2 then sort with samtools +keywords: + - align + - fasta + - genome + - reference +modules: + - bowtie2/align + - samtools/sort + - samtools/index + - samtools/stats + - samtools/idxstats + - samtools/flagstat +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - ch_reads: + type: file + description: | + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. + - ch_index: + type: file + description: Bowtie2 genome index files + pattern: "*.ebwt" + - save_unaligned: + type: boolean + description: | + Save reads that do not map to the reference (true) or discard them (false) + (default: false) + - sort_bam: + description: | + Save reads that do not map to the reference (true) or discard them (false) + (default: false) + - ch_fasta: + type: file + description: Reference fasta file + pattern: "*.{fasta,fa}" +# TODO Update when we decide on a standard for subworkflow docs +output: + - bam: + type: file + description: Output BAM file containing read alignments + pattern: "*.{bam}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - fastq: + type: file + description: Unaligned FastQ files + pattern: "*.fastq.gz" + - log: + type: file + description: Alignment log + pattern: "*.log" +# TODO Add samtools outputs +authors: + - "@drpatelh" From 356ccd2e248860dbf14b6d986f0e603611f5a691 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Mon, 17 Apr 2023 22:48:55 +0200 Subject: [PATCH 029/201] Install fastq_align_chromap subworkflow --- modules.json | 173 +++++------------- .../nf-core/fastq_align_chromap/main.nf | 41 +++++ .../nf-core/fastq_align_chromap/meta.yml | 99 ++++++++++ 3 files changed, 185 insertions(+), 128 deletions(-) create mode 100644 subworkflows/nf-core/fastq_align_chromap/main.nf create mode 100644 subworkflows/nf-core/fastq_align_chromap/meta.yml diff --git a/modules.json b/modules.json index 43a96a34..d7abe7b4 100644 --- a/modules.json +++ b/modules.json @@ -8,250 +8,173 @@ "bowtie2/align": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": [ - "fastq_align_bowtie2", - "modules" - ] + "installed_by": ["fastq_align_bowtie2", "modules"] }, "bowtie2/build": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "bwa/index": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "bwa/mem": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": [ - "fastq_align_bwa", - "modules" - ] + "installed_by": ["fastq_align_bwa", "modules"] }, "chromap/chromap": { "branch": "master", "git_sha": "d6b7b1f108dab88b0269a4331767c36a1a8da960", - "installed_by": [ - "modules" - ] + "installed_by": ["fastq_align_chromap", "modules"] }, "chromap/index": { "branch": "master", "git_sha": "d6b7b1f108dab88b0269a4331767c36a1a8da960", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "custom/dumpsoftwareversions": { "branch": "master", "git_sha": "c8e35eb2055c099720a75538d1b8adb3fb5a464c", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "custom/getchromsizes": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": [ - "modules" - ], + "installed_by": ["modules"], "patch": "modules/nf-core/custom/getchromsizes/custom-getchromsizes.diff" }, "deeptools/computematrix": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "deeptools/plotfingerprint": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "deeptools/plotheatmap": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "deeptools/plotprofile": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "fastqc": { "branch": "master", "git_sha": "c8e35eb2055c099720a75538d1b8adb3fb5a464c", - "installed_by": [ - "modules", - "fastq_fastqc_umitools_trimgalore" - ] + "installed_by": ["modules", "fastq_fastqc_umitools_trimgalore"] }, "gffread": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "gunzip": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "homer/annotatepeaks": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "khmer/uniquekmers": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "macs2/callpeak": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "multiqc": { "branch": "master", "git_sha": "c8e35eb2055c099720a75538d1b8adb3fb5a464c", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "phantompeakqualtools": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "picard/collectmultiplemetrics": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "picard/markduplicates": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "picard/mergesamfiles": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "preseq/lcextrap": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "samtools/flagstat": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": [ - "modules", - "bam_stats_samtools" - ] + "installed_by": ["bam_stats_samtools", "modules"] }, "samtools/idxstats": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": [ - "modules", - "bam_stats_samtools" - ] + "installed_by": ["bam_stats_samtools", "modules"] }, "samtools/index": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": [ - "bam_sort_stats_samtools", - "modules" - ] + "installed_by": ["bam_sort_stats_samtools", "modules"] }, "samtools/sort": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": [ - "bam_sort_stats_samtools", - "modules" - ] + "installed_by": ["bam_sort_stats_samtools", "modules"] }, "samtools/stats": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": [ - "modules", - "bam_stats_samtools" - ] + "installed_by": ["bam_stats_samtools", "modules"] }, "subread/featurecounts": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "trimgalore": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": [ - "modules", - "fastq_fastqc_umitools_trimgalore" - ] + "installed_by": ["modules", "fastq_fastqc_umitools_trimgalore"] }, "ucsc/bedgraphtobigwig": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "umitools/extract": { "branch": "master", "git_sha": "ffe2f5865f608848e440a52b73c304ea79aaf818", - "installed_by": [ - "fastq_fastqc_umitools_trimgalore" - ] + "installed_by": ["fastq_fastqc_umitools_trimgalore"] }, "untar": { "branch": "master", "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] } } }, @@ -260,41 +183,35 @@ "bam_sort_stats_samtools": { "branch": "master", "git_sha": "3911652a6b24249358f79e8b8466338d63efb2a2", - "installed_by": [ - "fastq_align_bwa", - "fastq_align_bowtie2" - ] + "installed_by": ["fastq_align_bowtie2", "fastq_align_chromap", "fastq_align_bwa"] }, "bam_stats_samtools": { "branch": "master", "git_sha": "b4b7f89e7fd6d2293f0c176213f710e0bcdaf19e", - "installed_by": [ - "bam_sort_stats_samtools" - ] + "installed_by": ["bam_sort_stats_samtools"] }, "fastq_align_bowtie2": { "branch": "master", "git_sha": "ac75f79157ecc64283a2b3a559f1ba90bc0f2259", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "fastq_align_bwa": { "branch": "master", "git_sha": "901fab507683647b43e7032f3ae9e4c234eb68eb", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] + }, + "fastq_align_chromap": { + "branch": "master", + "git_sha": "ac75f79157ecc64283a2b3a559f1ba90bc0f2259", + "installed_by": ["subworkflows"] }, "fastq_fastqc_umitools_trimgalore": { "branch": "master", "git_sha": "100caf3506850ffcc04953f724a97f422940c377", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] } } } } } -} \ No newline at end of file +} diff --git a/subworkflows/nf-core/fastq_align_chromap/main.nf b/subworkflows/nf-core/fastq_align_chromap/main.nf new file mode 100644 index 00000000..9d706c98 --- /dev/null +++ b/subworkflows/nf-core/fastq_align_chromap/main.nf @@ -0,0 +1,41 @@ +/* + * Map reads, sort, index BAM file and run samtools stats, flagstat and idxstats + */ + +include { CHROMAP_CHROMAP } from '../../../modules/nf-core/chromap/chromap/main' +include { BAM_SORT_STATS_SAMTOOLS } from '../bam_sort_stats_samtools/main' + +workflow FASTQ_ALIGN_CHROMAP { + take: + ch_reads // channel (mandatory): [ val(meta), [ reads ] ] + ch_index // channel (mandatory): [ val(meta2, [ index ] ] + ch_fasta // channel (mandatory): [ val(meta2, [ fasta ] ] + ch_barcodes // channel (optional): [ barcodes ] + ch_whitelist // channel (optional): [ whitelist ] + ch_chr_order // channel (optional): [ chr_order ] + ch_pairs_chr_order // channel (optional): [ pairs_chr_order ] + + main: + ch_versions = Channel.empty() + + // + // Map reads with CHROMAP + // + CHROMAP_CHROMAP(ch_reads, ch_fasta, ch_index, ch_barcodes, ch_whitelist, ch_chr_order, ch_pairs_chr_order) + ch_versions = ch_versions.mix(CHROMAP_CHROMAP.out.versions) + + // + // Sort, index BAM file and run samtools stats, flagstat and idxstats + // + BAM_SORT_STATS_SAMTOOLS(CHROMAP_CHROMAP.out.bam, ch_fasta.map { it[1] }) + ch_versions = ch_versions.mix(BAM_SORT_STATS_SAMTOOLS.out.versions) + + emit: + bam = BAM_SORT_STATS_SAMTOOLS.out.bam // channel: [ val(meta), [ bam ] ] + bai = BAM_SORT_STATS_SAMTOOLS.out.bai // channel: [ val(meta), [ bai ] ] + stats = BAM_SORT_STATS_SAMTOOLS.out.stats // channel: [ val(meta), [ stats ] ] + flagstat = BAM_SORT_STATS_SAMTOOLS.out.flagstat // channel: [ val(meta), [ flagstat ] ] + idxstats = BAM_SORT_STATS_SAMTOOLS.out.idxstats // channel: [ val(meta), [ idxstats ] ] + + versions = ch_versions // path: versions.yml +} diff --git a/subworkflows/nf-core/fastq_align_chromap/meta.yml b/subworkflows/nf-core/fastq_align_chromap/meta.yml new file mode 100644 index 00000000..6d701bce --- /dev/null +++ b/subworkflows/nf-core/fastq_align_chromap/meta.yml @@ -0,0 +1,99 @@ +name: "fastq_align_chromap" +description: Align high throughput chromatin profiles using Chromap then sort with samtools +keywords: + - align + - fasta + - genome + - reference + - chromatin profiles + - chip-seq + - atac-seq + - hic +modules: + - chromap/chromap + - samtools/sort + - samtools/index + - samtools/stats + - samtools/idxstats + - samtools/flagstat +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - ch_reads: + type: file + description: | + Structure: [val(meta), path(reads)] + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. + - meta2: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test' ] + - ch_index: + type: file + description: | + Structure: [val(meta2), path(index)] + Chromap genome index files + pattern: "*.index" + - ch_fasta: + type: file + description: | + Structure: [val(meta2), path(fasta)] + Reference fasta file + pattern: "*.{fasta,fa}" + - ch_barcodes: + type: file + description: | + Structure: [path(barcodes)] + Cell barcode files + - ch_whitelist: + type: file + description: | + Structure: [path(whitelist)] + Cell barcode whitelist file + - ch_chr_order: + type: file + description: | + Structure: [path(chr_order)] + Custom chromosome order + - ch_pairs_chr_order: + type: file + description: | + Structure: [path(pairs_chr_order)] + Natural chromosome order for pairs flipping +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] + - bam: + type: file + description: BAM file + pattern: "*.bam" + - bai: + type: file + description: BAM index (currently only for snapaligner) + pattern: "*.bai" + - stats: + type: file + description: File containing samtools stats output + pattern: "*.{stats}" + - flagstat: + type: file + description: File containing samtools flagstat output + pattern: "*.{flagstat}" + - idxstats: + type: file + description: File containing samtools idxstats output + pattern: "*.{idxstats}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@JoseEspinosa" From c8739edbebf1c3cdca696a50653f712f1817da6d Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Mon, 17 Apr 2023 23:08:50 +0200 Subject: [PATCH 030/201] use the FASTQ_FASTQC_UMITOOLS_TRIMGALORE subworkflow insead of fastq_trimgalore --- conf/modules.config | 18 ++++++--- subworkflows/nf-core/fastqc_trimgalore.nf | 48 ----------------------- workflows/chipseq.nf | 26 ++++++------ 3 files changed, 27 insertions(+), 65 deletions(-) delete mode 100644 subworkflows/nf-core/fastqc_trimgalore.nf diff --git a/conf/modules.config b/conf/modules.config index b46fec83..f4c55854 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -122,7 +122,7 @@ process { if (!(params.skip_fastqc || params.skip_qc)) { process { - withName: '.*:FASTQC_TRIMGALORE:FASTQC' { + withName: 'FASTQC' { ext.args = '--quiet' publishDir = [ [ @@ -142,11 +142,17 @@ if (!(params.skip_fastqc || params.skip_qc)) { if (!params.skip_trimming) { process { - withName: '.*:FASTQC_TRIMGALORE:TRIMGALORE' { - ext.args = [ - '--fastqc', - params.trim_nextseq > 0 ? "--nextseq ${params.trim_nextseq}" : '' - ].join(' ').trim() + withName: 'TRIMGALORE' { + ext.args = { + [ + '--fastqc', + params.trim_nextseq > 0 ? "--nextseq ${params.trim_nextseq}" : '', + params.clip_r1 > 0 ? "--clip_r1 ${params.clip_r1}" : '', + params.clip_r2 > 0 ? "--clip_r2 ${params.clip_r2}" : '', + params.three_prime_clip_r1 > 0 ? "--three_prime_clip_r1 ${params.three_prime_clip_r1}" : '', + params.three_prime_clip_r2 > 0 ? "--three_prime_clip_r2 ${params.three_prime_clip_r2}" : '' + ].join(' ').trim() + } publishDir = [ [ path: { "${params.outdir}/trimgalore/fastqc" }, diff --git a/subworkflows/nf-core/fastqc_trimgalore.nf b/subworkflows/nf-core/fastqc_trimgalore.nf deleted file mode 100644 index 8a18098a..00000000 --- a/subworkflows/nf-core/fastqc_trimgalore.nf +++ /dev/null @@ -1,48 +0,0 @@ -// -// Read QC and trimming -// - -include { FASTQC } from '../../modules/nf-core/fastqc/main' -include { TRIMGALORE } from '../../modules/nf-core/trimgalore/main' - -workflow FASTQC_TRIMGALORE { - take: - reads // channel: [ val(meta), [ reads ] ] - skip_fastqc // boolean: true/false - skip_trimming // boolean: true/false - - main: - - ch_versions = Channel.empty() - fastqc_html = Channel.empty() - fastqc_zip = Channel.empty() - if (!skip_fastqc) { - FASTQC ( reads ).html.set { fastqc_html } - fastqc_zip = FASTQC.out.zip - ch_versions = ch_versions.mix(FASTQC.out.versions.first()) - } - - trim_reads = reads - trim_html = Channel.empty() - trim_zip = Channel.empty() - trim_log = Channel.empty() - if (!skip_trimming) { - TRIMGALORE ( reads ).reads.set { trim_reads } - trim_html = TRIMGALORE.out.html - trim_zip = TRIMGALORE.out.zip - trim_log = TRIMGALORE.out.log - ch_versions = ch_versions.mix(TRIMGALORE.out.versions.first()) - } - - emit: - reads = trim_reads // channel: [ val(meta), [ reads ] ] - - fastqc_html // channel: [ val(meta), [ html ] ] - fastqc_zip // channel: [ val(meta), [ zip ] ] - - trim_html // channel: [ val(meta), [ html ] ] - trim_zip // channel: [ val(meta), [ zip ] ] - trim_log // channel: [ val(meta), [ txt ] ] - - versions = ch_versions.ifEmpty(null) // channel: [ versions.yml ] -} diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index caaa4c0c..d2279680 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -115,7 +115,7 @@ include { HOMER_ANNOTATEPEAKS as HOMER_ANNOTATEPEAKS_CONSENSUS } from '../module // SUBWORKFLOW: Consisting entirely of nf-core/modules // -include { FASTQC_TRIMGALORE } from '../subworkflows/nf-core/fastqc_trimgalore' +include { FASTQ_FASTQC_UMITOOLS_TRIMGALORE } from '../subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/main' include { ALIGN_BWA_MEM } from '../subworkflows/nf-core/align_bwa_mem' include { ALIGN_BOWTIE2 } from '../subworkflows/nf-core/align_bowtie2' include { ALIGN_CHROMAP } from '../subworkflows/nf-core/align_chromap' @@ -155,12 +155,16 @@ workflow CHIPSEQ { // // SUBWORKFLOW: Read QC and trim adapters // - FASTQC_TRIMGALORE ( + FASTQ_FASTQC_UMITOOLS_TRIMGALORE ( INPUT_CHECK.out.reads, params.skip_fastqc || params.skip_qc, - params.skip_trimming + false, + false, + params.skip_trimming, + 0, + 10000 ) - ch_versions = ch_versions.mix(FASTQC_TRIMGALORE.out.versions) + ch_versions = ch_versions.mix(FASTQ_FASTQC_UMITOOLS_TRIMGALORE.out.versions) // // SUBWORKFLOW: Alignment with BWA & BAM QC @@ -172,7 +176,7 @@ workflow CHIPSEQ { ch_samtools_idxstats = Channel.empty() if (params.aligner == 'bwa') { ALIGN_BWA_MEM ( - FASTQC_TRIMGALORE.out.reads, + FASTQ_FASTQC_UMITOOLS_TRIMGALORE.out.reads, PREPARE_GENOME.out.bwa_index ) ch_genome_bam = ALIGN_BWA_MEM.out.bam @@ -188,7 +192,7 @@ workflow CHIPSEQ { // if (params.aligner == 'bowtie2') { ALIGN_BOWTIE2 ( - FASTQC_TRIMGALORE.out.reads, + FASTQ_FASTQC_UMITOOLS_TRIMGALORE.out.reads, PREPARE_GENOME.out.bowtie2_index, params.save_unaligned ) @@ -205,7 +209,7 @@ workflow CHIPSEQ { // if (params.aligner == 'chromap') { ALIGN_CHROMAP ( - FASTQC_TRIMGALORE.out.reads, + FASTQ_FASTQC_UMITOOLS_TRIMGALORE.out.reads, PREPARE_GENOME.out.chromap_index, PREPARE_GENOME.out.fasta .map { @@ -225,7 +229,7 @@ workflow CHIPSEQ { // if (params.aligner == 'star') { ALIGN_STAR ( - FASTQC_TRIMGALORE.out.reads, + FASTQ_FASTQC_UMITOOLS_TRIMGALORE.out.reads, PREPARE_GENOME.out.star_index ) ch_genome_bam = ALIGN_STAR.out.bam @@ -675,9 +679,9 @@ workflow CHIPSEQ { ch_methods_description.collectFile(name: 'methods_description_mqc.yaml'), ch_multiqc_logo.collect().ifEmpty([]), - FASTQC_TRIMGALORE.out.fastqc_zip.collect{it[1]}.ifEmpty([]), - FASTQC_TRIMGALORE.out.trim_zip.collect{it[1]}.ifEmpty([]), - FASTQC_TRIMGALORE.out.trim_log.collect{it[1]}.ifEmpty([]), + FASTQ_FASTQC_UMITOOLS_TRIMGALORE.out.fastqc_zip.collect{it[1]}.ifEmpty([]), + FASTQ_FASTQC_UMITOOLS_TRIMGALORE.out.trim_zip.collect{it[1]}.ifEmpty([]), + FASTQ_FASTQC_UMITOOLS_TRIMGALORE.out.trim_log.collect{it[1]}.ifEmpty([]), ch_samtools_stats.collect{it[1]}.ifEmpty([]), ch_samtools_flagstat.collect{it[1]}.ifEmpty([]), From 8af9cb2991f30890ba1d1bd7cbb3cce9e690b717 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Mon, 17 Apr 2023 23:16:23 +0200 Subject: [PATCH 031/201] Use FASTQ_ALIGN_BWA subworkflow --- conf/modules.config | 12 +++++---- subworkflows/nf-core/align_bwa_mem.nf | 37 --------------------------- workflows/chipseq.nf | 21 ++++++++------- 3 files changed, 19 insertions(+), 51 deletions(-) delete mode 100644 subworkflows/nf-core/align_bwa_mem.nf diff --git a/conf/modules.config b/conf/modules.config index f4c55854..01316ea6 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -214,11 +214,13 @@ process { if (params.aligner == 'bwa') { process { withName: 'BWA_MEM' { - ext.args = { [ - '-M', - params.bwa_min_score ? " -T ${params.bwa_min_score}" : '', - meta.read_group ? "-R ${meta.read_group}": '' - ].join(' ').trim() } + ext.args = { + [ + '-M', + params.bwa_min_score ? " -T ${params.bwa_min_score}" : '', + meta.read_group ? "-R ${meta.read_group}": '' + ].join(' ').trim() + } ext.args2 = '-bhS -F 0x0100 -O BAM' ext.prefix = { "${meta.id}.Lb" } publishDir = [ diff --git a/subworkflows/nf-core/align_bwa_mem.nf b/subworkflows/nf-core/align_bwa_mem.nf deleted file mode 100644 index eac98188..00000000 --- a/subworkflows/nf-core/align_bwa_mem.nf +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Map reads, sort, index BAM file and run samtools stats, flagstat and idxstats - */ - -include { BWA_MEM } from '../../modules/nf-core/bwa/mem/main' -include { BAM_SORT_SAMTOOLS } from './bam_sort_samtools' - -workflow ALIGN_BWA_MEM { - take: - reads // channel: [ val(meta), [ reads ] ] - index // path: /path/to/index - - main: - - ch_versions = Channel.empty() - - // - // Map reads with BWA - // - BWA_MEM(reads, index, false) - ch_versions = ch_versions.mix(BWA_MEM.out.versions.first()) - - // - // Sort, index BAM file and run samtools stats, flagstat and idxstats - // - BAM_SORT_SAMTOOLS(BWA_MEM.out.bam) - ch_versions = ch_versions.mix(BAM_SORT_SAMTOOLS.out.versions.first()) - - emit: - bam = BAM_SORT_SAMTOOLS.out.bam // channel: [ val(meta), [ bam ] ] - bai = BAM_SORT_SAMTOOLS.out.bai // channel: [ val(meta), [ bai ] ] - stats = BAM_SORT_SAMTOOLS.out.stats // channel: [ val(meta), [ stats ] ] - flagstat = BAM_SORT_SAMTOOLS.out.flagstat // channel: [ val(meta), [ flagstat ] ] - idxstats = BAM_SORT_SAMTOOLS.out.idxstats // channel: [ val(meta), [ idxstats ] ] - - versions = ch_versions // path: versions.yml -} diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index d2279680..dfd2df76 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -116,7 +116,8 @@ include { HOMER_ANNOTATEPEAKS as HOMER_ANNOTATEPEAKS_CONSENSUS } from '../module // include { FASTQ_FASTQC_UMITOOLS_TRIMGALORE } from '../subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/main' -include { ALIGN_BWA_MEM } from '../subworkflows/nf-core/align_bwa_mem' +include { FASTQ_ALIGN_BWA } from '../subworkflows/nf-core/fastq_align_bwa/main' + include { ALIGN_BOWTIE2 } from '../subworkflows/nf-core/align_bowtie2' include { ALIGN_CHROMAP } from '../subworkflows/nf-core/align_chromap' include { ALIGN_STAR } from '../subworkflows/nf-core/align_star' @@ -175,16 +176,18 @@ workflow CHIPSEQ { ch_samtools_flagstat = Channel.empty() ch_samtools_idxstats = Channel.empty() if (params.aligner == 'bwa') { - ALIGN_BWA_MEM ( + FASTQ_ALIGN_BWA ( FASTQ_FASTQC_UMITOOLS_TRIMGALORE.out.reads, - PREPARE_GENOME.out.bwa_index + PREPARE_GENOME.out.bwa_index, + false, + PREPARE_GENOME.out.fasta ) - ch_genome_bam = ALIGN_BWA_MEM.out.bam - ch_genome_bam_index = ALIGN_BWA_MEM.out.bai - ch_samtools_stats = ALIGN_BWA_MEM.out.stats - ch_samtools_flagstat = ALIGN_BWA_MEM.out.flagstat - ch_samtools_idxstats = ALIGN_BWA_MEM.out.idxstats - ch_versions = ch_versions.mix(ALIGN_BWA_MEM.out.versions.first()) + ch_genome_bam = FASTQ_ALIGN_BWA.out.bam + ch_genome_bam_index = FASTQ_ALIGN_BWA.out.bai + ch_samtools_stats = FASTQ_ALIGN_BWA.out.stats + ch_samtools_flagstat = FASTQ_ALIGN_BWA.out.flagstat + ch_samtools_idxstats = FASTQ_ALIGN_BWA.out.idxstats + ch_versions = ch_versions.mix(FASTQ_ALIGN_BWA.out.versions) } // From d7f074a63793bcb3ad9b51af0ee2bc7511a3159c Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 18 Apr 2023 10:25:46 +0200 Subject: [PATCH 032/201] Use FASTQ_ALIGN_BOWTIE2 subworkflow --- subworkflows/nf-core/align_bowtie2.nf | 38 --------------------------- workflows/chipseq.nf | 20 +++++++------- 2 files changed, 11 insertions(+), 47 deletions(-) delete mode 100644 subworkflows/nf-core/align_bowtie2.nf diff --git a/subworkflows/nf-core/align_bowtie2.nf b/subworkflows/nf-core/align_bowtie2.nf deleted file mode 100644 index 4661c720..00000000 --- a/subworkflows/nf-core/align_bowtie2.nf +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Map reads, sort, index BAM file and run samtools stats, flagstat and idxstats - */ - -include { BOWTIE2_ALIGN } from '../../modules/nf-core/bowtie2/align/main' -include { BAM_SORT_SAMTOOLS } from './bam_sort_samtools' - -workflow ALIGN_BOWTIE2 { - take: - reads // channel: [ val(meta), [ reads ] ] - index // path: /path/to/index - save_unaligned // boolean: true/false - - main: - - ch_versions = Channel.empty() - - // - // Map reads with BWA - // - BOWTIE2_ALIGN(reads, index, save_unaligned, false) - ch_versions = ch_versions.mix(BOWTIE2_ALIGN.out.versions.first()) - - // - // Sort, index BAM file and run samtools stats, flagstat and idxstats - // - BAM_SORT_SAMTOOLS(BOWTIE2_ALIGN.out.bam) - ch_versions = ch_versions.mix(BAM_SORT_SAMTOOLS.out.versions.first()) - - emit: - bam = BAM_SORT_SAMTOOLS.out.bam // channel: [ val(meta), [ bam ] ] - bai = BAM_SORT_SAMTOOLS.out.bai // channel: [ val(meta), [ bai ] ] - stats = BAM_SORT_SAMTOOLS.out.stats // channel: [ val(meta), [ stats ] ] - flagstat = BAM_SORT_SAMTOOLS.out.flagstat // channel: [ val(meta), [ flagstat ] ] - idxstats = BAM_SORT_SAMTOOLS.out.idxstats // channel: [ val(meta), [ idxstats ] ] - - versions = ch_versions // path: versions.yml -} diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index dfd2df76..45de3811 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -117,8 +117,8 @@ include { HOMER_ANNOTATEPEAKS as HOMER_ANNOTATEPEAKS_CONSENSUS } from '../module include { FASTQ_FASTQC_UMITOOLS_TRIMGALORE } from '../subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/main' include { FASTQ_ALIGN_BWA } from '../subworkflows/nf-core/fastq_align_bwa/main' +include { FASTQ_ALIGN_BOWTIE2 } from '../subworkflows/nf-core/fastq_align_bowtie2/main' -include { ALIGN_BOWTIE2 } from '../subworkflows/nf-core/align_bowtie2' include { ALIGN_CHROMAP } from '../subworkflows/nf-core/align_chromap' include { ALIGN_STAR } from '../subworkflows/nf-core/align_star' include { MARK_DUPLICATES_PICARD } from '../subworkflows/nf-core/mark_duplicates_picard' @@ -194,17 +194,19 @@ workflow CHIPSEQ { // SUBWORKFLOW: Alignment with Bowtie2 & BAM QC // if (params.aligner == 'bowtie2') { - ALIGN_BOWTIE2 ( + FASTQ_ALIGN_BOWTIE2 ( FASTQ_FASTQC_UMITOOLS_TRIMGALORE.out.reads, PREPARE_GENOME.out.bowtie2_index, - params.save_unaligned + params.save_unaligned, + false, + PREPARE_GENOME.out.fasta ) - ch_genome_bam = ALIGN_BOWTIE2.out.bam - ch_genome_bam_index = ALIGN_BOWTIE2.out.bai - ch_samtools_stats = ALIGN_BOWTIE2.out.stats - ch_samtools_flagstat = ALIGN_BOWTIE2.out.flagstat - ch_samtools_idxstats = ALIGN_BOWTIE2.out.idxstats - ch_versions = ch_versions.mix(ALIGN_BOWTIE2.out.versions.first()) + ch_genome_bam = FASTQ_ALIGN_BOWTIE2.out.bam + ch_genome_bam_index = FASTQ_ALIGN_BOWTIE2.out.bai + ch_samtools_stats = FASTQ_ALIGN_BOWTIE2.out.stats + ch_samtools_flagstat = FASTQ_ALIGN_BOWTIE2.out.flagstat + ch_samtools_idxstats = FASTQ_ALIGN_BOWTIE2.out.idxstats + ch_versions = ch_versions.mix(FASTQ_ALIGN_BOWTIE2.out.versions.first()) } // From 28de291ad88fc1c6c8fac99932f9558ae22174b9 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 18 Apr 2023 16:01:06 +0200 Subject: [PATCH 033/201] Install custom/getchromsizes and picard/collectmultiplemetrics --- modules.json | 7 +++--- .../getchromsizes/custom-getchromsizes.diff | 23 ------------------- modules/nf-core/custom/getchromsizes/main.nf | 15 ++++++------ .../picard/collectmultiplemetrics/main.nf | 20 ++++++++-------- .../picard/collectmultiplemetrics/meta.yml | 18 +++++++++++++-- 5 files changed, 37 insertions(+), 46 deletions(-) delete mode 100644 modules/nf-core/custom/getchromsizes/custom-getchromsizes.diff diff --git a/modules.json b/modules.json index d7abe7b4..22fd3128 100644 --- a/modules.json +++ b/modules.json @@ -42,9 +42,8 @@ }, "custom/getchromsizes": { "branch": "master", - "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": ["modules"], - "patch": "modules/nf-core/custom/getchromsizes/custom-getchromsizes.diff" + "git_sha": "c8e35eb2055c099720a75538d1b8adb3fb5a464c", + "installed_by": ["modules"] }, "deeptools/computematrix": { "branch": "master", @@ -108,7 +107,7 @@ }, "picard/collectmultiplemetrics": { "branch": "master", - "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", + "git_sha": "75027bf77472b1f4fd2cdd7e46f83119dfb0f2c6", "installed_by": ["modules"] }, "picard/markduplicates": { diff --git a/modules/nf-core/custom/getchromsizes/custom-getchromsizes.diff b/modules/nf-core/custom/getchromsizes/custom-getchromsizes.diff deleted file mode 100644 index 18fda554..00000000 --- a/modules/nf-core/custom/getchromsizes/custom-getchromsizes.diff +++ /dev/null @@ -1,23 +0,0 @@ -Changes in module 'nf-core/custom/getchromsizes' ---- modules/nf-core/custom/getchromsizes/main.nf -+++ modules/nf-core/custom/getchromsizes/main.nf -@@ -8,13 +8,12 @@ - 'quay.io/biocontainers/samtools:1.15.1--h1170115_0' }" - - input: -- tuple val(meta), path(fasta) -+ path(fasta) - - output: -- tuple val(meta), path ("*.sizes"), emit: sizes -- tuple val(meta), path ("*.fai") , emit: fai -- tuple val(meta), path ("*.gzi") , emit: gzi, optional: true -- path "versions.yml" , emit: versions -+ path '*.sizes' , emit: sizes -+ path '*.fai' , emit: fai -+ path "versions.yml", emit: versions - - when: - task.ext.when == null || task.ext.when - -************************************************************ diff --git a/modules/nf-core/custom/getchromsizes/main.nf b/modules/nf-core/custom/getchromsizes/main.nf index 562c693e..580f87fe 100644 --- a/modules/nf-core/custom/getchromsizes/main.nf +++ b/modules/nf-core/custom/getchromsizes/main.nf @@ -2,18 +2,19 @@ process CUSTOM_GETCHROMSIZES { tag "$fasta" label 'process_single' - conda (params.enable_conda ? "bioconda::samtools=1.15.1" : null) + conda "bioconda::samtools=1.16.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.15.1--h1170115_0' : - 'quay.io/biocontainers/samtools:1.15.1--h1170115_0' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.16.1--h6899075_1' : + 'quay.io/biocontainers/samtools:1.16.1--h6899075_1' }" input: - path(fasta) + tuple val(meta), path(fasta) output: - path '*.sizes' , emit: sizes - path '*.fai' , emit: fai - path "versions.yml", emit: versions + tuple val(meta), path ("*.sizes"), emit: sizes + tuple val(meta), path ("*.fai") , emit: fai + tuple val(meta), path ("*.gzi") , emit: gzi, optional: true + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when diff --git a/modules/nf-core/picard/collectmultiplemetrics/main.nf b/modules/nf-core/picard/collectmultiplemetrics/main.nf index 63f4e872..ed88dbe7 100644 --- a/modules/nf-core/picard/collectmultiplemetrics/main.nf +++ b/modules/nf-core/picard/collectmultiplemetrics/main.nf @@ -1,16 +1,16 @@ process PICARD_COLLECTMULTIPLEMETRICS { tag "$meta.id" - label 'process_medium' + label 'process_single' - conda (params.enable_conda ? "bioconda::picard=2.27.4" : null) + conda "bioconda::picard=3.0.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/picard:2.27.4--hdfd78af_0' : - 'quay.io/biocontainers/picard:2.27.4--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/picard:3.0.0--hdfd78af_1' : + 'quay.io/biocontainers/picard:3.0.0--hdfd78af_1' }" input: - tuple val(meta), path(bam) - path fasta - path fai + tuple val(meta) , path(bam), path(bai) + tuple val(meta2), path(fasta) + tuple val(meta3), path(fai) output: tuple val(meta), path("*_metrics"), emit: metrics @@ -24,15 +24,15 @@ process PICARD_COLLECTMULTIPLEMETRICS { def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" def reference = fasta ? "--REFERENCE_SEQUENCE ${fasta}" : "" - def avail_mem = 3 + def avail_mem = 3072 if (!task.memory) { log.info '[Picard CollectMultipleMetrics] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' } else { - avail_mem = task.memory.giga + avail_mem = (task.memory.mega*0.8).intValue() } """ picard \\ - -Xmx${avail_mem}g \\ + -Xmx${avail_mem}M \\ CollectMultipleMetrics \\ $args \\ --INPUT $bam \\ diff --git a/modules/nf-core/picard/collectmultiplemetrics/meta.yml b/modules/nf-core/picard/collectmultiplemetrics/meta.yml index c11b02cf..22656080 100644 --- a/modules/nf-core/picard/collectmultiplemetrics/meta.yml +++ b/modules/nf-core/picard/collectmultiplemetrics/meta.yml @@ -23,11 +23,25 @@ input: e.g. [ id:'test', single_end:false ] - bam: type: file - description: BAM file - pattern: "*.{bam}" + description: SAM/BAM/CRAM file + pattern: "*.{sam,bam,cram}" + - bai: + type: file + description: Optional SAM/BAM/CRAM file index + pattern: "*.{sai,bai,crai}" + - meta2: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'genome'] - fasta: type: file description: Genome fasta file + - meta3: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'genome'] - fai: type: file description: Index of FASTA file. Only needed when fasta is supplied. From 4c462b3134dfb423e983be69a94180218edea8c7 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 18 Apr 2023 16:07:24 +0200 Subject: [PATCH 034/201] Remove substituted modules and subworkflows --- modules/local/bam_filter.nf | 47 ----------------------- subworkflows/local/filter_bam_bamtools.nf | 36 ----------------- subworkflows/nf-core/align_chromap.nf | 38 ------------------ subworkflows/nf-core/align_star.nf | 46 ---------------------- subworkflows/nf-core/bam_sort_samtools.nf | 34 ---------------- 5 files changed, 201 deletions(-) delete mode 100644 modules/local/bam_filter.nf delete mode 100644 subworkflows/local/filter_bam_bamtools.nf delete mode 100644 subworkflows/nf-core/align_chromap.nf delete mode 100644 subworkflows/nf-core/align_star.nf delete mode 100644 subworkflows/nf-core/bam_sort_samtools.nf diff --git a/modules/local/bam_filter.nf b/modules/local/bam_filter.nf deleted file mode 100644 index ff07c084..00000000 --- a/modules/local/bam_filter.nf +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Filter BAM file - */ -process BAM_FILTER { - tag "$meta.id" - label 'process_medium' - - conda (params.enable_conda ? "bioconda::bamtools=2.5.2 bioconda::samtools=1.15.1" : null) - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-0560a8046fc82aa4338588eca29ff18edab2c5aa:5687a7da26983502d0a8a9a6b05ed727c740ddc4-0' : - 'quay.io/biocontainers/mulled-v2-0560a8046fc82aa4338588eca29ff18edab2c5aa:5687a7da26983502d0a8a9a6b05ed727c740ddc4-0' }" - - input: - tuple val(meta), path(bam), path(bai) - path bed - path bamtools_filter_se_config - path bamtools_filter_pe_config - - output: - tuple val(meta), path("*.bam"), emit: bam - path "versions.yml" , emit: versions - - script: - def prefix = task.ext.prefix ?: "${meta.id}" - def filter_params = meta.single_end ? '-F 0x004' : '-F 0x004 -F 0x0008 -f 0x001' - def dup_params = params.keep_dups ? '' : '-F 0x0400' - def multimap_params = params.keep_multi_map ? '' : '-q 1' - def blacklist_params = params.blacklist ? "-L $bed" : '' - def config = meta.single_end ? bamtools_filter_se_config : bamtools_filter_pe_config - """ - samtools view \\ - $filter_params \\ - $dup_params \\ - $multimap_params \\ - $blacklist_params \\ - -b $bam \\ - | bamtools filter \\ - -out ${prefix}.bam \\ - -script $config - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') - bamtools: \$(echo \$(bamtools --version 2>&1) | sed 's/^.*bamtools //; s/Part .*\$//') - END_VERSIONS - """ -} diff --git a/subworkflows/local/filter_bam_bamtools.nf b/subworkflows/local/filter_bam_bamtools.nf deleted file mode 100644 index 40e9b1be..00000000 --- a/subworkflows/local/filter_bam_bamtools.nf +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Filter BAM file - */ - -include { BAM_FILTER } from '../../modules/local/bam_filter' -include { BAM_REMOVE_ORPHANS } from '../../modules/local/bam_remove_orphans' -include { BAM_SORT_SAMTOOLS } from '../nf-core/bam_sort_samtools' - -workflow FILTER_BAM_BAMTOOLS { - take: - ch_bam_bai // channel: [ val(meta), [ bam ], [bai] ] - ch_bed // channel: [ bed ] - bamtools_filter_se_config // file: BAMtools filter JSON config file for SE data - bamtools_filter_pe_config // file: BAMtools filter JSON config file for PE data - - main: - ch_versions = Channel.empty() - - BAM_FILTER(ch_bam_bai, ch_bed, bamtools_filter_se_config, bamtools_filter_pe_config) - BAM_REMOVE_ORPHANS(BAM_FILTER.out.bam) - BAM_SORT_SAMTOOLS(BAM_REMOVE_ORPHANS.out.bam) - - ch_versions = ch_versions.mix(BAM_FILTER.out.versions, - BAM_REMOVE_ORPHANS.out.versions, - BAM_SORT_SAMTOOLS.out.versions) - - emit: - name_bam = BAM_REMOVE_ORPHANS.out.bam // channel: [ val(meta), [ bam ] ] - bam = BAM_SORT_SAMTOOLS.out.bam // channel: [ val(meta), [ bam ] ] - bai = BAM_SORT_SAMTOOLS.out.bai // channel: [ val(meta), [ bai ] ] - stats = BAM_SORT_SAMTOOLS.out.stats // channel: [ val(meta), [ stats ] ] - flagstat = BAM_SORT_SAMTOOLS.out.flagstat // channel: [ val(meta), [ flagstat ] ] - idxstats = BAM_SORT_SAMTOOLS.out.idxstats // channel: [ val(meta), [ idxstats ] ] - - versions = ch_versions // channel: [ versions.yml ] -} diff --git a/subworkflows/nf-core/align_chromap.nf b/subworkflows/nf-core/align_chromap.nf deleted file mode 100644 index 29b77442..00000000 --- a/subworkflows/nf-core/align_chromap.nf +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Map reads, sort, index BAM file and run samtools stats, flagstat and idxstats - */ - -include { CHROMAP_CHROMAP } from '../../modules/nf-core/chromap/chromap/main' -include { BAM_SORT_SAMTOOLS } from './bam_sort_samtools' - -workflow ALIGN_CHROMAP { - take: - reads // channel: [ val(meta), [ reads ] ] - index // path: /path/to/index - fasta // path: /path/to/fasta - - main: - - ch_versions = Channel.empty() - - // - // Map reads with CHROMAP - // - CHROMAP_CHROMAP(reads, fasta, index, [], [], [], []) - ch_versions = ch_versions.mix(CHROMAP_CHROMAP.out.versions.first()) - - // - // Sort, index BAM file and run samtools stats, flagstat and idxstats - // - BAM_SORT_SAMTOOLS(CHROMAP_CHROMAP.out.bam) - ch_versions = ch_versions.mix(BAM_SORT_SAMTOOLS.out.versions.first()) - - emit: - bam = BAM_SORT_SAMTOOLS.out.bam // channel: [ val(meta), [ bam ] ] - bai = BAM_SORT_SAMTOOLS.out.bai // channel: [ val(meta), [ bai ] ] - stats = BAM_SORT_SAMTOOLS.out.stats // channel: [ val(meta), [ stats ] ] - flagstat = BAM_SORT_SAMTOOLS.out.flagstat // channel: [ val(meta), [ flagstat ] ] - idxstats = BAM_SORT_SAMTOOLS.out.idxstats // channel: [ val(meta), [ idxstats ] ] - - versions = ch_versions // path: versions.yml -} diff --git a/subworkflows/nf-core/align_star.nf b/subworkflows/nf-core/align_star.nf deleted file mode 100644 index 47462182..00000000 --- a/subworkflows/nf-core/align_star.nf +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Map reads, sort, index BAM file and run samtools stats, flagstat and idxstats - */ - -include { STAR_ALIGN } from '../../modules/local/star_align' -include { BAM_SORT_SAMTOOLS } from './bam_sort_samtools' - -workflow ALIGN_STAR { - take: - reads // channel: [ val(meta), [ reads ] ] - index // channel: /path/to/star/index/ - - main: - - ch_versions = Channel.empty() - - // - // Map reads with STAR - // - STAR_ALIGN ( reads, index ) - ch_versions = ch_versions.mix(STAR_ALIGN.out.versions.first()) - - // - // Sort, index BAM file and run samtools stats, flagstat and idxstats - // - BAM_SORT_SAMTOOLS ( STAR_ALIGN.out.bam ) - ch_versions = ch_versions.mix(BAM_SORT_SAMTOOLS.out.versions) - - emit: - orig_bam = STAR_ALIGN.out.bam // channel: [ val(meta), bam ] - log_final = STAR_ALIGN.out.log_final // channel: [ val(meta), log_final ] - log_out = STAR_ALIGN.out.log_out // channel: [ val(meta), log_out ] - log_progress = STAR_ALIGN.out.log_progress // channel: [ val(meta), log_progress ] - bam_sorted = STAR_ALIGN.out.bam_sorted // channel: [ val(meta), bam_sorted ] - bam_transcript = STAR_ALIGN.out.bam_transcript // channel: [ val(meta), bam_transcript ] - fastq = STAR_ALIGN.out.fastq // channel: [ val(meta), fastq ] - tab = STAR_ALIGN.out.tab // channel: [ val(meta), tab ] - - bam = BAM_SORT_SAMTOOLS.out.bam // channel: [ val(meta), [ bam ] ] - bai = BAM_SORT_SAMTOOLS.out.bai // channel: [ val(meta), [ bai ] ] - stats = BAM_SORT_SAMTOOLS.out.stats // channel: [ val(meta), [ stats ] ] - flagstat = BAM_SORT_SAMTOOLS.out.flagstat // channel: [ val(meta), [ flagstat ] ] - idxstats = BAM_SORT_SAMTOOLS.out.idxstats // channel: [ val(meta), [ idxstats ] ] - - versions = ch_versions // channel: [ versions.yml ] -} diff --git a/subworkflows/nf-core/bam_sort_samtools.nf b/subworkflows/nf-core/bam_sort_samtools.nf deleted file mode 100644 index deb06c4d..00000000 --- a/subworkflows/nf-core/bam_sort_samtools.nf +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Sort, index BAM file and run samtools stats, flagstat and idxstats - */ - -include { SAMTOOLS_SORT } from '../../modules/nf-core/samtools/sort/main' -include { SAMTOOLS_INDEX } from '../../modules/nf-core/samtools/index/main' -include { BAM_STATS_SAMTOOLS } from './bam_stats_samtools' - -workflow BAM_SORT_SAMTOOLS { - take: - ch_bam // channel: [ val(meta), [ bam ] ] - - main: - - ch_versions = Channel.empty() - - SAMTOOLS_SORT(ch_bam) - ch_versions = ch_versions.mix(SAMTOOLS_SORT.out.versions.first()) - - SAMTOOLS_INDEX(SAMTOOLS_SORT.out.bam) - ch_versions = ch_versions.mix(SAMTOOLS_INDEX.out.versions.first()) - - BAM_STATS_SAMTOOLS(SAMTOOLS_SORT.out.bam.join(SAMTOOLS_INDEX.out.bai, by: [0])) - ch_versions = ch_versions.mix(BAM_STATS_SAMTOOLS.out.versions) - - emit: - bam = SAMTOOLS_SORT.out.bam // channel: [ val(meta), [ bam ] ] - bai = SAMTOOLS_INDEX.out.bai // channel: [ val(meta), [ bai ] ] - stats = BAM_STATS_SAMTOOLS.out.stats // channel: [ val(meta), [ stats ] ] - flagstat = BAM_STATS_SAMTOOLS.out.flagstat // channel: [ val(meta), [ flagstat ] ] - idxstats = BAM_STATS_SAMTOOLS.out.idxstats // channel: [ val(meta), [ idxstats ] ] - - versions = ch_versions // channel: [ versions.yml ] -} From 3a33ed9119b89cfa4eceb0020413656eeb8e5f31 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 18 Apr 2023 16:08:31 +0200 Subject: [PATCH 035/201] Rename bamtools/filter --- modules/local/bamtools_filter.nf | 43 ++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 modules/local/bamtools_filter.nf diff --git a/modules/local/bamtools_filter.nf b/modules/local/bamtools_filter.nf new file mode 100644 index 00000000..ee469ffd --- /dev/null +++ b/modules/local/bamtools_filter.nf @@ -0,0 +1,43 @@ +process BAMTOOLS_FILTER { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::bamtools=2.5.2 bioconda::samtools=1.15.1" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/mulled-v2-0560a8046fc82aa4338588eca29ff18edab2c5aa:5687a7da26983502d0a8a9a6b05ed727c740ddc4-0' : + 'quay.io/biocontainers/mulled-v2-0560a8046fc82aa4338588eca29ff18edab2c5aa:5687a7da26983502d0a8a9a6b05ed727c740ddc4-0' }" + + input: + tuple val(meta), path(bam), path(bai) + path bed + path bamtools_filter_se_config + path bamtools_filter_pe_config + + output: + tuple val(meta), path("*.bam"), emit: bam + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def blacklist = bed ? "-L $bed" : '' + def config = meta.single_end ? bamtools_filter_se_config : bamtools_filter_pe_config + """ + samtools view \\ + $args \\ + $blacklist \\ + -b $bam \\ + | bamtools filter \\ + -out ${prefix}.bam \\ + -script $config + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + bamtools: \$(echo \$(bamtools --version 2>&1) | sed 's/^.*bamtools //; s/Part .*\$//') + END_VERSIONS + """ +} From 0f70b6d380d9801eeae999c9f0d2bbc03f6b6dec Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 18 Apr 2023 16:09:37 +0200 Subject: [PATCH 036/201] add align_star local subworkflow --- subworkflows/local/align_star.nf | 48 ++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 subworkflows/local/align_star.nf diff --git a/subworkflows/local/align_star.nf b/subworkflows/local/align_star.nf new file mode 100644 index 00000000..843f303e --- /dev/null +++ b/subworkflows/local/align_star.nf @@ -0,0 +1,48 @@ +/* + * Map reads, sort, index BAM file and run samtools stats, flagstat and idxstats + */ + +include { STAR_ALIGN } from '../../modules/local/star_align' +include { BAM_SORT_STATS_SAMTOOLS } from '../nf-core/bam_sort_stats_samtools/main' + +workflow ALIGN_STAR { + take: + ch_reads // channel: [ val(meta), [ reads ] ] + ch_index // channel: /path/to/star/index/ + ch_fasta // channel: /path/to/fasta + seq_center // string: sequencing center + + main: + + ch_versions = Channel.empty() + + // + // Map reads with STAR + // + STAR_ALIGN ( ch_reads, ch_index, seq_center ) + ch_versions = ch_versions.mix(STAR_ALIGN.out.versions.first()) + + // + // Sort, index BAM file and run samtools stats, flagstat and idxstats + // + BAM_SORT_STATS_SAMTOOLS ( STAR_ALIGN.out.bam, ch_fasta ) + ch_versions = ch_versions.mix(BAM_SORT_STATS_SAMTOOLS.out.versions) + + emit: + orig_bam = STAR_ALIGN.out.bam // channel: [ val(meta), bam ] + log_final = STAR_ALIGN.out.log_final // channel: [ val(meta), log_final ] + log_out = STAR_ALIGN.out.log_out // channel: [ val(meta), log_out ] + log_progress = STAR_ALIGN.out.log_progress // channel: [ val(meta), log_progress ] + bam_sorted = STAR_ALIGN.out.bam_sorted // channel: [ val(meta), bam_sorted ] + bam_transcript = STAR_ALIGN.out.bam_transcript // channel: [ val(meta), bam_transcript ] + fastq = STAR_ALIGN.out.fastq // channel: [ val(meta), fastq ] + tab = STAR_ALIGN.out.tab // channel: [ val(meta), tab ] + + bam = BAM_SORT_STATS_SAMTOOLS.out.bam // channel: [ val(meta), [ bam ] ] + bai = BAM_SORT_STATS_SAMTOOLS.out.bai // channel: [ val(meta), [ bai ] ] + stats = BAM_SORT_STATS_SAMTOOLS.out.stats // channel: [ val(meta), [ stats ] ] + flagstat = BAM_SORT_STATS_SAMTOOLS.out.flagstat // channel: [ val(meta), [ flagstat ] ] + idxstats = BAM_SORT_STATS_SAMTOOLS.out.idxstats // channel: [ val(meta), [ idxstats ] ] + + versions = ch_versions // channel: [ versions.yml ] +} From ccbc71ccd399ab477a16b6171356091d18debbf7 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 18 Apr 2023 16:10:16 +0200 Subject: [PATCH 037/201] Refactor and rename bam_filter_bamtools --- subworkflows/local/bam_filter_bamtools.nf | 94 +++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 subworkflows/local/bam_filter_bamtools.nf diff --git a/subworkflows/local/bam_filter_bamtools.nf b/subworkflows/local/bam_filter_bamtools.nf new file mode 100644 index 00000000..a09876b2 --- /dev/null +++ b/subworkflows/local/bam_filter_bamtools.nf @@ -0,0 +1,94 @@ +include { SAMTOOLS_SORT } from '../../modules/nf-core/samtools/sort/main' +include { SAMTOOLS_INDEX } from '../../modules/nf-core/samtools/index/main' +include { BAM_SORT_STATS_SAMTOOLS } from '../nf-core/bam_sort_stats_samtools/main' +include { BAM_STATS_SAMTOOLS } from '../nf-core/bam_stats_samtools/main' + +include { BAMTOOLS_FILTER } from '../../modules/local/bamtools_filter' +include { BAM_REMOVE_ORPHANS } from '../../modules/local/bam_remove_orphans' + +workflow BAM_FILTER_BAMTOOLS { + take: + ch_bam_bai // channel: [ val(meta), [ bam ], [bai] ] + ch_bed // channel: [ bed ] + ch_fasta // channel: [ fasta ] + ch_bamtools_filter_se_config // channel: [ config_file ] + ch_bamtools_filter_pe_config // channel: [ config_file ] + + main: + + ch_versions = Channel.empty() + + // + // Filter BAM file with BAMTools + // + BAMTOOLS_FILTER ( + ch_bam_bai, + ch_bed, + ch_bamtools_filter_se_config, + ch_bamtools_filter_pe_config + ) + ch_versions = ch_versions.mix(BAMTOOLS_FILTER.out.versions.first()) + + BAMTOOLS_FILTER + .out + .bam + .branch { + meta, bam -> + single_end: meta.single_end + return [ meta, bam ] + paired_end: !meta.single_end + return [ meta, bam ] + } + .set { ch_bam } + + // + // Index SE BAM file + // + SAMTOOLS_INDEX { + ch_bam.single_end + } + ch_versions = ch_versions.mix(SAMTOOLS_INDEX.out.versions.first()) + + // + // Run samtools stats, flagstat and idxstats on SE BAM + // + BAM_STATS_SAMTOOLS ( + ch_bam.single_end.join(SAMTOOLS_INDEX.out.bai), + ch_fasta + ) + ch_versions = ch_versions.mix(BAM_STATS_SAMTOOLS.out.versions.first()) + + // + // Name sort PE BAM before filtering with pysam + // + SAMTOOLS_SORT ( + ch_bam.paired_end + ) + ch_versions = ch_versions.mix(SAMTOOLS_SORT.out.versions.first()) + + // + // Remove orphan reads from PE BAM file + // + BAM_REMOVE_ORPHANS ( + SAMTOOLS_SORT.out.bam + ) + ch_versions = ch_versions.mix(BAM_REMOVE_ORPHANS.out.versions.first()) + + // + // Sort, index PE BAM file and run samtools stats, flagstat and idxstats + // + BAM_SORT_STATS_SAMTOOLS ( + BAM_REMOVE_ORPHANS.out.bam, + ch_fasta + ) + ch_versions = ch_versions.mix(BAM_SORT_STATS_SAMTOOLS.out.versions.first()) + + emit: + name_bam = SAMTOOLS_SORT.out.bam // channel: [ val(meta), [ bam ] ] + bam = BAM_SORT_STATS_SAMTOOLS.out.bam.mix(ch_bam.single_end) // channel: [ val(meta), [ bam ] ] + bai = BAM_SORT_STATS_SAMTOOLS.out.bai.mix(SAMTOOLS_INDEX.out.bai) // channel: [ val(meta), [ bai ] ] + stats = BAM_SORT_STATS_SAMTOOLS.out.stats.mix(BAM_STATS_SAMTOOLS.out.stats) // channel: [ val(meta), [ stats ] ] + flagstat = BAM_SORT_STATS_SAMTOOLS.out.flagstat.mix(BAM_STATS_SAMTOOLS.out.flagstat) // channel: [ val(meta), [ flagstat ] ] + idxstats = BAM_SORT_STATS_SAMTOOLS.out.idxstats.mix(BAM_STATS_SAMTOOLS.out.idxstats) // channel: [ val(meta), [ idxstats ] ] + versions = ch_versions // channel: [ versions.yml ] +} From 0230090cc51443955e07ac2e21602cdb3bfe2e16 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 18 Apr 2023 16:11:27 +0200 Subject: [PATCH 038/201] Refactor code to use nf-core official subworkflows --- conf/modules.config | 14 +++--- subworkflows/local/prepare_genome.nf | 6 ++- workflows/chipseq.nf | 75 ++++++++++++++++++---------- 3 files changed, 61 insertions(+), 34 deletions(-) diff --git a/conf/modules.config b/conf/modules.config index 01316ea6..809e6ec1 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -181,7 +181,7 @@ if (!params.skip_trimming) { } process { - withName: 'NFCORE_CHIPSEQ:CHIPSEQ:ALIGN_.*:BAM_SORT_SAMTOOLS:SAMTOOLS_SORT' { + withName: 'NFCORE_CHIPSEQ:CHIPSEQ:.*:BAM_SORT_STATS_SAMTOOLS:SAMTOOLS_SORT' { ext.prefix = { "${meta.id}.Lb.sorted" } publishDir = [ path: { "${params.outdir}/${params.aligner}/library" }, @@ -191,7 +191,7 @@ process { ] } - withName: 'NFCORE_CHIPSEQ:CHIPSEQ:ALIGN_.*:BAM_SORT_SAMTOOLS:SAMTOOLS_INDEX' { + withName: 'NFCORE_CHIPSEQ:CHIPSEQ:.*:BAM_SORT_STATS_SAMTOOLS:SAMTOOLS_INDEX' { publishDir = [ path: { "${params.outdir}/${params.aligner}/library" }, mode: params.publish_dir_mode, @@ -200,7 +200,7 @@ process { ] } - withName: 'NFCORE_CHIPSEQ:CHIPSEQ:ALIGN_.*:BAM_SORT_SAMTOOLS:BAM_STATS_SAMTOOLS:SAMTOOLS_.*' { + withName: 'NFCORE_CHIPSEQ:CHIPSEQ:.*:BAM_SORT_STATS_SAMTOOLS:BAM_STATS_SAMTOOLS:SAMTOOLS_.*' { ext.prefix = { "${meta.id}.Lb.sorted.bam" } publishDir = [ path: { "${params.outdir}/${params.aligner}/library/samtools_stats/" }, @@ -359,7 +359,7 @@ process { } // Should only be published when paired end data is used and save_align_intermeds is true - withName: 'BAM_FILTER' { + withName: 'BAMTOOLS_FILTER' { ext.prefix = { meta.single_end ? "${meta.id}.mLb.noPublish" : "${meta.id}.mLb.flT.sorted" } publishDir = [ path: { "${params.outdir}/${params.aligner}/mergedLibrary" }, @@ -375,7 +375,7 @@ process { publishDir = [ enabled: false ] } - withName: 'NFCORE_CHIPSEQ:CHIPSEQ:FILTER_BAM_BAMTOOLS:BAM_SORT_SAMTOOLS:SAMTOOLS_SORT' { + withName: 'NFCORE_CHIPSEQ:CHIPSEQ:BAM_FILTER_BAMTOOLS:SAMTOOLS_SORT' { ext.prefix = { "${meta.id}.mLb.clN.sorted" } publishDir = [ path: { "${params.outdir}/${params.aligner}/mergedLibrary" }, @@ -384,7 +384,7 @@ process { ] } - withName: 'NFCORE_CHIPSEQ:CHIPSEQ:FILTER_BAM_BAMTOOLS:BAM_SORT_SAMTOOLS:SAMTOOLS_INDEX' { + withName: 'NFCORE_CHIPSEQ:CHIPSEQ:BAM_FILTER_BAMTOOLS:SAMTOOLS_INDEX' { ext.prefix = { "${meta.id}.mLb.clN.sorted" } publishDir = [ path: { "${params.outdir}/${params.aligner}/mergedLibrary" }, @@ -393,7 +393,7 @@ process { ] } - withName: 'NFCORE_CHIPSEQ:CHIPSEQ:FILTER_BAM_BAMTOOLS:BAM_SORT_SAMTOOLS:BAM_STATS_SAMTOOLS:.*' { + withName: 'NFCORE_CHIPSEQ:CHIPSEQ:BAM_FILTER_BAMTOOLS:BAM_STATS_SAMTOOLS:.*' { ext.prefix = { "${meta.id}.mLb.clN.sorted.bam" } publishDir = [ path: { "${params.outdir}/${params.aligner}/mergedLibrary/samtools_stats" }, diff --git a/subworkflows/local/prepare_genome.nf b/subworkflows/local/prepare_genome.nf index ed5377bf..456c20d8 100644 --- a/subworkflows/local/prepare_genome.nf +++ b/subworkflows/local/prepare_genome.nf @@ -114,7 +114,8 @@ workflow PREPARE_GENOME { // // Create chromosome sizes file // - ch_chrom_sizes = CUSTOM_GETCHROMSIZES ( ch_fasta ).sizes + ch_chrom_sizes = CUSTOM_GETCHROMSIZES ( [ [:], ch_fasta ] ).sizes.map{ it[1] } + ch_fai = CUSTOM_GETCHROMSIZES.out.fai.map{ it[1] } ch_versions = ch_versions.mix(CUSTOM_GETCHROMSIZES.out.versions) // @@ -123,7 +124,7 @@ workflow PREPARE_GENOME { ch_genome_filtered_bed = Channel.empty() GENOME_BLACKLIST_REGIONS ( - CUSTOM_GETCHROMSIZES.out.sizes, + CUSTOM_GETCHROMSIZES.out.sizes.map{ it[1] }, ch_blacklist.ifEmpty([]) ) ch_genome_filtered_bed = GENOME_BLACKLIST_REGIONS.out.bed @@ -204,6 +205,7 @@ workflow PREPARE_GENOME { emit: fasta = ch_fasta // path: genome.fasta + fai = ch_fai // path: genome.fai gtf = ch_gtf // path: genome.gtf gene_bed = ch_gene_bed // path: gene.bed chrom_sizes = ch_chrom_sizes // path: genome.sizes diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index 45de3811..f60c8ab3 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -82,7 +82,8 @@ include { MULTIQC_CUSTOM_PEAKS } from '../modules/local/multiqc_c // include { INPUT_CHECK } from '../subworkflows/local/input_check' include { PREPARE_GENOME } from '../subworkflows/local/prepare_genome' -include { FILTER_BAM_BAMTOOLS } from '../subworkflows/local/filter_bam_bamtools' +include { ALIGN_STAR } from '../subworkflows/local/align_star' +include { BAM_FILTER_BAMTOOLS } from '../subworkflows/local/bam_filter_bamtools' /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -118,10 +119,8 @@ include { HOMER_ANNOTATEPEAKS as HOMER_ANNOTATEPEAKS_CONSENSUS } from '../module include { FASTQ_FASTQC_UMITOOLS_TRIMGALORE } from '../subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/main' include { FASTQ_ALIGN_BWA } from '../subworkflows/nf-core/fastq_align_bwa/main' include { FASTQ_ALIGN_BOWTIE2 } from '../subworkflows/nf-core/fastq_align_bowtie2/main' - -include { ALIGN_CHROMAP } from '../subworkflows/nf-core/align_chromap' -include { ALIGN_STAR } from '../subworkflows/nf-core/align_star' -include { MARK_DUPLICATES_PICARD } from '../subworkflows/nf-core/mark_duplicates_picard' +include { FASTQ_ALIGN_CHROMAP } from '../subworkflows/nf-core/fastq_align_chromap/main' +include { MARK_DUPLICATES_PICARD } from '../subworkflows/nf-core/mark_duplicates_picard' /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -213,20 +212,24 @@ workflow CHIPSEQ { // SUBWORKFLOW: Alignment with Chromap & BAM QC // if (params.aligner == 'chromap') { - ALIGN_CHROMAP ( + FASTQ_ALIGN_CHROMAP ( FASTQ_FASTQC_UMITOOLS_TRIMGALORE.out.reads, PREPARE_GENOME.out.chromap_index, PREPARE_GENOME.out.fasta .map { [ [:], it ] - } + }, + [], + [], + [], + [] ) - ch_genome_bam = ALIGN_CHROMAP.out.bam - ch_genome_bam_index = ALIGN_CHROMAP.out.bai - ch_samtools_stats = ALIGN_CHROMAP.out.stats - ch_samtools_flagstat = ALIGN_CHROMAP.out.flagstat - ch_samtools_idxstats = ALIGN_CHROMAP.out.idxstats - ch_versions = ch_versions.mix(ALIGN_CHROMAP.out.versions.first()) + ch_genome_bam = FASTQ_ALIGN_CHROMAP.out.bam + ch_genome_bam_index = FASTQ_ALIGN_CHROMAP.out.bai + ch_samtools_stats = FASTQ_ALIGN_CHROMAP.out.stats + ch_samtools_flagstat = FASTQ_ALIGN_CHROMAP.out.flagstat + ch_samtools_idxstats = FASTQ_ALIGN_CHROMAP.out.idxstats + ch_versions = ch_versions.mix(FASTQ_ALIGN_CHROMAP.out.versions.first()) } // @@ -282,13 +285,14 @@ workflow CHIPSEQ { // // SUBWORKFLOW: Filter BAM file with BamTools // - FILTER_BAM_BAMTOOLS ( + BAM_FILTER_BAMTOOLS ( MARK_DUPLICATES_PICARD.out.bam.join(MARK_DUPLICATES_PICARD.out.bai, by: [0]), PREPARE_GENOME.out.filtered_bed.first(), + PREPARE_GENOME.out.fasta, ch_bamtools_filter_se_config, ch_bamtools_filter_pe_config ) - ch_versions = ch_versions.mix(FILTER_BAM_BAMTOOLS.out.versions.first().ifEmpty(null)) + ch_versions = ch_versions.mix(BAM_FILTER_BAMTOOLS.out.versions.first().ifEmpty(null)) // // MODULE: Preseq coverage analysis @@ -305,12 +309,33 @@ workflow CHIPSEQ { // // MODULE: Picard post alignment QC // + BAM_FILTER_BAMTOOLS + .out + .bam + .map { + [ it[0], it[1], [] ] + } ch_picardcollectmultiplemetrics_multiqc = Channel.empty() if (!params.skip_picard_metrics) { PICARD_COLLECTMULTIPLEMETRICS ( - FILTER_BAM_BAMTOOLS.out.bam, - PREPARE_GENOME.out.fasta, - [] + BAM_FILTER_BAMTOOLS + .out + .bam + .map { + [ it[0], it[1], [] ] + }, + PREPARE_GENOME + .out + .fasta + .map { + [ [:], it ] + }, + PREPARE_GENOME + .out + .fai + .map { + [ [:], it ] + } ) ch_picardcollectmultiplemetrics_multiqc = PICARD_COLLECTMULTIPLEMETRICS.out.metrics ch_versions = ch_versions.mix(PICARD_COLLECTMULTIPLEMETRICS.out.versions.first()) @@ -325,7 +350,7 @@ workflow CHIPSEQ { ch_multiqc_phantompeakqualtools_correlation_multiqc = Channel.empty() if (!params.skip_spp) { PHANTOMPEAKQUALTOOLS ( - FILTER_BAM_BAMTOOLS.out.bam + BAM_FILTER_BAMTOOLS.out.bam ) ch_phantompeakqualtools_spp_multiqc = PHANTOMPEAKQUALTOOLS.out.spp ch_versions = ch_versions.mix(PHANTOMPEAKQUALTOOLS.out.versions.first()) @@ -348,7 +373,7 @@ workflow CHIPSEQ { // MODULE: BedGraph coverage tracks // BEDTOOLS_GENOMECOV ( - FILTER_BAM_BAMTOOLS.out.bam.join(FILTER_BAM_BAMTOOLS.out.flagstat, by: [0]) + BAM_FILTER_BAMTOOLS.out.bam.join(BAM_FILTER_BAMTOOLS.out.flagstat, by: [0]) ) ch_versions = ch_versions.mix(BEDTOOLS_GENOMECOV.out.versions.first()) @@ -393,10 +418,10 @@ workflow CHIPSEQ { // // Create channels: [ meta, [ ip_bam, control_bam ] [ ip_bai, control_bai ] ] // - FILTER_BAM_BAMTOOLS + BAM_FILTER_BAMTOOLS .out .bam - .join(FILTER_BAM_BAMTOOLS.out.bai, by: [0]) + .join(BAM_FILTER_BAMTOOLS.out.bai, by: [0]) .set { ch_genome_bam_bai } ch_genome_bam_bai @@ -697,9 +722,9 @@ workflow CHIPSEQ { MARK_DUPLICATES_PICARD.out.idxstats.collect{it[1]}.ifEmpty([]), MARK_DUPLICATES_PICARD.out.metrics.collect{it[1]}.ifEmpty([]), - FILTER_BAM_BAMTOOLS.out.stats.collect{it[1]}.ifEmpty([]), - FILTER_BAM_BAMTOOLS.out.flagstat.collect{it[1]}.ifEmpty([]), - FILTER_BAM_BAMTOOLS.out.idxstats.collect{it[1]}.ifEmpty([]), + BAM_FILTER_BAMTOOLS.out.stats.collect{it[1]}.ifEmpty([]), + BAM_FILTER_BAMTOOLS.out.flagstat.collect{it[1]}.ifEmpty([]), + BAM_FILTER_BAMTOOLS.out.idxstats.collect{it[1]}.ifEmpty([]), ch_picardcollectmultiplemetrics_multiqc.collect{it[1]}.ifEmpty([]), ch_preseq_multiqc.collect{it[1]}.ifEmpty([]), From 3165a73b7eaacdbb78ea676bb2a1de53a9b65089 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 18 Apr 2023 17:17:02 +0200 Subject: [PATCH 039/201] Simplify code --- workflows/chipseq.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index f60c8ab3..7a01c748 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -292,7 +292,7 @@ workflow CHIPSEQ { ch_bamtools_filter_se_config, ch_bamtools_filter_pe_config ) - ch_versions = ch_versions.mix(BAM_FILTER_BAMTOOLS.out.versions.first().ifEmpty(null)) + ch_versions = ch_versions.mix(BAM_FILTER_BAMTOOLS.out.versions) // // MODULE: Preseq coverage analysis From 30312c3c5962c72757fc7ecfd3e27e84e6ea0c3a Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 18 Apr 2023 17:18:45 +0200 Subject: [PATCH 040/201] changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 173b68d1..531befa7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [[#317](https://github.com/nf-core/chipseq/issues/317)] Added metro map - [[#288](https://github.com/nf-core/chipseq/issues/291)] Bump `chromap` version 2 and enable all the steps below chromap again when paired-end data is processed. - [[#311](https://github.com/nf-core/chipseq/issues/311)] Add back `--skip_spp` parameter which was unintentionally removed from the code. +- Install available nf-core subworkflows and refactor code accordingly ## [[2.0.0](https://github.com/nf-core/chipseq/releases/tag/2.0.0)] - 2022-10-03 From 603db6303f178d655da36c9bf3986cf710353b76 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 18 Apr 2023 18:57:40 +0200 Subject: [PATCH 041/201] Resolved arguments for bamtools_filteer --- conf/modules.config | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/conf/modules.config b/conf/modules.config index 809e6ec1..dfc0c5ec 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -360,7 +360,14 @@ process { // Should only be published when paired end data is used and save_align_intermeds is true withName: 'BAMTOOLS_FILTER' { - ext.prefix = { meta.single_end ? "${meta.id}.mLb.noPublish" : "${meta.id}.mLb.flT.sorted" } + ext.args = { + [ + meta.single_end ? '-F 0x004' : '-F 0x004 -F 0x0008 -f 0x001', + params.keep_dups ? '' : '-F 0x0400', + params.keep_multi_map ? '' : '-q 1' + ].join(' ').trim() + } + ext.prefix = { meta.single_end ? "${meta.id}.mLb.noPublish" : "${meta.id}.mLb.flT.sorted" } //TODO check with atacseq publishDir = [ path: { "${params.outdir}/${params.aligner}/mergedLibrary" }, mode: params.publish_dir_mode, From 2637d88d331199b10a5c102ab5c2fc3f70c18eca Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 18 Apr 2023 19:01:08 +0200 Subject: [PATCH 042/201] Update bowtie2/align to fix the container download --- modules.json | 2 +- modules/nf-core/bowtie2/align/main.nf | 16 ++++++++-------- modules/nf-core/bowtie2/align/meta.yml | 5 +++++ 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/modules.json b/modules.json index 22fd3128..630219e6 100644 --- a/modules.json +++ b/modules.json @@ -7,7 +7,7 @@ "nf-core": { "bowtie2/align": { "branch": "master", - "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", + "git_sha": "c8e35eb2055c099720a75538d1b8adb3fb5a464c", "installed_by": ["fastq_align_bowtie2", "modules"] }, "bowtie2/build": { diff --git a/modules/nf-core/bowtie2/align/main.nf b/modules/nf-core/bowtie2/align/main.nf index c74e376f..3d851866 100644 --- a/modules/nf-core/bowtie2/align/main.nf +++ b/modules/nf-core/bowtie2/align/main.nf @@ -2,14 +2,14 @@ process BOWTIE2_ALIGN { tag "$meta.id" label "process_high" - conda (params.enable_conda ? "bioconda::bowtie2=2.4.4 bioconda::samtools=1.15.1 conda-forge::pigz=2.6" : null) - container "${ workflow.containerEngine == "singularity" && !task.ext.singularity_pull_docker_container ? - "https://depot.galaxyproject.org/singularity/mulled-v2-ac74a7f02cebcfcc07d8e8d1d750af9c83b4d45a:1744f68fe955578c63054b55309e05b41c37a80d-0" : - "quay.io/biocontainers/mulled-v2-ac74a7f02cebcfcc07d8e8d1d750af9c83b4d45a:1744f68fe955578c63054b55309e05b41c37a80d-0" }" + conda "bioconda::bowtie2=2.4.4 bioconda::samtools=1.16.1 conda-forge::pigz=2.6" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/mulled-v2-ac74a7f02cebcfcc07d8e8d1d750af9c83b4d45a:a0ffedb52808e102887f6ce600d092675bf3528a-0' : + 'quay.io/biocontainers/mulled-v2-ac74a7f02cebcfcc07d8e8d1d750af9c83b4d45a:a0ffedb52808e102887f6ce600d092675bf3528a-0' }" input: - tuple val(meta), path(reads) - path index + tuple val(meta) , path(reads) + tuple val(meta2), path(index) val save_unaligned val sort_bam @@ -40,8 +40,8 @@ process BOWTIE2_ALIGN { def samtools_command = sort_bam ? 'sort' : 'view' """ - INDEX=`find -L ./ -name "*.rev.1.bt2" | sed "s/.rev.1.bt2//"` - [ -z "\$INDEX" ] && INDEX=`find -L ./ -name "*.rev.1.bt2l" | sed "s/.rev.1.bt2l//"` + INDEX=`find -L ./ -name "*.rev.1.bt2" | sed "s/\\.rev.1.bt2\$//"` + [ -z "\$INDEX" ] && INDEX=`find -L ./ -name "*.rev.1.bt2l" | sed "s/\\.rev.1.bt2l\$//"` [ -z "\$INDEX" ] && echo "Bowtie2 index files not found" 1>&2 && exit 1 bowtie2 \\ diff --git a/modules/nf-core/bowtie2/align/meta.yml b/modules/nf-core/bowtie2/align/meta.yml index 42ba0f96..c8e9a001 100644 --- a/modules/nf-core/bowtie2/align/meta.yml +++ b/modules/nf-core/bowtie2/align/meta.yml @@ -27,6 +27,11 @@ input: description: | List of input FastQ files of size 1 and 2 for single-end and paired-end data, respectively. + - meta2: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test', single_end:false ] - index: type: file description: Bowtie2 genome index files From 6a75945dc4bacacb93f11941a09eeec8539f2d39 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 18 Apr 2023 19:08:38 +0200 Subject: [PATCH 043/201] Remove code used for view --- workflows/chipseq.nf | 6 ------ 1 file changed, 6 deletions(-) diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index 7a01c748..e448bda1 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -309,12 +309,6 @@ workflow CHIPSEQ { // // MODULE: Picard post alignment QC // - BAM_FILTER_BAMTOOLS - .out - .bam - .map { - [ it[0], it[1], [] ] - } ch_picardcollectmultiplemetrics_multiqc = Channel.empty() if (!params.skip_picard_metrics) { PICARD_COLLECTMULTIPLEMETRICS ( From b00897d31317c96cfb797c23c8e0e452f8f47e02 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 18 Apr 2023 22:04:04 +0200 Subject: [PATCH 044/201] Feed missing arguments to star subworkflow --- workflows/chipseq.nf | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index e448bda1..71d7dfe8 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -238,7 +238,9 @@ workflow CHIPSEQ { if (params.aligner == 'star') { ALIGN_STAR ( FASTQ_FASTQC_UMITOOLS_TRIMGALORE.out.reads, - PREPARE_GENOME.out.star_index + PREPARE_GENOME.out.star_index, + PREPARE_GENOME.out.fasta, + params.seq_center ?: '' ) ch_genome_bam = ALIGN_STAR.out.bam ch_genome_bam_index = ALIGN_STAR.out.bai From be423bf39a58d36e1a68cadea59f62ae9ec362a4 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 18 Apr 2023 22:12:05 +0200 Subject: [PATCH 045/201] Update chromap/chromap --- modules.json | 2 +- modules/nf-core/chromap/chromap/main.nf | 2 +- modules/nf-core/chromap/chromap/meta.yml | 7 ++++++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/modules.json b/modules.json index 630219e6..55237ed3 100644 --- a/modules.json +++ b/modules.json @@ -27,7 +27,7 @@ }, "chromap/chromap": { "branch": "master", - "git_sha": "d6b7b1f108dab88b0269a4331767c36a1a8da960", + "git_sha": "b7f0dbc07af00c0ccdc7c2df06efee8786e976ac", "installed_by": ["fastq_align_chromap", "modules"] }, "chromap/index": { diff --git a/modules/nf-core/chromap/chromap/main.nf b/modules/nf-core/chromap/chromap/main.nf index 5b7631cb..69a4bc1b 100644 --- a/modules/nf-core/chromap/chromap/main.nf +++ b/modules/nf-core/chromap/chromap/main.nf @@ -10,7 +10,7 @@ process CHROMAP_CHROMAP { input: tuple val(meta), path(reads) tuple val(meta2), path(fasta) - tuple val(meta2), path(index) + tuple val(meta3), path(index) path barcodes path whitelist path chr_order diff --git a/modules/nf-core/chromap/chromap/meta.yml b/modules/nf-core/chromap/chromap/meta.yml index 10ce8f58..05f70cf0 100644 --- a/modules/nf-core/chromap/chromap/meta.yml +++ b/modules/nf-core/chromap/chromap/meta.yml @@ -36,12 +36,17 @@ input: - meta2: type: map description: | - Groovy Map containing sample information + Groovy Map containing information for the fasta e.g. [ id:'test' ] - fasta: type: file description: | The fasta reference file. + - meta3: + type: map + description: | + Groovy Map containing information for the index + e.g. [ id:'test' ] - index: type: file description: | From 7cc3041ad21667f326ae9e7703b9dd810f305186 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 18 Apr 2023 22:18:58 +0200 Subject: [PATCH 046/201] Update star_align --- modules/local/star_align.nf | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/local/star_align.nf b/modules/local/star_align.nf index f960045f..f1988bea 100644 --- a/modules/local/star_align.nf +++ b/modules/local/star_align.nf @@ -11,6 +11,7 @@ process STAR_ALIGN { input: tuple val(meta), path(reads) path index + val seq_center output: tuple val(meta), path('*d.out.bam') , emit: bam @@ -25,10 +26,13 @@ process STAR_ALIGN { tuple val(meta), path('*fastq.gz') , optional:true, emit: fastq tuple val(meta), path('*.tab') , optional:true, emit: tab + when: + task.ext.when == null || task.ext.when + script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def seq_center = params.seq_center ? "--outSAMattrRGline ID:$prefix 'CN:$params.seq_center' 'SM:$prefix'" : "--outSAMattrRGline ID:$prefix 'SM:$prefix'" + def seq_center_tag = seq_center ? "--outSAMattrRGline ID:$prefix 'CN:$seq_center' 'SM:$prefix'" : "--outSAMattrRGline ID:$prefix 'SM:$prefix'" def out_sam_type = (args.contains('--outSAMtype')) ? '' : '--outSAMtype BAM Unsorted' def mv_unsorted_bam = (args.contains('--outSAMtype BAM Unsorted SortedByCoordinate')) ? "mv ${prefix}.Aligned.out.bam ${prefix}.Aligned.unsort.out.bam" : '' """ @@ -38,7 +42,7 @@ process STAR_ALIGN { --runThreadN $task.cpus \\ --outFileNamePrefix $prefix. \\ $out_sam_type \\ - $seq_center \\ + $seq_center_tag \\ $args $mv_unsorted_bam if [ -f ${prefix}.Unmapped.out.mate1 ]; then From 403a8e59cfe66b785833fd4d4b6e40a40e3ab112 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 18 Apr 2023 22:21:32 +0200 Subject: [PATCH 047/201] Update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 531befa7..b6d20d60 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [[#288](https://github.com/nf-core/chipseq/issues/291)] Bump `chromap` version 2 and enable all the steps below chromap again when paired-end data is processed. - [[#311](https://github.com/nf-core/chipseq/issues/311)] Add back `--skip_spp` parameter which was unintentionally removed from the code. - Install available nf-core subworkflows and refactor code accordingly +- [[#318](https://github.com/nf-core/chipseq/issues/318)] Update `bowtie2/align` module to fix issue when downloading its singularity image. ## [[2.0.0](https://github.com/nf-core/chipseq/releases/tag/2.0.0)] - 2022-10-03 From aece0fb6c96c259e83b357100c66348e9f2aad1a Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 18 Apr 2023 22:48:01 +0200 Subject: [PATCH 048/201] Update bowtie2/build --- modules.json | 2 +- modules/nf-core/bowtie2/build/main.nf | 8 ++++---- modules/nf-core/bowtie2/build/meta.yml | 10 ++++++++++ subworkflows/local/prepare_genome.nf | 6 +++--- 4 files changed, 18 insertions(+), 8 deletions(-) diff --git a/modules.json b/modules.json index 55237ed3..28fb02ca 100644 --- a/modules.json +++ b/modules.json @@ -12,7 +12,7 @@ }, "bowtie2/build": { "branch": "master", - "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", + "git_sha": "c8e35eb2055c099720a75538d1b8adb3fb5a464c", "installed_by": ["modules"] }, "bwa/index": { diff --git a/modules/nf-core/bowtie2/build/main.nf b/modules/nf-core/bowtie2/build/main.nf index a4da62d0..551893af 100644 --- a/modules/nf-core/bowtie2/build/main.nf +++ b/modules/nf-core/bowtie2/build/main.nf @@ -2,17 +2,17 @@ process BOWTIE2_BUILD { tag "$fasta" label 'process_high' - conda (params.enable_conda ? 'bioconda::bowtie2=2.4.4' : null) + conda "bioconda::bowtie2=2.4.4" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/bowtie2:2.4.4--py39hbb4e92a_0' : 'quay.io/biocontainers/bowtie2:2.4.4--py39hbb4e92a_0' }" input: - path fasta + tuple val(meta), path(fasta) output: - path 'bowtie2' , emit: index - path "versions.yml" , emit: versions + tuple val(meta), path('bowtie2') , emit: index + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when diff --git a/modules/nf-core/bowtie2/build/meta.yml b/modules/nf-core/bowtie2/build/meta.yml index 2da9a217..0240224d 100644 --- a/modules/nf-core/bowtie2/build/meta.yml +++ b/modules/nf-core/bowtie2/build/meta.yml @@ -16,10 +16,20 @@ tools: doi: 10.1038/nmeth.1923 licence: ["GPL-3.0-or-later"] input: + - meta: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test', single_end:false ] - fasta: type: file description: Input genome fasta file output: + - meta: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test', single_end:false ] - index: type: file description: Bowtie2 genome index files diff --git a/subworkflows/local/prepare_genome.nf b/subworkflows/local/prepare_genome.nf index 456c20d8..4cb2d164 100644 --- a/subworkflows/local/prepare_genome.nf +++ b/subworkflows/local/prepare_genome.nf @@ -156,13 +156,13 @@ workflow PREPARE_GENOME { if (prepare_tool_index == 'bowtie2') { if (params.bowtie2_index) { if (params.bowtie2_index.endsWith('.tar.gz')) { - ch_bowtie2_index = UNTAR_BOWTIE2_INDEX ( [ [:], params.bowtie2_index ] ).untar.map{ it[1] } + ch_bowtie2_index = UNTAR_BOWTIE2_INDEX ( [ [:], params.bowtie2_index ] ).untar ch_versions = ch_versions.mix(UNTAR_BOWTIE2_INDEX.out.versions) } else { - ch_bowtie2_index = file(params.bowtie2_index) + ch_bowtie2_index = [ [:], file(params.bowtie2_index) ] } } else { - ch_bowtie2_index = BOWTIE2_BUILD ( ch_fasta ).index + ch_bowtie2_index = BOWTIE2_BUILD ( [ [:], ch_fasta ] ).index ch_versions = ch_versions.mix(BOWTIE2_BUILD.out.versions) } } From 0f4af2c50c533413178a9f77668fd288d44fa44e Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 19 Apr 2023 12:07:02 +0200 Subject: [PATCH 049/201] Fix samplesheet control column in docs examples --- CHANGELOG.md | 1 + docs/usage.md | 38 +++++++++++++++++++------------------- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b6d20d60..88152e18 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [[#311](https://github.com/nf-core/chipseq/issues/311)] Add back `--skip_spp` parameter which was unintentionally removed from the code. - Install available nf-core subworkflows and refactor code accordingly - [[#318](https://github.com/nf-core/chipseq/issues/318)] Update `bowtie2/align` module to fix issue when downloading its singularity image. +- [[#320](https://github.com/nf-core/chipseq/issues/320)] Fix samplesheet control column in documentation examples. ## [[2.0.0](https://github.com/nf-core/chipseq/releases/tag/2.0.0)] - 2022-10-03 diff --git a/docs/usage.md b/docs/usage.md index 0bdce0c3..74143398 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -18,11 +18,11 @@ The `sample` identifiers have to be the same when you have re-sequenced the same ```console sample,fastq_1,fastq_2,antibody,control -WT_BCATENIN_IP_REP1,BLA203A1_S27_L006_R1_001.fastq.gz,,BCATENIN,WT_INPUT -WT_BCATENIN_IP_REP2,BLA203A25_S16_L001_R1_001.fastq.gz,,BCATENIN,WT_INPUT -WT_BCATENIN_IP_REP2,BLA203A25_S16_L002_R1_001.fastq.gz,,BCATENIN,WT_INPUT -WT_BCATENIN_IP_REP2,BLA203A25_S16_L003_R1_001.fastq.gz,,BCATENIN,WT_INPUT -WT_BCATENIN_IP_REP3,BLA203A49_S40_L001_R1_001.fastq.gz,,BCATENIN,WT_INPUT +WT_BCATENIN_IP_REP1,BLA203A1_S27_L006_R1_001.fastq.gz,,BCATENIN,WT_INPUT_REP1 +WT_BCATENIN_IP_REP2,BLA203A25_S16_L001_R1_001.fastq.gz,,BCATENIN,WT_INPUT_REP2 +WT_BCATENIN_IP_REP2,BLA203A25_S16_L002_R1_001.fastq.gz,,BCATENIN,WT_INPUT_REP2 +WT_BCATENIN_IP_REP2,BLA203A25_S16_L003_R1_001.fastq.gz,,BCATENIN,WT_INPUT_REP2 +WT_BCATENIN_IP_REP3,BLA203A49_S40_L001_R1_001.fastq.gz,,BCATENIN,WT_INPUT_REP3 WT_INPUT_REP1,BLA203A6_S32_L006_R1_001.fastq.gz,,, WT_INPUT_REP2,BLA203A30_S21_L001_R1_001.fastq.gz,,, WT_INPUT_REP2,BLA203A30_S21_L002_R1_001.fastq.gz,,, @@ -41,20 +41,20 @@ A final design file may look something like the one below. This is for two antib ```console sample,fastq_1,fastq_2,antibody,control -WT_BCATENIN_IP_REP1,BLA203A1_S27_L006_R1_001.fastq.gz,,BCATENIN,WT_INPUT -WT_BCATENIN_IP_REP2,BLA203A25_S16_L001_R1_001.fastq.gz,,BCATENIN,WT_INPUT -WT_BCATENIN_IP_REP2,BLA203A25_S16_L002_R1_001.fastq.gz,,BCATENIN,WT_INPUT -WT_BCATENIN_IP_REP3,BLA203A49_S40_L001_R1_001.fastq.gz,,BCATENIN,WT_INPUT -NAIVE_BCATENIN_IP_REP1,BLA203A7_S60_L001_R1_001.fastq.gz,,BCATENIN,NAIVE_INPUT -NAIVE_BCATENIN_IP_REP2,BLA203A43_S34_L001_R1_001.fastq.gz,,BCATENIN,NAIVE_INPUT -NAIVE_BCATENIN_IP_REP2,BLA203A43_S34_L002_R1_001.fastq.gz,,BCATENIN,NAIVE_INPUT -NAIVE_BCATENIN_IP_REP3,BLA203A64_S55_L001_R1_001.fastq.gz,,BCATENIN,NAIVE_INPUT -WT_TCF4_IP_REP1,BLA203A3_S29_L006_R1_001.fastq.gz,,TCF4,WT_INPUT -WT_TCF4_IP_REP2,BLA203A27_S18_L001_R1_001.fastq.gz,,TCF4,WT_INPUT -WT_TCF4_IP_REP3,BLA203A51_S42_L001_R1_001.fastq.gz,,TCF4,WT_INPUT -NAIVE_TCF4_IP_REP1,BLA203A9_S62_L001_R1_001.fastq.gz,,TCF4,NAIVE_INPUT -NAIVE_TCF4_IP_REP2,BLA203A45_S36_L001_R1_001.fastq.gz,,TCF4,NAIVE_INPUT -NAIVE_TCF4_IP_REP3,BLA203A66_S57_L001_R1_001.fastq.gz,,TCF4,NAIVE_INPUT +WT_BCATENIN_IP_REP1,BLA203A1_S27_L006_R1_001.fastq.gz,,BCATENIN,WT_INPUT_REP1 +WT_BCATENIN_IP_REP2,BLA203A25_S16_L001_R1_001.fastq.gz,,BCATENIN,WT_INPUT_REP2 +WT_BCATENIN_IP_REP2,BLA203A25_S16_L002_R1_001.fastq.gz,,BCATENIN,WT_INPUT_REP2 +WT_BCATENIN_IP_REP3,BLA203A49_S40_L001_R1_001.fastq.gz,,BCATENIN,WT_INPUT_REP3 +NAIVE_BCATENIN_IP_REP1,BLA203A7_S60_L001_R1_001.fastq.gz,,BCATENIN,NAIVE_INPUT_REP1 +NAIVE_BCATENIN_IP_REP2,BLA203A43_S34_L001_R1_001.fastq.gz,,BCATENIN,NAIVE_INPUT_REP2 +NAIVE_BCATENIN_IP_REP2,BLA203A43_S34_L002_R1_001.fastq.gz,,BCATENIN,NAIVE_INPUT_REP2 +NAIVE_BCATENIN_IP_REP3,BLA203A64_S55_L001_R1_001.fastq.gz,,BCATENIN,NAIVE_INPUT_REP3 +WT_TCF4_IP_REP1,BLA203A3_S29_L006_R1_001.fastq.gz,,TCF4,WT_INPUT_REP1 +WT_TCF4_IP_REP2,BLA203A27_S18_L001_R1_001.fastq.gz,,TCF4,WT_INPUT_REP2 +WT_TCF4_IP_REP3,BLA203A51_S42_L001_R1_001.fastq.gz,,TCF4,WT_INPUT_REP3 +NAIVE_TCF4_IP_REP1,BLA203A9_S62_L001_R1_001.fastq.gz,,TCF4,NAIVE_INPUT_REP1 +NAIVE_TCF4_IP_REP2,BLA203A45_S36_L001_R1_001.fastq.gz,,TCF4,NAIVE_INPUT_REP2 +NAIVE_TCF4_IP_REP3,BLA203A66_S57_L001_R1_001.fastq.gz,,TCF4,NAIVE_INPUT_REP3 WT_INPUT_REP1,BLA203A6_S32_L006_R1_001.fastq.gz,,, WT_INPUT_REP2,BLA203A30_S21_L001_R1_001.fastq.gz,,, WT_INPUT_REP3,BLA203A31_S21_L003_R1_001.fastq.gz,,, From 683428a6760b192cd46edd35879fb0cbb6260125 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 19 Apr 2023 12:07:57 +0200 Subject: [PATCH 050/201] Try to clarify read_length docs --- CHANGELOG.md | 1 + nextflow_schema.json | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 88152e18..b0266c0d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Install available nf-core subworkflows and refactor code accordingly - [[#318](https://github.com/nf-core/chipseq/issues/318)] Update `bowtie2/align` module to fix issue when downloading its singularity image. - [[#320](https://github.com/nf-core/chipseq/issues/320)] Fix samplesheet control column in documentation examples. +- [[#328](https://github.com/nf-core/chipseq/issues/328)] Modify documentation to clarify that is necessary to provide the `--read_length` when `--genome` is set and `--macs_gsize` has not provided. ## [[2.0.0](https://github.com/nf-core/chipseq/releases/tag/2.0.0)] - 2022-10-03 diff --git a/nextflow_schema.json b/nextflow_schema.json index 77a094e3..7cadb7c4 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -37,6 +37,7 @@ "type": "integer", "description": "Read length used to calculate MACS2 genome size for peak calling if `--macs_gsize` isn't provided.", "fa_icon": "fas fa-chart-area", + "help_text": "Read length is used to calculate MACS2 genome size using the following [approach](https://deeptools.readthedocs.io/en/develop/content/feature/effectiveGenomeSize.html#effective-genome-size). For all the genomes present in the `igenomes.config` the genome size has been precomputed and the read length is then used to retrieve the corresponding value", "enum": [50, 75, 100, 150, 200] }, "outdir": { @@ -132,7 +133,7 @@ "macs_gsize": { "type": "number", "description": "Effective genome size parameter required by MACS2.", - "help_text": "[Effective genome size](https://github.com/taoliu/MACS#-g--gsize) parameter required by MACS2. If using an iGenomes reference these have been provided when `--genome` is set as *GRCh37*, *GRCh38*, *GRCm38*, *WBcel235*, *BDGP6*, *R64-1-1*, *EF2*, *hg38*, *hg19* and *mm10*. For other genomes, if this parameter is not specified then the MACS2 peak-calling and differential analysis will be skipped.", + "help_text": "[Effective genome size](https://github.com/taoliu/MACS#-g--gsize) parameter required by MACS2. If using an iGenomes reference these have been provided for any of the genomes available in the igenomes.config, and for the following read lengths (50,75,100,150,200) that should be set using the `--read_length` parameter. For other genomes, if this parameter is not specified then the MACS2 peak-calling and differential analysis will be skipped.", "fa_icon": "fas fa-arrows-alt-h" }, "blacklist": { From 58bd1f6bc3dd4f1440abfaacc419d4d30a0e8dbd Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 19 Apr 2023 22:20:33 +0200 Subject: [PATCH 051/201] Fix macs_gsize help text --- nextflow_schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nextflow_schema.json b/nextflow_schema.json index 7cadb7c4..3e876f04 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -133,7 +133,7 @@ "macs_gsize": { "type": "number", "description": "Effective genome size parameter required by MACS2.", - "help_text": "[Effective genome size](https://github.com/taoliu/MACS#-g--gsize) parameter required by MACS2. If using an iGenomes reference these have been provided for any of the genomes available in the igenomes.config, and for the following read lengths (50,75,100,150,200) that should be set using the `--read_length` parameter. For other genomes, if this parameter is not specified then the MACS2 peak-calling and differential analysis will be skipped.", + "help_text": "[Effective genome size](https://github.com/taoliu/MACS#-g--gsize) parameter required by MACS2. If using an iGenomes reference these have been provided for any of the genomes available in the igenomes.config, and for the following read lengths (50,75,100,150,200) that should be set using the `--read_length` parameter. For other genomes, if this parameter is not specified it will be inferred using the provided `--read_length` or otherwise the pipeline execution will stop with an error.", "fa_icon": "fas fa-arrows-alt-h" }, "blacklist": { From f4cbf2a53ebff87395ec41d9d01b63e5d15b7b64 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 19 Apr 2023 22:25:17 +0200 Subject: [PATCH 052/201] Refine read_length help text --- nextflow_schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nextflow_schema.json b/nextflow_schema.json index 3e876f04..ee2b1ba8 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -37,7 +37,7 @@ "type": "integer", "description": "Read length used to calculate MACS2 genome size for peak calling if `--macs_gsize` isn't provided.", "fa_icon": "fas fa-chart-area", - "help_text": "Read length is used to calculate MACS2 genome size using the following [approach](https://deeptools.readthedocs.io/en/develop/content/feature/effectiveGenomeSize.html#effective-genome-size). For all the genomes present in the `igenomes.config` the genome size has been precomputed and the read length is then used to retrieve the corresponding value", + "help_text": "Read length together with the genome fasta are used to calculate MACS2 genome size using the `khmer` program as explained [here](https://deeptools.readthedocs.io/en/develop/content/feature/effectiveGenomeSize.html#effective-genome-size). For all the genomes present in the `igenomes.config` the genome size has been already precomputed and the read length is then used to retrieve the corresponding value", "enum": [50, 75, 100, 150, 200] }, "outdir": { From 23efb256ff8145c1fc22f2fe819bbbd15df98d0c Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 19 Apr 2023 22:27:44 +0200 Subject: [PATCH 053/201] Update readme since the steps below mapping can be performed when chromap is used with PE reads --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 232ef8b8..b6c474ab 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ You can find numerous talks on the [nf-core events page](https://nf-co.re/events 2. Adapter trimming ([`Trim Galore!`](https://www.bioinformatics.babraham.ac.uk/projects/trim_galore/)) 3. Choice of multiple aligners 1.([`BWA`](https://sourceforge.net/projects/bio-bwa/files/)) - 2.([`Chromap`](https://github.com/haowenz/chromap)). **For paired-end reads only working until mapping steps, see [here](https://github.com/nf-core/chipseq/issues/291)** + 2.([`Chromap`](https://github.com/haowenz/chromap)) 3.([`Bowtie2`](http://bowtie-bio.sourceforge.net/bowtie2/index.shtml)) 4.([`STAR`](https://github.com/alexdobin/STAR)) 4. Mark duplicates ([`picard`](https://broadinstitute.github.io/picard/)) From eeb019891b3aab473285fec2dd500444e94396e2 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Fri, 21 Apr 2023 12:47:53 +0200 Subject: [PATCH 054/201] Update modules --- modules.json | 56 +++++++++---------- modules/nf-core/bwa/index/main.nf | 24 ++++++-- modules/nf-core/bwa/index/meta.yml | 10 ++++ modules/nf-core/bwa/mem/main.nf | 10 ++-- modules/nf-core/bwa/mem/meta.yml | 5 ++ .../custom/dumpsoftwareversions/main.nf | 6 +- .../templates/dumpsoftwareversions.py | 0 .../nf-core/deeptools/computematrix/main.nf | 2 +- .../nf-core/deeptools/computematrix/meta.yml | 1 - .../nf-core/deeptools/plotfingerprint/main.nf | 2 +- .../deeptools/plotfingerprint/meta.yml | 1 - modules/nf-core/deeptools/plotheatmap/main.nf | 2 +- .../nf-core/deeptools/plotheatmap/meta.yml | 1 - modules/nf-core/deeptools/plotprofile/main.nf | 2 +- .../nf-core/deeptools/plotprofile/meta.yml | 1 - modules/nf-core/gffread/main.nf | 2 +- modules/nf-core/gunzip/main.nf | 2 +- modules/nf-core/gunzip/meta.yml | 34 +++++------ modules/nf-core/homer/annotatepeaks/main.nf | 2 +- modules/nf-core/khmer/uniquekmers/main.nf | 2 +- modules/nf-core/khmer/uniquekmers/meta.yml | 2 +- modules/nf-core/macs2/callpeak/main.nf | 2 +- modules/nf-core/macs2/callpeak/meta.yml | 4 +- modules/nf-core/multiqc/main.nf | 6 +- modules/nf-core/phantompeakqualtools/main.nf | 2 +- modules/nf-core/phantompeakqualtools/meta.yml | 10 +++- modules/nf-core/picard/markduplicates/main.nf | 15 +++-- .../nf-core/picard/markduplicates/meta.yml | 10 +++- modules/nf-core/picard/mergesamfiles/main.nf | 12 ++-- modules/nf-core/preseq/lcextrap/main.nf | 2 +- modules/nf-core/preseq/lcextrap/meta.yml | 2 +- modules/nf-core/samtools/flagstat/main.nf | 6 +- modules/nf-core/samtools/flagstat/meta.yml | 2 +- modules/nf-core/samtools/idxstats/main.nf | 8 +-- modules/nf-core/samtools/idxstats/meta.yml | 2 +- modules/nf-core/samtools/index/main.nf | 6 +- modules/nf-core/samtools/index/meta.yml | 2 +- modules/nf-core/samtools/sort/main.nf | 6 +- modules/nf-core/samtools/sort/meta.yml | 2 +- modules/nf-core/samtools/stats/main.nf | 6 +- modules/nf-core/samtools/stats/meta.yml | 14 ++--- modules/nf-core/subread/featurecounts/main.nf | 2 +- modules/nf-core/trimgalore/main.nf | 31 ++++------ modules/nf-core/trimgalore/meta.yml | 2 +- modules/nf-core/ucsc/bedgraphtobigwig/main.nf | 2 +- .../nf-core/ucsc/bedgraphtobigwig/meta.yml | 6 +- 46 files changed, 179 insertions(+), 150 deletions(-) mode change 100755 => 100644 modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py diff --git a/modules.json b/modules.json index 28fb02ca..d6769afc 100644 --- a/modules.json +++ b/modules.json @@ -17,12 +17,12 @@ }, "bwa/index": { "branch": "master", - "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", + "git_sha": "c8e35eb2055c099720a75538d1b8adb3fb5a464c", "installed_by": ["modules"] }, "bwa/mem": { "branch": "master", - "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", + "git_sha": "c8e35eb2055c099720a75538d1b8adb3fb5a464c", "installed_by": ["fastq_align_bwa", "modules"] }, "chromap/chromap": { @@ -37,7 +37,7 @@ }, "custom/dumpsoftwareversions": { "branch": "master", - "git_sha": "c8e35eb2055c099720a75538d1b8adb3fb5a464c", + "git_sha": "7101db4432d3268b7fcb5b8f75fa0a022dc5561b", "installed_by": ["modules"] }, "custom/getchromsizes": { @@ -47,22 +47,22 @@ }, "deeptools/computematrix": { "branch": "master", - "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", + "git_sha": "0f8a77ff00e65eaeebc509b8156eaa983192474b", "installed_by": ["modules"] }, "deeptools/plotfingerprint": { "branch": "master", - "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", + "git_sha": "0f8a77ff00e65eaeebc509b8156eaa983192474b", "installed_by": ["modules"] }, "deeptools/plotheatmap": { "branch": "master", - "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", + "git_sha": "0f8a77ff00e65eaeebc509b8156eaa983192474b", "installed_by": ["modules"] }, "deeptools/plotprofile": { "branch": "master", - "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", + "git_sha": "0f8a77ff00e65eaeebc509b8156eaa983192474b", "installed_by": ["modules"] }, "fastqc": { @@ -72,37 +72,37 @@ }, "gffread": { "branch": "master", - "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", + "git_sha": "c8e35eb2055c099720a75538d1b8adb3fb5a464c", "installed_by": ["modules"] }, "gunzip": { "branch": "master", - "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", + "git_sha": "0f8a77ff00e65eaeebc509b8156eaa983192474b", "installed_by": ["modules"] }, "homer/annotatepeaks": { "branch": "master", - "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", + "git_sha": "c8e35eb2055c099720a75538d1b8adb3fb5a464c", "installed_by": ["modules"] }, "khmer/uniquekmers": { "branch": "master", - "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", + "git_sha": "2f398a6342db61e7ab0f4cb4d395eed74b65db7c", "installed_by": ["modules"] }, "macs2/callpeak": { "branch": "master", - "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", + "git_sha": "0f8a77ff00e65eaeebc509b8156eaa983192474b", "installed_by": ["modules"] }, "multiqc": { "branch": "master", - "git_sha": "c8e35eb2055c099720a75538d1b8adb3fb5a464c", + "git_sha": "ee80d14721e76e2e079103b8dcd5d57129e584ba", "installed_by": ["modules"] }, "phantompeakqualtools": { "branch": "master", - "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", + "git_sha": "2f398a6342db61e7ab0f4cb4d395eed74b65db7c", "installed_by": ["modules"] }, "picard/collectmultiplemetrics": { @@ -112,57 +112,57 @@ }, "picard/markduplicates": { "branch": "master", - "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", + "git_sha": "75027bf77472b1f4fd2cdd7e46f83119dfb0f2c6", "installed_by": ["modules"] }, "picard/mergesamfiles": { "branch": "master", - "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", + "git_sha": "75027bf77472b1f4fd2cdd7e46f83119dfb0f2c6", "installed_by": ["modules"] }, "preseq/lcextrap": { "branch": "master", - "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", + "git_sha": "0f8a77ff00e65eaeebc509b8156eaa983192474b", "installed_by": ["modules"] }, "samtools/flagstat": { "branch": "master", - "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": ["bam_stats_samtools", "modules"] + "git_sha": "0f8a77ff00e65eaeebc509b8156eaa983192474b", + "installed_by": ["modules", "bam_stats_samtools"] }, "samtools/idxstats": { "branch": "master", - "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": ["bam_stats_samtools", "modules"] + "git_sha": "0f8a77ff00e65eaeebc509b8156eaa983192474b", + "installed_by": ["modules", "bam_stats_samtools"] }, "samtools/index": { "branch": "master", - "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", + "git_sha": "0f8a77ff00e65eaeebc509b8156eaa983192474b", "installed_by": ["bam_sort_stats_samtools", "modules"] }, "samtools/sort": { "branch": "master", - "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", + "git_sha": "0f8a77ff00e65eaeebc509b8156eaa983192474b", "installed_by": ["bam_sort_stats_samtools", "modules"] }, "samtools/stats": { "branch": "master", - "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", - "installed_by": ["bam_stats_samtools", "modules"] + "git_sha": "0f8a77ff00e65eaeebc509b8156eaa983192474b", + "installed_by": ["modules", "bam_stats_samtools"] }, "subread/featurecounts": { "branch": "master", - "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", + "git_sha": "c8e35eb2055c099720a75538d1b8adb3fb5a464c", "installed_by": ["modules"] }, "trimgalore": { "branch": "master", - "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", + "git_sha": "64a3dbc0a30a94cdaed7869d8e34fbb85e886614", "installed_by": ["modules", "fastq_fastqc_umitools_trimgalore"] }, "ucsc/bedgraphtobigwig": { "branch": "master", - "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", + "git_sha": "0f8a77ff00e65eaeebc509b8156eaa983192474b", "installed_by": ["modules"] }, "umitools/extract": { diff --git a/modules/nf-core/bwa/index/main.nf b/modules/nf-core/bwa/index/main.nf index aa75ae5d..7ccf3110 100644 --- a/modules/nf-core/bwa/index/main.nf +++ b/modules/nf-core/bwa/index/main.nf @@ -2,17 +2,17 @@ process BWA_INDEX { tag "$fasta" label 'process_single' - conda (params.enable_conda ? "bioconda::bwa=0.7.17" : null) + conda "bioconda::bwa=0.7.17" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/bwa:0.7.17--hed695b0_7' : 'quay.io/biocontainers/bwa:0.7.17--hed695b0_7' }" input: - path fasta + tuple val(meta), path(fasta) output: - path "bwa" , emit: index - path "versions.yml", emit: versions + tuple val(meta), path(bwa) , emit: index + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -32,4 +32,20 @@ process BWA_INDEX { bwa: \$(echo \$(bwa 2>&1) | sed 's/^.*Version: //; s/Contact:.*\$//') END_VERSIONS """ + + stub: + """ + mkdir bwa + + touch bwa/genome.amb + touch bwa/genome.ann + touch bwa/genome.bwt + touch bwa/genome.pac + touch bwa/genome.sa + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bwa: \$(echo \$(bwa 2>&1) | sed 's/^.*Version: //; s/Contact:.*\$//') + END_VERSIONS + """ } diff --git a/modules/nf-core/bwa/index/meta.yml b/modules/nf-core/bwa/index/meta.yml index 2bbd81d9..2c6cfcd7 100644 --- a/modules/nf-core/bwa/index/meta.yml +++ b/modules/nf-core/bwa/index/meta.yml @@ -15,10 +15,20 @@ tools: arxiv: arXiv:1303.3997 licence: ["GPL-3.0-or-later"] input: + - meta: + type: map + description: | + Groovy Map containing reference information. + e.g. [ id:'test', single_end:false ] - fasta: type: file description: Input genome fasta file output: + - meta: + type: map + description: | + Groovy Map containing reference information. + e.g. [ id:'test', single_end:false ] - index: type: file description: BWA genome index files diff --git a/modules/nf-core/bwa/mem/main.nf b/modules/nf-core/bwa/mem/main.nf index f55af944..cbf34c25 100644 --- a/modules/nf-core/bwa/mem/main.nf +++ b/modules/nf-core/bwa/mem/main.nf @@ -2,14 +2,14 @@ process BWA_MEM { tag "$meta.id" label 'process_high' - conda (params.enable_conda ? "bioconda::bwa=0.7.17 bioconda::samtools=1.15.1" : null) + conda "bioconda::bwa=0.7.17 bioconda::samtools=1.16.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:8110a70be2bfe7f75a2ea7f2a89cda4cc7732095-0' : - 'quay.io/biocontainers/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:8110a70be2bfe7f75a2ea7f2a89cda4cc7732095-0' }" + 'https://depot.galaxyproject.org/singularity/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:219b6c272b25e7e642ae3ff0bf0c5c81a5135ab4-0' : + 'quay.io/biocontainers/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:219b6c272b25e7e642ae3ff0bf0c5c81a5135ab4-0' }" input: tuple val(meta), path(reads) - path index + tuple val(meta2), path(index) val sort_bam output: @@ -25,7 +25,7 @@ process BWA_MEM { def prefix = task.ext.prefix ?: "${meta.id}" def samtools_command = sort_bam ? 'sort' : 'view' """ - INDEX=`find -L ./ -name "*.amb" | sed 's/.amb//'` + INDEX=`find -L ./ -name "*.amb" | sed 's/\\.amb\$//'` bwa mem \\ $args \\ diff --git a/modules/nf-core/bwa/mem/meta.yml b/modules/nf-core/bwa/mem/meta.yml index f84c5227..62357bf8 100644 --- a/modules/nf-core/bwa/mem/meta.yml +++ b/modules/nf-core/bwa/mem/meta.yml @@ -28,6 +28,11 @@ input: description: | List of input FastQ files of size 1 and 2 for single-end and paired-end data, respectively. + - meta2: + type: map + description: | + Groovy Map containing reference information. + e.g. [ id:'test', single_end:false ] - index: type: file description: BWA genome index files diff --git a/modules/nf-core/custom/dumpsoftwareversions/main.nf b/modules/nf-core/custom/dumpsoftwareversions/main.nf index 3df21765..800a6099 100644 --- a/modules/nf-core/custom/dumpsoftwareversions/main.nf +++ b/modules/nf-core/custom/dumpsoftwareversions/main.nf @@ -2,10 +2,10 @@ process CUSTOM_DUMPSOFTWAREVERSIONS { label 'process_single' // Requires `pyyaml` which does not have a dedicated container but is in the MultiQC container - conda "bioconda::multiqc=1.13" + conda "bioconda::multiqc=1.14" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/multiqc:1.13--pyhdfd78af_0' : - 'quay.io/biocontainers/multiqc:1.13--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/multiqc:1.14--pyhdfd78af_0' : + 'quay.io/biocontainers/multiqc:1.14--pyhdfd78af_0' }" input: path versions diff --git a/modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py b/modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py old mode 100755 new mode 100644 diff --git a/modules/nf-core/deeptools/computematrix/main.nf b/modules/nf-core/deeptools/computematrix/main.nf index 96dfef3c..024b8797 100644 --- a/modules/nf-core/deeptools/computematrix/main.nf +++ b/modules/nf-core/deeptools/computematrix/main.nf @@ -2,7 +2,7 @@ process DEEPTOOLS_COMPUTEMATRIX { tag "$meta.id" label 'process_high' - conda (params.enable_conda ? 'bioconda::deeptools=3.5.1' : null) + conda "bioconda::deeptools=3.5.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/deeptools:3.5.1--py_0' : 'quay.io/biocontainers/deeptools:3.5.1--py_0' }" diff --git a/modules/nf-core/deeptools/computematrix/meta.yml b/modules/nf-core/deeptools/computematrix/meta.yml index eaa990dd..8a148f5d 100644 --- a/modules/nf-core/deeptools/computematrix/meta.yml +++ b/modules/nf-core/deeptools/computematrix/meta.yml @@ -8,7 +8,6 @@ keywords: tools: - deeptools: description: A set of user-friendly tools for normalization and visualization of deep-sequencing data - homepage: documentation: https://deeptools.readthedocs.io/en/develop/index.html tool_dev_url: https://github.com/deeptools/deepTools doi: "10.1093/nar/gku365" diff --git a/modules/nf-core/deeptools/plotfingerprint/main.nf b/modules/nf-core/deeptools/plotfingerprint/main.nf index 83613be7..233b3bae 100644 --- a/modules/nf-core/deeptools/plotfingerprint/main.nf +++ b/modules/nf-core/deeptools/plotfingerprint/main.nf @@ -2,7 +2,7 @@ process DEEPTOOLS_PLOTFINGERPRINT { tag "$meta.id" label 'process_high' - conda (params.enable_conda ? 'bioconda::deeptools=3.5.1' : null) + conda "bioconda::deeptools=3.5.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/deeptools:3.5.1--py_0' : 'quay.io/biocontainers/deeptools:3.5.1--py_0' }" diff --git a/modules/nf-core/deeptools/plotfingerprint/meta.yml b/modules/nf-core/deeptools/plotfingerprint/meta.yml index 07c25748..29ddf893 100644 --- a/modules/nf-core/deeptools/plotfingerprint/meta.yml +++ b/modules/nf-core/deeptools/plotfingerprint/meta.yml @@ -8,7 +8,6 @@ keywords: tools: - deeptools: description: A set of user-friendly tools for normalization and visualization of deep-sequencing data - homepage: documentation: https://deeptools.readthedocs.io/en/develop/index.html tool_dev_url: https://github.com/deeptools/deepTools doi: "10.1093/nar/gku365" diff --git a/modules/nf-core/deeptools/plotheatmap/main.nf b/modules/nf-core/deeptools/plotheatmap/main.nf index 1e402e39..3b171b73 100644 --- a/modules/nf-core/deeptools/plotheatmap/main.nf +++ b/modules/nf-core/deeptools/plotheatmap/main.nf @@ -2,7 +2,7 @@ process DEEPTOOLS_PLOTHEATMAP { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? 'bioconda::deeptools=3.5.1' : null) + conda "bioconda::deeptools=3.5.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/deeptools:3.5.1--py_0' : 'quay.io/biocontainers/deeptools:3.5.1--py_0' }" diff --git a/modules/nf-core/deeptools/plotheatmap/meta.yml b/modules/nf-core/deeptools/plotheatmap/meta.yml index ea206fb6..9296f503 100644 --- a/modules/nf-core/deeptools/plotheatmap/meta.yml +++ b/modules/nf-core/deeptools/plotheatmap/meta.yml @@ -8,7 +8,6 @@ keywords: tools: - deeptools: description: A set of user-friendly tools for normalization and visualization of deep-sequencing data - homepage: documentation: https://deeptools.readthedocs.io/en/develop/index.html tool_dev_url: https://github.com/deeptools/deepTools doi: "10.1093/nar/gku365" diff --git a/modules/nf-core/deeptools/plotprofile/main.nf b/modules/nf-core/deeptools/plotprofile/main.nf index d83a9493..b5fa57df 100644 --- a/modules/nf-core/deeptools/plotprofile/main.nf +++ b/modules/nf-core/deeptools/plotprofile/main.nf @@ -2,7 +2,7 @@ process DEEPTOOLS_PLOTPROFILE { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? 'bioconda::deeptools=3.5.1' : null) + conda "bioconda::deeptools=3.5.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/deeptools:3.5.1--py_0' : 'quay.io/biocontainers/deeptools:3.5.1--py_0' }" diff --git a/modules/nf-core/deeptools/plotprofile/meta.yml b/modules/nf-core/deeptools/plotprofile/meta.yml index 795fda44..44612ea9 100644 --- a/modules/nf-core/deeptools/plotprofile/meta.yml +++ b/modules/nf-core/deeptools/plotprofile/meta.yml @@ -8,7 +8,6 @@ keywords: tools: - deeptools: description: A set of user-friendly tools for normalization and visualization of deep-sequencing data - homepage: documentation: https://deeptools.readthedocs.io/en/develop/index.html tool_dev_url: https://github.com/deeptools/deepTools doi: "10.1093/nar/gku365" diff --git a/modules/nf-core/gffread/main.nf b/modules/nf-core/gffread/main.nf index 7c575c97..b1a8996f 100644 --- a/modules/nf-core/gffread/main.nf +++ b/modules/nf-core/gffread/main.nf @@ -2,7 +2,7 @@ process GFFREAD { tag "$gff" label 'process_low' - conda (params.enable_conda ? "bioconda::gffread=0.12.1" : null) + conda "bioconda::gffread=0.12.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/gffread:0.12.1--h8b12597_0' : 'quay.io/biocontainers/gffread:0.12.1--h8b12597_0' }" diff --git a/modules/nf-core/gunzip/main.nf b/modules/nf-core/gunzip/main.nf index fa6ba26a..d906034c 100644 --- a/modules/nf-core/gunzip/main.nf +++ b/modules/nf-core/gunzip/main.nf @@ -2,7 +2,7 @@ process GUNZIP { tag "$archive" label 'process_single' - conda (params.enable_conda ? "conda-forge::sed=4.7" : null) + conda "conda-forge::sed=4.7" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/ubuntu:20.04' : 'ubuntu:20.04' }" diff --git a/modules/nf-core/gunzip/meta.yml b/modules/nf-core/gunzip/meta.yml index 4d2ebc84..2e0e4054 100644 --- a/modules/nf-core/gunzip/meta.yml +++ b/modules/nf-core/gunzip/meta.yml @@ -5,29 +5,29 @@ keywords: - compression tools: - gunzip: - description: | - gzip is a file format and a software application used for file compression and decompression. - documentation: https://www.gnu.org/software/gzip/manual/gzip.html - licence: ["GPL-3.0-or-later"] + description: | + gzip is a file format and a software application used for file compression and decompression. + documentation: https://www.gnu.org/software/gzip/manual/gzip.html + licence: ["GPL-3.0-or-later"] input: - meta: - type: map - description: | - Optional groovy Map containing meta information - e.g. [ id:'test', single_end:false ] + type: map + description: | + Optional groovy Map containing meta information + e.g. [ id:'test', single_end:false ] - archive: - type: file - description: File to be compressed/uncompressed - pattern: "*.*" + type: file + description: File to be compressed/uncompressed + pattern: "*.*" output: - gunzip: - type: file - description: Compressed/uncompressed file - pattern: "*.*" + type: file + description: Compressed/uncompressed file + pattern: "*.*" - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@joseespinosa" - "@drpatelh" diff --git a/modules/nf-core/homer/annotatepeaks/main.nf b/modules/nf-core/homer/annotatepeaks/main.nf index 9056a5ab..865ad81c 100644 --- a/modules/nf-core/homer/annotatepeaks/main.nf +++ b/modules/nf-core/homer/annotatepeaks/main.nf @@ -3,7 +3,7 @@ process HOMER_ANNOTATEPEAKS { label 'process_medium' // WARN: Version information not provided by tool on CLI. Please update version string below when bumping container versions. - conda (params.enable_conda ? "bioconda::homer=4.11" : null) + conda "bioconda::homer=4.11" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/homer:4.11--pl526hc9558a2_3' : 'quay.io/biocontainers/homer:4.11--pl526hc9558a2_3' }" diff --git a/modules/nf-core/khmer/uniquekmers/main.nf b/modules/nf-core/khmer/uniquekmers/main.nf index 8ad89a62..02746ae1 100644 --- a/modules/nf-core/khmer/uniquekmers/main.nf +++ b/modules/nf-core/khmer/uniquekmers/main.nf @@ -2,7 +2,7 @@ process KHMER_UNIQUEKMERS { tag "$fasta" label 'process_low' - conda (params.enable_conda ? "bioconda::khmer=3.0.0a3" : null) + conda "bioconda::khmer=3.0.0a3" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/khmer:3.0.0a3--py37haa7609a_2' : 'quay.io/biocontainers/khmer:3.0.0a3--py37haa7609a_2' }" diff --git a/modules/nf-core/khmer/uniquekmers/meta.yml b/modules/nf-core/khmer/uniquekmers/meta.yml index 31405cc1..f9f63972 100644 --- a/modules/nf-core/khmer/uniquekmers/meta.yml +++ b/modules/nf-core/khmer/uniquekmers/meta.yml @@ -1,5 +1,5 @@ name: "khmer_uniquekmers" -description: +description: In-memory nucleotide sequence k-mer counting, filtering, graph traversal and more keywords: - khmer - k-mer diff --git a/modules/nf-core/macs2/callpeak/main.nf b/modules/nf-core/macs2/callpeak/main.nf index 9aaf97a9..feca0425 100644 --- a/modules/nf-core/macs2/callpeak/main.nf +++ b/modules/nf-core/macs2/callpeak/main.nf @@ -2,7 +2,7 @@ process MACS2_CALLPEAK { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::macs2=2.2.7.1" : null) + conda "bioconda::macs2=2.2.7.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/macs2:2.2.7.1--py38h4a8c8d9_3' : 'quay.io/biocontainers/macs2:2.2.7.1--py38h4a8c8d9_3' }" diff --git a/modules/nf-core/macs2/callpeak/meta.yml b/modules/nf-core/macs2/callpeak/meta.yml index 982bc5b2..6e2bc1db 100644 --- a/modules/nf-core/macs2/callpeak/meta.yml +++ b/modules/nf-core/macs2/callpeak/meta.yml @@ -8,10 +8,10 @@ keywords: tools: - macs2: description: Model Based Analysis for ChIP-Seq data - homepage: None + documentation: https://docs.csc.fi/apps/macs2/ tool_dev_url: https://github.com/macs3-project/MACS - doi: "https://doi.org/10.1101/496521" + doi: "10.1101/496521" licence: ["BSD"] input: diff --git a/modules/nf-core/multiqc/main.nf b/modules/nf-core/multiqc/main.nf index 68f66bea..4b604749 100644 --- a/modules/nf-core/multiqc/main.nf +++ b/modules/nf-core/multiqc/main.nf @@ -1,10 +1,10 @@ process MULTIQC { label 'process_single' - conda "bioconda::multiqc=1.13" + conda "bioconda::multiqc=1.14" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/multiqc:1.13--pyhdfd78af_0' : - 'quay.io/biocontainers/multiqc:1.13--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/multiqc:1.14--pyhdfd78af_0' : + 'quay.io/biocontainers/multiqc:1.14--pyhdfd78af_0' }" input: path multiqc_files, stageAs: "?/*" diff --git a/modules/nf-core/phantompeakqualtools/main.nf b/modules/nf-core/phantompeakqualtools/main.nf index 43fca683..27daac4c 100644 --- a/modules/nf-core/phantompeakqualtools/main.nf +++ b/modules/nf-core/phantompeakqualtools/main.nf @@ -3,7 +3,7 @@ process PHANTOMPEAKQUALTOOLS { label 'process_medium' // WARN: Version information not provided by tool on CLI. Please update version string below when bumping container versions. - conda (params.enable_conda ? "bioconda::phantompeakqualtools=1.2.2" : null) + conda "bioconda::phantompeakqualtools=1.2.2" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/phantompeakqualtools:1.2.2--0' : 'quay.io/biocontainers/phantompeakqualtools:1.2.2--0' }" diff --git a/modules/nf-core/phantompeakqualtools/meta.yml b/modules/nf-core/phantompeakqualtools/meta.yml index 6488500d..c8290fbd 100644 --- a/modules/nf-core/phantompeakqualtools/meta.yml +++ b/modules/nf-core/phantompeakqualtools/meta.yml @@ -1,6 +1,10 @@ name: "phantompeakqualtools" -description: +description: | + "This package computes informative enrichment and quality measures + for ChIP-seq/DNase-seq/FAIRE-seq/MNase-seq data. It can also be used + to obtain robust estimates of the predominant fragment length or + characteristic tag shift values in these assays." keywords: - "ChIP-Seq" - "QC" @@ -12,10 +16,10 @@ tools: for ChIP-seq/DNase-seq/FAIRE-seq/MNase-seq data. It can also be used to obtain robust estimates of the predominant fragment length or characteristic tag shift values in these assays." - homepage: "None" + documentation: "https://github.com/kundajelab/phantompeakqualtools" tool_dev_url: "https://github.com/kundajelab/phantompeakqualtools" - doi: "https://doi.org/10.1101/gr.136184.111" + doi: "10.1101/gr.136184.111" licence: "['BSD-3-clause']" input: diff --git a/modules/nf-core/picard/markduplicates/main.nf b/modules/nf-core/picard/markduplicates/main.nf index 4e559fea..1fe6ee2d 100644 --- a/modules/nf-core/picard/markduplicates/main.nf +++ b/modules/nf-core/picard/markduplicates/main.nf @@ -2,13 +2,15 @@ process PICARD_MARKDUPLICATES { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::picard=2.27.4" : null) + conda "bioconda::picard=3.0.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/picard:2.27.4--hdfd78af_0' : - 'quay.io/biocontainers/picard:2.27.4--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/picard:3.0.0--hdfd78af_1' : + 'quay.io/biocontainers/picard:3.0.0--hdfd78af_1' }" input: tuple val(meta), path(bam) + path fasta + path fai output: tuple val(meta), path("*.bam") , emit: bam @@ -22,19 +24,20 @@ process PICARD_MARKDUPLICATES { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def avail_mem = 3 + def avail_mem = 3072 if (!task.memory) { log.info '[Picard MarkDuplicates] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' } else { - avail_mem = task.memory.giga + avail_mem = (task.memory.mega*0.8).intValue() } """ picard \\ - -Xmx${avail_mem}g \\ + -Xmx${avail_mem}M \\ MarkDuplicates \\ $args \\ --INPUT $bam \\ --OUTPUT ${prefix}.bam \\ + --REFERENCE_SEQUENCE $fasta \\ --METRICS_FILE ${prefix}.MarkDuplicates.metrics.txt cat <<-END_VERSIONS > versions.yml diff --git a/modules/nf-core/picard/markduplicates/meta.yml b/modules/nf-core/picard/markduplicates/meta.yml index 842817bc..3f2357bb 100644 --- a/modules/nf-core/picard/markduplicates/meta.yml +++ b/modules/nf-core/picard/markduplicates/meta.yml @@ -24,7 +24,15 @@ input: - bam: type: file description: BAM file - pattern: "*.{bam}" + pattern: "*.{bam,cram,sam}" + - fasta: + type: file + description: Reference genome fasta file + pattern: "*.{fasta,fa}" + - fai: + type: file + description: Reference genome fasta index + pattern: "*.{fai}" output: - meta: type: map diff --git a/modules/nf-core/picard/mergesamfiles/main.nf b/modules/nf-core/picard/mergesamfiles/main.nf index cccf4d3d..ff8d2f17 100644 --- a/modules/nf-core/picard/mergesamfiles/main.nf +++ b/modules/nf-core/picard/mergesamfiles/main.nf @@ -2,10 +2,10 @@ process PICARD_MERGESAMFILES { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::picard=2.27.4" : null) + conda "bioconda::picard=3.0.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/picard:2.27.4--hdfd78af_0' : - 'quay.io/biocontainers/picard:2.27.4--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/picard:3.0.0--hdfd78af_1' : + 'quay.io/biocontainers/picard:3.0.0--hdfd78af_1' }" input: tuple val(meta), path(bams) @@ -21,16 +21,16 @@ process PICARD_MERGESAMFILES { def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" def bam_files = bams.sort() - def avail_mem = 3 + def avail_mem = 3072 if (!task.memory) { log.info '[Picard MergeSamFiles] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' } else { - avail_mem = task.memory.giga + avail_mem = (task.memory.mega*0.8).intValue() } if (bam_files.size() > 1) { """ picard \\ - -Xmx${avail_mem}g \\ + -Xmx${avail_mem}M \\ MergeSamFiles \\ $args \\ ${'--INPUT '+bam_files.join(' --INPUT ')} \\ diff --git a/modules/nf-core/preseq/lcextrap/main.nf b/modules/nf-core/preseq/lcextrap/main.nf index a98a922c..38275910 100644 --- a/modules/nf-core/preseq/lcextrap/main.nf +++ b/modules/nf-core/preseq/lcextrap/main.nf @@ -3,7 +3,7 @@ process PRESEQ_LCEXTRAP { label 'process_single' label 'error_ignore' - conda (params.enable_conda ? "bioconda::preseq=3.1.2" : null) + conda "bioconda::preseq=3.1.2" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/preseq:3.1.2--h445547b_2': 'quay.io/biocontainers/preseq:3.1.2--h445547b_2' }" diff --git a/modules/nf-core/preseq/lcextrap/meta.yml b/modules/nf-core/preseq/lcextrap/meta.yml index f1be05a2..1391961c 100755 --- a/modules/nf-core/preseq/lcextrap/meta.yml +++ b/modules/nf-core/preseq/lcextrap/meta.yml @@ -10,7 +10,7 @@ tools: homepage: http://smithlabresearch.org/software/preseq/ documentation: http://smithlabresearch.org/wp-content/uploads/manual.pdf tool_dev_url: https://github.com/smithlabcode/preseq - doi: "" + licence: ["GPL"] input: diff --git a/modules/nf-core/samtools/flagstat/main.nf b/modules/nf-core/samtools/flagstat/main.nf index c3152aca..2120cd7d 100644 --- a/modules/nf-core/samtools/flagstat/main.nf +++ b/modules/nf-core/samtools/flagstat/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_FLAGSTAT { tag "$meta.id" label 'process_single' - conda (params.enable_conda ? "bioconda::samtools=1.15.1" : null) + conda "bioconda::samtools=1.16.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.15.1--h1170115_0' : - 'quay.io/biocontainers/samtools:1.15.1--h1170115_0' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.16.1--h6899075_1' : + 'quay.io/biocontainers/samtools:1.16.1--h6899075_1' }" input: tuple val(meta), path(bam), path(bai) diff --git a/modules/nf-core/samtools/flagstat/meta.yml b/modules/nf-core/samtools/flagstat/meta.yml index 95269063..954225df 100644 --- a/modules/nf-core/samtools/flagstat/meta.yml +++ b/modules/nf-core/samtools/flagstat/meta.yml @@ -14,7 +14,7 @@ tools: short DNA sequence read alignments in the SAM, BAM and CRAM formats, written by Heng Li. These files are generated as output by short read aligners like BWA. homepage: http://www.htslib.org/ - documentation: hhttp://www.htslib.org/doc/samtools.html + documentation: http://www.htslib.org/doc/samtools.html doi: 10.1093/bioinformatics/btp352 licence: ["MIT"] input: diff --git a/modules/nf-core/samtools/idxstats/main.nf b/modules/nf-core/samtools/idxstats/main.nf index 87618e5f..a7b87d8b 100644 --- a/modules/nf-core/samtools/idxstats/main.nf +++ b/modules/nf-core/samtools/idxstats/main.nf @@ -1,11 +1,11 @@ process SAMTOOLS_IDXSTATS { tag "$meta.id" - label 'process_low' + label 'process_single' - conda (params.enable_conda ? "bioconda::samtools=1.15.1" : null) + conda "bioconda::samtools=1.16.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.15.1--h1170115_0' : - 'quay.io/biocontainers/samtools:1.15.1--h1170115_0' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.16.1--h6899075_1' : + 'quay.io/biocontainers/samtools:1.16.1--h6899075_1' }" input: tuple val(meta), path(bam), path(bai) diff --git a/modules/nf-core/samtools/idxstats/meta.yml b/modules/nf-core/samtools/idxstats/meta.yml index 3710ab88..dda87e1e 100644 --- a/modules/nf-core/samtools/idxstats/meta.yml +++ b/modules/nf-core/samtools/idxstats/meta.yml @@ -15,7 +15,7 @@ tools: short DNA sequence read alignments in the SAM, BAM and CRAM formats, written by Heng Li. These files are generated as output by short read aligners like BWA. homepage: http://www.htslib.org/ - documentation: hhttp://www.htslib.org/doc/samtools.html + documentation: http://www.htslib.org/doc/samtools.html doi: 10.1093/bioinformatics/btp352 licence: ["MIT"] input: diff --git a/modules/nf-core/samtools/index/main.nf b/modules/nf-core/samtools/index/main.nf index e04e63e8..8b95687a 100644 --- a/modules/nf-core/samtools/index/main.nf +++ b/modules/nf-core/samtools/index/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_INDEX { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::samtools=1.15.1" : null) + conda "bioconda::samtools=1.16.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.15.1--h1170115_0' : - 'quay.io/biocontainers/samtools:1.15.1--h1170115_0' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.16.1--h6899075_1' : + 'quay.io/biocontainers/samtools:1.16.1--h6899075_1' }" input: tuple val(meta), path(input) diff --git a/modules/nf-core/samtools/index/meta.yml b/modules/nf-core/samtools/index/meta.yml index e5cadbc2..8bd2fa6f 100644 --- a/modules/nf-core/samtools/index/meta.yml +++ b/modules/nf-core/samtools/index/meta.yml @@ -12,7 +12,7 @@ tools: short DNA sequence read alignments in the SAM, BAM and CRAM formats, written by Heng Li. These files are generated as output by short read aligners like BWA. homepage: http://www.htslib.org/ - documentation: hhttp://www.htslib.org/doc/samtools.html + documentation: http://www.htslib.org/doc/samtools.html doi: 10.1093/bioinformatics/btp352 licence: ["MIT"] input: diff --git a/modules/nf-core/samtools/sort/main.nf b/modules/nf-core/samtools/sort/main.nf index ab7f1cca..84c167cd 100644 --- a/modules/nf-core/samtools/sort/main.nf +++ b/modules/nf-core/samtools/sort/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_SORT { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::samtools=1.15.1" : null) + conda "bioconda::samtools=1.16.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.15.1--h1170115_0' : - 'quay.io/biocontainers/samtools:1.15.1--h1170115_0' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.16.1--h6899075_1' : + 'quay.io/biocontainers/samtools:1.16.1--h6899075_1' }" input: tuple val(meta), path(bam) diff --git a/modules/nf-core/samtools/sort/meta.yml b/modules/nf-core/samtools/sort/meta.yml index 09289751..07328431 100644 --- a/modules/nf-core/samtools/sort/meta.yml +++ b/modules/nf-core/samtools/sort/meta.yml @@ -12,7 +12,7 @@ tools: short DNA sequence read alignments in the SAM, BAM and CRAM formats, written by Heng Li. These files are generated as output by short read aligners like BWA. homepage: http://www.htslib.org/ - documentation: hhttp://www.htslib.org/doc/samtools.html + documentation: http://www.htslib.org/doc/samtools.html doi: 10.1093/bioinformatics/btp352 licence: ["MIT"] input: diff --git a/modules/nf-core/samtools/stats/main.nf b/modules/nf-core/samtools/stats/main.nf index 9b0c3867..0a2a3640 100644 --- a/modules/nf-core/samtools/stats/main.nf +++ b/modules/nf-core/samtools/stats/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_STATS { tag "$meta.id" label 'process_single' - conda (params.enable_conda ? "bioconda::samtools=1.15.1" : null) + conda "bioconda::samtools=1.16.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.15.1--h1170115_0' : - 'quay.io/biocontainers/samtools:1.15.1--h1170115_0' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.16.1--h6899075_1' : + 'quay.io/biocontainers/samtools:1.16.1--h6899075_1' }" input: tuple val(meta), path(input), path(input_index) diff --git a/modules/nf-core/samtools/stats/meta.yml b/modules/nf-core/samtools/stats/meta.yml index cac50b1c..1d68a5d8 100644 --- a/modules/nf-core/samtools/stats/meta.yml +++ b/modules/nf-core/samtools/stats/meta.yml @@ -13,7 +13,7 @@ tools: short DNA sequence read alignments in the SAM, BAM and CRAM formats, written by Heng Li. These files are generated as output by short read aligners like BWA. homepage: http://www.htslib.org/ - documentation: hhttp://www.htslib.org/doc/samtools.html + documentation: http://www.htslib.org/doc/samtools.html doi: 10.1093/bioinformatics/btp352 licence: ["MIT"] input: @@ -23,13 +23,13 @@ input: Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - input: - type: file - description: BAM/CRAM file from alignment - pattern: "*.{bam,cram}" + type: file + description: BAM/CRAM file from alignment + pattern: "*.{bam,cram}" - input_index: - type: file - description: BAI/CRAI file from alignment - pattern: "*.{bai,crai}" + type: file + description: BAI/CRAI file from alignment + pattern: "*.{bai,crai}" - fasta: type: optional file description: Reference file the CRAM was created with diff --git a/modules/nf-core/subread/featurecounts/main.nf b/modules/nf-core/subread/featurecounts/main.nf index 18e2a92b..cbc833fe 100644 --- a/modules/nf-core/subread/featurecounts/main.nf +++ b/modules/nf-core/subread/featurecounts/main.nf @@ -2,7 +2,7 @@ process SUBREAD_FEATURECOUNTS { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::subread=2.0.1" : null) + conda "bioconda::subread=2.0.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/subread:2.0.1--hed695b0_0' : 'quay.io/biocontainers/subread:2.0.1--hed695b0_0' }" diff --git a/modules/nf-core/trimgalore/main.nf b/modules/nf-core/trimgalore/main.nf index a69e3de6..dc295784 100644 --- a/modules/nf-core/trimgalore/main.nf +++ b/modules/nf-core/trimgalore/main.nf @@ -2,7 +2,7 @@ process TRIMGALORE { tag "$meta.id" label 'process_high' - conda (params.enable_conda ? 'bioconda::trim-galore=0.6.7' : null) + conda "bioconda::trim-galore=0.6.7" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/trim-galore:0.6.7--hdfd78af_0' : 'quay.io/biocontainers/trim-galore:0.6.7--hdfd78af_0' }" @@ -11,13 +11,12 @@ process TRIMGALORE { tuple val(meta), path(reads) output: - tuple val(meta), path("*{trimmed,val}*.fq.gz"), emit: reads - tuple val(meta), path("*report.txt") , emit: log - path "versions.yml" , emit: versions - - tuple val(meta), path("*unpaired*.fq.gz") , emit: unpaired, optional: true - tuple val(meta), path("*.html") , emit: html , optional: true - tuple val(meta), path("*.zip") , emit: zip , optional: true + tuple val(meta), path("*{3prime,5prime,trimmed,val}*.fq.gz"), emit: reads + tuple val(meta), path("*report.txt") , emit: log , optional: true + tuple val(meta), path("*unpaired*.fq.gz") , emit: unpaired, optional: true + tuple val(meta), path("*.html") , emit: html , optional: true + tuple val(meta), path("*.zip") , emit: zip , optional: true + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -35,23 +34,17 @@ process TRIMGALORE { if (cores > 8) cores = 8 } - // Clipping presets have to be evaluated in the context of SE/PE - def c_r1 = params.clip_r1 > 0 ? "--clip_r1 ${params.clip_r1}" : '' - def c_r2 = params.clip_r2 > 0 ? "--clip_r2 ${params.clip_r2}" : '' - def tpc_r1 = params.three_prime_clip_r1 > 0 ? "--three_prime_clip_r1 ${params.three_prime_clip_r1}" : '' - def tpc_r2 = params.three_prime_clip_r2 > 0 ? "--three_prime_clip_r2 ${params.three_prime_clip_r2}" : '' - // Added soft-links to original fastqs for consistent naming in MultiQC def prefix = task.ext.prefix ?: "${meta.id}" if (meta.single_end) { + def args_list = args.split("\\s(?=--)").toList() + args_list.removeAll { it.toLowerCase().contains('_r2 ') } """ [ ! -f ${prefix}.fastq.gz ] && ln -s $reads ${prefix}.fastq.gz trim_galore \\ - $args \\ + ${args_list.join(' ')} \\ --cores $cores \\ --gzip \\ - $c_r1 \\ - $tpc_r1 \\ ${prefix}.fastq.gz cat <<-END_VERSIONS > versions.yml @@ -69,10 +62,6 @@ process TRIMGALORE { --cores $cores \\ --paired \\ --gzip \\ - $c_r1 \\ - $c_r2 \\ - $tpc_r1 \\ - $tpc_r2 \\ ${prefix}_1.fastq.gz \\ ${prefix}_2.fastq.gz diff --git a/modules/nf-core/trimgalore/meta.yml b/modules/nf-core/trimgalore/meta.yml index 439f566d..f84c4d77 100644 --- a/modules/nf-core/trimgalore/meta.yml +++ b/modules/nf-core/trimgalore/meta.yml @@ -36,7 +36,7 @@ output: description: | List of input adapter trimmed FastQ files of size 1 and 2 for single-end and paired-end data, respectively. - pattern: "*.{fq.gz}" + pattern: "*{3prime,5prime,trimmed,val}*.fq.gz" - unpaired: type: file description: | diff --git a/modules/nf-core/ucsc/bedgraphtobigwig/main.nf b/modules/nf-core/ucsc/bedgraphtobigwig/main.nf index a2979e04..defda3ef 100644 --- a/modules/nf-core/ucsc/bedgraphtobigwig/main.nf +++ b/modules/nf-core/ucsc/bedgraphtobigwig/main.nf @@ -3,7 +3,7 @@ process UCSC_BEDGRAPHTOBIGWIG { label 'process_single' // WARN: Version information not provided by tool on CLI. Please update version string below when bumping container versions. - conda (params.enable_conda ? "bioconda::ucsc-bedgraphtobigwig=377" : null) + conda "bioconda::ucsc-bedgraphtobigwig=377" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/ucsc-bedgraphtobigwig:377--h446ed27_1' : 'quay.io/biocontainers/ucsc-bedgraphtobigwig:377--h446ed27_1' }" diff --git a/modules/nf-core/ucsc/bedgraphtobigwig/meta.yml b/modules/nf-core/ucsc/bedgraphtobigwig/meta.yml index 1be1a3b7..ba8915be 100755 --- a/modules/nf-core/ucsc/bedgraphtobigwig/meta.yml +++ b/modules/nf-core/ucsc/bedgraphtobigwig/meta.yml @@ -6,10 +6,8 @@ keywords: tools: - ucsc: description: Convert a bedGraph file to bigWig format. - homepage: None - documentation: None - tool_dev_url: None - doi: "" + homepage: http://hgdownload.cse.ucsc.edu/admin/exe/ + documentation: https://genome.ucsc.edu/goldenPath/help/bigWig.html licence: ["varies; see http://genome.ucsc.edu/license"] input: From 8daf9569dce8d2e2e7858d77ee4c2b392beb005d Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Fri, 21 Apr 2023 13:55:13 +0200 Subject: [PATCH 055/201] Install bam_markduplicates_picard from nf-core repo --- modules.json | 11 +++- .../nf-core/bam_markduplicates_picard/main.nf | 52 ++++++++++++++++ .../bam_markduplicates_picard/meta.yml | 60 +++++++++++++++++++ .../nf-core/mark_duplicates_picard.nf | 42 ------------- workflows/chipseq.nf | 22 +++---- 5 files changed, 132 insertions(+), 55 deletions(-) create mode 100644 subworkflows/nf-core/bam_markduplicates_picard/main.nf create mode 100644 subworkflows/nf-core/bam_markduplicates_picard/meta.yml delete mode 100644 subworkflows/nf-core/mark_duplicates_picard.nf diff --git a/modules.json b/modules.json index d6769afc..48c56fc0 100644 --- a/modules.json +++ b/modules.json @@ -113,7 +113,7 @@ "picard/markduplicates": { "branch": "master", "git_sha": "75027bf77472b1f4fd2cdd7e46f83119dfb0f2c6", - "installed_by": ["modules"] + "installed_by": ["modules", "bam_markduplicates_picard"] }, "picard/mergesamfiles": { "branch": "master", @@ -138,7 +138,7 @@ "samtools/index": { "branch": "master", "git_sha": "0f8a77ff00e65eaeebc509b8156eaa983192474b", - "installed_by": ["bam_sort_stats_samtools", "modules"] + "installed_by": ["modules", "bam_markduplicates_picard", "bam_sort_stats_samtools"] }, "samtools/sort": { "branch": "master", @@ -179,6 +179,11 @@ }, "subworkflows": { "nf-core": { + "bam_markduplicates_picard": { + "branch": "master", + "git_sha": "6f1697c121719dedde9e0537b6ed6a9cb8c13583", + "installed_by": ["subworkflows"] + }, "bam_sort_stats_samtools": { "branch": "master", "git_sha": "3911652a6b24249358f79e8b8466338d63efb2a2", @@ -187,7 +192,7 @@ "bam_stats_samtools": { "branch": "master", "git_sha": "b4b7f89e7fd6d2293f0c176213f710e0bcdaf19e", - "installed_by": ["bam_sort_stats_samtools"] + "installed_by": ["bam_markduplicates_picard", "bam_sort_stats_samtools"] }, "fastq_align_bowtie2": { "branch": "master", diff --git a/subworkflows/nf-core/bam_markduplicates_picard/main.nf b/subworkflows/nf-core/bam_markduplicates_picard/main.nf new file mode 100644 index 00000000..6e3df332 --- /dev/null +++ b/subworkflows/nf-core/bam_markduplicates_picard/main.nf @@ -0,0 +1,52 @@ +// +// Picard MarkDuplicates, index BAM file and run samtools stats, flagstat and idxstats +// + +include { PICARD_MARKDUPLICATES } from '../../../modules/nf-core/picard/markduplicates/main' +include { SAMTOOLS_INDEX } from '../../../modules/nf-core/samtools/index/main' +include { BAM_STATS_SAMTOOLS } from '../bam_stats_samtools/main' + +workflow BAM_MARKDUPLICATES_PICARD { + + take: + ch_bam // channel: [ val(meta), path(bam) ] + ch_fasta // channel: [ path(fasta) ] + ch_fai // channel: [ path(fai) ] + + main: + + ch_versions = Channel.empty() + + PICARD_MARKDUPLICATES ( ch_bam, ch_fasta, ch_fai ) + ch_versions = ch_versions.mix(PICARD_MARKDUPLICATES.out.versions.first()) + + SAMTOOLS_INDEX ( PICARD_MARKDUPLICATES.out.bam ) + ch_versions = ch_versions.mix(SAMTOOLS_INDEX.out.versions.first()) + + ch_bam_bai = PICARD_MARKDUPLICATES.out.bam + .join(SAMTOOLS_INDEX.out.bai, by: [0], remainder: true) + .join(SAMTOOLS_INDEX.out.csi, by: [0], remainder: true) + .map { + meta, bam, bai, csi -> + if (bai) { + [ meta, bam, bai ] + } else { + [ meta, bam, csi ] + } + } + + BAM_STATS_SAMTOOLS ( ch_bam_bai, ch_fasta ) + ch_versions = ch_versions.mix(BAM_STATS_SAMTOOLS.out.versions) + + emit: + bam = PICARD_MARKDUPLICATES.out.bam // channel: [ val(meta), path(bam) ] + metrics = PICARD_MARKDUPLICATES.out.metrics // channel: [ val(meta), path(bam) ] + bai = SAMTOOLS_INDEX.out.bai // channel: [ val(meta), path(bai) ] + csi = SAMTOOLS_INDEX.out.csi // channel: [ val(meta), path(csi) ] + + stats = BAM_STATS_SAMTOOLS.out.stats // channel: [ val(meta), path(stats) ] + flagstat = BAM_STATS_SAMTOOLS.out.flagstat // channel: [ val(meta), path(flagstat) ] + idxstats = BAM_STATS_SAMTOOLS.out.idxstats // channel: [ val(meta), path(idxstats) ] + + versions = ch_versions // channel: [ versions.yml ] +} diff --git a/subworkflows/nf-core/bam_markduplicates_picard/meta.yml b/subworkflows/nf-core/bam_markduplicates_picard/meta.yml new file mode 100644 index 00000000..822c6132 --- /dev/null +++ b/subworkflows/nf-core/bam_markduplicates_picard/meta.yml @@ -0,0 +1,60 @@ +name: "bam_markduplicates_picard" +description: Picard MarkDuplicates, index BAM file and run samtools stats, flagstat and idxstats +keywords: + - markduplicates + - bam + - sam + - cram + +modules: + - picard/markduplicates + - samtools/index + - samtools/stats + - samtools/idxstats + - samtools/flagstat + +input: + - ch_bam: + description: | + BAM/CRAM/SAM file + Structure: [ val(meta), path(bam) ] + - ch_fasta: + description: | + Reference genome fasta file + Structure: [ path(fasta) ] + - ch_fasta: + description: | + Index of the reference genome fasta file + Structure: [ path(fai) ] +output: + - bam: + description: | + processed BAM/CRAM/SAM file + Structure: [ val(meta), path(bam) ] + - bai: + description: | + BAM/CRAM/SAM samtools index + Structure: [ val(meta), path(bai) ] + - csi: + description: | + CSI samtools index + Structure: [ val(meta), path(csi) ] + - stats: + description: | + File containing samtools stats output + Structure: [ val(meta), path(stats) ] + - flagstat: + description: | + File containing samtools flagstat output + Structure: [ val(meta), path(flagstat) ] + - idxstats: + description: | + File containing samtools idxstats output + Structure: [ val(meta), path(idxstats) ] + - versions: + description: | + Files containing software versions + Structure: [ path(versions.yml) ] +authors: + - "@dmarron" + - "@drpatelh" diff --git a/subworkflows/nf-core/mark_duplicates_picard.nf b/subworkflows/nf-core/mark_duplicates_picard.nf deleted file mode 100644 index 72a0eb8e..00000000 --- a/subworkflows/nf-core/mark_duplicates_picard.nf +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Picard MarkDuplicates, sort, index BAM file and run samtools stats, flagstat and idxstats - */ - -include { PICARD_MARKDUPLICATES } from '../../modules/nf-core/picard/markduplicates/main' -include { SAMTOOLS_INDEX } from '../../modules/nf-core/samtools/index/main' -include { BAM_STATS_SAMTOOLS } from './bam_stats_samtools' - -workflow MARK_DUPLICATES_PICARD { - take: - bam // channel: [ val(meta), [ bam ] ] - - main: - - ch_versions = Channel.empty() - - // - // Picard MarkDuplicates - // - PICARD_MARKDUPLICATES(bam) - ch_versions = ch_versions.mix(PICARD_MARKDUPLICATES.out.versions.first()) - - // - // Index BAM file and run samtools stats, flagstat and idxstats - // - SAMTOOLS_INDEX(PICARD_MARKDUPLICATES.out.bam) - ch_versions = ch_versions.mix(SAMTOOLS_INDEX.out.versions.first()) - - BAM_STATS_SAMTOOLS(PICARD_MARKDUPLICATES.out.bam.join(SAMTOOLS_INDEX.out.bai, by: [0])) - ch_versions = ch_versions.mix(BAM_STATS_SAMTOOLS.out.versions) - - emit: - bam = PICARD_MARKDUPLICATES.out.bam // channel: [ val(meta), [ bam ] ] - metrics = PICARD_MARKDUPLICATES.out.metrics // channel: [ val(meta), [ metrics ] ] - - bai = SAMTOOLS_INDEX.out.bai // channel: [ val(meta), [ bai ] ] - stats = BAM_STATS_SAMTOOLS.out.stats // channel: [ val(meta), [ stats ] ] - flagstat = BAM_STATS_SAMTOOLS.out.flagstat // channel: [ val(meta), [ flagstat ] ] - idxstats = BAM_STATS_SAMTOOLS.out.idxstats // channel: [ val(meta), [ idxstats ] ] - - versions = ch_versions // channel: [ versions.yml ] -} diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index 71d7dfe8..bdf5783f 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -120,7 +120,7 @@ include { FASTQ_FASTQC_UMITOOLS_TRIMGALORE } from '../subworkflows/nf-core/fastq include { FASTQ_ALIGN_BWA } from '../subworkflows/nf-core/fastq_align_bwa/main' include { FASTQ_ALIGN_BOWTIE2 } from '../subworkflows/nf-core/fastq_align_bowtie2/main' include { FASTQ_ALIGN_CHROMAP } from '../subworkflows/nf-core/fastq_align_chromap/main' -include { MARK_DUPLICATES_PICARD } from '../subworkflows/nf-core/mark_duplicates_picard' +include { BAM_MARKDUPLICATES_PICARD } from '../subworkflows/nf-core/bam_markduplicates_picard/main' /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -279,16 +279,18 @@ workflow CHIPSEQ { // // SUBWORKFLOW: Mark duplicates & filter BAM files after merging // - MARK_DUPLICATES_PICARD ( - PICARD_MERGESAMFILES.out.bam + BAM_MARKDUPLICATES_PICARD ( + PICARD_MERGESAMFILES.out.bam, + PREPARE_GENOME.out.fasta, + PREPARE_GENOME.out.fai ) - ch_versions = ch_versions.mix(MARK_DUPLICATES_PICARD.out.versions) + ch_versions = ch_versions.mix(BAM_MARKDUPLICATES_PICARD.out.versions) // // SUBWORKFLOW: Filter BAM file with BamTools // BAM_FILTER_BAMTOOLS ( - MARK_DUPLICATES_PICARD.out.bam.join(MARK_DUPLICATES_PICARD.out.bai, by: [0]), + BAM_MARKDUPLICATES_PICARD.out.bam.join(BAM_MARKDUPLICATES_PICARD.out.bai, by: [0]), PREPARE_GENOME.out.filtered_bed.first(), PREPARE_GENOME.out.fasta, ch_bamtools_filter_se_config, @@ -302,7 +304,7 @@ workflow CHIPSEQ { ch_preseq_multiqc = Channel.empty() if (!params.skip_preseq) { PRESEQ_LCEXTRAP ( - MARK_DUPLICATES_PICARD.out.bam + BAM_MARKDUPLICATES_PICARD.out.bam ) ch_preseq_multiqc = PRESEQ_LCEXTRAP.out.lc_extrap ch_versions = ch_versions.mix(PRESEQ_LCEXTRAP.out.versions.first()) @@ -713,10 +715,10 @@ workflow CHIPSEQ { ch_samtools_flagstat.collect{it[1]}.ifEmpty([]), ch_samtools_idxstats.collect{it[1]}.ifEmpty([]), - MARK_DUPLICATES_PICARD.out.stats.collect{it[1]}.ifEmpty([]), - MARK_DUPLICATES_PICARD.out.flagstat.collect{it[1]}.ifEmpty([]), - MARK_DUPLICATES_PICARD.out.idxstats.collect{it[1]}.ifEmpty([]), - MARK_DUPLICATES_PICARD.out.metrics.collect{it[1]}.ifEmpty([]), + BAM_MARKDUPLICATES_PICARD.out.stats.collect{it[1]}.ifEmpty([]), + BAM_MARKDUPLICATES_PICARD.out.flagstat.collect{it[1]}.ifEmpty([]), + BAM_MARKDUPLICATES_PICARD.out.idxstats.collect{it[1]}.ifEmpty([]), + BAM_MARKDUPLICATES_PICARD.out.metrics.collect{it[1]}.ifEmpty([]), BAM_FILTER_BAMTOOLS.out.stats.collect{it[1]}.ifEmpty([]), BAM_FILTER_BAMTOOLS.out.flagstat.collect{it[1]}.ifEmpty([]), From 73919ee93e119e7b5685a3dd4d24a04a42ed6ca7 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Fri, 21 Apr 2023 14:04:31 +0200 Subject: [PATCH 056/201] Also update instances of bam_markduplicates_picard in modules --- conf/modules.config | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/conf/modules.config b/conf/modules.config index dfc0c5ec..0381c658 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -322,7 +322,7 @@ process { publishDir = [ enabled: false ] } - withName: '.*:MARK_DUPLICATES_PICARD:PICARD_MARKDUPLICATES' { + withName: '.*:BAM_MARKDUPLICATES_PICARD:PICARD_MARKDUPLICATES' { ext.args = '--ASSUME_SORTED true --REMOVE_DUPLICATES false --VALIDATION_STRINGENCY LENIENT --TMP_DIR tmp' ext.prefix = { "${meta.id}.mLb.mkD.sorted" } publishDir = [ @@ -340,7 +340,7 @@ process { ] } - withName: '.*:MARK_DUPLICATES_PICARD:SAMTOOLS_INDEX' { + withName: '.*:BAM_MARKDUPLICATES_PICARD:SAMTOOLS_INDEX' { publishDir = [ path: { "${params.outdir}/${params.aligner}/mergedLibrary" }, mode: params.publish_dir_mode, @@ -349,7 +349,7 @@ process { ] } - withName: '.*:MARK_DUPLICATES_PICARD:BAM_STATS_SAMTOOLS:.*' { + withName: '.*:BAM_MARKDUPLICATES_PICARD:BAM_STATS_SAMTOOLS:.*' { ext.prefix = { "${meta.id}.mLb.mkD.sorted.bam" } publishDir = [ path: { "${params.outdir}/${params.aligner}/mergedLibrary/samtools_stats" }, From 477491d9376969a4db549d2a049533a653251d5a Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Fri, 21 Apr 2023 14:08:10 +0200 Subject: [PATCH 057/201] Remove obsolet subworkflow --- subworkflows/nf-core/bam_stats_samtools.nf | 32 ---------------------- 1 file changed, 32 deletions(-) delete mode 100644 subworkflows/nf-core/bam_stats_samtools.nf diff --git a/subworkflows/nf-core/bam_stats_samtools.nf b/subworkflows/nf-core/bam_stats_samtools.nf deleted file mode 100644 index 207c5ece..00000000 --- a/subworkflows/nf-core/bam_stats_samtools.nf +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Run SAMtools stats, flagstat and idxstats - */ - -include { SAMTOOLS_STATS } from '../../modules/nf-core/samtools/stats/main' -include { SAMTOOLS_IDXSTATS } from '../../modules/nf-core/samtools/idxstats/main' -include { SAMTOOLS_FLAGSTAT } from '../../modules/nf-core/samtools/flagstat/main' - -workflow BAM_STATS_SAMTOOLS { - take: - ch_bam_bai // channel: [ val(meta), [ bam ], [bai] ] - - main: - - ch_versions = Channel.empty() - - SAMTOOLS_STATS ( ch_bam_bai, [] ) - ch_versions = ch_versions.mix(SAMTOOLS_STATS.out.versions.first()) - - SAMTOOLS_FLAGSTAT ( ch_bam_bai ) - ch_versions = ch_versions.mix(SAMTOOLS_FLAGSTAT.out.versions.first()) - - SAMTOOLS_IDXSTATS ( ch_bam_bai ) - ch_versions = ch_versions.mix(SAMTOOLS_IDXSTATS.out.versions.first()) - - emit: - stats = SAMTOOLS_STATS.out.stats // channel: [ val(meta), [ stats ] ] - flagstat = SAMTOOLS_FLAGSTAT.out.flagstat // channel: [ val(meta), [ flagstat ] ] - idxstats = SAMTOOLS_IDXSTATS.out.idxstats // channel: [ val(meta), [ idxstats ] ] - - versions = ch_versions // channel: [ versions.yml ] -} From 6c32d4e62cad615f9fa98be7a0ce4d310285d4e7 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Fri, 21 Apr 2023 14:08:24 +0200 Subject: [PATCH 058/201] Fix bwa_index --- subworkflows/local/prepare_genome.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/subworkflows/local/prepare_genome.nf b/subworkflows/local/prepare_genome.nf index 4cb2d164..3a42267e 100644 --- a/subworkflows/local/prepare_genome.nf +++ b/subworkflows/local/prepare_genome.nf @@ -144,7 +144,7 @@ workflow PREPARE_GENOME { ch_bwa_index = file(params.bwa_index) } } else { - ch_bwa_index = BWA_INDEX ( ch_fasta ).index + ch_bwa_index = BWA_INDEX ( [ [:], ch_fasta ] ).index ch_versions = ch_versions.mix(BWA_INDEX.out.versions) } } From 59c02c5817c6b8d99070c46b81cbc0b0abf3ae74 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Mon, 24 Apr 2023 12:14:02 +0200 Subject: [PATCH 059/201] Update changelog --- CHANGELOG.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b0266c0d..86bffe83 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [[#320](https://github.com/nf-core/chipseq/issues/320)] Fix samplesheet control column in documentation examples. - [[#328](https://github.com/nf-core/chipseq/issues/328)] Modify documentation to clarify that is necessary to provide the `--read_length` when `--genome` is set and `--macs_gsize` has not provided. +### Software dependencies + +Note, since the pipeline is now using Nextflow DSL2, each process will be run with its own [Biocontainer](https://biocontainers.pro/#/registry). This means that on occasion it is entirely possible for the pipeline to be using different versions of the same tool. However, the overall software dependency changes compared to the last release have been listed below for reference. + +| Dependency | Old version | New version | +| ----------------------- | ----------- | ----------- | +| `chromap` | 0.2.1 | 0.2.4 | +| `multiqc` | 1.13 | 1.14 | +| `picard` | 2.27.4 | 3.0.0 | +| `samtools` | 1.15.1 | 1.16.1 | + +> **NB:** Dependency has been **updated** if both old and new version information is present. +> **NB:** Dependency has been **added** if just the new version information is present. +> **NB:** Dependency has been **removed** if version information isn't present. + ## [[2.0.0](https://github.com/nf-core/chipseq/releases/tag/2.0.0)] - 2022-10-03 ### Enhancements & fixes From fa049414417ba1965f26b50e99d69a9b26a72751 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Mon, 24 Apr 2023 15:53:01 +0200 Subject: [PATCH 060/201] Make prettier happy --- CHANGELOG.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 86bffe83..a2ed9aaa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,12 +20,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 Note, since the pipeline is now using Nextflow DSL2, each process will be run with its own [Biocontainer](https://biocontainers.pro/#/registry). This means that on occasion it is entirely possible for the pipeline to be using different versions of the same tool. However, the overall software dependency changes compared to the last release have been listed below for reference. -| Dependency | Old version | New version | -| ----------------------- | ----------- | ----------- | -| `chromap` | 0.2.1 | 0.2.4 | -| `multiqc` | 1.13 | 1.14 | -| `picard` | 2.27.4 | 3.0.0 | -| `samtools` | 1.15.1 | 1.16.1 | +| Dependency | Old version | New version | +| ---------- | ----------- | ----------- | +| `chromap` | 0.2.1 | 0.2.4 | +| `multiqc` | 1.13 | 1.14 | +| `picard` | 2.27.4 | 3.0.0 | +| `samtools` | 1.15.1 | 1.16.1 | > **NB:** Dependency has been **updated** if both old and new version information is present. > **NB:** Dependency has been **added** if just the new version information is present. From 02d021b0253e4a5bafcf24c434bc3b52ea7cbc6d Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 25 Apr 2023 20:02:09 +0200 Subject: [PATCH 061/201] Remove enable_conda from local modules --- modules/local/annotate_boolean_peaks.nf | 2 +- modules/local/bam_remove_orphans.nf | 2 +- modules/local/bamtools_filter.nf | 2 +- modules/local/bedtools_genomecov.nf | 2 +- modules/local/deseq2_qc.nf | 2 +- modules/local/frip_score.nf | 2 +- modules/local/genome_blacklist_regions.nf | 2 +- modules/local/gtf2bed.nf | 2 +- modules/local/igv.nf | 2 +- modules/local/macs2_consensus.nf | 2 +- modules/local/multiqc.nf | 2 +- modules/local/multiqc_custom_peaks.nf | 2 +- modules/local/multiqc_custom_phantompeakqualtools.nf | 2 +- modules/local/plot_homer_annotatepeaks.nf | 2 +- modules/local/plot_macs2_qc.nf | 2 +- modules/local/star_align.nf | 2 +- modules/local/star_genomegenerate.nf | 2 +- 17 files changed, 17 insertions(+), 17 deletions(-) diff --git a/modules/local/annotate_boolean_peaks.nf b/modules/local/annotate_boolean_peaks.nf index ab2dfbed..a68aa333 100644 --- a/modules/local/annotate_boolean_peaks.nf +++ b/modules/local/annotate_boolean_peaks.nf @@ -2,7 +2,7 @@ process ANNOTATE_BOOLEAN_PEAKS { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "conda-forge::sed=4.7" : null) + conda "conda-forge::sed=4.7" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/ubuntu:20.04' : 'ubuntu:20.04' }" diff --git a/modules/local/bam_remove_orphans.nf b/modules/local/bam_remove_orphans.nf index 21ffc73a..95a56c60 100644 --- a/modules/local/bam_remove_orphans.nf +++ b/modules/local/bam_remove_orphans.nf @@ -5,7 +5,7 @@ process BAM_REMOVE_ORPHANS { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::pysam=0.19.0 bioconda::samtools=1.15.1" : null) + conda "bioconda::pysam=0.19.0 bioconda::samtools=1.15.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/mulled-v2-57736af1eb98c01010848572c9fec9fff6ffaafd:402e865b8f6af2f3e58c6fc8d57127ff0144b2c7-0' : 'quay.io/biocontainers/mulled-v2-57736af1eb98c01010848572c9fec9fff6ffaafd:402e865b8f6af2f3e58c6fc8d57127ff0144b2c7-0' }" diff --git a/modules/local/bamtools_filter.nf b/modules/local/bamtools_filter.nf index ee469ffd..c1e750d7 100644 --- a/modules/local/bamtools_filter.nf +++ b/modules/local/bamtools_filter.nf @@ -2,7 +2,7 @@ process BAMTOOLS_FILTER { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::bamtools=2.5.2 bioconda::samtools=1.15.1" : null) + conda "bioconda::bamtools=2.5.2 bioconda::samtools=1.15.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/mulled-v2-0560a8046fc82aa4338588eca29ff18edab2c5aa:5687a7da26983502d0a8a9a6b05ed727c740ddc4-0' : 'quay.io/biocontainers/mulled-v2-0560a8046fc82aa4338588eca29ff18edab2c5aa:5687a7da26983502d0a8a9a6b05ed727c740ddc4-0' }" diff --git a/modules/local/bedtools_genomecov.nf b/modules/local/bedtools_genomecov.nf index e8cbb3f7..2f38c06c 100644 --- a/modules/local/bedtools_genomecov.nf +++ b/modules/local/bedtools_genomecov.nf @@ -2,7 +2,7 @@ process BEDTOOLS_GENOMECOV { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::bedtools=2.30.0" : null) + conda "bioconda::bedtools=2.30.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/bedtools:2.30.0--hc088bd4_0': 'quay.io/biocontainers/bedtools:2.30.0--hc088bd4_0' }" diff --git a/modules/local/deseq2_qc.nf b/modules/local/deseq2_qc.nf index 84ff0d5f..fe389300 100644 --- a/modules/local/deseq2_qc.nf +++ b/modules/local/deseq2_qc.nf @@ -4,7 +4,7 @@ process DESEQ2_QC { // (Bio)conda packages have intentionally not been pinned to a specific version // This was to avoid the pipeline failing due to package conflicts whilst creating the environment when using -profile conda - conda (params.enable_conda ? "conda-forge::r-base bioconda::bioconductor-deseq2 bioconda::bioconductor-biocparallel bioconda::bioconductor-tximport bioconda::bioconductor-complexheatmap conda-forge::r-optparse conda-forge::r-ggplot2 conda-forge::r-rcolorbrewer conda-forge::r-pheatmap" : null) + conda "conda-forge::r-base bioconda::bioconductor-deseq2 bioconda::bioconductor-biocparallel bioconda::bioconductor-tximport bioconda::bioconductor-complexheatmap conda-forge::r-optparse conda-forge::r-ggplot2 conda-forge::r-rcolorbrewer conda-forge::r-pheatmap" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/mulled-v2-8849acf39a43cdd6c839a369a74c0adc823e2f91:ab110436faf952a33575c64dd74615a84011450b-0' : 'quay.io/biocontainers/mulled-v2-8849acf39a43cdd6c839a369a74c0adc823e2f91:ab110436faf952a33575c64dd74615a84011450b-0' }" diff --git a/modules/local/frip_score.nf b/modules/local/frip_score.nf index 337b18c5..ffcc6e2d 100644 --- a/modules/local/frip_score.nf +++ b/modules/local/frip_score.nf @@ -2,7 +2,7 @@ process FRIP_SCORE { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::bedtools=2.30.0 bioconda::samtools=1.15.1" : null) + conda "bioconda::bedtools=2.30.0 bioconda::samtools=1.15.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/mulled-v2-8186960447c5cb2faa697666dc1e6d919ad23f3e:3127fcae6b6bdaf8181e21a26ae61231030a9fcb-0': 'quay.io/biocontainers/mulled-v2-8186960447c5cb2faa697666dc1e6d919ad23f3e:3127fcae6b6bdaf8181e21a26ae61231030a9fcb-0' }" diff --git a/modules/local/genome_blacklist_regions.nf b/modules/local/genome_blacklist_regions.nf index 1a28af0f..4421fb6c 100644 --- a/modules/local/genome_blacklist_regions.nf +++ b/modules/local/genome_blacklist_regions.nf @@ -4,7 +4,7 @@ process GENOME_BLACKLIST_REGIONS { tag "$sizes" - conda (params.enable_conda ? "bioconda::bedtools=2.30.0" : null) + conda "bioconda::bedtools=2.30.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/bedtools:2.30.0--hc088bd4_0': 'quay.io/biocontainers/bedtools:2.30.0--hc088bd4_0' }" diff --git a/modules/local/gtf2bed.nf b/modules/local/gtf2bed.nf index 1d306cee..91e29062 100644 --- a/modules/local/gtf2bed.nf +++ b/modules/local/gtf2bed.nf @@ -2,7 +2,7 @@ process GTF2BED { tag "$gtf" label 'process_low' - conda (params.enable_conda ? "conda-forge::perl=5.26.2" : null) + conda "conda-forge::perl=5.26.2" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/perl:5.26.2': 'quay.io/biocontainers/perl:5.26.2' }" diff --git a/modules/local/igv.nf b/modules/local/igv.nf index 213904b3..59a2d2e8 100644 --- a/modules/local/igv.nf +++ b/modules/local/igv.nf @@ -3,7 +3,7 @@ */ process IGV { - conda (params.enable_conda ? "conda-forge::python=3.8.3" : null) + conda "conda-forge::python=3.8.3" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/python:3.8.3': 'quay.io/biocontainers/python:3.8.3' }" diff --git a/modules/local/macs2_consensus.nf b/modules/local/macs2_consensus.nf index ab9ef93a..b8a5abd7 100644 --- a/modules/local/macs2_consensus.nf +++ b/modules/local/macs2_consensus.nf @@ -5,7 +5,7 @@ process MACS2_CONSENSUS { tag "$meta.id" label 'process_long' - conda (params.enable_conda ? "conda-forge::biopython conda-forge::r-optparse=1.7.1 conda-forge::r-upsetr=1.4.0 bioconda::bedtools=2.30.0" : null) + conda "conda-forge::biopython conda-forge::r-optparse=1.7.1 conda-forge::r-upsetr=1.4.0 bioconda::bedtools=2.30.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/mulled-v2-2f48cc59b03027e31ead6d383fe1b8057785dd24:5d182f583f4696f4c4d9f3be93052811b383341f-0': 'quay.io/biocontainers/mulled-v2-2f48cc59b03027e31ead6d383fe1b8057785dd24:5d182f583f4696f4c4d9f3be93052811b383341f-0' }" diff --git a/modules/local/multiqc.nf b/modules/local/multiqc.nf index 27dd8f29..31552551 100644 --- a/modules/local/multiqc.nf +++ b/modules/local/multiqc.nf @@ -1,7 +1,7 @@ process MULTIQC { label 'process_medium' - conda (params.enable_conda ? "bioconda::multiqc=1.13a" : null) + conda "bioconda::multiqc=1.13a" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/multiqc:1.13a--pyhdfd78af_1': 'quay.io/biocontainers/multiqc:1.13a--pyhdfd78af_1' }" diff --git a/modules/local/multiqc_custom_peaks.nf b/modules/local/multiqc_custom_peaks.nf index ebef7b13..71dc5abb 100644 --- a/modules/local/multiqc_custom_peaks.nf +++ b/modules/local/multiqc_custom_peaks.nf @@ -1,6 +1,6 @@ process MULTIQC_CUSTOM_PEAKS { tag "$meta.id" - conda (params.enable_conda ? "conda-forge::sed=4.7" : null) + conda "conda-forge::sed=4.7" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/ubuntu:20.04' : 'ubuntu:20.04' }" diff --git a/modules/local/multiqc_custom_phantompeakqualtools.nf b/modules/local/multiqc_custom_phantompeakqualtools.nf index 4878e2c2..c7f4127f 100644 --- a/modules/local/multiqc_custom_phantompeakqualtools.nf +++ b/modules/local/multiqc_custom_phantompeakqualtools.nf @@ -1,6 +1,6 @@ process MULTIQC_CUSTOM_PHANTOMPEAKQUALTOOLS { tag "$meta.id" - conda (params.enable_conda ? "conda-forge::r-base=3.5.1" : null) + conda "conda-forge::r-base=3.5.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/r-base:3.5.1': 'quay.io/biocontainers/r-base:3.5.1' }" diff --git a/modules/local/plot_homer_annotatepeaks.nf b/modules/local/plot_homer_annotatepeaks.nf index 3375349a..eed17949 100644 --- a/modules/local/plot_homer_annotatepeaks.nf +++ b/modules/local/plot_homer_annotatepeaks.nf @@ -1,7 +1,7 @@ process PLOT_HOMER_ANNOTATEPEAKS { label 'process_medium' - conda (params.enable_conda ? "conda-forge::r-base=4.0.3 conda-forge::r-reshape2=1.4.4 conda-forge::r-optparse=1.6.6 conda-forge::r-ggplot2=3.3.3 conda-forge::r-scales=1.1.1 conda-forge::r-viridis=0.5.1 conda-forge::r-tidyverse=1.3.0 bioconda::bioconductor-biostrings=2.58.0 bioconda::bioconductor-complexheatmap=2.6.2" : null) + conda "conda-forge::r-base=4.0.3 conda-forge::r-reshape2=1.4.4 conda-forge::r-optparse=1.6.6 conda-forge::r-ggplot2=3.3.3 conda-forge::r-scales=1.1.1 conda-forge::r-viridis=0.5.1 conda-forge::r-tidyverse=1.3.0 bioconda::bioconductor-biostrings=2.58.0 bioconda::bioconductor-complexheatmap=2.6.2" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/mulled-v2-ad9dd5f398966bf899ae05f8e7c54d0fb10cdfa7:05678da05b8e5a7a5130e90a9f9a6c585b965afa-0': 'quay.io/biocontainers/mulled-v2-ad9dd5f398966bf899ae05f8e7c54d0fb10cdfa7:05678da05b8e5a7a5130e90a9f9a6c585b965afa-0' }" diff --git a/modules/local/plot_macs2_qc.nf b/modules/local/plot_macs2_qc.nf index bbbf1ce8..92f400d5 100644 --- a/modules/local/plot_macs2_qc.nf +++ b/modules/local/plot_macs2_qc.nf @@ -1,7 +1,7 @@ process PLOT_MACS2_QC { label 'process_medium' - conda (params.enable_conda ? "conda-forge::r-base=4.0.3 conda-forge::r-reshape2=1.4.4 conda-forge::r-optparse=1.6.6 conda-forge::r-ggplot2=3.3.3 conda-forge::r-scales=1.1.1 conda-forge::r-viridis=0.5.1 conda-forge::r-tidyverse=1.3.0 bioconda::bioconductor-biostrings=2.58.0 bioconda::bioconductor-complexheatmap=2.6.2" : null) + conda "conda-forge::r-base=4.0.3 conda-forge::r-reshape2=1.4.4 conda-forge::r-optparse=1.6.6 conda-forge::r-ggplot2=3.3.3 conda-forge::r-scales=1.1.1 conda-forge::r-viridis=0.5.1 conda-forge::r-tidyverse=1.3.0 bioconda::bioconductor-biostrings=2.58.0 bioconda::bioconductor-complexheatmap=2.6.2" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/mulled-v2-ad9dd5f398966bf899ae05f8e7c54d0fb10cdfa7:05678da05b8e5a7a5130e90a9f9a6c585b965afa-0': 'quay.io/biocontainers/mulled-v2-ad9dd5f398966bf899ae05f8e7c54d0fb10cdfa7:05678da05b8e5a7a5130e90a9f9a6c585b965afa-0' }" diff --git a/modules/local/star_align.nf b/modules/local/star_align.nf index f1988bea..0f2589ad 100644 --- a/modules/local/star_align.nf +++ b/modules/local/star_align.nf @@ -3,7 +3,7 @@ process STAR_ALIGN { label 'process_high' // Note: 2.7X indices incompatible with AWS iGenomes. - conda (params.enable_conda ? "bioconda::star=2.6.1d" : null) + conda "bioconda::star=2.6.1d" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/star:2.6.1d--0' : 'quay.io/biocontainers/star:2.6.1d--0' }" diff --git a/modules/local/star_genomegenerate.nf b/modules/local/star_genomegenerate.nf index 3cd4ff20..904b0714 100644 --- a/modules/local/star_genomegenerate.nf +++ b/modules/local/star_genomegenerate.nf @@ -3,7 +3,7 @@ process STAR_GENOMEGENERATE { label 'process_high' // Note: 2.7X indices incompatible with AWS iGenomes. - conda (params.enable_conda ? "bioconda::star=2.6.1d bioconda::samtools=1.10 conda-forge::gawk=5.1.0" : null) + conda "bioconda::star=2.6.1d bioconda::samtools=1.10 conda-forge::gawk=5.1.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/mulled-v2-1fa26d1ce03c295fe2fdcf85831a92fbcbd7e8c2:59cdd445419f14abac76b31dd0d71217994cbcc9-0' : 'quay.io/biocontainers/mulled-v2-1fa26d1ce03c295fe2fdcf85831a92fbcbd7e8c2:59cdd445419f14abac76b31dd0d71217994cbcc9-0' }" From ddddd16b938eec6aacd6051ce27ecbd3aa8322fb Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 25 Apr 2023 22:16:51 +0200 Subject: [PATCH 062/201] Update untar, install untarfiles and update prepare_genomes --- modules.json | 7 +++- modules/nf-core/untar/main.nf | 29 ++++++++-------- modules/nf-core/untarfiles/main.nf | 52 ++++++++++++++++++++++++++++ modules/nf-core/untarfiles/meta.yml | 41 ++++++++++++++++++++++ subworkflows/local/prepare_genome.nf | 8 ++--- 5 files changed, 117 insertions(+), 20 deletions(-) create mode 100644 modules/nf-core/untarfiles/main.nf create mode 100644 modules/nf-core/untarfiles/meta.yml diff --git a/modules.json b/modules.json index 48c56fc0..3f822ac4 100644 --- a/modules.json +++ b/modules.json @@ -172,7 +172,12 @@ }, "untar": { "branch": "master", - "git_sha": "5e34754d42cd2d5d248ca8673c0a53cdf5624905", + "git_sha": "cc1f997fab6d8fde5dc0e6e2a310814df5b53ce7", + "installed_by": ["modules"] + }, + "untarfiles": { + "branch": "master", + "git_sha": "2498e243c8c30c7125661e62fc777917d8e343b9", "installed_by": ["modules"] } } diff --git a/modules/nf-core/untar/main.nf b/modules/nf-core/untar/main.nf index 71eea7b2..3384847a 100644 --- a/modules/nf-core/untar/main.nf +++ b/modules/nf-core/untar/main.nf @@ -2,7 +2,7 @@ process UNTAR { tag "$archive" label 'process_single' - conda (params.enable_conda ? "conda-forge::sed=4.7" : null) + conda "conda-forge::sed=4.7 bioconda::grep=3.4 conda-forge::tar=1.34" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/ubuntu:20.04' : 'ubuntu:20.04' }" @@ -11,8 +11,8 @@ process UNTAR { tuple val(meta), path(archive) output: - tuple val(meta), path("$untar"), emit: untar - path "versions.yml" , emit: versions + tuple val(meta), path("$prefix"), emit: untar + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -20,31 +20,29 @@ process UNTAR { script: def args = task.ext.args ?: '' def args2 = task.ext.args2 ?: '' - untar = archive.toString() - '.tar.gz' + prefix = task.ext.prefix ?: ( meta.id ? "${meta.id}" : archive.baseName.toString().replaceFirst(/\.tar$/, "")) """ - mkdir output + mkdir $prefix ## Ensures --strip-components only applied when top level of tar contents is a directory - ## If just files or multiple directories, place all in output - if [[ \$(tar -tzf ${archive} | grep -o -P "^.*?\\/" | uniq | wc -l) -eq 1 ]]; then + ## If just files or multiple directories, place all in prefix + if [[ \$(tar -taf ${archive} | grep -o -P "^.*?\\/" | uniq | wc -l) -eq 1 ]]; then tar \\ - -C output --strip-components 1 \\ - -xzvf \\ + -C $prefix --strip-components 1 \\ + -xavf \\ $args \\ $archive \\ $args2 else tar \\ - -C output \\ - -xzvf \\ + -C $prefix \\ + -xavf \\ $args \\ $archive \\ $args2 fi - mv output ${untar} - cat <<-END_VERSIONS > versions.yml "${task.process}": untar: \$(echo \$(tar --version 2>&1) | sed 's/^.*(GNU tar) //; s/ Copyright.*\$//') @@ -52,9 +50,10 @@ process UNTAR { """ stub: - untar = archive.toString() - '.tar.gz' + prefix = task.ext.prefix ?: ( meta.id ? "${meta.id}" : archive.toString().replaceFirst(/\.[^\.]+(.gz)?$/, "")) """ - touch $untar + mkdir $prefix + touch ${prefix}/file.txt cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/nf-core/untarfiles/main.nf b/modules/nf-core/untarfiles/main.nf new file mode 100644 index 00000000..8bca09d0 --- /dev/null +++ b/modules/nf-core/untarfiles/main.nf @@ -0,0 +1,52 @@ +process UNTARFILES { + tag "$archive" + label 'process_single' + + conda "conda-forge::sed=4.7 bioconda::grep=3.4 conda-forge::tar=1.34" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/ubuntu:20.04' : + 'ubuntu:20.04' }" + + input: + tuple val(meta), path(archive) + + output: + tuple val(meta), path("${prefix}/**") , emit: files + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def args2 = task.ext.args2 ?: '' + prefix = task.ext.prefix ?: ( meta.id ? "${meta.id}" : archive.baseName.toString().replaceFirst(/\.tar$/, "")) + + """ + mkdir $prefix + + tar \\ + -C $prefix \\ + -xavf \\ + $args \\ + $archive \\ + $args2 + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + untar: \$(echo \$(tar --version 2>&1) | sed 's/^.*(GNU tar) //; s/ Copyright.*\$//') + END_VERSIONS + """ + + stub: + prefix = task.ext.prefix ?: "${meta.id}" + """ + mkdir $prefix + touch ${prefix}/file.txt + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + untar: \$(echo \$(tar --version 2>&1) | sed 's/^.*(GNU tar) //; s/ Copyright.*\$//') + END_VERSIONS + """ +} diff --git a/modules/nf-core/untarfiles/meta.yml b/modules/nf-core/untarfiles/meta.yml new file mode 100644 index 00000000..e89aa3d6 --- /dev/null +++ b/modules/nf-core/untarfiles/meta.yml @@ -0,0 +1,41 @@ +name: untarfiles +description: Extract files. +keywords: + - untar + - uncompress +tools: + - untar: + description: | + Extract tar.gz files. + documentation: https://www.gnu.org/software/tar/manual/ + licence: ["GPL-3.0-or-later"] +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - archive: + type: file + description: File to be untar + pattern: "*.{tar}.{gz}" +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - files: + type: list + description: A list containing references to individual archive files + pattern: "*/**" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@joseespinosa" + - "@drpatelh" + - "@matthdsm" + - "@jfy133" + - "@pinin4fjords" diff --git a/subworkflows/local/prepare_genome.nf b/subworkflows/local/prepare_genome.nf index 3a42267e..dd16e1f5 100644 --- a/subworkflows/local/prepare_genome.nf +++ b/subworkflows/local/prepare_genome.nf @@ -12,9 +12,9 @@ include { include { UNTAR as UNTAR_BWA_INDEX UNTAR as UNTAR_BOWTIE2_INDEX - UNTAR as UNTAR_CHROMAP_INDEX UNTAR as UNTAR_STAR_INDEX } from '../../modules/nf-core/untar/main' +include { UNTARFILES } from '../../modules/nf-core/untarfiles/main' include { GFFREAD } from '../../modules/nf-core/gffread/main' include { CUSTOM_GETCHROMSIZES } from '../../modules/nf-core/custom/getchromsizes/main' include { BWA_INDEX } from '../../modules/nf-core/bwa/index/main' @@ -138,7 +138,7 @@ workflow PREPARE_GENOME { if (prepare_tool_index == 'bwa') { if (params.bwa_index) { if (params.bwa_index.endsWith('.tar.gz')) { - ch_bwa_index = UNTAR_BWA_INDEX ( [ [:], params.bwa_index ] ).untar.map{ it[1] } + ch_bwa_index = UNTAR_BWA_INDEX ( [ [:], params.bwa_index ] ).untar ch_versions = ch_versions.mix(UNTAR_BWA_INDEX.out.versions) } else { ch_bwa_index = file(params.bwa_index) @@ -174,8 +174,8 @@ workflow PREPARE_GENOME { if (prepare_tool_index == 'chromap') { if (params.chromap_index) { if (params.chromap_index.endsWith('.tar.gz')) { - ch_chromap_index = UNTAR_CHROMAP_INDEX ( [ [:], params.chromap_index ] ).untar.map{ it[1] } - ch_versions = ch_versions.mix(UNTAR.out.versions) + ch_chromap_index = UNTARFILES ( [ [:], params.chromap_index ] ).files + ch_versions = ch_versions.mix(UNTARFILES.out.versions) } else { ch_chromap_index = [ [:], file(params.chromap_index) ] } From 2c7b166ba49d29a02cd016f4fa074c82df1b03bd Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 25 Apr 2023 22:17:22 +0200 Subject: [PATCH 063/201] Delete duplicate instance of chromap index --- conf/modules.config | 8 -------- 1 file changed, 8 deletions(-) diff --git a/conf/modules.config b/conf/modules.config index 0381c658..06a1e5a6 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -258,14 +258,6 @@ if (params.aligner == 'bowtie2') { if (params.aligner == 'chromap') { process { - withName: CHROMAP_INDEX { - ext.args = '' - publishDir = [ - path: { "${params.outdir}/genome/${params.aligner}/index" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } - ] - } withName: CHROMAP_CHROMAP { ext.args = '-l 2000 --low-mem --SAM' ext.prefix = { "${meta.id}.Lb" } From 9a7ab508bf65fb1607f63bf3dfb62f38f5c0ca45 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 25 Apr 2023 22:17:30 +0200 Subject: [PATCH 064/201] Fix typo in igenomes --- conf/igenomes.config | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/conf/igenomes.config b/conf/igenomes.config index 7f282cee..2908cad1 100644 --- a/conf/igenomes.config +++ b/conf/igenomes.config @@ -655,11 +655,11 @@ params { readme = "${params.igenomes_base}/Saccharomyces_cerevisiae/UCSC/sacCer3/Annotation/README.txt" mito_name = "chrM" macs_gsize = [ - "50" : "11624332", - "75" : "11693438", - "100" : "11777680", - "150" : "11783749", - "200" : "11825681" + "50" : 11624332, + "75" : 11693438, + "100" : 11777680, + "150" : 11783749, + "200" : 11825681 ] } 'susScr3' { From fce1f5422c6fddbe341cb7ebdba9778ffbe19770 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 25 Apr 2023 22:40:14 +0200 Subject: [PATCH 065/201] Update changelog --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a2ed9aaa..9c19fed9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [[#318](https://github.com/nf-core/chipseq/issues/318)] Update `bowtie2/align` module to fix issue when downloading its singularity image. - [[#320](https://github.com/nf-core/chipseq/issues/320)] Fix samplesheet control column in documentation examples. - [[#328](https://github.com/nf-core/chipseq/issues/328)] Modify documentation to clarify that is necessary to provide the `--read_length` when `--genome` is set and `--macs_gsize` has not provided. +- Remove `enable_conda` param from local modules. +- Fix the path where `chromap` index is stored when `--save_reference` is set. +- Fix untar of `chromap` index when using `--chromap_index` param. ### Software dependencies From a7374e81bc1a4740b184a855d0aa6be14b7d7591 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 26 Apr 2023 12:14:44 +0200 Subject: [PATCH 066/201] Add meta2 to idx in star_align local module to unify prepare_genome uptake of indexes --- modules/local/star_align.nf | 4 ++-- subworkflows/local/prepare_genome.nf | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/local/star_align.nf b/modules/local/star_align.nf index 0f2589ad..be244042 100644 --- a/modules/local/star_align.nf +++ b/modules/local/star_align.nf @@ -9,8 +9,8 @@ process STAR_ALIGN { 'quay.io/biocontainers/star:2.6.1d--0' }" input: - tuple val(meta), path(reads) - path index + tuple val(meta) , path(reads) + tuple val(meta2), path(index) val seq_center output: diff --git a/subworkflows/local/prepare_genome.nf b/subworkflows/local/prepare_genome.nf index dd16e1f5..becb9b85 100644 --- a/subworkflows/local/prepare_genome.nf +++ b/subworkflows/local/prepare_genome.nf @@ -192,7 +192,7 @@ workflow PREPARE_GENOME { if (prepare_tool_index == 'star') { if (params.star_index) { if (params.star_index.endsWith('.tar.gz')) { - ch_star_index = UNTAR_STAR_INDEX ( [ [:], params.star_index ] ).untar.map{ it[1] } + ch_star_index = UNTAR_STAR_INDEX ( [ [:], params.star_index ] ).untar ch_versions = ch_versions.mix(UNTAR_STAR_INDEX.out.versions) } else { ch_star_index = file(params.star_index) From b6a551718bf80535684efa3b130e282544c99eb2 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 26 Apr 2023 13:26:32 +0200 Subject: [PATCH 067/201] Revert previous commit --- modules/local/star_align.nf | 2 +- subworkflows/local/prepare_genome.nf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/local/star_align.nf b/modules/local/star_align.nf index be244042..ec7fc2af 100644 --- a/modules/local/star_align.nf +++ b/modules/local/star_align.nf @@ -10,7 +10,7 @@ process STAR_ALIGN { input: tuple val(meta) , path(reads) - tuple val(meta2), path(index) + path index val seq_center output: diff --git a/subworkflows/local/prepare_genome.nf b/subworkflows/local/prepare_genome.nf index becb9b85..dd16e1f5 100644 --- a/subworkflows/local/prepare_genome.nf +++ b/subworkflows/local/prepare_genome.nf @@ -192,7 +192,7 @@ workflow PREPARE_GENOME { if (prepare_tool_index == 'star') { if (params.star_index) { if (params.star_index.endsWith('.tar.gz')) { - ch_star_index = UNTAR_STAR_INDEX ( [ [:], params.star_index ] ).untar + ch_star_index = UNTAR_STAR_INDEX ( [ [:], params.star_index ] ).untar.map{ it[1] } ch_versions = ch_versions.mix(UNTAR_STAR_INDEX.out.versions) } else { ch_star_index = file(params.star_index) From 9b4a92a885010e56778a1b52eaf2e4fbc69cc53f Mon Sep 17 00:00:00 2001 From: nf-core-bot Date: Fri, 28 Apr 2023 14:19:16 +0000 Subject: [PATCH 068/201] Template update for nf-core/tools version 2.8 --- .editorconfig | 2 +- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- .github/PULL_REQUEST_TEMPLATE.md | 3 +- .github/workflows/awsfulltest.yml | 2 +- .github/workflows/awstest.yml | 2 +- .github/workflows/branch.yml | 2 +- .github/workflows/clean-up.yml | 24 ++++ .github/workflows/linting.yml | 2 +- .pre-commit-config.yaml | 5 + README.md | 74 ++++++---- bin/check_samplesheet.py | 3 - conf/base.config | 2 +- conf/igenomes.config | 8 ++ conf/test_full.config | 2 + docs/usage.md | 130 +++++------------- lib/NfcoreSchema.groovy | 4 +- lib/WorkflowChipseq.groovy | 12 +- lib/WorkflowMain.groovy | 13 +- main.nf | 1 - modules.json | 4 +- modules/local/samplesheet_check.nf | 2 +- .../custom/dumpsoftwareversions/main.nf | 6 +- .../custom/dumpsoftwareversions/meta.yml | 2 + modules/nf-core/multiqc/main.nf | 6 +- modules/nf-core/multiqc/meta.yml | 3 +- nextflow.config | 29 +++- tower.yml | 5 + 27 files changed, 193 insertions(+), 157 deletions(-) create mode 100644 .github/workflows/clean-up.yml create mode 100644 .pre-commit-config.yaml create mode 100644 tower.yml diff --git a/.editorconfig b/.editorconfig index b78de6e6..b6b31907 100644 --- a/.editorconfig +++ b/.editorconfig @@ -8,7 +8,7 @@ trim_trailing_whitespace = true indent_size = 4 indent_style = space -[*.{md,yml,yaml,html,css,scss,js,cff}] +[*.{md,yml,yaml,html,css,scss,js}] indent_size = 2 # These files are edited and tested upstream in nf-core/modules diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 99d3b9bf..d71ef79d 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -45,6 +45,6 @@ body: * Nextflow version _(eg. 22.10.1)_ * Hardware _(eg. HPC, Desktop, Cloud)_ * Executor _(eg. slurm, local, awsbatch)_ - * Container engine: _(e.g. Docker, Singularity, Conda, Podman, Shifter or Charliecloud)_ + * Container engine: _(e.g. Docker, Singularity, Conda, Podman, Shifter, Charliecloud, or Apptainer)_ * OS _(eg. CentOS Linux, macOS, Linux Mint)_ * Version of nf-core/chipseq _(eg. 1.1, 1.5, 1.8.2)_ diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 8da27af0..f47ffb89 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -15,7 +15,8 @@ Learn more about contributing: [CONTRIBUTING.md](https://github.com/nf-core/chip - [ ] This comment contains a description of changes (with reason). - [ ] If you've fixed a bug or added code that should be tested, add tests! -- [ ] If you've added a new tool - have you followed the pipeline conventions in the [contribution docs](https://github.com/nf-core/chipseq/tree/master/.github/CONTRIBUTING.md)- [ ] If necessary, also make a PR on the nf-core/chipseq _branch_ on the [nf-core/test-datasets](https://github.com/nf-core/test-datasets) repository. +- [ ] If you've added a new tool - have you followed the pipeline conventions in the [contribution docs](https://github.com/nf-core/chipseq/tree/master/.github/CONTRIBUTING.md) +- [ ] If necessary, also make a PR on the nf-core/chipseq _branch_ on the [nf-core/test-datasets](https://github.com/nf-core/test-datasets) repository. - [ ] Make sure your code lints (`nf-core lint`). - [ ] Ensure the test suite passes (`nextflow run . -profile test,docker --outdir `). - [ ] Usage Documentation in `docs/usage.md` is updated. diff --git a/.github/workflows/awsfulltest.yml b/.github/workflows/awsfulltest.yml index d54a33a5..31ac32b9 100644 --- a/.github/workflows/awsfulltest.yml +++ b/.github/workflows/awsfulltest.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Launch workflow via tower - uses: nf-core/tower-action@v3 + uses: seqeralabs/action-tower-launch@v1 # TODO nf-core: You can customise AWS full pipeline tests as required # Add full size test data (but still relatively small datasets for few samples) # on the `test_full.config` test runs with only one set of parameters diff --git a/.github/workflows/awstest.yml b/.github/workflows/awstest.yml index ecd16998..153490d0 100644 --- a/.github/workflows/awstest.yml +++ b/.github/workflows/awstest.yml @@ -12,7 +12,7 @@ jobs: steps: # Launch workflow using Tower CLI tool action - name: Launch workflow via tower - uses: nf-core/tower-action@v3 + uses: seqeralabs/action-tower-launch@v1 with: workspace_id: ${{ secrets.TOWER_WORKSPACE_ID }} access_token: ${{ secrets.TOWER_ACCESS_TOKEN }} diff --git a/.github/workflows/branch.yml b/.github/workflows/branch.yml index 1e03d409..cc0e5a11 100644 --- a/.github/workflows/branch.yml +++ b/.github/workflows/branch.yml @@ -13,7 +13,7 @@ jobs: - name: Check PRs if: github.repository == 'nf-core/chipseq' run: | - { [[ ${{github.event.pull_request.head.repo.full_name }} == nf-core/chipseq ]] && [[ $GITHUB_HEAD_REF = "dev" ]]; } || [[ $GITHUB_HEAD_REF == "patch" ]] + { [[ ${{github.event.pull_request.head.repo.full_name }} == nf-core/chipseq ]] && [[ $GITHUB_HEAD_REF == "dev" ]]; } || [[ $GITHUB_HEAD_REF == "patch" ]] # If the above check failed, post a comment on the PR explaining the failure # NOTE - this doesn't currently work if the PR is coming from a fork, due to limitations in GitHub actions secrets diff --git a/.github/workflows/clean-up.yml b/.github/workflows/clean-up.yml new file mode 100644 index 00000000..694e90ec --- /dev/null +++ b/.github/workflows/clean-up.yml @@ -0,0 +1,24 @@ +name: "Close user-tagged issues and PRs" +on: + schedule: + - cron: "0 0 * * 0" # Once a week + +jobs: + clean-up: + runs-on: ubuntu-latest + permissions: + issues: write + pull-requests: write + steps: + - uses: actions/stale@v7 + with: + stale-issue-message: "This issue has been tagged as awaiting-changes or awaiting-feedback by an nf-core contributor. Remove stale label or add a comment otherwise this issue will be closed in 20 days." + stale-pr-message: "This PR has been tagged as awaiting-changes or awaiting-feedback by an nf-core contributor. Remove stale label or add a comment if it is still useful." + close-issue-message: "This issue was closed because it has been tagged as awaiting-changes or awaiting-feedback by an nf-core contributor and then staled for 20 days with no activity." + days-before-stale: 30 + days-before-close: 20 + days-before-pr-close: -1 + any-of-labels: "awaiting-changes,awaiting-feedback" + exempt-issue-labels: "WIP" + exempt-pr-labels: "WIP" + repo-token: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 858d622e..888cb4bc 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -78,7 +78,7 @@ jobs: - uses: actions/setup-python@v4 with: - python-version: "3.7" + python-version: "3.8" architecture: "x64" - name: Install dependencies diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 00000000..0c31cdb9 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,5 @@ +repos: + - repo: https://github.com/pre-commit/mirrors-prettier + rev: "v2.7.1" + hooks: + - id: prettier diff --git a/README.md b/README.md index eae41b5f..9a7611f6 100644 --- a/README.md +++ b/README.md @@ -8,57 +8,71 @@ [![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/) [![Launch on Nextflow Tower](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Nextflow%20Tower-%234256e7)](https://tower.nf/launch?pipeline=https://github.com/nf-core/chipseq) -[![Get help on Slack](http://img.shields.io/badge/slack-nf--core%20%23chipseq-4A154B?labelColor=000000&logo=slack)](https://nfcore.slack.com/channels/chipseq)[![Follow on Twitter](http://img.shields.io/badge/twitter-%40nf__core-1DA1F2?labelColor=000000&logo=twitter)](https://twitter.com/nf_core)[![Watch on YouTube](http://img.shields.io/badge/youtube-nf--core-FF0000?labelColor=000000&logo=youtube)](https://www.youtube.com/c/nf-core) +[![Get help on Slack](http://img.shields.io/badge/slack-nf--core%20%23chipseq-4A154B?labelColor=000000&logo=slack)](https://nfcore.slack.com/channels/chipseq)[![Follow on Twitter](http://img.shields.io/badge/twitter-%40nf__core-1DA1F2?labelColor=000000&logo=twitter)](https://twitter.com/nf_core)[![Follow on Mastodon](https://img.shields.io/badge/mastodon-nf__core-6364ff?labelColor=FFFFFF&logo=mastodon)](https://mstdn.science/@nf_core)[![Watch on YouTube](http://img.shields.io/badge/youtube-nf--core-FF0000?labelColor=000000&logo=youtube)](https://www.youtube.com/c/nf-core) ## Introduction - +**nf-core/chipseq** is a bioinformatics pipeline that ... -**nf-core/chipseq** is a bioinformatics best-practice analysis pipeline for ChIP-seq peak-calling and differential analysis pipeline.. - -The pipeline is built using [Nextflow](https://www.nextflow.io), a workflow tool to run tasks across multiple compute infrastructures in a very portable manner. It uses Docker/Singularity containers making installation trivial and results highly reproducible. The [Nextflow DSL2](https://www.nextflow.io/docs/latest/dsl2.html) implementation of this pipeline uses one container per process which makes it much easier to maintain and update software dependencies. Where possible, these processes have been submitted to and installed from [nf-core/modules](https://github.com/nf-core/modules) in order to make them available to all nf-core pipelines, and to everyone within the Nextflow community! - - - -On release, automated continuous integration tests run the pipeline on a full-sized dataset on the AWS cloud infrastructure. This ensures that the pipeline runs on AWS, has sensible resource allocation defaults set to run on real-world datasets, and permits the persistent storage of results to benchmark between pipeline releases and other analysis sources.The results obtained from the full-sized test can be viewed on the [nf-core website](https://nf-co.re/chipseq/results). - -## Pipeline summary + + 1. Read QC ([`FastQC`](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/)) 2. Present QC for raw reads ([`MultiQC`](http://multiqc.info/)) -## Quick Start +## Usage + +> **Note** +> If you are new to Nextflow and nf-core, please refer to [this page](https://nf-co.re/docs/usage/installation) on how +> to set-up Nextflow. Make sure to [test your setup](https://nf-co.re/docs/usage/introduction#how-to-run-a-pipeline) +> with `-profile test` before running the workflow on actual data. + + - Note that some form of configuration will be needed so that Nextflow knows how to fetch the required software. This is usually done in the form of a config profile (`YOURPROFILE` in the example command above). You can chain multiple config profiles in a comma-separated string. +Now, you can run the pipeline using: - > - The pipeline comes with config profiles called `docker`, `singularity`, `podman`, `shifter`, `charliecloud` and `conda` which instruct the pipeline to use the named tool for software management. For example, `-profile test,docker`. - > - Please check [nf-core/configs](https://github.com/nf-core/configs#documentation) to see if a custom config file to run nf-core pipelines already exists for your Institute. If so, you can simply use `-profile ` in your command. This will enable either `docker` or `singularity` and set the appropriate execution settings for your local compute environment. - > - If you are using `singularity`, please use the [`nf-core download`](https://nf-co.re/tools/#downloading-pipelines-for-offline-use) command to download images first, before running the pipeline. Setting the [`NXF_SINGULARITY_CACHEDIR` or `singularity.cacheDir`](https://www.nextflow.io/docs/latest/singularity.html?#singularity-docker-hub) Nextflow options enables you to store and re-use the images from a central location for future pipeline runs. - > - If you are using `conda`, it is highly recommended to use the [`NXF_CONDA_CACHEDIR` or `conda.cacheDir`](https://www.nextflow.io/docs/latest/conda.html) settings to store the environments in a central location for future pipeline runs. + -4. Start running your own analysis! +```bash +nextflow run nf-core/chipseq \ + -profile \ + --input samplesheet.csv \ + --outdir +``` - +> **Warning:** +> Please provide pipeline parameters via the CLI or Nextflow `-params-file` option. Custom config files including those +> provided by the `-c` Nextflow option can be used to provide any configuration _**except for parameters**_; +> see [docs](https://nf-co.re/usage/configuration#custom-configuration-files). - ```bash - nextflow run nf-core/chipseq --input samplesheet.csv --outdir --genome GRCh37 -profile - ``` +For more details, please refer to the [usage documentation](https://nf-co.re/chipseq/usage) and the [parameter documentation](https://nf-co.re/chipseq/parameters). -## Documentation +## Pipeline output -The nf-core/chipseq pipeline comes with documentation about the pipeline [usage](https://nf-co.re/chipseq/usage), [parameters](https://nf-co.re/chipseq/parameters) and [output](https://nf-co.re/chipseq/output). +To see the the results of a test run with a full size dataset refer to the [results](https://nf-co.re/chipseq/results) tab on the nf-core website pipeline page. +For more details about the output files and reports, please refer to the +[output documentation](https://nf-co.re/chipseq/output). ## Credits diff --git a/bin/check_samplesheet.py b/bin/check_samplesheet.py index 11b15572..4a758fe0 100755 --- a/bin/check_samplesheet.py +++ b/bin/check_samplesheet.py @@ -158,9 +158,6 @@ def sniff_format(handle): peek = read_head(handle) handle.seek(0) sniffer = csv.Sniffer() - if not sniffer.has_header(peek): - logger.critical("The given sample sheet does not appear to contain a header.") - sys.exit(1) dialect = sniffer.sniff(peek) return dialect diff --git a/conf/base.config b/conf/base.config index daf12c7c..6ff52bc0 100644 --- a/conf/base.config +++ b/conf/base.config @@ -15,7 +15,7 @@ process { memory = { check_max( 6.GB * task.attempt, 'memory' ) } time = { check_max( 4.h * task.attempt, 'time' ) } - errorStrategy = { task.exitStatus in [143,137,104,134,139] ? 'retry' : 'finish' } + errorStrategy = { task.exitStatus in ((130..145) + 104) ? 'retry' : 'finish' } maxRetries = 1 maxErrors = '-1' diff --git a/conf/igenomes.config b/conf/igenomes.config index 7a1b3ac6..3f114377 100644 --- a/conf/igenomes.config +++ b/conf/igenomes.config @@ -36,6 +36,14 @@ params { macs_gsize = "2.7e9" blacklist = "${projectDir}/assets/blacklists/hg38-blacklist.bed" } + 'CHM13' { + fasta = "${params.igenomes_base}/Homo_sapiens/UCSC/CHM13/Sequence/WholeGenomeFasta/genome.fa" + bwa = "${params.igenomes_base}/Homo_sapiens/UCSC/CHM13/Sequence/BWAIndex/" + bwamem2 = "${params.igenomes_base}/Homo_sapiens/UCSC/CHM13/Sequence/BWAmem2Index/" + gtf = "${params.igenomes_base}/Homo_sapiens/NCBI/CHM13/Annotation/Genes/genes.gtf" + gff = "ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/009/914/755/GCF_009914755.1_T2T-CHM13v2.0/GCF_009914755.1_T2T-CHM13v2.0_genomic.gff.gz" + mito_name = "chrM" + } 'GRCm38' { fasta = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Sequence/WholeGenomeFasta/genome.fa" bwa = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Sequence/BWAIndex/version0.6.0/" diff --git a/conf/test_full.config b/conf/test_full.config index 5c3bc080..1505bc42 100644 --- a/conf/test_full.config +++ b/conf/test_full.config @@ -10,6 +10,8 @@ ---------------------------------------------------------------------------------------- */ +cleanup = true + params { config_profile_name = 'Full test profile' config_profile_description = 'Full test dataset to check pipeline function' diff --git a/docs/usage.md b/docs/usage.md index 6ed6fb45..9f415ef9 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -71,6 +71,29 @@ work # Directory containing the nextflow working files # Other nextflow hidden files, eg. history of pipeline runs and old logs. ``` +If you wish to repeatedly use the same parameters for multiple runs, rather than specifying each flag in the command, you can specify these in a params file. + +Pipeline settings can be provided in a `yaml` or `json` file via `-params-file `. + +> ⚠️ Do not use `-c ` to specify parameters as this will result in errors. Custom config files specified with `-c` must only be used for [tuning process resource specifications](https://nf-co.re/docs/usage/configuration#tuning-workflow-resources), other infrastructural tweaks (such as output directories), or module arguments (args). +> The above pipeline run specified with a params file in yaml format: + +```bash +nextflow run nf-core/chipseq -profile docker -params-file params.yaml +``` + +with `params.yaml` containing: + +```yaml +input: './samplesheet.csv' +outdir: './results/' +genome: 'GRCh37' +input: 'data' +<...> +``` + +You can also generate such `YAML`/`JSON` files via [nf-core/launch](https://nf-co.re/launch). + ### Updating the pipeline When you run the above command, Nextflow automatically pulls the pipeline code from GitHub and stores it as a cached version. When running the pipeline after this, it will always use the cached version if available - even if the pipeline has been updated since. To make sure that you're running the latest version of the pipeline, make sure that you regularly update the cached version of the pipeline: @@ -87,6 +110,10 @@ First, go to the [nf-core/chipseq releases page](https://github.com/nf-core/chip This version number will be logged in reports when you run the pipeline, so that you'll know what you used when you look back in the future. For example, at the bottom of the MultiQC reports. +To further assist in reproducbility, you can use share and re-use [parameter files](#running-the-pipeline) to repeat pipeline runs with the same settings without having to write out a command with every single parameter. + +> 💡 If you wish to share such profile (such as upload as supplementary material for academic publications), make sure to NOT include cluster specific paths to files, nor institutional specific profiles. + ## Core Nextflow arguments > **NB:** These options are part of Nextflow and use a _single_ hyphen (pipeline parameters use a double-hyphen). @@ -95,7 +122,7 @@ This version number will be logged in reports when you run the pipeline, so that Use this parameter to choose a configuration profile. Profiles can give configuration presets for different compute environments. -Several generic profiles are bundled with the pipeline which instruct the pipeline to use software packaged using different methods (Docker, Singularity, Podman, Shifter, Charliecloud, Conda) - see below. +Several generic profiles are bundled with the pipeline which instruct the pipeline to use software packaged using different methods (Docker, Singularity, Podman, Shifter, Charliecloud, Apptainer, Conda) - see below. > We highly recommend the use of Docker or Singularity containers for full pipeline reproducibility, however when this is not possible, Conda is also supported. @@ -119,8 +146,10 @@ If `-profile` is not specified, the pipeline will run locally and expect all sof - A generic configuration profile to be used with [Shifter](https://nersc.gitlab.io/development/shifter/how-to-use/) - `charliecloud` - A generic configuration profile to be used with [Charliecloud](https://hpc.github.io/charliecloud/) +- `apptainer` + - A generic configuration profile to be used with [Apptainer](https://apptainer.org/) - `conda` - - A generic configuration profile to be used with [Conda](https://conda.io/docs/). Please only use Conda as a last resort i.e. when it's not possible to run the pipeline with Docker, Singularity, Podman, Shifter or Charliecloud. + - A generic configuration profile to be used with [Conda](https://conda.io/docs/). Please only use Conda as a last resort i.e. when it's not possible to run the pipeline with Docker, Singularity, Podman, Shifter, Charliecloud, or Apptainer. ### `-resume` @@ -138,102 +167,19 @@ Specify the path to a specific config file (this is a core Nextflow command). Se Whilst the default requirements set within the pipeline will hopefully work for most people and with most input data, you may find that you want to customise the compute resources that the pipeline requests. Each step in the pipeline has a default set of requirements for number of CPUs, memory and time. For most of the steps in the pipeline, if the job exits with any of the error codes specified [here](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/conf/base.config#L18) it will automatically be resubmitted with higher requests (2 x original, then 3 x original). If it still fails after the third attempt then the pipeline execution is stopped. -For example, if the nf-core/rnaseq pipeline is failing after multiple re-submissions of the `STAR_ALIGN` process due to an exit code of `137` this would indicate that there is an out of memory issue: - -```console -[62/149eb0] NOTE: Process `NFCORE_RNASEQ:RNASEQ:ALIGN_STAR:STAR_ALIGN (WT_REP1)` terminated with an error exit status (137) -- Execution is retried (1) -Error executing process > 'NFCORE_RNASEQ:RNASEQ:ALIGN_STAR:STAR_ALIGN (WT_REP1)' - -Caused by: - Process `NFCORE_RNASEQ:RNASEQ:ALIGN_STAR:STAR_ALIGN (WT_REP1)` terminated with an error exit status (137) - -Command executed: - STAR \ - --genomeDir star \ - --readFilesIn WT_REP1_trimmed.fq.gz \ - --runThreadN 2 \ - --outFileNamePrefix WT_REP1. \ - - -Command exit status: - 137 - -Command output: - (empty) - -Command error: - .command.sh: line 9: 30 Killed STAR --genomeDir star --readFilesIn WT_REP1_trimmed.fq.gz --runThreadN 2 --outFileNamePrefix WT_REP1. -Work dir: - /home/pipelinetest/work/9d/172ca5881234073e8d76f2a19c88fb - -Tip: you can replicate the issue by changing to the process work dir and entering the command `bash .command.run` -``` - -#### For beginners - -A first step to bypass this error, you could try to increase the amount of CPUs, memory, and time for the whole pipeline. Therefor you can try to increase the resource for the parameters `--max_cpus`, `--max_memory`, and `--max_time`. Based on the error above, you have to increase the amount of memory. Therefore you can go to the [parameter documentation of rnaseq](https://nf-co.re/rnaseq/3.9/parameters) and scroll down to the `show hidden parameter` button to get the default value for `--max_memory`. In this case 128GB, you than can try to run your pipeline again with `--max_memory 200GB -resume` to skip all process, that were already calculated. If you can not increase the resource of the complete pipeline, you can try to adapt the resource for a single process as mentioned below. - -#### Advanced option on process level - -To bypass this error you would need to find exactly which resources are set by the `STAR_ALIGN` process. The quickest way is to search for `process STAR_ALIGN` in the [nf-core/rnaseq Github repo](https://github.com/nf-core/rnaseq/search?q=process+STAR_ALIGN). -We have standardised the structure of Nextflow DSL2 pipelines such that all module files will be present in the `modules/` directory and so, based on the search results, the file we want is `modules/nf-core/star/align/main.nf`. -If you click on the link to that file you will notice that there is a `label` directive at the top of the module that is set to [`label process_high`](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/modules/nf-core/software/star/align/main.nf#L9). -The [Nextflow `label`](https://www.nextflow.io/docs/latest/process.html#label) directive allows us to organise workflow processes in separate groups which can be referenced in a configuration file to select and configure subset of processes having similar computing requirements. -The default values for the `process_high` label are set in the pipeline's [`base.config`](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/conf/base.config#L33-L37) which in this case is defined as 72GB. -Providing you haven't set any other standard nf-core parameters to **cap** the [maximum resources](https://nf-co.re/usage/configuration#max-resources) used by the pipeline then we can try and bypass the `STAR_ALIGN` process failure by creating a custom config file that sets at least 72GB of memory, in this case increased to 100GB. -The custom config below can then be provided to the pipeline via the [`-c`](#-c) parameter as highlighted in previous sections. - -```nextflow -process { - withName: 'NFCORE_RNASEQ:RNASEQ:ALIGN_STAR:STAR_ALIGN' { - memory = 100.GB - } -} -``` - -> **NB:** We specify the full process name i.e. `NFCORE_RNASEQ:RNASEQ:ALIGN_STAR:STAR_ALIGN` in the config file because this takes priority over the short name (`STAR_ALIGN`) and allows existing configuration using the full process name to be correctly overridden. -> -> If you get a warning suggesting that the process selector isn't recognised check that the process name has been specified correctly. - -### Updating containers (advanced users) - -The [Nextflow DSL2](https://www.nextflow.io/docs/latest/dsl2.html) implementation of this pipeline uses one container per process which makes it much easier to maintain and update software dependencies. If for some reason you need to use a different version of a particular tool with the pipeline then you just need to identify the `process` name and override the Nextflow `container` definition for that process using the `withName` declaration. For example, in the [nf-core/viralrecon](https://nf-co.re/viralrecon) pipeline a tool called [Pangolin](https://github.com/cov-lineages/pangolin) has been used during the COVID-19 pandemic to assign lineages to SARS-CoV-2 genome sequenced samples. Given that the lineage assignments change quite frequently it doesn't make sense to re-release the nf-core/viralrecon everytime a new version of Pangolin has been released. However, you can override the default container used by the pipeline by creating a custom config file and passing it as a command-line argument via `-c custom.config`. - -1. Check the default version used by the pipeline in the module file for [Pangolin](https://github.com/nf-core/viralrecon/blob/a85d5969f9025409e3618d6c280ef15ce417df65/modules/nf-core/software/pangolin/main.nf#L14-L19) -2. Find the latest version of the Biocontainer available on [Quay.io](https://quay.io/repository/biocontainers/pangolin?tag=latest&tab=tags) -3. Create the custom config accordingly: - - - For Docker: +To change the resource requests, please see the [max resources](https://nf-co.re/docs/usage/configuration#max-resources) and [tuning workflow resources](https://nf-co.re/docs/usage/configuration#tuning-workflow-resources) section of the nf-core website. - ```nextflow - process { - withName: PANGOLIN { - container = 'quay.io/biocontainers/pangolin:3.0.5--pyhdfd78af_0' - } - } - ``` +### Custom Containers - - For Singularity: +In some cases you may wish to change which container or conda environment a step of the pipeline uses for a particular tool. By default nf-core pipelines use containers and software from the [biocontainers](https://biocontainers.pro/) or [bioconda](https://bioconda.github.io/) projects. However in some cases the pipeline specified version maybe out of date. - ```nextflow - process { - withName: PANGOLIN { - container = 'https://depot.galaxyproject.org/singularity/pangolin:3.0.5--pyhdfd78af_0' - } - } - ``` +To use a different container from the default container or conda environment specified in a pipeline, please see the [updating tool versions](https://nf-co.re/docs/usage/configuration#updating-tool-versions) section of the nf-core website. - - For Conda: +### Custom Tool Arguments - ```nextflow - process { - withName: PANGOLIN { - conda = 'bioconda::pangolin=3.0.5' - } - } - ``` +A pipeline might not always support every possible argument or option of a particular tool used in pipeline. Fortunately, nf-core pipelines provide some freedom to users to insert additional parameters that the pipeline does not include by default. -> **NB:** If you wish to periodically update individual tool-specific results (e.g. Pangolin) generated by the pipeline then you must ensure to keep the `work/` directory otherwise the `-resume` ability of the pipeline will be compromised and it will restart from scratch. +To learn how to provide additional arguments to a particular tool of the pipeline, please see the [customising tool arguments](https://nf-co.re/docs/usage/configuration#customising-tool-arguments) section of the nf-core website. ### nf-core/configs diff --git a/lib/NfcoreSchema.groovy b/lib/NfcoreSchema.groovy index 33cd4f6e..9b34804d 100755 --- a/lib/NfcoreSchema.groovy +++ b/lib/NfcoreSchema.groovy @@ -2,6 +2,7 @@ // This file holds several functions used to perform JSON parameter validation, help and summary rendering for the nf-core pipeline template. // +import nextflow.Nextflow import org.everit.json.schema.Schema import org.everit.json.schema.loader.SchemaLoader import org.everit.json.schema.ValidationException @@ -83,6 +84,7 @@ class NfcoreSchema { 'stub-run', 'test', 'w', + 'with-apptainer', 'with-charliecloud', 'with-conda', 'with-dag', @@ -177,7 +179,7 @@ class NfcoreSchema { } if (has_error) { - System.exit(1) + Nextflow.error('Exiting!') } } diff --git a/lib/WorkflowChipseq.groovy b/lib/WorkflowChipseq.groovy index b85fcd58..25175f72 100755 --- a/lib/WorkflowChipseq.groovy +++ b/lib/WorkflowChipseq.groovy @@ -2,6 +2,7 @@ // This file holds several functions specific to the workflow/chipseq.nf in the nf-core/chipseq pipeline // +import nextflow.Nextflow import groovy.text.SimpleTemplateEngine class WorkflowChipseq { @@ -14,8 +15,7 @@ class WorkflowChipseq { if (!params.fasta) { - log.error "Genome fasta file not specified with e.g. '--fasta genome.fa' or via a detectable config file." - System.exit(1) + Nextflow.error "Genome fasta file not specified with e.g. '--fasta genome.fa' or via a detectable config file." } } @@ -61,17 +61,19 @@ class WorkflowChipseq { def description_html = engine.createTemplate(methods_text).make(meta) return description_html - }// + } + + // // Exit pipeline if incorrect --genome key provided // private static void genomeExistsError(params, log) { if (params.genomes && params.genome && !params.genomes.containsKey(params.genome)) { - log.error "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + + def error_string = "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + " Genome '${params.genome}' not found in any config files provided to the pipeline.\n" + " Currently, the available genome keys are:\n" + " ${params.genomes.keySet().join(", ")}\n" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" - System.exit(1) + Nextflow.error(error_string) } } } diff --git a/lib/WorkflowMain.groovy b/lib/WorkflowMain.groovy index bfe9c5ea..6e8af09f 100755 --- a/lib/WorkflowMain.groovy +++ b/lib/WorkflowMain.groovy @@ -2,6 +2,8 @@ // This file holds several functions specific to the main.nf workflow in the nf-core/chipseq pipeline // +import nextflow.Nextflow + class WorkflowMain { // @@ -21,7 +23,7 @@ class WorkflowMain { // // Generate help string // - public static String help(workflow, params, log) { + public static String help(workflow, params) { def command = "nextflow run ${workflow.manifest.name} --input samplesheet.csv --genome GRCh37 -profile docker" def help_string = '' help_string += NfcoreTemplate.logo(workflow, params.monochrome_logs) @@ -34,7 +36,7 @@ class WorkflowMain { // // Generate parameter summary log string // - public static String paramsSummaryLog(workflow, params, log) { + public static String paramsSummaryLog(workflow, params) { def summary_log = '' summary_log += NfcoreTemplate.logo(workflow, params.monochrome_logs) summary_log += NfcoreSchema.paramsSummaryLog(workflow, params) @@ -49,7 +51,7 @@ class WorkflowMain { public static void initialise(workflow, params, log) { // Print help to screen if required if (params.help) { - log.info help(workflow, params, log) + log.info help(workflow, params) System.exit(0) } @@ -61,7 +63,7 @@ class WorkflowMain { } // Print parameter summary log to screen - log.info paramsSummaryLog(workflow, params, log) + log.info paramsSummaryLog(workflow, params) // Validate workflow parameters via the JSON schema if (params.validate_params) { @@ -81,8 +83,7 @@ class WorkflowMain { // Check input has been provided if (!params.input) { - log.error "Please provide an input samplesheet to the pipeline e.g. '--input samplesheet.csv'" - System.exit(1) + Nextflow.error("Please provide an input samplesheet to the pipeline e.g. '--input samplesheet.csv'") } } // diff --git a/main.nf b/main.nf index 06d6e411..cf50b118 100644 --- a/main.nf +++ b/main.nf @@ -4,7 +4,6 @@ nf-core/chipseq ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Github : https://github.com/nf-core/chipseq - Website: https://nf-co.re/chipseq Slack : https://nfcore.slack.com/channels/chipseq ---------------------------------------------------------------------------------------- diff --git a/modules.json b/modules.json index 6e4968b6..db078d7b 100644 --- a/modules.json +++ b/modules.json @@ -7,7 +7,7 @@ "nf-core": { "custom/dumpsoftwareversions": { "branch": "master", - "git_sha": "c8e35eb2055c099720a75538d1b8adb3fb5a464c", + "git_sha": "76cc4938c1f6ea5c7d83fed1eeffc146787f9543", "installed_by": ["modules"] }, "fastqc": { @@ -17,7 +17,7 @@ }, "multiqc": { "branch": "master", - "git_sha": "c8e35eb2055c099720a75538d1b8adb3fb5a464c", + "git_sha": "f2d63bd5b68925f98f572eed70993d205cc694b7", "installed_by": ["modules"] } } diff --git a/modules/local/samplesheet_check.nf b/modules/local/samplesheet_check.nf index 5d5d6afb..c28658f5 100644 --- a/modules/local/samplesheet_check.nf +++ b/modules/local/samplesheet_check.nf @@ -5,7 +5,7 @@ process SAMPLESHEET_CHECK { conda "conda-forge::python=3.8.3" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/python:3.8.3' : - 'quay.io/biocontainers/python:3.8.3' }" + 'biocontainers/python:3.8.3' }" input: path samplesheet diff --git a/modules/nf-core/custom/dumpsoftwareversions/main.nf b/modules/nf-core/custom/dumpsoftwareversions/main.nf index 3df21765..800a6099 100644 --- a/modules/nf-core/custom/dumpsoftwareversions/main.nf +++ b/modules/nf-core/custom/dumpsoftwareversions/main.nf @@ -2,10 +2,10 @@ process CUSTOM_DUMPSOFTWAREVERSIONS { label 'process_single' // Requires `pyyaml` which does not have a dedicated container but is in the MultiQC container - conda "bioconda::multiqc=1.13" + conda "bioconda::multiqc=1.14" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/multiqc:1.13--pyhdfd78af_0' : - 'quay.io/biocontainers/multiqc:1.13--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/multiqc:1.14--pyhdfd78af_0' : + 'quay.io/biocontainers/multiqc:1.14--pyhdfd78af_0' }" input: path versions diff --git a/modules/nf-core/custom/dumpsoftwareversions/meta.yml b/modules/nf-core/custom/dumpsoftwareversions/meta.yml index 60b546a0..c32657de 100644 --- a/modules/nf-core/custom/dumpsoftwareversions/meta.yml +++ b/modules/nf-core/custom/dumpsoftwareversions/meta.yml @@ -1,7 +1,9 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/yaml-schema.json name: custom_dumpsoftwareversions description: Custom module used to dump software versions within the nf-core pipeline template keywords: - custom + - dump - version tools: - custom: diff --git a/modules/nf-core/multiqc/main.nf b/modules/nf-core/multiqc/main.nf index 68f66bea..4b604749 100644 --- a/modules/nf-core/multiqc/main.nf +++ b/modules/nf-core/multiqc/main.nf @@ -1,10 +1,10 @@ process MULTIQC { label 'process_single' - conda "bioconda::multiqc=1.13" + conda "bioconda::multiqc=1.14" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/multiqc:1.13--pyhdfd78af_0' : - 'quay.io/biocontainers/multiqc:1.13--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/multiqc:1.14--pyhdfd78af_0' : + 'quay.io/biocontainers/multiqc:1.14--pyhdfd78af_0' }" input: path multiqc_files, stageAs: "?/*" diff --git a/modules/nf-core/multiqc/meta.yml b/modules/nf-core/multiqc/meta.yml index ebc29b27..f93b5ee5 100644 --- a/modules/nf-core/multiqc/meta.yml +++ b/modules/nf-core/multiqc/meta.yml @@ -1,3 +1,4 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/yaml-schema.json name: MultiQC description: Aggregate results from bioinformatics analyses across many samples into a single report keywords: @@ -37,7 +38,7 @@ output: description: MultiQC report file pattern: "multiqc_report.html" - data: - type: dir + type: directory description: MultiQC data dir pattern: "multiqc_data" - plots: diff --git a/nextflow.config b/nextflow.config index 8f2539d1..700f3a20 100644 --- a/nextflow.config +++ b/nextflow.config @@ -78,7 +78,11 @@ try { profiles { - debug { process.beforeScript = 'echo $HOSTNAME' } + debug { + dumpHashes = true + process.beforeScript = 'echo $HOSTNAME' + cleanup = false + } conda { conda.enabled = true docker.enabled = false @@ -86,6 +90,7 @@ profiles { podman.enabled = false shifter.enabled = false charliecloud.enabled = false + apptainer.enabled = false } mamba { conda.enabled = true @@ -95,14 +100,18 @@ profiles { podman.enabled = false shifter.enabled = false charliecloud.enabled = false + apptainer.enabled = false } docker { docker.enabled = true + docker.registry = 'quay.io' docker.userEmulation = true + conda.enabled = false singularity.enabled = false podman.enabled = false shifter.enabled = false charliecloud.enabled = false + apptainer.enabled = false } arm { docker.runOptions = '-u $(id -u):$(id -g) --platform=linux/amd64' @@ -110,31 +119,49 @@ profiles { singularity { singularity.enabled = true singularity.autoMounts = true + conda.enabled = false docker.enabled = false podman.enabled = false shifter.enabled = false charliecloud.enabled = false + apptainer.enabled = false } podman { podman.enabled = true + podman.registry = 'quay.io' + conda.enabled = false docker.enabled = false singularity.enabled = false shifter.enabled = false charliecloud.enabled = false + apptainer.enabled = false } shifter { shifter.enabled = true + conda.enabled = false docker.enabled = false singularity.enabled = false podman.enabled = false charliecloud.enabled = false + apptainer.enabled = false } charliecloud { charliecloud.enabled = true + conda.enabled = false docker.enabled = false singularity.enabled = false podman.enabled = false shifter.enabled = false + apptainer.enabled = false + } + apptainer { + apptainer.enabled = true + conda.enabled = false + docker.enabled = false + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false } gitpod { executor.name = 'local' diff --git a/tower.yml b/tower.yml new file mode 100644 index 00000000..787aedfe --- /dev/null +++ b/tower.yml @@ -0,0 +1,5 @@ +reports: + multiqc_report.html: + display: "MultiQC HTML report" + samplesheet.csv: + display: "Auto-created samplesheet with collated metadata and FASTQ paths" From 4f271e1a6b6ed910451d8017c61fd9440617b41a Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Thu, 4 May 2023 11:35:39 +0200 Subject: [PATCH 069/201] Fix unmerged change --- bin/check_samplesheet.py | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/bin/check_samplesheet.py b/bin/check_samplesheet.py index 4aee34d3..3fd6ff8a 100755 --- a/bin/check_samplesheet.py +++ b/bin/check_samplesheet.py @@ -25,7 +25,6 @@ def make_dir(path): raise exception -<<<<<<< HEAD def print_error(error, context="Line", context_str=""): error_str = "ERROR: Please check samplesheet -> {}".format(error) if context != "" and context_str != "": @@ -34,17 +33,6 @@ def print_error(error, context="Line", context_str=""): ) print(error_str) sys.exit(1) -======= - .. _text file: - https://docs.python.org/3/glossary.html#term-text-file - - """ - peek = read_head(handle) - handle.seek(0) - sniffer = csv.Sniffer() - dialect = sniffer.sniff(peek) - return dialect ->>>>>>> 9b4a92a885010e56778a1b52eaf2e4fbc69cc53f def check_samplesheet(file_in, file_out): From da50a0c043c4ca17891c4ea62eb09b8ed17f73c8 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Thu, 4 May 2023 11:38:18 +0200 Subject: [PATCH 070/201] Make prettier happy --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 858bf926..6b82aad6 100644 --- a/README.md +++ b/README.md @@ -86,9 +86,9 @@ WT_INPUT_REP3,BLA203A31_S21_L003_R1_001.fastq.gz,,, Now, you can run the pipeline using: - ```bash - nextflow run nf-core/chipseq --input samplesheet.csv --outdir --genome GRCh37 -profile - ``` +```bash +nextflow run nf-core/chipseq --input samplesheet.csv --outdir --genome GRCh37 -profile +``` See [usage docs](https://nf-co.re/chipseq/usage) for all of the available options when running the pipeline. From c21ba1d0b5e8a52b6ce5217bc8fe0b3e18cfa8fc Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Thu, 4 May 2023 11:47:07 +0200 Subject: [PATCH 071/201] Fix local merge changes deleted by mistake --- tower.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/tower.yml b/tower.yml index 787aedfe..096be2bb 100644 --- a/tower.yml +++ b/tower.yml @@ -1,5 +1,21 @@ reports: multiqc_report.html: display: "MultiQC HTML report" + macs2_peak.plots.pdf: + display: "All samples MACS2 peak QC PDF plots" + macs2_annotatePeaks.plots.pdf: + display: "All samples HOMER annotatePeaks.pl QC PDF plots" + "*.consensus_peaks.plots.pdf": + display: "Consensus peaks DESeq2 QC PDF plots" + "*.consensus_peaks.boolean.intersect.plot.pdf": + display: "Consensus peaks UpSetR intersection PDF plots" + "*.consensus_peaks.boolean.annotatePeaks.txt": + display: "Consensus peaks annotated by HOMER" + "*.plotHeatmap.pdf": + display: "Per-sample deepTools plotHeatmap PDF plots" + "*_peaks.broadPeak": + display: "Per-sample MACS2 broadPeak file" + "*_peaks.narrowPeak": + display: "Per-sample MACS2 narrowPeak file" samplesheet.csv: display: "Auto-created samplesheet with collated metadata and FASTQ paths" From eaee70bfc42e39134b437d8ba2d196a83e727b04 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Thu, 4 May 2023 12:05:22 +0200 Subject: [PATCH 072/201] reorder tower.yml --- tower.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/tower.yml b/tower.yml index 096be2bb..5b1f5f90 100644 --- a/tower.yml +++ b/tower.yml @@ -17,5 +17,3 @@ reports: display: "Per-sample MACS2 broadPeak file" "*_peaks.narrowPeak": display: "Per-sample MACS2 narrowPeak file" - samplesheet.csv: - display: "Auto-created samplesheet with collated metadata and FASTQ paths" From e4588b4b7abcbef72e4f02afc917c48bdde12146 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Fri, 5 May 2023 10:56:47 +0200 Subject: [PATCH 073/201] Apply review suggestions --- modules/local/annotate_boolean_peaks.nf | 2 +- modules/local/multiqc_custom_peaks.nf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/local/annotate_boolean_peaks.nf b/modules/local/annotate_boolean_peaks.nf index e7399f32..77baf5c4 100644 --- a/modules/local/annotate_boolean_peaks.nf +++ b/modules/local/annotate_boolean_peaks.nf @@ -5,7 +5,7 @@ process ANNOTATE_BOOLEAN_PEAKS { conda "conda-forge::sed=4.7" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/ubuntu:20.04' : - 'docker.io/ubuntu:20.04' }" + 'docker.io/library/ubuntu:20.04' }" input: tuple val(meta), path(boolean_txt), path(homer_peaks) diff --git a/modules/local/multiqc_custom_peaks.nf b/modules/local/multiqc_custom_peaks.nf index 53f765c5..8fabe949 100644 --- a/modules/local/multiqc_custom_peaks.nf +++ b/modules/local/multiqc_custom_peaks.nf @@ -3,7 +3,7 @@ process MULTIQC_CUSTOM_PEAKS { conda "conda-forge::sed=4.7" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/ubuntu:20.04' : - 'docker.io/ubuntu:20.04' }" + 'docker.io/library/ubuntu:20.04' }" input: tuple val(meta), path(peak), path(frip) From 133ff475d0ac51fc3fde9e371d661d17c426d142 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Fri, 12 May 2023 10:26:17 +0200 Subject: [PATCH 074/201] Set a default registry outside of profile scope --- nextflow.config | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/nextflow.config b/nextflow.config index 6a8e9edd..330eb353 100644 --- a/nextflow.config +++ b/nextflow.config @@ -151,7 +151,6 @@ profiles { } docker { docker.enabled = true - docker.registry = 'quay.io' docker.userEmulation = true conda.enabled = false singularity.enabled = false @@ -175,7 +174,6 @@ profiles { } podman { podman.enabled = true - podman.registry = 'quay.io' conda.enabled = false docker.enabled = false singularity.enabled = false @@ -240,6 +238,12 @@ env { // Capture exit codes from upstream processes when piping process.shell = ['/bin/bash', '-euo', 'pipefail'] +// Set default registry for Docker and Podman independent of -profile +// Will not be used unless Docker / Podman are enabled +// Set to your registry if you have a mirror of containers +docker.registry = 'quay.io' +podman.registry = 'quay.io' + def trace_timestamp = new java.util.Date().format( 'yyyy-MM-dd_HH-mm-ss') timeline { enabled = true From 647a3e3c07c0e8cbe75b85ba3761ba92bf435f59 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Fri, 12 May 2023 10:33:48 +0200 Subject: [PATCH 075/201] Update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9c19fed9..ec2d167b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Remove `enable_conda` param from local modules. - Fix the path where `chromap` index is stored when `--save_reference` is set. - Fix untar of `chromap` index when using `--chromap_index` param. +- [nf-core/tools#2286](https://github.com/nf-core/tools/issues/2286) Set default container registry outside profile scope. ### Software dependencies From 667b17f43d5cad15fccafff86cdb549b54a89832 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 20 Jun 2023 23:22:36 +0200 Subject: [PATCH 076/201] Add explicit replicates and control_replicate column --- bin/check_samplesheet.py | 104 +++++++++++++++++++++++++++++---------- 1 file changed, 78 insertions(+), 26 deletions(-) diff --git a/bin/check_samplesheet.py b/bin/check_samplesheet.py index 3fd6ff8a..f61cc626 100755 --- a/bin/check_samplesheet.py +++ b/bin/check_samplesheet.py @@ -38,20 +38,20 @@ def print_error(error, context="Line", context_str=""): def check_samplesheet(file_in, file_out): """ This function checks that the samplesheet follows the following structure: - sample,fastq_1,fastq_2,antibody,control - SPT5_T0_REP1,SRR1822153_1.fastq.gz,SRR1822153_2.fastq.gz,SPT5,SPT5_INPUT_REP1 - SPT5_T0_REP2,SRR1822154_1.fastq.gz,SRR1822154_2.fastq.gz,SPT5,SPT5_INPUT_REP2 - SPT5_INPUT_REP1,SRR5204809_Spt5-ChIP_Input1_SacCer_ChIP-Seq_ss100k_R1.fastq.gz,SRR5204809_Spt5-ChIP_Input1_SacCer_ChIP-Seq_ss100k_R2.fastq.gz,, - SPT5_INPUT_REP2,SRR5204810_Spt5-ChIP_Input2_SacCer_ChIP-Seq_ss100k_R1.fastq.gz,SRR5204810_Spt5-ChIP_Input2_SacCer_ChIP-Seq_ss100k_R2.fastq.gz,, + sample,fastq_1,fastq_2,replicate,antibody,control,control_replicate + SPT5_T0,SRR1822153_1.fastq.gz,SRR1822153_2.fastq.gz,SPT5,1,SPT5_INPUT,1 + SPT5_T0,SRR1822154_1.fastq.gz,SRR1822154_2.fastq.gz,SPT5,2,SPT5_INPUT,2 + SPT5_INPUT,SRR5204809_Spt5-ChIP_Input1_SacCer_ChIP-Seq_ss100k_R1.fastq.gz,SRR5204809_Spt5-ChIP_Input1_SacCer_ChIP-Seq_ss100k_R2.fastq.gz,1,,, + SPT5_INPUT,SRR5204810_Spt5-ChIP_Input2_SacCer_ChIP-Seq_ss100k_R1.fastq.gz,SRR5204810_Spt5-ChIP_Input2_SacCer_ChIP-Seq_ss100k_R2.fastq.gz,2,,, For an example see: - https://raw.githubusercontent.com/nf-core/test-datasets/chipseq/samplesheet/v2.0/samplesheet_test.csv + https://raw.githubusercontent.com/nf-core/test-datasets/chipseq/samplesheet/v2.1/samplesheet_test.csv """ sample_mapping_dict = {} with open(file_in, "r", encoding="utf-8-sig") as fin: ## Check header - MIN_COLS = 2 - HEADER = ["sample", "fastq_1", "fastq_2", "antibody", "control"] + MIN_COLS = 3 + HEADER = ["sample", "fastq_1", "fastq_2", "replicate", "antibody", "control","control_replicate"] header = [x.strip('"') for x in fin.readline().strip().split(",")] if header[: len(HEADER)] != HEADER: print(f"ERROR: Please check samplesheet header -> {','.join(header)} != {','.join(HEADER)}") @@ -77,7 +77,7 @@ def check_samplesheet(file_in, file_out): ) ## Check sample name entries - sample, fastq_1, fastq_2, antibody, control = lspl[: len(HEADER)] + sample, fastq_1, fastq_2, replicate, antibody, control, control_replicate = lspl[: len(HEADER)] if sample.find(" ") != -1: print(f"WARNING: Spaces have been replaced by underscores for sample: {sample}") sample = sample.replace(" ", "_") @@ -96,6 +96,11 @@ def check_samplesheet(file_in, file_out): line, ) + ## Check replicate column is integer + if not replicate.isdecimal(): + print_error("Replicate id not an integer!", "Line", line) + sys.exit(1) + ## Check antibody and control columns have valid values if antibody: if antibody.find(" ") != -1: @@ -107,10 +112,15 @@ def check_samplesheet(file_in, file_out): "Line", line, ) + if control: if control.find(" ") != -1: print(f"WARNING: Spaces have been replaced by underscores for control: {control}") control = control.replace(" ", "_") + if not control_replicate.isdecimal(): + print_error("Control replicate id not an integer!", "Line", line) + sys.exit(1) + control = "{}_REP{}".format(control, control_replicate) if not antibody: print_error( "Both antibody and control columns must be specified!", @@ -119,22 +129,27 @@ def check_samplesheet(file_in, file_out): ) ## Auto-detect paired-end/single-end - sample_info = [] ## [single_end, fastq_1, fastq_2, antibody, control] + sample_info = [] ## [single_end, fastq_1, fastq_2, replicate, antibody, control] if sample and fastq_1 and fastq_2: ## Paired-end short reads - sample_info = ["0", fastq_1, fastq_2, antibody, control] + sample_info = ["0", fastq_1, fastq_2, replicate, antibody,control] elif sample and fastq_1 and not fastq_2: ## Single-end short reads - sample_info = ["1", fastq_1, fastq_2, antibody, control] + sample_info = ["1", fastq_1, fastq_2, replicate, antibody, control] else: print_error("Invalid combination of columns provided!", "Line", line) - ## Create sample mapping dictionary = {sample: [[ single_end, fastq_1, fastq_2, antibody, control ]]} + ## Create sample mapping dictionary = {sample: [[ single_end, fastq_1, fastq_2, replicate, antibody, control ]]} + replicate = int(replicate) + sample_info = sample_info + lspl[len(HEADER) :] if sample not in sample_mapping_dict: - sample_mapping_dict[sample] = [sample_info] + sample_mapping_dict[sample] = {} + if replicate not in sample_mapping_dict[sample]: + sample_mapping_dict[sample][replicate] = [sample_info] else: - if sample_info in sample_mapping_dict[sample]: + if sample_info in sample_mapping_dict[sample][replicate]: print_error("Samplesheet contains duplicate rows!", "Line", line) else: - sample_mapping_dict[sample].append(sample_info) + sample_mapping_dict[sample][replicate].append(sample_info) + ## Write validated samplesheet with appropriate columns if len(sample_mapping_dict) > 0: @@ -148,6 +163,7 @@ def check_samplesheet(file_in, file_out): "single_end", "fastq_1", "fastq_2", + "replicate", "antibody", "control", ] @@ -155,24 +171,60 @@ def check_samplesheet(file_in, file_out): + "\n" ) for sample in sorted(sample_mapping_dict.keys()): - ## Check that multiple runs of the same sample are of the same datatype i.e. single-end / paired-end - if not all(x[0] == sample_mapping_dict[sample][0][0] for x in sample_mapping_dict[sample]): + ## Check that replicate ids are in format 1.. + uniq_rep_ids = sorted(list(set(sample_mapping_dict[sample].keys()))) + if len(uniq_rep_ids) != max(uniq_rep_ids) or 1 != min(uniq_rep_ids): + print_error( + "Replicate ids must start with 1..!", + "Sample", + "{}, replicate ids: {}".format(sample, ",".join([str(x) for x in uniq_rep_ids])), + ) + sys.exit(1) + + ## Check that multiple replicates are of the same datatype i.e. single-end / paired-end + if not all( + x[0][0] == sample_mapping_dict[sample][1][0][0] for x in sample_mapping_dict[sample].values() + ): print_error( - f"Multiple runs of a sample must be of the same datatype i.e. single-end or paired-end!", + f"Multiple replicates of a sample must be of the same datatype i.e. single-end or paired-end!", "Sample", sample, ) - for idx, val in enumerate(sample_mapping_dict[sample]): - control = val[-1] - if control and control not in sample_mapping_dict.keys(): + for replicate in sorted(sample_mapping_dict[sample].keys()): + ## Check that multiple runs of the same sample are of the same datatype i.e. single-end / paired-end + if not all( + x[0] == sample_mapping_dict[sample][replicate][0][0] + for x in sample_mapping_dict[sample][replicate] + ): print_error( - f"Control identifier has to match does a provided sample identifier!", - "Control", - control, + f"Multiple runs of a sample must be of the same datatype i.e. single-end or paired-end!", + "Sample", + sample, ) - fout.write(",".join([f"{sample}_T{idx+1}"] + val) + "\n") + for idx, val in enumerate(sample_mapping_dict[sample][replicate]): + control = "_REP".join(val[-1].split("_REP")[:-1]) + control_replicate = val[-1].split("_REP")[-1] + if control and ( + control not in sample_mapping_dict.keys() + or int(control_replicate) not in sample_mapping_dict[control].keys() + ): + print_error( + f"Control identifier and replicate has to match a provided sample identifier and replicate!", + "Control", + val[4], + ) + + ## Write to file + for idx in range(len(sample_mapping_dict[sample][replicate])): + fastq_files = sample_mapping_dict[sample][replicate][idx] + sample_id = "{}_REP{}_T{}".format(sample, replicate, idx + 1) + if len(fastq_files) == 1: + fout.write(",".join([sample_id] + fastq_files) + ",\n") + else: + fout.write(",".join([sample_id] + fastq_files) + "\n") + else: print_error(f"No entries to process!", "Samplesheet: {file_in}") From 8f1f57e05ab65064c02ae69a43ebd10d4ce45de1 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 20 Jun 2023 23:22:59 +0200 Subject: [PATCH 077/201] Update samplesheet in assets --- assets/samplesheet_pe.csv | 42 +++++++++++++++++++-------------------- assets/samplesheet_se.csv | 42 +++++++++++++++++++-------------------- 2 files changed, 42 insertions(+), 42 deletions(-) diff --git a/assets/samplesheet_pe.csv b/assets/samplesheet_pe.csv index 3a304f12..17ea2e86 100644 --- a/assets/samplesheet_pe.csv +++ b/assets/samplesheet_pe.csv @@ -1,21 +1,21 @@ -sample,fastq_1,fastq_2,antibody,control -WT_BCATENIN_IP_REP1,BLA203A1_S27_L006_R1_001.fastq.gz,BLA203A1_S27_L006_R2_001.fastq.gz,BCATENIN,WT_INPUT -WT_BCATENIN_IP_REP2,BLA203A25_S16_L001_R1_001.fastq.gz,BLA203A25_S16_L001_R2_001.fastq.gz,BCATENIN,WT_INPUT -WT_BCATENIN_IP_REP2,BLA203A25_S16_L002_R1_001.fastq.gz,BLA203A25_S16_L002_R2_001.fastq.gz,BCATENIN,WT_INPUT -WT_BCATENIN_IP_REP3,BLA203A49_S40_L001_R1_001.fastq.gz,BLA203A49_S40_L001_R2_001.fastq.gz,BCATENIN,WT_INPUT -NAIVE_BCATENIN_IP_REP1,BLA203A7_S60_L001_R1_001.fastq.gz,BLA203A7_S60_L001_R2_001.fastq.gz,BCATENIN,NAIVE_INPUT -NAIVE_BCATENIN_IP_REP2,BLA203A43_S34_L001_R1_001.fastq.gz,BLA203A43_S34_L001_R2_001.fastq.gz,BCATENIN,NAIVE_INPUT -NAIVE_BCATENIN_IP_REP2,BLA203A43_S34_L002_R1_001.fastq.gz,BLA203A43_S34_L002_R2_001.fastq.gz,BCATENIN,NAIVE_INPUT -NAIVE_BCATENIN_IP_REP3,BLA203A64_S55_L001_R1_001.fastq.gz,BLA203A64_S55_L001_R2_001.fastq.gz,BCATENIN,NAIVE_INPUT -WT_TCF4_IP_REP1,BLA203A3_S29_L006_R1_001.fastq.gz,BLA203A3_S29_L006_R2_001.fastq.gz,TCF4,WT_INPUT -WT_TCF4_IP_REP2,BLA203A27_S18_L001_R1_001.fastq.gz,BLA203A27_S18_L001_R2_001.fastq.gz,TCF4,WT_INPUT -WT_TCF4_IP_REP2,BLA203A51_S42_L001_R1_001.fastq.gz,BLA203A51_S42_L001_R2_001.fastq.gz,TCF4,WT_INPUT -NAIVE_TCF4_IP_REP1,BLA203A9_S62_L001_R1_001.fastq.gz,BLA203A9_S62_L001_R2_001.fastq.gz,TCF4,NAIVE_INPUT -NAIVE_TCF4_IP_REP2,BLA203A45_S36_L001_R1_001.fastq.gz,BLA203A45_S36_L001_R2_001.fastq.gz,TCF4,NAIVE_INPUT -NAIVE_TCF4_IP_REP3,BLA203A66_S57_L001_R1_001.fastq.gz,BLA203A66_S57_L001_R2_001.fastq.gz,TCF4,NAIVE_INPUT -WT_INPUT_REP1,BLA203A6_S32_L006_R1_001.fastq.gz,BLA203A6_S32_L006_R2_001.fastq.gz,, -WT_INPUT_REP2,BLA203A30_S21_L001_R1_001.fastq.gz,BLA203A30_S21_L001_R2_001.fastq.gz,, -WT_INPUT_REP3,BLA203A31_S21_L003_R1_001.fastq.gz,BLA203A31_S21_L003_R2_001.fastq.gz,, -NAIVE_INPUT_REP1,BLA203A12_S3_L001_R1_001.fastq.gz,BLA203A12_S3_L001_R2_001.fastq.gz,, -NAIVE_INPUT_REP2,BLA203A48_S39_L001_R1_001.fastq.gz,BLA203A48_S39_L001_R2_001.fastq.gz,, -NAIVE_INPUT_REP3,BLA203A49_S1_L006_R1_001.fastq.gz,BLA203A49_S1_L006_R2_001.fastq.gz,, +sample,fastq_1,fastq_2,replicate,antibody,control,control_replicate +WT_BCATENIN_IP,BLA203A1_S27_L006_R1_001.fastq.gz,BLA203A1_S27_L006_R2_001.fastq.gz,1,BCATENIN,WT_INPUT,1 +WT_BCATENIN_IP,BLA203A25_S16_L001_R1_001.fastq.gz,BLA203A25_S16_L001_R2_001.fastq.gz,2,BCATENIN,WT_INPUT,2 +WT_BCATENIN_IP,BLA203A25_S16_L002_R1_001.fastq.gz,BLA203A25_S16_L002_R2_001.fastq.gz,2,BCATENIN,WT_INPUT,2 +WT_BCATENIN_IP,BLA203A49_S40_L001_R1_001.fastq.gz,BLA203A49_S40_L001_R2_001.fastq.gz,3,BCATENIN,WT_INPUT,3 +NAIVE_BCATENIN_IP,BLA203A7_S60_L001_R1_001.fastq.gz,BLA203A7_S60_L001_R2_001.fastq.gz,1,BCATENIN,NAIVE_INPUT,1 +NAIVE_BCATENIN_IP,BLA203A43_S34_L001_R1_001.fastq.gz,BLA203A43_S34_L001_R2_001.fastq.gz,2,BCATENIN,NAIVE_INPUT,2 +NAIVE_BCATENIN_IP,BLA203A43_S34_L002_R1_001.fastq.gz,BLA203A43_S34_L002_R2_001.fastq.gz,2,BCATENIN,NAIVE_INPUT,2 +NAIVE_BCATENIN_IP,BLA203A64_S55_L001_R1_001.fastq.gz,BLA203A64_S55_L001_R2_001.fastq.gz,3,BCATENIN,NAIVE_INPUT,3 +WT_TCF4_IP,BLA203A3_S29_L006_R1_001.fastq.gz,BLA203A3_S29_L006_R2_001.fastq.gz,1,TCF4,WT_INPUT,1 +WT_TCF4_IP,BLA203A27_S18_L001_R1_001.fastq.gz,BLA203A27_S18_L001_R2_001.fastq.gz,2,TCF4,WT_INPUT,2 +WT_TCF4_IP,BLA203A51_S42_L001_R1_001.fastq.gz,BLA203A51_S42_L001_R2_001.fastq.gz,2,TCF4,WT_INPUT,2 +NAIVE_TCF4_IP,BLA203A9_S62_L001_R1_001.fastq.gz,BLA203A9_S62_L001_R2_001.fastq.gz,1,TCF4,NAIVE_INPUT,1 +NAIVE_TCF4_IP,BLA203A45_S36_L001_R1_001.fastq.gz,BLA203A45_S36_L001_R2_001.fastq.gz,2,TCF4,NAIVE_INPUT,2 +NAIVE_TCF4_IP,BLA203A66_S57_L001_R1_001.fastq.gz,BLA203A66_S57_L001_R2_001.fastq.gz,3,TCF4,NAIVE_INPUT,3 +WT_INPUT,BLA203A6_S32_L006_R1_001.fastq.gz,BLA203A6_S32_L006_R2_001.fastq.gz,1,,, +WT_INPUT,BLA203A30_S21_L001_R1_001.fastq.gz,BLA203A30_S21_L001_R2_001.fastq.gz,2,,, +WT_INPUT,BLA203A31_S21_L003_R1_001.fastq.gz,BLA203A31_S21_L003_R2_001.fastq.gz,3,,, +NAIVE_INPUT,BLA203A12_S3_L001_R1_001.fastq.gz,BLA203A12_S3_L001_R2_001.fastq.gz,1,,, +NAIVE_INPUT,BLA203A48_S39_L001_R1_001.fastq.gz,BLA203A48_S39_L001_R2_001.fastq.gz,2,,, +NAIVE_INPUT,BLA203A49_S1_L006_R1_001.fastq.gz,BLA203A49_S1_L006_R2_001.fastq.gz,3,,, diff --git a/assets/samplesheet_se.csv b/assets/samplesheet_se.csv index a9581d6e..8a0297d7 100644 --- a/assets/samplesheet_se.csv +++ b/assets/samplesheet_se.csv @@ -1,21 +1,21 @@ -sample,fastq_1,fastq_2,antibody,control -WT_BCATENIN_IP_REP1,BLA203A1_S27_L006_R1_001.fastq.gz,,BCATENIN,WT_INPUT -WT_BCATENIN_IP_REP2,BLA203A25_S16_L001_R1_001.fastq.gz,,BCATENIN,WT_INPUT -WT_BCATENIN_IP_REP2,BLA203A25_S16_L002_R1_001.fastq.gz,,BCATENIN,WT_INPUT -WT_BCATENIN_IP_REP3,BLA203A49_S40_L001_R1_001.fastq.gz,,BCATENIN,WT_INPUT -NAIVE_BCATENIN_IP_REP1,BLA203A7_S60_L001_R1_001.fastq.gz,,BCATENIN,NAIVE_INPUT -NAIVE_BCATENIN_IP_REP2,BLA203A43_S34_L001_R1_001.fastq.gz,,BCATENIN,NAIVE_INPUT -NAIVE_BCATENIN_IP_REP2,BLA203A43_S34_L002_R1_001.fastq.gz,,BCATENIN,NAIVE_INPUT -NAIVE_BCATENIN_IP_REP3,BLA203A64_S55_L001_R1_001.fastq.gz,,BCATENIN,NAIVE_INPUT -WT_TCF4_IP_REP1,BLA203A3_S29_L006_R1_001.fastq.gz,,TCF4,WT_INPUT -WT_TCF4_IP_REP2,BLA203A27_S18_L001_R1_001.fastq.gz,,TCF4,WT_INPUT -WT_TCF4_IP_REP3,BLA203A51_S42_L001_R1_001.fastq.gz,,TCF4,WT_INPUT -NAIVE_TCF4_IP_REP1,BLA203A9_S62_L001_R1_001.fastq.gz,,TCF4,NAIVE_INPUT -NAIVE_TCF4_IP_REP2,BLA203A45_S36_L001_R1_001.fastq.gz,,TCF4,NAIVE_INPUT -NAIVE_TCF4_IP_REP3,BLA203A66_S57_L001_R1_001.fastq.gz,,TCF4,NAIVE_INPUT -WT_INPUT_REP1,BLA203A6_S32_L006_R1_001.fastq.gz,,, -WT_INPUT_REP2,BLA203A30_S21_L001_R1_001.fastq.gz,,, -WT_INPUT_REP3,BLA203A31_S21_L003_R1_001.fastq.gz,,, -NAIVE_INPUT_REP1,BLA203A12_S3_L001_R1_001.fastq.gz,,, -NAIVE_INPUT_REP2,BLA203A48_S39_L001_R1_001.fastq.gz,,, -NAIVE_INPUT_REP3,BLA203A49_S1_L006_R1_001.fastq.gz,,, +sample,fastq_1,fastq_2,replicate,antibody,control,control_replicate +WT_BCATENIN_IP,BLA203A1_S27_L006_R1_001.fastq.gz,,1,BCATENIN,WT_INPUT,1 +WT_BCATENIN_IP,BLA203A25_S16_L001_R1_001.fastq.gz,,2,BCATENIN,WT_INPUT,2 +WT_BCATENIN_IP,BLA203A25_S16_L002_R1_001.fastq.gz,,2,BCATENIN,WT_INPUT,2 +WT_BCATENIN_IP,BLA203A49_S40_L001_R1_001.fastq.gz,,3,BCATENIN,WT_INPUT,3 +NAIVE_BCATENIN_IP,BLA203A7_S60_L001_R1_001.fastq.gz,,1,BCATENIN,NAIVE_INPUT,1 +NAIVE_BCATENIN_IP,BLA203A43_S34_L001_R1_001.fastq.gz,,2,BCATENIN,NAIVE_INPUT,2 +NAIVE_BCATENIN_IP,BLA203A43_S34_L002_R1_001.fastq.gz,,2,BCATENIN,NAIVE_INPUT,2 +NAIVE_BCATENIN_IP,BLA203A64_S55_L001_R1_001.fastq.gz,,3,BCATENIN,NAIVE_INPUT,3 +WT_TCF4_IP,BLA203A3_S29_L006_R1_001.fastq.gz,,1,TCF4,WT_INPUT,1 +WT_TCF4_IP,BLA203A27_S18_L001_R1_001.fastq.gz,,2,TCF4,WT_INPUT,2 +WT_TCF4_IP,BLA203A51_S42_L001_R1_001.fastq.gz,,3,TCF4,WT_INPUT,3 +NAIVE_TCF4_IP,BLA203A9_S62_L001_R1_001.fastq.gz,,1,TCF4,NAIVE_INPUT,1 +NAIVE_TCF4_IP,BLA203A45_S36_L001_R1_001.fastq.gz,,2,TCF4,NAIVE_INPUT,2 +NAIVE_TCF4_IP,BLA203A66_S57_L001_R1_001.fastq.gz,,3,TCF4,NAIVE_INPUT,3 +WT_INPUT,BLA203A6_S32_L006_R1_001.fastq.gz,,1,,, +WT_INPUT,BLA203A30_S21_L001_R1_001.fastq.gz,,2,,, +WT_INPUT,BLA203A31_S21_L003_R1_001.fastq.gz,,3,,, +NAIVE_INPUT,BLA203A12_S3_L001_R1_001.fastq.gz,,1,,, +NAIVE_INPUT,BLA203A48_S39_L001_R1_001.fastq.gz,,2,,, +NAIVE_INPUT,BLA203A49_S1_L006_R1_001.fastq.gz,,3,,, From 14e21f7447ed3752981f053e1075a3a10c9cde4a Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 20 Jun 2023 23:23:45 +0200 Subject: [PATCH 078/201] Update code to deal with explicit replicates and control replicates --- conf/test.config | 2 +- workflows/chipseq.nf | 23 +++++++++++++++++------ 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/conf/test.config b/conf/test.config index 9b24bc9a..f38e12c5 100644 --- a/conf/test.config +++ b/conf/test.config @@ -20,7 +20,7 @@ params { max_time = '6.h' // Input data - input = 'https://raw.githubusercontent.com/nf-core/test-datasets/chipseq/samplesheet/v2.0/samplesheet_test.csv' + input = 'https://raw.githubusercontent.com/nf-core/test-datasets/chipseq/samplesheet/v2.1/samplesheet_test.csv' read_length = 50 // Genome references diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index bdf5783f..1390e114 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -423,11 +423,19 @@ workflow CHIPSEQ { .set { ch_genome_bam_bai } ch_genome_bam_bai - .combine(ch_genome_bam_bai) .map { - meta1, bam1, bai1, meta2, bam2, bai2 -> - meta1.control == meta2.id ? [ meta1, [ bam1, bam2 ], [ bai1, bai2 ] ] : null + meta, bam, bai -> + meta.control ? null : [ meta.id, [ bam ] , [ bai ] ] } + .set { ch_control_bam_bai } + + ch_genome_bam_bai + .map { + meta, bam, bai -> + meta.control ? [ meta.control, meta, [ bam ], [ bai ] ] : null + } + .combine(ch_control_bam_bai, by: 0) + .map { it -> [ it[1] , it[2] + it[4], it[3] + it[5] ] } .set { ch_ip_control_bam_bai } // @@ -482,7 +490,10 @@ workflow CHIPSEQ { MACS2_CALLPEAK .out .peak - .filter { meta, peaks -> peaks.size() > 0 } + .filter { + meta, peaks -> + peaks.size() > 0 + } .set { ch_macs2_peaks } // Create channels: [ meta, ip_bam, peaks ] @@ -564,7 +575,7 @@ workflow CHIPSEQ { ch_deseq2_clustering_multiqc = Channel.empty() if (!params.skip_consensus_peaks) { // Create channels: [ meta , [ peaks ] ] - // Where meta = [ id:antibody, multiple_groups:true/false, replicates_exist:true/false ] + // Where meta = [ id:antibody, multiple_groups:true/false, replicates_exist:true/false ] ch_macs2_peaks .map { meta, peak -> @@ -588,7 +599,7 @@ workflow CHIPSEQ { [ meta_new, peaks ] } .set { ch_antibody_peaks } - + ch_antibody_peaks.dump() // // MODULE: Generate consensus peaks across samples // From 07ce1527bf5f5c7937828b0033a10b652111477d Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 20 Jun 2023 23:37:16 +0200 Subject: [PATCH 079/201] Make black happy --- bin/check_samplesheet.py | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/bin/check_samplesheet.py b/bin/check_samplesheet.py index f61cc626..b7b285ab 100755 --- a/bin/check_samplesheet.py +++ b/bin/check_samplesheet.py @@ -51,7 +51,7 @@ def check_samplesheet(file_in, file_out): with open(file_in, "r", encoding="utf-8-sig") as fin: ## Check header MIN_COLS = 3 - HEADER = ["sample", "fastq_1", "fastq_2", "replicate", "antibody", "control","control_replicate"] + HEADER = ["sample", "fastq_1", "fastq_2", "replicate", "antibody", "control", "control_replicate"] header = [x.strip('"') for x in fin.readline().strip().split(",")] if header[: len(HEADER)] != HEADER: print(f"ERROR: Please check samplesheet header -> {','.join(header)} != {','.join(HEADER)}") @@ -131,7 +131,7 @@ def check_samplesheet(file_in, file_out): ## Auto-detect paired-end/single-end sample_info = [] ## [single_end, fastq_1, fastq_2, replicate, antibody, control] if sample and fastq_1 and fastq_2: ## Paired-end short reads - sample_info = ["0", fastq_1, fastq_2, replicate, antibody,control] + sample_info = ["0", fastq_1, fastq_2, replicate, antibody, control] elif sample and fastq_1 and not fastq_2: ## Single-end short reads sample_info = ["1", fastq_1, fastq_2, replicate, antibody, control] else: @@ -141,7 +141,7 @@ def check_samplesheet(file_in, file_out): replicate = int(replicate) sample_info = sample_info + lspl[len(HEADER) :] if sample not in sample_mapping_dict: - sample_mapping_dict[sample] = {} + sample_mapping_dict[sample] = {} if replicate not in sample_mapping_dict[sample]: sample_mapping_dict[sample][replicate] = [sample_info] else: @@ -150,7 +150,6 @@ def check_samplesheet(file_in, file_out): else: sample_mapping_dict[sample][replicate].append(sample_info) - ## Write validated samplesheet with appropriate columns if len(sample_mapping_dict) > 0: out_dir = os.path.dirname(file_out) @@ -208,13 +207,13 @@ def check_samplesheet(file_in, file_out): control_replicate = val[-1].split("_REP")[-1] if control and ( control not in sample_mapping_dict.keys() - or int(control_replicate) not in sample_mapping_dict[control].keys() - ): - print_error( - f"Control identifier and replicate has to match a provided sample identifier and replicate!", - "Control", - val[4], - ) + or int(control_replicate) not in sample_mapping_dict[control].keys() + ): + print_error( + f"Control identifier and replicate has to match a provided sample identifier and replicate!", + "Control", + val[4], + ) ## Write to file for idx in range(len(sample_mapping_dict[sample][replicate])): From bb9515de161735a6011440dc820a6313a51e4197 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 21 Jun 2023 09:48:55 +0200 Subject: [PATCH 080/201] Update changelog --- CHANGELOG.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ec2d167b..2c9b7821 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,17 +8,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Enhancements & fixes - Updated pipeline template to [nf-core/tools 2.7.2](https://github.com/nf-core/tools/releases/tag/2.7.2) -- [[#317](https://github.com/nf-core/chipseq/issues/317)] Added metro map -- [[#288](https://github.com/nf-core/chipseq/issues/291)] Bump `chromap` version 2 and enable all the steps below chromap again when paired-end data is processed. -- [[#311](https://github.com/nf-core/chipseq/issues/311)] Add back `--skip_spp` parameter which was unintentionally removed from the code. +- [[#317](https://github.com/nf-core/chipseq/issues/317)] - Added metro map +- [[#288](https://github.com/nf-core/chipseq/issues/291)] - Bump `chromap` version 2 and enable all the steps below chromap again when paired-end data is processed. +- [[#311](https://github.com/nf-core/chipseq/issues/311)] - Add back `--skip_spp` parameter which was unintentionally removed from the code. - Install available nf-core subworkflows and refactor code accordingly -- [[#318](https://github.com/nf-core/chipseq/issues/318)] Update `bowtie2/align` module to fix issue when downloading its singularity image. -- [[#320](https://github.com/nf-core/chipseq/issues/320)] Fix samplesheet control column in documentation examples. -- [[#328](https://github.com/nf-core/chipseq/issues/328)] Modify documentation to clarify that is necessary to provide the `--read_length` when `--genome` is set and `--macs_gsize` has not provided. +- [[#318](https://github.com/nf-core/chipseq/issues/318)] - Update `bowtie2/align` module to fix issue when downloading its singularity image. +- [[#320](https://github.com/nf-core/chipseq/issues/320)] - Fix samplesheet control column in documentation examples. +- [[#328](https://github.com/nf-core/chipseq/issues/328)] - Modify documentation to clarify that is necessary to provide the `--read_length` when `--genome` is set and `--macs_gsize` has not provided. - Remove `enable_conda` param from local modules. - Fix the path where `chromap` index is stored when `--save_reference` is set. - Fix untar of `chromap` index when using `--chromap_index` param. -- [nf-core/tools#2286](https://github.com/nf-core/tools/issues/2286) Set default container registry outside profile scope. +- [nf-core/tools#2286](https://github.com/nf-core/tools/issues/2286) - Set default container registry outside profile scope. +- [[#343](https://github.com/nf-core/chipseq/issues/343)] - Provide replicate information explicitly in samplesheet. ### Software dependencies From a06cf7cbd0597bc382d70bed97a39a5db7300885 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 21 Jun 2023 09:50:20 +0200 Subject: [PATCH 081/201] Add narrow_peak input channel value to macs2_consensus --- modules/local/macs2_consensus.nf | 13 ++++++++----- workflows/chipseq.nf | 3 ++- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/modules/local/macs2_consensus.nf b/modules/local/macs2_consensus.nf index b8a5abd7..eb373d2c 100644 --- a/modules/local/macs2_consensus.nf +++ b/modules/local/macs2_consensus.nf @@ -12,6 +12,7 @@ process MACS2_CONSENSUS { input: tuple val(meta), path(peaks) + val is_narrow_peak output: tuple val(meta), path("*.bed") , emit: bed @@ -26,11 +27,12 @@ process MACS2_CONSENSUS { task.ext.when == null || task.ext.when script: // This script is bundled with the pipeline, in nf-core/chipseq/bin/ - def prefix = task.ext.prefix ?: "${meta.id}" - def peak_type = params.narrow_peak ? 'narrowPeak' : 'broadPeak' - def mergecols = params.narrow_peak ? (2..10).join(',') : (2..9).join(',') - def collapsecols = params.narrow_peak ? (['collapse']*9).join(',') : (['collapse']*8).join(',') - def expandparam = params.narrow_peak ? '--is_narrow_peak' : '' + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def peak_type = is_narrow_peak ? 'narrowPeak' : 'broadPeak' + def mergecols = is_narrow_peak ? (2..10).join(',') : (2..9).join(',') + def collapsecols = is_narrow_peak ? (['collapse']*9).join(',') : (['collapse']*8).join(',') + def expandparam = is_narrow_peak ? '--is_narrow_peak' : '' """ sort -T '.' -k1,1 -k2,2n ${peaks.collect{it.toString()}.sort().join(' ')} \\ | mergeBed -c $mergecols -o $collapsecols > ${prefix}.txt @@ -40,6 +42,7 @@ process MACS2_CONSENSUS { ${peaks.collect{it.toString()}.sort().join(',').replaceAll("_peaks.${peak_type}","")} \\ ${prefix}.boolean.txt \\ --min_replicates $params.min_reps_consensus \\ + $args \\ $expandparam awk -v FS='\t' -v OFS='\t' 'FNR > 1 { print \$1, \$2, \$3, \$4, "0", "+" }' ${prefix}.boolean.txt > ${prefix}.bed diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index 1390e114..d2faa5b2 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -604,7 +604,8 @@ workflow CHIPSEQ { // MODULE: Generate consensus peaks across samples // MACS2_CONSENSUS ( - ch_antibody_peaks + ch_antibody_peaks, + params.narrow_peak ) ch_macs2_consensus_bed_lib = MACS2_CONSENSUS.out.bed ch_macs2_consensus_txt_lib = MACS2_CONSENSUS.out.txt From 809312394d600e92e8a0e27468367f324f5bb3d6 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 21 Jun 2023 09:54:38 +0200 Subject: [PATCH 082/201] Update test_full with new version of samplesheet --- conf/test_full.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/test_full.config b/conf/test_full.config index 28cb9c98..a9478183 100644 --- a/conf/test_full.config +++ b/conf/test_full.config @@ -17,7 +17,7 @@ params { config_profile_description = 'Full test dataset to check pipeline function' // Input data for full size test - input = 'https://raw.githubusercontent.com/nf-core/test-datasets/chipseq/samplesheet/v2.0/samplesheet_full.csv' + input = 'https://raw.githubusercontent.com/nf-core/test-datasets/chipseq/samplesheet/v2.1/samplesheet_full.csv' // Used to calculate --macs_gsize read_length = 50 From 2630bc7bb5e920c0e65c7db44b127c37b071ad20 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Thu, 22 Jun 2023 11:34:14 +0200 Subject: [PATCH 083/201] Update usage to cover replicate and control_replicate columns --- docs/usage.md | 108 +++++++++++++++++++++++++++++--------------------- 1 file changed, 62 insertions(+), 46 deletions(-) diff --git a/docs/usage.md b/docs/usage.md index db940f51..252145b5 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -12,66 +12,82 @@ You will need to create a samplesheet with information about the samples you wou --input '[path to samplesheet file]' ``` -### Multiple runs of the same library +### Multiple replicates + +The `sample` identifier should be identical when you have multiple replicates from the same experimental group, just increment the `replicate` identifier appropriately. The first replicate value for any given experimental group must be 1. + +The `antibody` column is required to separate the downstream consensus peak merging for different antibodies. Its not advisable to generate a consensus peak set across different antibodies especially if their binding patterns are inherently different e.g. narrow transcription factors and broad histone marks. -The `sample` identifiers have to be the same when you have re-sequenced the same sample more than once e.g. to increase sequencing depth. The pipeline will perform the alignments in parallel, and subsequently merge them before further analysis. Below is an example where the samples called `WT_BCATENIN_IP_REP2` and `WT_INPUT_REP2` have been re-sequenced multiple times: +The `control` column should be the `sample` identifier for the controls for any given IP. This column together with the `control_replicate` column will set the corresponding control for each of the samples in the table. ```console -sample,fastq_1,fastq_2,antibody,control -WT_BCATENIN_IP_REP1,BLA203A1_S27_L006_R1_001.fastq.gz,,BCATENIN,WT_INPUT_REP1 -WT_BCATENIN_IP_REP2,BLA203A25_S16_L001_R1_001.fastq.gz,,BCATENIN,WT_INPUT_REP2 -WT_BCATENIN_IP_REP2,BLA203A25_S16_L002_R1_001.fastq.gz,,BCATENIN,WT_INPUT_REP2 -WT_BCATENIN_IP_REP2,BLA203A25_S16_L003_R1_001.fastq.gz,,BCATENIN,WT_INPUT_REP2 -WT_BCATENIN_IP_REP3,BLA203A49_S40_L001_R1_001.fastq.gz,,BCATENIN,WT_INPUT_REP3 -WT_INPUT_REP1,BLA203A6_S32_L006_R1_001.fastq.gz,,, -WT_INPUT_REP2,BLA203A30_S21_L001_R1_001.fastq.gz,,, -WT_INPUT_REP2,BLA203A30_S21_L002_R1_001.fastq.gz,,, -WT_INPUT_REP3,BLA203A31_S21_L003_R1_001.fastq.gz,,, +group,fastq_1,fastq_2,replicate,antibody,control,control_replicate +WT_BCATENIN_IP,BLA203A1_S27_L006_R1_001.fastq.gz,,1,BCATENIN,WT_INPUT,1 +WT_BCATENIN_IP,BLA203A25_S16_L002_R1_001.fastq.gz,,2,BCATENIN,WT_INPUT,2 +WT_BCATENIN_IP,BLA203A49_S40_L001_R1_001.fastq.gz,,3,BCATENIN,WT_INPUT,3 +WT_INPUT,BLA203A6_S32_L006_R1_001.fastq.gz,,1,,, +WT_INPUT,BLA203A30_S21_L002_R1_001.fastq.gz,,2,,, +WT_INPUT,BLA203A31_S21_L003_R1_001.fastq.gz,,3,,, ``` -### Full design +### Multiple runs of the same library -The pipeline will auto-detect whether a sample is single- or paired-end using the information provided in the samplesheet. The samplesheet can have as many columns as you desire, however, there is a strict requirement for the first 5 columns to match those defined in the table below. +Both the `sample` and `replicate` identifiers have to be the same when you have re-sequenced the same sample more than once e.g. to increase sequencing depth. The pipeline will perform the alignments in parallel, and subsequently merge them before further analysis. Below is an example where the samples called `WT_BCATENIN_IP` and `WT_INPUT` have been re-sequenced multiple times: -The `antibody` column is required to separate the downstream consensus peak merging for different antibodies. Its not advisable to generate a consensus peak set across different antibodies especially if their binding patterns are inherently different e.g. narrow transcription factors and broad histone marks. +```console +sample,fastq_1,fastq_2,replicate,antibody,control,control_replicate +WT_BCATENIN_IP,BLA203A1_S27_L006_R1_001.fastq.gz,,1,BCATENIN,WT_INPUT,1 +WT_BCATENIN_IP,BLA203A25_S16_L001_R1_001.fastq.gz,,2,BCATENIN,WT_INPUT,2 +WT_BCATENIN_IP,BLA203A25_S16_L002_R1_001.fastq.gz,,2,BCATENIN,WT_INPUT,2 +WT_BCATENIN_IP,BLA203A25_S16_L003_R1_001.fastq.gz,,2,BCATENIN,WT_INPUT,2 +WT_BCATENIN_IP,BLA203A49_S40_L001_R1_001.fastq.gz,,3,BCATENIN,WT_INPUT,3 +WT_INPUT,BLA203A6_S32_L006_R1_001.fastq.gz,,1,,, +WT_INPUT,BLA203A30_S21_L001_R1_001.fastq.gz,,2,,, +WT_INPUT,BLA203A30_S21_L002_R1_001.fastq.gz,,2,,, +WT_INPUT,BLA203A31_S21_L003_R1_001.fastq.gz,,3,,, +``` + +### Full design -The `control` column should be the `sample` identifier for the controls for any given IP. +The pipeline will auto-detect whether a sample is single- or paired-end using the information provided in the samplesheet. The samplesheet can have as many columns as you desire, however, there is a strict requirement for the first 7 columns to match those defined in the table below. -A final design file may look something like the one below. This is for two antibodies and associated controls, where the `WT_BCATENIN_IP_REP2` and `NAIVE_BCATENIN_IP_REP2` samples have been sequenced twice: +A final design file may look something like the one below. This is for two antibodies and associated controls, where the second replicate of the `WT_BCATENIN_IP` and `NAIVE_BCATENIN_IP` samples have been sequenced twice: ```console -sample,fastq_1,fastq_2,antibody,control -WT_BCATENIN_IP_REP1,BLA203A1_S27_L006_R1_001.fastq.gz,,BCATENIN,WT_INPUT_REP1 -WT_BCATENIN_IP_REP2,BLA203A25_S16_L001_R1_001.fastq.gz,,BCATENIN,WT_INPUT_REP2 -WT_BCATENIN_IP_REP2,BLA203A25_S16_L002_R1_001.fastq.gz,,BCATENIN,WT_INPUT_REP2 -WT_BCATENIN_IP_REP3,BLA203A49_S40_L001_R1_001.fastq.gz,,BCATENIN,WT_INPUT_REP3 -NAIVE_BCATENIN_IP_REP1,BLA203A7_S60_L001_R1_001.fastq.gz,,BCATENIN,NAIVE_INPUT_REP1 -NAIVE_BCATENIN_IP_REP2,BLA203A43_S34_L001_R1_001.fastq.gz,,BCATENIN,NAIVE_INPUT_REP2 -NAIVE_BCATENIN_IP_REP2,BLA203A43_S34_L002_R1_001.fastq.gz,,BCATENIN,NAIVE_INPUT_REP2 -NAIVE_BCATENIN_IP_REP3,BLA203A64_S55_L001_R1_001.fastq.gz,,BCATENIN,NAIVE_INPUT_REP3 -WT_TCF4_IP_REP1,BLA203A3_S29_L006_R1_001.fastq.gz,,TCF4,WT_INPUT_REP1 -WT_TCF4_IP_REP2,BLA203A27_S18_L001_R1_001.fastq.gz,,TCF4,WT_INPUT_REP2 -WT_TCF4_IP_REP3,BLA203A51_S42_L001_R1_001.fastq.gz,,TCF4,WT_INPUT_REP3 -NAIVE_TCF4_IP_REP1,BLA203A9_S62_L001_R1_001.fastq.gz,,TCF4,NAIVE_INPUT_REP1 -NAIVE_TCF4_IP_REP2,BLA203A45_S36_L001_R1_001.fastq.gz,,TCF4,NAIVE_INPUT_REP2 -NAIVE_TCF4_IP_REP3,BLA203A66_S57_L001_R1_001.fastq.gz,,TCF4,NAIVE_INPUT_REP3 -WT_INPUT_REP1,BLA203A6_S32_L006_R1_001.fastq.gz,,, -WT_INPUT_REP2,BLA203A30_S21_L001_R1_001.fastq.gz,,, -WT_INPUT_REP3,BLA203A31_S21_L003_R1_001.fastq.gz,,, -NAIVE_INPUT_REP1,BLA203A12_S3_L001_R1_001.fastq.gz,,, -NAIVE_INPUT_REP2,BLA203A48_S39_L001_R1_001.fastq.gz,,, -NAIVE_INPUT_REP3,BLA203A49_S1_L006_R1_001.fastq.gz,,, +sample,fastq_1,fastq_2,replicate,antibody,control,control_replicate +WT_BCATENIN_IP,BLA203A1_S27_L006_R1_001.fastq.gz,,1,BCATENIN,WT_INPUT,1 +WT_BCATENIN_IP,BLA203A25_S16_L001_R1_001.fastq.gz,,2,BCATENIN,WT_INPUT,2 +WT_BCATENIN_IP,BLA203A25_S16_L002_R1_001.fastq.gz,,2,BCATENIN,WT_INPUT,2 +WT_BCATENIN_IP,BLA203A49_S40_L001_R1_001.fastq.gz,,3,BCATENIN,WT_INPUT,3 +NAIVE_BCATENIN_IP,BLA203A7_S60_L001_R1_001.fastq.gz,,1,BCATENIN,NAIVE_INPUT,1 +NAIVE_BCATENIN_IP,BLA203A43_S34_L001_R1_001.fastq.gz,,2,BCATENIN,NAIVE_INPUT,2 +NAIVE_BCATENIN_IP,BLA203A43_S34_L002_R1_001.fastq.gz,,2,BCATENIN,NAIVE_INPUT,2 +NAIVE_BCATENIN_IP,BLA203A64_S55_L001_R1_001.fastq.gz,,3,BCATENIN,NAIVE_INPUT,3 +WT_TCF4_IP,BLA203A3_S29_L006_R1_001.fastq.gz,,1,TCF4,WT_INPUT,1 +WT_TCF4_IP,BLA203A27_S18_L001_R1_001.fastq.gz,,2,TCF4,WT_INPUT,2 +WT_TCF4_IP,BLA203A51_S42_L001_R1_001.fastq.gz,,3,TCF4,WT_INPUT,3 +NAIVE_TCF4_IP,BLA203A9_S62_L001_R1_001.fastq.gz,,1,TCF4,NAIVE_INPUT,1 +NAIVE_TCF4_IP,BLA203A45_S36_L001_R1_001.fastq.gz,,2,TCF4,NAIVE_INPUT,2 +NAIVE_TCF4_IP,BLA203A66_S57_L001_R1_001.fastq.gz,,3,TCF4,NAIVE_INPUT,3 +WT_INPUT,BLA203A6_S32_L006_R1_001.fastq.gz,,1,,, +WT_INPUT,BLA203A30_S21_L001_R1_001.fastq.gz,,2,,, +WT_INPUT,BLA203A31_S21_L003_R1_001.fastq.gz,,3,,, +NAIVE_INPUT,BLA203A12_S3_L001_R1_001.fastq.gz,,1,,, +NAIVE_INPUT,BLA203A48_S39_L001_R1_001.fastq.gz,,2,,, +NAIVE_INPUT,BLA203A49_S1_L006_R1_001.fastq.gz,,3,,, ``` | Column | Description | -| ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `sample` | Custom sample name. This entry will be identical for multiple sequencing libraries/runs from the same sample. Spaces in sample names are automatically converted to underscores (`_`). | -| `fastq_1` | Full path to FastQ file for Illumina short reads 1. File has to be gzipped and have the extension ".fastq.gz" or ".fq.gz". | -| `fastq_2` | Full path to FastQ file for Illumina short reads 2. File has to be gzipped and have the extension ".fastq.gz" or ".fq.gz". | -| `antibody` | Antibody name. This is required to segregate downstream analysis for different antibodies. Required when `control` is specified. | -| `control` | Sample name for control sample. | - -Example design files have been provided with the pipeline for [paired-end](../assets/samplesheet_pe.csv) and [single-end](../assets/samplesheet_se.csv) data. +| ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `sample` | Custom sample name. This entry will be identical for multiple sequencing libraries/runs from the same sample. Spaces in sample names are automatically converted to underscores (`_`). | +| `fastq_1` | Full path to FastQ file for Illumina short reads 1. File has to be gzipped and have the extension ".fastq.gz" or ".fq.gz". | +| `fastq_2` | Full path to FastQ file for Illumina short reads 2. File has to be gzipped and have the extension ".fastq.gz" or ".fq.gz". | +| `replicate` | Integer representing replicate number. This will be identical for re-sequenced libraries. Must start from `1..`. | +| `antibody` | Antibody name. This is required to segregate downstream analysis for different antibodies. Required when `control` is specified. | +| `control` | Sample name for control sample. | +| `control_replicate` | Integer representing replicate number for control sample. | + +Example design files have bee_n provided with the pipeline for [paired-end](../assets/samplesheet_pe.csv) and [single-end](../assets/samplesheet_se.csv) data. > **NB:** The `group` and `replicate` columns were replaced with a single `sample` column as of v2.0 of the pipeline. The `sample` column is essentially a concatenation of the `group` and `replicate` columns. If all values of `sample` have the same number of underscores, fields defined by these underscore-separated names may be used in the PCA plots produced by the pipeline, to regain the ability to represent different groupings. From da7ecafa87f9c67f33255ceb072ea521c2341457 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Thu, 22 Jun 2023 11:36:42 +0200 Subject: [PATCH 084/201] Make prettier happy --- docs/usage.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/usage.md b/docs/usage.md index 252145b5..10524491 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -51,7 +51,7 @@ WT_INPUT,BLA203A31_S21_L003_R1_001.fastq.gz,,3,,, The pipeline will auto-detect whether a sample is single- or paired-end using the information provided in the samplesheet. The samplesheet can have as many columns as you desire, however, there is a strict requirement for the first 7 columns to match those defined in the table below. -A final design file may look something like the one below. This is for two antibodies and associated controls, where the second replicate of the `WT_BCATENIN_IP` and `NAIVE_BCATENIN_IP` samples have been sequenced twice: +A final design file may look something like the one below. This is for two antibodies and associated controls, where the second replicate of the `WT_BCATENIN_IP` and `NAIVE_BCATENIN_IP` samples have been sequenced twice: ```console sample,fastq_1,fastq_2,replicate,antibody,control,control_replicate @@ -77,15 +77,15 @@ NAIVE_INPUT,BLA203A48_S39_L001_R1_001.fastq.gz,,2,,, NAIVE_INPUT,BLA203A49_S1_L006_R1_001.fastq.gz,,3,,, ``` -| Column | Description | -| ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `sample` | Custom sample name. This entry will be identical for multiple sequencing libraries/runs from the same sample. Spaces in sample names are automatically converted to underscores (`_`). | -| `fastq_1` | Full path to FastQ file for Illumina short reads 1. File has to be gzipped and have the extension ".fastq.gz" or ".fq.gz". | -| `fastq_2` | Full path to FastQ file for Illumina short reads 2. File has to be gzipped and have the extension ".fastq.gz" or ".fq.gz". | -| `replicate` | Integer representing replicate number. This will be identical for re-sequenced libraries. Must start from `1..`. | -| `antibody` | Antibody name. This is required to segregate downstream analysis for different antibodies. Required when `control` is specified. | -| `control` | Sample name for control sample. | -| `control_replicate` | Integer representing replicate number for control sample. | +| Column | Description | +| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `sample` | Custom sample name. This entry will be identical for multiple sequencing libraries/runs from the same sample. Spaces in sample names are automatically converted to underscores (`_`). | +| `fastq_1` | Full path to FastQ file for Illumina short reads 1. File has to be gzipped and have the extension ".fastq.gz" or ".fq.gz". | +| `fastq_2` | Full path to FastQ file for Illumina short reads 2. File has to be gzipped and have the extension ".fastq.gz" or ".fq.gz". | +| `replicate` | Integer representing replicate number. This will be identical for re-sequenced libraries. Must start from `1..`. | +| `antibody` | Antibody name. This is required to segregate downstream analysis for different antibodies. Required when `control` is specified. | +| `control` | Sample name for control sample. | +| `control_replicate` | Integer representing replicate number for control sample. | Example design files have bee_n provided with the pipeline for [paired-end](../assets/samplesheet_pe.csv) and [single-end](../assets/samplesheet_se.csv) data. From d99f2fe60330010d33a9ac606886184ca126f77d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Langer?= <61791748+bjlang@users.noreply.github.com> Date: Thu, 22 Jun 2023 12:58:01 +0200 Subject: [PATCH 085/201] Update usage.md --- docs/usage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage.md b/docs/usage.md index 10524491..6cab8bfe 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -16,7 +16,7 @@ You will need to create a samplesheet with information about the samples you wou The `sample` identifier should be identical when you have multiple replicates from the same experimental group, just increment the `replicate` identifier appropriately. The first replicate value for any given experimental group must be 1. -The `antibody` column is required to separate the downstream consensus peak merging for different antibodies. Its not advisable to generate a consensus peak set across different antibodies especially if their binding patterns are inherently different e.g. narrow transcription factors and broad histone marks. +The `antibody` column is required to separate the downstream consensus peak merging for different antibodies. It is not advisable to generate a consensus peak set across different antibodies especially if their binding patterns are inherently different e.g. narrow transcription factors and broad histone marks. The `control` column should be the `sample` identifier for the controls for any given IP. This column together with the `control_replicate` column will set the corresponding control for each of the samples in the table. From 18bdef84e8d6f69e86660dd1d13917fded8634b8 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Thu, 22 Jun 2023 14:01:00 +0200 Subject: [PATCH 086/201] Remove dump --- workflows/chipseq.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index d2faa5b2..fc914a51 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -599,7 +599,7 @@ workflow CHIPSEQ { [ meta_new, peaks ] } .set { ch_antibody_peaks } - ch_antibody_peaks.dump() + // // MODULE: Generate consensus peaks across samples // From 36f189621b80c9e29ca12856cabd3038891c247c Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Thu, 22 Jun 2023 23:55:54 +0200 Subject: [PATCH 087/201] Update modules --- modules.json | 267 ++++++++++++------ modules/nf-core/bowtie2/align/main.nf | 35 ++- modules/nf-core/bowtie2/align/meta.yml | 6 +- modules/nf-core/bowtie2/build/main.nf | 14 +- modules/nf-core/bwa/index/main.nf | 2 +- modules/nf-core/bwa/mem/main.nf | 2 +- modules/nf-core/chromap/chromap/main.nf | 2 +- modules/nf-core/chromap/index/main.nf | 2 +- .../custom/dumpsoftwareversions/main.nf | 2 +- .../custom/dumpsoftwareversions/meta.yml | 2 + .../templates/dumpsoftwareversions.py | 0 modules/nf-core/custom/getchromsizes/main.nf | 2 +- .../nf-core/deeptools/computematrix/main.nf | 2 +- .../nf-core/deeptools/plotfingerprint/main.nf | 2 +- modules/nf-core/deeptools/plotheatmap/main.nf | 2 +- modules/nf-core/deeptools/plotprofile/main.nf | 2 +- modules/nf-core/fastqc/main.nf | 2 +- modules/nf-core/gffread/main.nf | 2 +- modules/nf-core/gunzip/main.nf | 2 +- modules/nf-core/gunzip/meta.yml | 1 + modules/nf-core/homer/annotatepeaks/main.nf | 2 +- modules/nf-core/khmer/uniquekmers/main.nf | 2 +- modules/nf-core/macs2/callpeak/main.nf | 2 +- modules/nf-core/multiqc/main.nf | 2 +- modules/nf-core/multiqc/meta.yml | 3 +- modules/nf-core/phantompeakqualtools/main.nf | 2 +- .../picard/collectmultiplemetrics/main.nf | 2 +- modules/nf-core/picard/markduplicates/main.nf | 6 +- .../nf-core/picard/markduplicates/meta.yml | 11 + modules/nf-core/picard/mergesamfiles/main.nf | 2 +- modules/nf-core/preseq/lcextrap/main.nf | 2 +- modules/nf-core/samtools/flagstat/main.nf | 6 +- modules/nf-core/samtools/idxstats/main.nf | 6 +- modules/nf-core/samtools/index/main.nf | 6 +- modules/nf-core/samtools/sort/main.nf | 14 +- modules/nf-core/samtools/stats/main.nf | 8 +- modules/nf-core/samtools/stats/meta.yml | 10 +- modules/nf-core/subread/featurecounts/main.nf | 2 +- modules/nf-core/trimgalore/main.nf | 2 +- modules/nf-core/ucsc/bedgraphtobigwig/main.nf | 2 +- modules/nf-core/umitools/extract/main.nf | 2 +- modules/nf-core/untar/main.nf | 2 +- modules/nf-core/untar/meta.yml | 1 + modules/nf-core/untarfiles/main.nf | 2 +- modules/nf-core/untarfiles/meta.yml | 3 +- .../nf-core/bam_markduplicates_picard/main.nf | 2 +- .../bam_markduplicates_picard/meta.yml | 1 + .../nf-core/bam_sort_stats_samtools/main.nf | 2 +- .../nf-core/bam_sort_stats_samtools/meta.yml | 1 + .../nf-core/bam_stats_samtools/main.nf | 4 +- .../nf-core/bam_stats_samtools/meta.yml | 1 + .../nf-core/fastq_align_bowtie2/main.nf | 4 +- subworkflows/nf-core/fastq_align_bwa/meta.yml | 1 + .../nf-core/fastq_align_chromap/main.nf | 2 +- .../nf-core/fastq_align_chromap/meta.yml | 1 + .../fastq_fastqc_umitools_trimgalore/meta.yml | 13 +- 56 files changed, 327 insertions(+), 158 deletions(-) mode change 100644 => 100755 modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py diff --git a/modules.json b/modules.json index 3f822ac4..f781edf2 100644 --- a/modules.json +++ b/modules.json @@ -7,178 +7,260 @@ "nf-core": { "bowtie2/align": { "branch": "master", - "git_sha": "c8e35eb2055c099720a75538d1b8adb3fb5a464c", - "installed_by": ["fastq_align_bowtie2", "modules"] + "git_sha": "fe54581f8bed20e4c4a51c616c93fd3379d89820", + "installed_by": [ + "modules", + "fastq_align_bowtie2" + ] }, "bowtie2/build": { "branch": "master", - "git_sha": "c8e35eb2055c099720a75538d1b8adb3fb5a464c", - "installed_by": ["modules"] + "git_sha": "6a24fbe314bb2e6fe6306c29a63076ea87e8eb3c", + "installed_by": [ + "modules" + ] }, "bwa/index": { "branch": "master", - "git_sha": "c8e35eb2055c099720a75538d1b8adb3fb5a464c", - "installed_by": ["modules"] + "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "installed_by": [ + "modules" + ] }, "bwa/mem": { "branch": "master", - "git_sha": "c8e35eb2055c099720a75538d1b8adb3fb5a464c", - "installed_by": ["fastq_align_bwa", "modules"] + "git_sha": "603ecbd9f45300c9788f197d2a15a005685b4220", + "installed_by": [ + "modules", + "fastq_align_bwa" + ] }, "chromap/chromap": { "branch": "master", - "git_sha": "b7f0dbc07af00c0ccdc7c2df06efee8786e976ac", - "installed_by": ["fastq_align_chromap", "modules"] + "git_sha": "603ecbd9f45300c9788f197d2a15a005685b4220", + "installed_by": [ + "modules", + "fastq_align_chromap" + ] }, "chromap/index": { "branch": "master", - "git_sha": "d6b7b1f108dab88b0269a4331767c36a1a8da960", - "installed_by": ["modules"] + "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "installed_by": [ + "modules" + ] }, "custom/dumpsoftwareversions": { "branch": "master", - "git_sha": "7101db4432d3268b7fcb5b8f75fa0a022dc5561b", - "installed_by": ["modules"] + "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "installed_by": [ + "modules" + ] }, "custom/getchromsizes": { "branch": "master", - "git_sha": "c8e35eb2055c099720a75538d1b8adb3fb5a464c", - "installed_by": ["modules"] + "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "installed_by": [ + "modules" + ] }, "deeptools/computematrix": { "branch": "master", - "git_sha": "0f8a77ff00e65eaeebc509b8156eaa983192474b", - "installed_by": ["modules"] + "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "installed_by": [ + "modules" + ] }, "deeptools/plotfingerprint": { "branch": "master", - "git_sha": "0f8a77ff00e65eaeebc509b8156eaa983192474b", - "installed_by": ["modules"] + "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "installed_by": [ + "modules" + ] }, "deeptools/plotheatmap": { "branch": "master", - "git_sha": "0f8a77ff00e65eaeebc509b8156eaa983192474b", - "installed_by": ["modules"] + "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "installed_by": [ + "modules" + ] }, "deeptools/plotprofile": { "branch": "master", - "git_sha": "0f8a77ff00e65eaeebc509b8156eaa983192474b", - "installed_by": ["modules"] + "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "installed_by": [ + "modules" + ] }, "fastqc": { "branch": "master", - "git_sha": "c8e35eb2055c099720a75538d1b8adb3fb5a464c", - "installed_by": ["modules", "fastq_fastqc_umitools_trimgalore"] + "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "installed_by": [ + "fastq_fastqc_umitools_trimgalore", + "modules" + ] }, "gffread": { "branch": "master", - "git_sha": "c8e35eb2055c099720a75538d1b8adb3fb5a464c", - "installed_by": ["modules"] + "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "installed_by": [ + "modules" + ] }, "gunzip": { "branch": "master", - "git_sha": "0f8a77ff00e65eaeebc509b8156eaa983192474b", - "installed_by": ["modules"] + "git_sha": "5c460c5a4736974abde2843294f35307ee2b0e5e", + "installed_by": [ + "modules" + ] }, "homer/annotatepeaks": { "branch": "master", - "git_sha": "c8e35eb2055c099720a75538d1b8adb3fb5a464c", - "installed_by": ["modules"] + "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "installed_by": [ + "modules" + ] }, "khmer/uniquekmers": { "branch": "master", - "git_sha": "2f398a6342db61e7ab0f4cb4d395eed74b65db7c", - "installed_by": ["modules"] + "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "installed_by": [ + "modules" + ] }, "macs2/callpeak": { "branch": "master", - "git_sha": "0f8a77ff00e65eaeebc509b8156eaa983192474b", - "installed_by": ["modules"] + "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "installed_by": [ + "modules" + ] }, "multiqc": { "branch": "master", - "git_sha": "ee80d14721e76e2e079103b8dcd5d57129e584ba", - "installed_by": ["modules"] + "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "installed_by": [ + "modules" + ] }, "phantompeakqualtools": { "branch": "master", - "git_sha": "2f398a6342db61e7ab0f4cb4d395eed74b65db7c", - "installed_by": ["modules"] + "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "installed_by": [ + "modules" + ] }, "picard/collectmultiplemetrics": { "branch": "master", - "git_sha": "75027bf77472b1f4fd2cdd7e46f83119dfb0f2c6", - "installed_by": ["modules"] + "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "installed_by": [ + "modules" + ] }, "picard/markduplicates": { "branch": "master", - "git_sha": "75027bf77472b1f4fd2cdd7e46f83119dfb0f2c6", - "installed_by": ["modules", "bam_markduplicates_picard"] + "git_sha": "735e1e04e7e01751d2d6e97055bbdb6f70683cc1", + "installed_by": [ + "modules", + "bam_markduplicates_picard" + ] }, "picard/mergesamfiles": { "branch": "master", - "git_sha": "75027bf77472b1f4fd2cdd7e46f83119dfb0f2c6", - "installed_by": ["modules"] + "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "installed_by": [ + "modules" + ] }, "preseq/lcextrap": { "branch": "master", - "git_sha": "0f8a77ff00e65eaeebc509b8156eaa983192474b", - "installed_by": ["modules"] + "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "installed_by": [ + "modules" + ] }, "samtools/flagstat": { "branch": "master", - "git_sha": "0f8a77ff00e65eaeebc509b8156eaa983192474b", - "installed_by": ["modules", "bam_stats_samtools"] + "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "installed_by": [ + "modules", + "bam_stats_samtools" + ] }, "samtools/idxstats": { "branch": "master", - "git_sha": "0f8a77ff00e65eaeebc509b8156eaa983192474b", - "installed_by": ["modules", "bam_stats_samtools"] + "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "installed_by": [ + "modules", + "bam_stats_samtools" + ] }, "samtools/index": { "branch": "master", - "git_sha": "0f8a77ff00e65eaeebc509b8156eaa983192474b", - "installed_by": ["modules", "bam_markduplicates_picard", "bam_sort_stats_samtools"] + "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "installed_by": [ + "modules", + "bam_markduplicates_picard", + "bam_sort_stats_samtools" + ] }, "samtools/sort": { "branch": "master", - "git_sha": "0f8a77ff00e65eaeebc509b8156eaa983192474b", - "installed_by": ["bam_sort_stats_samtools", "modules"] + "git_sha": "a0f7be95788366c1923171e358da7d049eb440f9", + "installed_by": [ + "modules", + "bam_sort_stats_samtools" + ] }, "samtools/stats": { "branch": "master", - "git_sha": "0f8a77ff00e65eaeebc509b8156eaa983192474b", - "installed_by": ["modules", "bam_stats_samtools"] + "git_sha": "735e1e04e7e01751d2d6e97055bbdb6f70683cc1", + "installed_by": [ + "modules", + "bam_stats_samtools" + ] }, "subread/featurecounts": { "branch": "master", - "git_sha": "c8e35eb2055c099720a75538d1b8adb3fb5a464c", - "installed_by": ["modules"] + "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "installed_by": [ + "modules" + ] }, "trimgalore": { "branch": "master", - "git_sha": "64a3dbc0a30a94cdaed7869d8e34fbb85e886614", - "installed_by": ["modules", "fastq_fastqc_umitools_trimgalore"] + "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "installed_by": [ + "fastq_fastqc_umitools_trimgalore", + "modules" + ] }, "ucsc/bedgraphtobigwig": { "branch": "master", - "git_sha": "0f8a77ff00e65eaeebc509b8156eaa983192474b", - "installed_by": ["modules"] + "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "installed_by": [ + "modules" + ] }, "umitools/extract": { "branch": "master", - "git_sha": "ffe2f5865f608848e440a52b73c304ea79aaf818", - "installed_by": ["fastq_fastqc_umitools_trimgalore"] + "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "installed_by": [ + "fastq_fastqc_umitools_trimgalore" + ] }, "untar": { "branch": "master", - "git_sha": "cc1f997fab6d8fde5dc0e6e2a310814df5b53ce7", - "installed_by": ["modules"] + "git_sha": "5c460c5a4736974abde2843294f35307ee2b0e5e", + "installed_by": [ + "modules" + ] }, "untarfiles": { "branch": "master", - "git_sha": "2498e243c8c30c7125661e62fc777917d8e343b9", - "installed_by": ["modules"] + "git_sha": "5c460c5a4736974abde2843294f35307ee2b0e5e", + "installed_by": [ + "modules" + ] } } }, @@ -186,41 +268,58 @@ "nf-core": { "bam_markduplicates_picard": { "branch": "master", - "git_sha": "6f1697c121719dedde9e0537b6ed6a9cb8c13583", - "installed_by": ["subworkflows"] + "git_sha": "a9784afdd5dcda23b84e64db75dc591065d64653", + "installed_by": [ + "subworkflows" + ] }, "bam_sort_stats_samtools": { "branch": "master", - "git_sha": "3911652a6b24249358f79e8b8466338d63efb2a2", - "installed_by": ["fastq_align_bowtie2", "fastq_align_chromap", "fastq_align_bwa"] + "git_sha": "735e1e04e7e01751d2d6e97055bbdb6f70683cc1", + "installed_by": [ + "fastq_align_bowtie2", + "fastq_align_chromap", + "fastq_align_bwa" + ] }, "bam_stats_samtools": { "branch": "master", - "git_sha": "b4b7f89e7fd6d2293f0c176213f710e0bcdaf19e", - "installed_by": ["bam_markduplicates_picard", "bam_sort_stats_samtools"] + "git_sha": "735e1e04e7e01751d2d6e97055bbdb6f70683cc1", + "installed_by": [ + "bam_sort_stats_samtools", + "bam_markduplicates_picard" + ] }, "fastq_align_bowtie2": { "branch": "master", "git_sha": "ac75f79157ecc64283a2b3a559f1ba90bc0f2259", - "installed_by": ["subworkflows"] + "installed_by": [ + "subworkflows" + ] }, "fastq_align_bwa": { "branch": "master", - "git_sha": "901fab507683647b43e7032f3ae9e4c234eb68eb", - "installed_by": ["subworkflows"] + "git_sha": "a9784afdd5dcda23b84e64db75dc591065d64653", + "installed_by": [ + "subworkflows" + ] }, "fastq_align_chromap": { "branch": "master", - "git_sha": "ac75f79157ecc64283a2b3a559f1ba90bc0f2259", - "installed_by": ["subworkflows"] + "git_sha": "735e1e04e7e01751d2d6e97055bbdb6f70683cc1", + "installed_by": [ + "subworkflows" + ] }, "fastq_fastqc_umitools_trimgalore": { "branch": "master", - "git_sha": "100caf3506850ffcc04953f724a97f422940c377", - "installed_by": ["subworkflows"] + "git_sha": "a9784afdd5dcda23b84e64db75dc591065d64653", + "installed_by": [ + "subworkflows" + ] } } } } } -} +} \ No newline at end of file diff --git a/modules/nf-core/bowtie2/align/main.nf b/modules/nf-core/bowtie2/align/main.nf index 3d851866..a77114d2 100644 --- a/modules/nf-core/bowtie2/align/main.nf +++ b/modules/nf-core/bowtie2/align/main.nf @@ -5,7 +5,7 @@ process BOWTIE2_ALIGN { conda "bioconda::bowtie2=2.4.4 bioconda::samtools=1.16.1 conda-forge::pigz=2.6" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/mulled-v2-ac74a7f02cebcfcc07d8e8d1d750af9c83b4d45a:a0ffedb52808e102887f6ce600d092675bf3528a-0' : - 'quay.io/biocontainers/mulled-v2-ac74a7f02cebcfcc07d8e8d1d750af9c83b4d45a:a0ffedb52808e102887f6ce600d092675bf3528a-0' }" + 'biocontainers/mulled-v2-ac74a7f02cebcfcc07d8e8d1d750af9c83b4d45a:a0ffedb52808e102887f6ce600d092675bf3528a-0' }" input: tuple val(meta) , path(reads) @@ -14,10 +14,10 @@ process BOWTIE2_ALIGN { val sort_bam output: - tuple val(meta), path("*.bam") , emit: bam - tuple val(meta), path("*.log") , emit: log - tuple val(meta), path("*fastq.gz"), emit: fastq, optional:true - path "versions.yml" , emit: versions + tuple val(meta), path("*.{bam,sam}"), emit: aligned + tuple val(meta), path("*.log") , emit: log + tuple val(meta), path("*fastq.gz") , emit: fastq, optional:true + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -38,6 +38,8 @@ process BOWTIE2_ALIGN { } def samtools_command = sort_bam ? 'sort' : 'view' + def extension_pattern = /(--output-fmt|-O)+\s+(\S+)/ + def extension = (args2 ==~ extension_pattern) ? (args2 =~ extension_pattern)[0][2].toLowerCase() : "bam" """ INDEX=`find -L ./ -name "*.rev.1.bt2" | sed "s/\\.rev.1.bt2\$//"` @@ -51,7 +53,7 @@ process BOWTIE2_ALIGN { $unaligned \\ $args \\ 2> ${prefix}.bowtie2.log \\ - | samtools $samtools_command $args2 --threads $task.cpus -o ${prefix}.bam - + | samtools $samtools_command $args2 --threads $task.cpus -o ${prefix}.${extension} - if [ -f ${prefix}.unmapped.fastq.1.gz ]; then mv ${prefix}.unmapped.fastq.1.gz ${prefix}.unmapped_1.fastq.gz @@ -68,4 +70,25 @@ process BOWTIE2_ALIGN { pigz: \$( pigz --version 2>&1 | sed 's/pigz //g' ) END_VERSIONS """ + + stub: + def args2 = task.ext.args2 ?: "" + def prefix = task.ext.prefix ?: "${meta.id}" + def extension_pattern = /(--output-fmt|-O)+\s+(\S+)/ + def extension = (args2 ==~ extension_pattern) ? (args2 =~ extension_pattern)[0][2].toLowerCase() : "bam" + + """ + touch ${prefix}.${extension} + touch ${prefix}.bowtie2.log + touch ${prefix}.unmapped_1.fastq.gz + touch ${prefix}.unmapped_2.fastq.gz + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bowtie2: \$(echo \$(bowtie2 --version 2>&1) | sed 's/^.*bowtie2-align-s version //; s/ .*\$//') + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + pigz: \$( pigz --version 2>&1 | sed 's/pigz //g' ) + END_VERSIONS + """ + } diff --git a/modules/nf-core/bowtie2/align/meta.yml b/modules/nf-core/bowtie2/align/meta.yml index c8e9a001..60d04c12 100644 --- a/modules/nf-core/bowtie2/align/meta.yml +++ b/modules/nf-core/bowtie2/align/meta.yml @@ -46,10 +46,10 @@ input: description: use samtools sort (true) or samtools view (false) pattern: "true or false" output: - - bam: + - aligned: type: file - description: Output BAM file containing read alignments - pattern: "*.{bam}" + description: Output BAM/SAM file containing read alignments + pattern: "*.{bam,sam}" - versions: type: file description: File containing software versions diff --git a/modules/nf-core/bowtie2/build/main.nf b/modules/nf-core/bowtie2/build/main.nf index 551893af..069d9c12 100644 --- a/modules/nf-core/bowtie2/build/main.nf +++ b/modules/nf-core/bowtie2/build/main.nf @@ -5,7 +5,7 @@ process BOWTIE2_BUILD { conda "bioconda::bowtie2=2.4.4" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/bowtie2:2.4.4--py39hbb4e92a_0' : - 'quay.io/biocontainers/bowtie2:2.4.4--py39hbb4e92a_0' }" + 'biocontainers/bowtie2:2.4.4--py39hbb4e92a_0' }" input: tuple val(meta), path(fasta) @@ -27,4 +27,16 @@ process BOWTIE2_BUILD { bowtie2: \$(echo \$(bowtie2 --version 2>&1) | sed 's/^.*bowtie2-align-s version //; s/ .*\$//') END_VERSIONS """ + + stub: + """ + mkdir bowtie2 + touch bowtie2/${fasta.baseName}.{1..4}.bt2 + touch bowtie2/${fasta.baseName}.rev.{1,2}.bt2 + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bowtie2: \$(echo \$(bowtie2 --version 2>&1) | sed 's/^.*bowtie2-align-s version //; s/ .*\$//') + END_VERSIONS + """ } diff --git a/modules/nf-core/bwa/index/main.nf b/modules/nf-core/bwa/index/main.nf index 7ccf3110..8d2e56d9 100644 --- a/modules/nf-core/bwa/index/main.nf +++ b/modules/nf-core/bwa/index/main.nf @@ -5,7 +5,7 @@ process BWA_INDEX { conda "bioconda::bwa=0.7.17" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/bwa:0.7.17--hed695b0_7' : - 'quay.io/biocontainers/bwa:0.7.17--hed695b0_7' }" + 'biocontainers/bwa:0.7.17--hed695b0_7' }" input: tuple val(meta), path(fasta) diff --git a/modules/nf-core/bwa/mem/main.nf b/modules/nf-core/bwa/mem/main.nf index cbf34c25..d2f85daf 100644 --- a/modules/nf-core/bwa/mem/main.nf +++ b/modules/nf-core/bwa/mem/main.nf @@ -5,7 +5,7 @@ process BWA_MEM { conda "bioconda::bwa=0.7.17 bioconda::samtools=1.16.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:219b6c272b25e7e642ae3ff0bf0c5c81a5135ab4-0' : - 'quay.io/biocontainers/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:219b6c272b25e7e642ae3ff0bf0c5c81a5135ab4-0' }" + 'biocontainers/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:219b6c272b25e7e642ae3ff0bf0c5c81a5135ab4-0' }" input: tuple val(meta), path(reads) diff --git a/modules/nf-core/chromap/chromap/main.nf b/modules/nf-core/chromap/chromap/main.nf index 69a4bc1b..a39302e3 100644 --- a/modules/nf-core/chromap/chromap/main.nf +++ b/modules/nf-core/chromap/chromap/main.nf @@ -5,7 +5,7 @@ process CHROMAP_CHROMAP { conda "bioconda::chromap=0.2.4 bioconda::samtools=1.16.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/mulled-v2-1f09f39f20b1c4ee36581dc81cc323c70e661633:5b2e433ab8b3d1ef098fc944b567fd98caa23f56-0' : - 'quay.io/biocontainers/mulled-v2-1f09f39f20b1c4ee36581dc81cc323c70e661633:5b2e433ab8b3d1ef098fc944b567fd98caa23f56-0' }" + 'biocontainers/mulled-v2-1f09f39f20b1c4ee36581dc81cc323c70e661633:5b2e433ab8b3d1ef098fc944b567fd98caa23f56-0' }" input: tuple val(meta), path(reads) diff --git a/modules/nf-core/chromap/index/main.nf b/modules/nf-core/chromap/index/main.nf index 25ee6a7e..fb3773f8 100644 --- a/modules/nf-core/chromap/index/main.nf +++ b/modules/nf-core/chromap/index/main.nf @@ -5,7 +5,7 @@ process CHROMAP_INDEX { conda "bioconda::chromap=0.2.4" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/chromap:0.2.4--hd03093a_0' : - 'quay.io/biocontainers/chromap:0.2.4--hd03093a_0' }" + 'biocontainers/chromap:0.2.4--hd03093a_0' }" input: tuple val(meta), path(fasta) diff --git a/modules/nf-core/custom/dumpsoftwareversions/main.nf b/modules/nf-core/custom/dumpsoftwareversions/main.nf index 800a6099..ebc87273 100644 --- a/modules/nf-core/custom/dumpsoftwareversions/main.nf +++ b/modules/nf-core/custom/dumpsoftwareversions/main.nf @@ -5,7 +5,7 @@ process CUSTOM_DUMPSOFTWAREVERSIONS { conda "bioconda::multiqc=1.14" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/multiqc:1.14--pyhdfd78af_0' : - 'quay.io/biocontainers/multiqc:1.14--pyhdfd78af_0' }" + 'biocontainers/multiqc:1.14--pyhdfd78af_0' }" input: path versions diff --git a/modules/nf-core/custom/dumpsoftwareversions/meta.yml b/modules/nf-core/custom/dumpsoftwareversions/meta.yml index 60b546a0..c32657de 100644 --- a/modules/nf-core/custom/dumpsoftwareversions/meta.yml +++ b/modules/nf-core/custom/dumpsoftwareversions/meta.yml @@ -1,7 +1,9 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/yaml-schema.json name: custom_dumpsoftwareversions description: Custom module used to dump software versions within the nf-core pipeline template keywords: - custom + - dump - version tools: - custom: diff --git a/modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py b/modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py old mode 100644 new mode 100755 diff --git a/modules/nf-core/custom/getchromsizes/main.nf b/modules/nf-core/custom/getchromsizes/main.nf index 580f87fe..060a2e88 100644 --- a/modules/nf-core/custom/getchromsizes/main.nf +++ b/modules/nf-core/custom/getchromsizes/main.nf @@ -5,7 +5,7 @@ process CUSTOM_GETCHROMSIZES { conda "bioconda::samtools=1.16.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/samtools:1.16.1--h6899075_1' : - 'quay.io/biocontainers/samtools:1.16.1--h6899075_1' }" + 'biocontainers/samtools:1.16.1--h6899075_1' }" input: tuple val(meta), path(fasta) diff --git a/modules/nf-core/deeptools/computematrix/main.nf b/modules/nf-core/deeptools/computematrix/main.nf index 024b8797..e77e2839 100644 --- a/modules/nf-core/deeptools/computematrix/main.nf +++ b/modules/nf-core/deeptools/computematrix/main.nf @@ -5,7 +5,7 @@ process DEEPTOOLS_COMPUTEMATRIX { conda "bioconda::deeptools=3.5.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/deeptools:3.5.1--py_0' : - 'quay.io/biocontainers/deeptools:3.5.1--py_0' }" + 'biocontainers/deeptools:3.5.1--py_0' }" input: tuple val(meta), path(bigwig) diff --git a/modules/nf-core/deeptools/plotfingerprint/main.nf b/modules/nf-core/deeptools/plotfingerprint/main.nf index 233b3bae..3159e941 100644 --- a/modules/nf-core/deeptools/plotfingerprint/main.nf +++ b/modules/nf-core/deeptools/plotfingerprint/main.nf @@ -5,7 +5,7 @@ process DEEPTOOLS_PLOTFINGERPRINT { conda "bioconda::deeptools=3.5.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/deeptools:3.5.1--py_0' : - 'quay.io/biocontainers/deeptools:3.5.1--py_0' }" + 'biocontainers/deeptools:3.5.1--py_0' }" input: tuple val(meta), path(bams), path(bais) diff --git a/modules/nf-core/deeptools/plotheatmap/main.nf b/modules/nf-core/deeptools/plotheatmap/main.nf index 3b171b73..58309eea 100644 --- a/modules/nf-core/deeptools/plotheatmap/main.nf +++ b/modules/nf-core/deeptools/plotheatmap/main.nf @@ -5,7 +5,7 @@ process DEEPTOOLS_PLOTHEATMAP { conda "bioconda::deeptools=3.5.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/deeptools:3.5.1--py_0' : - 'quay.io/biocontainers/deeptools:3.5.1--py_0' }" + 'biocontainers/deeptools:3.5.1--py_0' }" input: tuple val(meta), path(matrix) diff --git a/modules/nf-core/deeptools/plotprofile/main.nf b/modules/nf-core/deeptools/plotprofile/main.nf index b5fa57df..b1ab454d 100644 --- a/modules/nf-core/deeptools/plotprofile/main.nf +++ b/modules/nf-core/deeptools/plotprofile/main.nf @@ -5,7 +5,7 @@ process DEEPTOOLS_PLOTPROFILE { conda "bioconda::deeptools=3.5.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/deeptools:3.5.1--py_0' : - 'quay.io/biocontainers/deeptools:3.5.1--py_0' }" + 'biocontainers/deeptools:3.5.1--py_0' }" input: tuple val(meta), path(matrix) diff --git a/modules/nf-core/fastqc/main.nf b/modules/nf-core/fastqc/main.nf index 9ae58381..07d5e433 100644 --- a/modules/nf-core/fastqc/main.nf +++ b/modules/nf-core/fastqc/main.nf @@ -5,7 +5,7 @@ process FASTQC { conda "bioconda::fastqc=0.11.9" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/fastqc:0.11.9--0' : - 'quay.io/biocontainers/fastqc:0.11.9--0' }" + 'biocontainers/fastqc:0.11.9--0' }" input: tuple val(meta), path(reads) diff --git a/modules/nf-core/gffread/main.nf b/modules/nf-core/gffread/main.nf index b1a8996f..f4472b0e 100644 --- a/modules/nf-core/gffread/main.nf +++ b/modules/nf-core/gffread/main.nf @@ -5,7 +5,7 @@ process GFFREAD { conda "bioconda::gffread=0.12.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/gffread:0.12.1--h8b12597_0' : - 'quay.io/biocontainers/gffread:0.12.1--h8b12597_0' }" + 'biocontainers/gffread:0.12.1--h8b12597_0' }" input: path gff diff --git a/modules/nf-core/gunzip/main.nf b/modules/nf-core/gunzip/main.nf index d906034c..e7189d2f 100644 --- a/modules/nf-core/gunzip/main.nf +++ b/modules/nf-core/gunzip/main.nf @@ -5,7 +5,7 @@ process GUNZIP { conda "conda-forge::sed=4.7" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/ubuntu:20.04' : - 'ubuntu:20.04' }" + 'nf-core/ubuntu:20.04' }" input: tuple val(meta), path(archive) diff --git a/modules/nf-core/gunzip/meta.yml b/modules/nf-core/gunzip/meta.yml index 2e0e4054..4cdcdf4c 100644 --- a/modules/nf-core/gunzip/meta.yml +++ b/modules/nf-core/gunzip/meta.yml @@ -3,6 +3,7 @@ description: Compresses and decompresses files. keywords: - gunzip - compression + - decompression tools: - gunzip: description: | diff --git a/modules/nf-core/homer/annotatepeaks/main.nf b/modules/nf-core/homer/annotatepeaks/main.nf index 865ad81c..cfc140f5 100644 --- a/modules/nf-core/homer/annotatepeaks/main.nf +++ b/modules/nf-core/homer/annotatepeaks/main.nf @@ -6,7 +6,7 @@ process HOMER_ANNOTATEPEAKS { conda "bioconda::homer=4.11" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/homer:4.11--pl526hc9558a2_3' : - 'quay.io/biocontainers/homer:4.11--pl526hc9558a2_3' }" + 'biocontainers/homer:4.11--pl526hc9558a2_3' }" input: tuple val(meta), path(peak) diff --git a/modules/nf-core/khmer/uniquekmers/main.nf b/modules/nf-core/khmer/uniquekmers/main.nf index 02746ae1..9576034f 100644 --- a/modules/nf-core/khmer/uniquekmers/main.nf +++ b/modules/nf-core/khmer/uniquekmers/main.nf @@ -5,7 +5,7 @@ process KHMER_UNIQUEKMERS { conda "bioconda::khmer=3.0.0a3" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/khmer:3.0.0a3--py37haa7609a_2' : - 'quay.io/biocontainers/khmer:3.0.0a3--py37haa7609a_2' }" + 'biocontainers/khmer:3.0.0a3--py37haa7609a_2' }" input: path fasta diff --git a/modules/nf-core/macs2/callpeak/main.nf b/modules/nf-core/macs2/callpeak/main.nf index feca0425..cbef7838 100644 --- a/modules/nf-core/macs2/callpeak/main.nf +++ b/modules/nf-core/macs2/callpeak/main.nf @@ -5,7 +5,7 @@ process MACS2_CALLPEAK { conda "bioconda::macs2=2.2.7.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/macs2:2.2.7.1--py38h4a8c8d9_3' : - 'quay.io/biocontainers/macs2:2.2.7.1--py38h4a8c8d9_3' }" + 'biocontainers/macs2:2.2.7.1--py38h4a8c8d9_3' }" input: tuple val(meta), path(ipbam), path(controlbam) diff --git a/modules/nf-core/multiqc/main.nf b/modules/nf-core/multiqc/main.nf index 4b604749..1fc387be 100644 --- a/modules/nf-core/multiqc/main.nf +++ b/modules/nf-core/multiqc/main.nf @@ -4,7 +4,7 @@ process MULTIQC { conda "bioconda::multiqc=1.14" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/multiqc:1.14--pyhdfd78af_0' : - 'quay.io/biocontainers/multiqc:1.14--pyhdfd78af_0' }" + 'biocontainers/multiqc:1.14--pyhdfd78af_0' }" input: path multiqc_files, stageAs: "?/*" diff --git a/modules/nf-core/multiqc/meta.yml b/modules/nf-core/multiqc/meta.yml index ebc29b27..f93b5ee5 100644 --- a/modules/nf-core/multiqc/meta.yml +++ b/modules/nf-core/multiqc/meta.yml @@ -1,3 +1,4 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/yaml-schema.json name: MultiQC description: Aggregate results from bioinformatics analyses across many samples into a single report keywords: @@ -37,7 +38,7 @@ output: description: MultiQC report file pattern: "multiqc_report.html" - data: - type: dir + type: directory description: MultiQC data dir pattern: "multiqc_data" - plots: diff --git a/modules/nf-core/phantompeakqualtools/main.nf b/modules/nf-core/phantompeakqualtools/main.nf index 27daac4c..edcdf2ce 100644 --- a/modules/nf-core/phantompeakqualtools/main.nf +++ b/modules/nf-core/phantompeakqualtools/main.nf @@ -6,7 +6,7 @@ process PHANTOMPEAKQUALTOOLS { conda "bioconda::phantompeakqualtools=1.2.2" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/phantompeakqualtools:1.2.2--0' : - 'quay.io/biocontainers/phantompeakqualtools:1.2.2--0' }" + 'biocontainers/phantompeakqualtools:1.2.2--0' }" input: tuple val(meta), path(bam) diff --git a/modules/nf-core/picard/collectmultiplemetrics/main.nf b/modules/nf-core/picard/collectmultiplemetrics/main.nf index ed88dbe7..91fe9170 100644 --- a/modules/nf-core/picard/collectmultiplemetrics/main.nf +++ b/modules/nf-core/picard/collectmultiplemetrics/main.nf @@ -5,7 +5,7 @@ process PICARD_COLLECTMULTIPLEMETRICS { conda "bioconda::picard=3.0.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/picard:3.0.0--hdfd78af_1' : - 'quay.io/biocontainers/picard:3.0.0--hdfd78af_1' }" + 'biocontainers/picard:3.0.0--hdfd78af_1' }" input: tuple val(meta) , path(bam), path(bai) diff --git a/modules/nf-core/picard/markduplicates/main.nf b/modules/nf-core/picard/markduplicates/main.nf index 1fe6ee2d..facd7efb 100644 --- a/modules/nf-core/picard/markduplicates/main.nf +++ b/modules/nf-core/picard/markduplicates/main.nf @@ -5,12 +5,12 @@ process PICARD_MARKDUPLICATES { conda "bioconda::picard=3.0.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/picard:3.0.0--hdfd78af_1' : - 'quay.io/biocontainers/picard:3.0.0--hdfd78af_1' }" + 'biocontainers/picard:3.0.0--hdfd78af_1' }" input: tuple val(meta), path(bam) - path fasta - path fai + tuple val(meta2), path(fasta) + tuple val(meta3), path(fai) output: tuple val(meta), path("*.bam") , emit: bam diff --git a/modules/nf-core/picard/markduplicates/meta.yml b/modules/nf-core/picard/markduplicates/meta.yml index 3f2357bb..f7693d2f 100644 --- a/modules/nf-core/picard/markduplicates/meta.yml +++ b/modules/nf-core/picard/markduplicates/meta.yml @@ -25,10 +25,20 @@ input: type: file description: BAM file pattern: "*.{bam,cram,sam}" + - meta2: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'genome' ] - fasta: type: file description: Reference genome fasta file pattern: "*.{fasta,fa}" + - meta3: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'genome' ] - fai: type: file description: Reference genome fasta index @@ -58,3 +68,4 @@ output: authors: - "@drpatelh" - "@projectoriented" + - "@ramprasadn" diff --git a/modules/nf-core/picard/mergesamfiles/main.nf b/modules/nf-core/picard/mergesamfiles/main.nf index ff8d2f17..fc23ea01 100644 --- a/modules/nf-core/picard/mergesamfiles/main.nf +++ b/modules/nf-core/picard/mergesamfiles/main.nf @@ -5,7 +5,7 @@ process PICARD_MERGESAMFILES { conda "bioconda::picard=3.0.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/picard:3.0.0--hdfd78af_1' : - 'quay.io/biocontainers/picard:3.0.0--hdfd78af_1' }" + 'biocontainers/picard:3.0.0--hdfd78af_1' }" input: tuple val(meta), path(bams) diff --git a/modules/nf-core/preseq/lcextrap/main.nf b/modules/nf-core/preseq/lcextrap/main.nf index 38275910..12546f0a 100644 --- a/modules/nf-core/preseq/lcextrap/main.nf +++ b/modules/nf-core/preseq/lcextrap/main.nf @@ -6,7 +6,7 @@ process PRESEQ_LCEXTRAP { conda "bioconda::preseq=3.1.2" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/preseq:3.1.2--h445547b_2': - 'quay.io/biocontainers/preseq:3.1.2--h445547b_2' }" + 'biocontainers/preseq:3.1.2--h445547b_2' }" input: tuple val(meta), path(bam) diff --git a/modules/nf-core/samtools/flagstat/main.nf b/modules/nf-core/samtools/flagstat/main.nf index 2120cd7d..eb7e72fc 100644 --- a/modules/nf-core/samtools/flagstat/main.nf +++ b/modules/nf-core/samtools/flagstat/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_FLAGSTAT { tag "$meta.id" label 'process_single' - conda "bioconda::samtools=1.16.1" + conda "bioconda::samtools=1.17" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.16.1--h6899075_1' : - 'quay.io/biocontainers/samtools:1.16.1--h6899075_1' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.17--h00cdaf9_0' : + 'biocontainers/samtools:1.17--h00cdaf9_0' }" input: tuple val(meta), path(bam), path(bai) diff --git a/modules/nf-core/samtools/idxstats/main.nf b/modules/nf-core/samtools/idxstats/main.nf index a7b87d8b..a257d700 100644 --- a/modules/nf-core/samtools/idxstats/main.nf +++ b/modules/nf-core/samtools/idxstats/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_IDXSTATS { tag "$meta.id" label 'process_single' - conda "bioconda::samtools=1.16.1" + conda "bioconda::samtools=1.17" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.16.1--h6899075_1' : - 'quay.io/biocontainers/samtools:1.16.1--h6899075_1' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.17--h00cdaf9_0' : + 'biocontainers/samtools:1.17--h00cdaf9_0' }" input: tuple val(meta), path(bam), path(bai) diff --git a/modules/nf-core/samtools/index/main.nf b/modules/nf-core/samtools/index/main.nf index 8b95687a..0b20aa4b 100644 --- a/modules/nf-core/samtools/index/main.nf +++ b/modules/nf-core/samtools/index/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_INDEX { tag "$meta.id" label 'process_low' - conda "bioconda::samtools=1.16.1" + conda "bioconda::samtools=1.17" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.16.1--h6899075_1' : - 'quay.io/biocontainers/samtools:1.16.1--h6899075_1' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.17--h00cdaf9_0' : + 'biocontainers/samtools:1.17--h00cdaf9_0' }" input: tuple val(meta), path(input) diff --git a/modules/nf-core/samtools/sort/main.nf b/modules/nf-core/samtools/sort/main.nf index 84c167cd..2b7753fd 100644 --- a/modules/nf-core/samtools/sort/main.nf +++ b/modules/nf-core/samtools/sort/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_SORT { tag "$meta.id" label 'process_medium' - conda "bioconda::samtools=1.16.1" + conda "bioconda::samtools=1.17" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.16.1--h6899075_1' : - 'quay.io/biocontainers/samtools:1.16.1--h6899075_1' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.17--h00cdaf9_0' : + 'biocontainers/samtools:1.17--h00cdaf9_0' }" input: tuple val(meta), path(bam) @@ -23,7 +23,13 @@ process SAMTOOLS_SORT { def prefix = task.ext.prefix ?: "${meta.id}" if ("$bam" == "${prefix}.bam") error "Input and output names are the same, use \"task.ext.prefix\" to disambiguate!" """ - samtools sort $args -@ $task.cpus -o ${prefix}.bam -T $prefix $bam + samtools sort \\ + $args \\ + -@ $task.cpus \\ + -o ${prefix}.bam \\ + -T $prefix \\ + $bam + cat <<-END_VERSIONS > versions.yml "${task.process}": samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') diff --git a/modules/nf-core/samtools/stats/main.nf b/modules/nf-core/samtools/stats/main.nf index 0a2a3640..4a2607de 100644 --- a/modules/nf-core/samtools/stats/main.nf +++ b/modules/nf-core/samtools/stats/main.nf @@ -2,14 +2,14 @@ process SAMTOOLS_STATS { tag "$meta.id" label 'process_single' - conda "bioconda::samtools=1.16.1" + conda "bioconda::samtools=1.17" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.16.1--h6899075_1' : - 'quay.io/biocontainers/samtools:1.16.1--h6899075_1' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.17--h00cdaf9_0' : + 'biocontainers/samtools:1.17--h00cdaf9_0' }" input: tuple val(meta), path(input), path(input_index) - path fasta + tuple val(meta2), path(fasta) output: tuple val(meta), path("*.stats"), emit: stats diff --git a/modules/nf-core/samtools/stats/meta.yml b/modules/nf-core/samtools/stats/meta.yml index 1d68a5d8..90e6345f 100644 --- a/modules/nf-core/samtools/stats/meta.yml +++ b/modules/nf-core/samtools/stats/meta.yml @@ -30,9 +30,14 @@ input: type: file description: BAI/CRAI file from alignment pattern: "*.{bai,crai}" + - meta2: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'genome' ] - fasta: - type: optional file - description: Reference file the CRAM was created with + type: file + description: Reference file the CRAM was created with (optional) pattern: "*.{fasta,fa}" output: - meta: @@ -51,3 +56,4 @@ output: authors: - "@drpatelh" - "@FriederikeHanssen" + - "@ramprasadn" diff --git a/modules/nf-core/subread/featurecounts/main.nf b/modules/nf-core/subread/featurecounts/main.nf index cbc833fe..a524b92f 100644 --- a/modules/nf-core/subread/featurecounts/main.nf +++ b/modules/nf-core/subread/featurecounts/main.nf @@ -5,7 +5,7 @@ process SUBREAD_FEATURECOUNTS { conda "bioconda::subread=2.0.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/subread:2.0.1--hed695b0_0' : - 'quay.io/biocontainers/subread:2.0.1--hed695b0_0' }" + 'biocontainers/subread:2.0.1--hed695b0_0' }" input: tuple val(meta), path(bams), path(annotation) diff --git a/modules/nf-core/trimgalore/main.nf b/modules/nf-core/trimgalore/main.nf index dc295784..dcb77ae7 100644 --- a/modules/nf-core/trimgalore/main.nf +++ b/modules/nf-core/trimgalore/main.nf @@ -5,7 +5,7 @@ process TRIMGALORE { conda "bioconda::trim-galore=0.6.7" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/trim-galore:0.6.7--hdfd78af_0' : - 'quay.io/biocontainers/trim-galore:0.6.7--hdfd78af_0' }" + 'biocontainers/trim-galore:0.6.7--hdfd78af_0' }" input: tuple val(meta), path(reads) diff --git a/modules/nf-core/ucsc/bedgraphtobigwig/main.nf b/modules/nf-core/ucsc/bedgraphtobigwig/main.nf index defda3ef..054924e7 100644 --- a/modules/nf-core/ucsc/bedgraphtobigwig/main.nf +++ b/modules/nf-core/ucsc/bedgraphtobigwig/main.nf @@ -6,7 +6,7 @@ process UCSC_BEDGRAPHTOBIGWIG { conda "bioconda::ucsc-bedgraphtobigwig=377" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/ucsc-bedgraphtobigwig:377--h446ed27_1' : - 'quay.io/biocontainers/ucsc-bedgraphtobigwig:377--h446ed27_1' }" + 'biocontainers/ucsc-bedgraphtobigwig:377--h446ed27_1' }" input: tuple val(meta), path(bedgraph) diff --git a/modules/nf-core/umitools/extract/main.nf b/modules/nf-core/umitools/extract/main.nf index 64fdd367..2f94fa93 100644 --- a/modules/nf-core/umitools/extract/main.nf +++ b/modules/nf-core/umitools/extract/main.nf @@ -6,7 +6,7 @@ process UMITOOLS_EXTRACT { conda "bioconda::umi_tools=1.1.4" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/umi_tools:1.1.4--py38hbff2b2d_1' : - 'quay.io/biocontainers/umi_tools:1.1.4--py38hbff2b2d_1' }" + 'biocontainers/umi_tools:1.1.4--py38hbff2b2d_1' }" input: tuple val(meta), path(reads) diff --git a/modules/nf-core/untar/main.nf b/modules/nf-core/untar/main.nf index 3384847a..8cd1856c 100644 --- a/modules/nf-core/untar/main.nf +++ b/modules/nf-core/untar/main.nf @@ -5,7 +5,7 @@ process UNTAR { conda "conda-forge::sed=4.7 bioconda::grep=3.4 conda-forge::tar=1.34" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/ubuntu:20.04' : - 'ubuntu:20.04' }" + 'nf-core/ubuntu:20.04' }" input: tuple val(meta), path(archive) diff --git a/modules/nf-core/untar/meta.yml b/modules/nf-core/untar/meta.yml index ea7a3f38..db241a6e 100644 --- a/modules/nf-core/untar/meta.yml +++ b/modules/nf-core/untar/meta.yml @@ -3,6 +3,7 @@ description: Extract files. keywords: - untar - uncompress + - extract tools: - untar: description: | diff --git a/modules/nf-core/untarfiles/main.nf b/modules/nf-core/untarfiles/main.nf index 8bca09d0..59111b5f 100644 --- a/modules/nf-core/untarfiles/main.nf +++ b/modules/nf-core/untarfiles/main.nf @@ -5,7 +5,7 @@ process UNTARFILES { conda "conda-forge::sed=4.7 bioconda::grep=3.4 conda-forge::tar=1.34" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/ubuntu:20.04' : - 'ubuntu:20.04' }" + 'nf-core/ubuntu:20.04' }" input: tuple val(meta), path(archive) diff --git a/modules/nf-core/untarfiles/meta.yml b/modules/nf-core/untarfiles/meta.yml index e89aa3d6..098490fa 100644 --- a/modules/nf-core/untarfiles/meta.yml +++ b/modules/nf-core/untarfiles/meta.yml @@ -3,6 +3,7 @@ description: Extract files. keywords: - untar - uncompress + - files tools: - untar: description: | @@ -26,7 +27,7 @@ output: Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - files: - type: list + type: string description: A list containing references to individual archive files pattern: "*/**" - versions: diff --git a/subworkflows/nf-core/bam_markduplicates_picard/main.nf b/subworkflows/nf-core/bam_markduplicates_picard/main.nf index 6e3df332..3725ea95 100644 --- a/subworkflows/nf-core/bam_markduplicates_picard/main.nf +++ b/subworkflows/nf-core/bam_markduplicates_picard/main.nf @@ -17,7 +17,7 @@ workflow BAM_MARKDUPLICATES_PICARD { ch_versions = Channel.empty() - PICARD_MARKDUPLICATES ( ch_bam, ch_fasta, ch_fai ) + PICARD_MARKDUPLICATES ( ch_bam, ch_fasta.map { [ [:], it ] }, ch_fai.map { [ [:], it ] } ) ch_versions = ch_versions.mix(PICARD_MARKDUPLICATES.out.versions.first()) SAMTOOLS_INDEX ( PICARD_MARKDUPLICATES.out.bam ) diff --git a/subworkflows/nf-core/bam_markduplicates_picard/meta.yml b/subworkflows/nf-core/bam_markduplicates_picard/meta.yml index 822c6132..d5e71609 100644 --- a/subworkflows/nf-core/bam_markduplicates_picard/meta.yml +++ b/subworkflows/nf-core/bam_markduplicates_picard/meta.yml @@ -1,3 +1,4 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/subworkflows/yaml-schema.json name: "bam_markduplicates_picard" description: Picard MarkDuplicates, index BAM file and run samtools stats, flagstat and idxstats keywords: diff --git a/subworkflows/nf-core/bam_sort_stats_samtools/main.nf b/subworkflows/nf-core/bam_sort_stats_samtools/main.nf index 617871fe..fc1c652b 100644 --- a/subworkflows/nf-core/bam_sort_stats_samtools/main.nf +++ b/subworkflows/nf-core/bam_sort_stats_samtools/main.nf @@ -9,7 +9,7 @@ include { BAM_STATS_SAMTOOLS } from '../bam_stats_samtools/main' workflow BAM_SORT_STATS_SAMTOOLS { take: ch_bam // channel: [ val(meta), [ bam ] ] - ch_fasta // channel: [ fasta ] + ch_fasta // channel: [ val(meta), path(fasta) ] main: diff --git a/subworkflows/nf-core/bam_sort_stats_samtools/meta.yml b/subworkflows/nf-core/bam_sort_stats_samtools/meta.yml index 131065be..8dfbd58d 100644 --- a/subworkflows/nf-core/bam_sort_stats_samtools/meta.yml +++ b/subworkflows/nf-core/bam_sort_stats_samtools/meta.yml @@ -1,3 +1,4 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/subworkflows/yaml-schema.json name: bam_sort_stats_samtools description: Sort SAM/BAM/CRAM file keywords: diff --git a/subworkflows/nf-core/bam_stats_samtools/main.nf b/subworkflows/nf-core/bam_stats_samtools/main.nf index c9d7c8b7..e80ce43a 100644 --- a/subworkflows/nf-core/bam_stats_samtools/main.nf +++ b/subworkflows/nf-core/bam_stats_samtools/main.nf @@ -9,12 +9,12 @@ include { SAMTOOLS_FLAGSTAT } from '../../../modules/nf-core/samtools/flagstat/m workflow BAM_STATS_SAMTOOLS { take: ch_bam_bai // channel: [ val(meta), path(bam), path(bai) ] - ch_fasta // channel: [ path(fasta) ] + ch_fasta // channel: [ val(meta), path(fasta) ] main: ch_versions = Channel.empty() - SAMTOOLS_STATS ( ch_bam_bai, ch_fasta ) + SAMTOOLS_STATS ( ch_bam_bai, ch_fasta.map { [ [:], it ] } ) ch_versions = ch_versions.mix(SAMTOOLS_STATS.out.versions) SAMTOOLS_FLAGSTAT ( ch_bam_bai ) diff --git a/subworkflows/nf-core/bam_stats_samtools/meta.yml b/subworkflows/nf-core/bam_stats_samtools/meta.yml index b6072686..b05086bc 100644 --- a/subworkflows/nf-core/bam_stats_samtools/meta.yml +++ b/subworkflows/nf-core/bam_stats_samtools/meta.yml @@ -1,3 +1,4 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/subworkflows/yaml-schema.json name: bam_stats_samtools description: Produces comprehensive statistics from SAM/BAM/CRAM file keywords: diff --git a/subworkflows/nf-core/fastq_align_bowtie2/main.nf b/subworkflows/nf-core/fastq_align_bowtie2/main.nf index eaf4ac5e..e77cb2c4 100644 --- a/subworkflows/nf-core/fastq_align_bowtie2/main.nf +++ b/subworkflows/nf-core/fastq_align_bowtie2/main.nf @@ -26,11 +26,11 @@ workflow FASTQ_ALIGN_BOWTIE2 { // // Sort, index BAM file and run samtools stats, flagstat and idxstats // - BAM_SORT_STATS_SAMTOOLS ( BOWTIE2_ALIGN.out.bam, ch_fasta ) + BAM_SORT_STATS_SAMTOOLS ( BOWTIE2_ALIGN.out.aligned, ch_fasta ) ch_versions = ch_versions.mix(BAM_SORT_STATS_SAMTOOLS.out.versions) emit: - bam_orig = BOWTIE2_ALIGN.out.bam // channel: [ val(meta), bam ] + bam_orig = BOWTIE2_ALIGN.out.aligned // channel: [ val(meta), bam ] log_out = BOWTIE2_ALIGN.out.log // channel: [ val(meta), log ] fastq = BOWTIE2_ALIGN.out.fastq // channel: [ val(meta), fastq ] diff --git a/subworkflows/nf-core/fastq_align_bwa/meta.yml b/subworkflows/nf-core/fastq_align_bwa/meta.yml index 03f84860..548fec3f 100644 --- a/subworkflows/nf-core/fastq_align_bwa/meta.yml +++ b/subworkflows/nf-core/fastq_align_bwa/meta.yml @@ -1,3 +1,4 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/subworkflows/yaml-schema.json name: fastq_align_bwa description: Align reads to a reference genome using bwa then sort with samtools keywords: diff --git a/subworkflows/nf-core/fastq_align_chromap/main.nf b/subworkflows/nf-core/fastq_align_chromap/main.nf index 9d706c98..26b6a4be 100644 --- a/subworkflows/nf-core/fastq_align_chromap/main.nf +++ b/subworkflows/nf-core/fastq_align_chromap/main.nf @@ -27,7 +27,7 @@ workflow FASTQ_ALIGN_CHROMAP { // // Sort, index BAM file and run samtools stats, flagstat and idxstats // - BAM_SORT_STATS_SAMTOOLS(CHROMAP_CHROMAP.out.bam, ch_fasta.map { it[1] }) + BAM_SORT_STATS_SAMTOOLS(CHROMAP_CHROMAP.out.bam, ch_fasta) ch_versions = ch_versions.mix(BAM_SORT_STATS_SAMTOOLS.out.versions) emit: diff --git a/subworkflows/nf-core/fastq_align_chromap/meta.yml b/subworkflows/nf-core/fastq_align_chromap/meta.yml index 6d701bce..d5f59cac 100644 --- a/subworkflows/nf-core/fastq_align_chromap/meta.yml +++ b/subworkflows/nf-core/fastq_align_chromap/meta.yml @@ -1,3 +1,4 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/subworkflows/yaml-schema.json name: "fastq_align_chromap" description: Align high throughput chromatin profiles using Chromap then sort with samtools keywords: diff --git a/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/meta.yml b/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/meta.yml index b05004d4..3b1a675c 100644 --- a/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/meta.yml +++ b/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/meta.yml @@ -1,3 +1,4 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/subworkflows/yaml-schema.json name: "fastq_fastqc_umitools_trimgalore" description: Read QC, UMI extraction and trimming keywords: @@ -49,12 +50,12 @@ input: output: - reads: - type: file - description: > - Extracted FASTQ files. | - For single-end reads, pattern is \${prefix}.umi_extract.fastq.gz. | - For paired-end reads, pattern is \${prefix}.umi_extract_{1,2}.fastq.gz. - pattern: "*.{fastq.gz}" + type: file + description: > + Extracted FASTQ files. | + For single-end reads, pattern is \${prefix}.umi_extract.fastq.gz. | + For paired-end reads, pattern is \${prefix}.umi_extract_{1,2}.fastq.gz. + pattern: "*.{fastq.gz}" - fastqc_html: type: file description: FastQC report From ea4517b6ab146f1749f1422a843e70bad85b6cb9 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Fri, 23 Jun 2023 08:17:33 +0200 Subject: [PATCH 088/201] Run prettier for modules --- modules.json | 185 ++++++++++++--------------------------------------- 1 file changed, 43 insertions(+), 142 deletions(-) diff --git a/modules.json b/modules.json index f781edf2..68895b20 100644 --- a/modules.json +++ b/modules.json @@ -8,259 +8,177 @@ "bowtie2/align": { "branch": "master", "git_sha": "fe54581f8bed20e4c4a51c616c93fd3379d89820", - "installed_by": [ - "modules", - "fastq_align_bowtie2" - ] + "installed_by": ["modules", "fastq_align_bowtie2"] }, "bowtie2/build": { "branch": "master", "git_sha": "6a24fbe314bb2e6fe6306c29a63076ea87e8eb3c", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "bwa/index": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "bwa/mem": { "branch": "master", "git_sha": "603ecbd9f45300c9788f197d2a15a005685b4220", - "installed_by": [ - "modules", - "fastq_align_bwa" - ] + "installed_by": ["modules", "fastq_align_bwa"] }, "chromap/chromap": { "branch": "master", "git_sha": "603ecbd9f45300c9788f197d2a15a005685b4220", - "installed_by": [ - "modules", - "fastq_align_chromap" - ] + "installed_by": ["modules", "fastq_align_chromap"] }, "chromap/index": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "custom/dumpsoftwareversions": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "custom/getchromsizes": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "deeptools/computematrix": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "deeptools/plotfingerprint": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "deeptools/plotheatmap": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "deeptools/plotprofile": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "fastqc": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "fastq_fastqc_umitools_trimgalore", - "modules" - ] + "installed_by": ["fastq_fastqc_umitools_trimgalore", "modules"] }, "gffread": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "gunzip": { "branch": "master", "git_sha": "5c460c5a4736974abde2843294f35307ee2b0e5e", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "homer/annotatepeaks": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "khmer/uniquekmers": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "macs2/callpeak": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "multiqc": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "phantompeakqualtools": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "picard/collectmultiplemetrics": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "picard/markduplicates": { "branch": "master", "git_sha": "735e1e04e7e01751d2d6e97055bbdb6f70683cc1", - "installed_by": [ - "modules", - "bam_markduplicates_picard" - ] + "installed_by": ["modules", "bam_markduplicates_picard"] }, "picard/mergesamfiles": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "preseq/lcextrap": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "samtools/flagstat": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules", - "bam_stats_samtools" - ] + "installed_by": ["modules", "bam_stats_samtools"] }, "samtools/idxstats": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules", - "bam_stats_samtools" - ] + "installed_by": ["modules", "bam_stats_samtools"] }, "samtools/index": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules", - "bam_markduplicates_picard", - "bam_sort_stats_samtools" - ] + "installed_by": ["modules", "bam_markduplicates_picard", "bam_sort_stats_samtools"] }, "samtools/sort": { "branch": "master", "git_sha": "a0f7be95788366c1923171e358da7d049eb440f9", - "installed_by": [ - "modules", - "bam_sort_stats_samtools" - ] + "installed_by": ["modules", "bam_sort_stats_samtools"] }, "samtools/stats": { "branch": "master", "git_sha": "735e1e04e7e01751d2d6e97055bbdb6f70683cc1", - "installed_by": [ - "modules", - "bam_stats_samtools" - ] + "installed_by": ["modules", "bam_stats_samtools"] }, "subread/featurecounts": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "trimgalore": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "fastq_fastqc_umitools_trimgalore", - "modules" - ] + "installed_by": ["fastq_fastqc_umitools_trimgalore", "modules"] }, "ucsc/bedgraphtobigwig": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "umitools/extract": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "fastq_fastqc_umitools_trimgalore" - ] + "installed_by": ["fastq_fastqc_umitools_trimgalore"] }, "untar": { "branch": "master", "git_sha": "5c460c5a4736974abde2843294f35307ee2b0e5e", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "untarfiles": { "branch": "master", "git_sha": "5c460c5a4736974abde2843294f35307ee2b0e5e", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] } } }, @@ -269,57 +187,40 @@ "bam_markduplicates_picard": { "branch": "master", "git_sha": "a9784afdd5dcda23b84e64db75dc591065d64653", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "bam_sort_stats_samtools": { "branch": "master", "git_sha": "735e1e04e7e01751d2d6e97055bbdb6f70683cc1", - "installed_by": [ - "fastq_align_bowtie2", - "fastq_align_chromap", - "fastq_align_bwa" - ] + "installed_by": ["fastq_align_bowtie2", "fastq_align_chromap", "fastq_align_bwa"] }, "bam_stats_samtools": { "branch": "master", "git_sha": "735e1e04e7e01751d2d6e97055bbdb6f70683cc1", - "installed_by": [ - "bam_sort_stats_samtools", - "bam_markduplicates_picard" - ] + "installed_by": ["bam_sort_stats_samtools", "bam_markduplicates_picard"] }, "fastq_align_bowtie2": { "branch": "master", "git_sha": "ac75f79157ecc64283a2b3a559f1ba90bc0f2259", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "fastq_align_bwa": { "branch": "master", "git_sha": "a9784afdd5dcda23b84e64db75dc591065d64653", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "fastq_align_chromap": { "branch": "master", "git_sha": "735e1e04e7e01751d2d6e97055bbdb6f70683cc1", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "fastq_fastqc_umitools_trimgalore": { "branch": "master", "git_sha": "a9784afdd5dcda23b84e64db75dc591065d64653", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] } } } } } -} \ No newline at end of file +} From 6bff0a93ef720e3ea32a66f76d8a287db1d6eefa Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Fri, 23 Jun 2023 08:37:17 +0200 Subject: [PATCH 089/201] Update changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2c9b7821..5b6c2fb9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,7 +30,7 @@ Note, since the pipeline is now using Nextflow DSL2, each process will be run wi | `chromap` | 0.2.1 | 0.2.4 | | `multiqc` | 1.13 | 1.14 | | `picard` | 2.27.4 | 3.0.0 | -| `samtools` | 1.15.1 | 1.16.1 | +| `samtools` | 1.15.1 | 1.17 | > **NB:** Dependency has been **updated** if both old and new version information is present. > **NB:** Dependency has been **added** if just the new version information is present. From 0e90e764c567b566a5991774f53b145c58570170 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Fri, 23 Jun 2023 09:14:59 +0200 Subject: [PATCH 090/201] Fix fasta input for chromap --- workflows/chipseq.nf | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index fc914a51..33303160 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -215,10 +215,7 @@ workflow CHIPSEQ { FASTQ_ALIGN_CHROMAP ( FASTQ_FASTQC_UMITOOLS_TRIMGALORE.out.reads, PREPARE_GENOME.out.chromap_index, - PREPARE_GENOME.out.fasta - .map { - [ [:], it ] - }, + PREPARE_GENOME.out.fasta, [], [], [], From 4c2fcf36e9685e234d0557176f77881e9257b406 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Fri, 23 Jun 2023 09:22:55 +0200 Subject: [PATCH 091/201] Fix issue with fasta (needs map in some instances and not in some others) --- .../nf-core/fastq_align_chromap/main.nf | 2 +- workflows/chipseq.nf | 29 +++++++------------ 2 files changed, 11 insertions(+), 20 deletions(-) diff --git a/subworkflows/nf-core/fastq_align_chromap/main.nf b/subworkflows/nf-core/fastq_align_chromap/main.nf index 26b6a4be..9d706c98 100644 --- a/subworkflows/nf-core/fastq_align_chromap/main.nf +++ b/subworkflows/nf-core/fastq_align_chromap/main.nf @@ -27,7 +27,7 @@ workflow FASTQ_ALIGN_CHROMAP { // // Sort, index BAM file and run samtools stats, flagstat and idxstats // - BAM_SORT_STATS_SAMTOOLS(CHROMAP_CHROMAP.out.bam, ch_fasta) + BAM_SORT_STATS_SAMTOOLS(CHROMAP_CHROMAP.out.bam, ch_fasta.map { it[1] }) ch_versions = ch_versions.mix(BAM_SORT_STATS_SAMTOOLS.out.versions) emit: diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index 33303160..bdf5783f 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -215,7 +215,10 @@ workflow CHIPSEQ { FASTQ_ALIGN_CHROMAP ( FASTQ_FASTQC_UMITOOLS_TRIMGALORE.out.reads, PREPARE_GENOME.out.chromap_index, - PREPARE_GENOME.out.fasta, + PREPARE_GENOME.out.fasta + .map { + [ [:], it ] + }, [], [], [], @@ -420,19 +423,11 @@ workflow CHIPSEQ { .set { ch_genome_bam_bai } ch_genome_bam_bai + .combine(ch_genome_bam_bai) .map { - meta, bam, bai -> - meta.control ? null : [ meta.id, [ bam ] , [ bai ] ] + meta1, bam1, bai1, meta2, bam2, bai2 -> + meta1.control == meta2.id ? [ meta1, [ bam1, bam2 ], [ bai1, bai2 ] ] : null } - .set { ch_control_bam_bai } - - ch_genome_bam_bai - .map { - meta, bam, bai -> - meta.control ? [ meta.control, meta, [ bam ], [ bai ] ] : null - } - .combine(ch_control_bam_bai, by: 0) - .map { it -> [ it[1] , it[2] + it[4], it[3] + it[5] ] } .set { ch_ip_control_bam_bai } // @@ -487,10 +482,7 @@ workflow CHIPSEQ { MACS2_CALLPEAK .out .peak - .filter { - meta, peaks -> - peaks.size() > 0 - } + .filter { meta, peaks -> peaks.size() > 0 } .set { ch_macs2_peaks } // Create channels: [ meta, ip_bam, peaks ] @@ -572,7 +564,7 @@ workflow CHIPSEQ { ch_deseq2_clustering_multiqc = Channel.empty() if (!params.skip_consensus_peaks) { // Create channels: [ meta , [ peaks ] ] - // Where meta = [ id:antibody, multiple_groups:true/false, replicates_exist:true/false ] + // Where meta = [ id:antibody, multiple_groups:true/false, replicates_exist:true/false ] ch_macs2_peaks .map { meta, peak -> @@ -601,8 +593,7 @@ workflow CHIPSEQ { // MODULE: Generate consensus peaks across samples // MACS2_CONSENSUS ( - ch_antibody_peaks, - params.narrow_peak + ch_antibody_peaks ) ch_macs2_consensus_bed_lib = MACS2_CONSENSUS.out.bed ch_macs2_consensus_txt_lib = MACS2_CONSENSUS.out.txt From 6331a76450e2ea196d0efad73629413ab016e822 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Fri, 23 Jun 2023 09:59:17 +0200 Subject: [PATCH 092/201] Pass narrow peak parameter to macs2_consensus --- workflows/chipseq.nf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index bdf5783f..363f9de0 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -593,7 +593,8 @@ workflow CHIPSEQ { // MODULE: Generate consensus peaks across samples // MACS2_CONSENSUS ( - ch_antibody_peaks + ch_antibody_peaks, + params.narrow_peak ) ch_macs2_consensus_bed_lib = MACS2_CONSENSUS.out.bed ch_macs2_consensus_txt_lib = MACS2_CONSENSUS.out.txt From 81c26f11f76fd589511772c84f25011856cbec52 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Fri, 23 Jun 2023 10:46:16 +0200 Subject: [PATCH 093/201] Revert changes in chipseq pushed by mistake --- workflows/chipseq.nf | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index 363f9de0..fc914a51 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -423,11 +423,19 @@ workflow CHIPSEQ { .set { ch_genome_bam_bai } ch_genome_bam_bai - .combine(ch_genome_bam_bai) .map { - meta1, bam1, bai1, meta2, bam2, bai2 -> - meta1.control == meta2.id ? [ meta1, [ bam1, bam2 ], [ bai1, bai2 ] ] : null + meta, bam, bai -> + meta.control ? null : [ meta.id, [ bam ] , [ bai ] ] } + .set { ch_control_bam_bai } + + ch_genome_bam_bai + .map { + meta, bam, bai -> + meta.control ? [ meta.control, meta, [ bam ], [ bai ] ] : null + } + .combine(ch_control_bam_bai, by: 0) + .map { it -> [ it[1] , it[2] + it[4], it[3] + it[5] ] } .set { ch_ip_control_bam_bai } // @@ -482,7 +490,10 @@ workflow CHIPSEQ { MACS2_CALLPEAK .out .peak - .filter { meta, peaks -> peaks.size() > 0 } + .filter { + meta, peaks -> + peaks.size() > 0 + } .set { ch_macs2_peaks } // Create channels: [ meta, ip_bam, peaks ] @@ -564,7 +575,7 @@ workflow CHIPSEQ { ch_deseq2_clustering_multiqc = Channel.empty() if (!params.skip_consensus_peaks) { // Create channels: [ meta , [ peaks ] ] - // Where meta = [ id:antibody, multiple_groups:true/false, replicates_exist:true/false ] + // Where meta = [ id:antibody, multiple_groups:true/false, replicates_exist:true/false ] ch_macs2_peaks .map { meta, peak -> From 1d995677435274aff97d43b2ef77191344e5bfd2 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Fri, 23 Jun 2023 11:51:17 +0200 Subject: [PATCH 094/201] Make fasta available through IGV run --- conf/modules.config | 16 ++++++++++------ modules/local/igv.nf | 1 + subworkflows/local/prepare_genome.nf | 6 ------ 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/conf/modules.config b/conf/modules.config index 06a1e5a6..2d57aa3a 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -718,12 +718,16 @@ if (!params.skip_igv) { process { withName: 'IGV' { publishDir = [ - path: { [ - "${params.outdir}/igv", - params.narrow_peak? '/narrowPeak' : '/broadPeak' - ].join('') }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + [ + path: { "${params.outdir}/igv/${params.narrow_peak? '/narrowPeak' : '/broadPeak' }" }, + mode: params.publish_dir_mode, + pattern: '*.{txt,xml}' + ], + [ + path: { "${params.outdir}/genome" }, + mode: params.publish_dir_mode, + pattern: '*.{fa,fasta}' + ] ] } } diff --git a/modules/local/igv.nf b/modules/local/igv.nf index 59a2d2e8..f1f24325 100644 --- a/modules/local/igv.nf +++ b/modules/local/igv.nf @@ -20,6 +20,7 @@ process IGV { output: path "*files.txt" , emit: txt path "*.xml" , emit: xml + path fasta , emit: fasta path "versions.yml", emit: versions script: // scripts are bundled with the pipeline in nf-core/chipseq/bin/ diff --git a/subworkflows/local/prepare_genome.nf b/subworkflows/local/prepare_genome.nf index dd16e1f5..b67b12c5 100644 --- a/subworkflows/local/prepare_genome.nf +++ b/subworkflows/local/prepare_genome.nf @@ -44,12 +44,6 @@ workflow PREPARE_GENOME { ch_fasta = file(params.fasta) } - // Make fasta file available if reference saved or IGV is run - if (params.save_reference || !params.skip_igv) { - file("${params.outdir}/genome/").mkdirs() - ch_fasta.copyTo("${params.outdir}/genome/") - } - // // Uncompress GTF annotation file or create from GFF3 if required // From c21f05e16170b217a59df737a3ba63a7d84e04b7 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Fri, 23 Jun 2023 12:47:14 +0200 Subject: [PATCH 095/201] Fix blacklist and other instances where a parameter is used to create a channel --- subworkflows/local/prepare_genome.nf | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/subworkflows/local/prepare_genome.nf b/subworkflows/local/prepare_genome.nf index b67b12c5..4520b61e 100644 --- a/subworkflows/local/prepare_genome.nf +++ b/subworkflows/local/prepare_genome.nf @@ -41,7 +41,8 @@ workflow PREPARE_GENOME { ch_fasta = GUNZIP_FASTA ( [ [:], params.fasta ] ).gunzip.map{ it[1] } ch_versions = ch_versions.mix(GUNZIP_FASTA.out.versions) } else { - ch_fasta = file(params.fasta) + // ch_fasta = file(params.fasta) + ch_fasta = Channel.value(file(params.fasta)) } // @@ -101,14 +102,15 @@ workflow PREPARE_GENOME { ch_gene_bed = GUNZIP_GENE_BED ( [ [:], params.gene_bed ] ).gunzip.map{ it[1] } ch_versions = ch_versions.mix(GUNZIP_GENE_BED.out.versions) } else { - ch_gene_bed = file(params.gene_bed) + ch_gene_bed = Channel.value(file(params.gene_bed)) } } // // Create chromosome sizes file // - ch_chrom_sizes = CUSTOM_GETCHROMSIZES ( [ [:], ch_fasta ] ).sizes.map{ it[1] } + CUSTOM_GETCHROMSIZES ( ch_fasta.map { [ [:], it ] } ) + ch_chrom_sizes = CUSTOM_GETCHROMSIZES.out.sizes.map { it[1] } ch_fai = CUSTOM_GETCHROMSIZES.out.fai.map{ it[1] } ch_versions = ch_versions.mix(CUSTOM_GETCHROMSIZES.out.versions) @@ -138,7 +140,7 @@ workflow PREPARE_GENOME { ch_bwa_index = file(params.bwa_index) } } else { - ch_bwa_index = BWA_INDEX ( [ [:], ch_fasta ] ).index + ch_bwa_index = BWA_INDEX ( ch_fasta.map { [ [:], it ] } ).index ch_versions = ch_versions.mix(BWA_INDEX.out.versions) } } @@ -156,7 +158,7 @@ workflow PREPARE_GENOME { ch_bowtie2_index = [ [:], file(params.bowtie2_index) ] } } else { - ch_bowtie2_index = BOWTIE2_BUILD ( [ [:], ch_fasta ] ).index + ch_bowtie2_index = BOWTIE2_BUILD ( ch_fasta.map { [ [:], it ] } ).index ch_versions = ch_versions.mix(BOWTIE2_BUILD.out.versions) } } @@ -174,7 +176,7 @@ workflow PREPARE_GENOME { ch_chromap_index = [ [:], file(params.chromap_index) ] } } else { - ch_chromap_index = CHROMAP_INDEX ( [ [:], ch_fasta ] ).index + ch_chromap_index = CHROMAP_INDEX ( ch_fasta.map { [ [:], it ] } ).index ch_versions = ch_versions.mix(CHROMAP_INDEX.out.versions) } } @@ -189,7 +191,7 @@ workflow PREPARE_GENOME { ch_star_index = UNTAR_STAR_INDEX ( [ [:], params.star_index ] ).untar.map{ it[1] } ch_versions = ch_versions.mix(UNTAR_STAR_INDEX.out.versions) } else { - ch_star_index = file(params.star_index) + ch_star_index = Channel.value(file(params.star_index)) } } else { ch_star_index = STAR_GENOMEGENERATE ( ch_fasta, ch_gtf ).index From 77aac1df868210c379f59b9ce21aeaac6ff19516 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Fri, 23 Jun 2023 14:08:35 +0200 Subject: [PATCH 096/201] Remove commented line --- subworkflows/local/prepare_genome.nf | 1 - 1 file changed, 1 deletion(-) diff --git a/subworkflows/local/prepare_genome.nf b/subworkflows/local/prepare_genome.nf index 4520b61e..bd7033cb 100644 --- a/subworkflows/local/prepare_genome.nf +++ b/subworkflows/local/prepare_genome.nf @@ -41,7 +41,6 @@ workflow PREPARE_GENOME { ch_fasta = GUNZIP_FASTA ( [ [:], params.fasta ] ).gunzip.map{ it[1] } ch_versions = ch_versions.mix(GUNZIP_FASTA.out.versions) } else { - // ch_fasta = file(params.fasta) ch_fasta = Channel.value(file(params.fasta)) } From 05ab0543a450455c0080f5b8c00a461374b3be8c Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Fri, 23 Jun 2023 14:20:24 +0200 Subject: [PATCH 097/201] Remove parameter narrow_peak from plot_macs2_qc --- modules/local/plot_macs2_qc.nf | 2 +- workflows/chipseq.nf | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/local/plot_macs2_qc.nf b/modules/local/plot_macs2_qc.nf index 92f400d5..6a06e355 100644 --- a/modules/local/plot_macs2_qc.nf +++ b/modules/local/plot_macs2_qc.nf @@ -16,7 +16,7 @@ process PLOT_MACS2_QC { script: // This script is bundled with the pipeline, in nf-core/chipseq/bin/ def args = task.ext.args ?: '' - def peak_type = params.narrow_peak ? 'narrowPeak' : 'broadPeak' + def peak_type = is_narrow_peak ? 'narrowPeak' : 'broadPeak' """ plot_macs2_qc.r \\ -i ${peaks.join(',')} \\ diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index fc914a51..ec966a8d 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -549,7 +549,8 @@ workflow CHIPSEQ { // MODULE: MACS2 QC plots with R // PLOT_MACS2_QC ( - ch_macs2_peaks.collect{it[1]} + ch_macs2_peaks.collect{it[1]}, + is_narrow_peak ) ch_versions = ch_versions.mix(PLOT_MACS2_QC.out.versions) From 4c484fba4ef502830e680d0760fd127bb82fb946 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Fri, 23 Jun 2023 17:39:40 +0200 Subject: [PATCH 098/201] Remove first not necessary --- workflows/chipseq.nf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index ec966a8d..43694c60 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -205,7 +205,7 @@ workflow CHIPSEQ { ch_samtools_stats = FASTQ_ALIGN_BOWTIE2.out.stats ch_samtools_flagstat = FASTQ_ALIGN_BOWTIE2.out.flagstat ch_samtools_idxstats = FASTQ_ALIGN_BOWTIE2.out.idxstats - ch_versions = ch_versions.mix(FASTQ_ALIGN_BOWTIE2.out.versions.first()) + ch_versions = ch_versions.mix(FASTQ_ALIGN_BOWTIE2.out.versions) } // @@ -229,7 +229,7 @@ workflow CHIPSEQ { ch_samtools_stats = FASTQ_ALIGN_CHROMAP.out.stats ch_samtools_flagstat = FASTQ_ALIGN_CHROMAP.out.flagstat ch_samtools_idxstats = FASTQ_ALIGN_CHROMAP.out.idxstats - ch_versions = ch_versions.mix(FASTQ_ALIGN_CHROMAP.out.versions.first()) + ch_versions = ch_versions.mix(FASTQ_ALIGN_CHROMAP.out.versions) } // @@ -274,7 +274,7 @@ workflow CHIPSEQ { PICARD_MERGESAMFILES ( ch_sort_bam ) - ch_versions = ch_versions.mix(PICARD_MERGESAMFILES.out.versions.first().ifEmpty(null)) + ch_versions = ch_versions.mix(PICARD_MERGESAMFILES.out.versions.first()) // // SUBWORKFLOW: Mark duplicates & filter BAM files after merging From e88fdcdcf2748b56d0b2fbd7b43e9c696937f579 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Mon, 26 Jun 2023 08:26:53 +0200 Subject: [PATCH 099/201] Fix typo --- workflows/chipseq.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index 43694c60..01ff8545 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -550,7 +550,7 @@ workflow CHIPSEQ { // PLOT_MACS2_QC ( ch_macs2_peaks.collect{it[1]}, - is_narrow_peak + params.narrow_peak ) ch_versions = ch_versions.mix(PLOT_MACS2_QC.out.versions) From 5bb757de74fbc0f7f1ad5182f1c6a01e4180623e Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Mon, 26 Jun 2023 08:49:22 +0200 Subject: [PATCH 100/201] Add is_narrow_peak to plot_macs2_qc --- modules/local/plot_macs2_qc.nf | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/local/plot_macs2_qc.nf b/modules/local/plot_macs2_qc.nf index 6a06e355..2915b739 100644 --- a/modules/local/plot_macs2_qc.nf +++ b/modules/local/plot_macs2_qc.nf @@ -8,6 +8,7 @@ process PLOT_MACS2_QC { input: path peaks + val is_narrow_peak output: path '*.txt' , emit: txt From cc578b6452b64d360d4ad28353c0eba0dcce0ecc Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Mon, 26 Jun 2023 18:53:48 +0200 Subject: [PATCH 101/201] Add ext.when, remove params to local modules and rearrange modules config --- conf/modules.config | 188 ++++++++---------- modules/local/bam_remove_orphans.nf | 3 + modules/local/bedtools_genomecov.nf | 6 +- modules/local/deseq2_qc.nf | 8 +- modules/local/frip_score.nf | 3 + modules/local/genome_blacklist_regions.nf | 3 + modules/local/gtf2bed.nf | 3 + modules/local/igv.nf | 3 + modules/local/multiqc.nf | 3 + modules/local/multiqc_custom_peaks.nf | 3 + .../multiqc_custom_phantompeakqualtools.nf | 3 + modules/local/plot_homer_annotatepeaks.nf | 3 + modules/local/plot_macs2_qc.nf | 3 + modules/local/samplesheet_check.nf | 2 +- modules/local/star_genomegenerate.nf | 3 + 15 files changed, 124 insertions(+), 113 deletions(-) diff --git a/conf/modules.config b/conf/modules.config index 2d57aa3a..a112e27d 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -21,7 +21,8 @@ process { saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] - withName: 'NFCORE_CHIPSEQ:CHIPSEQ:INPUT_CHECK:SAMPLESHEET_CHECK' { + withName: 'SAMPLESHEET_CHECK' { + ext.args = 'samplesheet.valid.csv' publishDir = [ path: { "${params.outdir}/pipeline_info" }, mode: params.publish_dir_mode, @@ -36,6 +37,10 @@ process { pattern: '*_versions.yml' ] } + + withName: 'KHMER_UNIQUEKMERS' { + publishDir = [ enabled: false ] + } } // @@ -62,7 +67,7 @@ process { ] } - withName: 'BWA_INDEX|BOWTIE2_BUILD|STAR_GENOMEGENERATE' { + withName: 'BWA_INDEX|BOWTIE2_BUILD|STAR_GENOMEGENERATE|CHROMAP_INDEX' { publishDir = [ path: { "${params.outdir}/genome/index" }, mode: params.publish_dir_mode, @@ -71,15 +76,6 @@ process { ] } - withName: 'UNTAR_CHROMAP_INDEX|CHROMAP_INDEX' { - publishDir = [ - path: { "${params.outdir}/genome/index/chromap" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, - enabled: params.save_reference - ] - } - withName: 'GFFREAD' { ext.args = '--keep-exon-attrs -F -T' publishDir = [ @@ -111,7 +107,8 @@ process { publishDir = [ path: { "${params.outdir}/genome" }, mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, + enabled: params.save_reference ] } } @@ -258,6 +255,14 @@ if (params.aligner == 'bowtie2') { if (params.aligner == 'chromap') { process { + withName: 'CHROMAP_INDEX' { + publishDir = [ + path: { "${params.outdir}/genome/${params.aligner}/index" }, + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + } + withName: CHROMAP_CHROMAP { ext.args = '-l 2000 --low-mem --SAM' ext.prefix = { "${meta.id}.Lb" } @@ -311,7 +316,12 @@ process { withName: 'PICARD_MERGESAMFILES' { ext.args = '--SORT_ORDER coordinate --VALIDATION_STRINGENCY LENIENT --TMP_DIR tmp' ext.prefix = { "${meta.id}.mLb.sorted" } - publishDir = [ enabled: false ] + publishDir = [ + path: { "${params.outdir}/${params.aligner}/merged_library" }, + mode: params.publish_dir_mode, + pattern: '*.bam', + enabled: params.save_align_intermeds + ] } withName: '.*:BAM_MARKDUPLICATES_PICARD:PICARD_MARKDUPLICATES' { @@ -350,7 +360,6 @@ process { ] } - // Should only be published when paired end data is used and save_align_intermeds is true withName: 'BAMTOOLS_FILTER' { ext.args = { [ @@ -359,34 +368,41 @@ process { params.keep_multi_map ? '' : '-q 1' ].join(' ').trim() } - ext.prefix = { meta.single_end ? "${meta.id}.mLb.noPublish" : "${meta.id}.mLb.flT.sorted" } //TODO check with atacseq + ext.prefix = { meta.single_end ? "${meta.id}.mLb.clN.sorted" : "${meta.id}.mLb.flT.sorted" } publishDir = [ - path: { "${params.outdir}/${params.aligner}/mergedLibrary" }, + path: { "${params.outdir}/${params.aligner}/merged_library" }, mode: params.publish_dir_mode, - pattern: '*.mLb.flT.sorted.bam', - enabled: params.save_align_intermeds + pattern: '*.bam', + saveAs: { (meta.single_end || params.save_align_intermeds) ? "${it}" : null } ] } withName: 'BAM_REMOVE_ORPHANS' { ext.args = '--only_fr_pairs' ext.prefix = { "${meta.id}.mLb.clN" } - publishDir = [ enabled: false ] + publishDir = [ + path: { "${params.outdir}/${params.aligner}/merged_library" }, + mode: params.publish_dir_mode, + pattern: '*.bam', + enabled: params.save_align_intermeds + ] } withName: 'NFCORE_CHIPSEQ:CHIPSEQ:BAM_FILTER_BAMTOOLS:SAMTOOLS_SORT' { - ext.prefix = { "${meta.id}.mLb.clN.sorted" } + ext.args = '-n' + ext.prefix = { "${meta.id}.mLb.flT.name_sorted" } publishDir = [ path: { "${params.outdir}/${params.aligner}/mergedLibrary" }, mode: params.publish_dir_mode, - pattern: '*.bam' + pattern: '*.bam', + enabled: params.save_align_intermeds ] } withName: 'NFCORE_CHIPSEQ:CHIPSEQ:BAM_FILTER_BAMTOOLS:SAMTOOLS_INDEX' { ext.prefix = { "${meta.id}.mLb.clN.sorted" } publishDir = [ - path: { "${params.outdir}/${params.aligner}/mergedLibrary" }, + path: { "${params.outdir}/${params.aligner}/merged_library" }, mode: params.publish_dir_mode, pattern: '*.{bai,csi}' ] @@ -395,7 +411,7 @@ process { withName: 'NFCORE_CHIPSEQ:CHIPSEQ:BAM_FILTER_BAMTOOLS:BAM_STATS_SAMTOOLS:.*' { ext.prefix = { "${meta.id}.mLb.clN.sorted.bam" } publishDir = [ - path: { "${params.outdir}/${params.aligner}/mergedLibrary/samtools_stats" }, + path: { "${params.outdir}/${params.aligner}/merged_library/samtools_stats" }, mode: params.publish_dir_mode, pattern: "*.{stats,flagstat,idxstats}" ] @@ -404,7 +420,7 @@ process { withName: 'PHANTOMPEAKQUALTOOLS' { ext.args2 = { "-p=$task.cpus" } publishDir = [ - path: { "${params.outdir}/${params.aligner}/mergedLibrary/phantompeakqualtools" }, + path: { "${params.outdir}/${params.aligner}/merged_library/phantompeakqualtools" }, mode: params.publish_dir_mode, pattern: "*.{out,pdf}" ] @@ -412,25 +428,37 @@ process { withName: 'MULTIQC_CUSTOM_PHANTOMPEAKQUALTOOLS' { publishDir = [ - path: { "${params.outdir}/${params.aligner}/mergedLibrary/phantompeakqualtools" }, + path: { "${params.outdir}/${params.aligner}/merged_library/phantompeakqualtools" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] } withName: 'BEDTOOLS_GENOMECOV' { - ext.prefix = { "${meta.id}" } + ext.args = { + [ + (meta.single_end && params.fragment_size > 0) ? "-fs ${params.fragment_size}" : '' + ].join(' ').trim() + } + ext.prefix = { "${meta.id}.mLB.clN" } publishDir = [ - path: { "${params.outdir}/${params.aligner}/mergedLibrary/bigwig/scale" }, - mode: params.publish_dir_mode, - pattern: "*.txt" + [ + path: { "${params.outdir}/${params.aligner}/merged_library/bigwig" }, + mode: params.publish_dir_mode, + pattern: "*.bigWig" + ], + [ + path: { "${params.outdir}/${params.aligner}/merged_library/bigwig/scale" }, + mode: params.publish_dir_mode, + pattern: "*.txt" + ] ] } withName: 'UCSC_BEDGRAPHTOBIGWIG' { - ext.prefix = { "${meta.id}" } + ext.prefix = { "${meta.id}..mLb.clN" } publishDir = [ - path: { "${params.outdir}/${params.aligner}/mergedLibrary/bigwig" }, + path: { "${params.outdir}/${params.aligner}/merged_library/bigwig" }, mode: params.publish_dir_mode, pattern: "*.bigWig" ] @@ -444,12 +472,12 @@ if (!params.skip_picard_metrics) { ext.prefix = { "${meta.id}.mLb.clN.sorted" } publishDir = [ [ - path: { "${params.outdir}/${params.aligner}/mergedLibrary/picard_metrics" }, + path: { "${params.outdir}/${params.aligner}/merged_library/picard_metrics" }, mode: params.publish_dir_mode, pattern: "*_metrics" ], [ - path: { "${params.outdir}/${params.aligner}/mergedLibrary/picard_metrics/pdf" }, + path: { "${params.outdir}/${params.aligner}/merged_library/picard_metrics/pdf" }, mode: params.publish_dir_mode, pattern: "*.pdf" ] @@ -462,9 +490,9 @@ if (!params.skip_preseq) { process { withName: 'PRESEQ_LCEXTRAP' { ext.args = '-verbose -bam -seed 1' - ext.prefix = { "${meta.id}.mLb.clN" } + ext.prefix = { "${meta.id}.mLb.mkD" } publishDir = [ - path: { "${params.outdir}/${params.aligner}/mergedLibrary/preseq" }, + path: { "${params.outdir}/${params.aligner}/merged_library/preseq" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -475,10 +503,10 @@ if (!params.skip_preseq) { if (!params.skip_plot_profile) { process { withName: 'DEEPTOOLS_COMPUTEMATRIX' { - ext.args = 'scale-regions --regionBodyLength 1000 --beforeRegionStartLength 3000 --afterRegionStartLength 3000 --skipZeros --smartLabels' + ext.args = 'scale-regions --regionBodyLength 1000 --beforeRegionStartLength 3000 --afterRegionStartLength 3000 --missingDataAsZero --skipZeros --smartLabels' ext.prefix = { "${meta.id}.mLb.clN" } publishDir = [ - path: { "${params.outdir}/${params.aligner}/mergedLibrary/deepTools/plotProfile" }, + path: { "${params.outdir}/${params.aligner}/merged_library/deepTools/plotProfile" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -487,7 +515,7 @@ if (!params.skip_plot_profile) { withName: 'DEEPTOOLS_PLOTPROFILE' { ext.prefix = { "${meta.id}.mLb.clN" } publishDir = [ - path: { "${params.outdir}/${params.aligner}/mergedLibrary/deepTools/plotProfile" }, + path: { "${params.outdir}/${params.aligner}/merged_library/deepTools/plotProfile" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -496,7 +524,7 @@ if (!params.skip_plot_profile) { withName: 'DEEPTOOLS_PLOTHEATMAP' { ext.prefix = { "${meta.id}.mLb.clN" } publishDir = [ - path: { "${params.outdir}/${params.aligner}/mergedLibrary/deepTools/plotProfile" }, + path: { "${params.outdir}/${params.aligner}/merged_library/deepTools/plotProfile" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -504,12 +532,6 @@ if (!params.skip_plot_profile) { } } -process { - withName: 'KHMER_UNIQUEKMERS' { - publishDir = [ enabled: false ] - } -} - if (!params.skip_plot_fingerprint) { process { withName: 'DEEPTOOLS_PLOTFINGERPRINT' { @@ -520,7 +542,7 @@ if (!params.skip_plot_fingerprint) { ].join(' ').trim() } ext.prefix = { "${meta.id}.mLb.clN" } publishDir = [ - path: { "${params.outdir}/${params.aligner}/mergedLibrary/deepTools/plotFingerprint" }, + path: { "${params.outdir}/${params.aligner}/merged_library/deepTools/plotFingerprint" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -536,11 +558,11 @@ process { params.save_macs_pileup ? '--bdg --SPMR' : '', params.macs_fdr ? "--qvalue ${params.macs_fdr}" : '', params.macs_pvalue ? "--pvalue ${params.macs_pvalue}" : '', - params.aligner == "chromap" ? "--format BAM" : '' + params.aligner == "chromap" ? "--format BAM" : '' //TODO check if not needed anymore with new chromap versions ].join(' ').trim() publishDir = [ path: { [ - "${params.outdir}/${params.aligner}/mergedLibrary/macs2", + "${params.outdir}/${params.aligner}/merged_library/macs2", params.narrow_peak? '/narrowPeak' : '/broadPeak' ].join('') }, mode: params.publish_dir_mode, @@ -551,22 +573,14 @@ process { withName: 'FRIP_SCORE' { ext.args = '-bed -c -f 0.20' publishDir = [ - path: { [ - "${params.outdir}/${params.aligner}/mergedLibrary/macs2", - params.narrow_peak? '/narrowPeak' : '/broadPeak', - '/qc' - ].join('') }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrowPeak' : '/broadPeak'}/qc" }, enabled: false ] } withName: 'MULTIQC_CUSTOM_PEAKS' { publishDir = [ - path: { [ - "${params.outdir}/${params.aligner}/mergedLibrary/macs2", - params.narrow_peak? '/narrowPeak' : '/broadPeak', - '/qc' - ].join('') }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak} ? '/narrowPeak' : '/broadPeak'}/qc" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -579,10 +593,7 @@ if (!params.skip_peak_annotation) { ext.args = '-gid' ext.prefix = { "${meta.id}_peaks" } publishDir = [ - path: { [ - "${params.outdir}/${params.aligner}/mergedLibrary/macs2", - params.narrow_peak? '/narrowPeak' : '/broadPeak' - ].join('') }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrowPeak' : '/broadPeak' }" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -594,11 +605,7 @@ if (!params.skip_peak_annotation) { withName: 'PLOT_MACS2_QC' { ext.args = '-o ./ -p macs2_peak' publishDir = [ - path: { [ - "${params.outdir}/${params.aligner}/mergedLibrary/macs2", - params.narrow_peak? '/narrowPeak' : '/broadPeak', - '/qc' - ].join('') }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/qc" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -608,11 +615,7 @@ if (!params.skip_peak_annotation) { ext.args = '-o ./' ext.prefix = 'macs2_annotatePeaks' publishDir = [ - path: { [ - "${params.outdir}/${params.aligner}/mergedLibrary/macs2", - params.narrow_peak? '/narrowPeak' : '/broadPeak', - '/qc' - ].join('') }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs2/params.narrow_peak ? '/narrowPeak' : '/broadPeak'}/qc" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -627,12 +630,7 @@ if (!params.skip_consensus_peaks) { ext.when = { meta.multiple_groups || meta.replicates_exist } ext.prefix = { "${meta.id}.consensus_peaks" } publishDir = [ - path: { [ - "${params.outdir}/${params.aligner}/mergedLibrary/macs2", - params.narrow_peak? '/narrowPeak' : '/broadPeak', - '/consensus', - "/${meta.id}" - ].join('') }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrowPeak' : '/broadPeak'}/consensus/${meta.id}" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -642,12 +640,7 @@ if (!params.skip_consensus_peaks) { ext.args = '-F SAF -O --fracOverlap 0.2' ext.prefix = { "${meta.id}.consensus_peaks" } publishDir = [ - path: { [ - "${params.outdir}/${params.aligner}/mergedLibrary/macs2", - params.narrow_peak? '/narrowPeak' : '/broadPeak', - '/consensus', - "/${meta.id}" - ].join('') }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak? '/narrowPeak' : '/broadPeak'}/consensus/${meta.id}" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -660,12 +653,7 @@ if (!params.skip_consensus_peaks) { ext.args = '-gid' ext.prefix = { "${meta.id}.consensus_peaks" } publishDir = [ - path: { [ - "${params.outdir}/${params.aligner}/mergedLibrary/macs2", - params.narrow_peak? '/narrowPeak' : '/broadPeak', - '/consensus', - "/${meta.id}" - ].join('') }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrowPeak' : '/broadPeak'}/consensus/${meta.id}" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -674,12 +662,7 @@ if (!params.skip_consensus_peaks) { withName: 'ANNOTATE_BOOLEAN_PEAKS' { ext.prefix = { "${meta.id}.consensus_peaks" } publishDir = [ - path: { [ - "${params.outdir}/${params.aligner}/mergedLibrary/macs2", - params.narrow_peak? '/narrowPeak' : '/broadPeak', - '/consensus', - "/${meta.id}" - ].join('') }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrowPeak' : '/broadPeak'}/consensus/${meta.id}" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -699,13 +682,7 @@ if (!params.skip_consensus_peaks) { ].join(' ').trim() ext.prefix = { "${meta.id}.consensus_peaks" } publishDir = [ - path: { [ - "${params.outdir}/${params.aligner}/mergedLibrary/macs2", - params.narrow_peak? '/narrowPeak' : '/broadPeak', - '/consensus', - "/${meta.id}", - '/deseq2' - ].join('') }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrowPeak' : '/broadPeak'}/consensus/${meta.id}/deseq2" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -738,10 +715,7 @@ if (!params.skip_multiqc) { withName: 'MULTIQC' { ext.args = params.multiqc_title ? "--title \"$params.multiqc_title\"" : '' publishDir = [ - path: { [ - "${params.outdir}/multiqc", - params.narrow_peak? '/narrowPeak' : '/broadPeak' - ].join('') }, + path: { "${params.outdir}/multiqc/${params.narrow_peak ? '/narrowPeak' : '/broadPeak'}" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] diff --git a/modules/local/bam_remove_orphans.nf b/modules/local/bam_remove_orphans.nf index 95a56c60..d6e221aa 100644 --- a/modules/local/bam_remove_orphans.nf +++ b/modules/local/bam_remove_orphans.nf @@ -17,6 +17,9 @@ process BAM_REMOVE_ORPHANS { tuple val(meta), path("${prefix}.bam"), emit: bam path "versions.yml" , emit: versions + when: + task.ext.when == null || task.ext.when + script: // This script is bundled with the pipeline, in nf-core/chipseq/bin/ def args = task.ext.args ?: '' prefix = task.ext.prefix ?: "${meta.id}" diff --git a/modules/local/bedtools_genomecov.nf b/modules/local/bedtools_genomecov.nf index 2f38c06c..eb3d0dcc 100644 --- a/modules/local/bedtools_genomecov.nf +++ b/modules/local/bedtools_genomecov.nf @@ -15,11 +15,13 @@ process BEDTOOLS_GENOMECOV { tuple val(meta), path("*.txt") , emit: scale_factor path "versions.yml" , emit: versions + when: + task.ext.when == null || task.ext.when + script: + def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def pe = meta.single_end ? '' : '-pc' - def extend = (meta.single_end && params.fragment_size > 0) ? "-fs ${params.fragment_size}" : '' """ SCALE_FACTOR=\$(grep '[0-9] mapped (' $flagstat | awk '{print 1000000/\$1}') echo \$SCALE_FACTOR > ${prefix}.scale_factor.txt diff --git a/modules/local/deseq2_qc.nf b/modules/local/deseq2_qc.nf index fe389300..d9b96e11 100644 --- a/modules/local/deseq2_qc.nf +++ b/modules/local/deseq2_qc.nf @@ -26,10 +26,12 @@ process DESEQ2_QC { path "size_factors" , optional:true, emit: size_factors path "versions.yml" , emit: versions + when: + task.ext.when == null || task.ext.when + script: - def args = task.ext.args ?: '' - def peak_type = params.narrow_peak ? 'narrowPeak' : 'broadPeak' - def prefix = task.ext.prefix ?: "${meta.id}" + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" """ deseq2_qc.r \\ --count_file $counts \\ diff --git a/modules/local/frip_score.nf b/modules/local/frip_score.nf index ffcc6e2d..28133e0c 100644 --- a/modules/local/frip_score.nf +++ b/modules/local/frip_score.nf @@ -14,6 +14,9 @@ process FRIP_SCORE { tuple val(meta), path("*.txt"), emit: txt path "versions.yml" , emit: versions + when: + task.ext.when == null || task.ext.when + script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" diff --git a/modules/local/genome_blacklist_regions.nf b/modules/local/genome_blacklist_regions.nf index 4421fb6c..fcb8451c 100644 --- a/modules/local/genome_blacklist_regions.nf +++ b/modules/local/genome_blacklist_regions.nf @@ -17,6 +17,9 @@ process GENOME_BLACKLIST_REGIONS { path '*.bed' , emit: bed path "versions.yml", emit: versions + when: + task.ext.when == null || task.ext.when + script: def file_out = "${sizes.simpleName}.include_regions.bed" if (blacklist) { diff --git a/modules/local/gtf2bed.nf b/modules/local/gtf2bed.nf index 91e29062..8a8e7bf9 100644 --- a/modules/local/gtf2bed.nf +++ b/modules/local/gtf2bed.nf @@ -14,6 +14,9 @@ process GTF2BED { path '*.bed' , emit: bed path "versions.yml", emit: versions + when: + task.ext.when == null || task.ext.when + script: // This script is bundled with the pipeline, in nf-core/chipseq/bin/ """ gtf2bed \\ diff --git a/modules/local/igv.nf b/modules/local/igv.nf index f1f24325..cf02fd9e 100644 --- a/modules/local/igv.nf +++ b/modules/local/igv.nf @@ -23,6 +23,9 @@ process IGV { path fasta , emit: fasta path "versions.yml", emit: versions + when: + task.ext.when == null || task.ext.when + script: // scripts are bundled with the pipeline in nf-core/chipseq/bin/ def consensus_dir = "${aligner_dir}/mergedLibrary/macs2/${peak_dir}/consensus/*" """ diff --git a/modules/local/multiqc.nf b/modules/local/multiqc.nf index 31552551..d23d2cbe 100644 --- a/modules/local/multiqc.nf +++ b/modules/local/multiqc.nf @@ -56,6 +56,9 @@ process MULTIQC { path "*_plots" , optional:true, emit: plots path "versions.yml" , emit: versions + when: + task.ext.when == null || task.ext.when + script: def args = task.ext.args ?: '' def custom_config = params.multiqc_config ? "--config $mqc_custom_config" : '' diff --git a/modules/local/multiqc_custom_peaks.nf b/modules/local/multiqc_custom_peaks.nf index 8fabe949..c19d81a5 100644 --- a/modules/local/multiqc_custom_peaks.nf +++ b/modules/local/multiqc_custom_peaks.nf @@ -14,6 +14,9 @@ process MULTIQC_CUSTOM_PEAKS { tuple val(meta), path("*.peak_count_mqc.tsv"), emit: count tuple val(meta), path("*.FRiP_mqc.tsv") , emit: frip + when: + task.ext.when == null || task.ext.when + script: def prefix = task.ext.prefix ?: "${meta.id}" """ diff --git a/modules/local/multiqc_custom_phantompeakqualtools.nf b/modules/local/multiqc_custom_phantompeakqualtools.nf index c7f4127f..9e59d057 100644 --- a/modules/local/multiqc_custom_phantompeakqualtools.nf +++ b/modules/local/multiqc_custom_phantompeakqualtools.nf @@ -16,6 +16,9 @@ process MULTIQC_CUSTOM_PHANTOMPEAKQUALTOOLS { tuple val(meta), path("*.spp_rsc_mqc.tsv") , emit: rsc tuple val(meta), path("*.spp_correlation_mqc.tsv"), emit: correlation + when: + task.ext.when == null || task.ext.when + script: def prefix = task.ext.prefix ?: "${meta.id}" """ diff --git a/modules/local/plot_homer_annotatepeaks.nf b/modules/local/plot_homer_annotatepeaks.nf index eed17949..36c4730e 100644 --- a/modules/local/plot_homer_annotatepeaks.nf +++ b/modules/local/plot_homer_annotatepeaks.nf @@ -17,6 +17,9 @@ process PLOT_HOMER_ANNOTATEPEAKS { path '*.tsv' , emit: tsv path "versions.yml", emit: versions + when: + task.ext.when == null || task.ext.when + script: // This script is bundled with the pipeline, in nf-core/chipseq/bin/ def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "annotatepeaks" diff --git a/modules/local/plot_macs2_qc.nf b/modules/local/plot_macs2_qc.nf index 2915b739..7599c9f8 100644 --- a/modules/local/plot_macs2_qc.nf +++ b/modules/local/plot_macs2_qc.nf @@ -15,6 +15,9 @@ process PLOT_MACS2_QC { path '*.pdf' , emit: pdf path "versions.yml", emit: versions + when: + task.ext.when == null || task.ext.when + script: // This script is bundled with the pipeline, in nf-core/chipseq/bin/ def args = task.ext.args ?: '' def peak_type = is_narrow_peak ? 'narrowPeak' : 'broadPeak' diff --git a/modules/local/samplesheet_check.nf b/modules/local/samplesheet_check.nf index c28658f5..583c436f 100644 --- a/modules/local/samplesheet_check.nf +++ b/modules/local/samplesheet_check.nf @@ -21,7 +21,7 @@ process SAMPLESHEET_CHECK { """ check_samplesheet.py \\ $samplesheet \\ - samplesheet.valid.csv + $args cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/local/star_genomegenerate.nf b/modules/local/star_genomegenerate.nf index 904b0714..285df97c 100644 --- a/modules/local/star_genomegenerate.nf +++ b/modules/local/star_genomegenerate.nf @@ -16,6 +16,9 @@ process STAR_GENOMEGENERATE { path "star" , emit: index path "versions.yml", emit: versions + when: + task.ext.when == null || task.ext.when + script: def args = (task.ext.args ?: '').tokenize() def memory = task.memory ? "--limitGenomeGenerateRAM ${task.memory.toBytes() - 100000000}" : '' From eca2e06718df27dd1f7a74db5bf04fa9172f5c0c Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Mon, 26 Jun 2023 18:58:30 +0200 Subject: [PATCH 102/201] Fix typo --- modules/local/bedtools_genomecov.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/local/bedtools_genomecov.nf b/modules/local/bedtools_genomecov.nf index eb3d0dcc..28dcc5dd 100644 --- a/modules/local/bedtools_genomecov.nf +++ b/modules/local/bedtools_genomecov.nf @@ -32,7 +32,7 @@ process BEDTOOLS_GENOMECOV { -bg \\ -scale \$SCALE_FACTOR \\ $pe \\ - $extend \\ + $args \\ | sort -T '.' -k1,1 -k2,2n > ${prefix}.bedGraph cat <<-END_VERSIONS > versions.yml From 4aa413dec02fdbf3509ba90c38b7982bd3eb1e86 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Mon, 26 Jun 2023 19:36:31 +0200 Subject: [PATCH 103/201] Read args from samplesheet_check --- modules/local/samplesheet_check.nf | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/local/samplesheet_check.nf b/modules/local/samplesheet_check.nf index 583c436f..216e9fb7 100644 --- a/modules/local/samplesheet_check.nf +++ b/modules/local/samplesheet_check.nf @@ -18,6 +18,7 @@ process SAMPLESHEET_CHECK { task.ext.when == null || task.ext.when script: // This script is bundled with the pipeline, in nf-core/chipseq/bin/ + def args = task.ext.args ?: '' """ check_samplesheet.py \\ $samplesheet \\ From 4ab68b3201245fdf0f0df11bad556aa794cb9852 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Mon, 26 Jun 2023 23:15:09 +0200 Subject: [PATCH 104/201] Update output --- conf/modules.config | 4 ++-- docs/output.md | 30 +++++++++++++++--------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/conf/modules.config b/conf/modules.config index a112e27d..adb500b3 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -67,7 +67,7 @@ process { ] } - withName: 'BWA_INDEX|BOWTIE2_BUILD|STAR_GENOMEGENERATE|CHROMAP_INDEX' { + withName: 'BWA_INDEX|BOWTIE2_BUILD|STAR_GENOMEGENERATE' { publishDir = [ path: { "${params.outdir}/genome/index" }, mode: params.publish_dir_mode, @@ -257,7 +257,7 @@ if (params.aligner == 'chromap') { process { withName: 'CHROMAP_INDEX' { publishDir = [ - path: { "${params.outdir}/genome/${params.aligner}/index" }, + path: { "${params.outdir}/genome/index/${params.aligner}" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] diff --git a/docs/output.md b/docs/output.md index b3198554..065dcfd3 100644 --- a/docs/output.md +++ b/docs/output.md @@ -108,19 +108,19 @@ The library-level alignments associated with the same sample are merged and subs
    Output files -- `/mergedLibrary/` +- `/merged_library/` - `*.bam`: Merged library-level, coordinate sorted `*.bam` files after the marking of duplicates, and filtering based on various criteria. The file suffix for the final filtered files will be `*.mLb.clN.*`. If you specify the `--save_align_intermeds` parameter then two additional sets of files will be present. These represent the unfiltered alignments with duplicates marked (`*.mLb.mkD.*`), and in the case of paired-end datasets the filtered alignments before the removal of orphan read pairs (`*.mLb.flT.*`). -- `/mergedLibrary/samtools_stats/` +- `/merged_library/samtools_stats/` - SAMtools `*.flagstat`, `*.idxstats` and `*.stats` files generated from the alignment files. -- `/mergedLibrary/picard_metrics/` +- `/merged_library/picard_metrics/` - `*_metrics`: Alignment QC files from picard CollectMultipleMetrics. - `*.metrics.txt`: Metrics file from MarkDuplicates. -- `/mergedLibrary/picard_metrics/pdf/` +- `/merged_library/picard_metrics/pdf/` - `*.pdf`: Alignment QC plot files from picard CollectMultipleMetrics. -- `/mergedLibrary/preseq/` +- `/merged_library/preseq/` - `*.lc_extrap.txt`: Preseq expected future yield file. -> **NB:** File names in the resulting directory (i.e. `/mergedLibrary/`) will have the '`.mLb.`' suffix. +> **NB:** File names in the resulting directory (i.e. `/merged_library/`) will have the '`.mLb.`' suffix.
    @@ -141,7 +141,7 @@ The [Preseq](http://smithlabresearch.org/software/preseq/) package is aimed at p
    Output files -- `/mergedLibrary/bigwig/` +- `/merged_library/bigwig/` - `*.bigWig`: Normalised bigWig files scaled to 1 million mapped reads.
    @@ -153,12 +153,12 @@ The [bigWig](https://genome.ucsc.edu/goldenpath/help/bigWig.html) format is in a
    Output files -- `/mergedLibrary/phantompeakqualtools/` +- `/merged_library/phantompeakqualtools/` - `*.spp.out`, `*.spp.pdf`: phantompeakqualtools output files. - `*_mqc.tsv`: MultiQC custom content files. -- `/mergedLibrary/deepTools/plotFingerprint/` +- `/merged_library/deepTools/plotFingerprint/` - `*.plotFingerprint.pdf`, `*.plotFingerprint.qcmetrics.txt`, `*.plotFingerprint.raw.txt`: plotFingerprint output files. -- `/mergedLibrary/deepTools/plotProfile/` +- `/merged_library/deepTools/plotProfile/` - `*.computeMatrix.mat.gz`, `*.computeMatrix.vals.mat.tab`, `*.plotProfile.pdf`, `*.plotProfile.tab`, `*.plotHeatmap.pdf`, `*.plotHeatmap.mat.tab`: plotProfile output files.
    @@ -188,10 +188,10 @@ The results from deepTools plotProfile gives you a quick visualisation for the g
    Output files -- `/mergedLibrary/macs2//` +- `/merged_library/macs2//` - `*.xls`, `*.broadPeak` or `*.narrowPeak`, `*.gappedPeak`, `*summits.bed`: MACS2 output files - the files generated will depend on whether MACS2 has been run in _narrowPeak_ or _broadPeak_ mode. - `*.annotatePeaks.txt`: HOMER peak-to-gene annotation file. -- `/mergedLibrary/macs2//qc/` +- `/merged_library/macs2//qc/` - `macs2_peak.plots.pdf`: QC plots for MACS2 peaks. - `macs2_annotatePeaks.plots.pdf`: QC plots for peak-to-gene feature annotation. - `*.FRiP_mqc.tsv`, `*.peak_count_mqc.tsv`, `annotatepeaks.summary_mqc.tsv`: MultiQC custom-content files for FRiP score, peak count and peak-to-gene ratios. @@ -217,7 +217,7 @@ Various QC plots per sample including number of peaks, fold-change distribution,
    Output files -- `/mergedLibrary/macs2//consensus//` +- `/merged_library/macs2//consensus//` - `*.bed`: Consensus peak-set across all samples in BED format. - `*.saf`: Consensus peak-set across all samples in SAF format. Required by featureCounts for read quantification. - `*.featureCounts.txt`: Read counts across all samples relative to consensus peak-set. @@ -245,7 +245,7 @@ The [featureCounts](http://bioinf.wehi.edu.au/featureCounts/) tool is used to co
    Output files -- `/mergedLibrary/macs2//consensus//deseq2/` +- `/merged_library/macs2//consensus//deseq2/` - `*.sample.dists.txt`: Spreadsheet containing sample-to-sample distance across each consensus peak. - `*.plots.pdf`: File containing PCA and hierarchical clustering plots. - `*.dds.RData`: File containing R `DESeqDataSet` object generated by DESeq2, with either @@ -254,7 +254,7 @@ The [featureCounts](http://bioinf.wehi.edu.au/featureCounts/) tool is used to co `readRDS` to give user control of the eventual object name. - `*pca.vals.txt`: Matrix of values for the first 2 principal components. - `R_sessionInfo.log`: File containing information about R, the OS and attached or loaded packages. - - `/mergedLibrary/macs2//consensus//sizeFactors/` + - `/merged_library/macs2//consensus//sizeFactors/` - `*.txt`, `*.RData`: Files containing DESeq2 sizeFactors per sample.
    From 5d8b57061a572c54bce9e1ca8da4006cab21598a Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 27 Jun 2023 19:41:59 +0200 Subject: [PATCH 105/201] Apply review changes --- conf/modules.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/modules.config b/conf/modules.config index adb500b3..454f6dfa 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -456,7 +456,7 @@ process { } withName: 'UCSC_BEDGRAPHTOBIGWIG' { - ext.prefix = { "${meta.id}..mLb.clN" } + ext.prefix = { "${meta.id}.mLb.clN" } publishDir = [ path: { "${params.outdir}/${params.aligner}/merged_library/bigwig" }, mode: params.publish_dir_mode, From eb7c34941880971aad7ce9c5e994afa1a1577d56 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 27 Jun 2023 22:41:49 +0200 Subject: [PATCH 106/201] Apply review changes --- conf/modules.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/modules.config b/conf/modules.config index 454f6dfa..ffcbb614 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -438,7 +438,7 @@ process { ext.args = { [ (meta.single_end && params.fragment_size > 0) ? "-fs ${params.fragment_size}" : '' - ].join(' ').trim() + ].trim() } ext.prefix = { "${meta.id}.mLB.clN" } publishDir = [ From 0ae5d55703cb931a2d02cb539683c2e31b49b943 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 27 Jun 2023 23:19:57 +0200 Subject: [PATCH 107/201] Revert change --- conf/modules.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/modules.config b/conf/modules.config index ffcbb614..454f6dfa 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -438,7 +438,7 @@ process { ext.args = { [ (meta.single_end && params.fragment_size > 0) ? "-fs ${params.fragment_size}" : '' - ].trim() + ].join(' ').trim() } ext.prefix = { "${meta.id}.mLB.clN" } publishDir = [ From 2a5f3f4e5aa4129712dc1a5fa1979f1eddfb0977 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 28 Jun 2023 12:57:48 +0200 Subject: [PATCH 108/201] Get rid of unused list for ext.args --- conf/modules.config | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/conf/modules.config b/conf/modules.config index 454f6dfa..6b67b9aa 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -435,11 +435,7 @@ process { } withName: 'BEDTOOLS_GENOMECOV' { - ext.args = { - [ - (meta.single_end && params.fragment_size > 0) ? "-fs ${params.fragment_size}" : '' - ].join(' ').trim() - } + ext.args = { (meta.single_end && params.fragment_size > 0) ? "-fs ${params.fragment_size}" : '' } ext.prefix = { "${meta.id}.mLB.clN" } publishDir = [ [ From e437a7c8b33a03dd0629038a51912740254059da Mon Sep 17 00:00:00 2001 From: nf-core-bot Date: Fri, 30 Jun 2023 16:13:31 +0000 Subject: [PATCH 109/201] Template update for nf-core/tools version 2.9 --- .github/CONTRIBUTING.md | 1 - .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- .github/workflows/awsfulltest.yml | 11 +- .github/workflows/awstest.yml | 10 +- .github/workflows/ci.yml | 2 +- .gitpod.yml | 5 + CITATIONS.md | 6 + README.md | 6 +- assets/methods_description_template.yml | 12 +- assets/multiqc_config.yml | 4 +- assets/nf-core-chipseq_logo_light.png | Bin 10959 -> 73788 bytes assets/slackreport.json | 2 +- conf/test_full.config | 2 - docs/usage.md | 6 +- lib/NfcoreSchema.groovy | 530 ------------------------ lib/NfcoreTemplate.groovy | 2 +- lib/WorkflowChipseq.groovy | 45 +- lib/WorkflowMain.groovy | 37 -- main.nf | 16 + nextflow.config | 52 ++- nextflow_schema.json | 36 +- workflows/chipseq.nf | 25 +- 22 files changed, 175 insertions(+), 637 deletions(-) delete mode 100755 lib/NfcoreSchema.groovy diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 5d23c1d9..8c24b7f1 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -116,4 +116,3 @@ To get started: Devcontainer specs: - [DevContainer config](.devcontainer/devcontainer.json) -- [Dockerfile](.devcontainer/Dockerfile) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index d71ef79d..e2bb24d5 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -42,7 +42,7 @@ body: attributes: label: System information description: | - * Nextflow version _(eg. 22.10.1)_ + * Nextflow version _(eg. 23.04.0)_ * Hardware _(eg. HPC, Desktop, Cloud)_ * Executor _(eg. slurm, local, awsbatch)_ * Container engine: _(e.g. Docker, Singularity, Conda, Podman, Shifter, Charliecloud, or Apptainer)_ diff --git a/.github/workflows/awsfulltest.yml b/.github/workflows/awsfulltest.yml index 31ac32b9..500a2167 100644 --- a/.github/workflows/awsfulltest.yml +++ b/.github/workflows/awsfulltest.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Launch workflow via tower - uses: seqeralabs/action-tower-launch@v1 + uses: seqeralabs/action-tower-launch@v2 # TODO nf-core: You can customise AWS full pipeline tests as required # Add full size test data (but still relatively small datasets for few samples) # on the `test_full.config` test runs with only one set of parameters @@ -22,13 +22,18 @@ jobs: workspace_id: ${{ secrets.TOWER_WORKSPACE_ID }} access_token: ${{ secrets.TOWER_ACCESS_TOKEN }} compute_env: ${{ secrets.TOWER_COMPUTE_ENV }} + revision: ${{ github.sha }} workdir: s3://${{ secrets.AWS_S3_BUCKET }}/work/chipseq/work-${{ github.sha }} parameters: | { + "hook_url": "${{ secrets.MEGATESTS_ALERTS_SLACK_HOOK_URL }}", "outdir": "s3://${{ secrets.AWS_S3_BUCKET }}/chipseq/results-${{ github.sha }}" } - profiles: test_full,aws_tower + profiles: test_full + - uses: actions/upload-artifact@v3 with: name: Tower debug log file - path: tower_action_*.log + path: | + tower_action_*.log + tower_action_*.json diff --git a/.github/workflows/awstest.yml b/.github/workflows/awstest.yml index 153490d0..6b16318d 100644 --- a/.github/workflows/awstest.yml +++ b/.github/workflows/awstest.yml @@ -12,18 +12,22 @@ jobs: steps: # Launch workflow using Tower CLI tool action - name: Launch workflow via tower - uses: seqeralabs/action-tower-launch@v1 + uses: seqeralabs/action-tower-launch@v2 with: workspace_id: ${{ secrets.TOWER_WORKSPACE_ID }} access_token: ${{ secrets.TOWER_ACCESS_TOKEN }} compute_env: ${{ secrets.TOWER_COMPUTE_ENV }} + revision: ${{ github.sha }} workdir: s3://${{ secrets.AWS_S3_BUCKET }}/work/chipseq/work-${{ github.sha }} parameters: | { "outdir": "s3://${{ secrets.AWS_S3_BUCKET }}/chipseq/results-test-${{ github.sha }}" } - profiles: test,aws_tower + profiles: test + - uses: actions/upload-artifact@v3 with: name: Tower debug log file - path: tower_action_*.log + path: | + tower_action_*.log + tower_action_*.json diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fb742746..092835bc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,7 +24,7 @@ jobs: strategy: matrix: NXF_VER: - - "22.10.1" + - "23.04.0" - "latest-everything" steps: - name: Check out pipeline code diff --git a/.gitpod.yml b/.gitpod.yml index 85d95ecc..25488dcc 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -1,4 +1,9 @@ image: nfcore/gitpod:latest +tasks: + - name: Update Nextflow and setup pre-commit + command: | + pre-commit install --install-hooks + nextflow self-update vscode: extensions: # based on nf-core.nf-core-extensionpack diff --git a/CITATIONS.md b/CITATIONS.md index b4b3c896..d47e0566 100644 --- a/CITATIONS.md +++ b/CITATIONS.md @@ -12,7 +12,10 @@ - [FastQC](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/) + > Andrews, S. (2010). FastQC: A Quality Control Tool for High Throughput Sequence Data [Online]. Available online https://www.bioinformatics.babraham.ac.uk/projects/fastqc/. + - [MultiQC](https://pubmed.ncbi.nlm.nih.gov/27312411/) + > Ewels P, Magnusson M, Lundin S, Käller M. MultiQC: summarize analysis results for multiple tools and samples in a single report. Bioinformatics. 2016 Oct 1;32(19):3047-8. doi: 10.1093/bioinformatics/btw354. Epub 2016 Jun 16. PubMed PMID: 27312411; PubMed Central PMCID: PMC5039924. ## Software packaging/containerisation tools @@ -31,5 +34,8 @@ - [Docker](https://dl.acm.org/doi/10.5555/2600239.2600241) + > Merkel, D. (2014). Docker: lightweight linux containers for consistent development and deployment. Linux Journal, 2014(239), 2. doi: 10.5555/2600239.2600241. + - [Singularity](https://pubmed.ncbi.nlm.nih.gov/28494014/) + > Kurtzer GM, Sochat V, Bauer MW. Singularity: Scientific containers for mobility of compute. PLoS One. 2017 May 11;12(5):e0177459. doi: 10.1371/journal.pone.0177459. eCollection 2017. PubMed PMID: 28494014; PubMed Central PMCID: PMC5426675. diff --git a/README.md b/README.md index 9a7611f6..e5953300 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?labelColor=000000&logo=Amazon%20AWS)](https://nf-co.re/chipseq/results)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.XXXXXXX) -[![Nextflow](https://img.shields.io/badge/nextflow%20DSL2-%E2%89%A522.10.1-23aa62.svg)](https://www.nextflow.io/) +[![Nextflow](https://img.shields.io/badge/nextflow%20DSL2-%E2%89%A523.04.0-23aa62.svg)](https://www.nextflow.io/) [![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/) [![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/) [![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/) @@ -66,11 +66,11 @@ nextflow run nf-core/chipseq \ > provided by the `-c` Nextflow option can be used to provide any configuration _**except for parameters**_; > see [docs](https://nf-co.re/usage/configuration#custom-configuration-files). -For more details, please refer to the [usage documentation](https://nf-co.re/chipseq/usage) and the [parameter documentation](https://nf-co.re/chipseq/parameters). +For more details and further functionality, please refer to the [usage documentation](https://nf-co.re/chipseq/usage) and the [parameter documentation](https://nf-co.re/chipseq/parameters). ## Pipeline output -To see the the results of a test run with a full size dataset refer to the [results](https://nf-co.re/chipseq/results) tab on the nf-core website pipeline page. +To see the results of an example test run with a full size dataset refer to the [results](https://nf-co.re/chipseq/results) tab on the nf-core website pipeline page. For more details about the output files and reports, please refer to the [output documentation](https://nf-co.re/chipseq/output). diff --git a/assets/methods_description_template.yml b/assets/methods_description_template.yml index a30b1eb6..4ff6034f 100644 --- a/assets/methods_description_template.yml +++ b/assets/methods_description_template.yml @@ -3,17 +3,21 @@ description: "Suggested text and references to use when describing pipeline usag section_name: "nf-core/chipseq Methods Description" section_href: "https://github.com/nf-core/chipseq" plot_type: "html" -## TODO nf-core: Update the HTML below to your prefered methods description, e.g. add publication citation for this pipeline +## TODO nf-core: Update the HTML below to your preferred methods description, e.g. add publication citation for this pipeline ## You inject any metadata in the Nextflow '${workflow}' object data: |

    Methods

    -

    Data was processed using nf-core/chipseq v${workflow.manifest.version} ${doi_text} of the nf-core collection of workflows (Ewels et al., 2020).

    +

    Data was processed using nf-core/chipseq v${workflow.manifest.version} ${doi_text} of the nf-core collection of workflows (Ewels et al., 2020), utilising reproducible software environments from the Bioconda (Grüning et al., 2018) and Biocontainers (da Veiga Leprevost et al., 2017) projects.

    The pipeline was executed with Nextflow v${workflow.nextflow.version} (Di Tommaso et al., 2017) with the following command:

    ${workflow.commandLine}
    +

    ${tool_citations}

    References

      -
    • Di Tommaso, P., Chatzou, M., Floden, E. W., Barja, P. P., Palumbo, E., & Notredame, C. (2017). Nextflow enables reproducible computational workflows. Nature Biotechnology, 35(4), 316-319. https://doi.org/10.1038/nbt.3820
    • -
    • Ewels, P. A., Peltzer, A., Fillinger, S., Patel, H., Alneberg, J., Wilm, A., Garcia, M. U., Di Tommaso, P., & Nahnsen, S. (2020). The nf-core framework for community-curated bioinformatics pipelines. Nature Biotechnology, 38(3), 276-278. https://doi.org/10.1038/s41587-020-0439-x
    • +
    • Di Tommaso, P., Chatzou, M., Floden, E. W., Barja, P. P., Palumbo, E., & Notredame, C. (2017). Nextflow enables reproducible computational workflows. Nature Biotechnology, 35(4), 316-319. doi: 10.1038/nbt.3820
    • +
    • Ewels, P. A., Peltzer, A., Fillinger, S., Patel, H., Alneberg, J., Wilm, A., Garcia, M. U., Di Tommaso, P., & Nahnsen, S. (2020). The nf-core framework for community-curated bioinformatics pipelines. Nature Biotechnology, 38(3), 276-278. doi: 10.1038/s41587-020-0439-x
    • +
    • Grüning, B., Dale, R., Sjödin, A., Chapman, B. A., Rowe, J., Tomkins-Tinch, C. H., Valieris, R., Köster, J., & Bioconda Team. (2018). Bioconda: sustainable and comprehensive software distribution for the life sciences. Nature Methods, 15(7), 475–476. doi: 10.1038/s41592-018-0046-7
    • +
    • da Veiga Leprevost, F., Grüning, B. A., Alves Aflitos, S., Röst, H. L., Uszkoreit, J., Barsnes, H., Vaudel, M., Moreno, P., Gatto, L., Weber, J., Bai, M., Jimenez, R. C., Sachsenberg, T., Pfeuffer, J., Vera Alvarez, R., Griss, J., Nesvizhskii, A. I., & Perez-Riverol, Y. (2017). BioContainers: an open-source and community-driven framework for software standardization. Bioinformatics (Oxford, England), 33(16), 2580–2582. doi: 10.1093/bioinformatics/btx192
    • + ${tool_bibliography}
    Notes:
    diff --git a/assets/multiqc_config.yml b/assets/multiqc_config.yml index 46d7ec2d..548b7c12 100644 --- a/assets/multiqc_config.yml +++ b/assets/multiqc_config.yml @@ -1,7 +1,7 @@ report_comment: > - This report has been generated by the nf-core/chipseq + This report has been generated by the nf-core/chipseq analysis pipeline. For information about how to interpret these results, please see the - documentation. + documentation. report_section_order: "nf-core-chipseq-methods-description": order: -1000 diff --git a/assets/nf-core-chipseq_logo_light.png b/assets/nf-core-chipseq_logo_light.png index 21300d1d37f585ca022911966f6413c2895c66b2..51a83b3d789d5852acc2bb044650b13785c6bf41 100644 GIT binary patch literal 73788 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�ev`Q}H7y#R1zKkC5n?0_OP7^FqWWeXhX0t0pNK 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

    )bNtXB<>| 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 H?aKcGF<{p3 literal 10959 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 Fe*kdgood<% } else { %>danger<%} %>", - "author_name": "sanger-tol/readmapping v${version} - ${runName}", + "author_name": "nf-core/chipseq v${version} - ${runName}", "author_icon": "https://www.nextflow.io/docs/latest/_static/favicon.ico", "text": "<% if (success) { %>Pipeline completed successfully!<% } else { %>Pipeline completed with errors<% } %>", "fields": [ diff --git a/conf/test_full.config b/conf/test_full.config index 1505bc42..5c3bc080 100644 --- a/conf/test_full.config +++ b/conf/test_full.config @@ -10,8 +10,6 @@ ---------------------------------------------------------------------------------------- */ -cleanup = true - params { config_profile_name = 'Full test profile' config_profile_description = 'Full test dataset to check pipeline function' diff --git a/docs/usage.md b/docs/usage.md index 9f415ef9..13aaf242 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -57,7 +57,7 @@ An [example samplesheet](../assets/samplesheet.csv) has been provided with the p The typical command for running the pipeline is as follows: ```bash -nextflow run nf-core/chipseq --input samplesheet.csv --outdir --genome GRCh37 -profile docker +nextflow run nf-core/chipseq --input ./samplesheet.csv --outdir ./results --genome GRCh37 -profile docker ``` This will launch the pipeline with the `docker` configuration profile. See below for more information about profiles. @@ -76,7 +76,8 @@ If you wish to repeatedly use the same parameters for multiple runs, rather than Pipeline settings can be provided in a `yaml` or `json` file via `-params-file `. > ⚠️ Do not use `-c ` to specify parameters as this will result in errors. Custom config files specified with `-c` must only be used for [tuning process resource specifications](https://nf-co.re/docs/usage/configuration#tuning-workflow-resources), other infrastructural tweaks (such as output directories), or module arguments (args). -> The above pipeline run specified with a params file in yaml format: + +The above pipeline run specified with a params file in yaml format: ```bash nextflow run nf-core/chipseq -profile docker -params-file params.yaml @@ -88,7 +89,6 @@ with `params.yaml` containing: input: './samplesheet.csv' outdir: './results/' genome: 'GRCh37' -input: 'data' <...> ``` diff --git a/lib/NfcoreSchema.groovy b/lib/NfcoreSchema.groovy deleted file mode 100755 index 9b34804d..00000000 --- a/lib/NfcoreSchema.groovy +++ /dev/null @@ -1,530 +0,0 @@ -// -// This file holds several functions used to perform JSON parameter validation, help and summary rendering for the nf-core pipeline template. -// - -import nextflow.Nextflow -import org.everit.json.schema.Schema -import org.everit.json.schema.loader.SchemaLoader -import org.everit.json.schema.ValidationException -import org.json.JSONObject -import org.json.JSONTokener -import org.json.JSONArray -import groovy.json.JsonSlurper -import groovy.json.JsonBuilder - -class NfcoreSchema { - - // - // Resolve Schema path relative to main workflow directory - // - public static String getSchemaPath(workflow, schema_filename='nextflow_schema.json') { - return "${workflow.projectDir}/${schema_filename}" - } - - // - // Function to loop over all parameters defined in schema and check - // whether the given parameters adhere to the specifications - // - /* groovylint-disable-next-line UnusedPrivateMethodParameter */ - public static void validateParameters(workflow, params, log, schema_filename='nextflow_schema.json') { - def has_error = false - //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// - // Check for nextflow core params and unexpected params - def json = new File(getSchemaPath(workflow, schema_filename=schema_filename)).text - def Map schemaParams = (Map) new JsonSlurper().parseText(json).get('definitions') - def nf_params = [ - // Options for base `nextflow` command - 'bg', - 'c', - 'C', - 'config', - 'd', - 'D', - 'dockerize', - 'h', - 'log', - 'q', - 'quiet', - 'syslog', - 'v', - - // Options for `nextflow run` command - 'ansi', - 'ansi-log', - 'bg', - 'bucket-dir', - 'c', - 'cache', - 'config', - 'dsl2', - 'dump-channels', - 'dump-hashes', - 'E', - 'entry', - 'latest', - 'lib', - 'main-script', - 'N', - 'name', - 'offline', - 'params-file', - 'pi', - 'plugins', - 'poll-interval', - 'pool-size', - 'profile', - 'ps', - 'qs', - 'queue-size', - 'r', - 'resume', - 'revision', - 'stdin', - 'stub', - 'stub-run', - 'test', - 'w', - 'with-apptainer', - 'with-charliecloud', - 'with-conda', - 'with-dag', - 'with-docker', - 'with-mpi', - 'with-notification', - 'with-podman', - 'with-report', - 'with-singularity', - 'with-timeline', - 'with-tower', - 'with-trace', - 'with-weblog', - 'without-docker', - 'without-podman', - 'work-dir' - ] - def unexpectedParams = [] - - // Collect expected parameters from the schema - def expectedParams = [] - def enums = [:] - for (group in schemaParams) { - for (p in group.value['properties']) { - expectedParams.push(p.key) - if (group.value['properties'][p.key].containsKey('enum')) { - enums[p.key] = group.value['properties'][p.key]['enum'] - } - } - } - - for (specifiedParam in params.keySet()) { - // nextflow params - if (nf_params.contains(specifiedParam)) { - log.error "ERROR: You used a core Nextflow option with two hyphens: '--${specifiedParam}'. Please resubmit with '-${specifiedParam}'" - has_error = true - } - // unexpected params - def params_ignore = params.schema_ignore_params.split(',') + 'schema_ignore_params' - def expectedParamsLowerCase = expectedParams.collect{ it.replace("-", "").toLowerCase() } - def specifiedParamLowerCase = specifiedParam.replace("-", "").toLowerCase() - def isCamelCaseBug = (specifiedParam.contains("-") && !expectedParams.contains(specifiedParam) && expectedParamsLowerCase.contains(specifiedParamLowerCase)) - if (!expectedParams.contains(specifiedParam) && !params_ignore.contains(specifiedParam) && !isCamelCaseBug) { - // Temporarily remove camelCase/camel-case params #1035 - def unexpectedParamsLowerCase = unexpectedParams.collect{ it.replace("-", "").toLowerCase()} - if (!unexpectedParamsLowerCase.contains(specifiedParamLowerCase)){ - unexpectedParams.push(specifiedParam) - } - } - } - - //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// - // Validate parameters against the schema - InputStream input_stream = new File(getSchemaPath(workflow, schema_filename=schema_filename)).newInputStream() - JSONObject raw_schema = new JSONObject(new JSONTokener(input_stream)) - - // Remove anything that's in params.schema_ignore_params - raw_schema = removeIgnoredParams(raw_schema, params) - - Schema schema = SchemaLoader.load(raw_schema) - - // Clean the parameters - def cleanedParams = cleanParameters(params) - - // Convert to JSONObject - def jsonParams = new JsonBuilder(cleanedParams) - JSONObject params_json = new JSONObject(jsonParams.toString()) - - // Validate - try { - schema.validate(params_json) - } catch (ValidationException e) { - println '' - log.error 'ERROR: Validation of pipeline parameters failed!' - JSONObject exceptionJSON = e.toJSON() - printExceptions(exceptionJSON, params_json, log, enums) - println '' - has_error = true - } - - // Check for unexpected parameters - if (unexpectedParams.size() > 0) { - Map colors = NfcoreTemplate.logColours(params.monochrome_logs) - println '' - def warn_msg = 'Found unexpected parameters:' - for (unexpectedParam in unexpectedParams) { - warn_msg = warn_msg + "\n* --${unexpectedParam}: ${params[unexpectedParam].toString()}" - } - log.warn warn_msg - log.info "- ${colors.dim}Ignore this warning: params.schema_ignore_params = \"${unexpectedParams.join(',')}\" ${colors.reset}" - println '' - } - - if (has_error) { - Nextflow.error('Exiting!') - } - } - - // - // Beautify parameters for --help - // - public static String paramsHelp(workflow, params, command, schema_filename='nextflow_schema.json') { - Map colors = NfcoreTemplate.logColours(params.monochrome_logs) - Integer num_hidden = 0 - String output = '' - output += 'Typical pipeline command:\n\n' - output += " ${colors.cyan}${command}${colors.reset}\n\n" - Map params_map = paramsLoad(getSchemaPath(workflow, schema_filename=schema_filename)) - Integer max_chars = paramsMaxChars(params_map) + 1 - Integer desc_indent = max_chars + 14 - Integer dec_linewidth = 160 - desc_indent - for (group in params_map.keySet()) { - Integer num_params = 0 - String group_output = colors.underlined + colors.bold + group + colors.reset + '\n' - def group_params = params_map.get(group) // This gets the parameters of that particular group - for (param in group_params.keySet()) { - if (group_params.get(param).hidden && !params.show_hidden_params) { - num_hidden += 1 - continue; - } - def type = '[' + group_params.get(param).type + ']' - def description = group_params.get(param).description - def defaultValue = group_params.get(param).default != null ? " [default: " + group_params.get(param).default.toString() + "]" : '' - def description_default = description + colors.dim + defaultValue + colors.reset - // Wrap long description texts - // Loosely based on https://dzone.com/articles/groovy-plain-text-word-wrap - if (description_default.length() > dec_linewidth){ - List olines = [] - String oline = "" // " " * indent - description_default.split(" ").each() { wrd -> - if ((oline.size() + wrd.size()) <= dec_linewidth) { - oline += wrd + " " - } else { - olines += oline - oline = wrd + " " - } - } - olines += oline - description_default = olines.join("\n" + " " * desc_indent) - } - group_output += " --" + param.padRight(max_chars) + colors.dim + type.padRight(10) + colors.reset + description_default + '\n' - num_params += 1 - } - group_output += '\n' - if (num_params > 0){ - output += group_output - } - } - if (num_hidden > 0){ - output += colors.dim + "!! Hiding $num_hidden params, use --show_hidden_params to show them !!\n" + colors.reset - } - output += NfcoreTemplate.dashedLine(params.monochrome_logs) - return output - } - - // - // Groovy Map summarising parameters/workflow options used by the pipeline - // - public static LinkedHashMap paramsSummaryMap(workflow, params, schema_filename='nextflow_schema.json') { - // Get a selection of core Nextflow workflow options - def Map workflow_summary = [:] - if (workflow.revision) { - workflow_summary['revision'] = workflow.revision - } - workflow_summary['runName'] = workflow.runName - if (workflow.containerEngine) { - workflow_summary['containerEngine'] = workflow.containerEngine - } - if (workflow.container) { - workflow_summary['container'] = workflow.container - } - workflow_summary['launchDir'] = workflow.launchDir - workflow_summary['workDir'] = workflow.workDir - workflow_summary['projectDir'] = workflow.projectDir - workflow_summary['userName'] = workflow.userName - workflow_summary['profile'] = workflow.profile - workflow_summary['configFiles'] = workflow.configFiles.join(', ') - - // Get pipeline parameters defined in JSON Schema - def Map params_summary = [:] - def params_map = paramsLoad(getSchemaPath(workflow, schema_filename=schema_filename)) - for (group in params_map.keySet()) { - def sub_params = new LinkedHashMap() - def group_params = params_map.get(group) // This gets the parameters of that particular group - for (param in group_params.keySet()) { - if (params.containsKey(param)) { - def params_value = params.get(param) - def schema_value = group_params.get(param).default - def param_type = group_params.get(param).type - if (schema_value != null) { - if (param_type == 'string') { - if (schema_value.contains('$projectDir') || schema_value.contains('${projectDir}')) { - def sub_string = schema_value.replace('\$projectDir', '') - sub_string = sub_string.replace('\${projectDir}', '') - if (params_value.contains(sub_string)) { - schema_value = params_value - } - } - if (schema_value.contains('$params.outdir') || schema_value.contains('${params.outdir}')) { - def sub_string = schema_value.replace('\$params.outdir', '') - sub_string = sub_string.replace('\${params.outdir}', '') - if ("${params.outdir}${sub_string}" == params_value) { - schema_value = params_value - } - } - } - } - - // We have a default in the schema, and this isn't it - if (schema_value != null && params_value != schema_value) { - sub_params.put(param, params_value) - } - // No default in the schema, and this isn't empty - else if (schema_value == null && params_value != "" && params_value != null && params_value != false) { - sub_params.put(param, params_value) - } - } - } - params_summary.put(group, sub_params) - } - return [ 'Core Nextflow options' : workflow_summary ] << params_summary - } - - // - // Beautify parameters for summary and return as string - // - public static String paramsSummaryLog(workflow, params) { - Map colors = NfcoreTemplate.logColours(params.monochrome_logs) - String output = '' - def params_map = paramsSummaryMap(workflow, params) - def max_chars = paramsMaxChars(params_map) - for (group in params_map.keySet()) { - def group_params = params_map.get(group) // This gets the parameters of that particular group - if (group_params) { - output += colors.bold + group + colors.reset + '\n' - for (param in group_params.keySet()) { - output += " " + colors.blue + param.padRight(max_chars) + ": " + colors.green + group_params.get(param) + colors.reset + '\n' - } - output += '\n' - } - } - output += "!! Only displaying parameters that differ from the pipeline defaults !!\n" - output += NfcoreTemplate.dashedLine(params.monochrome_logs) - return output - } - - // - // Loop over nested exceptions and print the causingException - // - private static void printExceptions(ex_json, params_json, log, enums, limit=5) { - def causingExceptions = ex_json['causingExceptions'] - if (causingExceptions.length() == 0) { - def m = ex_json['message'] =~ /required key \[([^\]]+)\] not found/ - // Missing required param - if (m.matches()) { - log.error "* Missing required parameter: --${m[0][1]}" - } - // Other base-level error - else if (ex_json['pointerToViolation'] == '#') { - log.error "* ${ex_json['message']}" - } - // Error with specific param - else { - def param = ex_json['pointerToViolation'] - ~/^#\// - def param_val = params_json[param].toString() - if (enums.containsKey(param)) { - def error_msg = "* --${param}: '${param_val}' is not a valid choice (Available choices" - if (enums[param].size() > limit) { - log.error "${error_msg} (${limit} of ${enums[param].size()}): ${enums[param][0..limit-1].join(', ')}, ... )" - } else { - log.error "${error_msg}: ${enums[param].join(', ')})" - } - } else { - log.error "* --${param}: ${ex_json['message']} (${param_val})" - } - } - } - for (ex in causingExceptions) { - printExceptions(ex, params_json, log, enums) - } - } - - // - // Remove an element from a JSONArray - // - private static JSONArray removeElement(json_array, element) { - def list = [] - int len = json_array.length() - for (int i=0;i - if(raw_schema.keySet().contains('definitions')){ - raw_schema.definitions.each { definition -> - for (key in definition.keySet()){ - if (definition[key].get("properties").keySet().contains(ignore_param)){ - // Remove the param to ignore - definition[key].get("properties").remove(ignore_param) - // If the param was required, change this - if (definition[key].has("required")) { - def cleaned_required = removeElement(definition[key].required, ignore_param) - definition[key].put("required", cleaned_required) - } - } - } - } - } - if(raw_schema.keySet().contains('properties') && raw_schema.get('properties').keySet().contains(ignore_param)) { - raw_schema.get("properties").remove(ignore_param) - } - if(raw_schema.keySet().contains('required') && raw_schema.required.contains(ignore_param)) { - def cleaned_required = removeElement(raw_schema.required, ignore_param) - raw_schema.put("required", cleaned_required) - } - } - return raw_schema - } - - // - // Clean and check parameters relative to Nextflow native classes - // - private static Map cleanParameters(params) { - def new_params = params.getClass().newInstance(params) - for (p in params) { - // remove anything evaluating to false - if (!p['value']) { - new_params.remove(p.key) - } - // Cast MemoryUnit to String - if (p['value'].getClass() == nextflow.util.MemoryUnit) { - new_params.replace(p.key, p['value'].toString()) - } - // Cast Duration to String - if (p['value'].getClass() == nextflow.util.Duration) { - new_params.replace(p.key, p['value'].toString().replaceFirst(/d(?!\S)/, "day")) - } - // Cast LinkedHashMap to String - if (p['value'].getClass() == LinkedHashMap) { - new_params.replace(p.key, p['value'].toString()) - } - } - return new_params - } - - // - // This function tries to read a JSON params file - // - private static LinkedHashMap paramsLoad(String json_schema) { - def params_map = new LinkedHashMap() - try { - params_map = paramsRead(json_schema) - } catch (Exception e) { - println "Could not read parameters settings from JSON. $e" - params_map = new LinkedHashMap() - } - return params_map - } - - // - // Method to actually read in JSON file using Groovy. - // Group (as Key), values are all parameters - // - Parameter1 as Key, Description as Value - // - Parameter2 as Key, Description as Value - // .... - // Group - // - - private static LinkedHashMap paramsRead(String json_schema) throws Exception { - def json = new File(json_schema).text - def Map schema_definitions = (Map) new JsonSlurper().parseText(json).get('definitions') - def Map schema_properties = (Map) new JsonSlurper().parseText(json).get('properties') - /* Tree looks like this in nf-core schema - * definitions <- this is what the first get('definitions') gets us - group 1 - title - description - properties - parameter 1 - type - description - parameter 2 - type - description - group 2 - title - description - properties - parameter 1 - type - description - * properties <- parameters can also be ungrouped, outside of definitions - parameter 1 - type - description - */ - - // Grouped params - def params_map = new LinkedHashMap() - schema_definitions.each { key, val -> - def Map group = schema_definitions."$key".properties // Gets the property object of the group - def title = schema_definitions."$key".title - def sub_params = new LinkedHashMap() - group.each { innerkey, value -> - sub_params.put(innerkey, value) - } - params_map.put(title, sub_params) - } - - // Ungrouped params - def ungrouped_params = new LinkedHashMap() - schema_properties.each { innerkey, value -> - ungrouped_params.put(innerkey, value) - } - params_map.put("Other parameters", ungrouped_params) - - return params_map - } - - // - // Get maximum number of characters across all parameter names - // - private static Integer paramsMaxChars(params_map) { - Integer max_chars = 0 - for (group in params_map.keySet()) { - def group_params = params_map.get(group) // This gets the parameters of that particular group - for (param in group_params.keySet()) { - if (param.size() > max_chars) { - max_chars = param.size() - } - } - } - return max_chars - } -} diff --git a/lib/NfcoreTemplate.groovy b/lib/NfcoreTemplate.groovy index 25a0a74a..408951ae 100755 --- a/lib/NfcoreTemplate.groovy +++ b/lib/NfcoreTemplate.groovy @@ -128,7 +128,7 @@ class NfcoreTemplate { def email_html = html_template.toString() // Render the sendmail template - def max_multiqc_email_size = params.max_multiqc_email_size as nextflow.util.MemoryUnit + def max_multiqc_email_size = (params.containsKey('max_multiqc_email_size') ? params.max_multiqc_email_size : 0) as nextflow.util.MemoryUnit def smail_fields = [ email: email_address, subject: subject, email_txt: email_txt, email_html: email_html, projectDir: "$projectDir", mqcFile: mqc_report, mqcMaxSize: max_multiqc_email_size.toBytes() ] def sf = new File("$projectDir/assets/sendmail_template.txt") def sendmail_template = engine.createTemplate(sf).make(smail_fields) diff --git a/lib/WorkflowChipseq.groovy b/lib/WorkflowChipseq.groovy index 25175f72..78e2752d 100755 --- a/lib/WorkflowChipseq.groovy +++ b/lib/WorkflowChipseq.groovy @@ -11,6 +11,7 @@ class WorkflowChipseq { // Check and validate parameters // public static void initialise(params, log) { + genomeExistsError(params, log) @@ -46,15 +47,57 @@ class WorkflowChipseq { return yaml_file_text } - public static String methodsDescriptionText(run_workflow, mqc_methods_yaml) { + // + // Generate methods description for MultiQC + // + + public static String toolCitationText(params) { + + // TODO Optionally add in-text citation tools to this list. + // Can use ternary operators to dynamically construct based conditions, e.g. params["run_xyz"] ? "Tool (Foo et al. 2023)" : "", + // Uncomment function in methodsDescriptionText to render in MultiQC report + def citation_text = [ + "Tools used in the workflow included:", + "FastQC (Andrews 2010),", + "MultiQC (Ewels et al. 2016)", + "." + ].join(' ').trim() + + return citation_text + } + + public static String toolBibliographyText(params) { + + // TODO Optionally add bibliographic entries to this list. + // Can use ternary operators to dynamically construct based conditions, e.g. params["run_xyz"] ? "

  • Author (2023) Pub name, Journal, DOI
  • " : "", + // Uncomment function in methodsDescriptionText to render in MultiQC report + def reference_text = [ + "
  • Andrews S, (2010) FastQC, URL: https://www.bioinformatics.babraham.ac.uk/projects/fastqc/).
  • ", + "
  • Ewels, P., Magnusson, M., Lundin, S., & Käller, M. (2016). MultiQC: summarize analysis results for multiple tools and samples in a single report. Bioinformatics , 32(19), 3047–3048. doi: /10.1093/bioinformatics/btw354
  • " + ].join(' ').trim() + + return reference_text + } + + public static String methodsDescriptionText(run_workflow, mqc_methods_yaml, params) { // Convert to a named map so can be used as with familar NXF ${workflow} variable syntax in the MultiQC YML file def meta = [:] meta.workflow = run_workflow.toMap() meta["manifest_map"] = run_workflow.manifest.toMap() + // Pipeline DOI meta["doi_text"] = meta.manifest_map.doi ? "(doi: ${meta.manifest_map.doi})" : "" meta["nodoi_text"] = meta.manifest_map.doi ? "": "
  • If available, make sure to update the text to include the Zenodo DOI of version of the pipeline used.
  • " + // Tool references + meta["tool_citations"] = "" + meta["tool_bibliography"] = "" + + // TODO Only uncomment below if logic in toolCitationText/toolBibliographyText has been filled! + //meta["tool_citations"] = toolCitationText(params).replaceAll(", \\.", ".").replaceAll("\\. \\.", ".").replaceAll(", \\.", ".") + //meta["tool_bibliography"] = toolBibliographyText(params) + + def methods_text = mqc_methods_yaml.text def engine = new SimpleTemplateEngine() diff --git a/lib/WorkflowMain.groovy b/lib/WorkflowMain.groovy index 6e8af09f..2894a678 100755 --- a/lib/WorkflowMain.groovy +++ b/lib/WorkflowMain.groovy @@ -20,40 +20,11 @@ class WorkflowMain { " https://github.com/${workflow.manifest.name}/blob/master/CITATIONS.md" } - // - // Generate help string - // - public static String help(workflow, params) { - def command = "nextflow run ${workflow.manifest.name} --input samplesheet.csv --genome GRCh37 -profile docker" - def help_string = '' - help_string += NfcoreTemplate.logo(workflow, params.monochrome_logs) - help_string += NfcoreSchema.paramsHelp(workflow, params, command) - help_string += '\n' + citation(workflow) + '\n' - help_string += NfcoreTemplate.dashedLine(params.monochrome_logs) - return help_string - } - - // - // Generate parameter summary log string - // - public static String paramsSummaryLog(workflow, params) { - def summary_log = '' - summary_log += NfcoreTemplate.logo(workflow, params.monochrome_logs) - summary_log += NfcoreSchema.paramsSummaryLog(workflow, params) - summary_log += '\n' + citation(workflow) + '\n' - summary_log += NfcoreTemplate.dashedLine(params.monochrome_logs) - return summary_log - } // // Validate parameters and print summary to screen // public static void initialise(workflow, params, log) { - // Print help to screen if required - if (params.help) { - log.info help(workflow, params) - System.exit(0) - } // Print workflow version and exit on --version if (params.version) { @@ -62,14 +33,6 @@ class WorkflowMain { System.exit(0) } - // Print parameter summary log to screen - log.info paramsSummaryLog(workflow, params) - - // Validate workflow parameters via the JSON schema - if (params.validate_params) { - NfcoreSchema.validateParameters(workflow, params, log) - } - // Check that a -profile or Nextflow config has been provided to run the pipeline NfcoreTemplate.checkConfigProvided(workflow, log) diff --git a/main.nf b/main.nf index cf50b118..527da0e2 100644 --- a/main.nf +++ b/main.nf @@ -25,6 +25,22 @@ params.fasta = WorkflowMain.getGenomeAttribute(params, 'fasta') ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ +include { validateParameters; paramsHelp } from 'plugin/nf-validation' + +// Print help message if needed +if (params.help) { + def logo = NfcoreTemplate.logo(workflow, params.monochrome_logs) + def citation = '\n' + WorkflowMain.citation(workflow) + '\n' + def String command = "nextflow run ${workflow.manifest.name} --input samplesheet.csv --genome GRCh37 -profile docker" + log.info logo + paramsHelp(command) + citation + NfcoreTemplate.dashedLine(params.monochrome_logs) + System.exit(0) +} + +// Validate input parameters +if (params.validate_params) { + validateParameters() +} + WorkflowMain.initialise(workflow, params, log) /* diff --git a/nextflow.config b/nextflow.config index 700f3a20..2ffd145a 100644 --- a/nextflow.config +++ b/nextflow.config @@ -12,12 +12,12 @@ params { // TODO nf-core: Specify your pipeline's command line flags // Input options input = null - - // References genome = null igenomes_base = 's3://ngi-igenomes/igenomes' igenomes_ignore = false + + // MultiQC options multiqc_config = null multiqc_title = null @@ -27,7 +27,6 @@ params { // Boilerplate options outdir = null - tracedir = "${params.outdir}/pipeline_info" publish_dir_mode = 'copy' email = null email_on_fail = null @@ -36,19 +35,15 @@ params { hook_url = null help = false version = false - validate_params = true - show_hidden_params = false - schema_ignore_params = 'genomes' - // Config options + config_profile_name = null + config_profile_description = null custom_config_version = 'master' custom_config_base = "https://raw.githubusercontent.com/nf-core/configs/${params.custom_config_version}" - config_profile_description = null config_profile_contact = null config_profile_url = null - config_profile_name = null - + // Max resource options // Defaults only, expecting to be overwritten @@ -56,6 +51,13 @@ params { max_cpus = 16 max_time = '240.h' + // Schema validation default options + validationFailUnrecognisedParams = false + validationLenientMode = false + validationSchemaIgnoreParams = 'genomes' + validationShowHiddenParams = false + validate_params = true + } // Load base.config by default for all pipelines @@ -75,13 +77,11 @@ try { // } catch (Exception e) { // System.err.println("WARNING: Could not load nf-core/config/chipseq profiles: ${params.custom_config_base}/pipeline/chipseq.config") // } - - profiles { debug { dumpHashes = true process.beforeScript = 'echo $HOSTNAME' - cleanup = false + cleanup = false } conda { conda.enabled = true @@ -104,7 +104,6 @@ profiles { } docker { docker.enabled = true - docker.registry = 'quay.io' docker.userEmulation = true conda.enabled = false singularity.enabled = false @@ -128,7 +127,6 @@ profiles { } podman { podman.enabled = true - podman.registry = 'quay.io' conda.enabled = false docker.enabled = false singularity.enabled = false @@ -172,6 +170,18 @@ profiles { test_full { includeConfig 'conf/test_full.config' } } +// Set default registry for Apptainer, Docker, Podman and Singularity independent of -profile +// Will not be used unless Apptainer / Docker / Podman / Singularity are enabled +// Set to your registry if you have a mirror of containers +apptainer.registry = 'quay.io' +docker.registry = 'quay.io' +podman.registry = 'quay.io' +singularity.registry = 'quay.io' + +// Nextflow plugins +plugins { + id 'nf-validation' // Validation of pipeline parameters and creation of an input channel from a sample sheet +} // Load igenomes.config if required if (!params.igenomes_ignore) { @@ -179,8 +189,6 @@ if (!params.igenomes_ignore) { } else { params.genomes = [:] } - - // Export these variables to prevent local Python/R libraries from conflicting with those in the container // The JULIA depot path has been adjusted to a fixed path `/usr/local/share/julia` that needs to be used for packages in the container. // See https://apeltzer.github.io/post/03-julia-lang-nextflow/ for details on that. Once we have a common agreement on where to keep Julia packages, this is adjustable. @@ -198,19 +206,19 @@ process.shell = ['/bin/bash', '-euo', 'pipefail'] def trace_timestamp = new java.util.Date().format( 'yyyy-MM-dd_HH-mm-ss') timeline { enabled = true - file = "${params.tracedir}/execution_timeline_${trace_timestamp}.html" + file = "${params.outdir}/pipeline_info/execution_timeline_${trace_timestamp}.html" } report { enabled = true - file = "${params.tracedir}/execution_report_${trace_timestamp}.html" + file = "${params.outdir}/pipeline_info/execution_report_${trace_timestamp}.html" } trace { enabled = true - file = "${params.tracedir}/execution_trace_${trace_timestamp}.txt" + file = "${params.outdir}/pipeline_info/execution_trace_${trace_timestamp}.txt" } dag { enabled = true - file = "${params.tracedir}/pipeline_dag_${trace_timestamp}.html" + file = "${params.outdir}/pipeline_info/pipeline_dag_${trace_timestamp}.html" } manifest { @@ -219,7 +227,7 @@ manifest { homePage = 'https://github.com/nf-core/chipseq' description = """ChIP-seq peak-calling and differential analysis pipeline.""" mainScript = 'main.nf' - nextflowVersion = '!>=22.10.1' + nextflowVersion = '!>=23.04.0' version = '2.1.0dev' doi = '' } diff --git a/nextflow_schema.json b/nextflow_schema.json index 29c14519..0294f6f7 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -15,9 +15,9 @@ "input": { "type": "string", "format": "file-path", + "exists": true, "mimetype": "text/csv", "pattern": "^\\S+\\.csv$", - "schema": "assets/schema_input.json", "description": "Path to comma-separated file containing information about the samples in the experiment.", "help_text": "You will need to create a design file with information about the samples in your experiment before running the pipeline. Use this parameter to specify its location. It has to be a comma-separated file with 3 columns, and a header row. See [usage docs](https://nf-co.re/chipseq/usage#samplesheet-input).", "fa_icon": "fas fa-file-csv" @@ -57,6 +57,7 @@ "fasta": { "type": "string", "format": "file-path", + "exists": true, "mimetype": "text/plain", "pattern": "^\\S+\\.fn?a(sta)?(\\.gz)?$", "description": "Path to FASTA genome file.", @@ -157,7 +158,7 @@ "description": "Maximum amount of time that can be requested for any single job.", "default": "240.h", "fa_icon": "far fa-clock", - "pattern": "^(\\d+\\.?\\s*(s|m|h|day)\\s*)+$", + "pattern": "^(\\d+\\.?\\s*(s|m|h|d|day)\\s*)+$", "hidden": true, "help_text": "Use to set an upper-limit for the time requirement for each process. Should be a string in the format integer-unit e.g. `--max_time '2.h'`" } @@ -174,12 +175,14 @@ "type": "boolean", "description": "Display help text.", "fa_icon": "fas fa-question-circle", + "default": false, "hidden": true }, "version": { "type": "boolean", "description": "Display version and exit.", "fa_icon": "fas fa-question-circle", + "default": false, "hidden": true }, "publish_dir_mode": { @@ -203,6 +206,7 @@ "type": "boolean", "description": "Send plain-text email instead of HTML.", "fa_icon": "fas fa-remove-format", + "default": false, "hidden": true }, "max_multiqc_email_size": { @@ -217,6 +221,7 @@ "type": "boolean", "description": "Do not use coloured log outputs.", "fa_icon": "fas fa-palette", + "default": false, "hidden": true }, "hook_url": { @@ -228,6 +233,7 @@ }, "multiqc_config": { "type": "string", + "format": "file-path", "description": "Custom config file to supply to MultiQC.", "fa_icon": "fas fa-cog", "hidden": true @@ -243,13 +249,6 @@ "description": "Custom MultiQC yaml file containing HTML including a methods description.", "fa_icon": "fas fa-cog" }, - "tracedir": { - "type": "string", - "description": "Directory to keep pipeline Nextflow logs and reports.", - "default": "${params.outdir}/pipeline_info", - "fa_icon": "fas fa-cogs", - "hidden": true - }, "validate_params": { "type": "boolean", "description": "Boolean whether to validate parameters against the schema at runtime", @@ -257,12 +256,29 @@ "fa_icon": "fas fa-check-square", "hidden": true }, - "show_hidden_params": { + "validationShowHiddenParams": { "type": "boolean", "fa_icon": "far fa-eye-slash", "description": "Show all params when using `--help`", + "default": false, "hidden": true, "help_text": "By default, parameters set as _hidden_ in the schema are not shown on the command line when a user runs with `--help`. Specifying this option will tell the pipeline to show all parameters." + }, + "validationFailUnrecognisedParams": { + "type": "boolean", + "fa_icon": "far fa-check-circle", + "description": "Validation of parameters fails when an unrecognised parameter is found.", + "default": false, + "hidden": true, + "help_text": "By default, when an unrecognised parameter is found, it returns a warinig." + }, + "validationLenientMode": { + "type": "boolean", + "fa_icon": "far fa-check-circle", + "description": "Validation of parameters in lenient more.", + "default": false, + "hidden": true, + "help_text": "Allows string values that are parseable as numbers or booleans. For further information see [JSONSchema docs](https://github.com/everit-org/json-schema#lenient-mode)." } } } diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index f43f0a6f..fe5b023e 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -1,21 +1,19 @@ /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - VALIDATE INPUTS + PRINT PARAMS SUMMARY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -def summary_params = NfcoreSchema.paramsSummaryMap(workflow, params) +include { paramsSummaryLog; paramsSummaryMap } from 'plugin/nf-validation' -// Validate input parameters -WorkflowChipseq.initialise(params, log) +def logo = NfcoreTemplate.logo(workflow, params.monochrome_logs) +def citation = '\n' + WorkflowMain.citation(workflow) + '\n' +def summary_params = paramsSummaryMap(workflow) -// TODO nf-core: Add all file path parameters for the pipeline to the list below -// Check input path parameters to see if they exist -def checkPathParamList = [ params.input, params.multiqc_config, params.fasta ] -for (param in checkPathParamList) { if (param) { file(param, checkIfExists: true) } } +// Print parameter summary log to screen +log.info logo + paramsSummaryLog(workflow) + citation -// Check mandatory parameters -if (params.input) { ch_input = file(params.input) } else { exit 1, 'Input samplesheet not specified!' } +WorkflowChipseq.initialise(params, log) /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -69,9 +67,12 @@ workflow CHIPSEQ { // SUBWORKFLOW: Read in samplesheet, validate and stage input files // INPUT_CHECK ( - ch_input + file(params.input) ) ch_versions = ch_versions.mix(INPUT_CHECK.out.versions) + // TODO: OPTIONAL, you can use nf-validation plugin to create an input channel from the samplesheet with Channel.fromSamplesheet("input") + // See the documentation https://nextflow-io.github.io/nf-validation/samplesheets/fromSamplesheet/ + // ! There is currently no tooling to help you write a sample sheet schema // // MODULE: Run FastQC @@ -91,7 +92,7 @@ workflow CHIPSEQ { workflow_summary = WorkflowChipseq.paramsSummaryMultiqc(workflow, summary_params) ch_workflow_summary = Channel.value(workflow_summary) - methods_description = WorkflowChipseq.methodsDescriptionText(workflow, ch_multiqc_custom_methods_description) + methods_description = WorkflowChipseq.methodsDescriptionText(workflow, ch_multiqc_custom_methods_description, params) ch_methods_description = Channel.value(methods_description) ch_multiqc_files = Channel.empty() From b8338993d403940ab669d6aa56587ad4240fbe74 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Mon, 3 Jul 2023 10:27:37 +0200 Subject: [PATCH 110/201] Fix multiqc_config --- assets/multiqc_config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/multiqc_config.yml b/assets/multiqc_config.yml index 8365cfde..1a6a1dbf 100644 --- a/assets/multiqc_config.yml +++ b/assets/multiqc_config.yml @@ -1,7 +1,7 @@ report_comment: > This report has been generated by the nf-core/chipseq analysis pipeline. For information about how to interpret these results, please see the - documentation. + documentation. data_format: "yaml" From 7aeb56d179719a7760d19477ddd2a1a4f8264c5d Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Mon, 3 Jul 2023 12:13:48 +0200 Subject: [PATCH 111/201] Reformat --- workflows/chipseq.nf | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index 4aacce3c..93f7911e 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -3,19 +3,20 @@ PRINT PARAMS SUMMARY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + include { paramsSummaryLog; paramsSummaryMap } from 'plugin/nf-validation' def logo = NfcoreTemplate.logo(workflow, params.monochrome_logs) def citation = '\n' + WorkflowMain.citation(workflow) + '\n' def summary_params = paramsSummaryMap(workflow) +// Print parameter summary log to screen +log.info logo + paramsSummaryLog(workflow) + citation + def valid_params = [ aligners : [ 'bwa', 'bowtie2', 'chromap', 'star' ] ] -// Print parameter summary log to screen -log.info logo + paramsSummaryLog(workflow) + citation - // Validate input parameters WorkflowChipseq.initialise(params, log, valid_params) From 92bc1be0da868d6bfa6c5ad8f950bbe1f8002ca7 Mon Sep 17 00:00:00 2001 From: bjlang <> Date: Mon, 17 Jul 2023 18:50:11 +0200 Subject: [PATCH 112/201] Allow empty lines in input samplesheet --- bin/check_samplesheet.py | 161 ++++++++++++++++++++------------------- 1 file changed, 82 insertions(+), 79 deletions(-) diff --git a/bin/check_samplesheet.py b/bin/check_samplesheet.py index b7b285ab..7005bb9e 100755 --- a/bin/check_samplesheet.py +++ b/bin/check_samplesheet.py @@ -59,96 +59,99 @@ def check_samplesheet(file_in, file_out): ## Check sample entries for line in fin: - lspl = [x.strip().strip('"') for x in line.strip().split(",")] - - # Check valid number of columns per row - if len(lspl) < len(HEADER): - print_error( - "Invalid number of columns (minimum = {})!".format(len(HEADER)), - "Line", - line, - ) - num_cols = len([x for x in lspl if x]) - if num_cols < MIN_COLS: - print_error( - "Invalid number of populated columns (minimum = {})!".format(MIN_COLS), - "Line", - line, - ) - - ## Check sample name entries - sample, fastq_1, fastq_2, replicate, antibody, control, control_replicate = lspl[: len(HEADER)] - if sample.find(" ") != -1: - print(f"WARNING: Spaces have been replaced by underscores for sample: {sample}") - sample = sample.replace(" ", "_") - if not sample: - print_error("Sample entry has not been specified!", "Line", line) - - ## Check FastQ file extension - for fastq in [fastq_1, fastq_2]: - if fastq: - if fastq.find(" ") != -1: - print_error("FastQ file contains spaces!", "Line", line) - if not fastq.endswith(".fastq.gz") and not fastq.endswith(".fq.gz"): - print_error( - "FastQ file does not have extension '.fastq.gz' or '.fq.gz'!", - "Line", - line, - ) + if line.strip(): + lspl = [x.strip().strip('"') for x in line.strip().split(",")] - ## Check replicate column is integer - if not replicate.isdecimal(): - print_error("Replicate id not an integer!", "Line", line) - sys.exit(1) - - ## Check antibody and control columns have valid values - if antibody: - if antibody.find(" ") != -1: - print(f"WARNING: Spaces have been replaced by underscores for antibody: {antibody}") - antibody = antibody.replace(" ", "_") - if not control: + # Check valid number of columns per row + if len(lspl) < len(HEADER): print_error( - "Both antibody and control columns must be specified!", + "Invalid number of columns (minimum = {})!".format(len(HEADER)), "Line", line, ) - - if control: - if control.find(" ") != -1: - print(f"WARNING: Spaces have been replaced by underscores for control: {control}") - control = control.replace(" ", "_") - if not control_replicate.isdecimal(): - print_error("Control replicate id not an integer!", "Line", line) - sys.exit(1) - control = "{}_REP{}".format(control, control_replicate) - if not antibody: + num_cols = len([x for x in lspl[: len(HEADER)] if x]) + if num_cols < MIN_COLS: print_error( - "Both antibody and control columns must be specified!", + "Invalid number of populated columns (minimum = {})!".format(MIN_COLS), "Line", line, ) - ## Auto-detect paired-end/single-end - sample_info = [] ## [single_end, fastq_1, fastq_2, replicate, antibody, control] - if sample and fastq_1 and fastq_2: ## Paired-end short reads - sample_info = ["0", fastq_1, fastq_2, replicate, antibody, control] - elif sample and fastq_1 and not fastq_2: ## Single-end short reads - sample_info = ["1", fastq_1, fastq_2, replicate, antibody, control] - else: - print_error("Invalid combination of columns provided!", "Line", line) - - ## Create sample mapping dictionary = {sample: [[ single_end, fastq_1, fastq_2, replicate, antibody, control ]]} - replicate = int(replicate) - sample_info = sample_info + lspl[len(HEADER) :] - if sample not in sample_mapping_dict: - sample_mapping_dict[sample] = {} - if replicate not in sample_mapping_dict[sample]: - sample_mapping_dict[sample][replicate] = [sample_info] - else: - if sample_info in sample_mapping_dict[sample][replicate]: - print_error("Samplesheet contains duplicate rows!", "Line", line) + ## Check sample name entries + sample, fastq_1, fastq_2, replicate, antibody, control, control_replicate = lspl[: len(HEADER)] + if sample.find(" ") != -1: + print(f"WARNING: Spaces have been replaced by underscores for sample: {sample}") + sample = sample.replace(" ", "_") + if not sample: + print_error("Sample entry has not been specified!", "Line", line) + + ## Check FastQ file extension + for fastq in [fastq_1, fastq_2]: + if fastq: + if fastq.find(" ") != -1: + print_error("FastQ file contains spaces!", "Line", line) + if not fastq.endswith(".fastq.gz") and not fastq.endswith(".fq.gz"): + print_error( + "FastQ file does not have extension '.fastq.gz' or '.fq.gz'!", + "Line", + line, + ) + + ## Check replicate column is integer + if not replicate.isdecimal(): + print_error("Replicate id not an integer!", "Line", line) + sys.exit(1) + + ## Check antibody and control columns have valid values + if antibody: + if antibody.find(" ") != -1: + print(f"WARNING: Spaces have been replaced by underscores for antibody: {antibody}") + antibody = antibody.replace(" ", "_") + if not control: + print_error( + "Both antibody and control columns must be specified!", + "Line", + line, + ) + + if control: + if control.find(" ") != -1: + print(f"WARNING: Spaces have been replaced by underscores for control: {control}") + control = control.replace(" ", "_") + if not control_replicate.isdecimal(): + print_error("Control replicate id not an integer!", "Line", line) + sys.exit(1) + control = "{}_REP{}".format(control, control_replicate) + if not antibody: + print_error( + "Both antibody and control columns must be specified!", + "Line", + line, + ) + + ## Auto-detect paired-end/single-end + sample_info = [] ## [single_end, fastq_1, fastq_2, replicate, antibody, control] + ## Paired-end short reads + if sample and fastq_1 and fastq_2: + sample_info = ["0", fastq_1, fastq_2, replicate, antibody, control] + ## Single-end short reads + elif sample and fastq_1 and not fastq_2: + sample_info = ["1", fastq_1, fastq_2, replicate, antibody, control] + else: + print_error("Invalid combination of columns provided!", "Line", line) + + ## Create sample mapping dictionary = {sample: [[ single_end, fastq_1, fastq_2, replicate, antibody, control ]]} + replicate = int(replicate) + sample_info = sample_info + lspl[len(HEADER) :] + if sample not in sample_mapping_dict: + sample_mapping_dict[sample] = {} + if replicate not in sample_mapping_dict[sample]: + sample_mapping_dict[sample][replicate] = [sample_info] else: - sample_mapping_dict[sample][replicate].append(sample_info) + if sample_info in sample_mapping_dict[sample][replicate]: + print_error("Samplesheet contains duplicate rows!", "Line", line) + else: + sample_mapping_dict[sample][replicate].append(sample_info) ## Write validated samplesheet with appropriate columns if len(sample_mapping_dict) > 0: From fa3221eb05e03e1e9a230642f239a35abfa4983a Mon Sep 17 00:00:00 2001 From: bjlang <> Date: Wed, 19 Jul 2023 12:01:46 +0200 Subject: [PATCH 113/201] Remove quay.io from biocontainer address --- modules/local/bam_remove_orphans.nf | 2 +- modules/local/bamtools_filter.nf | 2 +- modules/local/bedtools_genomecov.nf | 2 +- modules/local/deseq2_qc.nf | 2 +- modules/local/frip_score.nf | 2 +- modules/local/genome_blacklist_regions.nf | 2 +- modules/local/gtf2bed.nf | 2 +- modules/local/igv.nf | 2 +- modules/local/macs2_consensus.nf | 2 +- modules/local/multiqc.nf | 2 +- modules/local/multiqc_custom_peaks.nf | 4 +++- modules/local/multiqc_custom_phantompeakqualtools.nf | 2 +- modules/local/plot_homer_annotatepeaks.nf | 2 +- modules/local/plot_macs2_qc.nf | 2 +- modules/local/star_align.nf | 2 +- modules/local/star_genomegenerate.nf | 2 +- 16 files changed, 18 insertions(+), 16 deletions(-) diff --git a/modules/local/bam_remove_orphans.nf b/modules/local/bam_remove_orphans.nf index d6e221aa..2bfb7dfd 100644 --- a/modules/local/bam_remove_orphans.nf +++ b/modules/local/bam_remove_orphans.nf @@ -8,7 +8,7 @@ process BAM_REMOVE_ORPHANS { conda "bioconda::pysam=0.19.0 bioconda::samtools=1.15.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/mulled-v2-57736af1eb98c01010848572c9fec9fff6ffaafd:402e865b8f6af2f3e58c6fc8d57127ff0144b2c7-0' : - 'quay.io/biocontainers/mulled-v2-57736af1eb98c01010848572c9fec9fff6ffaafd:402e865b8f6af2f3e58c6fc8d57127ff0144b2c7-0' }" + 'biocontainers/mulled-v2-57736af1eb98c01010848572c9fec9fff6ffaafd:402e865b8f6af2f3e58c6fc8d57127ff0144b2c7-0' }" input: tuple val(meta), path(bam) diff --git a/modules/local/bamtools_filter.nf b/modules/local/bamtools_filter.nf index c1e750d7..a1e8feed 100644 --- a/modules/local/bamtools_filter.nf +++ b/modules/local/bamtools_filter.nf @@ -5,7 +5,7 @@ process BAMTOOLS_FILTER { conda "bioconda::bamtools=2.5.2 bioconda::samtools=1.15.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/mulled-v2-0560a8046fc82aa4338588eca29ff18edab2c5aa:5687a7da26983502d0a8a9a6b05ed727c740ddc4-0' : - 'quay.io/biocontainers/mulled-v2-0560a8046fc82aa4338588eca29ff18edab2c5aa:5687a7da26983502d0a8a9a6b05ed727c740ddc4-0' }" + 'biocontainers/mulled-v2-0560a8046fc82aa4338588eca29ff18edab2c5aa:5687a7da26983502d0a8a9a6b05ed727c740ddc4-0' }" input: tuple val(meta), path(bam), path(bai) diff --git a/modules/local/bedtools_genomecov.nf b/modules/local/bedtools_genomecov.nf index 28dcc5dd..fb274631 100644 --- a/modules/local/bedtools_genomecov.nf +++ b/modules/local/bedtools_genomecov.nf @@ -5,7 +5,7 @@ process BEDTOOLS_GENOMECOV { conda "bioconda::bedtools=2.30.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/bedtools:2.30.0--hc088bd4_0': - 'quay.io/biocontainers/bedtools:2.30.0--hc088bd4_0' }" + 'biocontainers/bedtools:2.30.0--hc088bd4_0' }" input: tuple val(meta), path(bam), path(flagstat) diff --git a/modules/local/deseq2_qc.nf b/modules/local/deseq2_qc.nf index d9b96e11..14b57f69 100644 --- a/modules/local/deseq2_qc.nf +++ b/modules/local/deseq2_qc.nf @@ -7,7 +7,7 @@ process DESEQ2_QC { conda "conda-forge::r-base bioconda::bioconductor-deseq2 bioconda::bioconductor-biocparallel bioconda::bioconductor-tximport bioconda::bioconductor-complexheatmap conda-forge::r-optparse conda-forge::r-ggplot2 conda-forge::r-rcolorbrewer conda-forge::r-pheatmap" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/mulled-v2-8849acf39a43cdd6c839a369a74c0adc823e2f91:ab110436faf952a33575c64dd74615a84011450b-0' : - 'quay.io/biocontainers/mulled-v2-8849acf39a43cdd6c839a369a74c0adc823e2f91:ab110436faf952a33575c64dd74615a84011450b-0' }" + 'biocontainers/mulled-v2-8849acf39a43cdd6c839a369a74c0adc823e2f91:ab110436faf952a33575c64dd74615a84011450b-0' }" input: tuple val(meta), path(counts) diff --git a/modules/local/frip_score.nf b/modules/local/frip_score.nf index 28133e0c..77f856bc 100644 --- a/modules/local/frip_score.nf +++ b/modules/local/frip_score.nf @@ -5,7 +5,7 @@ process FRIP_SCORE { conda "bioconda::bedtools=2.30.0 bioconda::samtools=1.15.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/mulled-v2-8186960447c5cb2faa697666dc1e6d919ad23f3e:3127fcae6b6bdaf8181e21a26ae61231030a9fcb-0': - 'quay.io/biocontainers/mulled-v2-8186960447c5cb2faa697666dc1e6d919ad23f3e:3127fcae6b6bdaf8181e21a26ae61231030a9fcb-0' }" + 'biocontainers/mulled-v2-8186960447c5cb2faa697666dc1e6d919ad23f3e:3127fcae6b6bdaf8181e21a26ae61231030a9fcb-0' }" input: tuple val(meta), path(bam), path(peak) diff --git a/modules/local/genome_blacklist_regions.nf b/modules/local/genome_blacklist_regions.nf index fcb8451c..c365c8a7 100644 --- a/modules/local/genome_blacklist_regions.nf +++ b/modules/local/genome_blacklist_regions.nf @@ -7,7 +7,7 @@ process GENOME_BLACKLIST_REGIONS { conda "bioconda::bedtools=2.30.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/bedtools:2.30.0--hc088bd4_0': - 'quay.io/biocontainers/bedtools:2.30.0--hc088bd4_0' }" + 'biocontainers/bedtools:2.30.0--hc088bd4_0' }" input: path sizes diff --git a/modules/local/gtf2bed.nf b/modules/local/gtf2bed.nf index 8a8e7bf9..bc0eef54 100644 --- a/modules/local/gtf2bed.nf +++ b/modules/local/gtf2bed.nf @@ -5,7 +5,7 @@ process GTF2BED { conda "conda-forge::perl=5.26.2" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/perl:5.26.2': - 'quay.io/biocontainers/perl:5.26.2' }" + 'biocontainers/perl:5.26.2' }" input: path gtf diff --git a/modules/local/igv.nf b/modules/local/igv.nf index cf02fd9e..863af845 100644 --- a/modules/local/igv.nf +++ b/modules/local/igv.nf @@ -6,7 +6,7 @@ process IGV { conda "conda-forge::python=3.8.3" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/python:3.8.3': - 'quay.io/biocontainers/python:3.8.3' }" + 'biocontainers/python:3.8.3' }" input: val aligner_dir diff --git a/modules/local/macs2_consensus.nf b/modules/local/macs2_consensus.nf index eb373d2c..6b2006e4 100644 --- a/modules/local/macs2_consensus.nf +++ b/modules/local/macs2_consensus.nf @@ -8,7 +8,7 @@ process MACS2_CONSENSUS { conda "conda-forge::biopython conda-forge::r-optparse=1.7.1 conda-forge::r-upsetr=1.4.0 bioconda::bedtools=2.30.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/mulled-v2-2f48cc59b03027e31ead6d383fe1b8057785dd24:5d182f583f4696f4c4d9f3be93052811b383341f-0': - 'quay.io/biocontainers/mulled-v2-2f48cc59b03027e31ead6d383fe1b8057785dd24:5d182f583f4696f4c4d9f3be93052811b383341f-0' }" + 'biocontainers/mulled-v2-2f48cc59b03027e31ead6d383fe1b8057785dd24:5d182f583f4696f4c4d9f3be93052811b383341f-0' }" input: tuple val(meta), path(peaks) diff --git a/modules/local/multiqc.nf b/modules/local/multiqc.nf index d23d2cbe..32c35df7 100644 --- a/modules/local/multiqc.nf +++ b/modules/local/multiqc.nf @@ -4,7 +4,7 @@ process MULTIQC { conda "bioconda::multiqc=1.13a" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/multiqc:1.13a--pyhdfd78af_1': - 'quay.io/biocontainers/multiqc:1.13a--pyhdfd78af_1' }" + 'biocontainers/multiqc:1.13a--pyhdfd78af_1' }" input: path multiqc_config diff --git a/modules/local/multiqc_custom_peaks.nf b/modules/local/multiqc_custom_peaks.nf index c19d81a5..eb3e5cbb 100644 --- a/modules/local/multiqc_custom_peaks.nf +++ b/modules/local/multiqc_custom_peaks.nf @@ -1,9 +1,10 @@ process MULTIQC_CUSTOM_PEAKS { tag "$meta.id" + conda "conda-forge::sed=4.7" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/ubuntu:20.04' : - 'docker.io/library/ubuntu:20.04' }" + 'nf-core/ubuntu:20.04' }" input: tuple val(meta), path(peak), path(frip) @@ -13,6 +14,7 @@ process MULTIQC_CUSTOM_PEAKS { output: tuple val(meta), path("*.peak_count_mqc.tsv"), emit: count tuple val(meta), path("*.FRiP_mqc.tsv") , emit: frip + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when diff --git a/modules/local/multiqc_custom_phantompeakqualtools.nf b/modules/local/multiqc_custom_phantompeakqualtools.nf index 9e59d057..c9239bde 100644 --- a/modules/local/multiqc_custom_phantompeakqualtools.nf +++ b/modules/local/multiqc_custom_phantompeakqualtools.nf @@ -3,7 +3,7 @@ process MULTIQC_CUSTOM_PHANTOMPEAKQUALTOOLS { conda "conda-forge::r-base=3.5.1" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/r-base:3.5.1': - 'quay.io/biocontainers/r-base:3.5.1' }" + 'biocontainers/r-base:3.5.1' }" input: tuple val(meta), path(spp), path(rdata) diff --git a/modules/local/plot_homer_annotatepeaks.nf b/modules/local/plot_homer_annotatepeaks.nf index 36c4730e..ef4b1ce6 100644 --- a/modules/local/plot_homer_annotatepeaks.nf +++ b/modules/local/plot_homer_annotatepeaks.nf @@ -4,7 +4,7 @@ process PLOT_HOMER_ANNOTATEPEAKS { conda "conda-forge::r-base=4.0.3 conda-forge::r-reshape2=1.4.4 conda-forge::r-optparse=1.6.6 conda-forge::r-ggplot2=3.3.3 conda-forge::r-scales=1.1.1 conda-forge::r-viridis=0.5.1 conda-forge::r-tidyverse=1.3.0 bioconda::bioconductor-biostrings=2.58.0 bioconda::bioconductor-complexheatmap=2.6.2" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/mulled-v2-ad9dd5f398966bf899ae05f8e7c54d0fb10cdfa7:05678da05b8e5a7a5130e90a9f9a6c585b965afa-0': - 'quay.io/biocontainers/mulled-v2-ad9dd5f398966bf899ae05f8e7c54d0fb10cdfa7:05678da05b8e5a7a5130e90a9f9a6c585b965afa-0' }" + 'biocontainers/mulled-v2-ad9dd5f398966bf899ae05f8e7c54d0fb10cdfa7:05678da05b8e5a7a5130e90a9f9a6c585b965afa-0' }" input: path annos diff --git a/modules/local/plot_macs2_qc.nf b/modules/local/plot_macs2_qc.nf index 7599c9f8..d514db46 100644 --- a/modules/local/plot_macs2_qc.nf +++ b/modules/local/plot_macs2_qc.nf @@ -4,7 +4,7 @@ process PLOT_MACS2_QC { conda "conda-forge::r-base=4.0.3 conda-forge::r-reshape2=1.4.4 conda-forge::r-optparse=1.6.6 conda-forge::r-ggplot2=3.3.3 conda-forge::r-scales=1.1.1 conda-forge::r-viridis=0.5.1 conda-forge::r-tidyverse=1.3.0 bioconda::bioconductor-biostrings=2.58.0 bioconda::bioconductor-complexheatmap=2.6.2" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/mulled-v2-ad9dd5f398966bf899ae05f8e7c54d0fb10cdfa7:05678da05b8e5a7a5130e90a9f9a6c585b965afa-0': - 'quay.io/biocontainers/mulled-v2-ad9dd5f398966bf899ae05f8e7c54d0fb10cdfa7:05678da05b8e5a7a5130e90a9f9a6c585b965afa-0' }" + 'biocontainers/mulled-v2-ad9dd5f398966bf899ae05f8e7c54d0fb10cdfa7:05678da05b8e5a7a5130e90a9f9a6c585b965afa-0' }" input: path peaks diff --git a/modules/local/star_align.nf b/modules/local/star_align.nf index ec7fc2af..6a45b731 100644 --- a/modules/local/star_align.nf +++ b/modules/local/star_align.nf @@ -6,7 +6,7 @@ process STAR_ALIGN { conda "bioconda::star=2.6.1d" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/star:2.6.1d--0' : - 'quay.io/biocontainers/star:2.6.1d--0' }" + 'biocontainers/star:2.6.1d--0' }" input: tuple val(meta) , path(reads) diff --git a/modules/local/star_genomegenerate.nf b/modules/local/star_genomegenerate.nf index 285df97c..a36af0a8 100644 --- a/modules/local/star_genomegenerate.nf +++ b/modules/local/star_genomegenerate.nf @@ -6,7 +6,7 @@ process STAR_GENOMEGENERATE { conda "bioconda::star=2.6.1d bioconda::samtools=1.10 conda-forge::gawk=5.1.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/mulled-v2-1fa26d1ce03c295fe2fdcf85831a92fbcbd7e8c2:59cdd445419f14abac76b31dd0d71217994cbcc9-0' : - 'quay.io/biocontainers/mulled-v2-1fa26d1ce03c295fe2fdcf85831a92fbcbd7e8c2:59cdd445419f14abac76b31dd0d71217994cbcc9-0' }" + 'biocontainers/mulled-v2-1fa26d1ce03c295fe2fdcf85831a92fbcbd7e8c2:59cdd445419f14abac76b31dd0d71217994cbcc9-0' }" input: path fasta From 48c10a7802bb6368571dd0a704f36cb8f85eead3 Mon Sep 17 00:00:00 2001 From: Adam Talbot <12817534+adamrtalbot@users.noreply.github.com> Date: Fri, 21 Jul 2023 17:01:50 +0100 Subject: [PATCH 114/201] Add missing comma to awsfulltest --- .github/workflows/awsfulltest.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/awsfulltest.yml b/.github/workflows/awsfulltest.yml index 4833b93a..4a029854 100644 --- a/.github/workflows/awsfulltest.yml +++ b/.github/workflows/awsfulltest.yml @@ -27,7 +27,7 @@ jobs: parameters: | { "hook_url": "${{ secrets.MEGATESTS_ALERTS_SLACK_HOOK_URL }}", - "outdir": "s3://${{ secrets.AWS_S3_BUCKET }}/chipseq/results-${{ github.sha }}" + "outdir": "s3://${{ secrets.AWS_S3_BUCKET }}/chipseq/results-${{ github.sha }}", "aligner": "${{ matrix.aligner }}" } profiles: test_full From e5db23920da2e196a2a54a8df9c9f681863d9c55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20Ruiz=20P=C3=A9rez?= Date: Sun, 10 Sep 2023 21:57:42 +0200 Subject: [PATCH 115/201] Fix publishDir paths in modules.config --- assets/multiqc_config.yml | 8 ++++---- conf/modules.config | 34 +++++++++++++++++----------------- modules/local/igv.nf | 8 ++++---- modules/local/multiqc.nf | 16 ++++++++-------- workflows/chipseq.nf | 2 +- 5 files changed, 34 insertions(+), 34 deletions(-) diff --git a/assets/multiqc_config.yml b/assets/multiqc_config.yml index 1a6a1dbf..6f192e4f 100644 --- a/assets/multiqc_config.yml +++ b/assets/multiqc_config.yml @@ -44,12 +44,12 @@ module_order: name: "MERGED LIB: SAMTools (unfiltered)" info: "This section of the report shows SAMTools results after merging libraries and before filtering." path_filters: - - "./alignment/mergedLibrary/unfiltered/*.mLb.mkD.sorted.bam*" + - "./alignment/merged_library/unfiltered/*.mLb.mkD.sorted.bam*" - picard: name: "MERGED LIB: Picard (unfiltered)" info: "This section of the report shows picard results after merging libraries and before filtering." path_filters: - - "./alignment/mergedLibrary/unfiltered/picard_metrics/*" + - "./alignment/merged_library/unfiltered/picard_metrics/*" - preseq: name: "MERGED LIB: Preseq (unfiltered)" info: "This section of the report shows Preseq results after merging libraries and before filtering." @@ -57,12 +57,12 @@ module_order: name: "MERGED LIB: SAMTools (filtered)" info: "This section of the report shows SAMTools results after merging libraries and after filtering." path_filters: - - "./alignment/mergedLibrary/filtered/*.mLb.clN.sorted.bam*" + - "./alignment/merged_library/filtered/*.mLb.clN.sorted.bam*" - picard: name: "MERGED LIB: Picard (filtered)" info: "This section of the report shows picard results after merging libraries and after filtering." path_filters: - - "./alignment/mergedLibrary/filtered/picard_metrics/*" + - "./alignment/merged_library/filtered/picard_metrics/*" - deeptools: name: "MERGED LIB: deepTools" anchor: "mlib_deeptools" diff --git a/conf/modules.config b/conf/modules.config index 6b67b9aa..995f95e1 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -329,12 +329,12 @@ process { ext.prefix = { "${meta.id}.mLb.mkD.sorted" } publishDir = [ [ - path: { "${params.outdir}/${params.aligner}/mergedLibrary/picard_metrics" }, + path: { "${params.outdir}/${params.aligner}/merged_library/picard_metrics" }, mode: params.publish_dir_mode, pattern: '*.metrics.txt' ], [ - path: { "${params.outdir}/${params.aligner}/mergedLibrary" }, + path: { "${params.outdir}/${params.aligner}/merged_library" }, mode: params.publish_dir_mode, pattern: '*.bam', enabled: params.save_align_intermeds @@ -344,7 +344,7 @@ process { withName: '.*:BAM_MARKDUPLICATES_PICARD:SAMTOOLS_INDEX' { publishDir = [ - path: { "${params.outdir}/${params.aligner}/mergedLibrary" }, + path: { "${params.outdir}/${params.aligner}/merged_library" }, mode: params.publish_dir_mode, pattern: '*.{bai,csi}', enabled: params.save_align_intermeds @@ -354,7 +354,7 @@ process { withName: '.*:BAM_MARKDUPLICATES_PICARD:BAM_STATS_SAMTOOLS:.*' { ext.prefix = { "${meta.id}.mLb.mkD.sorted.bam" } publishDir = [ - path: { "${params.outdir}/${params.aligner}/mergedLibrary/samtools_stats" }, + path: { "${params.outdir}/${params.aligner}/merged_library/samtools_stats" }, mode: params.publish_dir_mode, pattern: '*.{stats,flagstat,idxstats}' ] @@ -392,7 +392,7 @@ process { ext.args = '-n' ext.prefix = { "${meta.id}.mLb.flT.name_sorted" } publishDir = [ - path: { "${params.outdir}/${params.aligner}/mergedLibrary" }, + path: { "${params.outdir}/${params.aligner}/merged_library" }, mode: params.publish_dir_mode, pattern: '*.bam', enabled: params.save_align_intermeds @@ -559,7 +559,7 @@ process { publishDir = [ path: { [ "${params.outdir}/${params.aligner}/merged_library/macs2", - params.narrow_peak? '/narrowPeak' : '/broadPeak' + params.narrow_peak? '/narrow_peak' : '/broad_peak' ].join('') }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } @@ -569,14 +569,14 @@ process { withName: 'FRIP_SCORE' { ext.args = '-bed -c -f 0.20' publishDir = [ - path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrowPeak' : '/broadPeak'}/qc" }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/qc" }, enabled: false ] } withName: 'MULTIQC_CUSTOM_PEAKS' { publishDir = [ - path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak} ? '/narrowPeak' : '/broadPeak'}/qc" }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/qc" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -589,7 +589,7 @@ if (!params.skip_peak_annotation) { ext.args = '-gid' ext.prefix = { "${meta.id}_peaks" } publishDir = [ - path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrowPeak' : '/broadPeak' }" }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -611,7 +611,7 @@ if (!params.skip_peak_annotation) { ext.args = '-o ./' ext.prefix = 'macs2_annotatePeaks' publishDir = [ - path: { "${params.outdir}/${params.aligner}/merged_library/macs2/params.narrow_peak ? '/narrowPeak' : '/broadPeak'}/qc" }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/qc" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -626,7 +626,7 @@ if (!params.skip_consensus_peaks) { ext.when = { meta.multiple_groups || meta.replicates_exist } ext.prefix = { "${meta.id}.consensus_peaks" } publishDir = [ - path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrowPeak' : '/broadPeak'}/consensus/${meta.id}" }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/consensus/${meta.id}" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -636,7 +636,7 @@ if (!params.skip_consensus_peaks) { ext.args = '-F SAF -O --fracOverlap 0.2' ext.prefix = { "${meta.id}.consensus_peaks" } publishDir = [ - path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak? '/narrowPeak' : '/broadPeak'}/consensus/${meta.id}" }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/consensus/${meta.id}" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -649,7 +649,7 @@ if (!params.skip_consensus_peaks) { ext.args = '-gid' ext.prefix = { "${meta.id}.consensus_peaks" } publishDir = [ - path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrowPeak' : '/broadPeak'}/consensus/${meta.id}" }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/consensus/${meta.id}" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -658,7 +658,7 @@ if (!params.skip_consensus_peaks) { withName: 'ANNOTATE_BOOLEAN_PEAKS' { ext.prefix = { "${meta.id}.consensus_peaks" } publishDir = [ - path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrowPeak' : '/broadPeak'}/consensus/${meta.id}" }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/consensus/${meta.id}" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -678,7 +678,7 @@ if (!params.skip_consensus_peaks) { ].join(' ').trim() ext.prefix = { "${meta.id}.consensus_peaks" } publishDir = [ - path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrowPeak' : '/broadPeak'}/consensus/${meta.id}/deseq2" }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/consensus/${meta.id}/deseq2" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -692,7 +692,7 @@ if (!params.skip_igv) { withName: 'IGV' { publishDir = [ [ - path: { "${params.outdir}/igv/${params.narrow_peak? '/narrowPeak' : '/broadPeak' }" }, + path: { "${params.outdir}/igv/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}" }, mode: params.publish_dir_mode, pattern: '*.{txt,xml}' ], @@ -711,7 +711,7 @@ if (!params.skip_multiqc) { withName: 'MULTIQC' { ext.args = params.multiqc_title ? "--title \"$params.multiqc_title\"" : '' publishDir = [ - path: { "${params.outdir}/multiqc/${params.narrow_peak ? '/narrowPeak' : '/broadPeak'}" }, + path: { "${params.outdir}/multiqc/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] diff --git a/modules/local/igv.nf b/modules/local/igv.nf index cf02fd9e..0d08b203 100644 --- a/modules/local/igv.nf +++ b/modules/local/igv.nf @@ -12,9 +12,9 @@ process IGV { val aligner_dir val peak_dir path fasta - path ("${aligner_dir}/mergedLibrary/bigwig/*") - path ("${aligner_dir}/mergedLibrary/macs2/${peak_dir}/*") - path ("${aligner_dir}/mergedLibrary/macs2/${peak_dir}/consensus/*") + path ("${aligner_dir}/merged_library/bigwig/*") + path ("${aligner_dir}/merged_library/macs2/${peak_dir}/*") + path ("${aligner_dir}/merged_library/macs2/${peak_dir}/consensus/*") path ("mappings/*") output: @@ -27,7 +27,7 @@ process IGV { task.ext.when == null || task.ext.when script: // scripts are bundled with the pipeline in nf-core/chipseq/bin/ - def consensus_dir = "${aligner_dir}/mergedLibrary/macs2/${peak_dir}/consensus/*" + def consensus_dir = "${aligner_dir}/merged_library/macs2/${peak_dir}/consensus/*" """ find * -type l -name "*.bigWig" -exec echo -e ""{}"\\t0,0,178" \\; > bigwig.igv.txt find * -type l -name "*Peak" -exec echo -e ""{}"\\t0,0,178" \\; > peaks.igv.txt diff --git a/modules/local/multiqc.nf b/modules/local/multiqc.nf index d23d2cbe..9dab5448 100644 --- a/modules/local/multiqc.nf +++ b/modules/local/multiqc.nf @@ -22,15 +22,15 @@ process MULTIQC { path ('alignment/library/*') path ('alignment/library/*') - path ('alignment/mergedLibrary/unfiltered/*') - path ('alignment/mergedLibrary/unfiltered/*') - path ('alignment/mergedLibrary/unfiltered/*') - path ('alignment/mergedLibrary/unfiltered/picard_metrics/*') + path ('alignment/merged_library/unfiltered/*') + path ('alignment/merged_library/unfiltered/*') + path ('alignment/merged_library/unfiltered/*') + path ('alignment/merged_library/unfiltered/picard_metrics/*') - path ('alignment/mergedLibrary/filtered/*') - path ('alignment/mergedLibrary/filtered/*') - path ('alignment/mergedLibrary/filtered/*') - path ('alignment/mergedLibrary/filtered/picard_metrics/*') + path ('alignment/merged_library/filtered/*') + path ('alignment/merged_library/filtered/*') + path ('alignment/merged_library/filtered/*') + path ('alignment/merged_library/filtered/picard_metrics/*') path ('preseq/*') diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index 93f7911e..054ac3da 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -692,7 +692,7 @@ workflow CHIPSEQ { if (!params.skip_igv) { IGV ( params.aligner, - params.narrow_peak ? 'narrowPeak' : 'broadPeak', + params.narrow_peak ? 'narrow_peak' : 'broad_peak', PREPARE_GENOME.out.fasta, UCSC_BEDGRAPHTOBIGWIG.out.bigwig.collect{it[1]}.ifEmpty([]), ch_macs2_peaks.collect{it[1]}.ifEmpty([]), From 1ae46c80e157fd04f78d1746f4eb8b93eded15ca Mon Sep 17 00:00:00 2001 From: nf-core-bot Date: Mon, 25 Sep 2023 15:16:18 +0000 Subject: [PATCH 116/201] Template update for nf-core/tools version 2.10 --- .devcontainer/devcontainer.json | 1 + .github/CONTRIBUTING.md | 4 +- .github/workflows/linting.yml | 2 +- .github/workflows/release-announcments.yml | 68 +++++++++ CITATIONS.md | 2 +- CODE_OF_CONDUCT.md | 133 ++++++++++++++---- README.md | 21 +-- assets/multiqc_config.yml | 4 +- conf/modules.config | 9 ++ docs/output.md | 5 +- docs/usage.md | 16 ++- lib/NfcoreTemplate.groovy | 16 +++ lib/WorkflowChipseq.groovy | 2 +- main.nf | 3 + modules.json | 6 +- .../custom/dumpsoftwareversions/main.nf | 2 +- modules/nf-core/fastqc/main.nf | 8 +- modules/nf-core/multiqc/main.nf | 2 +- nextflow.config | 7 +- nextflow_schema.json | 15 -- workflows/chipseq.nf | 1 + 21 files changed, 251 insertions(+), 76 deletions(-) create mode 100644 .github/workflows/release-announcments.yml diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index ea27a584..4ecfbfe3 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -2,6 +2,7 @@ "name": "nfcore", "image": "nfcore/gitpod:latest", "remoteUser": "gitpod", + "runArgs": ["--privileged"], // Configure tool-specific properties. "customizations": { diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 8c24b7f1..75fde7dd 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -9,7 +9,9 @@ Please use the pre-filled template to save time. However, don't be put off by this template - other more general issues and suggestions are welcome! Contributions to the code are even more welcome ;) -> If you need help using or modifying nf-core/chipseq then the best place to ask is on the nf-core Slack [#chipseq](https://nfcore.slack.com/channels/chipseq) channel ([join our Slack here](https://nf-co.re/join/slack)). +:::info +If you need help using or modifying nf-core/chipseq then the best place to ask is on the nf-core Slack [#chipseq](https://nfcore.slack.com/channels/chipseq) channel ([join our Slack here](https://nf-co.re/join/slack)). +::: ## Contribution workflow diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 888cb4bc..b8bdd214 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -78,7 +78,7 @@ jobs: - uses: actions/setup-python@v4 with: - python-version: "3.8" + python-version: "3.11" architecture: "x64" - name: Install dependencies diff --git a/.github/workflows/release-announcments.yml b/.github/workflows/release-announcments.yml new file mode 100644 index 00000000..6ad33927 --- /dev/null +++ b/.github/workflows/release-announcments.yml @@ -0,0 +1,68 @@ +name: release-announcements +# Automatic release toot and tweet anouncements +on: + release: + types: [published] + workflow_dispatch: + +jobs: + toot: + runs-on: ubuntu-latest + steps: + - uses: rzr/fediverse-action@master + with: + access-token: ${{ secrets.MASTODON_ACCESS_TOKEN }} + host: "mstdn.science" # custom host if not "mastodon.social" (default) + # GitHub event payload + # https://docs.github.com/en/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#release + message: | + Pipeline release! ${{ github.repository }} v${{ github.event.release.tag_name }} - ${{ github.event.release.name }}! + + Please see the changelog: ${{ github.event.release.html_url }} + + send-tweet: + runs-on: ubuntu-latest + + steps: + - uses: actions/setup-python@v4 + with: + python-version: "3.10" + - name: Install dependencies + run: pip install tweepy==4.14.0 + - name: Send tweet + shell: python + run: | + import os + import tweepy + + client = tweepy.Client( + access_token=os.getenv("TWITTER_ACCESS_TOKEN"), + access_token_secret=os.getenv("TWITTER_ACCESS_TOKEN_SECRET"), + consumer_key=os.getenv("TWITTER_CONSUMER_KEY"), + consumer_secret=os.getenv("TWITTER_CONSUMER_SECRET"), + ) + tweet = os.getenv("TWEET") + client.create_tweet(text=tweet) + env: + TWEET: | + Pipeline release! ${{ github.repository }} v${{ github.event.release.tag_name }} - ${{ github.event.release.name }}! + + Please see the changelog: ${{ github.event.release.html_url }} + TWITTER_CONSUMER_KEY: ${{ secrets.TWITTER_CONSUMER_KEY }} + TWITTER_CONSUMER_SECRET: ${{ secrets.TWITTER_CONSUMER_SECRET }} + TWITTER_ACCESS_TOKEN: ${{ secrets.TWITTER_ACCESS_TOKEN }} + TWITTER_ACCESS_TOKEN_SECRET: ${{ secrets.TWITTER_ACCESS_TOKEN_SECRET }} + + bsky-post: + runs-on: ubuntu-latest + steps: + - uses: zentered/bluesky-post-action@v0.0.2 + with: + post: | + Pipeline release! ${{ github.repository }} v${{ github.event.release.tag_name }} - ${{ github.event.release.name }}! + + Please see the changelog: ${{ github.event.release.html_url }} + env: + BSKY_IDENTIFIER: ${{ secrets.BSKY_IDENTIFIER }} + BSKY_PASSWORD: ${{ secrets.BSKY_PASSWORD }} + # diff --git a/CITATIONS.md b/CITATIONS.md index d47e0566..8c3593ec 100644 --- a/CITATIONS.md +++ b/CITATIONS.md @@ -12,7 +12,7 @@ - [FastQC](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/) - > Andrews, S. (2010). FastQC: A Quality Control Tool for High Throughput Sequence Data [Online]. Available online https://www.bioinformatics.babraham.ac.uk/projects/fastqc/. + > Andrews, S. (2010). FastQC: A Quality Control Tool for High Throughput Sequence Data [Online]. - [MultiQC](https://pubmed.ncbi.nlm.nih.gov/27312411/) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index f4fd052f..c089ec78 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -1,18 +1,20 @@ -# Code of Conduct at nf-core (v1.0) +# Code of Conduct at nf-core (v1.4) ## Our Pledge -In the interest of fostering an open, collaborative, and welcoming environment, we as contributors and maintainers of nf-core, pledge to making participation in our projects and community a harassment-free experience for everyone, regardless of: +In the interest of fostering an open, collaborative, and welcoming environment, we as contributors and maintainers of nf-core pledge to making participation in our projects and community a harassment-free experience for everyone, regardless of: - Age +- Ability - Body size +- Caste - Familial status - Gender identity and expression - Geographical location - Level of experience - Nationality and national origins - Native language -- Physical and neurological ability +- Neurodiversity - Race or ethnicity - Religion - Sexual identity and orientation @@ -22,80 +24,133 @@ Please note that the list above is alphabetised and is therefore not ranked in a ## Preamble -> Note: This Code of Conduct (CoC) has been drafted by the nf-core Safety Officer and been edited after input from members of the nf-core team and others. "We", in this document, refers to the Safety Officer and members of the nf-core core team, both of whom are deemed to be members of the nf-core community and are therefore required to abide by this Code of Conduct. This document will amended periodically to keep it up-to-date, and in case of any dispute, the most current version will apply. +:::note +This Code of Conduct (CoC) has been drafted by Renuka Kudva, Cris Tuñí, and Michael Heuer, with input from the nf-core Core Team and Susanna Marquez from the nf-core community. "We", in this document, refers to the Safety Officers and members of the nf-core Core Team, both of whom are deemed to be members of the nf-core community and are therefore required to abide by this Code of Conduct. This document will be amended periodically to keep it up-to-date. In case of any dispute, the most current version will apply. +::: -An up-to-date list of members of the nf-core core team can be found [here](https://nf-co.re/about). Our current safety officer is Renuka Kudva. +An up-to-date list of members of the nf-core core team can be found [here](https://nf-co.re/about). + +Our Safety Officers are Saba Nafees, Cris Tuñí, and Michael Heuer. nf-core is a young and growing community that welcomes contributions from anyone with a shared vision for [Open Science Policies](https://www.fosteropenscience.eu/taxonomy/term/8). Open science policies encompass inclusive behaviours and we strive to build and maintain a safe and inclusive environment for all individuals. -We have therefore adopted this code of conduct (CoC), which we require all members of our community and attendees in nf-core events to adhere to in all our workspaces at all times. Workspaces include but are not limited to Slack, meetings on Zoom, Jitsi, YouTube live etc. +We have therefore adopted this CoC, which we require all members of our community and attendees of nf-core events to adhere to in all our workspaces at all times. Workspaces include, but are not limited to, Slack, meetings on Zoom, gather.town, YouTube live etc. -Our CoC will be strictly enforced and the nf-core team reserve the right to exclude participants who do not comply with our guidelines from our workspaces and future nf-core activities. +Our CoC will be strictly enforced and the nf-core team reserves the right to exclude participants who do not comply with our guidelines from our workspaces and future nf-core activities. -We ask all members of our community to help maintain a supportive and productive workspace and to avoid behaviours that can make individuals feel unsafe or unwelcome. Please help us maintain and uphold this CoC. +We ask all members of our community to help maintain supportive and productive workspaces and to avoid behaviours that can make individuals feel unsafe or unwelcome. Please help us maintain and uphold this CoC. -Questions, concerns or ideas on what we can include? Contact safety [at] nf-co [dot] re +Questions, concerns, or ideas on what we can include? Contact members of the Safety Team on Slack or email safety [at] nf-co [dot] re. ## Our Responsibilities -The safety officer is responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behaviour. +Members of the Safety Team (the Safety Officers) are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behaviour. -The safety officer in consultation with the nf-core core team have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. +The Safety Team, in consultation with the nf-core core team, have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this CoC, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. -Members of the core team or the safety officer who violate the CoC will be required to recuse themselves pending investigation. They will not have access to any reports of the violations and be subject to the same actions as others in violation of the CoC. +Members of the core team or the Safety Team who violate the CoC will be required to recuse themselves pending investigation. They will not have access to any reports of the violations and will be subject to the same actions as others in violation of the CoC. -## When are where does this Code of Conduct apply? +## When and where does this Code of Conduct apply? -Participation in the nf-core community is contingent on following these guidelines in all our workspaces and events. This includes but is not limited to the following listed alphabetically and therefore in no order of preference: +Participation in the nf-core community is contingent on following these guidelines in all our workspaces and events, such as hackathons, workshops, bytesize, and collaborative workspaces on gather.town. These guidelines include, but are not limited to, the following (listed alphabetically and therefore in no order of preference): - Communicating with an official project email address. - Communicating with community members within the nf-core Slack channel. - Participating in hackathons organised by nf-core (both online and in-person events). -- Participating in collaborative work on GitHub, Google Suite, community calls, mentorship meetings, email correspondence. -- Participating in workshops, training, and seminar series organised by nf-core (both online and in-person events). This applies to events hosted on web-based platforms such as Zoom, Jitsi, YouTube live etc. +- Participating in collaborative work on GitHub, Google Suite, community calls, mentorship meetings, email correspondence, and on the nf-core gather.town workspace. +- Participating in workshops, training, and seminar series organised by nf-core (both online and in-person events). This applies to events hosted on web-based platforms such as Zoom, gather.town, Jitsi, YouTube live etc. - Representing nf-core on social media. This includes both official and personal accounts. ## nf-core cares 😊 -nf-core's CoC and expectations of respectful behaviours for all participants (including organisers and the nf-core team) include but are not limited to the following (listed in alphabetical order): +nf-core's CoC and expectations of respectful behaviours for all participants (including organisers and the nf-core team) include, but are not limited to, the following (listed in alphabetical order): - Ask for consent before sharing another community member’s personal information (including photographs) on social media. - Be respectful of differing viewpoints and experiences. We are all here to learn from one another and a difference in opinion can present a good learning opportunity. -- Celebrate your accomplishments at events! (Get creative with your use of emojis 🎉 🥳 💯 🙌 !) +- Celebrate your accomplishments! (Get creative with your use of emojis 🎉 🥳 💯 🙌 !) - Demonstrate empathy towards other community members. (We don’t all have the same amount of time to dedicate to nf-core. If tasks are pending, don’t hesitate to gently remind members of your team. If you are leading a task, ask for help if you feel overwhelmed.) - Engage with and enquire after others. (This is especially important given the geographically remote nature of the nf-core community, so let’s do this the best we can) - Focus on what is best for the team and the community. (When in doubt, ask) -- Graciously accept constructive criticism, yet be unafraid to question, deliberate, and learn. +- Accept feedback, yet be unafraid to question, deliberate, and learn. - Introduce yourself to members of the community. (We’ve all been outsiders and we know that talking to strangers can be hard for some, but remember we’re interested in getting to know you and your visions for open science!) -- Show appreciation and **provide clear feedback**. (This is especially important because we don’t see each other in person and it can be harder to interpret subtleties. Also remember that not everyone understands a certain language to the same extent as you do, so **be clear in your communications to be kind.**) +- Show appreciation and **provide clear feedback**. (This is especially important because we don’t see each other in person and it can be harder to interpret subtleties. Also remember that not everyone understands a certain language to the same extent as you do, so **be clear in your communication to be kind.**) - Take breaks when you feel like you need them. -- Using welcoming and inclusive language. (Participants are encouraged to display their chosen pronouns on Zoom or in communication on Slack.) +- Use welcoming and inclusive language. (Participants are encouraged to display their chosen pronouns on Zoom or in communication on Slack) ## nf-core frowns on 😕 -The following behaviours from any participants within the nf-core community (including the organisers) will be considered unacceptable under this code of conduct. Engaging or advocating for any of the following could result in expulsion from nf-core workspaces. +The following behaviours from any participants within the nf-core community (including the organisers) will be considered unacceptable under this CoC. Engaging or advocating for any of the following could result in expulsion from nf-core workspaces: - Deliberate intimidation, stalking or following and sustained disruption of communication among participants of the community. This includes hijacking shared screens through actions such as using the annotate tool in conferencing software such as Zoom. - “Doxing” i.e. posting (or threatening to post) another person’s personal identifying information online. - Spamming or trolling of individuals on social media. -- Use of sexual or discriminatory imagery, comments, or jokes and unwelcome sexual attention. -- Verbal and text comments that reinforce social structures of domination related to gender, gender identity and expression, sexual orientation, ability, physical appearance, body size, race, age, religion or work experience. +- Use of sexual or discriminatory imagery, comments, jokes, or unwelcome sexual attention. +- Verbal and text comments that reinforce social structures of domination related to gender, gender identity and expression, sexual orientation, ability, physical appearance, body size, race, age, religion, or work experience. ### Online Trolling -The majority of nf-core interactions and events are held online. Unfortunately, holding events online comes with the added issue of online trolling. This is unacceptable, reports of such behaviour will be taken very seriously, and perpetrators will be excluded from activities immediately. +The majority of nf-core interactions and events are held online. Unfortunately, holding events online comes with the risk of online trolling. This is unacceptable — reports of such behaviour will be taken very seriously and perpetrators will be excluded from activities immediately. -All community members are required to ask members of the group they are working within for explicit consent prior to taking screenshots of individuals during video calls. +All community members are **required** to ask members of the group they are working with for explicit consent prior to taking screenshots of individuals during video calls. -## Procedures for Reporting CoC violations +## Procedures for reporting CoC violations If someone makes you feel uncomfortable through their behaviours or actions, report it as soon as possible. -You can reach out to members of the [nf-core core team](https://nf-co.re/about) and they will forward your concerns to the safety officer(s). +You can reach out to members of the Safety Team (Saba Nafees, Cris Tuñí, and Michael Heuer) on Slack. Alternatively, contact a member of the nf-core core team [nf-core core team](https://nf-co.re/about), and they will forward your concerns to the Safety Team. + +Issues directly concerning members of the Core Team or the Safety Team will be dealt with by other members of the core team and the safety manager — possible conflicts of interest will be taken into account. nf-core is also in discussions about having an ombudsperson and details will be shared in due course. + +All reports will be handled with the utmost discretion and confidentiality. + +You can also report any CoC violations to safety [at] nf-co [dot] re. In your email report, please do your best to include: + +- Your contact information. +- Identifying information (e.g. names, nicknames, pseudonyms) of the participant who has violated the Code of Conduct. +- The behaviour that was in violation and the circumstances surrounding the incident. +- The approximate time of the behaviour (if different than the time the report was made). +- Other people involved in the incident, if applicable. +- If you believe the incident is ongoing. +- If there is a publicly available record (e.g. mailing list record, a screenshot). +- Any additional information. + +After you file a report, one or more members of our Safety Team will contact you to follow up on your report. + +## Who will read and handle reports + +All reports will be read and handled by the members of the Safety Team at nf-core. + +If members of the Safety Team are deemed to have a conflict of interest with a report, they will be required to recuse themselves as per our Code of Conduct and will not have access to any follow-ups. + +To keep this first report confidential from any of the Safety Team members, please submit your first report by direct messaging on Slack/direct email to any of the nf-core members you are comfortable disclosing the information to, and be explicit about which member(s) you do not consent to sharing the information with. + +## Reviewing reports + +After receiving the report, members of the Safety Team will review the incident report to determine whether immediate action is required, for example, whether there is immediate threat to participants’ safety. + +The Safety Team, in consultation with members of the nf-core core team, will assess the information to determine whether the report constitutes a Code of Conduct violation, for them to decide on a course of action. + +In the case of insufficient information, one or more members of the Safety Team may contact the reporter, the reportee, or any other attendees to obtain more information. -Issues directly concerning members of the core team will be dealt with by other members of the core team and the safety manager, and possible conflicts of interest will be taken into account. nf-core is also in discussions about having an ombudsperson, and details will be shared in due course. +Once additional information is gathered, the Safety Team will collectively review and decide on the best course of action to take, if any. The Safety Team reserves the right to not act on a report. -All reports will be handled with utmost discretion and confidentially. +## Confidentiality + +All reports, and any additional information included, are only shared with the team of safety officers (and possibly members of the core team, in case the safety officer is in violation of the CoC). We will respect confidentiality requests for the purpose of protecting victims of abuse. + +We will not name harassment victims, beyond discussions between the safety officer and members of the nf-core team, without the explicit consent of the individuals involved. + +## Enforcement + +Actions taken by the nf-core’s Safety Team may include, but are not limited to: + +- Asking anyone to stop a behaviour. +- Asking anyone to leave the event and online spaces either temporarily, for the remainder of the event, or permanently. +- Removing access to the gather.town and Slack, either temporarily or permanently. +- Communicating to all participants to reinforce our expectations for conduct and remind what is unacceptable behaviour; this may be public for practical reasons. +- Communicating to all participants that an incident has taken place and how we will act or have acted — this may be for the purpose of letting event participants know we are aware of and dealing with the incident. +- Banning anyone from participating in nf-core-managed spaces, future events, and activities, either temporarily or permanently. +- No action. ## Attribution and Acknowledgements @@ -106,6 +161,22 @@ All reports will be handled with utmost discretion and confidentially. ## Changelog -### v1.0 - March 12th, 2021 +### v1.4 - February 8th, 2022 + +- Included a new member of the Safety Team. Corrected a typographical error in the text. + +### v1.3 - December 10th, 2021 + +- Added a statement that the CoC applies to nf-core gather.town workspaces. Corrected typographical errors in the text. + +### v1.2 - November 12th, 2021 + +- Removed information specific to reporting CoC violations at the Hackathon in October 2021. + +### v1.1 - October 14th, 2021 + +- Updated with names of new Safety Officers and specific information for the hackathon in October 2021. + +### v1.0 - March 15th, 2021 - Complete rewrite from original [Contributor Covenant](http://contributor-covenant.org/) CoC. diff --git a/README.md b/README.md index e5953300..fcc23e20 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # ![nf-core/chipseq](docs/images/nf-core-chipseq_logo_light.png#gh-light-mode-only) ![nf-core/chipseq](docs/images/nf-core-chipseq_logo_dark.png#gh-dark-mode-only) -[![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?labelColor=000000&logo=Amazon%20AWS)](https://nf-co.re/chipseq/results)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.XXXXXXX) +[![GitHub Actions CI Status](https://github.com/nf-core/chipseq/workflows/nf-core%20CI/badge.svg)](https://github.com/nf-core/chipseq/actions?query=workflow%3A%22nf-core+CI%22) +[![GitHub Actions Linting Status](https://github.com/nf-core/chipseq/workflows/nf-core%20linting/badge.svg)](https://github.com/nf-core/chipseq/actions?query=workflow%3A%22nf-core+linting%22)[![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?labelColor=000000&logo=Amazon%20AWS)](https://nf-co.re/chipseq/results)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.XXXXXXX) [![Nextflow](https://img.shields.io/badge/nextflow%20DSL2-%E2%89%A523.04.0-23aa62.svg)](https://www.nextflow.io/) [![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/) @@ -29,10 +30,11 @@ ## Usage -> **Note** -> If you are new to Nextflow and nf-core, please refer to [this page](https://nf-co.re/docs/usage/installation) on how -> to set-up Nextflow. Make sure to [test your setup](https://nf-co.re/docs/usage/introduction#how-to-run-a-pipeline) -> with `-profile test` before running the workflow on actual data. +:::note +If you are new to Nextflow and nf-core, please refer to [this page](https://nf-co.re/docs/usage/installation) on how +to set-up Nextflow. Make sure to [test your setup](https://nf-co.re/docs/usage/introduction#how-to-run-a-pipeline) +with `-profile test` before running the workflow on actual data. +::: - + diff --git a/assets/multiqc_config.yml b/assets/multiqc_config.yml index bd44a3a2..f2146258 100644 --- a/assets/multiqc_config.yml +++ b/assets/multiqc_config.yml @@ -1,5 +1,5 @@ report_comment: > - This report has been generated by the nf-core/chipseq + This report has been generated by the nf-core/chipseq analysis pipeline. For information about how to interpret these results, please see the documentation. report_section_order: diff --git a/assets/slackreport.json b/assets/slackreport.json index 5538e37c..8058c9bf 100644 --- a/assets/slackreport.json +++ b/assets/slackreport.json @@ -3,7 +3,7 @@ { "fallback": "Plain-text summary of the attachment.", "color": "<% if (success) { %>good<% } else { %>danger<%} %>", - "author_name": "nf-core/chipseq v${version} - ${runName}", + "author_name": "nf-core/chipseq ${version} - ${runName}", "author_icon": "https://www.nextflow.io/docs/latest/_static/favicon.ico", "text": "<% if (success) { %>Pipeline completed successfully!<% } else { %>Pipeline completed with errors<% } %>", "fields": [ diff --git a/conf/modules.config b/conf/modules.config index 39e81386..d91c6aba 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -39,7 +39,7 @@ process { } withName: 'MULTIQC' { - ext.args = params.multiqc_title ? "--title \"$params.multiqc_title\"" : '' + ext.args = { params.multiqc_title ? "--title \"$params.multiqc_title\"" : '' } publishDir = [ path: { "${params.outdir}/multiqc" }, mode: params.publish_dir_mode, diff --git a/docs/usage.md b/docs/usage.md index 81181cbb..09080185 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -20,7 +20,7 @@ You will need to create a samplesheet with information about the samples you wou The `sample` identifiers have to be the same when you have re-sequenced the same sample more than once e.g. to increase sequencing depth. The pipeline will concatenate the raw reads before performing any downstream analysis. Below is an example for the same sample sequenced across 3 lanes: -```console +```csv title="samplesheet.csv" sample,fastq_1,fastq_2 CONTROL_REP1,AEG588A1_S1_L002_R1_001.fastq.gz,AEG588A1_S1_L002_R2_001.fastq.gz CONTROL_REP1,AEG588A1_S1_L003_R1_001.fastq.gz,AEG588A1_S1_L003_R2_001.fastq.gz @@ -33,7 +33,7 @@ The pipeline will auto-detect whether a sample is single- or paired-end using th A final samplesheet file consisting of both single- and paired-end data may look something like the one below. This is for 6 samples, where `TREATMENT_REP3` has been sequenced twice. -```console +```csv title="samplesheet.csv" sample,fastq_1,fastq_2 CONTROL_REP1,AEG588A1_S1_L002_R1_001.fastq.gz,AEG588A1_S1_L002_R2_001.fastq.gz CONTROL_REP2,AEG588A2_S2_L002_R1_001.fastq.gz,AEG588A2_S2_L002_R2_001.fastq.gz diff --git a/lib/NfcoreTemplate.groovy b/lib/NfcoreTemplate.groovy index 01b8653d..e248e4c3 100755 --- a/lib/NfcoreTemplate.groovy +++ b/lib/NfcoreTemplate.groovy @@ -4,6 +4,7 @@ import org.yaml.snakeyaml.Yaml import groovy.json.JsonOutput +import nextflow.extension.FilesEx class NfcoreTemplate { @@ -141,12 +142,14 @@ class NfcoreTemplate { try { if (params.plaintext_email) { throw GroovyException('Send plaintext e-mail, not HTML') } // Try to send HTML e-mail using sendmail + def sendmail_tf = new File(workflow.launchDir.toString(), ".sendmail_tmp.html") + sendmail_tf.withWriter { w -> w << sendmail_html } [ 'sendmail', '-t' ].execute() << sendmail_html log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Sent summary e-mail to $email_address (sendmail)-" } catch (all) { // Catch failures and try with plaintext def mail_cmd = [ 'mail', '-s', subject, '--content-type=text/html', email_address ] - if ( mqc_report.size() <= max_multiqc_email_size.toBytes() ) { + if ( mqc_report != null && mqc_report.size() <= max_multiqc_email_size.toBytes() ) { mail_cmd += [ '-A', mqc_report ] } mail_cmd.execute() << email_html @@ -155,14 +158,16 @@ class NfcoreTemplate { } // Write summary e-mail HTML to a file - def output_d = new File("${params.outdir}/pipeline_info/") - if (!output_d.exists()) { - output_d.mkdirs() - } - def output_hf = new File(output_d, "pipeline_report.html") + def output_hf = new File(workflow.launchDir.toString(), ".pipeline_report.html") output_hf.withWriter { w -> w << email_html } - def output_tf = new File(output_d, "pipeline_report.txt") + FilesEx.copyTo(output_hf.toPath(), "${params.outdir}/pipeline_info/pipeline_report.html"); + output_hf.delete() + + // Write summary e-mail TXT to a file + def output_tf = new File(workflow.launchDir.toString(), ".pipeline_report.txt") output_tf.withWriter { w -> w << email_txt } + FilesEx.copyTo(output_tf.toPath(), "${params.outdir}/pipeline_info/pipeline_report.txt"); + output_tf.delete() } // @@ -227,15 +232,14 @@ class NfcoreTemplate { // Dump pipeline parameters in a json file // public static void dump_parameters(workflow, params) { - def output_d = new File("${params.outdir}/pipeline_info/") - if (!output_d.exists()) { - output_d.mkdirs() - } - def timestamp = new java.util.Date().format( 'yyyy-MM-dd_HH-mm-ss') - def output_pf = new File(output_d, "params_${timestamp}.json") + def filename = "params_${timestamp}.json" + def temp_pf = new File(workflow.launchDir.toString(), ".${filename}") def jsonStr = JsonOutput.toJson(params) - output_pf.text = JsonOutput.prettyPrint(jsonStr) + temp_pf.text = JsonOutput.prettyPrint(jsonStr) + + FilesEx.copyTo(temp_pf.toPath(), "${params.outdir}/pipeline_info/params_${timestamp}.json") + temp_pf.delete() } // diff --git a/modules.json b/modules.json index d0cd2499..893d6c2c 100644 --- a/modules.json +++ b/modules.json @@ -7,17 +7,17 @@ "nf-core": { "custom/dumpsoftwareversions": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "bba7e362e4afead70653f84d8700588ea28d0f9e", "installed_by": ["modules"] }, "fastqc": { "branch": "master", - "git_sha": "bd8092b67b5103bdd52e300f75889442275c3117", + "git_sha": "65ad3e0b9a4099592e1102e92e10455dc661cf53", "installed_by": ["modules"] }, "multiqc": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "4ab13872435962dadc239979554d13709e20bf29", "installed_by": ["modules"] } } diff --git a/modules/nf-core/custom/dumpsoftwareversions/environment.yml b/modules/nf-core/custom/dumpsoftwareversions/environment.yml new file mode 100644 index 00000000..f0c63f69 --- /dev/null +++ b/modules/nf-core/custom/dumpsoftwareversions/environment.yml @@ -0,0 +1,7 @@ +name: custom_dumpsoftwareversions +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::multiqc=1.17 diff --git a/modules/nf-core/custom/dumpsoftwareversions/main.nf b/modules/nf-core/custom/dumpsoftwareversions/main.nf index ebc87273..7685b33c 100644 --- a/modules/nf-core/custom/dumpsoftwareversions/main.nf +++ b/modules/nf-core/custom/dumpsoftwareversions/main.nf @@ -2,10 +2,10 @@ process CUSTOM_DUMPSOFTWAREVERSIONS { label 'process_single' // Requires `pyyaml` which does not have a dedicated container but is in the MultiQC container - conda "bioconda::multiqc=1.14" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/multiqc:1.14--pyhdfd78af_0' : - 'biocontainers/multiqc:1.14--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/multiqc:1.17--pyhdfd78af_0' : + 'biocontainers/multiqc:1.17--pyhdfd78af_0' }" input: path versions diff --git a/modules/nf-core/custom/dumpsoftwareversions/meta.yml b/modules/nf-core/custom/dumpsoftwareversions/meta.yml index c32657de..5f15a5fd 100644 --- a/modules/nf-core/custom/dumpsoftwareversions/meta.yml +++ b/modules/nf-core/custom/dumpsoftwareversions/meta.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/yaml-schema.json +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json name: custom_dumpsoftwareversions description: Custom module used to dump software versions within the nf-core pipeline template keywords: @@ -16,7 +16,6 @@ input: type: file description: YML file containing software versions pattern: "*.yml" - output: - yml: type: file @@ -30,7 +29,9 @@ output: type: file description: File containing software versions pattern: "versions.yml" - authors: - "@drpatelh" - "@grst" +maintainers: + - "@drpatelh" + - "@grst" diff --git a/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test b/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test new file mode 100644 index 00000000..eec1db10 --- /dev/null +++ b/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test @@ -0,0 +1,38 @@ +nextflow_process { + + name "Test Process CUSTOM_DUMPSOFTWAREVERSIONS" + script "../main.nf" + process "CUSTOM_DUMPSOFTWAREVERSIONS" + tag "modules" + tag "modules_nfcore" + tag "custom" + tag "dumpsoftwareversions" + tag "custom/dumpsoftwareversions" + + test("Should run without failures") { + when { + process { + """ + def tool1_version = ''' + TOOL1: + tool1: 0.11.9 + '''.stripIndent() + + def tool2_version = ''' + TOOL2: + tool2: 1.9 + '''.stripIndent() + + input[0] = Channel.of(tool1_version, tool2_version).collectFile() + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } +} diff --git a/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test.snap b/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test.snap new file mode 100644 index 00000000..4274ed57 --- /dev/null +++ b/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test.snap @@ -0,0 +1,27 @@ +{ + "Should run without failures": { + "content": [ + { + "0": [ + "software_versions.yml:md5,1c851188476409cda5752ce971b20b58" + ], + "1": [ + "software_versions_mqc.yml:md5,2570f4ba271ad08357b0d3d32a9cf84d" + ], + "2": [ + "versions.yml:md5,3843ac526e762117eedf8825b40683df" + ], + "mqc_yml": [ + "software_versions_mqc.yml:md5,2570f4ba271ad08357b0d3d32a9cf84d" + ], + "versions": [ + "versions.yml:md5,3843ac526e762117eedf8825b40683df" + ], + "yml": [ + "software_versions.yml:md5,1c851188476409cda5752ce971b20b58" + ] + } + ], + "timestamp": "2023-11-03T14:43:22.157011" + } +} diff --git a/modules/nf-core/custom/dumpsoftwareversions/tests/tags.yml b/modules/nf-core/custom/dumpsoftwareversions/tests/tags.yml new file mode 100644 index 00000000..405aa24a --- /dev/null +++ b/modules/nf-core/custom/dumpsoftwareversions/tests/tags.yml @@ -0,0 +1,2 @@ +custom/dumpsoftwareversions: + - modules/nf-core/custom/dumpsoftwareversions/** diff --git a/modules/nf-core/fastqc/environment.yml b/modules/nf-core/fastqc/environment.yml new file mode 100644 index 00000000..1787b38a --- /dev/null +++ b/modules/nf-core/fastqc/environment.yml @@ -0,0 +1,7 @@ +name: fastqc +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::fastqc=0.12.1 diff --git a/modules/nf-core/fastqc/main.nf b/modules/nf-core/fastqc/main.nf index 249f9064..9e19a74c 100644 --- a/modules/nf-core/fastqc/main.nf +++ b/modules/nf-core/fastqc/main.nf @@ -2,10 +2,10 @@ process FASTQC { tag "$meta.id" label 'process_medium' - conda "bioconda::fastqc=0.11.9" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/fastqc:0.11.9--0' : - 'biocontainers/fastqc:0.11.9--0' }" + 'https://depot.galaxyproject.org/singularity/fastqc:0.12.1--hdfd78af_0' : + 'biocontainers/fastqc:0.12.1--hdfd78af_0' }" input: tuple val(meta), path(reads) @@ -37,7 +37,7 @@ process FASTQC { cat <<-END_VERSIONS > versions.yml "${task.process}": - fastqc: \$( fastqc --version | sed -e "s/FastQC v//g" ) + fastqc: \$( fastqc --version | sed '/FastQC v/!d; s/.*v//' ) END_VERSIONS """ @@ -49,7 +49,7 @@ process FASTQC { cat <<-END_VERSIONS > versions.yml "${task.process}": - fastqc: \$( fastqc --version | sed -e "s/FastQC v//g" ) + fastqc: \$( fastqc --version | sed '/FastQC v/!d; s/.*v//' ) END_VERSIONS """ } diff --git a/modules/nf-core/fastqc/meta.yml b/modules/nf-core/fastqc/meta.yml index 4da5bb5a..ee5507e0 100644 --- a/modules/nf-core/fastqc/meta.yml +++ b/modules/nf-core/fastqc/meta.yml @@ -50,3 +50,8 @@ authors: - "@grst" - "@ewels" - "@FelixKrueger" +maintainers: + - "@drpatelh" + - "@grst" + - "@ewels" + - "@FelixKrueger" diff --git a/modules/nf-core/fastqc/tests/main.nf.test b/modules/nf-core/fastqc/tests/main.nf.test new file mode 100644 index 00000000..b9e8f926 --- /dev/null +++ b/modules/nf-core/fastqc/tests/main.nf.test @@ -0,0 +1,109 @@ +nextflow_process { + + name "Test Process FASTQC" + script "../main.nf" + process "FASTQC" + tag "modules" + tag "modules_nfcore" + tag "fastqc" + + test("Single-Read") { + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ + [ id: 'test', single_end:true ], + [ + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] + ] + """ + } + } + + then { + assertAll ( + { assert process.success }, + // NOTE The report contains the date inside it, which means that the md5sum is stable per day, but not longer than that. So you can't md5sum it. + // looks like this:
    Mon 2 Oct 2023
    test.gz
    + // https://github.com/nf-core/modules/pull/3903#issuecomment-1743620039 + { assert process.out.html.get(0).get(1) ==~ ".*/test_fastqc.html" }, + { assert path(process.out.html.get(0).get(1)).getText().contains("File typeConventional base calls") }, + { assert snapshot(process.out.versions).match("versions") }, + { assert process.out.zip.get(0).get(1) ==~ ".*/test_fastqc.zip" } + ) + } + } +// TODO +// // +// // Test with paired-end data +// // +// workflow test_fastqc_paired_end { +// input = [ +// [id: 'test', single_end: false], // meta map +// [ +// file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), +// file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) +// ] +// ] + +// FASTQC ( input ) +// } + +// // +// // Test with interleaved data +// // +// workflow test_fastqc_interleaved { +// input = [ +// [id: 'test', single_end: false], // meta map +// file(params.test_data['sarscov2']['illumina']['test_interleaved_fastq_gz'], checkIfExists: true) +// ] + +// FASTQC ( input ) +// } + +// // +// // Test with bam data +// // +// workflow test_fastqc_bam { +// input = [ +// [id: 'test', single_end: false], // meta map +// file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) +// ] + +// FASTQC ( input ) +// } + +// // +// // Test with multiple samples +// // +// workflow test_fastqc_multiple { +// input = [ +// [id: 'test', single_end: false], // meta map +// [ +// file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), +// file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true), +// file(params.test_data['sarscov2']['illumina']['test2_1_fastq_gz'], checkIfExists: true), +// file(params.test_data['sarscov2']['illumina']['test2_2_fastq_gz'], checkIfExists: true) +// ] +// ] + +// FASTQC ( input ) +// } + +// // +// // Test with custom prefix +// // +// workflow test_fastqc_custom_prefix { +// input = [ +// [ id:'mysample', single_end:true ], // meta map +// file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) +// ] + +// FASTQC ( input ) +// } +} diff --git a/modules/nf-core/fastqc/tests/main.nf.test.snap b/modules/nf-core/fastqc/tests/main.nf.test.snap new file mode 100644 index 00000000..636a32ce --- /dev/null +++ b/modules/nf-core/fastqc/tests/main.nf.test.snap @@ -0,0 +1,10 @@ +{ + "versions": { + "content": [ + [ + "versions.yml:md5,e1cc25ca8af856014824abd842e93978" + ] + ], + "timestamp": "2023-10-09T23:40:54+0000" + } +} \ No newline at end of file diff --git a/modules/nf-core/fastqc/tests/tags.yml b/modules/nf-core/fastqc/tests/tags.yml new file mode 100644 index 00000000..7834294b --- /dev/null +++ b/modules/nf-core/fastqc/tests/tags.yml @@ -0,0 +1,2 @@ +fastqc: + - modules/nf-core/fastqc/** diff --git a/modules/nf-core/multiqc/environment.yml b/modules/nf-core/multiqc/environment.yml new file mode 100644 index 00000000..bc0bdb5b --- /dev/null +++ b/modules/nf-core/multiqc/environment.yml @@ -0,0 +1,7 @@ +name: multiqc +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::multiqc=1.18 diff --git a/modules/nf-core/multiqc/main.nf b/modules/nf-core/multiqc/main.nf index 1fc387be..00cc48d2 100644 --- a/modules/nf-core/multiqc/main.nf +++ b/modules/nf-core/multiqc/main.nf @@ -1,10 +1,10 @@ process MULTIQC { label 'process_single' - conda "bioconda::multiqc=1.14" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/multiqc:1.14--pyhdfd78af_0' : - 'biocontainers/multiqc:1.14--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/multiqc:1.18--pyhdfd78af_0' : + 'biocontainers/multiqc:1.18--pyhdfd78af_0' }" input: path multiqc_files, stageAs: "?/*" @@ -25,12 +25,14 @@ process MULTIQC { def args = task.ext.args ?: '' def config = multiqc_config ? "--config $multiqc_config" : '' def extra_config = extra_multiqc_config ? "--config $extra_multiqc_config" : '' + def logo = multiqc_logo ? /--cl-config 'custom_logo: "${multiqc_logo}"'/ : '' """ multiqc \\ --force \\ $args \\ $config \\ $extra_config \\ + $logo \\ . cat <<-END_VERSIONS > versions.yml diff --git a/modules/nf-core/multiqc/meta.yml b/modules/nf-core/multiqc/meta.yml index f93b5ee5..f1aa660e 100644 --- a/modules/nf-core/multiqc/meta.yml +++ b/modules/nf-core/multiqc/meta.yml @@ -1,5 +1,5 @@ -# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/yaml-schema.json -name: MultiQC +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json +name: multiqc description: Aggregate results from bioinformatics analyses across many samples into a single report keywords: - QC @@ -13,7 +13,6 @@ tools: homepage: https://multiqc.info/ documentation: https://multiqc.info/docs/ licence: ["GPL-3.0-or-later"] - input: - multiqc_files: type: file @@ -31,7 +30,6 @@ input: type: file description: Optional logo file for MultiQC pattern: "*.{png}" - output: - report: type: file @@ -54,3 +52,8 @@ authors: - "@bunop" - "@drpatelh" - "@jfy133" +maintainers: + - "@abhi18av" + - "@bunop" + - "@drpatelh" + - "@jfy133" diff --git a/modules/nf-core/multiqc/tests/main.nf.test b/modules/nf-core/multiqc/tests/main.nf.test new file mode 100644 index 00000000..c2dad217 --- /dev/null +++ b/modules/nf-core/multiqc/tests/main.nf.test @@ -0,0 +1,63 @@ +nextflow_process { + + name "Test Process MULTIQC" + script "../main.nf" + process "MULTIQC" + tag "modules" + tag "modules_nfcore" + tag "multiqc" + + test("MULTIQC: FASTQC") { + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = Channel.of([file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz_fastqc_zip'], checkIfExists: true)]) + input[1] = [] + input[2] = [] + input[3] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert path(process.out.report.get(0)).exists() }, + { assert path(process.out.data.get(0)).exists() }, + { assert path(process.out.versions.get(0)).getText().contains("multiqc") } + ) + } + + } + + test("MULTIQC: FASTQC and a config file") { + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = Channel.of([file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz_fastqc_zip'], checkIfExists: true)]) + input[1] = Channel.of(file("https://github.com/nf-core/tools/raw/dev/nf_core/pipeline-template/assets/multiqc_config.yml", checkIfExists: true)) + input[2] = [] + input[3] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert path(process.out.report.get(0)).exists() }, + { assert path(process.out.data.get(0)).exists() }, + { assert path(process.out.versions.get(0)).getText().contains("multiqc") } + ) + } + + } +} diff --git a/modules/nf-core/multiqc/tests/tags.yml b/modules/nf-core/multiqc/tests/tags.yml new file mode 100644 index 00000000..bea6c0d3 --- /dev/null +++ b/modules/nf-core/multiqc/tests/tags.yml @@ -0,0 +1,2 @@ +multiqc: + - modules/nf-core/multiqc/** diff --git a/nextflow.config b/nextflow.config index f73726af..dd2e16bb 100644 --- a/nextflow.config +++ b/nextflow.config @@ -14,7 +14,7 @@ params { input = null // References genome = null - igenomes_base = 's3://ngi-igenomes/igenomes' + igenomes_base = 's3://ngi-igenomes/igenomes/' igenomes_ignore = false @@ -82,6 +82,7 @@ profiles { dumpHashes = true process.beforeScript = 'echo $HOSTNAME' cleanup = false + nextflow.enable.configProcessNamesValidation = true } conda { conda.enabled = true @@ -104,13 +105,13 @@ profiles { } docker { docker.enabled = true - docker.userEmulation = true conda.enabled = false singularity.enabled = false podman.enabled = false shifter.enabled = false charliecloud.enabled = false apptainer.enabled = false + runOptions = '-u $(id -u):$(id -g)' } arm { docker.runOptions = '-u $(id -u):$(id -g) --platform=linux/amd64' @@ -181,7 +182,7 @@ singularity.registry = 'quay.io' // Nextflow plugins plugins { - id 'nf-validation' // Validation of pipeline parameters and creation of an input channel from a sample sheet + id 'nf-validation@1.1.3' // Validation of pipeline parameters and creation of an input channel from a sample sheet } // Load igenomes.config if required @@ -204,6 +205,9 @@ env { // Capture exit codes from upstream processes when piping process.shell = ['/bin/bash', '-euo', 'pipefail'] +// Disable process selector warnings by default. Use debug profile to enable warnings. +nextflow.enable.configProcessNamesValidation = false + def trace_timestamp = new java.util.Date().format( 'yyyy-MM-dd_HH-mm-ss') timeline { enabled = true From 3d374433876f193fa289306608790141baff9686 Mon Sep 17 00:00:00 2001 From: nf-core-bot Date: Wed, 20 Dec 2023 15:56:29 +0000 Subject: [PATCH 129/201] Template update for nf-core/tools version 2.11.1 --- .../{release-announcments.yml => release-announcements.yml} | 0 nextflow.config | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) rename .github/workflows/{release-announcments.yml => release-announcements.yml} (100%) diff --git a/.github/workflows/release-announcments.yml b/.github/workflows/release-announcements.yml similarity index 100% rename from .github/workflows/release-announcments.yml rename to .github/workflows/release-announcements.yml diff --git a/nextflow.config b/nextflow.config index dd2e16bb..e4367873 100644 --- a/nextflow.config +++ b/nextflow.config @@ -111,10 +111,10 @@ profiles { shifter.enabled = false charliecloud.enabled = false apptainer.enabled = false - runOptions = '-u $(id -u):$(id -g)' + docker.runOptions = '-u $(id -u):$(id -g)' } arm { - docker.runOptions = '-u $(id -u):$(id -g) --platform=linux/amd64' + docker.runOptions = '-u $(id -u):$(id -g) --platform=linux/amd64' } singularity { singularity.enabled = true From 220d815cb365f1c8d62bde2ef9897fe4626e4007 Mon Sep 17 00:00:00 2001 From: nf-core-bot Date: Mon, 29 Jan 2024 14:49:47 +0000 Subject: [PATCH 130/201] Template update for nf-core/tools version 2.12 --- .editorconfig | 8 + .github/workflows/awsfulltest.yml | 2 +- .github/workflows/awstest.yml | 2 +- .github/workflows/branch.yml | 2 +- .github/workflows/clean-up.yml | 2 +- .github/workflows/download_pipeline.yml | 67 +++++ .github/workflows/fix-linting.yml | 72 +++-- .github/workflows/linting.yml | 61 +--- .github/workflows/linting_comment.yml | 2 +- .github/workflows/release-announcements.yml | 4 +- .gitpod.yml | 1 + .pre-commit-config.yaml | 7 +- README.md | 8 +- assets/email_template.html | 2 +- assets/email_template.txt | 2 +- assets/nf-core-chipseq_logo_light.png | Bin 73788 -> 77165 bytes docs/images/nf-core-chipseq_logo_dark.png | Bin 73955 -> 27741 bytes docs/images/nf-core-chipseq_logo_light.png | Bin 73788 -> 23897 bytes lib/WorkflowMain.groovy | 16 +- lib/nfcore_external_java_deps.jar | Bin 2291171 -> 0 bytes main.nf | 2 +- modules.json | 6 +- .../dumpsoftwareversions/environment.yml | 2 +- .../custom/dumpsoftwareversions/main.nf | 4 +- .../dumpsoftwareversions/tests/main.nf.test | 7 +- .../tests/main.nf.test.snap | 50 ++-- modules/nf-core/fastqc/tests/main.nf.test | 265 ++++++++++++------ .../nf-core/fastqc/tests/main.nf.test.snap | 12 +- modules/nf-core/multiqc/environment.yml | 2 +- modules/nf-core/multiqc/main.nf | 6 +- modules/nf-core/multiqc/meta.yml | 1 - modules/nf-core/multiqc/tests/main.nf.test | 48 +++- .../nf-core/multiqc/tests/main.nf.test.snap | 21 ++ nextflow.config | 3 +- pyproject.toml | 17 +- workflows/chipseq.nf | 7 + 36 files changed, 490 insertions(+), 221 deletions(-) create mode 100644 .github/workflows/download_pipeline.yml delete mode 100644 lib/nfcore_external_java_deps.jar create mode 100644 modules/nf-core/multiqc/tests/main.nf.test.snap diff --git a/.editorconfig b/.editorconfig index b6b31907..9b990088 100644 --- a/.editorconfig +++ b/.editorconfig @@ -22,3 +22,11 @@ indent_size = unset [/assets/email*] indent_size = unset + +# ignore Readme +[README.md] +indent_style = unset + +# ignore python +[*.{py}] +indent_style = unset diff --git a/.github/workflows/awsfulltest.yml b/.github/workflows/awsfulltest.yml index 500a2167..1aacf8b4 100644 --- a/.github/workflows/awsfulltest.yml +++ b/.github/workflows/awsfulltest.yml @@ -31,7 +31,7 @@ jobs: } profiles: test_full - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: Tower debug log file path: | diff --git a/.github/workflows/awstest.yml b/.github/workflows/awstest.yml index 6b16318d..13edafbc 100644 --- a/.github/workflows/awstest.yml +++ b/.github/workflows/awstest.yml @@ -25,7 +25,7 @@ jobs: } profiles: test - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: Tower debug log file path: | diff --git a/.github/workflows/branch.yml b/.github/workflows/branch.yml index cc0e5a11..d98ab5f1 100644 --- a/.github/workflows/branch.yml +++ b/.github/workflows/branch.yml @@ -19,7 +19,7 @@ jobs: # NOTE - this doesn't currently work if the PR is coming from a fork, due to limitations in GitHub actions secrets - name: Post PR comment if: failure() - uses: mshick/add-pr-comment@v1 + uses: mshick/add-pr-comment@v2 with: message: | ## This PR is against the `master` branch :x: diff --git a/.github/workflows/clean-up.yml b/.github/workflows/clean-up.yml index 694e90ec..e37cfda5 100644 --- a/.github/workflows/clean-up.yml +++ b/.github/workflows/clean-up.yml @@ -10,7 +10,7 @@ jobs: issues: write pull-requests: write steps: - - uses: actions/stale@v7 + - uses: actions/stale@v9 with: stale-issue-message: "This issue has been tagged as awaiting-changes or awaiting-feedback by an nf-core contributor. Remove stale label or add a comment otherwise this issue will be closed in 20 days." stale-pr-message: "This PR has been tagged as awaiting-changes or awaiting-feedback by an nf-core contributor. Remove stale label or add a comment if it is still useful." diff --git a/.github/workflows/download_pipeline.yml b/.github/workflows/download_pipeline.yml new file mode 100644 index 00000000..8611458a --- /dev/null +++ b/.github/workflows/download_pipeline.yml @@ -0,0 +1,67 @@ +name: Test successful pipeline download with 'nf-core download' + +# Run the workflow when: +# - dispatched manually +# - when a PR is opened or reopened to master branch +# - the head branch of the pull request is updated, i.e. if fixes for a release are pushed last minute to dev. +on: + workflow_dispatch: + pull_request: + types: + - opened + branches: + - master + pull_request_target: + branches: + - master + +env: + NXF_ANSI_LOG: false + +jobs: + download: + runs-on: ubuntu-latest + steps: + - name: Install Nextflow + uses: nf-core/setup-nextflow@v1 + + - uses: actions/setup-python@v5 + with: + python-version: "3.11" + architecture: "x64" + - uses: eWaterCycle/setup-singularity@v7 + with: + singularity-version: 3.8.3 + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install git+https://github.com/nf-core/tools.git@dev + + - name: Get the repository name and current branch set as environment variable + run: | + echo "REPO_LOWERCASE=${GITHUB_REPOSITORY,,}" >> ${GITHUB_ENV} + echo "REPOTITLE_LOWERCASE=$(basename ${GITHUB_REPOSITORY,,})" >> ${GITHUB_ENV} + echo "REPO_BRANCH=${GITHUB_REF#refs/heads/}" >> ${GITHUB_ENV} + + - name: Download the pipeline + env: + NXF_SINGULARITY_CACHEDIR: ./ + run: | + nf-core download ${{ env.REPO_LOWERCASE }} \ + --revision ${{ env.REPO_BRANCH }} \ + --outdir ./${{ env.REPOTITLE_LOWERCASE }} \ + --compress "none" \ + --container-system 'singularity' \ + --container-library "quay.io" -l "docker.io" -l "ghcr.io" \ + --container-cache-utilisation 'amend' \ + --download-configuration + + - name: Inspect download + run: tree ./${{ env.REPOTITLE_LOWERCASE }} + + - name: Run the downloaded pipeline + env: + NXF_SINGULARITY_CACHEDIR: ./ + NXF_SINGULARITY_HOME_MOUNT: true + run: nextflow run ./${{ env.REPOTITLE_LOWERCASE }}/$( sed 's/\W/_/g' <<< ${{ env.REPO_BRANCH }}) -stub -profile test,singularity --outdir ./results diff --git a/.github/workflows/fix-linting.yml b/.github/workflows/fix-linting.yml index c1499ef1..d7e08c32 100644 --- a/.github/workflows/fix-linting.yml +++ b/.github/workflows/fix-linting.yml @@ -4,7 +4,7 @@ on: types: [created] jobs: - deploy: + fix-linting: # Only run if comment is on a PR with the main repo, and if it contains the magic keywords if: > contains(github.event.comment.html_url, '/pull/') && @@ -13,10 +13,17 @@ jobs: runs-on: ubuntu-latest steps: # Use the @nf-core-bot token to check out so we can push later - - uses: actions/checkout@v4 + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 with: token: ${{ secrets.nf_core_bot_auth_token }} + # indication that the linting is being fixed + - name: React on comment + uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4 + with: + comment-id: ${{ github.event.comment.id }} + reactions: eyes + # Action runs on the issue comment, so we don't get the PR by default # Use the gh cli to check out the PR - name: Checkout Pull Request @@ -24,32 +31,59 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.nf_core_bot_auth_token }} - - uses: actions/setup-node@v4 + # Install and run pre-commit + - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5 + with: + python-version: 3.11 - - name: Install Prettier - run: npm install -g prettier @prettier/plugin-php + - name: Install pre-commit + run: pip install pre-commit - # Check that we actually need to fix something - - name: Run 'prettier --check' - id: prettier_status - run: | - if prettier --check ${GITHUB_WORKSPACE}; then - echo "result=pass" >> $GITHUB_OUTPUT - else - echo "result=fail" >> $GITHUB_OUTPUT - fi + - name: Run pre-commit + id: pre-commit + run: pre-commit run --all-files + continue-on-error: true - - name: Run 'prettier --write' - if: steps.prettier_status.outputs.result == 'fail' - run: prettier --write ${GITHUB_WORKSPACE} + # indication that the linting has finished + - name: react if linting finished succesfully + if: steps.pre-commit.outcome == 'success' + uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4 + with: + comment-id: ${{ github.event.comment.id }} + reactions: "+1" - name: Commit & push changes - if: steps.prettier_status.outputs.result == 'fail' + id: commit-and-push + if: steps.pre-commit.outcome == 'failure' run: | git config user.email "core@nf-co.re" git config user.name "nf-core-bot" git config push.default upstream git add . git status - git commit -m "[automated] Fix linting with Prettier" + git commit -m "[automated] Fix code linting" git push + + - name: react if linting errors were fixed + id: react-if-fixed + if: steps.commit-and-push.outcome == 'success' + uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4 + with: + comment-id: ${{ github.event.comment.id }} + reactions: hooray + + - name: react if linting errors were not fixed + if: steps.commit-and-push.outcome == 'failure' + uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4 + with: + comment-id: ${{ github.event.comment.id }} + reactions: confused + + - name: react if linting errors were not fixed + if: steps.commit-and-push.outcome == 'failure' + uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4 + with: + issue-number: ${{ github.event.issue.number }} + body: | + @${{ github.actor }} I tried to fix the linting errors, but it didn't work. Please fix them manually. + See [CI log](https://github.com/nf-core/chipseq/actions/runs/${{ github.run_id }}) for more details. diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 905c58e4..81cd098e 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -11,61 +11,22 @@ on: types: [published] jobs: - EditorConfig: + pre-commit: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - - - name: Install editorconfig-checker - run: npm install -g editorconfig-checker - - - name: Run ECLint check - run: editorconfig-checker -exclude README.md $(find .* -type f | grep -v '.git\|.py\|.md\|json\|yml\|yaml\|html\|css\|work\|.nextflow\|build\|nf_core.egg-info\|log.txt\|Makefile') - - Prettier: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - uses: actions/setup-node@v4 - - - name: Install Prettier - run: npm install -g prettier - - - name: Run Prettier --check - run: prettier --check ${GITHUB_WORKSPACE} - - PythonBlack: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Check code lints with Black - uses: psf/black@stable - - # If the above check failed, post a comment on the PR explaining the failure - - name: Post PR comment - if: failure() - uses: mshick/add-pr-comment@v1 + - name: Set up Python 3.11 + uses: actions/setup-python@v5 with: - message: | - ## Python linting (`black`) is failing - - To keep the code consistent with lots of contributors, we run automated code consistency checks. - To fix this CI test, please run: - - * Install [`black`](https://black.readthedocs.io/en/stable/): `pip install black` - * Fix formatting errors in your pipeline: `black .` - - Once you push these changes the test should pass, and you can hide this comment :+1: + python-version: 3.11 + cache: "pip" - We highly recommend setting up Black in your code editor so that this formatting is done automatically on save. Ask about it on Slack for help! + - name: Install pre-commit + run: pip install pre-commit - Thanks again for your contribution! - repo-token: ${{ secrets.GITHUB_TOKEN }} - allow-repeats: false + - name: Run pre-commit + run: pre-commit run --all-files nf-core: runs-on: ubuntu-latest @@ -76,7 +37,7 @@ jobs: - name: Install Nextflow uses: nf-core/setup-nextflow@v1 - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5 with: python-version: "3.11" architecture: "x64" @@ -99,7 +60,7 @@ jobs: - name: Upload linting log file artifact if: ${{ always() }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: linting-logs path: | diff --git a/.github/workflows/linting_comment.yml b/.github/workflows/linting_comment.yml index 0bbcd30f..147bcd10 100644 --- a/.github/workflows/linting_comment.yml +++ b/.github/workflows/linting_comment.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Download lint results - uses: dawidd6/action-download-artifact@v2 + uses: dawidd6/action-download-artifact@v3 with: workflow: linting.yml workflow_conclusion: completed diff --git a/.github/workflows/release-announcements.yml b/.github/workflows/release-announcements.yml index 6ad33927..21ac3f06 100644 --- a/.github/workflows/release-announcements.yml +++ b/.github/workflows/release-announcements.yml @@ -24,7 +24,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5 with: python-version: "3.10" - name: Install dependencies @@ -56,7 +56,7 @@ jobs: bsky-post: runs-on: ubuntu-latest steps: - - uses: zentered/bluesky-post-action@v0.0.2 + - uses: zentered/bluesky-post-action@v0.1.0 with: post: | Pipeline release! ${{ github.repository }} v${{ github.event.release.tag_name }} - ${{ github.event.release.name }}! diff --git a/.gitpod.yml b/.gitpod.yml index acf72695..363d5b1d 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -7,6 +7,7 @@ tasks: - name: unset JAVA_TOOL_OPTIONS command: | unset JAVA_TOOL_OPTIONS + vscode: extensions: # based on nf-core.nf-core-extensionpack - codezombiech.gitignore # Language support for .gitignore files diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 0c31cdb9..af57081f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,5 +1,10 @@ repos: - repo: https://github.com/pre-commit/mirrors-prettier - rev: "v2.7.1" + rev: "v3.1.0" hooks: - id: prettier + - repo: https://github.com/editorconfig-checker/editorconfig-checker.python + rev: "2.7.3" + hooks: + - id: editorconfig-checker + alias: ec diff --git a/README.md b/README.md index 87f23f75..bd964cef 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,9 @@ -# ![nf-core/chipseq](docs/images/nf-core-chipseq_logo_light.png#gh-light-mode-only) ![nf-core/chipseq](docs/images/nf-core-chipseq_logo_dark.png#gh-dark-mode-only) - +

    + + + nf-core/chipseq + +

    [![GitHub Actions CI Status](https://github.com/nf-core/chipseq/workflows/nf-core%20CI/badge.svg)](https://github.com/nf-core/chipseq/actions?query=workflow%3A%22nf-core+CI%22) [![GitHub Actions Linting Status](https://github.com/nf-core/chipseq/workflows/nf-core%20linting/badge.svg)](https://github.com/nf-core/chipseq/actions?query=workflow%3A%22nf-core+linting%22)[![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?labelColor=000000&logo=Amazon%20AWS)](https://nf-co.re/chipseq/results)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.XXXXXXX) diff --git a/assets/email_template.html b/assets/email_template.html index 5a4548bb..4398d399 100644 --- a/assets/email_template.html +++ b/assets/email_template.html @@ -12,7 +12,7 @@ -

    nf-core/chipseq v${version}

    +

    nf-core/chipseq ${version}

    Run Name: $runName

    <% if (!success){ diff --git a/assets/email_template.txt b/assets/email_template.txt index e1b78526..5d158118 100644 --- a/assets/email_template.txt +++ b/assets/email_template.txt @@ -4,7 +4,7 @@ |\\ | |__ __ / ` / \\ |__) |__ } { | \\| | \\__, \\__/ | \\ |___ \\`-._,-`-, `._,._,' - nf-core/chipseq v${version} + nf-core/chipseq ${version} ---------------------------------------------------- Run Name: $runName diff --git a/assets/nf-core-chipseq_logo_light.png b/assets/nf-core-chipseq_logo_light.png index 51a83b3d789d5852acc2bb044650b13785c6bf41..ef93395ecd5bbb73aa3eeca0359b65461ce3389e 100644 GIT binary patch literal 77165 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 JceCHg{{wFPEFb^? literal 73788 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�ev`Q}H7y#R1zKkC5n?0_OP7^FqWWeXhX0t0pNK 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

    )bNtXB<>| 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 H?aKcGF<{p3 diff --git a/docs/images/nf-core-chipseq_logo_dark.png b/docs/images/nf-core-chipseq_logo_dark.png index 9f2b30100fd7ed5870367833ae6567d1dd97f407..b72c0163a6cc6bacc1eee30a8e038e50e3ba76cf 100644 GIT binary patch literal 27741 zcmd3N^;=tA&~30l@s#3FAh;8pQrwEQxLa|D;_mLn9SX%=f_t$-fZ{I2U5nez``z!k zf5ZJH&lB5cX7-%3*Q{9+sq|R}3!MZV003agev(uH01&kR00d+-ApDbmeR5;)H{Mnf z5=ycX5|m0#4(3+2W&nUkw(IwG=3r%_ArW5iGFY$0v5vc%cWh=;I)mF zmBw!Q*QiH;Lf?_M+h`~V3zZxqr8#77Er-^%I-h7tT#mYPNH zOX~Xp4YIzBb4*K&qz#z}S#&?cflI6(fVyE@YPeG zTF*_rY-PwNQYa%YD`kOsE%<9+d*AzTk6LbF#=-)HV}mMP*@~ zLMA54N

    U_0Rs~eOY4dxv`hmlZsrD%an>`q(A>`iOzigbYO`{{kr?W8IxyHE8J_= zmD%lt_KTu`up;vau*CcKsl0r^{jV`b8^vro0kf>eH+d!$hmws5@ja|Ywp4G8#l39= zFzKcGd~Gw%vs0Jd0pa(@k0^MDHy|ye)T+sDP(wahG4E~H{KTS$FQ{Bz5D4#U4QKOf-8>p|J@6OSGfe~Kf@$% z+qO#!VGqB5o8rqQwTRLJ&~^f^LoGE4=4uSx4{H2R1j$YK5|QQq^C7F{E_thYno1xw z(r^HT8o+_EVG!^ZC>p~V;QI5NCBXaLOpV&6!)yG#i0<0oKkZ>OTL1YD06dM78t~{g zJk#UmRm+|Lz#PsysDN~4b{a$kN-(av${WJIb)nF$m%TyVyi=t+{Q;K`fd69VvNk}U z;}HiGE`w$g8%r7i)$y2sJ11gh@Kl}{u5=UM^RxX7zd zdsoL_^ooD&8N|rq5f|}+TPP&ElojZYKiN((HZ0>hR3?k5qhsbMH(y|nIQ}oix@=-a zb@HM*wQyS_AT}#gQh5q7o-z?2fJ)qjsuh9AtG~#jcH5$STKDTUy`H)2HEWvLU@&9~}X+4M5(v;MFy~h#rs?g=J^#* ze~YE#1pc>uL?&L0*(T6MJb+$=duwu0c+CJ!?^}3;1{3_VyjPGJ+Bh^0b?b~@U<8AD zk#zrS5fxR#kX4a8LICbou+Tu)@(1#1OPb)7P`JZ&A&_{rqPKz(el7=3_u3^AB(eXy zU_|s60YAYT7ljxQ$jG>>a2gV;F(t+DpNF92GC~`vX+QuqJJ!H?+UFr|9a)T2_-e|5 z8Sav3HRx!rGiKl_XlG~y0aT>^v{y3Rs;CEs77_1f^

    )bNtXB<>| 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 H?aKcGF<{p3 diff --git a/lib/WorkflowMain.groovy b/lib/WorkflowMain.groovy index 2894a678..31bc8cc5 100755 --- a/lib/WorkflowMain.groovy +++ b/lib/WorkflowMain.groovy @@ -24,7 +24,7 @@ class WorkflowMain { // // Validate parameters and print summary to screen // - public static void initialise(workflow, params, log) { + public static void initialise(workflow, params, log, args) { // Print workflow version and exit on --version if (params.version) { @@ -35,6 +35,8 @@ class WorkflowMain { // Check that a -profile or Nextflow config has been provided to run the pipeline NfcoreTemplate.checkConfigProvided(workflow, log) + // Check that the profile doesn't contain spaces and doesn't end with a trailing comma + checkProfile(workflow.profile, args, log) // Check that conda channels are set-up correctly if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { @@ -60,4 +62,16 @@ class WorkflowMain { } return null } + + // + // Exit pipeline if --profile contains spaces + // + private static void checkProfile(profile, args, log) { + if (profile.endsWith(',')) { + Nextflow.error "Profile cannot end with a trailing comma. Please remove the comma from the end of the profile string.\nHint: A common mistake is to provide multiple values to `-profile` separated by spaces. Please use commas to separate profiles instead,e.g., `-profile docker,test`." + } + if (args[0]) { + log.warn "nf-core pipelines do not accept positional arguments. The positional argument `${args[0]}` has been detected.\n Hint: A common mistake is to provide multiple values to `-profile` separated by spaces. Please use commas to separate profiles instead,e.g., `-profile docker,test`." + } + } } diff --git a/lib/nfcore_external_java_deps.jar b/lib/nfcore_external_java_deps.jar deleted file mode 100644 index 805c8bb5e4fd43a12a5891eea5a68788309629b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2291171 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�tYW?&}i=k!VP!s3Fsl9>uU$+h>+D#gpmDc5f7BEy3^#*-?IO zHn3@wd7E!YZ1-fYplF}xqRgw#^f5k=)F~ysENJ>SCkzufdAZCGUaSfj=Cu?^HgRTy z{(kdh)H7N~{;X@U^`5a=fyHXI8j%-`*@$X;-r*NGD-OU_kqJz*(6JDY8HWu`cHst8 zrQ)JSm{=u!37tJ&M-k0x+8LW3Z9hiOWS9$?nAjyc>bK`cxVkfCJz|=)qiNup3xtZ^ zq3a#C5PFTxS!txrleVIiN>^uP^F)F>-$ddBU1ZCN7WlfiDYLV(#!I4sAi*{F?##;O zYm~FIoh^%9Q2Tp%q0Z?Bm?mwKH63lAJ@+#nG1|fah}-=n;WT4{7k%da!0lb*&UiAF zLheR+2gNRUTezIpal_`~MuwGV3|Xpi&+6Jwv%m+mvQSzU!DQ3RieQnS42Y&U;uF0$ zviotyupQgOPFsBIms&+yZ(kEYQPZv-|O5H@zMql09G3l0IiE3o`lpW)a%2DlpE zfSixyfng6TVAycLUSs(5DXm~c0E({|E#wnBdff^HUo74jpoWOki1CI@_c72SM-)kO zdYNuX)WS;Zv~Wha904q4jwOOB^Ar{|FgXD7aLo~BG~P*c@^B?{S?OAV-cU7vs+?-tt<$l!WxVzG_-3xr1GaF^N3{Te6h=JCxrm+lLj9D6)~&BOLHchuRCZ;{~@q!uc@5GuVsn_H^!A?q^4 zT4lbSJe?j&MxETi{2L;eD-^J2#Oym4&BT%Gd`~#A_G|YE+1A0`>Bv3W{u?&K7fiz! zPQw>a!xvJ+7gWiu8@v5FhYk*!EVloPvv-KHZR@smSC}ho+qP}nSYg|?ZQHhO+qR7r z#*6)*d&?{Do_luUWkzO<)GTGTUVCd_s}-h)1iA+wx`!CLhY-4l6xs(5+J~sD3mqC3 z0kr)$+N42`WBezH?5wP^uF4nOvdka(7+q_UI#;Zt3rN!1LQ*Gcp;t4dL=+Nv_ULk_ zZ3WtylxvE=*$*D|XeoV?3%rU~pCI0Ms!9<(dHf&Pn1j5vnjeU)VLo}fADa4I^ifUJ z*fkg?JQxz%;!3h{acf!``@Dx|*i=a0#57*ghE(PE`N00lYmX)M@@o4$BCJ`80!zKb zaY9iC#}puP$f$O23{HP(sCB&i_2xuTBIr;*(Zn>VWL>aXluujL#t1P4HQS_1s<`$#a9YglnliL4*EOW=7A4Wc;$~p8r_hfp!yLHCejqi0!x#D2Q z(nj%7&Dr(L^NW|-%%0a+`j7NXXR)1@Q#F^x{EWO}J`y67L*i$tg5@H4WYCvhq4uT> z%xiB}U;D_eGj@#!jzx^V;+BJ2M-cz=1aK8+xN>BkPB-Y3sQgq^xJrs!sWOpj z`30I5$Ou$D-}npCIDTu=fTO5&pXHItq^k9R^ASuuTOxVHFTcHdGMS{IrLvKeE*G`} zN7ONFP#=eFf0G}&-YWs8&y4EhKRS)pY0ZZl;@2-yKlFvFk&%V0@jp+u zANWG(zpJz;m7RZRuP^I*d?Ix`IfW)GF>%FFSczId<%N9WREczyKqONOr{u$Untwd@ zrQvfvNj+_c?XceS8953XUv_bKeRgwp8)$jTPG}@CP$bf%y1P84pR+us+e}zr5B{04 z-jd)1(TA1M>8HZz!L9VWV%~tevhsO9st3SL`}P@ z9U3Xl!%UxB)k7;oGbZdYTTJS#VsYy}ez|W5FIv{Qg@o2#QPyrUL6bOJ5a+6FOD=jukYAUc>3F$?3W-x7P}o- zaIIP6qq{gGv;!}Old!X;aJ6~)_8;)H&azVXEX0BsmUcmA7ES3AqeM{+qTSV`8O}>_ z8?fY71=KQHiehO|dARz;3NhFd*zt=<9fnCGc`rO|=MVS!e~y0 z=>q{c7b7Y>aszmB^b~pm10_C2i z(2BG?%B>iU*B`(sBp#5bdrvxSjZysZ-}a?<_j$90F}cG)({Z`p z?)618(0HC@jmEzxGG&J0_43`mbf~Q}xixa=>HlU_N27u4IGD=AG${NT$LSGiU)5Ip zHuCY~t%EuXX|9Z@?q%+m6l;5oa713V=HC(CC57$a6Prnzz~S$erlJp}IYMtg>;G9Y zGKLVJPq{ zHsIT^K{)ynNOGtcUcg3Q(@Kwt)F6qaV+|`GjQ-t-l(4^}&xD%rGPHrY-EWW%k_5S(yJHhIk0!dk#dN@u$BUEo0TV~{ zS8taba8BIjrkSh*;_cn`QY`B(dXZ&M+2m{I?LWn(?QaLgKftNbL)Kkg%IM1rB;=}^MGa=bVx*S)J^B{RJBs^M$W9*cWvK+ zH9U*xAt4+E;5@6(UqD`SKEm844blUk8o_&;9y71gYd0UQth8UB5467!y3r}R0btQjp+jp7WpuuWJ$6{b+lQyz_MGHb7<1;kVjp0DG>&ujrEg zS|!gZ1=&!kF7lV2o?TYmsv>5|F-bv&w%W$RC_@1PH7Zzr`JN-iWVFmtW=nfhjqdzO zMW(35Kavc^(9<^pe>0^nR1aMeE$$9PM19r{JqRwGL8X?$0Q_fl ztA0n-wbz#!Jq7(Oc4)zmUrEJ1V+*dOpf)Qd$eLx-WM-nuFM2hV!^ zN%(EA?+_G*P}Rsme5rL{>BLc5{DB=f`E9cH;uf?(+9R2e+F1PiFlv%}+lu?rD>zXw zu+qUtT3he<6s7%6F+-wj8k8+BFVTvtl%vt-r!!qoWq=CQlbo?3y{O}*#-#D#G8~T8 z!gv%-o)z+1Rzjd$Q9t2aXV|-9 zc)EX#9A-p?v-W4_BHm-4T}3mp zyXw3$-9C!|0@+9mH}i0g!Zx+bFS+0NGe)S9ut4on`f%t^^PMQ|LK^@Tzak68=5pjD z$ma3gz3>=h=@XO+l}L7HfRpgh4}tU=Y8Hwvo<3?dCVg6nJ~-?m5UR#u&3Rc_jS;`=`?+8Kjc>>xU4F`PU-z zKk}oZ692}jCn;MgZiv8n!$1!U(AeZPierZ)5;cRT7P^^16#-x&bjaiaXBNjYg*Z76 zjv^3FNTvN4NCPn}OgG9DUrAq40yHui3NMoHK3C)q|IWb_?!+o`8NvyJkd6Rb9OOErIpq+rVWg8mAYem$aw( zR6TS@7VYHM7kp1;mXfqmt7TFUiwY;~cNl-cl|IhOeYQ~SKM8my#nS$`0ZdV!K|pR- zoJu_#!9-q4sz_xR(WiDOPkLb>dmYSPBjnOhTsUS_DKS&hJdMHv6?92bB&l%Ssa!=N z%Z`jpLi9dL|1MB)$ib}9*_Q+zdjs&dYP%9_gzpJ@1lalYK+}23AtSoYvZLCi6@Z4h zmYRH`na!wQ(aDUxm_VdQ)Tp{F*y2Y17TtU@dNYANqdi%3ZCf5Wr#+9`K0_yHIw&K( zUDY$cutlNkV$6V)Wh&0j@|5hLE}E%(A+G^BH?(-?jJvjB5oyEyv(zZ!YhEWPm!Dp&7VXW>LI^03`C@gF@56P1#Ny zU_3H*p@huQ%O_<$Zq=tDy0_%!oC1SyOY23q-G>!O(tF>F1}v-R-ta($m5HINQNMCjhmak>_m${X@q*^`qonJFTvCh*uH7{lr%?ql- z76o_D0374>3M*J$l?k^{7Xx*aQKrGnaRJElk5qTCYY@%B`OWE95)~lo8jkDlM?D1b zc?{&hFuG(1aE$lJo!Kpc%M@oNn?E`DL~Fs98;Rs12cdHUvh6|JuZuIGBMQf!=egKy zSaQ~Q{QlDMIw800ZemY*@ezk6!6-!HO>jQw>W(zKCL13(?%TH`nx_%>H*gqP52X1Y zp1nEHuPOZ>;>WVy49pl7{1H!kJosDlGQ@vzgAB;2}ZxD5XTwy!#1^RpK$UOuaNeAKdig~RBzl-~;U?$ch2K2rvaBD_K z&P^6ahop^Y{7TX@B%ld8taQ}mgY)E$@(iQxuZE9{A7`)|klZ7hyXH}O-PoNaT(^ez3V9tTs+%Mdr5Q!wKts+2FXls=CFy-K8H~C%Y zkcQwP++<0M&FM1>61RTgYX!9_qIqa}jY)R)uXHT~bB>NOn+uIKW+`gQ`}VPfu=0t; zs{H2t^f^A4`%@!;Am3g&FoWtJVysIsa;-^oTVT4Hx8vhEu1V0`Ag70@zTeVVzn zq;cXK$WmHmZlB~Qv1546IQL9kk0Z?y%udlzLkuNew(PFA+;|m6?Feu)-R?ANXnW| zr^7Zk(_U3Z9hkyv1CA-Dg>_n2+Fv5kC7eh#JTn7ebNbP0JA^V|qUzz3mOX*lJ?FdHP}!7(!wCE?43- z%WE5ODV|wAAgKIuNV5(`ar$x^P%;XG10M6TH(@#eCj-_;N^$y#`Ve`E4!yD)PtuiD z{{)%;bvQE?{iiYbx+YJMn%X*+TXW2qWI`D5n&YsL-P|40TZ%KpDg2>*);RDD%M zbV2&25=BWC20%uFRg%N!pVy>Rg5qbw=!Mkpa}Y;SgT~ynEPS-?a$jl2X=-WGurjN_ zgCJzY=3FStnts$hf9#S5j*s=F=JkBoYPosqw7~WGba+<%6+;jYg~>texaTX>67bSr@RpmXR#E3Ounl6DV?Tf=b0T--GsV^jOZ>R_wTPo8-kvOq8` zR@$!)Z&Md=II-axVsjJjD$A#mfqssH*WskitmRFNrW61O>0h2l{sprHZVup;(;@F$ zE6LYQnF}T@%*u)6BR19jYN9uDC+)#f>nf?~;T2)=9_MvM1Av_EJ9lvj`+`(b_PbQZ zCI@~NNXA98Vxs*OsB54J&{8L5|4I==$^9(}F`UuR+`EJ|*F!Kk@4R?{*=ef`_&q&| zKYq+=!QE*H8l7mFSGKMl*aZVw(W*pJl~2{;UFU7PHLR{8q=s+RjMnRjPd;blm;SNOz`DR}4)< z&%hXv$}G+@0v^4(2L>(EL^}Y~S7-6z5;jq6^byKjBKrE@_)|BEzmv~m?a*`X?%E=0 zYbAp-Vrb`x_9@YI4=~RMT|?a2@~1_v0*@8FVC$`d)CZB#clOIeZw$2toLFwTcS7w2 zhowL84n!ltYiEk>YB+LDIbM-V6o+Nyg?S&Y$|H5@2o6*doil8NEQWBxx%*J)DGt~# zk!$s?$y9Dr4VVoUTOTqo2(Cw6K@S-ETT_wJ7LCYyUt^IebD5lU<-_JuO_e+nV|S2h zDatet(qjb#H@Py6$=}x?+x1m+)m5 z*caT=EB!_Bg{d&iG8ouO&v^haDHBAM?ia)Vs!-3!skX1Iah+loBx5B0+~3p3MJ4_? zQk2ZtOP9yrC?OX#nRMh0I-&fo2GcctV=9!hvWvg2XR6r<0UPsJlT?R9A4tXrI3l;O zmndeLdZspak@;;sy>!o{)!1xX@e3NIqGS0NEhP(_!3ji|2{&PT@B9UxfFg z&c=t5|Lx7h#5M^k zX;`dKtdeW6eK0LR=f7x;QnAECEOLd82~YucAMZ_gl*-X)Pq_z6K5atjf?=>Xi?$&i zXUVV3)%}{l2(pdv2H}z{naXE@H~B;|QIAy2>bfw;sG zPUeoh^r&^idX}e$&?HrFl;w-W8yT>{);pZPI6mi%)xNTmy3mzP_mi1l4Z^}2B)}4Y zfI<8O=jRD8$%T`{^(#oiGw#W(G^uTH4uSJ?^pHq1jB~Q*;7hy;wBvvg2xo&{XanLj z$lMSEx*)R?%5%d4rn=#%ziPpby52G+-S56+! zT^T%=B1_Q2=nsMv8w3K@PgV+35PK7HiX$>NxhiCpNs5g+IxH-4O{}yakr1?H8n(tJ zNVmF2!%#~WIaHu#k6jflj-&`FK~me;i`rLjm&k$TB8M@2Z&#VyLdp4hhZ9a(OW|K{ zSD7tdn8S>yhROfRMo~PVDbdWwsl;<7TVWUURnsoZVtTIff-J$1UP}!&gXb2tc3&iKvv~5*EOclX^~}Fr`jO^^?vK z?BB`LQB-k%Dkh-eLpsdTI5J2vid#IMPw;u2*HbwL zKVrfi5VNds1TWH_o;uGRvcUM;F*KZvJvTeClu)u1m$DR-v3BQt`lKu;jW9rN^%h+3 zNzR4UV6Eq$^9@D32reA-*Do*Ff9tvbxLE$Ou{WVLw=vYCbu_awqBStJx3RXNm2k2& z)3g3RkGLdNZCk_@1zWOjs;a z)@h(~{)Q08o03h4<(-e6EzTP<0}AsSbhh(noRT`*aeSMdeym$alPSrP!Fihv;WBi; zt|l0(zl6`8yXHReKG}5Waky@~*zs~YAn~<1U<80bg(lKQ8-hSZ8xEKEw?oD0d)8ud zPmCbdUJV`r=Azj}!sWr=6$g-oV7uyv%(UA#`}*SX;Tpi5X_pH>2_GAI*c^e?as{Am zzs2UE=#%`gTMkOOgTzgXQGGpNhH=Y^nMUsWFd#h6H9g?Jh}Vwkg;$?A#$y`DbC{9DpG!3z9Qi#Bpw4CQjbh1*5EYti2hE*OpeO^nX=An<^9ZyFc6;03wQgByS=dH z;+osg6vJg`=HJDgw*@_&+e6Ac@u6k8m4hJcBkNPzRMPcuyDi5#&;m%$eU2F|Oq7!s zIof?2i?g8LeO*{CrqMxOT6gLS6+pO26BJ?yD*HzbBgs=-P~K}V6-DN}y%N3q>Cv_& z5e-tpuAcl_H9y^u$cbSAl4&CjQ9i_Q6dwaC)XaWj03^600);k#U|=ke9#7I;Rq7_? zH)zL*uB_wgh5>xIsW9K%VfNvuygID7sPcTGh|z$}JWjH-`#JYt5JaVTqsiGbb#vSx zk1LJ&m>yfvXzcJ}v<|fE@xQ4c4fcf+8jC9)j%qNNjr~09=`@mYKLdV6Q8SAqp>aU0 z09yh2V5#LzD76gKumm8t7w8R}h$1%~6@)D;Y$bwp1Z)QX@Nx=>^^%dB=amHrd#C82 zqgMWq@J1S9_}C&gTF?q;7`nw^V&+VxG0~KK($O{78$2-2tFVDqTn(~P)8w+L0jNbOBc-s>xaParFtmXzH@Uu4V`%!y1I4>m9Lxq| zji_l?DlVp-ZE|9SdvN7CUtB~8?eIzwgpXE>^vaeB&*VYsHqVmtB4#73F}cn@`?>yy zn@xBX#U()xf}jfCj!XJP)2{!_q00XR0fZ?r?l!vT}t5xkZQSVKm zT+10u?qD1G;?(hCBT{B#e2SVDO9f-_=Z5OJOXzYvd6XKB)Mcgc>L;3!jEk>L^5V(_ zPK4nqsBy!HPLDW;OKL6x$uZ0;VK2XM??(zlD_V!Asv};&aUbNxdXY?wH3p%dB7W}H zfYza@P2e7KLaaD&cXTk}Y=Hv=!FklX2C*jtD?UgVLV;wRN>m z(!HIYE#eTwo<1(Ywg3*$-5Zr6!A-C4LG0KVF^cT#BU1w{-u#FfzD4_FGZOj6qw;A~ zLGn6TT>;P)r9i+ac%zrS`d*X=oDGItmVM-ZJjMUOA!JS8=qzw{rd$S6xr&l{~>|d|S5@rQJf@jtBG`L1Y z>;lh<{WWQ-OM;7-r{ii=;1hnzv`v!86x2(e?;dqhQyzY-&N@t(TLoneP6jYUSVV^`|-++&VLv#sg6NQFCA=bxp42`&Qj zz+wv^U{SuzOQ>>+UN}h&e}EX(RJegK4Hjx=vOp`kC%*ysVzVnIX+Q8TPw{!XN(FE? z!ShlNw-aSs&fsfx1?LRc=QU2?@Sh9goRHwZ9j1HnC;3K&MWr7D$R9BT9I6H~U_CYm zpVZZwllC2BpTeI}z^`0)F*3Kwk$gZ^Wf!O`$q{*k#bH%hr1^=g8oI{6EZBZpxYEo| zqsP0z=jm4sWZ0=g;eKX`%89ah`NohgQhD|mlqVQAc{OIaYhRR5GW#kw%$4nd_v(qz zbSjKdONWK&j?73_u@;zJjI9gldn!?%%1<+-a`Re3H|6Z7H;>T-CUDBJNb073mDvS-tP!t_KELZ zlfk{xzE0dhICO|FR_>su_kMSVLAgTREFgXmNY8cosnk6jx?*Bjl*l_VV+T!0Z2%)* zc`&UFC;stf4^zQ;xTi4p-?%plx2*kP6>w#J@46D$82cvvZ z*S&fq?!h7rnRup*2p=dg3WqEJYuJS{M~{Sp za?btf$TWCYeZ$UMR70U~+f(l7D%MJkymZv{J$1$+cQ;%Crr3PER{-!n;KC}gn)E70 zxJX=QR3K&{+qkT_Oj;!~A3XX zN9t&Xl(i21F3=@{t>r;|A^tRkE`Bh|Qh}Vzm{?UkUYicEoaASi-jU-uEY>1Aksb@_ zq(nU!Znc8=pISD8OsD|2v#Ep zZU!Wv49QT=jk_bk6y$0eOjgP$IBt(}AA7p6ofpql=#0*fEKzv4bd+!ZNUXN5XSZ&) z#3npWGjO!`5h7Oj>+_GyVS4~6i2muVG5)KA49))}b42ZpOl<7`uS!SL5_1HZn~*0t z-&9ipX#&A4q!vW5xNuhdYH)6VTv(h1JKmmXjXsO%KD;A;S>u{vq6o*0jkZHPqfmOG zF)9g33=xlF9nBV-kAYy7{w>rumk$?Lcq69yRMhW@kSshO_tVtFBqfO~9HkJ%+4wrk z;bwDXlbH8?W`q@BGoYmcpYL8^xHUxuT}H-r4o0}w4Isg@400557WhYo%Z^e5NMf zCMWc_(ee;kn-lrM;14NUv#=AjO?bMSh7wf$MGiBs>tBI`!xCstggRF)7B2UCA5*3! zTy%op#F>MC><`%lwRMS@x!hy3=i>V2JaAgS@yw#=T@mUG<;N33Gs$VZ>JD$kh|sTa zxtS4+z=xa&5qWAP^;ebZ?b*2XPSbICj7QP4q?Yngs?O8aXh2;!D2ho9gO^|2>?EL3 zrG$T%I8kfUL8~(k%q1P!(euW^IS?swR~j4n|3$s#d;1l=-z!f7q z^oLvg(bif~+u!561{jE=9x|^&q0dQaK=J`V9qRxPRw?45HJ46^DjjzT<5KeGqZf(G zuWc-E7*d%V!hWK7ZKXO^s5h0{)-(W{X1J7zFmKO|_X7%#V|^c7>$8IqBP%aIv_jkZ zLyIgZFlQ+*df}%QM?Ae+DMCP?SdVXPsCi##S?Me8y<_$Co=7enU$ngzXO^X>3Zf*i zG6@mfs_=xU7s{eHI_&BKHChMX>y$pms!Hu&FC6can0Mb<<0I@Ztcr8fU4y<** zH{m)K!UO#>8-;_bGpvfX-fW9s=3t3(F`#+}xu`P1@b#1IN!(}Dx6|07bR%YVf&}245^$r8K`*>jGjsx{Q7}jPt!_!HtH-n33=YDS^^!*mQ5V-Sb zz=+fGlLuOVH3U9Wf3>GgMXWa*{sQ?y;%zl-$rU2i0NkeT5nU-<;u6 z-KA$mOOt|JAfc`5Vnb+XT0Vg?weD_IEjzQxy`N)}1i5WUOJqWj|1!IG%@I!Hvbte-C-+FVzn^{ySDC}Uz82z#CAa-G4nyYs` zOJCbn-i2wcORLhmZNdZTL+P30+~(n1;U@)FVk05azIo`+kDCB=bMU@w+407PVYav% zD09YQ3wA$9Uxx`2NGE)jL-JcTF4{zVVj;26#1?dBkDf~w<0p%ZRv!UX{2swhH$P^2 zVo^=E&*cuoTa3FkoON5jRr3^yR92?6%Ilfn`eQB}S%=aprR?(96nP*le-KX|CVhi! zp7Vf-=?VB45B$Lv)O|gekC?G75a!0^=13d2G;S|)`?@psR7F2$-?zS}6d0{MlT9uP>sX|w&_YR3 zX=OpFCFZkP8khn6*OHuN3)UBT(7ws7UfS{_KSj8A9@+VG2koR@Nsr3-RNk=eh)#*R zt%4F3ZZi8ldRNJvn7kit- zT9wZgpE7`sB)(7WdEz<%{-g16c8^h|UDU%@+OlzPLA_7vrvsNoK5yBT57O}l+k((3>{O1%x-WF>C5JL<0 zd)&up6@lRKxbJ*OHc^*B5gZDZ;$Y&&g{zyF&=hTMst}7Xwv_cr~yw8k81qWgb(@GMg{MGJHh`y^DrehTO%SxM?GspJ$u9d_U6C( z^GV4NmPkfOBi}nKRw>pkN1y=k?1?x6X6%qEZR5&RO5`EC?3XedRxJ&5oKQ&ea`N)> z@Nz#-c(`ztB02U5{rut5J255^gGhOUNDPBedQh+LE$S_8xyG^Y=c)H?kDX4pcjI{% z8C(v~TyRouGJa)}dHR%8(McBrKd=bfEU=XW(0!48l6~WTJQPHpe%VwZW_iIy1c3bL zQc`~*AU$||eTcfm+OS&8XfRa#{`zG2i7;d#!n*j@AT{AliA|A8l4ZCSL>D+01dFha z(2g*VP^ZDJL9fBjL3dUhxl;s|D_{6boAo`u(R5WFVg4zlQ5q<9y^-3?R}nh>;_tsJ zWr_heW$l`Iin;SoU{r);b_vJ~Ko6C^j4gIQSYs`L;R@1n(1%DKqA49ziIC+$oL~va zWNr?A5oC5R)<8ME0R*}#Fp*nle^VQ>(=bB;9a(oj#R!ZVb5X*K$GRKP{V`?hxPW(? z@=3U_(R4Hu70XrI@IIc4xl{=^vC8!BX6N@UFgFqH8}!&1`tf`yJT&E_lxOnzkW=vt z`IIJ6R0VT?Q=R_2{lmDCAWS$;B^?dx(XdgI^C%>UAahia$&w-4u~u7Xu>`kzv)Ri@ z>Yki!8rGIz_Fm@&XzjeE3 z(pcil?+u@1(Y%?Sm(HVPqje*GLM)aeV%O1#->$1sQ973W#ig{aV0T<~39G`FBszFce;NdCqLY&}qs=BNpy-}5x^jdh87Ic@3YN`Wa83fIG9X30A@~GqPIuyDWE;@lF;@Q+4k|i8g@!=#FDbTTS=sCPKqqlQdX2OtY0uv zlj^e$PhF-~P&Jd=&|8h&Vj|Shxo0iG)n~3dPayuC+)ox*IVx7qu@@+L;ts;nQBk2~ zYk=oWZbnkD0In!_LK2*>w>TOqtIUSqP&z$^3ikX@) zN<>+fykDpho?uRnLQ0eD11oWe3x@ipPc_WHXJ5x8F&CvP(Y8GrW8|2Hq`j3tMwT#2 zZqKZvzhHEgq-zUD@!gMd`k_ZHHgR)c?ss8yM}5yza;OvNbjgJGN;%S=7Lc? zGILH_5zox+!#kfoQ)q0fn1wXWW>QMY{Ai`eZageVStvk#5&PkvCFa76oXPiQa7rE4 zp8NZ(-ZEsP397oWxUo3VeJ918*H_ak6zeZMXqoJwM^Yvlr<-r)1i>Z^PIEqaQRGa} zPc=cQJU=k{(3%a8ge18H`0kE02Ivz0n@^k{YFcF4WLkBqGZ&CAonMttDm)YJ9OkOp z{OWsJTPpone2P8yo*yHegN)_dp*|ZnO2j3EvPWDWhLz7a7j!D&NZ5|Z9hxollgVfY zFc)$v`AA4Z^u~%iEDQy!-+RX>U6ue5@Fv0W#*Fp%H^x#+tF%`P=Mt=1iFe}nl6Swz zU#R9%-8$*dV3S4iOQjxznm3@SbJ@ny1vVmVu4-l(bJXo+bXQrIe$n*+*(OxoQ!LM_ zj$O_zZ4B+Oii4;e6x^g|4)^F5gmj!p)-CudxGIFIFjns@(=O8hQ-{vi4WSKTPN9wi z-e07)J*CQyL|=rNmP12RRcK@wL>N>U1nokOWu~QMs)?lIsK}u-h`$kkqaufkgoXPGS0_dkswaQ}+N2}O3NQ#q5Y6@eYn$O>_4|8?<~&T=+rwKAes zIcAWB8)L%>!uiy0wMufXutumM+xOEQLBk0>`n1e+VWDW|$W>A|$mOr)*%|X3?En^4 z;u4|DNy>qS>lf%h_sL>opicaswzVb?)7* zf`Y4q;~Qdv_7ho|Gyj416T%ma2MiOZP8tj8mYTDhIzKU{C*a0@ zN;AR^bL0ib`lRblf78znAVg?!w>Fg1E+rH~3dI0&Wu0C-vV(qr_c^o`^*O8+SJd?e z004IVF4p%3%2jPp0SoyyG!%DN9v~*nwD%x$50T*QuF$un^{C`^Hv}*nz7BFG`~^Py zfRPvF77^aUHVT`Un&6$6a#-SHGy3G}B?$Y+14dQrb;bE(I2!fxr3$;J;Xs&Er~csC zxzlol(z$ay?3=&WBIxS98i%+huhwh8FC<1Tgz~%Ywh;Bt2jU&+hkCEB(BnP^fX@+d z=_jV((sEv2X#R7lpD)H5%JNew5Ah_PQ;>i}DQdRiA%@%-Drf>D`5VcNt)e(h!2s-sF3)Fr%!f8vM!K1n7aVUha;wF`N?zCj zQ){gO_&tIT@KFpg5*uNlU`e(;TxhvzkP(ootS&aCjtQz~ha6IQb}~&RDMPjxj@5BB98orLIoCye_q7UN$)9b18NnP!nfhZYEh)-P7fEJSZsRT2?lwn zF`g(gl)muT6cntWO7Qx?g!^eS@%M7%hy!155!nI|oT{0!jWb+)FAf#JLh`hHB(vywW}oeG@?oBHsr8gadE|wh(0od_%crY20@9emNq!99yEwmnW)DfO(|oC z=(EzVB{hSNP+_QC=VoxU+_x33imKK$cwCF&j*pQ4fxss)h~NLA-% z$up!o-V|$#PLsR}s3OUq5t~UM8vMHqHU-i$Z}5DTAZ)2&= z@9mA5$41PfwULSBN=d-O6>Z%edXI&sG7^GY!%)>@v<5hmtG=p1S6_0CA@~*I`%y%Y z3pjq$k+>RR)jq81&-8OE+!}>maIrxt899qR+8^7lZ*xi%V`B}4(dzOTV(mVH9)y~f z@~kyQH3hMua0#%op;`CC*vpe-l;P|&B!lGC>{z!3$hPV-j5^@!!6+6ss!4S<`EKzf zkErs2t)&*`Hf!~3sT$DwD#GF>bST9^r#4EGU_g@=d8wJ4Pl!COY}Ww@h5>zzDMpuO zhTv_`YoHvgCnLgag_}tME|s;(b7RV>ISVBD8I{N!EN#OSmRfOTK*N^pHD*j71L2EG zd@F$4@QxG$!s(%O-Ndt$LlAXa#lLPtX6|O<){AKJ znVJbT{A%csawyIj;2(G<33D}k%#EU$_|>FD8T1RT;pi6S^bQnu5sKsD;ldd?-{BSZ z#>y0T=6&+)m5m{uUY={=RKWGCCHc)9dX<7uw^z5i>4~KUdAY|wf*OZcUfg{4MJ79g2_3-6+gni=)D!9=Wb;+or-l%s|MG_H`yPjvV4lw-(&~1^S8iuL- z^=E)f$6vlCL)Cb3`Xq)14YVu=j5g}QZBK+zkf|Y6L&VC@0^t(oobDxxcl&UzB`LWX z9&d^M?#OKz*CiYV-v)yvcw?U;2y~jf(UUdr1bsq#7^_bj{~HbxhLBb-Kd}|?^KlF2 z3#<|z<0yfO51c=c3Yc}uF2N{}E}-A9T^wBf59rxNQ8z7!NW_3;{hxF2;%d_!Z!war z0J1E9vFQ|z5ntQA7CG(Waovg|-d-Zgt8 z{;pU!9#O3xUr4P$bFIukihF`}0d0%PxMd^>mX7HBP3C}k0MRv~aZyTU9xmeS0w1(EMN!JKB;_Y#nM40b2`CT6TKP`c0Ov>*2urJUlLNiI2;MZ z1#lUY@(mC>3z@z)cyhaT`VYY9?g&S&kjkzYP`A)1d+Jnu4#8=4Sd%A*`d2->3+fyB=jx~7F<_`+qpLxflnw=J0yt? zw$(xV^)xwXq%7I)NKyhklzv%BaocWeydB$}Qe8oXs-o_H3ta$svb1fyi*=yR+Qe;` z&%8i$njTd&>=Xrle2}@!Q4EECbA~Cc6vSHLEkTj@N-s%@4`=O$=|*XIGpCL?>r?Mh z86sI#Xg4jCP7EZk1C^??`w5H6k7qzEvTpeUZd5U;Nde6Sxn1sZ#+>Y6v~2q8pJ($Y zyW}N~k(mUP8tG6O@vx=&H(7#PNePoqxirA*Ke@F#lQd*G269noP|WSB#rx1E!>m%& zRoVbfa7#xHQ-WI3V6eyJ>TNOx1OrIK9nxKg603y|9|{_u%nNhGTxQGmc>=7pg;qDY zMYU*-<=w%hlgxSoQ?e$|nwQMhrx~YO0A7ERi6ayX6Lz2waPn<*z`!_jyIq1-{$bTT z`#@m$D{NnHRz5V21|yKsM{E1{Z#q_$KZObg;I*n0{kuEI8 z(wRM)GcZQxz!g)*iCsqQyhi%Gg=4+gHh-dS+FaJYl6Bp=Vr%!5Ze6Bg>vYwyku-z4 zPRjC~Em6+Jzuy)?*%I=vCC1dHb)_DoWBT)~*)|kx2khsicjk2TEbRms+#lFsZG!t8 zhh=A(#{HW9rA4kFMX7eMxSk^zgA|0V+v>ysE(zWqTw!#NK>ss(sC&qJhEJLXz>>IS zyV3Y|$@1AMC-#cnyY1}bT~z$q6frAYVgp61w7AJxfr#J(yQk?Gte*| zf-7e1f%@dT=kvYgb=L=V8?+WQ=coWUI@g;Y$o~mqo%Yl>*8{{$aF!LsOLErB{~Fa% zZng!4JNF=#-+i?=;3e9R_5lCYQ*Fcr>J}V_`Iei@c-Ib#o(@VD%@sj5Y;ghPg~uE3 z6rKK|(hqmP)bHfBa}oyya|HSWoEFU$e&pz3q(2Mpy3n@7vD5GmhsO9eu=$f#)x`A?4%BG*BJc#30ntg)t4yVY2&SkD zdFL4(qe4hpOVAJgzW@25mZfe`1EW5Xuwg+eGCOTA3=M@N z|De-Ui_Q+-=IkXXtmQ5mt-bI-8?k4wM(RUD4y}p9+hCttYxzzSQNA(5759pR2M);P z;$?PF^kr2D>|EN@UshVJ{}Tq6F>{ha^?BniH7Wk(X3uZgaR2!wAeuM*1@UVVfZ~ZD z?|_!%E4(M|h4U*9pN_ul$#fl38L?^h&!$4fhIS(cijD!8ZCq1Kw%t|ELuALXb;1>c z&-%gSR*Yu5;+POa_9X}1l6NNur6kh;spf`+afrc4Tg$SsF_VmoMuS8BR9*f8E~OHU zKBRfx(#Bou6%Nt{X$XhT#8k)d^<|@iN`8RV*l)`nn!oGs>^C8n3+7&>(Nw8l*1IAm zrqnQ3W@H(eovL>1jpV2@bSXwF4n;BB)CH7(-LFw-&&5M}OMizcbpeq$*?z$1#MzcG z;T5j$Qe$#sUp1EN)1L_t5im0t7V>8eUuO-{D-NG;4P;#O<6d1f5WOoalEfPwObn1X zgabf}Aw*?i7>^wog%`M;BZz8XjHsr8#ATsJ6r-v9QMjn*X@Y!SlW|F48lhHmI>x|q zA=W98=joPw=>{>@uigYbJRT3qJ#~-SKA+p*YVRvZ!r3~Vlg8=VD#+m0IGQt$vA#2n z$~Urirff&v$i)}%25o+D%BFPz5ykjrMQ=X}aFfyn`RWlO=P6g$iLu!u2ps1orv3|u z_z*4{&NHwCqAkz_!n^+gIO~=GKgKpbR+g8RJL(A7%RaqLzYsfApWMwT(%I=8 z0{Snh(?NR212%VCNW0ER;QxoRZwj(4+LAqG+qP}nwr$(CZQHhO+qO>CDZA=ay}Gx% zUqpAmdn4Y@o@?#B|3<`|Idf!=oXv*|59mM{K|5tLmMNWD9K3tCOL%~Ps+ZLIF$r8BaO6V zTw&;(v2RM#ws>fKP5jaNK(g0#G?Zl`#-^zp7(S{L)!64A@*)a*39#wfS(s0b~69lgrG z%~IMhx|FVQ&Bd#l^@^O*0o1XXGvCsK{U`KK1>IAo{61~aiPGyO!S%ozPl)B*9%88) zp(GvuOHL@=S+uu!W0@!zBjCB&C{TLEpEGmrt{$U|XIbNhmtTKy3VXmfCe`ZNx>ge; z1)=B+N3IQkr7R3fvbHH5OR6G5;U}fn)vD#xbs9PbPbpUEtRtujsCH2%l)9;s>R!D^up-%z_3~cQ1r;X zFJvO=6hARX(Bk$@ulotM9butrb3s?Qh5S{z`2^EvTAI?$b|rV~FJJX$uv!Az&T)6M zbGm7ix(RNMYF@$Z2F=`|a`$mwF>iQdm>i#rzv2FYY)qsjt`mQhFce7t4%z%nO8Xzk zM%vEEz*_l7`uiWOWsW9_hA7)hsE!XaY?_F_cGac z>D;`o^z^$?R5Yy(Qae{PwE7{DhYgAqL9niD?c+kk^2WiV;)OrQhG=QG?i7+G>G&hU zTo!(-Zooy;BPZMvkrT9$i)4Tr3gb%dl~5uj%4HqyoO9&BhAGHQINVbEW?k;Eb18

    A$B3k~{RycObG@6y| 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 $@vz03z8Z`qI{ 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

    =%>>2|D73@_9Fx}<*!s;{SFX;r+XReUC zs(|mEkHHq9IX6^vM^EgXIeYohiI?hV>^hwxYR>KuRb@}z5I-ASzTYk3_~FS}RNjRL zBd*dzvW_1pe2RefXtrAi)Sg*@9Jknu z$o8-Te9~-C48q7aAXk0lTYyLPSq7kgBw^!nZU+R0_nf_OedZnHyrlT|3Uy@d6(W|C znHTk!>h~;8ca-b(8S8i^YnxhdJ9ZBN?AFMLYi2sdMg10nS)a)E>s*<)nG(xjqj-|) zADeL|%!nJN7z;c%R6Jyv;ke4y^e=Ege88b$E>s+UBVuvoH&<#VpjT@xLyu^Kuy z#4zgUiihw^Yf@aV+#?zu85^R}j%9h(v(QGX(`p%;CD`^ED=1X4BSy)iHwp}VI;x#koUS#@Yl;}RE}cMZ{Qar!6y>5A4=2Qqrpd0kgTDpz zs-l^R9_DF00+*ht{4w=X^yW!0O_16+Rk)g|yOQvWsgXP!u4u~6Kd!H?uWmC^k|Qle0OU{F|S@kW-Rp5($CYRsw!GkE>w zmdC5ybrX@hWKa&*n&(H+hnJ{Dr?v;L9?0Sz*Jk!&irG!A&KuZY?B4|~MZ(0&>f3gN zVj611$*;HaKQ`D{0vE$Ka>X+U#w#8c2_BwPySAW#nI5b}oP6rd!oVSWQ14I27@=gX zjIZFP6zBMpdHL&@SqY|qIRIp!Pzp^(A4}!{jq)e2ZC%224dY7MQ1$Yr-kNw~*Dhe6 z`@q|8ll6EmPIpu}oIIwO9E^Eo+b5|JWJCL`t-3MB?@ppyrX7T9f%L?Ubce)?eEUd3 zN7@I4%kx1mozwr7SZz1xBjrJ*b0dhxflwGYE&9Z2QUG2Au^qa_cu>nBBTD^nC^0s8 zE^Vx7e~8s63|)bLJt!0!(q45t6cd=kZUK{KtIpS0KYMT~J6>*?Saq!z*L$gb*Ue`3 z1DN-`j`&7v#>}vFdCI|l4H<=x>__reJtQU#l58T}OX3xC)57p`^xN5PiHcS&fTq1| zpmiAfny@uxcWaYHG>ZOD-z)z*jFc}&_jS_{d5iLOlap`rbwSm8TZhNuvI2T#hiGPw zPT}}LVM`2=N?Yiead(NRA@USLn&2&UNFJ4FE4H!hpIymK5)^h@A%Xy&@61=iYv6Ki zj|jI;b6|I<@*4=&A1>XX)u9POP19j_UqIhVLMo#JlQ)`>47 zn*#L%6@Whz#5H?ZxB=@5>hzvUJT+V#%z^c`U^m0MVf;M4o_?>>txZS2pQe%TVJ&%< zFHz-;NeRS7%NmZpgY`1G6@V(^dE=vrHHXXpVwETu@Ptf(X{mb8q3VZ9p$E_!ilj53 z*PRxpZfFWdR@N^`8E!fG`e#h^cdkYL?mGjL9Q8jHPPqRzCQ>)n|08W{<7oC@)1f2{ zNHwh`R9;gwJZ?Nfeh7W?z@HeQse@J|B9MMYL>a#ghJ_M<@Qn6<1vHQtG+As}G%ag1 zRaXs{TWkBTGYaL~OKWIavR$25TVI_oOIMw7xNKY5Zo{O?UU%GVJA67^uU)&{ziyVq z@WTC&luOc601FI2;!cNDWK7*d=;2F-jJdzBg^}$|;P#LRF4@DxWbJR@#@TBsK>8p+ z_NEY|bKn8z8xO>vxaC&lhUbgZ2gga=1AU>KfxEwD!todnAL`Pl+`C@=KBl!{knIrA;tZM;d2zG;9tGhv7*TBpX&Y z(w;Ovb}`C~a(H2p?LRQG)8mB)MVd~kmFstdNZaDQDLsddB&2YT5q)fG&GPO!7froV z^`a~Bs5rmx=**^lf`w?sBrF-a0Dxy^_o|d|m1^`o>_?}}P-_RrZkgCx@6R5Na1EY`Ep2WN14UAvs#LX3SdgJWO?zI840Kk<)v|Z7~tYhMwsd{-$d$UzlR!Zj$ zW9r1Tli?oz;W3@C$yqsY@(3B3zf%{@;^h<9(c0)9Xr^@Q_|JQ zx(gPQh*+p{2g~B!V^=7aM@EBb-HeKxYW&rJ5lkvdaDG7ON=)l9tdTN;swNsIr`dv< zN7N-5mQRy)VYZ{tk%oWNl(DdYI+)Q^;S$SiJ7&ULxrPtW3n7 z`2?}l^wfx>VLuvna>t~(C1oK2;8oRgk!r(Z*>!Xy@=F=YSdWvDKow_QwQ<1v75i-p!qrQ*pnUc@aVuE_=?#uY*nyanD%B=exn zRx(il2sADuri2(z?3V!|!#u)3$^@YIECDbbQAd{(fL%fiZDb=D;p*BHODedUtPX>w>Uk91% zI=0Sh7q%|3;i5~ke`m59dvz?016|!o#gpk5`QO)tw*wbr7qTQuEy4X%JA4YJ?@Y~u2$~4Tglsjs8HImG)t@&?}}^=u4_+wI0voI zNh4*K_ol4Atmt+4+^D)!M`s_b6aB?OjGt_E~LZT?`RS`}s5><^}ulDA&{t%=$S zeQi>aS>2metJ`OND!1$03aejj531kHgg{jysaCvEy$c6L#Em=?Z&%{qFsSSl};g!qV((og*BbOHt`pQ^6iZNe(4*kc`9qUs#?~apBt0CR5@*j)5 zG>n(zS6$j+w4`nuxOK*CF8zl-nhK+AA5Zw@D8RVr;4kCsxAzR8j2qU0lxHI>Q7J~By@!KaBqy6h zOKI_fRV6IhWsPeWv0yaUHb@WRJ)Pfv^?^wk-ZPqWo;YRZZ)h43k#AYb#?E>E2-=D& zv(Ic+-6)Gjm~8=I&cU=)5b1pK(|dBDEKQR!es_LrK5!tbNL~DD2sb$)@JlJS9FOXW zi=Q36PtS|54j?46Kq=Jtr1CzAT}N~T*DAPXxQbZJ_B=WbLO4=u_0f&R(FDUXjx>Yq zp1k8M`wJQ9#jq7(JKrL+zF#UC*9K&3RKzihO)%pKYi)<6T!xv4WZ*#65;EbYFtuch z{RxNou7{+b&4T83k`qOdL$R4GjcyZ6`{<9E==KM)$|d4^G`_x$xtVNUZJuT+(>f8O zPul#+G|U)US$G&s>RSsUWk;3?iberO{;)9q<3|Zm*x(qr6Q(_Elm;)6h5|>u*YZob;y-_uy3u2q>%l z)e_ylM3{uEuub#j&PW2AsQy`bD~?Ap25$C=u$Kj%vvA95=DH-`d64gl9Lp#A=O*9O zk8pn>@C9ZnW|qne#3J3l^tfG0}v4;HOxn zTUsq=X_nFyrwq=OnwbMbvO&Q~F~^A*!}Cn%V7(w*)2BQ8qbAXDs&(YPZ2b!xm*|i_ z28+mwJh?OG;^H#m>P#|%S1%}w9L2pNq~*LZXlN-?y#VA{41Z)e(V@e-B!C9R(1jka4t&I| z$a))CcYYX6jL_9UZJ|+FwZX18R!vZiNCJ^(Bu;*oZ;@;-*Sh1`e9ycT-FR0rK^Wi~*T(oE| zSPatA%C5WgWEzUJiaT9hTqx>=gtakp?HyclU#m2lx2`cYb$y~t?>Sinf|ihRJ0)3l z>I1lEkinkv=+KHDTsKhA3mN7mZGJ0|&7zR?f)Gn>Da(a~EkklWYgS^6*tZ3=RF)!+ zwu+?5y%hq@^rqG_>9t^1Q}3-E6niY zQo?eERKX&OkeOywK{6T_Ov*?jQ-!)}Gf;Qcl$jbzCo32JeT|93ntRP=u&kECPDmOQ zYHX)t8)ltbv7JkyoBRiCkxC4hrGHqXb|MW_EeFHpjFHx1cH3%q^hf8?{SP>?ZUX<# zA*B$qLlx^0>uP44&gk^d;rmayFK?K4LU*I4BvD+0W%?>UHacSiwTpQBqZ$DbL@tjIwpfRP2aH zC|fp21w7K}cZsUqES$USb)R~fqkg8dfbu9EwZ#YKs@i@SGH=7f3(*5^r3s<&92mRO zzTo}96=yYJPVddQe;m9e+aSH2I%+;F8qX!uc~;>1h7iur2SI!2{FQG{CfB=Q9~wCe z!|2C4#;Q%VB%H89{)jP)SDj_rL>j(dU}>0wFyzp$B#2bL<_gfbt72fiTE{BDMMzcUmrmg&?cCIBHH;$ne(#Ne(Hy(reAX4HcIV&MBCdZ*z*NGA1 z&Uh8BBNWLK`x+x>$t-@Z^}TpPzfmscK~9vS%@WVn7G9r~mkNPSTG{qXUtP@CkO4%15m znRE-aEOH~xRvvEwc=Kr?Ck6~-jauyV)R;tVm_5Z^nE}SETz8$&fp9;M6~rLU!5BA5RzAlfU~3r^Xga!zp=N3E zPSLUgp3m?An00A6)3>2aL+W()&6=49gs>I{5v$|2o;Gz;f|^1pk}o{W0#UvUV8lzr6K1+m8r{N-tdENLvm|l zPAB&ZbSbUA{OIn3!utkjIn;InjkaS5K!^xYAI%QEU+~4eb!qu?hOnYL_9D9aD%$3n z>h;bWfnVzyIfRHNy0wqNb_qZN1iHpsW*Y#Q1G4o2f^@tS`y6O94KIih_zf?R5jpiQ zm<^r1q3B!tCpgQxtwWM@fclVX#2%w4Rke@sp&Iqh@qPA)om$tZp$l#*p9zpVSd;ZD z#2#eZKY(XC0NM({u5HI4{?E1*(S9#?l4i-+Wh|((xa3@Vtfd0~VBtrxUi8gE(R@F< z)5hf^|3NH%L5==Avq|)D>pReQrxQ_XPXDjY_i=rHoD5ZF+d!F$al$|Y&G+`{CCznJ zn>}#u94%qLL#Szg^@D0q{l+8)(6+`5Ld=;!8_p~Ap< z+5W5HQGW@&>nIUmb1|p#L{&L*&XrPJM4`~HZ2*U*E2_SlH0EB3Rlo2 zgAIykh9AWEd&b-K%ZAVw1-*5RjDN$w?ak6G==snfSV?u#h$)XNY01no7cbmK_@f9z zgXI0TVh|C(YLw=duzQJv>e5ojQmL@E==b%zoDwy}k^V(>0SCv|x8CBFB zRWtl%kUF_oQ-AG^7#zs+dQ6(CrzTRYDkcdz=J*ug!Gg~W=;4K>r5->7qr+pXB9ATuf#bTfP|PWu#69UyL$@ z5hhFg^e-+X4`F6=KoNBgB1Rmvbz@$}1O(*+U30H((k$`c!ERxOTF;zX7=;LgjZG00 zupql8!%BQFQV4NSLj!Tch>=VWfr^R%HSd#TKrM`aYR62;v+q?pu@|Z6ONi>$;&0U#<~jt0qM_av>h;tUXE<32x-O#O zDOGNx!3{NwN?)F}f2wnLyt=j7s^+^pwdPPt7J3sb;x8ZfR62?2t@$<%o+jyJ6LVXVYzQDM?Jl zV-PQe5l12Yb;Uv)NhDg;g`E`KBC@&O(YF3eKM)S(E=t~Xu%>In)%49|S)2-e2BRS8 zBM~!zP%8;7aIfqSBhOVB|wOjIepV)i6pC%xhgtYj5$}4?mKw zC!u8O_)sxo_-HAHp@|8GHWd3}8z@ji=gm|QBs>~`<>oWCU0rCba2V^^LdHPEjj#QR zm@+-NNN)fX@Kc?hC+Umsv;kEoA?_-fJ4MfFCncR3wA)-xxqr1sAw8{VCQdufV15f) zwX1$J4Pj3FQ6Aer_3XUZ5&GMx%<-1p3gj0y@S~P?rBoZFYasdI%>ZzU+;G%oJO;cx z?){{nrC}~ZIm}qO19SjW=}ys*+6A#R8(6SMJl$H3`GuVb{v;D`s}tw0;tB48quGwZ zcdRZc`nojyJ(TfrZ{}Ys@Bkp(kczU~n($Mez3-c#1kMi@06IW5s#}(Cb`ZmzAKAwc z;DYw02arYk%177Q-${Rg$8`z&ve@_87i|8^%;!}&XFE8O{vzaAPFV;cEsvsHV7q{u zzMs3o>>djT#W`l-GsQjAjzV6VNF;4fX_KM=BQaD!Ng7^EDVV502e*`{AH0O`uw@se zQ?g@W;HOX=CQOrDuU3|*Z<~y^7pu$H)5W*E-9@t*vqVliSkM5zTmSicw#LET684*i z1@^%LB*M02HV$D-5+R?iMyfJ^ZL?ev8l({IEhl2=Y=?eGquPdBl36$xArT}}Lt&^T zL5g0kHLjMzC{w_8>cS4AcJsvIp0F*DnPeedCO-^KHB(a&Ms?j_fp(xSrNpqIE+D)AP@lwGD#vWx>Ig+TZNPvo!j0y*!OWn}cSry&Vl_-nC^J2f| zj-5F|BKzvHYi52~c5+;lA3Y`|P2os826bjlK(JCd+|)%%X8_hwrMaU)xv$vi-!*@~hT zmbGu2!X064kX7$Z;Iz#ofz^X48z3(jcwWS@>W;1?_>^j#_17TYPGq``wfLhQZ)B;( zniM#U^duGMvXHyOo39uTC`iYlJ7eT39?#60IY)JRpPpXcW`)#^xNtXF9@gfljrvYjmCwZRVww8z1shs0IvF-ER#O`F zwW2aLW_Cnc7IQEBvcy4sOm~r+&KiD97@)V!&fJJn-dM^|tJj_zbk|nav)087?3G_Q*IDT(3eI zvBPZbY@U5s)SkUR&OHPlA7K)k>s2_b)1IWo9Bfm9Yr_Pi-Hc!Tpo$J!Ar1LOP{@k$*$22y|<&l$(}r|D;t zSF_-=vX~)NUXFg^6%>R^Xm6Wj_&rS=`3NT`52YpX(eNsKm>U7`3?m8CjBlM6+gu}A z@jv9`-uV#^#QD<)*_$bB!y_~tK8}3jM)M5u{#D+S>8{q?8z*-2IG@utQ=;DfSpfaS zOYs@_P7I$FtJ)%CA{a*Q46z2QBoDd^ZdCZvx#+<8kMdOsk!aG+g;14Y#YzO@LQ?fH5eq;ceMqNq8Tz`DJuPaK(+)Pzn7& zg*`@?&`o~@Uth(u8M92`(gS+BkWZ2MgNqq%kzuimV%|_4HNUPBettR-)>jruTnH|@ z&0VMgr2FR2CE!8nd5oVaxShw;_cvxAj4*ANiqE`Y^ITE#}*U*`+_}q|2fg7Te%#+Ya>0 zAMWe_3Vq1V;;FE&0n1?pfypbT9gDD@F@qno zgIa#PMk%bdk|CvebTSJoEQ?Eg0#Q^f98@^B^<#Tgb{H}&t{1K4FNmCL;?goT&xCg> z>`P~;GT^*2p5etK=3wb@j68muuAKh$(aK_HB-5>I+4Z zdr0ulO&oMnN@Z1ea7}I(3D=9{UG^B;?7LAQ|GW*1XK3zD>A2oIVUa$~Vc1hkBkbfR z3|Tvtw`#lJXP!xekYR$GwYJn-TvCisl$7J;tAj9eaW(H0=*zcRT!~-VDX)UplO|E3qFs zOKcn3hGNS5qcY6!)u}nGUWw^@F@3!&@8Z+i_ z3pLG80l*omUqMA&GmkHe?glLj{$N$OHYjB76Q(E#9E~Gj&=kFn|LXjU*`{7pGwx)6SAD|5-?$l9R3Nq}CVVf>OI;$3=?>Nmx5K?t7P3_!S7n>3vZtZdc0 z*VhQuYAdy}&rDVtHaE{q2RB=bn}ncj3XM!5qkcS8E>*_J-@spf#xmFtQ6sFU!A%PyKmiYt2< zY&KUsFSJ8f@bstb4&(NX!@_3$R=*l0TgoggHnz__l)W~wXVi>`) z(*CiI;%udiWrEm3o8K9%@uF9``WEEMr6mhLADNi7x1=1F8qCVvS*w(1@)j1W4pqGt zE1cz(9v67D)@y$i&?dnJc2@9|8PS=G<# z>M)NJN^alf!@wIQ%iRQkKMw?e-0lLo-delf60lT&=RL|srVpM?Q8GQ7O>b@o=r|Wo zt8qP9P$un zZiM=;HO8(TyW$WcVl#qp#~wVd27cqsTP!OzZ=CBm-oz2m zIPLh<|KW+;#|G)CXxE()&Xxnk_*y>Iw0%@1n4+7=l8Rd*W*n#bx^H!qL=s4(r07=W z##&x3<&If0Q{AAVQcja8W1=-xudt7hYv6*fC!z!friDET2BXA@8>i)@! z4`@TS?+JKS=ci^J&j$MC+BWdUH?RcUO3fo^B>M`=qdBJciD8wu=nwf=#}Xf{TFzp^ABQ}9!ZDH zRrBz>Lx6j^+ZpE~K`Y%!qv<3<<()wz>Zv>QY{`!-BhYq2zS2=xxggY25$IVv-(fYs zV-4ToA4=w+>()T&U~);QX4#--WWNooezU3jCId51Lpe5pmZIkVKfb;JN|J5cwrtzB zZQHhO+crDPwrzFUw#}}pE*ss|_3PYo-~0c)`|r&WBQi&3M2?X=GWObQuDRy4p`G`G zRiYGP*C^n}D4++5ZwC>l69NvR&dmPU(ej4sVOtXGI^iaJJi{@LLxf8Yc(DH#FO+8&y=@w* z2X_o7Yc>oqfg78dHeLaLZ%1UQO=8M1PV}vr9`L~-l{Z(eMUrjz%@D*TAw#w@KYiMk zh%WmF-i#JIJes4#kBy?bxzIyw{yhwLQ-WoFA@+?Thw)G!qzdr1icW8($RHi7*v(u> zceo1iwhC`=r5t9Ats;lX(06VnSvzIUQ(=5an@W0{0D@&*A@;4J=VM`K4IPWvm}B7& z$O;TyH8#wXQD_OecJYz>f>*=Y`Udf*Q{i|Zn^O8JYQ!p-3Uw3r=bM|zv#EYRa$R4W z!xztmNyi{P(N4`z2cbTnhHE5$`ee~v{7%bnL;T4xJI&;O)Ryk?{2o^Hy&-x96xxrE zv_KL{_q8ZiixPCJ;BCt|#c)d*dg2LFE)o`Zx%~NUH_D$%qTGi+8HIRvBz}L-A^H=1 zfU9;F_!ol?gM5Um783|4Mf5*m|Nq)(`QHpWvaf24levqV_umD8_|y%Rujb;2PYWnw zV=Xbdu%MtKGhm2ed@y1vIIt2h#%f1D0^kl1$6wbiUHMZAp5r@#uv!&<=`PWxq<&3#U6wqtsM5lMk^E+#-?$ zhS;_PB1WAQatSicsS?VRORYw>7aZg7)z*ByU6qsC+E=;%!DI4X)P*_(C1;* zRPXo)l2v#{?9(yE=Uv3o)I~&6!+tpqBk_=McguyxP)Crq^aCkUSk`p3zULGY*PJG+ ztDb{q*ZVMjFTdj*+_{1eL!J6fy{59Qw^*jX#gy*j$!c2%SVUPR`Ldh#Lv_Ow9oHnx zXgD#Jy;f(947H6a;!11fF8f%D4)INcmjI7WE zS|Z>F6rX*m^1NDjxIub&)9913Mvqhn=M~u8(F&jm*mZ@e50WocIrF^vR)u&a>ax zn@x-&ZP-uV`Y%?NE{2)jH?tLy@Zx@wn=Um#0m2g5YYQTKaWqUhK_NbBM`Ta7XSQl# zs*hs31p%!skgdY+;qyZ1@yi#5IN_UoVDtscWnKiB zE`5r`nf3r;@pgy|t_Be>+#2C(g(W38970)!K(NwyGlwBQ2*2 z?$4JBb~KP^#X!|=C@vApNn03EAp3!GhU_PIpy<5<)%hXi3wKY9hG+kJ*m3>AlrMNg z2=uNM-w@;wWe|lfGDll(jzN3c%I>+A4u*rm18VC>ERQ@@qgLBmj`{23^+^tDwq;?2 z+t}ZcE&WBsY_Y^dkIQ~>=_6wvZ#|R5O>(m$n(cqG{;d3@hZ`FOwY6GmGK-?zAn_X$we6={ebVCjp|GA*eR3bK$Nat{NSHj^!Xd%! zs?a#9Iy?fUYk!HD8yH(Q|v#MJO6cL z|6d{6uhF%3H2ZtX^H17R7!*Q^u%uT)(7F4P^ob&S8XdKDfCh*aBZJ<#SaWuCw3W4x zb!TDzrG}Mb4;hDJzZl^9YRSWU^_Nd8ke<*~7%FNOMGnh&m(1svtmASL94B;G zx%Hkr1Z*sm`KJ01r%O4IL|%X&h5{vmHyLOjZTS85DPvJ?1#CqxdLbMiM0`HGXNa#~ zi5QKQtv~c$lEJ3!AN7R?QsmhV85_83@AC>ouJ;t-QH81ptnw&=Bc9u0NqbW-O_DsiW!7 z)cR&2d<)hy66p_e#$rH~TP6cz!zRK$MhQlWUyHCVXgnwI_35xek(WEHt`~UQuhtl$ zVb!=Zdb3C++{b(c4-h)s-El2vWksxU^~rC2-Z;(ac|i*l6nq8kr^*}W3ikpco@VN% zHN|jc`O!#pM6rw7NM#}&5oL~z;&5jdp6>W?>7VD{?-Y3;8j)z`^1wVq375~}_l1BD z(G1~;h6tlJGKgT#r!Cs)vum*Nmg@efeJuepmgom$n3v(LxM`@7*0T3{1u*q^U5%B4 zknvyBL!ITdUdErLr79IC^wx@7*0Qf;sNvgZ_Kt$FoiBA+kRhPD;(2C9Yr3g=Qh>!p z(stFHSr~~6iB8K{f#_Jet7a=Y*4sQcb=iC?^Nf|)h+J#9cL!nymCWz2=v6TJ1}c`f z1TU%xU4e*r`;<)HX02Ohu7&#xL;?R^S&JOfUW~DmrcZw=pR#}gWlCdOCh2q6sT-$< zlTS4sg)Fh%p8Y(J_Ebl1L3vx7&et)*#zE}7%k9hGrMU!u=eFD0bcF-^=}tv{sjZqf z+x2H&Z|<%KDvxDRH*JQF9j!e@8T?dJPtca0sN53#<}fR`{u2C(7UQA&aXk5UvG>Dr zf`t!<_k_%r?c;q;>Oc~gj zNVq)~J`=AvNRW40vDLt(wxq19d3mYuN)%4{nFMSbn$m>@hBO|n(}H46P1S_jI__At zD7~c(hU2`7{Yrk#jJt3@aMhm}D5E=OyDnvK)-hCS9%|3}jE=A%3Fwr0l1{$j6@&V! z@2b}K@vvvr+mIPzm78yit0LYK1PI|o`zqdRbU)!&bQERlT#tVtt~3OVewoevQlizA zp5UpSzKv1QyC5s3!9+rsTUI-~%=9&o7GFdiZhlT`N`W<(#uvD}GSJKHoSe}#uXBl| zNz$>AW>@(cdG>-?A&J@LjHAZ-s2*uBXxr#RA|Mh8 z+b^PPe4cgrQ-%ThWU=PnI@H+E^RM>d`A14In6YeWR{-%`AQ9*WWxu3V z8bR^}B^RmxX_q5O`4E?6jdFJ$zddI>NPIlr(NcFT1&7RDa`A&3LE@&YOPS1W+e}|d zV;~U+doG_Yl?CLa|EJh12E%)pvZlgE<}C_?Wu-D(*P3rgC7wG+juM0ngyiH1WStis zql3#$v)*>HaBSi$;~;J8<@Qg~Kaoz|7|z*=uZEg@0QCH+2>&KIKCYAjWx}Vxy7#M^ zuE>_|RxE5Z7O1pjL!{p1z-Y~;db}tx7OS~};y3~*6oaR7!iPfF1O2Hb$!$Eygmiqe z(4)viWGsrfl>+{Q;uFmL8e!i>NnUX-_0YB@$?rm3`k`%8lD?4)4_#X&4o1lmnKi`k zmPVkte-pD%${{GOzFLko;QrGjO8PI8sJfcyf3bf4ubXJRioN2J5*EMb&Z-K;q1Z5R z2#JnR#Xc;Jm}rD7#1zv8QLtnB6^l$4##X|9V3L>#NHiHmfNI}sWZYe+?!bbPh+xic zj&I&+-s#C{KBFP<^nPjtG(Hc7I^QB-I0XTGiAD}Tk(o4e10jTxCXdDH&7`thYr5AQ zi>||9X4}1b8?L5{Dcy@`(rw)hpLuTn2zKu9x$D+%%6;`-7S1lSkoJNnpg-3rcMBfy z`b44mE8z8rQ`BX^rDmT!)FiH+b-39YD}jpRr|ux_1AR7D4@C$`eJuK2@IhH4 zpTYXcukDsjRaV(xOKx_b?ohGnt*u@tDpc!xxV31Sg(3B8^|`vm)25u$Ral4cEx4+a z(;84^d!7xmGml|mrRR<#U10S^8L8Bg7rsWvPWZkL1;p)U0;Wgo!cGaJ4GUezq(lGE zt=`AI9|7*Rnrb25Z)I&mAGsQk<6i_B3>uGh!k%M}?wE1yCfpv|6Fc9da&sOS5}t6j zJm$wwSEZ((zR#U(;innNMVN4+n3CAiRfpy1p!my zXY35QI{AP;zBM0B#ws!@HP=v+dTXQ{c@HvF=dGis&bi z6AlBgNa&{+C@K1gvE9FmNPS0_ksPdI%Y4PMQTsr^Au!0O`pu&V*yaj;#>STf0Bukd zccL8qtsPX@^6?h&wJx~-XE!|z5YShP7@F#Lsjq+Xe?PuD#{QR}y@jKTy|LTZ5)l*( z4G0Pf>R(Rb`gf=N*WDoTk8dDTb@R3}|NHfqUBN$zahkT8sFp|pX`BrcO&~7GR8~sE z--3Xv>65$;XaGn`6)`;w#?Y}-4%>EWK7DJucE4H!`&~B!D(u1OPFtR3`O5{X${!p| zK$zFHW+%G8H{b9*Oi%MRPwjpFe&!7l@S{Co8s$F|N{M~YlanGdLGdtc!pV(tWhOVq z!R)v;VNWoU7^E{mbJiYY&^wTDML{^Mic0Uen?hkYK(F&wAGGz#g$iMjx(LK%`Vkw)K7q^IRfQ5s!+R2pPM z!Jblq=Vi<3!_!=pO_rgd>t`({haZ{MGF#;{t^fHm!@8ELtyTwNJ*tqr!ckV*hbs2!Y1d>5c6kG6*Ud#Z zUHzy^iA4jH{@?mx3}qc2t7zZG&2=>6%&eGFRpP-BkOT~e1H2|!;8i)3s}HOeipP-k z+2Pr{$s3tj3z1ODspEHLDyVf?<6EF)``_@pF^CP-&?N`B097xA42`Y_|k+EOKVlx-f+FGr-K*-G@}DaVK5B-~F=NUzMMD+mo6hNyOimv~Nj%IgIAJPMZe)i#Vg|?f&E|4GLcgrrM zrITTcVx`>??55uV3!vQr;u7zo;}knP;^)9F-Brx0+b`$i+L9L45t6`>oEpCMRn%2W zixajaWun{M{RW^llygmpV#^!uKRu1e?|}?BC-kbdsR$hYT*`fido}Y*VC;BR8P)6< z8v3m>%Gn``oW^MihUfd-0#iY)v5X#)k!7fXismONZDa!-BeKw(988DE@1MPd>sE*7 zHv=bL-d0kVmA_A?#29b?i4fU0PKke5*Mys-lbK_N8`8D2_hgpMcTMIX#+LA#65i7C z)p@Z^$Q&TCEKXj$#an9OYYo#XO))kua|;Cj(LrD3USd#ZMv!*>iRGW==wA~@t! zsbGG2cDV1CHJcUm2L)}CY(>kep|)0i3RV0?nbe+^jR+jIbWmQ>`Bve|koYgz<6^JAEso|Y`bd{w1r9VLK?vbv9IoOKiM{0r z#UZ@|3H{>vQfx%TL_&s+=x4(Ggd1-9bLDN#&)n6K0b{p#S6_a7$eR~Mt;`Jw#0@tB zG$6Gv10eP<2VIgrz?4!P#VAJhPK_V84WJdq0&EQ)KJR=6IJDQZ-LXe8qVk! zMAG%pE+d?IAzQ=?7`HJO6?&p8L0cCH@7;A}GLEU5en1QHAvZWoAy5Tb;0u#o%tAbv z{II+Q0K7BkMPx}fa37ZphI-odod+O?HB=*FsT$1q8b{pqN*57sg(L&}&iFA`16_~- zb}zg!l~w00P_^$$4QWx7T7n+Tc@RFnKadE=Y_vOKk-?4ft92`K2GQf3O5o;~vID#>ULM1#y_Pmn#0Vuf=k zu)b%|!7szLD!b_7dw{>py!?Yozi0eO(e0YO&fA{g|5R&hRSfi8f6&k47w9G^HifeZ zTLPNG)Bvs4faOP*z`!9s%(xHsJt}}BR@noa*#lhKBUNDuO2Ty*k^3>|r#v2+WMqKw zRZkHN$5I+IWrFLO$9qx8AJxtH`35~Al0eWdwx{YK-P~Gaywm9{b_5k zOruz$g+3|{?soyk1uJCCoW^^%+OT;z4!<$H10AxdoK zlB4`CA<$~pV$wU+8W6SgQgw=}Y<=RF6({mX8_$8q_-XL*;p4g2aqXLrcTy5Ze2Tlv zkAL7;oYTbZeP6#iC3=nVA#kU^a_MTQQiRq0UV*zaqI+|(wqRA zKO(fPfTr;>T$)xDVwd8gy6<)Gx|_ zDJ(P28a-*tLP2)(9YOJjyscz&ax0Iev8!!e5vJ=lj$K%G(*A$ngfOO#D-a$lbX`UYN86KHb%*MbQ)cL$a!WTOwHg!o z5z4QGS$~9oTk{SGx1?_r1U>(d72UDOa0ID{#v}?hS&2EMBxdd|Jmx}*hU9>l4Llo# zV$Nl#q$f$cjJ58(rHaAjn0S;Jx*dz*lm#ko$-f z(3Y^@W(fP$gExckb&Br?Px;>ongmB9Bde9je@Cp+Z0fz@V?HnZVRffCpxHov1%7iJ zzZbLue2QoPh7o>ar@(Sbl%`4!l)Ipm8|92sM(=TG#g?>^z9B4bN{S9%tYpf-bU$S@Z^3^u{R( z72<&|fnB4bSlVU!IP+D$pq6FU?k5;>?_@^xj;RR6uB`Vxyc0VH3YKC(77)7Sr7~Vy z^93Xa`&yedI8@X?UeSdyU5rp&3~_xI!(O`x`)>3INk@q4L5RHV1eLpwT-}_U1bVOf zIGQ^XbZNJ&^GaZIjICwHNOTiz@MUo{B%AxFN(s6=K@_o$KHXg1F%t33g4ryC3*?<@ zjR%KFF&$hG&_Y-cd3>)r#GkNu(D$Xiy*o;7sm1wm;RK1Cn7#|(eT|~>onV~U{ro~7 zA)#oiu7^FovW?-dJmcS|4|M--j+0hZ{GS=b-}6~dhPR)pI>y+X^%8~rQYr)$8kAB= zNlF?8nw@YOhE*f%x(R(p>4YtGiL|^*LljrX%~Zz%4MPx7h@A~}!P)+J1!)57&p6VG zBbMTdqq?uX>#VQz!|s*p0c${nU_j65?hXITw(plnMY?6*o+l6x#i0!=UHGoqI_$5w zhCQ&vEMfuz){Ic9XfE0ljN^2%3hd{b%AHdF+vSijpqB z$#3+YdkT}zu*q-ao{`|rmcf7Mo_@-c?$hE8aq5Lm@EcJBku07pUu-aWFgajk+{8rM zgt?ilSxZYrOGSH8Yf+m;i$xov!K_hB8=?u$1baGZh9%6LN)};?DeXW4&sZ!QS(1b- z74mms!xSL`u~yaZ0BWsk*KiS(%xKk~0LNFfu-9(qa#E~GPy%S;+Rck}8{W;VQlrr7 z4M}!s`rv)M`r`+sd~NR)S^X*faD3zX`UbxJ2kGku&V5GR7Ark>qII1PwtZ*xh#q?t zVs{(Ya9CPBbI+>5l2>McIlG}+>Ol1{A%3Q z%@q5HjKUe|o;m!M?q2=`F1N+a24VBhv0S{f*h^m2lWIRh2xMsQvlp?#%|6${p{yWd7 zatGZl98?%=ELuV5ne=AVPm_rZ0PDL8U1F8RxbN{sqqf7kzGj!dOz}3fz{C1I8b>A_ zLR}t$6INe^AFxn_4%%5%m%ApplBEind#sEk{2_wHxFgMu;$?=o3B9%%Yh zc2)s(zF<X2roe4bp&VTzxWrB7V1dtR7=&R1NI zXF4O33t~1JhXq(Xl@G4L;T=6N%Sj>mD{X0IHzMxQ*QFIGT7FzK zBYP+aIGS73taEag&`>L+TPSkLDyfvuWT%66bHcdK$EoiNC6!6UeoErqe^H8vR$s7! zh=q3zVR(zgku5NKHqGu2LjD{E)MiQBvlAuvD054CBWd*_x{eBCc;^8bX@WQvSK-iDls5)mqzCMe zBQIFGNOTN3B2=DEwqRM>PPK6<Xbge?7;P&s&;(+(NS0f?6Q07{Nr-|%|L z8{KoeghUB=9sGLQcRzzfdFX^sF$)75(?nG*g*GGVG;Jpu1yL+q*S2}WpH_~DU_(je zb^1lD=^FKp*z{g7l8q1yZToIH#sisj%?;Zi)dwW78V%gp<_J@I3Ez`SW6TLQk$*gk zOZxJbmROm5Qd#S6*Cl*2J5q10bqco=o>)3a<7;~^IDU?x`lf`Uqk1Ihc_ z!R5jju~YCSSo2aXPnKO4UY1@K-*MJ24VZD^xv%uhtjTASrHnuj`9y~PHo@|O68Cx7Zw1jSGY0eo#F@tUl)8^4i zYpyZk&M!?iC!YeRtJY!&lSNiol>ZeVsL11PQmMAqoznXZB|f&ssp(ERyZD`Lo*DDL zF6B7e86E!)P#yl0Q)x8+{gSXV(MeaPCOlvTiZtK{j)>tfhrqWBovhV5Lif}Ua!6#^`8z&yJ zg-Q;}%E&7;o@8NVM?E;H_%|PvK9Mo;TmZ>wr|-XAR0*jZVP>j@997@dN47D}YUdPh z%bbKNi|{5c5bs$jsO~oB9^V2;(5V)WorKW+Bbp-Ef6g$>R`cAs%V^@MS9maqS5`fv zj5CHFcHg7EWS8AnhozS;v%yRhL!{P7A139GP(> znMzl;QP|X&#GlM-Da5l&o2FXTOyJnYj4lqV)I^tRp~^N=q?yRmjbv%Xus5RFnozI) z^MhDX)c>@pqQ?Gzw`7xGz|=EDY2sAd5J`jiE60 z8<;Q@K%PqgGTIDOp^*?I)}L{h*iCdYAj)x)?J_uQ>_yZB)thA%;}RTIB$~LF%vg|& z{R-IC+C-R<>;_yG&rR6J!(?DS$3Ti&dL3?O`5O&eiSrPSjT9yhONTKuyV=jqs^SP> zAAXq%Vp~S7PGVNxMoft3{sIY5PWaNY0YDj>!(;**wQB>;YUn}(wiS)UMlt(<&1E?8 zMl?TD3vR^2@rx*eytCGiTLLWO8(>|;xZ{gnb@XmPx?Iu5O)RV5SJ?61XLaxR;nXd?9oc$&3kA>;> z%_UeLBfa89GpfQ=z3QKwB!OCt>&0?#Cv{gWJ!4-Jcg!2| z=dCosfg29h-oo48wKo9w7GM41w4ZuuKny6bj|#P%2VyiO!4oI# zj;HVP7kDUm~J2*3m-3Cu4@oOo|Z@?*ekI?`pb*qaOZhbqGei2g>pc)BFWhul|aF`HL^ z9Tu3 zXp)ssAK6bqgFdoB7@e_=mIPNT{L@7qjjv6Zcs5kpi)MNlCnK~~NwU5={ISGk!L%xT zS7qu99lb=sO`EgDyx0*ph96_I;{B0lV{u*$RCiRvkTQdGKjd`pb)6PA^R)j$V3-4>dNb1nk_RG_NiX( ziRZJ*gh{s?ZERv^lH%qpfoo5fHhNakr51Ba@T4h?(R~O=T$`#qF^j*;l?hnee0jZp z&q4aoSFn!r2RMc@t94@}-SJ>Wtqn?K~k91-dh?`jt zz3PC}+&9n*|8>ink)Z3nUmguREs>1uW!o}BSoE<=UbII5~^6aQE1j~~0 zyB^ab1QlW`>~5@msodYGk}xij%7U{n1dmTWjk5soq>j;jj@1Cul=m|HE?H8uWcM`u z_h+G z6z@<1Ze6lH;(G~xmjtN*>0^1HW4++GQ@FQQ0&VIf4HCyy(rPgmHbDCs;6ZFr`ncBT zxRQiBdwlD0+y?N~V7B!%jsvixaH%EGrcDwi`TjW01L%$#ci?yFmD&|L#`ie}0d&WX z^FEC)iMj9sE*{5y0DMBn`aWi%QUnzDU&j?n5s=>#@ZY-u_#}>de9Vfa0z{8}`0wF@ z*~pMPg%j;iq-T%geU3>0)8zL8{4R}BJW*dw;s|IH)?yB;q;qH!onpK7l6mAwuuebEVwdj(=O`1lQQL)*9I?k& zV%N*0J0zXKWNgo~uQV)sM<#0x+z$r~Ra@eCjX>#x$Q z^gk&`rJ5Ii*@}JYH%+*tw-RBwA;+Ls0jKQ8(g@RpMGiz+-P)(JYa20N9$J{LY^Jx~ zc-q?Ldb}52!5QW#RI|poZ*DRMob4_26+ds2Ly0w1Fu8KRY`e~W zGZpzo4nF2AG7bT&Oe*JQ?4lx}LRXGf6I5sfH8dDd0!1M);v^%CW6DB@-4^E@F{ou| zQqaS=IZ^*6nH%@OE6m4TI`+lIX!ycyI z&gl+cPHJ1G8llR2L^DX#K6XTDk_#P?^jZ-hfoQ4Eil2~;osQu>h}Y)Ed4UDj>OEDf z`q1J4ABkFLsxt)OU{UsHC*(oC`FVl8KGAQ|B77D6{Q8GslgQ=KItXI+?7Rlb)3@Tf z5>Hy0SNslbOn&NYDj}CG2l&G*i>#@AD33UzcYbJKg&+M@V~J&lBjVnhZ|o-m)2oOH z91gaN0>dxs5q6cY#es)pw>n_bnHawTJE?i6B{30KLuMH1d4jM=0 zuOgKU;l!)f2<5BVh~=x^C?-wsusOP6v{avlGx#18A8UKmuuW_wnCJ|N40HTk%TOaf zq5?vwU}jmI@=)YYi>LX#ZhG45pm9Glc21?ua+8B2MXX48&ehCB z=F_<02Yg=>_ML2|FIq|5&mWd?=Q4a9@=s-6ODR})p=a^fz_r;J z{QOQQCXhvPW*6e}@997sbikJ8jAbIa#9dLCJw~0%S@d$}%w4--M2;uqmI+ATSqV6q zOsY&|bbn#*$i+U6@|b19p#*&2(MLRH()oL1DX%yWCJzAY5D-yX0N^^+v>Jy+G(2TKr%Ej=(!5PK{$l zcX)q2BDLayU$BL4BYnFpIsXX5qWk#TJ>9SlED85Z_L;WS+zGtSK0!=NzdV{kzu}~# zD0Tlp<`tR>m|?t&L8!(-*6|j**K3e?zK&^I90_yRb8;CxXDJTYn~4JcoFpY z&wFZCAj*`O*IqFd72p|cG9>t>dt(0?8Z2b7HTqYe#%z$?C<@3%FbKg2%5J#IE`0n8 z(XgipXkuaJOHurdNXl4a?8`zslz;ebPs*}Fy*t?alp4u`_1Lu#j~>qBj>sE4U3x%y z<_%98r9;rpK+I6`yhGt3gjxuHbZT!DraHN3_W?&0R-H&O;T#L{^mUAT%Dl9iB*pco zD962=ZB3yma2<+H0*paiYd6@%8%vn?H>9*9BE#TfJyJ1M_}y@an~l)Z9)}XTMNH+Z z1oY2;*e|JLm5Iqg00H^@k7CyUrchA*ySVjt(MHL|+Ts85AHL1WfHEVE_AR$oKN+gu z0`slJ3O}}Sjtm}(#M1jHG&kF(xv4JN-EHu_0tuvKTxpaNML`U5qV~ScnCQC5ix-%nM| zq8t^a;)%shD5;cL(=1tfTc-oSY4#Ny=4&6+Fc9KKd^b3nFPeTEe>?r%HObPnkZyfp%RO9OXVRjY} z=*C1X_5Oq(sDO*u>(hpfrBk7Z#AHWw3p_-zDGT4&x@doMvCL4<`{(+-BfRGyvP;GQ zByPkn4lDG3tc?9z)c9W(2Y;i+wOX)#YL=;=fe$m&xt*@4L}nrsU|2*#8PZURSwbSR z-f8nlRP{K^Kfl2lZ%)YZum)?y*464)+uLi#$^@q^s#LYn+7kmSU$C}~^j-~Fu2j`t zba}XI>hE~G2-zUzR*5x;jc$2|j-KqK zFoNN?BJXKvdhbq=$ovM8?8x$lk?hF&mJoAeqBZhz%QYoXcqpBtdFvnGH5p%i2e-#x zeaM|-dCw=<+kXrRW1x12VqkF()AvT4OvwDkoSaYfS_vztdN5W^@EfmB=~lM4x2y=E z&*a|L;#Yjk+FgW9Rltg^4~Zv$~s1M|F3rvpTS?&wdmdr6H~${!z$=%4X| zw6C!-7{6CSKL_?+uWzQG`utunvVU`!eiGin-hSsit45Nud!!;efc+lxG&nF^2_xQt zcJKpI9i5<%x=3!M^iilp4;fX>?OwFJp>tSFTn@!aoP(02QH_h3shu?M%)X0d7u7~a z{C!aV`%!eSQdMPc->8Uka=pAzv>gI@5*>>r9CEIF`dO4`WRY=jOaiT_uc$m|rBus= zmt_7FNw&w0LWC+$U}Dhv1WEM^*7&-Q&$5QQo5&I7|RXF;Q+ zAEu?b^;(K0Ik71~;3Rlc)*BF@{-pxa5{`5mH%^Zy&LsF<-z+3^_u7D!@;qQSqiSiQ z&Y}b(fh0|n^k=V>jbfKv+S-@m3f#xVqvQ}I2Oqq;GzMBlXLJoi`z45JXGU!iU($3c zgJnP91XIg&rn_bvE3$~?o*cK0V{S4BUKrQd(!pK6LlF6zLXTyk-JEC?g_mRkN_}fm zi!KkQl;loJrGSQ(T+)mSu+FHkd9|gX>QRypwyOOxHF4|gRq<^C;`otokM5TicJ_e!ujvg{bh_NU(mojjcwKsU-P`H_lqnNh;za*d>fiuH8M2+$imq)2JYnz zk)t?=whGZX#$fVQnHk*}zWPnB9!@krLp1v0u5ZiWBdca9@=1DBiedExQDlRer1Lv- zzv$6%)n}SS(wxki{iis~a&6~|kL=>aiUDN5vgSAfK`YlfA4Nks!GcFc;xK4gF73I2 zy0hazgEpWGNY+3=%@(|Bn1UzW3XtO>P?(yAY2&@%&l>TCwN*f3#G~w`>#H{O%8&GEoXr%9O4nlx`r-D{9ZLr?2lmA^~BYzOqwdx!qV&2ak>^{#pD(m(6`v^ z#t`7sk9Kgn8dQgTZw=sYhR|_#6A`VTjMGV~v=_^xaC#M18ZdvMDOX2ZoAAt_l;%>` zcqWoqSPjnY6As14WK>3Lo3uq_-$KK;9|1jGoXZ#ct6FTSi{(=Mi0aJBp!}J6gOwaA zmtfU_$sDY$ZK=wJa}6)9N#O(eKG>)R5zeu1?>qP>pxEidA9Nxm-v{Kgu0fCkDc(iw z2Q7(E1ql^X>G*1SG{p93cYKx>Q5G9tjB1Ql#X4gYDLJ+kYbnt|=x)>b`_X&H(c&fQWxIaR5g=Z;=^gTMF7WU}b6NjF5U)Kg11Q?_ zwXUMw98&kclQC1*yO%|HIa2W;?TSUKkHmWyeicNFkFU%KHdp~T_O7N~0Ofw0X{ha3s+Xc!Lk6dm`{lBoU&&(&9StQ_fb&Kxoam^9$MCFF#svS+CEi>Ez& zy~++_qt))5tv+>3*X4}1cR<}is_A)W$ z%7lB0c+>0^QPn84C#$a|bPr}F1+_3iX#;X94B>U_s@|v2?^DUIGptl!t6#3Y(6m{9 zqJ6r2Pu=wBVt}xhIU~j?D}Vd;NJs?>HYdcE6KoH4Z|pJXq8LK=-|>**G;?5um(yrmoq(pegtT zbpD6V*gwH7Fwc!J4AIjB0>Kyofi#L#E9|=zNeHd{j_VoCqgHN+DOSt}*ya5IT#f3d zSIC)qR2E5q>hK7OrIN?u;LM!=amoPy%&`Ykd+HP2f|syv&WPO`#zKIeem}-3c8V@~ zPI(_#61bhSj&?qA)?miL{#;3g7{gj>o*|(j~G>2u+zwFmNbJeN~ZcZMG@O~%aI+6 zQGNQ$rsZPhn7*B3N5r@9*}IEq`u&D0He!Mc*;Z>zTB2phwA#|QT-|=9Ez5+E2Q#u$ zk1{2!tXjiOip3Is5Uqznb=S#dU700uE1jUKa|Jd?sx_PcRFL2W=oa?6#Y|5|19gV<$F6dN;-9U?l#2&$m>NKZXc;vX*^L3+a~xGd7|M%bY8j9ZS|LS)(#D8&GqaA(=kK>IjB z@^78@C}Q#(#V~}2ssX3E)vVNzu(YlqL(M*NM=0@z6yq8_3>sI5jB$V`+pl1B&t?6g zEA>R^vI#B-L|RhlU$9|3{8pQAnFZNyk6^rdL6z?dNhJ$anyJJb9};`wDEDL@F4 zn=Rm*0LVGzH>_a2+E6@(49ulkg-gl-MBN-NlbAYA)6;SS6A8Pv|VRm_xKjXf3{Hx*TJ${Lq*LY%vXa_#*t#@7Q{DY(CHb#QWK$HKsj{j5W9& z9~@Dj4Q2MwojfcUtw4?ibPRdlU#mJ4i16*szZ}mFdZBIN2cEP0`;*_PgrJpIo3y1gI zA?gema6ahyOIj@unyW?hL6Mi5YTWFd7>H zVGLV|%@|9gf<)POS`v5rAL)oll9Eb_X`^*9;G$MObX-k)IOp#;=HvBLq5<;Q_dNcc zh-2_r&dl5b!LJ6yW0-B5q30#K!_t_1u_GY#2we=wR_cC}*m_J+p6c8X3)`1fF0W`Y zh=Sl$49iC4!9{J_Qo7!~E#oDm%d`W55Pjs7Puj5=% zKKYhNQ;`R2^`RXNozuD=5SXoLzt9Zdh%{PgD4D_q4fx`q9}{jK*Mtd2yh`JpmyJ`- z<)^e`2)nh%CJ?-UwIRysB55cKR5S`S6eMzMhEdK(Y_!8=&DlLBaE4FR^eAnen{y&S zU3d_tu(=pMxTq};t6eyHNiUoXW(Q(j2nzS=IoBlMJ05YYj;$QvZkeT!&yRyTaF-64 z5N=Cz^m96^2`BaGHb5fvVq7}mT+L|xy@3qJd1s^@W{6gGX4N-@A7futke}T(o@t{5 zq9Wyj{x@_&8U6AK}6xQmy z^BC%5*Oqq9T$j4s^McX^7i`kle{%l5$6NgxUEIj|fW?aj{k_Y5H#i?_sf~W>%sV4= ziX_Mnv}&*s8tFzEV*s8|^L8w{3*qXNZG*N!Z0>z1)C8h&VmE?xC*iLXNvGs)g8U>x z(vrZD^cj%~mL5X9yI!?5RO_`P?6vr~yk7{UPL;^P2^#5ug%g1f3nW}!eSx(z=kpQ( za?+-hHxz+4R`W43-8WC=n7#Oud#cq*-v)VtA@qBLuoM5N$)k13n=#1~&<^zgV9#;J zLx-&OgbBtY;EB^cX+FErip98v%Db@&LHy$0K&3dIcr1IFF)7(GD_3h|oH8hW1!SKP zl1DP}Gd}UNUucEpR3eJ1VR?m6{IbYC2_%nS?}Eq7$D$RcQ;9GhMg1mDn9Sb~cw?n$ zlw?`5ey+R3+el@kZK0i7n+W6FPwN{od*em%MJxZ7HybyZi(dlY9@-8tF0Q<0%7w@2 ztveeBsXZuD`I9O12_pXoJ^6S~iT*Po^Pc{YOCFB{?vLPKH3Gz7fNJfRv-{y!x9Yzq zk5T?-tmSWl>^~6zO>ZwXP4v&52^P*|$gp6b!b>7KiYc@bbLoPxZ$KU>OsG-8D(@_= z$#B!%nX|s2(Z4j(yVh(*{3|tRH43u6k+eG0dNiurw${2+Giar2^eOf!UXH#}!<>QX4JADgQ>YH!9MV!GlegszP6^U;5n2Tkx+7Z2f z$$K#njdLBl@8;MMxxZQWh6i|Z?2vP{i=TYsuswSIHVn>T8~1hjHgo5heprm1mlE{H z{xkb989VRjEd|9h^ROAa?cp=^@NvNoD`48m+kf8`KquKN0ibi(=)E-oC@I>f@52md z;ppu?m!U+B?1*-by%N9Ai8!3*?d+a8_>7!_SRukxI$Q1 zFk^lfFxFm{(Hg>x*~%cNEd`aG3!0T|bX7ZvwOrbpNr_sFe#UhW5kcb&C{DCg$d!$arML_Pu&kb z+`zG)a$XZ=daJt?w(dKcU;x!I%&{5iV{n#xm?e2oW<^F_uh*2W8jF15opxSIo4fcZ zV+{DMi-Y{OD4qE`3m{=0L9u}6%*B$_&=`WX{7^o4v+!H?d<__;gCl*!E}zb@Z++i! z-c$~zKp~xyJ;I?XAv4gqhPxBM!(MqX892mg2CkOQrWrnG$x2LgHcoz7; z%tYO7d`1yrCAW=;*eHygO$lbFbv$)*H9}i{m--w#do-JIL8$9+`s%;s>$yQu#J|ED zSEN}Smdi@tX{LmRGF&upRj89VLcx$oMslDiA`7?4lZjTeKjyr&vbjB1tP~4_tz(#B z+5k=J6;;}j>wMdPwM*iySH4mh%aHUh#e~Tn-lUVe#_92a>4Q z40kWm$XX@F>#N*+D9UwGTBqE8P%ik1;?b^s);tua9YB4Pu8|NGy%2;o>Bemfqe&42 zhmn*DQbsX`W~0eUVa~Bf5q+d_S(a0Xt^5d37HuFAR!mKz{lg^xs8JeDKtz`r8yaD! z(AvUVPC8PwMl+7nV&KuZ)^E8Kc&+Vl#YJAWmG< zxovJJ_pB*Pi2!|HxtZ>shnk9_#5NFf3;~&$Zu)KPUK5_?Tun;!IPw!c=}U;@2k}uw zrMjrKS48UTxFD)9dlP^ALXnm+iD#sF@5hB8t1xHkhM%lg`3tcuA10FY%RW*g=(I6VoKD0>t_Jo>6=4}H+Ku)x4NvD0pH9u~n+`L5RHw_9^rCfK+ zMeA~VL>lEPksIo))8p74z1TrL2jmZc)-8P0-Y@o;<5RL{y%v7A7rTle2h}mtI!4xC zN%fBt!)vQBOJ6V98V%c6971 zO1-B(e9@z?Vrza7iyK@c-z=>1eq&^59u^y?+u*{n&4A<~%WA9UeKF6_v@1=+ zF(c%%=d_WToy1IcBm`lnv$<~#n(D^4S zguM0FHFxWOk^vQvp|*$z(&_3ADC{T)3#sZ*D5hSAVq|WPKP>K z=yD~EGOM^v73HQ>04)KbR>OEFaaF=pLdoG~IIL$h1_UWRdOk8;jcT7nk#XJn=sdD~r&0>0fKYE86ZEKPb0FD=lEg`4GS2vZ}b!j(C#)ORX!u-9Z?Tk@)! z3@9j}w!}Zx3_FIuWxu(-HF1xC!TlIlP-|%IDi2v!Pf?2-t56A@5MgOA+Oap=X*{Te zX2a*o!aSnwyq9w*We0n)_eUT-h`O;51VCO>`t7rW$W9kCT_7f>ZxE5Uz6%9828Tj? zPEh)`@J4+r^FN{7YY1b|G#n?67x)PT4sn~EnfoL6&{yE(yYf~aSI*@oxx$u!-F=x6 zC4ctO0OO-Fug^Cu4If2+(*1dslZLbXVh!Gl&rC3P9|+#IA6+5Dn>|d_$mdG$xV_Ty zBSf@xW9>w>k&Lpz5!${H?yWJih9vQMgUSVh9+K$&a}B_cUed=048OJnF2Kz#C^j}s zQ&56^O0E;fUXFXLh%cqsn&)%dZXX79& z82Mf*@HEj(O3TH(y7KJ&rVFi1z1z9Y;eYNP9TT6Q&)au>AUYK0T~`nsNKhhi zN{qqO04|J_vM~n4A)a7gImrwPfCbL^@aA;@D@1;Y5s*t_wYKMCVJFqXVKbhW&~lY%ZP$yEtT4eb ze!$OAgrq{O7Gx^^1~sl+gj8^lmYnY5Jc(2q2h-28c1j|3FN`UMp^MDamT% z$C<40s`aFVNX1f+q5r}p))-Hu;b%J{ONA0-Lm#!+&R`aeEp&f6o9p!=V2fc`HG*6! zGCA*dz;i8aZG85?&Q#Y+@9A%tAETQ}3R1Gbpvh%ic^Vxt-V}fEpa9KZI!7yk_B~$m z4uhKG71dv84x?&*Eeb!a8h=0yahHShlE3(RS%guT5rO;JYFix1J9>%M`OVdb7!q{% z038G%Z}ca53H#)>(hdv*DjV=w+C(#NhzJo&{br#U4RJa$%3pYexcdJNp7EI?@gIIuDM}1~7&r;5f8q z&;wn8)x%$c5bqF2^`r-+Tdd^4{2;Ay?$gUYod*1O?7yPQf70aS`io_t@E@b!*BwGH} zu^lr8h9$Y&rqg*SIJ=fueqGo6a@H9~`z<0QrOAE!-c|Cw)r#-m)X(3i3*HI8I3Cvj zk>kPk@ABFI_2dm4olG1h{-V>^8d%H!?ce{I&6I5H=HyX)X;Gkbp7ugAIMe7i$W3Z# zZ?T7j8L;9-Wm2Wy)px3>0#)0!ko_V)d*M@`<1Gvy62ke$+-X^bSQ(;!cuw&g^B!~9 zb@KW8z5?l^yP%#^R+W)kiW><9hFE!UCLPHS6){uYIqM9f1){z1;KAv7bdA@Tfah90 z24)*U+Kp5O;^T1kwOvDWiTy?<<32J7BtXTXUlApAzPv6;rgJ~x3RIFU#C%}y&%1ni zS75%lv7bJL8A<58e93O<*C&>4nWn#XynTonDjSMooN83v8FrT2sx3Bi+C~k9vB+OC z9N|lmrTl8EQcKdk6rRE&LpI%XIhT5Fb;>G~-pQz!g>w;kj3BJUD$l zrP+vK`)vclW#{RYkp?CVKhz{RY4tTCY;c`sRFqw`2g=}pS#YiBF_TFr`K}&3)S`x4 z`O1sxla7UF(01LUK{fY-E}BzZU7z^W5Rqq)wH3KaR4LNS2SvcSIHdjm(q#qoVA!5L#%64|#`P5SzGOY!FE7$K+-(C@0Jym%!Lf z?byX@_ZMQ=$qNQQ#1AaH@#3p-3+Qs7yF?zC%u#5+fc_QhsY*O-uwP%>UwYJkUqSi* z-52+F>em0#+e?_)+Bq5+TK|jQUS--2TjUF9*Kaj0XRtb)6-cEkt_j+ZRZ8U0vh$f^ zL9h_ZhUXJ1(q_0D+8tC3dPYN`({}dq#X1TIJDeiWU_jqsz^QmVgE3RL%_3 zM<63&4^Cv3v%~=4*CpM5{TdINpDSR=j5}w-f*Yfowj43XFgd9)>x{Q2OHR2Q&l{WZ zvG5%9oR>_ZDNY^ps=7oG!&p#QukCaI!;{lCmM5hG?XB@!a}};?Y9rt9u&R|tbV<7_ zBMCA0E|;FHA202=5k082-=gJAR&%1LzYnm#lr$JaI}F&)>>c3**prQ`Hd2zMSy3=> z>NrG}CQ0^6di*XEr%~Hb8JA)?f5w(;Ikt3d#oySkJQN%HgV;uHRZ3jOm4oTIzuK8v z9}Wt}qgUE0WjL0+^19~6NfLuae;ekni^EJG;s89oOU<&L_SvCAg9rwT3^rw;*nbbE z+mq;z?w~7_Z1C{;lj#OYmz6#m6PUxo)Z}eSRUV9X2Nl?9gvl7MNU!NcS=*yuX6Sb# zm}_IYjy9qco`V|7R#Tbbt+1C)Qn1p4WLH&K5a3grU1+3;fV%pt;0_?SAH>=Wl?prC zB??e!EM~S`yab;Tq7HB4JU5S2Nt6!s2-yp$4`Q>FYd=yTB&e#0yLmsgP^F)MoyU~A+?4A_NLlLS6cSAB6r`HSj^aieFN-$vySpOM`1 zy`v7}vE>;fO0A0mxhsbj)a`M_WJrqO%$Swd`EO=8VYV@u8aGgrbgZ~rKpz{iXBfx$ zaS7&3W?+^OP1OTQc(Qh(g&E6Aw}zrhmki|LP}ikH-8pffhXv2sZ7geV>_ypJR`-Mk zr2ia%aW2j5bG=pN^(#wv0{(pO@FbDexz@Jo_*IaqC`Q(Qd{Rb)l_R?Oi=ZaZD*{jQ zrhVpldFF+U{+Y)!;@T+8FOun<%h=p6*)N9r^Sj8$H{|t|JccaN=jZX=>n-Fds%NCGN-1!U5*0dulHH}Z>gK@URe33fKXSZc z?S_{Sl&jt*Z12w3#o>gAh`SNvw;iHB{fR%3o!;pt=6wa?=6SBBpF!~QStNCXK7Im9 z2;wIYL=$KJwvB+>gh8AA0^mvi5h@7$yY%sog7v==h?4Uc8`SJyfOwMfxa~YY3Qt0t z!+u*~A$$%3c>{ku?*T zj$fOz2SA=Ea0!t}d5G$;p&bg3xlp>@E~)^n7H1@bRRw8BRq>2 zDENpy0U7rudYUwj%9CXvEoyeg(bMhc;8fap6o3{|Z$-gOu90MDh%V|przw4jp=zi< z2kJd1?G9m}M^1(6+NkFtG+bKC_{_5763sNSz}BGwxnPL@W+=6dH58X&sx@{@JTXvA z`=c%-1}U6tWc?sL$~{+?0S(JJw%f{C*NRKr!h~%;WB;Y4+!Hr1{e%f;68?IZ4Tk9l zRSZnNt9n#Pc^?Z|nYzg|yl{3Xv0;;ub@?Pn)x0v9#SHR^02K2;-5T?!#Ovt^krbcL z;R&xmd$Jd3a)zh>02Alz!rWR6E&t0mk(aQ!Vz2vPlbh1fIg>!$+=m&rJPf~qd`8?XzEVH|k?PPL4dxUWV$ zk=c5GmDe(5IojH<^6L9#_49w1*Zv<>8w)|U@-0x20V{64S2nRl3f!#j(%7JGL+FeX{_IuO5JEo zYullre4<2wu1Br&mwEvmVvt*{%d6Oj!W94b4jC+P4z7x^pdsw>`@1^>0llQwDvKaz z$-{3;!{>n=MSiNdY=5UHFbG-K$S~IAiyWJq+skBpDU0DbnHhpltqo$Zxh~_=9g8Q2 z1+Tby8eC&B;zaFx=)azech3gFUp7D4{}Jf^x5GUp3mf}?!5m3S({{*WUzo#ptC1~Z zdo>mTI2TgiE1{(T0VtP0jNdWon<8P(!`vVqSLB6`RVOXSgEG5v*@6`k*0e_z}XMGQ+q4? znb^ydk72gROEeV3B!)8qb^Jq{@m#q*Bd^HERK*+49ikpgFxu6%ggH7cJZv4L`lwsm zv|H#oEZwA_V9PpkTc=HUvCtF%N z4vO*Qs>t>;U9~(}{96lLU%Od%#&IscRsB|CK|Fys4!o}24O+A@@u<5giI@MByp8Lz zKmX>!wvjAgeWp$TSv8~SvJR=*ALy%tT*J4+zySM50Q9a>y0w!w#qd*L3g)&V2<7uz z{sX%3=m&D?HqnE9kRy1iFgg8sIm012gE7-Z{Y^0# zTuScX_ZOT#p7l^4e~r>vB%7M}_Aaw(tmR&W#WyyHr+oLC<$k03;SUR!vClYc##0*? zD;1?<-af*!JaBbxCWb@fcq?$cqTr8<${@{JWDX~iJ}jcy!$`BIrP=4!5OwWw4X$Zm zibrNxTtABqOxnqRb>DE;{-Px}TJ5AFdq)|pq`u=2WCrGyE|#n{Gc=s&^S7(qf9{fM zMZXIDkN;TcN&j7;|9gS|+iC8<~{d7SkBPbaznPLg8HCZm5qIuck zKa20?8KhaZr_85r+g>Y6hNOO1o!1*qF;g#7Zd0AFyJFkk$UTDEHIC|bBDk#THMIyC zGgj;qS>D#kKeS+4oQ?sgTD6rwIe#_oIk~G_+BNSXKBN^;DnI^2{R1&ZK>UQtaS_}9 z69?=Nf%SB4sXa2bi@u|ruIwUsC0s{Un4UP)oY&A1uSvfd^}dGphXV)ML2P2bIPdQR zqiW?fGhJRaCZpbbv?eU`^>rN9IbTOM#=W7Up?pivuq zbIU)|Wt&2WhFiJuz$wUj4UV3Srh%1-rcrbp37}iC#}KnF5eozrvvG$RE+|xm28_qh z&F$^IzJ`Pxy|#rEC5uE)PDW~;X;Qmygdn>M!jajS_nTRpi-qEF+MM)BVze#fd?XODKNS%cMhB&C*k37MGvVI`|DC-l3xs~ z$1RIhEb-(gR;e7Cw18m&U#?x!TbmQOG2BpI@3+aR=|lM{WN6;FJlW2|x(cqVMxC?q zTdLH_bqj)PSXT-SX>C*@IW$rdnfLTb4SUuXJAQ2?)Qm$OQ4)RHsE$x5b@xb@M^g-P zV5mQ`%NTcx^i`cj*=$OaIX_%WC}9&>6xPIzCd=YTm?eq!Af5_`^fKvkR_*lck%zdg zT{)%c@_W*>lLZUMZT~Rh_>jfeZ+c?h>kLt6J-y3%>1<=l z#P?AY^EhKtX%|_G6xUA2@tM0_+19MRNP zTbt}{+<19I0?uoOWHH~?w6ClE`~0Cxqd--M{fpv8W4m zHiBFbG}Szw^ng_yb!1m3fAeJcIq8jL-3xIH?2a*9o3&X0ueW<;1+nK6bOVO6(Ff-Z z9{9|#jmtMo`<{INgCU5ID5UVAN8As_(lGgS)h1V(SIyct#tWtiMOrFKsqhKkB$R?D zNDxP%vcd9n(67br$a~5uZ&cls`-;O0a{k>!v{^Eh$kuBV73Gb`D7A&5>O0eMJ~+DL-+a$@w?4F&FJH zX3NUwANJvN4?rT{wAVfmvU513M|O|i9`daS&>ND!52}RrkgvAEe0LNX#D_+~oc`fu z{(Yz1@f+@4XNUkG&mC!1hjO)e-egQ=twXLTrZ0DPgUEu{;|Vxv|6Ou7XY6_~e%k^I z^Pq@3dgW~Ox197@)DN=!LMKdTJd+?c^;4soebU+v5o){q_l>OWyWOW}#E)42H^;0nzq#;dbyh?v#jsLgYQ@&xpNcD0bv3e5@>rlcl%Usp`ZJ2g zDdY$EdTr^pJPEGXvyI(xuGh$A@DPjJ3c-H*-#_lXfohT zaneU|Vvv~-3Qvtm>kE}si00ViRgMHTM`STaepDyHs!^aORF+vGNv{>7p89D%$S%C* zVw&VZnb9&?M{q_gTn?dtPH?7b<9vqTa=NIq%Q1VT%AtDVR{j(H@Pg~GZZIO6K1`-2 zLYI92t!1!@8U96iu~Kgtd1e} zdR>_?@F}r?XFM&pNUW?uGJBS3x||13bSQbkb3gSA9K)MeUM*5aLmHo+*`mY;+UaXH*_NL|8p+&$Qu z_a4sQBF+?^yN?pV^(IyA zz0(7gN7h>8XfyN0nV7CFy$RtRk`8ZFq|vMM6RSn5-GQA3*=8t*W+-e8+gm2Zm!kO? zsTMEj=M)zZmaF?Y<1Fem?ePHcj#K?YpMRU~(@`QF+M?mJn3o&5a6roR}yZWe} zv* zc}7`OQ_|=ScSA-YGOZ|XiuhzJUJ-Q*vxr`7DC8zSDtM!0Bc{xfpf>Yk@#?6Pvts~S zdgkSn7=vau}CuvvoW5`zs@^&W?$?3(>h z_1f@6!)YcH5=RJbE-ZoxdEhy_W-f~*@rKh_oDnJG`Ez|eV}Ft*5(B*{x}!u{HMMSy zwrw*SV4^!s0<*OfiC>6o$_m0TGz6`|(!5_56`gqiQBhzyLEKWjcg7yk0#=D$McS$* z2u8@ArHUc+EFPdiVdUDf1Ea@niC&@HmC23DghjoARo7BM5E>ievrC${|q9uPdQ-T8;_V`BMA+z?EN)heojR36BsPU^knn)Pm(xsuSwM$ zWHr?gwZ%^uIgaKQx-4VrPnZ{tUs7ZZzGh93Z6>);qLIX&X8*!r6we7is4W^!T#8GOk|a;f-6NkwCtam!k*s*m5Z`;e zG6j8U@@T9 ztbhhx#<$}=s(|@p@l={nDR$D9rcUt{=_(|bfEhtIV+N+uN>s_)sW^P}A>=I5RTQZ- zF^_xsF7bm}6 zq-yAw_p680u};lY71xb3>$ZP0lRNm>@@Xb-IkPP&_;XCo&5!K6XsP{?_i1N@{6EIdej*Rck!PAL-d@Hl-a+Kolzm*>FZ!*OJzk+OTB?Pmy^5@ z6hzdXxs?L5(a|~;uA-srlowTW(uQBe<<<7b<$1zhogcyS+Nzu0(14g-I-_Ed4)1nM zN}yf@(%V|#J~PMARCUwt>o`nI3=Z)mF506#)8TwU4Rf9Sw9=gzTzr9jbq<^9i_057 z*3Bb8NG@7GOrAT`13vM96t;n;K=XYe@sHlA^WH3+dCE6a;+sFVem0P@yt(+<<5jlF zO`P$Xu=@V8?;!8I3t>K(_mN##7FoSH=^`=j9Tcy@pavz(f}0VRMc+hGOcD!_^!CA& z4a-Du*#&Z7lo`Fy6nu2c9kqaDVQg)Ti9>I@9xo|sD5z8T1Y%tz9bIL=+(RKfO!EEk zm}!)@(S9o4Q_y`#lG5|=j)Quq)a^f4-ZFgI7X6X*nF4XcR+H8p4)#ISaHE%>^@-O0 za*c4*Ef)0o9sF6#J>nBF|6PuK@-vFq4_oP-uI72$KJ611?i0M~&TmiTgRW!XGkW^& zbI0i&*W154k`6M&V|P$3xQD7Q^csS%iwwwJMR}h^A#zy+b_*rr2D=v1E}ZjSWue|O zx1O^$$p$&PLWa54b#{y}FZwYet3uDYX5SDU8?k-Wqc&6~f_^-b)>X#2{&-OLH)icG zA6@RLF7j;s=7EF@tGpB+EgVBWgiwmJDn=$OsfioqIRTtph5*~WoJ1}u=bQPB#nrW( zjX_e4(2SKW6}9%LNxV!NIy8inIiGjDGgXQ;aZ&==9=dFS=rDr}4B>VR!D9B{PUq@a zZTRoAdPF46Q}PM;nnuMH+D}MlTFEscidUpOe1maRlrM(Wdm7H0DVM^2-)s_Nhveyo zYIQPu;T+H^_cYiFh9wEIXbpn6h}>!$&AmH+CN=_j!j-YZ%V>Y&(QXKr2of$M%mFU^ zNjn4hAnV0@qMrIGd;GihdD36R%u*^+K#jYR}PTQ*Gxs3WlkR? zX$Zq~hJbDtPM+YS9S5F>`Zr;E`yaoQq8yNcr*_uhA@y2Ju&o)8>~1RrEL=(nSI{ zgFTl~frKn5LF%{}Kt?AZ7x2KR6K^1g5ZNmfx#|0{!)6Z-iLhIdrHDd_g6BFlHNmm% zcI0h#G|tDj`JFyG0i+KRGCUs)21djWZkHD)vZx>IYFL~Zck%WopaPJ|Uv^u7-O!ms zL;qX45tSNMP1B_rgH^S2uf9@$5jOJP_XM5q1{QIvUpj&G|>B0RhVSgjY zl-ae+Z}MT?1CNx8xW+XnU3MiMhw7HWqH{XbW<>jYAOGw>&_^BDUcK7$HqAWAHP=_8+3MQ2mbpDA--S<<6J17dTSBz| zGOMW1SdGCT5-qr_atyQkQ**{@n7bHEqU^vGt-sF~Q#?I`4;BZ7ri-? z6e-ELqk`)&u|&LB`nE0?CaDFWW-WtR7-5moJX@_e^(M})rKzz!P-cThnrTDKl1O91 zalM;Zr)&v)oWxQKtFyximYAyp(64|HZP#v_1g&XGRFQRIKP0s_>5Pu5GdxF($b&uU zkOAfLKrSt=#x!(#vJ7nw9d=_Vd0>leI;5$IjM7%Nlv1$%b5**mAuNw0F{dw&^rwJG z2q|!Y4kzus;!!`-lR?Di{i4tz9nK&G#nj>({JeoSJ~p&7NXiL$)f~NU0b+-AzI)Qp z4OaBN%h;aG*e-7R0C?0RK~|5Ma^JBtlHQEabA+se70!{gVGY9+t0j5(K8Da4-Cv>2 zb%eTZ^)<3|_?O+w|AgEBeQ5u~O-;_!)XBv8AAsA({%<0x&1SFZF77_k8z2Jf@f4EP zNj1KeWa2`8{1yZ#5`X?zgX9Y$jg^a#P1wRl&LmT3&0$w+02U<@K2t9ejWjlXLt&*$ ziDBgur_uT>XI`UbgYVbio^hwut{zfCy!a!|Ym4V8bNf2eYr56V>1ytj>06bUq!>W} z-o(J9Ws3-GBuSZb3*(t3%fd+us+6NWc5<0P8gef@-a;)-qwLNfv@99b1N}lqjc`uf z@*4|Wf{LYDut!UmO2#goVa|$_7NI-^!~6kK|I=AhsxW`Ow&?a~DfIOh4aiau4Z5RE74`EGVkrENXRpF_m4;q~NLBhc<#|m!X<=lB z;Z1L4Li@?8^io8A%w&5@_60hp<`sFovsk9Ys6}0lZsm(<0Mb2*a8m!pgc^X*mVU4e zkDU!C7C;7w*N0fe1&AoklXH<7Mb0U?JYtx@PKtQdh}e0ZskNirB{ZqavEFLEe-zBh zECtoBu}sMF_(8mZCcR3=dGICEXE0&SGzuF@XH>PEwoG;)g`~W`bv}X)D^h*bG1x%= zJ1cf7>@R<-1$&w!hzaaq_(4NeE%qkr)uly)!FeKVOMTiS%+weUBrO=`eBnJ=V7Fac zmJOm?Okf)Qcf-cIMSdzmq-1{^^8|A?ghAJETrk5EdV647W&|<8y!jqkVo*z7*Zra6 zI(#jNv}}YC+-iEk+m@t?=wKy^$nh<%^xd|~^-9$yb$b<2UU4c+_+iG!3IEAYccwRC z(4y7nSz!_L&5`6)of-=mx1#bEXrul`razXCqvr-*gz_Axvnkr04WLkwR%ALEPK(Bj z?d@^rS#Fk^A)Y?$NVSBNldMU4v&316t$0vXctppuWAi2*tC|ia1*-Vh5rX4_<2t+Q z=)bW0YZU%~K*O~kAiJSH5&iIMf`E#s1}X-ked{iZ_SaN`wdlfCl$mw*Dxt|1*KFKH zAyen|u#)YNmU?!bYOIbN@4ahXN^U^#okilPnLGu!Lq7MY+!e(JY3ND<9bh-C&)!kGhj8)}#yGO6J*036 zIA46SQ9Lr8YbuXF9Qg+2k-+S^zQ|mkI7)+(<^?D8hP&eq2I?>pVk9N?w@K3tQ4g^+ z8Gu0tPO5U|4^+c`k(D0U3w04#B2K^+Kl1r6{a`lwAe`*qM07he;oG8p!?SBMbDd@ zZZEHcIP;ECl7lyTpSpg!mfH!i0U|TS<0s>fnF!HuB%ucfjFUq>6H0=qxW=*YdiK67qj_s#}WDl$e|4&D^b$*UZW zeDj6DB5Jp1^%f_@LVMJp1nGy|or*{uzLcWxx0lsx#SHsnh+HqAT~VcFIFnr|AM51X ziYRxYh_IA5c@AHRY3kNjeSnrB51TqXcaii{zsZ<2g>j_pMj$CICoZRq0N!CV zl4sZjyV%nSFrjE_3h=Qsof5Ijn9j*A1mjkDLYaRsrdI2g@`6tpwh zhmhMYVIvf}$bfR4Fs}_VQ>o5G5w0QcV9+m4VGfc3ngxn7i(+*_oxEh%aLzWlirhC5 zWFJ-L`Qw4j2aj1nJp_d{BE^T;6_L%o@2`38v3O{Dd13?k4<@(lJ|Y*zVj^@rq;T`P z4nbX{fH}4ShS#EJg2%8Q^T>NFugUINaAD1*YVX-_5l<(v&(M$I-Adj4GGaJjKEn(t z+0N7j`G7&^iQ43C($LpQj*TaauA9Y3HRPHM57!_oOHp|zS_NEfoYYGz%*)-eKyv-s z7P+M0Ua>KidB2y+*#skD_+J|cj;G8W57g400J$rV#Cc3@Il4X4C6(DHj)07nHGdIv z{nGj;=?^jo;1j>U5R1Q?AFANjfG`2>|K9bdLeSvvPbs>gF%?iEK79WrdZbyslxE7Q@&anPm*Ev96$MGxmD=)kl=xj? z$f?+czahuMF=gJX>zeC0+v)f%rh5C^#b7CWyf_R0FdU0>NiGwB)_J%VnaANmusWoR zeQtz!CgwW}jO9wD0enBHhbAXewzIc^+(^fR6wHKi2_H4?=?{|=sbg(AJ8c)6@tZ>z z18McH)cnCj6i_eQTJpN1jKk+w56;hye%#lbQ@mfh_WSJd) z!MU_q1f-QE6;8DMf}C!PZ3dX2TqH+^5`% z7kmwUZLEQ2y$egBha0_8Z3N7E#-0-r$X;NeJ`5qs5_LMVR}(_S3E0CBIYuUK9)`?Zpsz9lN*HsBFt~90lL8DYN+ZF;lxzdt?q~<|T2^_=-iJ-6UKpPP#Bt|0 zgPJ%aO>!4nNC6?&7UIDg6`A{_XDL_MsgT`dJ3E<}9LY}GF9f4=zDMs|;S@xWjP6@w zf}vAsEh1yOL`am^#PU&8gpYJq_|R|`J=IOx7T30{?Kst@q|bJMB_7$>HgDoLYR!_ zr-UaKW>d*ko=T!`^onruWCL~{Zn1~ZC%@Mjvbvws12Ew=PzY>6zqM zVkMLL8`>Tl0WL$88Px#L?idiipJ*Q#m+u6wH)1D;ay2|*5wjj5tD1!m60H%|#_|rn z0^9+`D=hMxB!m#*%`qZ=h;#(Cib6=ZCvYq!sLxDe{Z7s|Y9~i@GyQsou}ffn(FPx; z!O0M7=D4{SFzIablEu|i2nNI!TiDTmK>i9&6&N%wy03Pk@jo&k`2OojfvAQ1|A`auh^WFS)+B`WS+OkS7B>z%2-SZ$Ure2W|nuEsSAayYd_LtS~o5#olv`#gXk0X zp5tXtTMCy3`Sq?)mq0lPiOAgJsAn0bD%FHx3MbYXCA08 zelWB=fkf4=C!)G)-{Ip#hUZ}`V{}aFbeIh|A|qUm7rr4NRJY74gCim zKvNUlbYhQ=o3MG=_S6`dV`g(hL=tX&TCJyuTp4~ri2s}&Lv|f!jC`^hAly z@C*iK^WBbex6yNcnl(*^| z$aAKZY)t6GqW&$ZB}ZM+Ui&n>d~fAyj7(D4A>k0OLaUe`Nf~39f?jl1#-xizM*844 z8LkA;&zFthx&6M_bTH8X0rG#4_Kwk&aND+MRlH)`wr$(CZQHhO+jhmaSz*O?C8^}* z+xxtG_ulP&=e^TzYb)!=`j^q>9J7zn$LJl-mV0L<3~p^(coI=?mwm(TuM}y1w0hL= z^H3FD-CLRvCdw2PMlVJU&?pDq>ILjU<-C{$|4!TLY!udK(b?IxV59d zoq_rUJ-_DRs@DVqHp;yBeem&{y?^hW`Tcl(z4{G%!1C1jo6H%Y-T9g zNOQ)q8>Zt77m@xxiyV`=Qqx+XJipSRL@ieu(VWRxEZ0g^Zmu2y`bXuqYT8M$Vp;90 zV}e&~Ql&`A*jdobxw)QSG+9WutOM>SU^n46`DubV1U&?lG2LuY0BD$H}TTeDGz11fxsZR&u`2hk!&kbSdxt5ehB3lh7Wx^fz} z71EW|nvmTay^jR)E6B@<7Jo(AtTfXs#dLJ8*)4X?MZxka{3-aBGofBFs1p-He&#N!WN|3=88K^^9KfyNI_e?2ME9xH+COiA#zh#1MJ zk)UF@3wYrb&=i~z*_9a8l^|GGWWY+)_tbt2SLlNac4=3jOXGvVdt(_9F{0H^OyWDF zlc%!bwYGS#lKSS;WQn%r(JVJp@VQtx{$(9|K+pIT5K@eb9 zL|<1(8R{rjS4-`u5aR)RIin?LbsOROS*&S)cXufum{1 zlUXr>FETGH*vO2K(E)oO>1lH2NKhWJ`;~+lPJ14A0*eKJK#&X^vDhyxTtox^J%<14 zsB;b3*cBkaDsxj;m~%w#wOtbKG487!S%xQCfHVxPa2Qd@kL*#HE|NVX(wUYYhPiP+ zN}A_UbE^;PuIVdq1DjbdGSpq4|o}^ZyYR>y4 zW$;c;-nKAkwjj$qf@I)MCzza@%H0%$(nhUeGAzoNP`8!|as`Wor>L(};VyT+@KCGP zrxRgF*O~~eRuP~r#MC9L^2Cbr#-)65o%oK0ZiuHJO=B481CiqsOm$(TUDkEoAlJRm zCk)rK$c+{@Ci1g8VQAL;(Tp&ng``;?x{KSBFXX0f6Gr6)<8kwN$xaVn*a_=xA&6H{ zuB}V*0DAg+Bjg^kY|x*7O!7|G4BBviwZtpFjPCzFN%Q|*lK%H8l>acV7cww1H<2>& z_^%mX1)0B!OrAQoiDZL0O z<_|E|E9b!xVP*#dXQID$PIr(C4W+fGx}JNPj=%K8-#!i&&AuHcH0c|9!#iXziERji zl}Q`BWHU0*(4T=_YA&ihwp?$uQ_^_IarV@oa-^Kt2Fy>& z{J@}vEWZEc`1_g<@*HSHQQqw177}agqQ$DRiPTDyVLpCa6tCD@z^kH*=hOvsdl*WxxgBEee^cwhG&S@`x*6G9B=2fwd(^tj~aUVUG$V--EUB;nVjX4TJn(zYn3pdCX!K9LWVOptw!?gd28~)b! z=5KI=qKTP^`#+Rkh#CHQAafMIET0+RePmfR)LBX9nn7C&qR{w0nebXxUB;QX7 zz`3(up^iA&UX=#K!!0cIm!^zeQ? z8Q&h>B-%R8qf+A0ZUXB|+mwb_i5xsH=%Iyy=cgD>$k=&g$@niwy z)jNScVw5g{Gsw`#lqj(aM9vr;(HAyb_-aH@bzwI<6I{W5x8a}sC&+r5b$^6?gD${k z=zl@Nl2S|*L|0779gui{qi`ONl~SmEYpkGBC#Eri`|D(^@#U!1ej#g;|Mq13?VixT zC#!#v0s2o&scL17{3QZZ%GK56#`SC7RSQ*}M&7(@+oWW;P^X-qqFr4x9~1;R;|g{& z;BtzQE2`T&=|)N>Isyogj;X{#JOn`jT9ZyrJfapJmyWJS!0@q~_JKN^BfELo3PJj@ z=5_qjYvxa{SFh96_UuP5GqgUy(ZTf)eyx_l?k);&J+f(RYHC8 z&1Lvz&wv-_c-j*Xhit^TL1KMlK)O>5oU>(0WXF2jGL6{z`{!o+XAxp6l>UaO(jv|B z6lD4Ox@~&Ji7ruvFinkI%oW2F?{MVE@6Os{oXPZWb*%~vO|6TCTpa76he~_+B%3Nc zCXcNq2SP?;^b$rPO5B{*o#E6va3_E-)?wybUbRsnYhQurpfMr4CLXJwOt|>&m{m?Ktx2(>~M^rE;n;lbk zsV_LKo>^cOA4nqC~|d=_9

    QZHj*2PbD8Of4*hG?|8I*H4b+U*8pBDQ_eP*Dcm2ZKmTkwsSVx2%yb z>On2Y#}8}veP)sjZIjH20^6WX1r%w*UZ+O7XX{?7+BSzL7Yq)jg4$*GNN_P1b*o83 z2a0BAMHVzCJ&gN?qzO~(siR2*ldU*XK-{=Hc9$`CfGCC&z1m1md13>W3sB|t5pH}z zzL+S@nK6h%T(n0yV*M_yEii^ctRj=|7>y@u+BiBXijJ8m3rg;z(J37P0TDn&6ymX4 zgZhA%I-y>yuhCCteqc_yZ6l-fwkqV8&!mHn+Vo0u;&i132HdUy2E_#;eUW_Fe7vP7 z^G}YEIa#Y*G^CaiZaMVM5_3+Sc{>$}Er zIN`>x0pdEN+yi|zc7ncaHfR`wk%vYp_SF`_DC47DGL)b1xjJ z!w#O}y3rNZ zXhOb$Wn)lFn!Ubn@&y6b{ZUuYONp=O&CMX~;iSgxUcXk?sOAw5M>p z^`{(PG#6~5o!~`ejq{Jf*aLOoIF0KFt=ZSV% zs_1hL%hOs%X(rg;zqoB6$K;54$lM`QU~hNfDTSNYrtCmQ5svPGjINO$?}h&WDf|%c z#~vVb1xQucnc~H(0Au1jguu=t;&xWW4}A}>6&z4Iu{uqrC24c|9b8;MHjHorr2T~P zyvl_l5_0HvPpNqJ$F?gnljr;FXgPO4qdfa=N1)_BQ@94OGaN|y43Nm0XzBiy;6b>N zHlran1`F>IEoQrmr}iS)nDDui`#KuAiJl?t8|3nZ7374=!mZZp;5!a$!*xMDUVWN1 z8cz2Nh*` z-lQ$N7TY47sUOX#>RTuBiRa}2s{22kj-;JTYDvBtz~IpT9e5W0{|BD`^*u5-a5OOb z`r+SK-jyVjkOa_ua5ABZiSps)@oUQsV%miX#3PF23luHC8>WzDNk9b+N@q)J*M7j$ zTx;8pDoRyxmzVsy8vZo={rK%Wf;Q};-gDMkSb^nsQ3`l!SJ4Cj+3?8$4hT|kjbcJ$uSiJHrb<6*`A zRPe*dP_T@+G^)3i=*wNS8AtDwNeR=b978gRCKI%#Zh;YPP{x>S6cwQblo=yO{HzpN z8OXw*#%h+dY!^oYF-`_^Dfg;_joY0kXVcj#Ad*ou>%Nv~5z10zr!h%m6}h;0Av(L; zbfVj?Lsmd2(ZD^Yyee6&7~+O$;GV{yj!0LHQpG*wmn7BwS-OLFr6YNR8(j4X$q@!ssK>^uy#ME45J+veRMUZdK zCu{iyTBE+$bN2G11WRY)dw8Yi&bB(6TXIT%}26WnZaR#e-+ks$=OJJ|5SyS1xG2HFWmaZWEI%XWY7va;KfMFg{yy&>{!POy<`F zB9`gDkWyM{PEiaIfk%A=Ai?$TZlqrF3%o<<^+C~zhhGN3?dGXpu@lVAHS0??Y0vUJ zZ*iH8=>72f0NO=QRgTtoM8|v@BP}zed#V^Sk{o7!q9Pv(z}rz|_Yb1L7F1v*0W|>? zLk~To8HJ>y$EIG<`BB2>DkB6}qf$VJUSK|_KaSYC?tT>^X;b1HMxfv#(@(G3hV4+( z^UD7Ma}Xet+6*z4&~5vYiUiq2o2~j1PM}M@jE*d)iA5{ar0!?U&EmXiulZ^+ixf-o zopRC#q%zL?>mIi~b}M4_*$le~mjtcA(rDFn$ppm{%eXkyP;}2Z=J59`g#P-j@D^_e zNz}MQ|31ffA+X!F)w)x>FxKtVBiX@Qf(Q92x!EYQhnLWcDauef&x^Ba4@8ENyd+a6EzJ#F60S<~OvTl^ zs+;%Pd9e&a2Io};&3AT_<+x#=QcBKo7S2D$$pq+fNaD54Rl|??9ZS2(p1)tv#9*{4 zRS|;Syver&t>S2McZ~GvH(a6Za;9VmN8FOIHFv-ze+g1Xmo@W z*AmGjZLL-jUkG15o3{Qwfw|$s#1Ni|w^@Zh6-$c!d`8aojd$2@&VQ(z?K0Dzu-o$I z%Z&nXJb*DF!8Y_;Z>rWJaZc1GC2)W(+mf%6V;8?>q|sUG2!Wqd4pbz_e+w*U-cz-r zaNaLuJ_dPkHH&u3gXLbvg2%pMB8$H?0lD2zXP~jNbyw{H3Y$DoL6 z<{-PP&Qu#i_|DZq-Pxc;bKGPuCWh)&&lZIZ3wiPCLqlX_B~+@+qw%mG&M(%@6oVLJ zf_kTHidmh7#QQ?Fe2lgS*B*!Hgg9bb>7l9 zYMM*j<`7YbOD5GOvJ#nUAnV+A4syHZ0$XXQn0Yg4?yo{}1^-{j0|7H=-ts zM|M&<07_1HvxYa^pG!8q}*}>cTFiJ)*(U0YOh6pAUDX+s9{TxASG?lYjHM26m zq_VM!E^tc@x?du~UD|V%0z6ITTN6;^Oe3%0496ed;q){8#r(c`7DcJ}bItn$^@!ZF zC~hd;Vl|66qx=x;DoX$J?!)g&(cydj=6>IY#M*y!k;1`;Qb-(Cxv)>}0>FOzhx*%@ zxRNUE*QEsddQ$)XO%(bc!`Xk18vRrB;S1FM*Nn7^mK>HDJWpQFfld~vv;hH$b$hTp z7IdigmZQud$q)eKs|JeK^k_gctI$yLiYZ?zqf{)B{PX>0j#PnIH@;GpBt)`isjX7+ zQ)uUvPV%^kq8K2v2tIo;<90N)p0WN|=l5}g)tw3TdpKe=Vb>^{7U0eny&8W0VRqyx9MYnq6ac=4QK*Uw_B}$4)w*>Mk#N{MQN3 zcN4-q1JD+xSgReHn!2?R5i63>1hB5Lh-{S#4x=uO>i~Z~#9x*DFc{LEy1M$W!-`eE zfsS*OsgKb{q)y>%?A%SKH=6f3CZ|WpaMeRV--;41OEsd6VQ3DeLYSqJAE%LqO*rKg z**l_jPLhy0GjC#JIlBvraA7#1nJdwk7=lqz202CPD~+I6UAm*NI7b)?3>8O_Z6Sr_ zM5x_CN2f`*qkCA??v7MP?@8E{vNt3*v2v5#RHV<_Ly99efr{$9r_fAXRXaTpk8pn= z&nMMdp^-YOHkjXY50-Tvsjgf!lg)XU%Gh@6*w<`vN6{hac(YV<2i#q_@5h+M`KOV& zaUWzV4OOe)zIGl!$`fngD&bFCu&HMwN{EtyR7RGhD5auCytXkwnd|m0IQ^_2yKk3F zMsO)(`29_zLi^2Y2PArIQbJMXp(QPTwawf{^(RPxRNZaqSnK0Q-6@sLyFqyXTnoft z99T!i`*(}@NzJG3x{E*WRs$Rm-Q#LR(Q1bl&(HANJa0EHZ5M+(HdjKwLl1zat+52Y zsR$Kdf>fZgAdB)W-=2CjV>4x3fO?&Mz<%^3E%`$$0&5|mQOfHvrBxgDRR)j13V5e; z@Z%S}ARWqqyaSfyVSWKz4ND73VGCa4=b&A{L4}~6eM8{8a>d5%dmCe(O>PjBP0$ka z9bLWA=#@!GDvlUckkx3rm7`nvr&`q@e0BFbBw~4eQ z6=ZhGyh1Tyc}LBbJ-%>!tJlv)*M1C&r6=C8qQn6i#YnsIGoX6JGR*q-r) zYs^t_w(cjSUFU|GIKntBMS*j~kXrIHq?;E(9~7xdD`2FSVwqj`na&1|k^9k>g6Jqh zN0-9tC}Qm_zP&kPfIFk`EwH>x2fc)d-eAS-!*#|IWy14jB6G?_Xm*llp2nW!7oQYw z5(+XErkM_-bW$Bz=u*#n8D^vkhhE)swl)glZP=&ygrlh4`|YBLy!}HG%2}(;1?y{o z0{&|o>;L4U|2fdNH24>wA2L4;IY18$e$%yEC9cDF1j|LfIpgK8Gl8n^pktzu(9=_s zA07%x688Q9Xtpt6ur=Q@eDv(gx+>VZ-k3GLu3k2F!W|&^)j=MybC-$l0Nj(DljcGT zA&^;}waNf*w!h$!(u9Q4r@Rkq52H)(3$22hZ7&T9)&r{AnEJ!NIeKQai;{%V(ZpFA zv^wJtE z6#2i2g}w8?#KPw*7D0c-;!Xd07kKOjwEOA;*d4$+#kd(g!sz{0;>sCevMX>u$@iyz zP=9=jf<4{tJ@ETxZ>Mgjkq7>9evOoh-JyjQwdjgNm6{)>aEeWb4OiJsAbc@wE@YpE zdIAw&oM3I7OpyE`vddWcZOjX@VKT5#zq?otbA32Qm6GByG$(_iv>6t~i8SKJg2mg) zD985lYhfJ;)phk^H1N2cWSG0KoijJn=X>`n^SV#Cw+5{oCv)Rjat7XCAkxFi$LufJ zu;~BGxR^NoTU`2K1L>i`cDo|J;sPH8*SE|B*Jom&g1T<0iaNNt8L)eSiUd1n=hqgC z+AZKCVz=yET6R`&DmyBamFm^3%A!(n#>^+ff<`3OH7w_cS`WGDxarV%13lrS<5Ey- zhel0KB0WIUX`$aHkE}^Ch}IVr;a{c-T7+YwSd}3&df=a`AS$VB3J&eC^t}gKv;fW| z2pz4|-DNVWJ72}ZEQ9nU;Zqa)7&klhHs$pE_tk;<6Y0CjL`{}b`w0XG zzCx4nZ=v~54vqVN{FICS)t9ocv;D6(T=h{pwQB6wDtgWF)(L>kBt95PD6NF{u~dellewE#j{PQ{`_>7Sy- zC%R1wvklk-yg%8#(b6)rK3Ir|N%>q(R~*+roo0BRy|=sad>;2$zPasX24Y$}=~FN> zSfdFE?-85@$KpV0&QqL&zn~j?YJ*gyuoD z*;uWWN>@OWYX)%}Dbl1jX+G^Q(Ui0^G>k71gjm8lQY;!4Cm|6xuoB$#auU=vP8YRo z2<8HATSkFJt4q_biWT!X@8%p_QgdmxSw)iBctW3be6U*QGgXwm!o!j}{N32j><<3fi)X7)gqg zu&%`!stPXX+9w7s`TcJhe37~#NXR6HuIrcs3y07aC#lB}0Vxx9R|iBc86 zx)7C0WhtTn0SiE;!X0)Dpett&K?9VjbO$p9Uss$AOd^uPWz@G0BBR2EM&04dP}FW4f*T#SxfXbuY(+H!eZrLoODo7K zjWii6oK8E!yz4#RWO))3>8+M@*oQm^mJBmGCB?}x^QI$Pg1M;wh;pOr@|DY)omy%FY}X$75)ggN0**dhImRYY6#L2?FcS~^5`oE_^&QEF4- zn&xAARKEjKihj0NicpUl-6q<0)*vVvN=#@go zl{ofHp6<$q3QH9in6z6P@8-v+wAXgb5glZSb8*WqyVU7u2R0;$FLUhpDgo3~1CGW7 zx>{IY(e()j_TY=e0jc`O z$TDn9_iRX@!_Pj_Pc+!yQitPg@pPYXNWbdj@t>JiF{^Rpb;i^Y<$4m~^t;&01yPfd zhmD9b-QD^*v+$f;M`9BfPJOj7IfS?vZ ziC`etB_(}Yr-tZVXrG|RLbN9ajU9Ii7f7#Gq9rTBevsZwz_9X2eF+Ppm5tFR{oz<# zv=1%^x9lidqI&LMKPMWkpp`yLe(SlL9HVlX{Q<-Rh2{DBxuLaB5`!7A|dHA ziwtR|`roI8Nu~u+K4pl-HL`ylq zrWwd`#;aX0^cGBc0jTVmDaYt7D0<7Xyae9vm~(u{Qr(g)ZzJ|n-^Py{=PpfaoauWX zcQbceys%@jgHB%PzG=}jT zF}`Q-twR4Wc}YSvw99+YFYFuTxqCll0}q+N&Mz@&L#agy}>9#Dedt6j)sxTtO&oPCTq3H#R?mvtV9x zepZnC)y|-W|G$II#{XJI_$0`{2I0epJj-~3!|7wP=`>z$0Jjq`DiqSk09$nXC@hgn zXVv@v{@MMzAXK8rbIxHqq&uWN8`Wtl+g-U{}=vC`)?5<|KB0RznQWUwJ@Q%+ zK%oDiG=4YsPh}vmKtLV8djz9#s4;#9AOiqoi2yla<5edzf9Gp~Q`umdlD1ov;iP4sdzzz`RGgx-z#n-;(g|Zg|2ln>tZi)F=fg*WAKuv8|yCd4fL9 z0cz^dIVDu;@L)lpaWko6{Sq=wIzmO%h}ILzidfZPLT9f{OANx?SisoA2_;O~$@>E> zYG!@1Dd>n^{Oi-(H1Nb3jf$l;GpbB1+Dk-Td%L^9t%!!NgQ?Ee)%RaOu@SfQJ`J)Y z^XkT$KGTWf+ZS_*mYE&n&!5MrSf#0m6A_dFR6b~+^yg=a2z7BJ(;-6_?H-Gup>1yV zs>H~qJ2X8;ky5E4s-ci)N%LociS8ohoQ$U5L?mG!DbK2e#>F|KB?%iQh}StTs2*~( za#SZZO-Dg%pEMAc3)D>nG!jdxpiW0zK<=v^6DN@tHwte9J6z_Syc6q6hJBVRBgJhP zG2=*>vr+Ar9XZKkNydLx9N(qQp5?csh#d1--G`?n-jX|mlMTm z!qA<%W7L_yq{QkSsNk60V&NEcml{#%uHJ;kvI$u344iZNM(v!sV_l!T@cc9h;5&IC zN_xH_gZZpD@bS*y`{C>z9_RdyfoJg&6&rUO5eqUFEce_0b41T&3BR-mm&)ZG#&7io zF86m?=;!=RM(pfuNUZ29yr8_?TKZZBd%8GjWWslTm1VBsi(H->;MtUfOebB+s$^|L2a*Xp zUnDoCvN}EU7BMGdIf%!u%Z~^Rd#gzuJqk51vL-z6tA_m-;MGvQWWsk-d8wc_grpEt zFO*G>w68p@!ZK_fXL`hK)yksM5Gre8h6bDrTMpHTr6brC$ANTeeq-2}^&IofaLb7p zIrk@8tKANLKTaaykm54o+DVHraVs}DqF7(O&kq{cnL2ev#llfZ=lr^Nh!aP)P-}Or zduA9Sh^7^U^0O*sFGlQ$CYz0x<@DOXGkT6MxWW>3mF1AjGUA$~vc;L% z<$8(Yo2i3t#YGx2>l@kU{t{La_l!OoImqqJmv_alo$zA5RgR=;VuJ5SKdOVcaDvyX zBxB2ZFO~Sk6k27Lhm6K6LHx?ZjX6dI*qbxMRFt_QtUwfe68+@OBg93xQDtv(&0SoQ zO_1hUjB}G8jn9DUKG#GHe5e7T_;uY zkY6#bsTgKP?>RNwL0*%OuCOnJLi2vz-UzYk9WN{4Q1MNgm5!_U$jZ+BMyjWOM{Nn^ z00V-mKqu;{GZgj;C-mZl8$6xo1@HRf86Vqs&;fqIZY)UtuenNJPk3Y#EJi{{EOY8IG%C1kQYnzMX zj?BuN+nz&%f2B_pF2x$uZYUIPWew@TI4CjYf|zS$KYMKZVPKs6dcV2GhRnInmUp4` zO@~&vwHvI%5#e>hDuJ$U(7prR$OHoE7vfaB!BhgmMhAL9bIvG$i0oEnG=G*adTN0= z4;B6L!r#2CiI;C2n zsBYZ(FUyS%5EKi!NC*e;TiuQ>{7V?;V4ck%*^fQ~=NZv7noWEhn5WRAdq@1!ZY)4Y zR{o*pLp&Rjgh`lx4X(^EImSSgaVm_7)JOY&$3oYB3uma8CJ zaZ;(0J%%FFDx0`LWcyPgmCe++Xd4RcLJ{lOthh;A=0LZMfQiBKvc8L~5RQl&7HZan zj?7|hs)bOiyCMXfha;4S1J(AdOz=;)-IN^>KM$;t@#%KOpRtY|p!dI?9dfopAv=I4 z4`r(px*BA!`b}Ru19J;fQdbG{x?S(LZ;q2ziLg0fC+$WDzrN)cb#jiomYK7DMrioU zTo{1wEi;uf2n&?$Id8$_sK(;6g+QO72gkQb%obydVJ6E6q_K2_!P{Sk@{RU~V|vTi z(R68q9bvdb^c;h62f-59+4k8}NF_~j?kqd|PWE)7ZbRgF6^tVjIDO0cW%a&fF-B@Ei@;b0$T)_`$U|bJgJ(2@$Up;Rq(Nk;L1gG5F#afgcR;;Aw1OC4 zr2yLLgSnFtJfg8qv^!w^4eL7Qh5%}WUmv~UsI0{{;Tu|5j-=l;7(LN5hfTqLA#h5P z{(2qswc>Pox3RKV-PS))T$jPzE#}aHbI`-J>j-iRY>MH?#hhq;!@4H@GS(BoeR{w< z`F63JyxcrE7=4HA%_Du{;L6mW{+ zHD>|Uc_GlolWxEcW5cIA@r*e$92Sqa1as_4&E`DY$77EKbumo1AzPMmZ`?H6Jl~Ms zX3NsX>3;v7e}&Nv*A~B9?v=0DK0k)f&dM$lsTiy?r=q?!5v_b6I=HpF2jkY1b%hLR zK|jXHwFL1 zes0DF8)WDx54j1mDhoN{U-rlh!_w8^4LsY~Z6KDe8pt_`!C8|&+CI=PP2_|Iu~Usq zij@(G{cx=0-9#_*co2|a5gRQ%s%wm?k!z1a*HLj?nw!wCr@13ROocJEpA=L5@ZCGa zQBy?de%eyDXh2R5e(ZT(!Z+OZj)<}VPs!plIC8EG8O*PQ{slbp@Hm|kOQG;0y%t-& zoLQNI%rY4ZkP@L%$z-dj#+NBI#q1Xx_IW8Eziqc1-2V~ zcThbsN@kf4Z&}|i4TJPYMIK}cf0GfxQqlYSA*nT}dU}OPTg|mA7)_NXcOnU*(IYKC>2~G@w$D(CW~%&?;8lq+G_-YI!ZK(XDB!QP^p;QO2^) zTCPdHvOMuHK^bR4zKMK+(T(%M;{T#}tiq*FdTBRNi*n(m0SJ+?Ew`0b}hV59o zzd96wTu624yh%o3W%u37xrT__fvMY*uYwLUTHYtk7|!iCNVIy-$zX&QV+6He-&huG z!I0bzpgog4Ebp?9*ofq{#Cn}CnNj0nkiHy1ajp}q>}i+097T44t5xOW&*)6!J^a3a zC|2_;`x5pX6hBwWjJAxt1WF8G9L{gSi(=~M>x4T`zRuTI^j7`Z8{M3)fiR+2bROcd zl&UDDs3mvlwdAT~1c&MFw+j)9J4}zoidt$<6%)!9r@D9&c{J~c37RDqWzJma!JH#X zlqH5_&Rpri94%UuCH5zC^@NL=M*britD;>PriDQ{ebg@Hc>S|kk4(C`|C+2i|43@q z;oQoQf7x$}Ra?UA1&|;5dOb{k#Xgl5HR{54N1jbm&%N>ndf?}_nkq`bvzFZ+nrpyDGv{|*qjE!$^*%v1G4B3s%Srg#hic zycvKv#u;YAY_boLJ1WNDv2XDBuwXSZbJ5OYp9uWDS0odB(OWn(PWoQKg12+oor`gi zX>-A(c{oX63}23sUU72ByaoxfWhTASWte)p52yw!)qJ}_`aFVjI*LWpZbKn1#R6_e zoT!cV(m-HCX!@POFvJ>x}g zs6j3(HdG6K2OAKA4RU46e7KcSgCbVg@&=oIldAYe?Pz6lmF~XjkmE&jewn*sSET(e zo#`Ov6zR{P-Zx`wevCi#*;3xP%WQ17TD$LP|5&W~L;Woe?%THs+<$G8{3l)X|GBdM z&%*zo+)$4?ly~xS%ID78G}WLOM8NkuV(wsig5WS=XaM4U{5*HOFugexUJ~7SA3c&8 zDXMv!d6ia`O^scYIavSUa%ELbl&ea4tIC#B@3j$QlC*D@ zv)_;D>*pM=nT{{XnJbRxTrW~FSsZWZJ|Kpj7}fXSept4vK3TSz{v6r&B^a(NLsz;W z9b4_-ZCmO-T+(aP3o~2lQ6A{m^k*kB-#t-ODH8*_rfZYxyoNXQ_r(4`&`%8R{{2DF zxP~|ML1O4b7#C*t{{406*v9tZ{YB6p5&cHcxMnvXL1Y;3OhIMZFD!AN1G^TkkMu^f z?6+8?vGljqNV6Qb-B?i#n;|=QFF-+P+w4gss0VJe?^a-!=Ok>Z`#ah0>k(@1zih!i zXQtFJ-ov2kZlCnr_Fz!?&PFJi#O)ZLP=k!Hr*@o-cU<>y$bS9`>B@PL%k`d(c+PnV zLh?gSUqal(Tsj|2nAW5&6|-daOY;rrRpEaO5flb*F;|X*G%lS0tew$Wn#05M1~jnj z$upOR7*@6D$JNRw3f#j?%N#S%f?&tEwDd+{W+VbVrJ_t%X=ccaS66gY#5!Q@wJg`T zFgL$qTG%s~6s}WMX=$CSveZ;n)M_ZS)eg6%riCLJZ~R!eAv0#DmEWpY=+dS-j{prc z`LG|`L5esjP}h(F(kT$>!fd%J0m7gOn2AR{kC1))t&{$<92LqA_GPj%#vtWq0n%!n zni%1Rs-nYbIhsoBh!ESfCIU)1HE!oN2hp;qM>U{rk#&>>M9@=d_6WwaSY;EQI5r9u zBOrg=c2V6Yu!%TkzLZPM8CxiXf@qP>o_Mql!VPNNfRYn|)2T2?a(c5@(@)%! zb!*EO2q#h}{So8#z&-gg3iEtYHJ<5~U{23K0jY2WsT1Z^;!%t3ZO`)U31KVs{8sni zO^!A)czs zJcu`1Ry?OOGnxU|e!^sFNLMRlIc?)Y$JIg!d{fbMOSN_g=~@@}F@)QxIRr}10!5zk z&!f~;t^1iA%0IPJKJrmm+@#vc_E*n=xp@dw`niABMV=$5+!_hzyzmeE?X^e3-6H5b zA-J{UHyge^e6!^V74FzXk{=X4;xaW z19kSOes|I)3~7DG!kam%233@#A!8M31J&3u6_MOAv@uL?S@WVoe=;c0QaI_?K!F}5 zC{;1e)BF%a7p-?sH){AJCnohE7jTffY7r6D42rujHn%XL=I%mq6eZ9A3qwvLCJ;#P zg2@*Bd>#Vq%auO?vHp5SOq8qy<&hct&;c4mT$Vs3MV(ER=^-|i=`sMsVMEzOF$G@q zijO%kdnVh0EYs}F!u67prYNBKLjMk75%g_J+rmL1UN02|!Xrn0DU7Kiuk^}|of46+ zl&q*Ayot4LL{9J5Y=?kFhm_6`SYM1CeFTGbstKta{ecSO%&ZZlhtN5j<5{hGJ?9x% z>}`0PT>uBO43elJQ5NYueVoZIU2xmLFAk+yC?)eNVuQ8HJvc6%s633*NJliJbpK#? zN_n&${rAz*+`Vxxv>?SapXiXeZaLZw8lhMvj<+ z1?p-};Bx5%Q#b>53>)8#9N*(5Dt`_8i4`|Wi?m>ZZq21atU}VP&Cgh8GR4R?ARN=Tv z+_4<+`aMKsrdM`%6cJS>jiSMArja_WeDI`^Q!N+P3 zuXqb9PH9qC8a3G8*=?HZW8suCZ1XVai9Lprqf7|!NmqvuE%A~E0Y21i#hSx)r_<<0 z;-c(?SeoG z`UF}So5p-%1Q@v0KUX=^_Rh>bbF41M3E3*~EtxqK6qU+YGZxD&v)J^9BVtvxBC6{}*NN z7+guew{6da6Hjd0wr$(CZA@(2wrv|LwrywPWS;Eny1A?Ne&2h2=r7$}y}GOZ_~ATG zvHEQ+igTyJxDTi?AIhjLruu%F`ag6^OWDKVankkMGW!ACQC9e4HnIh*S(Pb9HE0x; zlE(w;M4rYNxK`#ymST^b<`2aQ)+DRfut~~uFLvZ(I!VLe#8FnLV>($Pwj8TyTF;_h z)A3m{^;DNP$yk2pzXB^W+V&tQpaxvzj6<0;enP*D0T*Y&l#JFW%U-zwj%Nb*CDs9?VPT z?w(7%{y8uBCYTpN%v*o*J8+wkjuuYC(DU{8-J<@3LS$n7?&Ww! z!j0vrCu`VNTHtlVur6G|aZ7+(TCw%OCz36e;qt?nM@@)7t|-YaGEPVr>ULvN2N%ow z>-%P^M!6Qpbn}+f%J;}Oh^%Udls+rlN4D#tPO4p^*=3Vm&B%Qq3LYU(IQ$B0-r2#i3GZm43yV;)uGBJj+#}23MQuPB4KOnJ`ZT~9 z5+1VXYVi7`&{i1wxM(X*{n6+v(EU1fd)x^(gkVq5{n=vAbP=WC=9$v_I)>e;wK~8V zf-6-J;H@5QFw)CV#s2QF_RexajAt1VG+0)+s)OY408H z+0?0SkX|9b4So>F+^Fv1-xj*5aS`Ic)58A_XCsOZA0Zx0aL9L)kU?7GpQiD=6VL2%89^j_9MHM~9In+_F+DUp1e?8%I z3;t63%*R8)lPDX;J619@a_4><<|UsQOB<1Jr+k~{CFw=8jpCc+i{zUyGL&+sXfN@Z zMsbp&Ko%Rmm&h_ijXmymszfplUBuU(L{LW2aHuv!IYNGKoLnztLaFSKU#}&j07ytk zx;Kt?$eUEwFz&8bK_SCDP%4s?QDhlIA2)U=uGh}a)1o#dXB{&*bU9VNigirlu2(uu zxlasm$h(W=Qgl~Iro4{89uKMaKf88*{-y3K%(@9lYP{c?R6C4dyv0Dfte(;0H&L-^ zI9S@KruqEZEj$p}>;K&!!`ISQW!Ta~o zM&+s$*;JGhgBSAt@f*Z!h(Ip1z*iY|AzyiP9lFN5$irO`mlVwx9IRq z_eI{xpP#(-`8^94>wyV`I%!XeUWbPf%1O4}W^CfRQOZTpn%iSch76zb2-imGFMSVs zpLW~!g|Bp(AG;4l4Ypp*pImP^E7l(pz6A91W#GRyU^_a2(C;K76Sn(M?@%)1TOfqD zXfEz#AP;_r>9~Uj#l5X9Zk6mF>0R}z(Fm?4X*uBtA>Sr*|8m4AWz})|F>zX|$_gm5 zSrrD~+WLvXE&g(zJN@AWQ{1ezmQvN;cuI{r^-Aqrc%e~b$g+hP8`b-=9J981F<^+ z+caXmvak>Ss+exF9n;Qf>8AL@Ul}^k0)^h@4sQ3!LvX*}+8a8okAyx+ViG>bhT($8 zsIJ!=qQ0>>wtQmJ#ouy9Ry^85Cx}Dn>l35!!t!ztyIK7-nv#LgttG`Pv65oosZ3)% zV_b0-knv=xS`OQ{m7I~%gBv9sVke_%e(J*nvvoTXdxyw&Skicph(;@G;QtOCbmv&_ zz-Uuf>6K$;7qFIW=>n#_Q8}k-;SBcsAxl~p*xPh=S!~-t2HiUX>*LXfrxfscP{^#< z?@$I%6PI+BjAKjC7;qT+MH~)=9FCb39&Wr~&}L_uZ>wXJ38i<3UrAJi$^)`?U*24q z`C;b%gA&Yn&S__JMSR72M>nlS@#488YtZ5~t1}pB-P|hR-1n=&_RFW&vQwhQre%o=t}wRhITr zTg#&&?`XA(dWX|}haln6+ane;*ctm$Cvi1YH6}0p6im-%bUfnRZu>Iv)7|a{ZViS& z?_zj0(vp`C2@O{aU7DA$rbKY;tJBFsLh_SVCpd>_y=B@sbsOD%j0a#tVbgSPx zk-b4}9@+M5xW2cnspk;_k2R^B&G*uBR1Ivm*v zY+?5T|hvkpne*lGr4+joVEJD0tOY0?Y`9aPPYG{Q)*K2 zw9_(1{Mp7_Ruq(vG4vzyUt~wAZ0clyZB`yf_4>q}sDrPk4 zst+W5-*ul)r)yRyx#{s!*f`kGC$6$e3FP#y2&>c~ zA9z&A>;ah`9@cmikM&fvhgDznOJV|dR1}?h5PLB5SG6!G(_&b+O$&1~Au`^VaEq}8 zy@^GSg8Be*FfH7%rm-aM2QE`%(syYVB3ig7OO_OB7$OXXOC1ZlpodV^2C3n~l7>o* zOAOSmFkDH%#MQ<2i`aLd@`x}~q2Nky9uK^Ym)r0rH8^rwk|1Ub#C#!so7Ia^r92zrkMZk}maHt4oDP(5acYsk1B>@JMpCyr2?{40Rw_2U9h|U$WTbVE) z*lGD~6z&GDXmk|LWyy%z;?y#z!8A|zl3b}(&3c`|u@TQ++Jxgz#b==a=~*W2!Qnw}MB9ENVz z;aWmy)_S;+%-h+Bx=^3wgMiH$6)$l&q)FfLnn^*8^oPo#e%D%fa)Eooj)sPPf`Jtk zA$WU*y+&_uwhaZHaHwHrZgQ%E(RB}_I}RP*uV6xeU>W9F#qeN9}! zsa<+I47U$8emRq*O0R~{^c{1`1*@hp!wToCd7e+G$}EM-$YzL>{G_@UXzJANJ2ZW) z8cNuH&KT4ao{?meDrT^jp}X9iwYo?pQwg@EQYd~E9{dja8G<>|Lz3}QQ{wL{kp5g! zEOLPP2W2rdvB48S({apH`^Hyy46@rTT3Eq-tW|fsez7&Ai&+iC8{l^k2*g_B)#nQf z>#GM_&&vi*{7k|1Ylkb7apk86vc*Zi`NH#I3f~*{uU+<1cPtP1>W}F@Z`f?uMLFR6 z84(y}GLEfTwDy@Rjzf(Z?Hu8zykIBQjMxLz&pQH&C(JYU%5yvPYE-#H*47+RX2a?I z`V{$r6Cc5B!K!V!Be~<{EXSD-j;Xv)^~c2dFip2JURNgmYXQgX!=Afi2+ zb*J8{PIJt^L4Hq%Mi|4Q{cWtsT=9E;96pMEMRLW-I6?w!r6GxKpg_aTOiFE7_7L&| z*2oj(ip;d5*KutE9F+*IUM7H0RChoB6#=Ix1^w5#ZQL!U@GuN;YfTDB+xxEo}UQym3IGSf$?3um6xgWH(WVZ*tzw(frfVU?3gepD|a`Evtk6rB$ zAshLs5PABd*GCc8cO)lZQ$AyAi8tqAsoUaw5}@MPP*_>3$t)@&pr)}@o4g{LyegW! zI-0yfnY@BAeh@Q$ATxe2Gk(B`oVubFY!4Lj+O@yKyUyg;;eMd2G6qkoX}{kxYEa>A z+6fqrQR=*{ErI&$2=c^4LAH0w^4$VB*0PW<4;GUe*ajiX$xyT~u`X>kt2(kp2IZVx zHA6;j>=x;`ypT=hP!qd?NA#zU>de6~VWutdL~+WyNN!HVQZ}w82b{;L4^fYxjwn^q zmfHds>wlNXl{t1-v@6&xMm;S4TLzfH+DMxA+5^}_^rxzVq2Qm<5>Io3+$DY zWu~V#?la2d6%PDLI?(+4y7CT&azDPZh=Ovgd=^_Z0=Vt>mNE>P@+3F4s{R5CW*kM! zI92D#a+ucK>XBt-TFvv}rXeqgJ7ovEnlKHjFb%EUKX>`6=Ydk2K*F1lEo(|u`EVaY zSvpt5SC@2D*7o7T<8^1?w|NZZa}>&tc>N8K7ecg8HaeS;AU(KezJGPL%8_-vSAT5@ z(!L5>|1Fn8RO}G@YG(bf-@hzo{nvI~-@)-e#md$((y-t8e+KEkVe(=^u-57q7+QzK zij&~)0$C^ON7`t_45+jD35Hpq5XfgpbgAlgE$q8@0Hfu?=c44&%oIng<0cgZ)uXNn z6(Y7ElDT;1@m(Ga$#D|Wor?^UFfd~hr{T3RC$qEbyA0iDv=ngh#A1q+wNs>#XN}&< ztP*EA&e6jN`ZjelwMCh?PmARaEst3wc|Ui9gL3#5_^5)WZzsNR6s;(K`vv5MEb$H^ z@$HFWMUV7`qn!310nN+o1#;)ttAl>Q^Zxsj{PRwU;_C`q2UA)LTO)m1Cv$6KS`%9b zYkeo$e`@yqj|e7N(+<%XY2=S?yi3C6qX1+OP*Ahn8i_eDC^A_~Gm^NudETJ{pHqg- zJheFj3nq;Ye2p7w4pt5pvaXvSy7?j?bRQUS(h=Q#c2W_YBKq5_BLga)NXO^?ZK%n^nIi!IJ(UIBm3@ePV>678a^_WH{Te1R$APU!1)?CR8}bTQPK_ zNPBo>I)JLM5HU$>C`9Um0J3}(`FGRK(1_ALB-V^00{LJfh4<6SQ05ts!k6-h(VfiD z`_`Qy;qNgFZj1QR(kJ1=wcWgBL;Z?l_Ux4v^Ac_ZWzrKKZep_w2dzbmV|b;4^~pzI z=SR$RiO?UPMoQ6?(4U{=FPT_?6ALb@t69t0!6+@MxM2y*S)p6kLiKh*>C#u4;O^uh zq4v-njjzXe#P1)p)$2-=fiunV5#*!;vcfuweuFHM6`!!q`~BW%^z(k)7`!j%N#kz6q#jbAj94{&Hw5eNGUb;X>kvdubTkEx znz5$!(T_qoR~7^X_EGhOAlGS&BN||#Ty4z^4GM8yi*`08Aqkg#t0joJH=$=A z-nFi`S~Pl2E#`0v4TxIt#4j&&Vono-a*NCx3=Pa1&;jYNmQUq6Jt;)sR$Spb$eY|? znnc4u*}Ef=y6qQ6;8--QNZ^^S?k#3Z6tfJ(!c48)=d;(3keT0`ZKRU|X8_f?JIso) zOA$Avaj*Co+BFi1pm<)Ybz;1a)g zptl~?$0X(&4TFCWUx}m!%8suEPib{a&l_%ACDIyZ+;~@qnBH{{KI+_x6XHmaAZFG^ z$CV;apY$YM77}8L&Jp_^R;ZJscvy>yhH;-M##KFd;Ff|iAw>z%^{sAWvcQKUVF_kD zRUv0|a32BoR_SU47)U44?wcwRw1HT^q+6Q)A{S|2R}aCCGDOX;^LJY@H$+wRo? z?Q-0I9O&2-El$YO!zS7dg4wrfhzwqd297|l8iAv$OG=3Q%XGNSk5uV$uCpm7GOw`J zS*V_g?Vq)1ZM@h-rSeQn`@%gZ9U)z%CAZ(VS13AoEz(<+B{0$sO1J14?{#qVa!Whj z<)!lyP8J&rS#k^K9U?tyR`V3#L(=nq`D9fUY=`1Jzf|Ut^5U`%OCXM@nV-yPz=*h( zL>X~@EJLAgG%kUe^a1s0+JOqR?7-G)-q^`IBrUdO7E*T>~}=m_P$r z!9tNu*ykxHzg9cC)TX;DFgC27|WE2TW$6$No5edD$`uR zOJk&ED78d>9+H@XRhY`9)C7&{*26L!vc`2EC94lRY!6Kx)tW4ry1cG^#}Oer0R+`m zTwy0J!?%8FKMSy)X{ET{Y6Ups7W^vtGI|s1f@sdra+WV^pB?q6{dFnKc|Ii4jH{`J z3+gyp_kLydf{8so9bEQKILIZ@5n{d^wEK5L?Vx{IlOy8__!9>H{6AHTbpH>Md0poXh^y&?Y?MoxC?^_js%o5f7OKA;Z7?9uPv zozmSZhgDA)FTocsbzs4c&1vA6w&ryl2pUCZL%a+gXkJD?v#RttH4!+dMDA_^`hn zXJ6<}#y+}rro=H3uI6f~vVz?q^Ye@ac5gc?{_Zcv0V3VKde_&Q8~$%4IR8?l{ZFg1 zfU~)kk+B2Oe}j(yUZ=BE))g_8(f&}gj|JBvd5Ev`%}9_R0l^em3+1Zi&J=_CgG3aq zxvWy*qq)pa1uI;uyrX88(E@Jvpe)R(XDsUW**KaRIrb0xz-_&6`~L8M0OI9n$~4k; zGw-wRwSBf-eU8^RUha<&{Jh;JKxs9!%!csc7l%rPGD1t9y;g!;oDy>pMYU=RB5K;T z*}?_iAJA|KXs|{gP(5ZQlwY+%^S6b;W$(MbqZ*(&?V@KM?EU0*TMAO-nyZDvX$*DK z8C3ti?%Dnt4U5C+SxC9$-pshRzRfekgND5WzJFJUHJ(1ERH~RGHW6%fCKBPdr^b*s zX0jv)3Ia*dL~~tiL=7LFCZZtO*l0gsM8(OGo~ghH)SSIlI>7vDJg)>3#Y7=fb7x%& z;Y^XpNi;N$tV+L0xA+XtT;Qa2A>S0pPSQJ@z7TJc@vWzZFBM4hGXY4g1g9i&+#^1H zEhP(0K8oL+NSHH&(LzFb^3V^Sx>_c#o^~%rE((dg$Vjoi>@fkiKTZ^{xQ(k6>gJUt z@ElLJd=_C>zU44F!NY7+Ed9k=bvZG=c&f14SZEaJLTMFRf31xjUgwY<;)wEm^ijGo()%)&LkM02$UL!5i73KLPKjkA7CNsIZ>K@`DaR!A#} z4oJA)uoR_s|9cCOKC6Y$AaN-ga$GE3aABZ*Cmwzf#KZ&+kJ2tYd|@>q^fZtlD=(!8Bwqkv7o&^c_ z@ArCD8O6vm-(`Yoc-FS*C_Jb=6y!5f6vA_;*sVWsQ+Y&L%!CD(gy`W?m1I9}cm>FM za0@o+4kFM$0j1kNN;T)zmfW0W>-bz^eoG7=TlnK{OD%m;N((!!mX$I*HcKPnVY zuo9wDJ$NcC!ZmWCyCy`aL2*oMw{!uH!ybPI7HAdQnuQ6jErKvnPRC9g%ZJ=w;X31@ zyrV-qn}^_yX>UMfyXOr`nA2Ne+`e$vC}&7Cr`6gtz%= zy}i&W+_v*f|B#6bH}(X%GHTfFT2G`usX5SpEbrORJ)@@;a3+YGp1 zQ~lIx2Yqv9v$9t1D?)Fi5r9@<-tues(V}l_g7Zks)z}caXVUC-qR+ZhuTORZkEM)* zlFH<6q=F}no#At_AqxFdojMfHehv3V06O|y5p{ByT#);Oj(Nt}9B0X8Om4y~&f zjbfo!GK?6>G;EqFC3-_)W3`E*#7^-c0@w%Hu~1)hN`v>Mgsbd#zz0Kf_$O6 z{;E|`Q*F{bMfl@|`*rnEnsTZn z!w}3U+F)!XWh+JT0D;?J2$&Y)ygURv1S`=-qFn_4QbBRjtW}04beH|SL|KK2f}%C| zz+%!nrE|7sd)h`+1f5d!X|T<<-jC-Pa0o8F8>v)rfE?yB3{S=cm7}G+rc6Q!zWxz3 zXZgJoLx&kavt6GN`f}PU$5I^rx-fchuVM{RdTP}}BPs)edW!HDnjlmZLR+KBy%$b) zq$8m*uK^lW!u5{RT>5Ce8N=lB7czNAKdk|Qs~qZf0ada}*GOq5(jGL*OkpMn3Q}XXcn5k7*=eVeE(?JK zNyn}6rF!-3qR_7LDe9U#kg)CwFHbZ;N)^1|essHmV+V%5-CK}FdyJz&mJYkMzS$kP zL`G9X00HhM^t-)`_yh1`RVVj{HSatlA$N1nm?)G*W`#NVsOVN z6jcEcHfvxrUBpZxs*cDX8M6Y}icFAmo~Yc1J1A;&4=~lVOonXI&0sbd7&ml?I?W&B{t_>(pA(DwD6=?K4$Z(B?oaw0OcCD3KCGpOU#GgAJ zKGjL2CX_sCMdeWrRvncZP~Ejir{Ma;i&|3xJ%x>dh7@YXL`iFF@7(g}wDWY$U_g8N zo5ISa-FW*@Ut!%5yJ1F7*H=_)m(BESXNI@pQ=*OWb-y7$0G|a^WmA*o*@;$|VlE;R zgSv@M%*FB0M5O~orGGGOAx6Oo?Gx^P95}-VoxfDgt48s(7?!^NwaXLu%$wx+s!~<` z+bY$+%)R_qI_huK<=-RHId)0{nEvO;AM@qvC0V)cUO`WKx2=Td@0utYjczx|SJCT< zsZ{0^uNF97-*6=|H~n#;U;@#7#C;OdrfZ(yzM-;3)}b2e?j$Dj^H%U7)>!8f5NZau z@ww7Tf$o(TE0V^-)dzXV&yi`4Pm~jAmZs$yC9>;|2T>*(!Hre4xh|orb`zVQpQKkv zvAa7Z$2VCcH^!w+AZG-_0exgFXO`z?X%DmgM6)hkW7v+fcoureOpAX%45p?-P*zyK&u6%&~WBLm|fMWswN^8~q+te1zzncEU6=nakT>p3XI+38Q zjiZykjg#ZwpSmdx!VO9Ib+{+nX__cuOk7Mrj18D*S4^xws#FWeKQ|1|ty0_sC_p?| z8Vp`_R+(#QQQO(oS#?v}wsWX4_^}%u`5G9m6B&-H*HD?uuBWAAZhlj-a^(KcJy)l$ z@^8(a*Yb9gc8>d%Y|bnE{JQRN=yoY{KPCa#AgW-hUsz!3km_LUSPmcuVx#i0+kDZ% zO#JEi)Uk9#K;}VIA(ehY_>}k~d~0}@v9My$^^kX(Vx)yo2qBfhSWxP~?6CDH4qOMW zv50u20!#cd{+ZA(+y_XbW&G`0>bP<;PzqV~I1V1M8Pj~HQlq$X+)zcl0svTwV=`Yz zGGCGVw%B{T$6$ z`<+oGTnAj?%AW+T1lK=e!ReL)$hbk=(I#5Zk3b}1av#VfVu~m=<=nCEKs2(2PRSFq zMNZKZvxQID6SGB6K@*$v9|$C9`E`crYWSM@b%Hv<+_CS#4x~plV_WdA`L=?rLOQ|S zaqqq#2#&&zipIv^=kW0aT?AhEdx5=R-GLrV_}%6B-9-s>H^B!{9F1_KsMbUVWt8vF zK8iV8RyK5z>u@)a} z@i${N@o4$7L%6`*QSP7*%tsYtN%3X*a6+tpae=ub-O(N3k5j0VJl<2?yp z1#CdIf!}c)FppNmqT;XPeGOFso#0N8)o*P;cVJy*GbcH&Y^mKGYbeo9!HJvWE%?UY zx-b>G6}#ccdC5El9&pNeU&#&>Pd5FgQSXXoJ0M{`a?H--a1`!l+u#cQhDsRZP9rSv z3x6nB!5+^GNbu6khLk4ry$VWHRdBU$qyBiA!$+rjfTsz><9B)kxg$q_4)#hb{c9Td zm8bvP_yy>@uFGi3{shd+o!1M#E^ZKKSsTbOMD7KFVx7cLh%n=U$AS*<^QQ4~ z1iSscU|taJa7W={x#a6bPqwy zPWv0iP{l=KA_7fCH1aQ3G-0+llh^K5skG?aL5^Vjzu=@Q=ZC!S}s* zeJJTAia{o-ld?WAOoQ&I)H(GR%Nw)MZ*tbYfaK5wcGeviwGz7u`~jY%eOd&QVRw}h zP{3hL)iZM1fktjxbWl2e+954CDpAQ{rew4s*R9Esnflqor1%zXoheG|RXSQ;pYwHT zFipWkm>Fc!4oH6y0@v?Jx28}`p-z!OOW{tL!E@nG{y|LPPVvDE;SI7qY66#t(g?ST z(3Y?j!aWjr7cl`xy8(wEiyJh$@5dxjbU%ptsHsvxishnjtrzGXm z))#s9U{Tk35Zp|+e6toaL^h>od1Ks6#)PgbW(D`+hr7eEx)sF=RmsB^h;FHuk93Ap z{GoU4=2HItB<2)^!$k0_iNm4fk*N~uYfM+4*_+-3vWlXT9-mzHYfZGK==^(uLJAtsvlIG55M9HiU< zGK)1YVoeEI#)*35QKDfKL)HXT*8p>sF#ISgDxfUCQT!xKtiL21KQS|+(xxZEKOn&Vy) zd5CoQr|5@tL0>K%2Oha78v7S_@WN+nn#ihFDj<^@&Jc8GVztk4K7ir8a$pp1N;NQL zg?x_Ua1iiBzPTz2`;(MFTW_u}%y!{ULSDyaxQPW=k&gL|ptK7cnE4clZQ;5Sq> z?P$@jtYYrxoHM~8@6-LRS*qiiF8Vr%WA0mL3hp|81Cq2d8Q_`X*0@z)W&~;>I zm1@`yn@-niG+~F!im1DT6ag(i@!7nN5ZVkvWNTj?Gz0?yXC_ zsCw_V+O8SM{r6qgo`L&}IVKy6=HRnqYzut2rcjcX+nM(zoU@i}wvz3u+ zF=*+M(irS%SZnFhUI`6X8E%wCt`iO*7w#pmw*t{#K@Vq*wK}3b6#%C!MVu!LhD|l~ z+g_LR=xn%0a^~2hD*W_ql$fH~PSajsT=k;8G8oqGZ=FCZ8MSjSYdtW!?`*9=b7kJI zHqD&2_h=xQC~4U^IE6{jPU{%-;=nPy9Aa6_cB@A9W-MS;DDp)tm^Vs0Vq>&^lHwYP z=t!`4wJ&~Rlu6pHSF|4sGxfBGW3*x1Z>Ez;*sWLSnR;rnSJ&B?kMs<-*F--~!B!Ro z6j&gbX3v2#9Rzjv&sZ}p{6P@}uE%1`Vke1tK%tqBSO>H|v5mx_rO-^&O{Ntb!|?M> zbk1Z!Zw|5h49!5RN23FiWELRE?1tk6;-S zvuNn_X4VsY7N#kvtl=4NbdHF;HilAL+nMb(xg1oEl)QVi_Ru_chSGZ0lRg%uTLDaT z4>CbGQ?qWEEP`gWKQ?!wzMP$XR_ZqH^|U&W5ON z!Hn)<)DzGe+^ zY)x>as2|gx1DPOCsFAvw9r>-pb-hNPSlK_NaE*ceSpFR=Ee+?*SqEy%b?S=Tqg`PkOU zJl1=pHiebApf*StS1Kx~muOTfc2>TnI`cNLFjh>OT#`O6?5O@g2sSZ2Gh1lc8Mb_636I7_K=B8Wri;%N`t~t zWh^_T5kMl%F>q3y*bz2`U35Hizz87!*Yz4lSQL)YaqJQN?zBg$yz+i0e@5x|_mw0p9xW-^V`@ru;(Xgu?6B9oor*eQ)s^C%PF(PS)> z(HIar$u4;`naFNBk;$KS|1FJC@FH7f6^z}b&r&c0iX<~ z>67lUlcx#nsN3W}{F^9@vL^2|id>#k^hsV7_c2_ul!;c1E8AhT(*k1BU6Oh69FGP+Zp%p#a}{ybX1XW2Yiz-Q6CSionMViA9YQ#svf)>(1Z%^Oqe~8c6|U8p5}4(qH+l|L*Jh=T?#sRUC?Bo&XkV4PAtzak|G7vmRYpqV5 zs>7s%_#N5z7wxki!Q!)?7vrrc`ZN`?gyfIBv1~@qqYPU>=JmzH^foT<_sIP+e-$BM zIrsz;nyFBx0!Re31QV@v2y+r-DSeG-oHzP{pB76o?7Z1@Oz7vqWJl;=^~u^|7n<(e zyJ+A9b>*A}Az)Wd3P7&E4bI%!_0L60~4kligxl%dZfJxa*aCJBY z5@sciG>p4MmlL0Fd9H@bw-torJd~S_SR-SfD8UPf38S`uh?S>`N(iHwBSWbv)dd>! zswh<&NDpx&qZix6=Y;b^(>E?J`{BE(!=qhk%|bv^6Wy-G5l(iFb|{z@E~GcxSK;87 z8fY3b_UJTHWoRg^$JWX5vuQReR3=+*(o;3GtE)vUJQ-8_LE^T#h@)v#e6$k7f)1f8 zz-asa`WP2qHM&fE3?jRlotlAsMcXZs40Z~Bk6WlFZPJ$YPq5ApS^G8P&4fWTJ^Gfv z-P=9m7l>Ek2keEW^BKGKN-q~wLUx6Z8$K-4Tkt`8BeV+9Irj`maqSbGAiTLHL&6cn zj3FEq)hh2`R@!o;h$#%0ERT~c9S*g~EF}rGh%YTRBas^6DH?|tQJ50y>3_q_I&e#k zEb%WMlKt`N`!u&-(c8mz17D6=nd?sf{$ka@qmIo3%$p<3>I)P#O$bm-J%S3%4X(C% zZcq0l5+R}``ho_qac}1phHbFgd0|-P=|O?UoCEG70SS4IT%vH(`7yT5wD2D{Uy#Bj z++SuFs0)xbS+utC7PoX^ctN{vAXC5Lx$KM!G^0Nmt_oiM@*-$cd{Za*%JSR)TSF_p z|F4nwcMkf0SV1a%wP9-5+8E2|TO0p99+OlyWwDfz{%jh%TwgGFB?_#Q6DZYg7WFna zX>1BxbWl6lLnRf-Sth}Dv`q9eG-PEl6W{iwK8rp~fg|Ev083wh^PuHe%(3z!}gNsFEvUn$Y%9& zHN8Z$i#?;r7s?j)@WED(76&Fdnxa|s!xie0u&#X_j&=1?F7CM7ZL4JhLyFh*Oi zx^uStl(j+a^7j}Apal}G1_HK5L;Wokdf3DsJ#USx7wtdctPH8qf?G!OAU&keva^f( zn4{iNlrokfNkdGkZ2J6>5|SmEF(Fm)bsMnn)b_93IZ7nc*ms91ONmXONvW$-0+Zlx z3oiu8tWz>0(U^?)*Hu2ix!F_&QeP_VUWo#OWuz?JAlrjUXRGtzv24v!`;}qu(nNv@EBJRXL}dn`rC=IT4b3WPh(vV;xTs)Q2rwX90kyv8M|Nx& z;khKk&D0{!4B8dn2#2|dtCYjUClF)^Y>^`JTcZz79x6xW8mpxXQwIia)G zGu*NBt4?<_T$tF~S@O1U;sR<{rDmI1xPI-5xm7HQu;7ZWxv=jh-*X8C{Bawoij(yi zc2U97WW630_RsUUB;IG-OP3$-NOCTs?dXq#Io8?a04-u6MVafbVj)@dFq{@)E=vry zR78HNWR$Hw87na_NDiknL=qi@S*~D=sy1*JaBOAxaA<+ZcNHBFJ{(7yr?I}-DIB2j_LY5~;hs3zN+7tC~Z3tps$* z)yDWZx9>mB4;=|oipwgET04!+jqy2zkmBN{MMHTUKP-pQ%yCQGe(5K4qF^?kdfPRx zdzUvI!I@jS&hPQ6q>&)cOyw4);gx#$x?T?<5Af@M5DHX)a0p=>efR#6bBDvG8`x9# zvVWnvY9dB{7{mu!&9m=^BJH^TJIwaq~v^5-J!vndcK_@*DFZwlcOm z#mVWcN@zM3AUloNl|wLtq!v%agU7x{PyOcv2gfeAMO*dCpEfDy3}LkubWu`zWO2W&yuWO9jGvn?HU5h^tzTt{Jz8HaVxaKv&#v_l!&n zgYarDzjDfm9~+`{#kHxrB^p6!$?}q-wtR3@f`+YOhIdubalYP>PmQPVJQy|t%O7wv zrS~0;&*tv9TF3N%_IltBLzV{G^WReHCPZzdUF$lg7~4H6rk((V$=;>J$vp(QpTQ`< zT`v^>@b$csf-UygiGN@!^5bC|*#+=)A}f)d?(0Bh52Y@Pt*t+7Z&J$r`Ah8gFk5qf z|78e75BWd0I{)_;Lc{-Q_L7ybEipic6mkvj83F<3WHk`R+VAhGbL}JZW2!HiWlT(g zY5L23SaxUep-bw%#L@hgKyFPJFt%J{Jx4t%F(ZnPK1=D02f9Qw)sNdsaCLOWcZ zxdu!-O15Wn{Mz74vSKqAq2-nNooW|!O9c{E2!WbNM11>O-1v0=^tohXhx*p_u_|0f z#P8o%F77QcMe@~UiOnkH76*V~9gLYVEs|CmN22f0D32f2(YT;zh?#rSrvBYP3+xip zpancW@;js8HU?;;Wc2JbA)rZ5ZeyW&NY+aX?lf!?{FE|sKS+Wf3RF86W1F;oMV>Fh zaArY~1UrEX;$M7D%?LA`AT3mVjL1n9%La^CQN>qr54@>fO3eCVr2RkE-Z4nBXxkd? zvRz%aZQIPUZQHKuve9MRwr$%sy4+>Iy64>c?z#8H`66Dt7a92{e`Ms|YpO+*AoTAl+rLpM{^!U4VHYlFYHH#B&)Qa`AR|2> zfas&OP`vzVbFLPPrwJN(g4P!iERbg?ijci*jM7q=QNI?}GZo0+i%%*mR6gs8gr3~O zZFk(2wiP?m;`Zaje2t^lVRZK1{jdm$eP2x4B#0lCie&~?b>p%X_K^l=X9%|H(Y{}= z6~*Bvmyz&ZZ4S8qtWJy5Os(21lPg{$%boq@>k2ie;CY7zCjH?#A(8Maf1ky_z zjqsL=)M-T+x#Y1!2f-ZnFqbn~-3%^qNk5b!@6j;j_kD(2lQTJl@u{cS=^E84jXqHJ zG9)1Wv-kY8-Y~g5%qV=#AH#Am0~4K1*3S&vaYyeUzVp><{|b=<-77EDY#nI;h9;mc zRwR(|OjU=rMf4(~EfTERHCzD2cF=u;NLgor(HOO#bRHFFtkJAI{s~@7} z_sZt~AN8la|88af>-6yd>{(3Qo&V(kk)-C~th|KzwWV>D;cuBcgMPE$KVz5UmqswRkpkN~Jd9#Oz@yImDb z^GC_aeP;H8lc(nE7JI^&F_VTA{7%PH$IeIc&ePWQHs{-p(F{;(OwYK;a)&~!9h74r z;BW(PGc1F|+;w-}Z?I6bHjqg(Z({XV9Dxm9P@O_t#t;jUL4#xa+n$+?^B$c3*-~ z1h8vyx=rE(-A!^1?jX0Pj+WK;Hqu4QNyX7&*Mgu=`T4w^RS zJzUgQ>!@&+NL_qt1Xu`5wo%QNO{T3nHCZKTp3HD)K@SpEcgv}|J$y}s`Ivd@N3_@v zxf=W#pBRVsVqtsZ1`iB3_PMlJ?3k-u>66gd22N}PD%}Px)fMVfyXIldntP#eJ{t91 zqOt5&v`G8z51^L?GSvG91B+T2&cw#ejH^CBqhS>R_8A4Rf_kbXPKJzI=0BnTpr5ST znMaC8o0DLzYwmD_S)J#L@e?e}LbD&eXa#sq!ivL{*OOzQAsDiX-%05-JSSQ(SBiow zTr~z5q#j`RpYdolXhWtJ5{ay(=0v_hYLAwfS%dp36k^_QF*4e)0EB!Es>|T!I4(zf zEiR*GWWeo~r(S8W;cPT{a(ChvqjPn4DC*DBe?}Fahs;y&!iyx_5-dfO2F(M`)L&)t zm~kwY4%A?>pwV_c!JOuD_3@6WpUG6ER%>!W!6mC%A zC7!DScJ?g5vfMTM1;Ik?)%%z^h*p96;NwF5_&tRB3~7GP7Ug1#|C}6N`FX#KAuQNq zG%CN%jvyAT&xE%E*U(JJtX)XDE+OCNz%#)>HdBUrn?->5D%{0l5mER^M7+ldM(!X5 z$zQX}qMLXVACOWf(uXPN8>@zzIaEOu=Y*`QWRHhV(pkL=m#K6EA;{$r(^rg*ysdmA z-dVJ3(^;^q(K``kFhmUqBtk)sofU}TpNq(P1Bu2 z@oo54xvS(|yz6A}2gcwJQFr1EdWcm>WyK~_>U^agV^y=zLmI0p7MyS_yGWymkQ@VG ztU~!2oxM?_d}0uj41v~kiN$0*f&r(>Mmw95f{W$F6PQ(WDxCpv2j}`7AJc*YzO=${ zx;|*YMT1)zw;eg`(pJJ+(V`5yR53OiM3{^TJvN#d*L+s_wXl>UHcjeue+t5@(4e?t;a z>(e0x>Qh@Di#Whex71zJ2{t)s4 zB7A7p+{WpLH#W|@YwHUx#i83gbeH8kbn$$O26VQ+54yH!C&+Yu9Rw3}tNQUqIGX{b z21-UUirO<{U3opgrBsm}hu40+wiqPXS52jE5d?h-UNb$CVOWtUF*-0IaVwI@mw))? zZTE=V9?b8@g!z;p(*!Lu^}K0%nD}3cvhvF6vyhIN5aJOrAdNFSBXa0xV&fA+)Vokd zfBtln0kZ9wvuAYV*abJHA-jsRfD5IWx~(=i^_m7{=Y$1uq8}Gf(PL zAQnaJin2IF+$us=2+-E|+;!Sf6`t~=0;b7Dm7}aGOF9@!7CsSNk>XF7nDp=aUX(FD zhhHeEgHHtk{NWbwl=0@%#OGIqUAk&4ATa}lB8GRw{xG!Da z5r@kY`D)-w7^dmV<}pi09M;xtwXaetMU!e(FVzdA%Is<8Zhce!a1E%!%;neH0&cit z3yiDY5T!aCf_JLggYD7DUQJZ4gfz0my{o@r_lT7RP32|;#j?w4kaC*ZEaj1|>~>%~ zf3>wp2$eOh+2AoNWiv~caYF5+$J`WR2@l`LMIh@P0ol)w?$5Ut^x7C{F^Aw?Fh;QxndKt&KPbv{a4M7Kd_Z9?k@_Hkcd%emF3i=3;q)- zDLx^i!AdTi<_rxmdSwSoyw6m;*`4pj1*H{EURy5pYIIwnm`g>vZ4fJ~W#!cmUKFTu z2-PTHYSt<_e~_-e*_$z9<&P%t0|NI$lKe!rJ)l3Z^#y;rQL9bJ8N&Oddc1Su7}pyB^Tk7d0eg?^ znHIZcSLfuPD1XVQ^zRu`y=hs4d&h15-7~><_q1B|4$>UxH|ly9yNdV8c)pucJMgaL zn(j9|eLJ)E_73CvThI7wSFhd=`FiKw&fWm7T5jdbn9FlNhg_#Il<`r2nsQZ$$g0Y> z9loc2x+dE5YUWm2u@R2c9q7;3cY6#0S;Iar`R6-vXy6-`{qJ`9|NS||+3{aODTC+w z{v)gteD|MWo${`a?F|UKq>T<}Hr#-$`%84(n7lLaE|#5~ILqjQ+t*`pm^~o`d3Dyc z7iGVcq!zSt?Q*WElJOjh$I829fk*1T&W0)ntp#AaN;kL zG$gNTw^?w+Fyvyw`c04Me3h%P#N}zZ2^c5>NFgSTgW_6mM!2rCr;W}eML;RfSEWfU zGm>Z#sunZsF|)tjv0jvG+dq7TsdIOR8^8O<$p2%9$^P#;%>P^a`VV~izxvI8qSgNi zPAloyAq%4Ng22E`%&QiuXuSc^)?egXq2L1;SZRF=p;S;TQQn$+6Y2V^=_13wW8QaB z5K_%$SQ#%9!uiMDA)wG`!F_h&pQbrawmG@)F5gP%e=Iu)561(Cm|#*f#Y2-6q7K$# z75P~)mP$n0>nt)cv0!R|7hNj1t+*R;vxYd&Jy@D??EHP9I}(;D+g0TpaGrC0K5%WA?9!>&%$0hszFhqT4`eeK z;0*z_LkiHmw^|}{v-~6!mY=X?7SW3!s?!b;H)0VV*|1d8wddEX)T*IvFyLfuus8Q0 z{Vbo#f}XL1S(^G%rh38i_);PUM5q=FF;rv;@=&gL49%E5omnMqHmmI+*cbpD?{^EL zZK3%FUO}0o$4h4o7%F82aLB(}+LX10gn}|7IEs}g4P}Q+v=ta*!9vn@W_WEA=g44h zv7U0W+9oh<<}<`w3=ydB#S9?{B8SnR4|YLMj=$_6dNTvVinan0WOFOa=kH# zrwUjX1VR?IC4Qn|4}8L&)qWzS;^ukaG=g}8CW-(GKt1vuB!Xe9|;k|-1jZXr_f9%72EUHUW+WMDSL zeqJW)1o$q|N7T_uh@e(6FCd!Fe{5lw*dtwq?-(9N zRiaY}q~W{Bv~xZ7-nrm3n|XhJx#a$ZR5|>+R|iBA7E^+FV1cHYx(i@4tVX38AZo+3+h(GVn+D`_O#=CTVjp^G1mOsR zBy_1^Uvj$~_^jxMrCQP1j+tM%SElQOwCxh{&OpIqijjngyWk78i@I3J=`d-a?4;?^ zo}OcJxv{h0Q!g@P2~~o|-9o1IE{%(bhS=4F{cM`TQ8u062h5jftujXFL?Y-y+9AIa zk(|dVUX5WbFiV!WPwgx_?JOtFnDq$w2sa%^DU?TwWWaxODT56DY3-C;)-Q_i=*1=`W%eH>8jFrb@ zReh_?uIeG+Cw@MOx0I9XbDRd3&A>&gf2?Ado2T6r+Az$V?37Ps9*G-5K8wrYw>ovd zwbL3|Ab%`I0lU9UtA2ecziQ-US@OL81MhKY_=|7yjrXAckJbC%NFMXQtH%FTfB!e$ z^Uq4$qygovb@V&uclP_C*;-82D5o_9IaxUEgaf?&=n;;r5G)_?v_DD=MZGokX#8*E zctl%ZUXY^3;J9Lc`=I365P^%?Mw||qi)JmUmJ!>DD_5@{MH^_%CN)>{_x#tqS-xb7 zzAPi&*FHOwe#aTtUOVi}ugf{zpFBuYCrVgDXFf@vO2pV*dJ>GU^l*ng!SAtBU(}cQ zDzE%WpL)d6eDY^E=s;Gk0B}DABT! z35&4gc9}e=R@{l?9P2m6e#&N7{zZ+p^e9g#fdUkbt6)v-SsG+r9p152?_mm=mTOli z5GN$egrWfg%q&vptdma68{^KEt5;5iJa@+M8aD|BsS6d3+OTMUPLoA{^C3wmR*eDZ z=ACi$h@$A@N)2(MLUhRW>fp(v3yOpjK{V*|M8?5!NkXbn8nlHfqgY5<)NDRFRrJ=4ZhtQxaAU@X|}lsyu}e77ra(Yl4a7m1B4 z#y427cBzB4Ne?Z#=h6@&p0T!d2l*V<;U6a!0MTBY1ch=(zDW?NQe55+Ujhu9J$>lW zVEKURW_u1q8@Lz4I)SLNT2>|w)Nrr^prk9Xwm65OSxB4WosnPyhw=R7G66hO0HBc@PhP{CKC}=d%H*rrdaqu?tDt30yFJ-!t zt)UT$TuM6=$`;*q(Zk_i_Z{}Au42R)gI(1zAA(cK8sVQsTnN%HsNk#Nz`#NFp277P zB0SnQ++M4nSm8zj^NLmGO6}yl7|`^fg*yU24D`G?BA}MEZfTggguCtilvZN0fc(5I zU=ADg(|M1KJW`>P!3O%=VG_EkeVG&HvCe{H<{t^(OXSQ8?8G5?MQScmp@i}`$NEu!i15JSm5hMwJxL2&Y5ma}AL4}(%s43GcJa8@KvL*_B{(06)r zVEmC`Mq}QHpd=NGZ%!of0o!8-;HgvRG}o2rLJ; zJI{#&D5RbsIhwa)gwt&h_M0%S$js#Y=`%meGwvZ2+eIeWsxIT&nK z9Mpzx54;PTysUyBQ7$r&d}&F`P z9t1%qx26wl($IRUcAp%{Cz<0o7r4KWM(MO6lqb+b-$=F2PXpzYUUW4rA){xQ&81EO zNfYC+IW*wi6^U0uu6<9zTl|-f(V!(VW|o-h`gaO;t>X`j`7KQ8h=U)1$6^;*TbQ>x z4Pk$G0>;yXAydudl@(84Q~z(R@(Rn~D#*8;paPq)wC~MY5x9bV0>?hZrrqNbEd0p+ zEAR#6Vo<0sVUnHeEvd|G@q-P}H7`~YF#lU)0 zXf~D$oyT$f(e!_iX@g(d|&{Kz`*!E|r&-%z7qMU^UZ<^~OSyc|O8_G7ms}!$2 z-=rR@jB6_@e6<$~^qgHYW#8o?a*x5G0-pZG)D$96!8J9$1<{jZpzxgJ6LPL%OH1v7 zJ_#i)wROy$m*2^hY-XZd;lF--z&I%+sH7Uyi@rLxFrGl4zT=Q3Xy_PP@@F7%s#wN9 zED{C96${?+6?$gyiVn&Vl@?6C#l6}js~oiPPq1pN4?lUwG%eOGYkBc4aIg8Vx@XT+ zU2zPfJh&VzGSad&;HqIKD6UY^qtrjKDhW~`UZp&*>XHjO`Qy*^mA6VXF0~K^P3FBe zs^p#=_LoAuL?@HBIaF&+HcLTM9w2ZZ{2tV1YQR8Aw^&}2StyB{(0;(obVFnF#;&`s z2VAD|@}Xfe1)lv(?{6dm7}%A|D>9|3m{DN?=+Tk}>&Hc^`=Six!}%+El`>U&D4(=Y zU0^|?9AlOs%yi|aP1>n;l<8%UO$juil3I?K9P}~@vXH6n!6AKY zeXuDU3}Dyyx%^NJus8E19s~6?^b{5S>XR2C*D%=~ohj_KP0J+4Y@W`l15pGS)jGuK z3o&w(5NxJ(Fd;v>?-c$TvPYRM5aXi_RjSxt!&@_Po`;Q4$PBZ7j^s&8<*V-T0si_8 zvfl>cBT+4QJ-oqFe-LgSV3xS*ly1#iV9YN$zHn;P4$%mTBa)IJw59xQYxaiOzLK~d zsS9=qEy2CsHn6}T1qLy?c0*K#yGdCid(c$7@J3Y@T_b;MG4I(KU7+mz&eG;N9w}aS z7+lDNV3GTAmR(*|!zfccGw)MOXv3g5nVE-en66Nn zvBxV~6jBa_Sx%K3bP7M~qYQ9U?;~g8#2$JU@sI^q3u5gG~JsUm*Lm(g39uNb+RBSXg&xDjaWdDjF2l(;GSt(_w zHa|glF&R7Wa?Ob8r-{2-KA%8W6wt!2ufLyS1ZAV5^ z&Zx;2X`(jn!q4^SuUAB~SwvlpWJC&i&%k2cfyh{RBwtr#UR&SO ziiwe$-yC!V1AT%zi;v!oy_K>K3gjGR&~L~Pir zPw>trH|9%LmR55K#gr$P2NtU0=M!OK6nW4qQ^v}3qE261ls3oC11o(Ac~oH)!7u?* zWrE##fKamip~x+W4%`hn39<*k`DE}u!D)|A`aV=%(=BA_CzDAvk}YJH2-E58O3s8< z=d`=cgXqe!@`i{TMZT!y7Ur`h!#wn4RzUibA;)dW*@6iLGf_fEV=Ir zPl>q-sdfj~`FWEKFt5qjj^)@6#A_z$7nby=POe_dp`O(k{q3{`FOkH}2H?{r35?j; zf$a-u){gAOO6HU3rluxyw-GU};nPDJ%q9sQ##f^go#sVNMRRXLS+DW1XAt>|bT);qf+(^dM@O+c^t@VfT!3*?kK`8_Ks0_+PS zw?^}?o5tRT%4|>5_YZ0Ezc9)5GaKvaL+(Mo*Gk5IWm=m}F}s@q`e-KgZ6W>ip6zKF z+%XUD!MW#_e7~C{5P4AEXWB}f+N@&kF=blGC~?G$NuT0v4^UWVdW>j+5a{8KiJ`7f zd-^kZaMo(ggNrQIY0G(ym-d9gKNkAMEB#rO{El4w5lH&QCf&ma_v-WNKc;6yMk;%w z$0?*{;*>Idj~kgp&otf`@@56y!|WN@2jxcwV^TWJL~C8LZ4eznrLZ!5E##z63lO5 z%)tfv)0E;~Ab=!M{6risAU>{ZYP97I2SK5WXCLJHIu645(alpYkIC-9sF1B&D!t`{ zf)h)$^qvLo9&&*KY=akWlnYC-JfjSwyg(keM93tSjB-V(sXo$_+H166QvfEZ%lWq> zGp&Mc3EB~SyGUDPJ1QkYm!w^qX|)*jUHbA3av8*rFJw5J-24!93;iHhJf)a5B~mb6 z4&}#$@=Y1iabD%TO=+dXH-fKbQe6YK?Iu!F* z)40^AZdGLBu2)qR_}A@>cOg|UmFCT_Zgn=kwiIiw`XjYV!#{wS1s9DX1WcEmE$yi` z>Pkt!Zzd`6HI0e-64}u_MKNtz7NtqHe7?Q(+ZgWdwo~F9e8i7Lg&%5(A@vh%|MJ7F*Gb#D7gw*0No zCrwm!}edZM41O9_}b3?iA1qx%|T{463l^(## znw_fDf^BI5QK)AnBeDK?O#$KsKc8BH2yovck6MMBdRfGuC?F50UMim+U1~aAoaC~z zG5>UdL~n+80$Dl(BZTDn5kORl;(>lG1j?kvyp5#OM?WaZu!FjnR7_=}kHlzSao#ET zv+XTWkEZDF4W|0fdb*+aw7*26DlY?do&*P{N9b@<%>qd;Cnnh!JR8?>1J#+%1aw>` z$JqbDLkh!ecQk)PdEx&@>W%#0fqnnf=lv_yrV`By-7kO|bTX7vnuOOUi;aGMFGQlx z5d0wh7Z#gMLqiS0Y!8Sh(Y#i^1S7;Cz}7Q9nroy4t81HsK`S zb)!+6N(=eqmxlN`*5e;HiBw;Uj?UzM1gM}NS*3EPc{`-A+j#oV|3ErhRRds4zb|d) z`~BY}?EgkOss7!?f1ASmt8DQ6@)pJ1Ir%5m=>1oU2kv(zS^RCFJzH05 z6h8IVNpt=j<`A5sf{V}0x4W*11Jw;@8Ru}ycFge7M2L`ZpdiT*BzD{(vvWTdc)i(a&W3VH3t0w zCVMD!IEffF1!nuSV2c%4>pYR+D1R1m3OeQ~FLd~yTPx)u2b+~gkS(TFDJ>?!LgJzY zf*=!Af226Dn9i)}%MhQ(tES*x-R1zN(6JZGG?IG@&s9Lz-EP~fyn5y;6@NS~j(ONu zEr*w$=-gJckm*M`v2hdO_9A=l)G8*VxLlc);GXOA6R7WT(j87XkD7rcKM%L}B2Lz2 zeEH9#1w5+l9mgF|nIUv5lkvO*Lr{2;HoBm5=DU&v4ym+x`*%0!;4MM!4Gpuq#g}rrniD@$KHVWQ<2S&l>EKPx|=$q=l9gk z`0+K%dl$^Yts&(n(9Y~lELQi);FC^jxL-VxZt@hh?0W+W|Ll!0`mw|(ptE#OoNjUg z@QM!i^`~FxJtM@=Ef2iL^0^Ks@)qCmhTr5)Pq8Iuv?gaf*q1EhYx%~BT-V7UEm1LC zPvZFe?|F*jehtgJ98}7i9=ht@*WqeSR_iztkPM{E>L_xAQmL%L3F=;4G#PdYnUr~> zy+ytcKd^NqbMZ0C=KYJDZd8Hrw>jnm}ju=a- zw5M+A#gV@J(=-Axl@Slw9O`jYVME>jGrA*iqrIK0!)smhsFsL<)vlGawty5h5u|+4 z#yPjZ#!IW^a0BcjuQ}P)2pJUTG7FbCBjE7L+-jp=*QN+GK7*^prD0|L19!u7{ZOse zM%YZe0?1h+mml#4J5g*WHLydxP1Z8|$kp}XnVVY^*kgbcR?}-@>Rv`GSEYAtX?|g0 zd8;oN4fHYODHwazi9QF`BTNZaSWWWf42r&Ou-F)FK8>Tvm998I|Qpgtw?fIi8zA ze7OgrvnS%{yxu6$(yewaEeZGFOFVxVk>yMTb}E+60UZuRLBmGp|Ng$ zti)!rQbIiE%UhSrFjcx!D50f{pKtS>pd7G2@wXC6B)*K*h?i31h3@ns2@5MZS&VDH zEUIXem@Y8>k)+VUs0DFFqosmkYGl7H-N=RnO_CLcqA9Y4d53NA4YQBZUjlF~f$;Dr z9ItJtRD~+L#mUMFUCvx14WrC`I#tvTp7{jnkYu#cV^2#z$|7j>E#EWs4tHD zG(H1K^qSWZRAg04qpR86d}srA7kB1t0R+gNu~e=@fJLgAoquNZW@VXovmZe!9$pOj zDXeWEP6uf_zjs`@+_VGNy$=)bR$8v{xx_3H*$Q5fO;g7(Or8EuYBzI3twXp8-MaH6 z)6AdyVlv0tD|oR*k0efk+|D0tiq)`7mhM|P>!@37e!O|^Zl~mXseh+SSJqYA z>*Ztv=+wKNEshzoW|t=0n&~a^{#FyT$meu362;zAo&TcwEwr^73u5byf$wmDQt!ck zu>@MLGl-I zd&H5i++CUoiI3tVH#{xs??%rg2LXH*FG}*b=aGNh`HcZ10FLks+XiRDqgS zX5?ppsP09ZLfQ=gR}W6`0^L^el8I$IXrDum9#J1CF+=bV2sD((_Yq2#==YY9!Si~o z#nI#?Y899oq^r+tbI(svn(lhTqR(7$*C_%|ahJQhzSmRw;k&_BIyQRQerx#DVB&0o z@sS*EZ{`5+Ck~fXP9<5UBU9zq>6rZ5ZV^qGf3nLU)7aAF_7J2l6)``^qeOX?-QpGQ z6Po?psW1JdPw%^9f$dmuAPw3i?#iKU`2Ja5E*vyDHyj!XtKEnvV`J;E(=-1c) zr+01b2SwS?Mew`H20L)ZHA^DOF#Sc(h%3{f+%{t=%eZ7gkatUJZ3oA({>~mZRFa?T zCug=ln*OzQ4gXGMr84#6pP7R8ZXum*_wnI#I2>OV)SyZ0yLt0O6n{7QB! zxwEz2xXi5)3ZldoXMcH8`GNGT$lv~8MSRA%Vt3InO=nQ~;{fXFkm=egXEc8ctb~_0 zE3ObQGWx-RSNn_m?`{Ijo*wDDWWQY8TX-hO^+{?Fg!dmx!0nn`-lW&P$x?;@?;OcWF-a zJ%cA;joZ6mczV~cmmTxbZtlje0EgZHzS}6wXB5>7Wk@PzGH#IF{p;(t90s-2_@EZsDQ5vbP}>r5xM8WlK$u!Xx>2D1T8qe?dEc$^D9a zu%14i?nxA}`)VRzj&EG{thWl2Yyq%#JS{4?F6jx9Rqvw1uQ5;n;faFxFtj`$JVU|{ z1kTvK29F;GKcXrrL1~C`Lo#PHekfD-Is&W4IV}S3)&f@&=cZ-OX#HTJ{+07<>d?Cn zc()Pwf?(Iw5pPD+gO!-H>(C%k+9Xk&;R(29mVTgq} z&$wP&%?(rYLtOzznCS~mW0VWBq!rg>A6|GFT}DF-py86p+V#ma{%5*Ee6O5a&+oIr z2y_J_z={?WUo`j`xO@nu@zMc@84N;3%W8Pl6M3O^Sc3+BOiuF>=J}6t8ijF&s(_Yl=l<&PecUA4pa-`}79u!di?!Q#}L0zymuQBpH0MZUqpVZAWsF%NCf zHjG2md5F^@l&DVlC#;nGBfA5S;26_T335t%f6VeAc>u{Fz*C#F27K_=YM?i;L6!eUNlte1MMW2HcV>^=7lKFhHS5KeG}w zvzcYw`VCIQt_L*=<(-1cIyP_pk#pUZOAXprNb3mcxoEO&hhoOR==g|Ic;jtGzYOlu zDAh7#%>g#u936MjTyww#P-gc`r2UX0|5D3CnG!sn600BVp{N@2hdw_Zud`c{R=sy1 z78~_~LY*k~^1igBZoUBg&e4jLY_5|0?CBuYiraswxukB`75Utnc-7Jit;71HcEc4< zxEY4Sx+6^7I>mnSk!Oy$O@78maN^KFCre(#%N8f;I!@B&jc&uN@`PITPS3>a819hz z;ADbG#wU9;qsI7nMe9$2d(_L!@s!%s3taMD&B-fqXCCIAXyVhLVoVnw9r@8iShby_ zJ5Iwx$);VkqM^jVfaeR(8MTr&^wB?J*mx1z+s(9McNk+#!ntb<@E567(ff ziO;4DqT=@8vTm5<)4}9!7?6%23%v??9#n}+Rvjj@k1a3Uh6riTb zAgvJ#HV#gspgC8*8T9R`Dq94yB}M+4NJo-b#Zl;dAV?Y}N4ar>Ng7l`!R?^g26mF@ zc5puKbyGhdsg}goSqwXSH*?Ep%S_ZXOcS4!=EP>C99hRZtXk@bDSyOfE`_R;gkehI zpj!##0i!KuaN^Xm<$Gt?t_of~-58hiaBLQK4WG;qz2d3DNn&?*$nocnBc{KiHeR4C z{xF?#k;;OF@=e|O`XG3lLC8FlxTc9%MV!Iq5osafA>^l6V|vA+X7n3cLY#sc z?;qw>docF#?gwZrpGQmLN0o*bu>&i>!>Y$i%GBY4xs~FKp-~v%_(5jGhv}XQJ)5kp zzW{45nYckFTbvbHP(l|ki=Elbnz?v(^@-`#Emyk@2Jgsrkuuc2;4j~1;dl6Bk{3fM zj+o*LB0Sa8zUvMvF6{~J_IRn1bZ&Ht27w8QL^)&`N1HOcBHWw##JJY@pZy74&LKkja znLYnNgZ*!*J_f$iX5PMY-u@c_{NGAdihqX?*qAsu8JL;;>#VrXob-3x3?lfhPr`N| zNb2@4n-#oXIDbhJXcqY5+eh3(q{s!b5W(&j1?OK&?jQFRNqheEWdc!KA8eW5BN(a? z*;+2?baM;6Au({VF;{jl9!8`Zy5Zs11Zwf>7=3`%)CW3%vG@@zO!F9fF8~dOIJHd1 zqAg+8U1tQ;#_+Eej~Y#se(^+G)P~TzqD4QIs_g>g_<|i)2aCZ^YQ3B;nqpgr_P4Fj zo#@5`i2p!IK&>jUtG}=Cf9A{lZyh`Rzq<$jrT6?-cc6b_Bt;rf?#fF)KWAt>#txC{ z2jYTYfdEVih>&rEB8UgRO?K|Y4d)TVDk7f>+pyONAvQojO$agcW{pk~5uHTq6D zVSGb!BG>kear*AYY7fx&?@EKvgW~iw?P2LP;{sD?IAT)3+(ijGEd{}K8+Khf2~F)Z zZ>ZljC-D+)uwkHYlYiJryN?9y?7JbWLY41m-9Wr6{NjhYIUyl?js)`?>M(q=3)tEj zy5Q|Q!$6|NNWrt^mTZsSt@vX)$n-CvIPE4YAKlm# zhU&TVa~iFaOZ#LnZ5=5M_pQszO?l#3w6;xKbS0(0XUqF$?kzy}cI$N8wgwt(>!!&b zt5~v*%Q%+VEUvjqCSP%BtcK;CXDSW5tSat#eH6K23g-7jbV}>87b_j6fuwCoNkio} ziagg(e4}(7gOGTu+jLf6(%urMA;hujQe5??@t+QkEABoz(*ilqq_R1Bw^K09dZnOb zqLeDph8Rnpfq2P@cpb}~%V$cf%Zp+Xu0xs}ykfUQ6)TjNK*uTeArlAClVku|ON`Ac zkZ7$7W3YomA;AeWORpa`9-yDGiFD`*grRPnDEkh2{Q-I2%#n=$YFR%1D&PrrG-+4_Yy=VOy#mvl2OPpH@6_} zL!{A%vAM@1IfeMe48?Ick{E3CedAPEVak)Frpg^H72Fu7FuJaWfj43q81<3s;COP@ zhmRW=h}~p8DL~z4i{R$5sEPt?g1$Mhu zTkk{H|Jjp4dQ93Iw8TWu6&-$2Cq3Y498>pqGNCv{?xjW=gNzd#=2WNptuRcwN^qbR zB}@itLNkmUKFLJ7Ylu0ePG;1mze2@P1&VJnT&6BB#*N_~1RM_tPb3+D=n+9nij=^^@$Fr;UgKP_k&|E2qsPPqKpaUWk}tTAOkSP{oq|P@CzhL4l6&W_&Bvqo6`R#zqHl{45jTP}~Rg5XXY7n`AtNaQO zz(DbHnS^QI#LXv^D07LRn=f`XYz9s%R%rXN0G3L)05GV5PNOQ58a7cL0-pn2)5i1b zJ%d{13W%WHZGs}TPI2U|^;iJd*s&XLu)EgsUhUDjf-TeO zsbVXT7h~@kAL&YYp(7Q;9hiS`s|ECRgv@euPJ6`Rkym4q0dT;v*!e6+Z>V~hXSjyq zcWQJLD%1kBZk@rGk&!{R?MsJSR5Y)JYtJIIbK%qZ7dCvLD;Rc8?q1OxWL#Y9r(hz% z9V=Fn;)(((U-KG)&{5CN|AHYN+qP|+{W5d!t@rLsy{S6qFF3pQ zK5Omu{j9g&r2Y2XKl0LYdl!LH2Nzs6XQnN0Yhx3A(<&BaafxT!Z?%&X%byu6H*tLjRTd2dr=I|OPHiP)uCekEi zQv&!v%@fyCjKS&TKVqJJLDb!Sa4EZ^#aD$pC*j0CbrKn2`Bg4%zXu3FySWU;=_uhtx-%7vUam0L)dDk+>S4kIJNR zIUW>8Z|2;YBTi*=WtVu@EQ;DfEZqSoO%q~^I3G4gj*RWPf-U!k%6?M^gEqw4%`h~j zQ_664BS6L60~^o@!6f)$jZe;l-Pz&&j3I5osNjOxM#W`ek=>@|GuNj-ak{_eZVPZY zGyP~9MzOGwqi63}Nzb@d&Bnb)-` zm@h_^Pz?`1xP=;H{>nfCW_}bF>=y1B`>9KiQH!IP%}(9JtASS`@5zy}Yp=|pOOuU9 zeOkfFLm%lupkYYDQm6@#G8e{&F)`kGvFu!Wz7cy~`egw;ycmy2q8>Sb{M21(4NE8L z&ayn7HJCw&@zT5tLy8ek^qxbcqiezUb9W81P8Uu zL04y^XK45=zw`9{CGVU)6LcLSy?(hRZ?Er$l zGqCA$zo6iNl{1@c%tGosrmZoSK@oYhqh!w)SBGv(mj`U4HUNwj4@2fBdC}y zB-oucu6RCjl4*jdQu$nA87pzCU}~ut7fP9OUi@}$ob22_KW}nl;KgvE+d8LsK^sqp zf{d-e#FB84&XDo2D0r|&TXeun{kf-rmi#0EcWk1S?nG#GfVOfv?y#bfEyIf6{IX~@ z<6NQZVKVzq4!~UO8pycudccAvJ>#;i7^amuQIt-%PZxZt4(+5NVY(l)T#SiskkwKc zjjo?o)88Eck3Or&D$k;6&Z(*hqvQ+0ZY8N!H{PFSq%kI)Y|j6;UzN`*E)+^PTvAEM zKQq>xjkz>H&91KsJ4JJ9hBMksz7d}WFD&y(pD9F5-$@l#9r^Tz7+O*2&dITIQ0 z(1!Z{%D`BNvxfZcoUOl3roRrYxK_?dcXQe`KbH_p9#a&LoYtNDu|_(5?nqtZfLPdxS1Ff^6aIP+FW zfiSmRXG#MYnfC|Sp7))>`6|#DX}J>WTUHijb+RPvbbRC>SR1| zgwxGXKIDV@q;@6D_mIK&QW$Lyp{|Dqom^!Yta2hqsZ|sC^}wgl+VPg9GiUHY>EdTo zS_kqhNG1pZaT@;q-}R`mMhF)VP^B}4$-)t)lxIVvlBG6O|BUB7!}FhJcGBPT0-KT{ zwMip*kFeJzW_2Oi14#HWb1)pTA$QPteK?OieE9{hiP3vB9&w^`Qi&2HR5`lEf*wJp z^A(MWx&`PSS^kgYIudpcajhV(mVM1(Ai4la7$-%#7oldHHb;ilu(e^0HqMtkW>=SO z7miE!;%G-tU3W+`8!>#ja+zly=Q@o)6=m)PcZ1U?cDAgw57D9(aakgMe1CwwL+2iu z>d#R4K1(PIX5=MujDGvB+PPBgp;(}yhC4b_8<2ON!YG#Que>4&k_8P{rogMyRF!Z!1)v8I!>hf1~TY&cf( z{&eBIoaSOb$+sNn;wcM#!qLgQ+S{R2!Gbq2bF6zjHgzHJ&x}&z%!UpdDOSNUGL%Aubpz~3Z2qHt*>sxeVxRH7ohA8I3p$gymj|3G|7$N47J=p#lBfJH zXbf8K0kjuRw*Eb7LJ8_BkQ~h|EYC#MNh;6GAsARU$j;I73+gN1=iec{!)qyNUDNw; zV6iXJ$XV7B_l*MYJ7YPsvC|EwGjWrXXMg%<`_fj zXS{pQ{xY}pw#mH}m=8$L(eh2|XLg5gD)3DoL0acbC%;2PuWxXV{Ywq>C*1dRm9PCp zj`a6X!N24^e&|ZSf8)162>gAALd1~JjrWhF!j3>T%D;ts8|1uCUI6ocpE2I!d>#f{AYX0@(;mx7d^&e&R&DBefdWiFf?K^zLbU<63vS)f=m25Ft&c5V;kPvO1z%u&*wXfptsJv5xMags$@j zl>wzpcstKl7mlm@@5_B4Q{uLzxnq-LOrvbLJYzy+e9ITGrq~?}Bpj zCSF8qS=j1o_P4zyuefS^@tuV|90QE?0UtO6OEbbk=aFC+t2o`AYeI+cHBjy>`5q1x zUW7xXD{T}=ut!x;Pn|E9z&2+M;(8WbVx7QJR+9A>;r={(Mjj60;i7h#&$9B3L>x6s zH|)nC@C@FL7t62qU3RToCo9M0wk=y*WhWALm+ZBVM*Bx7whBkX`$<0R)tWH895^b!ex(RZ;vDADC9S237jGY>d^GFddF0>${70x7Q+dO|{SxVlaNeNc20Bf~fjYmQ9NT)x~b@HJvidUW2O&@6?)6?t|M0P?Be zT*LrOZ~~jF(f85#k&;cmM}m{mqrF+{4u&xtt zEI}yLvC2`Mo_d&RNw#JD2;s)qX}s~q*U>@{m1KC*VYLTSeq9R1z$6JV#N;$KrVW-} zm@Fgu>`TReW`I#DSMe3%4=;fVF!4yd7vMt3aph_bE6UwPP?pyCxQA?@zM{oL zZ)^f&t>198&_dLj*hrruSh{9Yb9u_%;rvVW_}6nJezSxo6lWPcrTf~*^y&))tg^~Q z6u1$O3*>tV9v|Joh;$SKvjBIA1F4@MuxR3kM6J&J1a= zP-qwt9cD&5(dQ)cD;L13ct`-jDmSi_-=l9;ACe?j5f&#UKF~(1aKLv3kTa2g7*{Gd z@GaMaz!+6#Z#u?LN&wm(K)-H(o@=44La$HttUZ%C6pUK(?|s)@F7tBkc$W{)(o&upz$2eLBW zsyhVdmJXfcFE`PuAi{2|xQB8pfyS-`!<_~&;GBBER7?(7lu4LUlu&8Sh}s!A{Iyw{ z578nosd1yY?A#8`&SXpTeCy?*(u!p}H5$8EU(~O*_Z!VNgj;1Zc%#iZB-~8DDw13I zabK3JXeB$92QS^mM$-D?c+lQ@j#Y0xMI(peH{lE>DPVm?_L6K61;Pfq7 zYipuwV_tS3C3bG9@o0Ht)HN*XqClj5(B0yu1TK#dRBw|bnRT;?H(ukm7dB?RoCDh8 z7i9Q*3fp2&-k-F{Nov-~>y;P>jgWFED(ft>C^-1=VuKE8L>3MdY}xw#oo;x?Fs8|i zEV^{hlo$abZ`v*|b5@BbX=jGR5rI05AD@Mt#48|u?^7vxQOQG)%A#+$`tl8bv2i4# z-oYEI)#VXjA*dE`A6-oCCY{%<17k_K^y2Ta*e7hYwiH(xfN)HNQ=IvtCyG&b|^b{#E~B#0(8D`6SP_&Q{qOq~rtJ@5cX! zLdYpD#S)JkY@Nhg;5I)FyMVt;rweClMrT)zevwvJqz@%t3u3(+l(qYp(;ht&4zlAF zf`KFC9bl91g7qpObq`U>pE|!I^z}#5mw`4!kORYi5Q}))Vz&^zmw1Imo)zent}e>& zYYr;5limUqmmUJ?3|9@vd$`wK{*xMmSQGYhVnf&QPTLY8Zk`bqN0L3hqq32{Oj(v1 zFUbGQ@fP<}&CKKiFgB;RNCE%W! z-WduCviI@oHW?$vCE8o&sv#P|T`wVhqCR(F2ew@fX`FyF(==Dg+Z*UK7}zwAc!QE~ zZMdidc|$5u17)P3RdHr*_&u$>iq3rGkzLS+QC7;{GeP4XqWVN(+{dglM|_3OXU7<| z@>@5&q-bM zRHMSkDR(<$ntMDgi~5w_B5-=+L2IEm-p>w}R>JQQB>IwnOSrki3aQSqqt@gm5ES~+ zuE676M)C@ZoX{#q1&pq!hG2{hK8A4AT|)prGGpD^`{3$SrIzKt%`qo^950 zgSaXPFced)W;nMrCpF!oTx6FmuK-R<$M6GT00(36L+(U1-93^IQtKr)&fz0(rp(}+ z7!4w$XWp}{vR4qtwl%=1Y!TV_DX6HIF2@WiMwh@mX4T-au!Vm^aQlmX2c8>qfx=ox(#V5=;=dgloOA&t zwh+>QlMU`ZFWTZAq)g3*8%!pCQ=1&Dc*aQEBoHy6BAVp525naM@JqQ}GV4;jtU=;e z@7u2kp%>7l3$$Znx0qA2J*P2bOLohBj>^J7-Zjt`31NOaC_NLf9GOR$ zoaKMy@MO|m!8zW4L7yuKCXsGHerNb zII1P!p}2s8S=-@l(pq-xRaHr`t-KieLJ>Vy1^q2wW7&(7Mo?`jtQQFmeJ>pUe9-{v@;3Ojw#U{jNJ`b zdjgrXb77@O3~Gp{b;gvO=7Y1s zTh9&~SCG0kfN3=JQxLmGfG=u$n-RY}92uGw|DaT;uM8;^Ev%T>71qx$l8u`gX}+Oi zh<%u*OHoYLx+1-7XSSPm6!Ns63OD4)w7-IOGn7;_r;x-{GoE3S>zp9H_`HIXR>#DL zh7gyB@HRNEwyon%`lry|dXW>1`@5>|){wvd;xXT?h36OW9)XB~UL-vAsRb`XJu=vJdABJCek&cUl zw1QlM2>M@W>iG}9L6skg#zy=TD+sIuX&`|6_rc$s3q1(-j-2I(&liY&$)u+6u$8n4| zP!HXV1f#F=qTzWYBX~mWEo})b))xYXaeic2ng`8EPR4r*$}OSlH=t9{ouWa`l#WN~*nMYj(CNM1#bb^TN zg8gL7X;c~6R1GvIdzDETC#_U4gX_Q5mX)T$1vt@JN6}JHSk$gdfhGxZjki&i{#7Ap{BWo_r@F=x{W13`0YA@2K*zU1+qadAj2LWgYI><%qYEz z7WENO0uq=5hmI}PDsBvuA;lu13Z$osgnaX7#VBe*aa%LnB1?iaB}JyoeM1;Um94|j zjFLuu+XGH)0Ft~ikK=;$1{zQ-39%zLM_myYc{=jFGO@&JiVwXDLC)9UDDnYT;C-Jb z(xflU+i#}ZQ7aXbka5;lY)Ck_C({bN7bp6&O17VT)4))A~~uLbfrRg0lG#wQzc4#RtoGc9xHa3W&!G$2W^}~ z7z~m2M6~dI0;~Kd9|a7cnuog=|F~Mvxu?Wx7%IOgo`^Qv?R&wIc(edbzq1#%s%*<%mV|*NUvh>DIA$I=2QYS z45Nbib9>JHw7;Fv7^-6zjBoH>qb_#ypMF$vFXe8+4;arF=6~AkaR2*e_kVd&N$OBu z8B1~hVyfl7?>S{NQxSJ0G6$1wHbEi#;DJsoL7PpiDRK)DQ7;+_2&Jl{|4?q}&VFp# zx^Dc@^4MVwB<6O8DcT4^*KD`>fkn;ObnxcA$h2HdE|d(+Q>-0g%)CUW{hQ2Sx7+67 zeQt^2ht$UzV)fF7Fc27^=zJ}Nr@&AA7Si>S>_%8&d~0m{))_IoCE$YJM73`4)c2 z5bYq}UtxPe>?DQVoW1IK>78676g~-Ieehd+iI2vxeF_iAIRlLPB67xFP6V@2?-St( z@Dss41xFa}Xy7PB-dBiUaV)-6M{fc@bw>zp#Vo!gMstcjQqbJ6ebMg!F+a0gFg@%* zZIaE83CLQs6&@u+#fYZY@(~B(0b)C`mrgN>bqdh9LPf69aq^F~Y2u>$bwc0XpzZ1M9qjm0#e#KY}^W&nF@uYZ_%4T0{| z*{M)P(9Go-%qX-<+_;!&9B#DsyXyA;2qWTm#{5Pj*q`CRP1L6*Fp)CrUg-jdr>l`a z_uOcm4fRf0589rG2gvhmDUn&k=2=Fj28B=E62)8+v6C8(#d%EOl?6HrmF;iBgn53z z&n0qdC{8oM$P&vN3!DIE0QDjU+)(kyuu_<~b$j~idmTV}7+x$Msrd&c6;UEcwav8M zpX|SC%;OT?(suKQn9s-$ncP~L&XuA(RhfTC@;Nx)lonUA^vhI>z8+Ad6lbnyTaP_1 zDS*_)3985BFRh&Ld>KAST(*S^oTU>2WwXSdz^Pe&g+0^3Rg)}db+WYdh8^yW&EYej zDP4BQmvMJ4el6R>Z`HA*m(?)&+({Bm9VkUJtu~?)$0)SN#DW!*z2B=nF;Z#`b(v~> z_*?01ZRX5)UApXx_|a9hpeYIng1w;8wkMn$H z(>4B0^;l_=|I?it7tqP+mcBAo zU&~BkLYYhV>v~Ma71Obig(X^OO06C=#YQxOD`qR!W;?oL|`Xm z&8}s!elR~aTZzzI-ypzaII<{Q+9Hj^pjl3nT`P?`>Nj>{7}x7CdN*T89Ndg)Ky$6? zdiaXfqJ=!h+h8DfP^WT%ZGcCqnyPD@s5dxoMDy4rjfrtbY($WD{#+6GRqjNfL5XMz z&Y~O$_*Fg)?79rM$l((BbrB6*W)Tf1enc_`Ohya%d|B^ewi_3^EP9ol&ROz}gjl{o z!a>_K0XJH>X#W*b+_fG1DK$1~{YbAjhZ&)Nf;JCMBSsCIIl&eC=`Y@m+<-&&*5XUX zTkv+#0-}Im3*k!7q)9MX>>{M7YPMUhwJ`SiRDlE3S@Zr}A;415t>g0H(yhwE4`=I~`A(wRH%q ztGmL;P>D$Eq=afsJrh9xF0SN-_3rk=7I`?B4BlgUm z!|8>0$c-;awW@1)#T0R>z(-3VD?FrIQaCaJY_XIxrs$kJ=(4YI?;&#Yq;=^>=%_#2 zmn*)|IVx+N%#lHFO%=@+8Q7wAs?mBt!!>72}Rv(}|d#9GD?sYw3tuhlK+acVV0 zs!TA+BzcaV7Kqk>H^fGehU3RY(>7F*Xw)1%1sfW?TB);UpvQcBsYj{hIw%S(+1NVi zpE3j#r)^dg-04cSgz%=L!%a@|qjZXFQ+pTPJY0Tfi%U#tky|L`X)vG^WzTjGS{ddV z4r<-}GE?g3cQ(xS4Pv$MYMJ1Uf+#3mzEDpOV(Tz(Rz<>@OTTaYXAWtXb7Ppvl9uWl+x z1_c|(VQK)OQMBo~Q7DF&!HtH~k}wVow*3 zK7k6f(fM8LA)Drqu8yKmb2@`Q9sONO6qy*etBH-y`S>{Vc(yT$?4P6*ML%5KeX~DO zj%~qciirG#4+X2>{Y)J8D1!C{NCv4q%wV^xtS@b34lAHN|Y|9|?(fr(`1g`aCx!b;&!Q0SE*0wXZfcKxWgr;~N6+3nU zH!7bWUTNZ6w9Z>tvUhc7uO{?|YD=%idUt!)IV)**Psdqa7>Bvlzu#UdqJdo1BA8jd?yN?o@OAMVYNR9(ohmL~@|X51KhVdy$5+>~$EAKa|&-LNW6T4AxR zXYtM2W}H5t@Q+eTf|~t${Etn42+(?ChTT)dI|`Q!b*t21>hW;r=_@dyP?bjSzU1SLv zmGuVQ&U%pDGE3>hG(=c#t;jr>rwciiNn==!mKf{WjsY|TeH9_UML=O8>kQgY!GfbHbwdD253R8BXVP% zB=yk?tHYd)DbSh5Vw;tqx;8YmdCG)Cz!tV$;5Abrj=vv&XCIhP>nnldVOjG9uu;F( zlV}~+K2_F`zMi@?KfjrmVBAvjJJWTF(!AncBQWqqKTfQxz=j44_d@;3GPy+YH;<19?z#p$D!(dp*n3FcE^}8NM z_rRIyMEYk~W<4cx#c6G~t{YEx8X&zB=sQIae#vZ^#vTyCA0+kaTQ&+J{f{nZ!GAft z{S~tb*12ILn6%5++PUw@L8e*z6703!aNN*uw+Y>I}xb zh@v*BdsN$QSc{g8-JZ4Wtz&A0nto&J(rQfqgg0Nv{zGTJXLF@~dnr@Ew?~RfcZSL% zH@7>Np@!-YMkZpBdqjSe1y2c7~D z0uwwC;1LoG2hZTN8P%exIn7AGK)~+84_uXNG}tzhFBfn^-}s8nV<;X_qQ(TvHOmvjYrQavNAIz-L!cV`L|;EKVg?j#>V`*Wt%h@s zdu8rm-K#nx`pEfv4_ORC)XlnoZVcIOV1tf(!_5_Mt>9=}-%f&&<2`MA;6<1og1f4a zE5;kQ@`8zE&6r8tL}X zW0#vA-;jHv@BlD8c!t}@=cj9v@ITyYDzvVYvyTU;f~EE$UOoy4M~Qj+NtUm_a5WRb zF9yW~lMIIJA=S7es!+vy*2EW&oSv&4U+2RwPqff5NsG98{u_5DmCjy4V*JWz6%!|# zz!x8pPawnZL@_>?1Y>$CwnybjFqr$GG$C&A14VrAYzv-ubDv*nGV|^64(qr4Q;*hQ zK5CpjO2;692HBz05YU5qS7YYaO*|7^eg!}j5;hT|XFwiv^ zu~y>IU32i6vK~J)lMJj)H-1Y=n(SZ8`u%WG^@&B8?6Eb(Sv$eCfGy6aGmGXuniU8sj5k@>>zlgFjJ#i_HGO?Rb00u0f zgkK$KQ(_4bw*>faZj}r;WxffD3a?v`Ps)kxG}+ugvEHi-CzEH{QZv^#{QSN^y*#K& zh<;7FZYwYsu=`T;DSI^FNE9Dw0*$%aefs)B@B7{rbu|7q-4}WDS}1$$M@FoB#_Y=S z6IWCzCxUB;ZD{!6Hn5Lw_*EgymA>orjF{Xebc-NIG;&Mp=F;W`bnT~^Y7d*#Lap`D zo=P6s*89kr#C&VW0f}Luq?wBBJiFNdrl`Kju{M6_>vJ97T>;9rlpU(`g0Nj4491jt zZV^`YCinM$$Mf!FB7{j93~TXb7$g~4sU6o~oyV~IvSI$QMhYE`|9 z4U4OW&Zu*Vi{hHa`(@+bOhgJNx=Tkkk55|eThOq7R-CO=S`VUPy)nH%Vda zNd(K>AbMaUOGEGu+BdQV&Mi}a?qmClyWe!&OHq<5!1h9_a;rY_E`C3$I?vL{tSL~N zH>iR{cW@~XX)wjHj+h<%)+iv}EfozU50keE@_V#`6|If){QP^ubG_oII&@vsd}~g< zD*c6l$?<-F+{g~65Xywfd+}h*=%!rX*+D^V0D$(mg(%Dc)8``CaWFmzg=PBv0kY}} zdkekGZ98~GS&bI|E0pS#B{kS501J~4mlT(o12zRVy4NH?ZI}8^q2CI;W&p0ADd2$7 zz#iEaJCnFm?Mq!Fq33*?p0|2ArK}o#{84%j$$we z*;lkx{M~7vA@n4S0jZnROXQ#?tcR#u`jZY-T21wK3#7vLKZiz`2x#7Fe|R|x|6_^k zPuKDn)=s2K?oI#`8yO30YYV3zOV`E1*u?RFC2+ju zW&X3?Zlf?t#)#kWtI}T{VLf23!>tT5TyOT=djsA?D81KI>sHMDw$SYs;0_8*OmeVxm3F>)poc5 z|E&5_WD+&RxLO6Z3_#t5YR^5U{&J>mV)IWL`@9@!3kR(zBrj7O0gMCwH;;Axp}y2E z<=g*zUv*KM)OzV#Z-3!OV)abV{Vw6&w}ST ze#`kf4=zXU`zd>uzx*_PE7^W7fZw3<>-3>q3>J4 z{`K?zzmq)wH2_8a-#&`8osog{e|(w$>Z_|xsNtBP{)0m#$12`iyRU34T8jN8poIpi zweia)R*Ww3y;+Dkuy0H{Q`*g(KvPevrF!d}(<3_S1hD5&0n_pg<`J#+qIr`wmO(V- z|DkjJ^09T}v$MGqwDaxx$nw|ht}IYM8&3b%%IY8)?Y;_>lzMWlzY5ZdNGG|#ARLrW zWnIhk2K(BE{tbG@%33FpLNNPU=g_gu@0;7<4(n|rr;Mn6Qzc=+!Q{Wum6jIa-FccC zQ>?bbC!mlKz|lj}Bvv%RU3sUROE0f?J>D(q8X)^$&W@Qj;M11Drh2H1cwEdnTc`y%z?z1pifFUlg;?j3 z^j&3|7vsgUam~C^4NFT?cx(b-2qDQXi8^HEX$tI(=?yHLo>R@rWLKo|$1fDzf0C`_Kf>Q7Q2vNUaWBh%qAoEnHL;!`@QF^(W~PQzqNr%tJ$kXbYm zw4x6yQOn_|Lu(mVmNJ$nc+8hkd4!$1lC_PA@$Tg5qO54z;8OSTyj+vx$U}eI^kgmb z5R}lebXkbjJbDU%%v=k#J#UddT5|(x_Kpf1J9$+aCyhW(>;{c`xr2WV$pJ1aR*8e? zFywUjY8+Gei^wVSJfmhqJJNS&f#dXp?n&YtQAl!+?BM zYPE3#b|dD!3xRIIoezN)#ZA1QD1r8eMCtuT2y>qxL8srw9kamL?&e4~po6&n`}7K;NaPbx z^t0>2R&u1DB7il*@viMuT`G!bB@7f(}e1d*b+2 zJ%0)vwP$*8@tqzZ?qhkNKVfb5PZHl@GLd=!^DT<=Ou|rX5;X_g$vYysOCxMPdXjVF z0(Uf$kGQ;{FuWpw;P)+~jqVBoUm0_30kTH>88rweFeuCZHp#Gd2XJ4ZmaC7zRzz4|Sb zc7>-z?m2v3v3+aOOIO*#Wbg2fi?SXJj!*|+FV}X&k zNTTHW^DmBK?jQeughY9PguQ2fO!5RwSn%~$Ki3D?u4T6nLxK8Rhr zr+o;!LlFeS2?rUCLU~}0ZZA^_JA7*|5}~9*WBfTYJ^!*lHVnkO07VsgOoLU92}FCP(fXsy zI#kiY0m-*GokwwofFPe5Qs)fSw(8I7Ej2t_D_6oxkZO^D^xHQWLH@RO*L8c$Wi$Db z6PhxfC0-InJb#jflVzQ3*A8>%d~Y=uEY(wQ@9($`{1hF}LgYA31)&}~_$~X`p^E9H z*kXsB(dH81{2iz*B|MM~a@s_h$v#$jrn-m{@Mme|x^emTuhJnde*OxD{2^~}##A<{ zpc^+HNa5aEXKyp^^Z}nK5GJg#zq}yZuRoK#^Yo3u)hnFJ-+!&>yn@GnjGFwA6x|eB zvc!x+m(BACms1%69xnEQ`zCdgxM$;%!a07&K?qdG@8^Spzo1|31|05%`m^c99hlc5 z)L^pXJkB_cioxQl-G1ItziH)Vf(#vFEYaJT(g_Nfo=w7O6m$mXS=G{xY0D?n+xmxW z4_(T(N6u4eBERO7UyuM$>FM)|eTp@8)2`>3RF2X+`%!&nhH@|Ksh~Uob#9i077iAVG%% zx~<~@#cLT(V1`cTGe7*Nw2xg}o?5A`^X_j7Th{_eSI9L!jZ3HeoiOgK)tla#t<=bj zOb)^x*D?DRSP)wd`xu;;eGJ=Aa{4#$?7krZjOg;;_lHIJX!BkZ^P|-F0uWJj&%(-Xv+#gE3k3-`+aROBznL%-CgP zgYA*&eO+Xro|QIcEvKnXWHHtzq(+T*KkE)D1{z6;+pw6LT&In zhrj}mFq_2+-(JUtr{!$?&zi}ZEi%H<+NRscy zZ6?3S2m||=?#@Q;l$BZNU|fyOu5#3oxs56Yu^RiL(`c>V@i7y(E`qV6+(H_jMv(&c zND^iv^p$pyTr`7d+RRME%Tmpjj85u-^s>a4GkJ~A&3_?MnlzcQh;i!9DCm+BV>n)f z)L_hQ-(8sq9x48EEOa1-(hR^vk7Tr^eYbZLY`z$ZUSCUrHpWODHPJsNG-M+w(%vC* zEUdBBijg)FE6{%mY^_rlC~ogU5Pa~%hM8XDlxFW^*}@$I zSQC(RWz@TM8*d-q>Gzt_aDp>&FcOoE{4y{jUrU!5Le2`Lnsl`_7AqvjmjEmqtC2l9 zqFxwUM3=Xzkc2_s)6xG))j1m*+-JLp$BS!KNL|`Wzm#yUH3Iu~z9@YNie{xK1pI$%`O9@@=%O+^7pu%V8BDo7zHj_(<8?9{5 z9XL%kH!HK*fcy75Zf~X*(N|55>p+f_<-01Fe-0(4fi^u?iAe^v41-ZSUHmYnP%$ox zq_l0(M8I_M3q|z$K{q%`T&x||cT*f-+WbLc;Y7t!8qUbJGezTJcvq@X50kzaCk>gK z<}vWCPHd^YyHXZNJ|i7e-5!X6XFwM!IBC z$g*@+4e8021=X;4*6KGA;aiqdYcFk-&%1S}4xyLTLlJj8Bf+QU-6fmkS`C(+? zySO?mBcn`jTG7`%69)OwcD7{kdup#(%|F1diW}z&Oz_MQ>e#nm4WJ!90r0}xL7bT} zK_YJ{A$%6!)G1u3Q$EUd=K`ZFJ;-Pk|f}9HC!V^tN_{(7l6ySRi3nTW6!F=3o3Zc5+#kHMi{0YOZEMK8sZRop9-%ju>%aE5;d0D zo7wJpF@W`L7c#k5Ln$i~_)Z{INH$j2iXO>Z=T&217U%}miDmQ_)HhJt@Q=9st$S2C z^GTyFF+~jld{BFX1@=3P&txPFrl-xF$@5j5!c3kz)fMo3VlW5Pu0nWY^s>?gbZIC5 zp0sAzxLTE+gw*4E#^HZY--L}eVH_I3DX9-wbeh7trch4%v~8%dWiETTXnh2$1g0I_ z=2ekoOJlwbZ7RAa!cSiG;hCbT_f-AyLNgBv_AGQZ<1%6tZtC0t|?ZJe<&;I@ZT zfkyXPNM+ySUTc+{j-Ajeh{=n$X3F|9$WnLB!M&!sWZbPkF6v29Hw_$zySe*x7 zDyD>2CnHMFitkZ@W8a(6-<7shiTkLyvAijOi52png-vS4PXXnriCXLIu5rfA;&_C~t+Xap#RDtpQRe_v1S?={$yP+Jm3 zAZv{6HZa$ov0s0Do%-@^`=v7IdmgyItKbjJk>C>O$(G}}4@>^W@g~4ZewN9a%pQsL zdYycqCUu-{6V_`9b=?RmYpR3#9~X!KLB`%R`$5iLZ;Ny^9{LCvt;)g9k)f#ba(MC| zHXLN0P$&rbMcwijqkdkXs3}XefGWdumy`~jrz*3Dau7f6-E*P4+~PL-J2y6|EjYXt zePo|s2tJ|E+98Cl@6N426b@=+s$TAeTSU#ChTU5&^;<1zxERKqiy;OhpxxywVl5rQ zm+(iX36pDo?031W@|4m2K{^z0A;r73Bz` z?`reQyi>_1J6P90-iV;BEVHJJjOa}aW{oP~HoBhq+}4;rS$HpRSF2UX-SNCBH=-Uo zC-q#|q6w&1MjX==B9@=?GJB-VZV8!<4bQM8_2T4i2qbQngbyaUN=DuS3RaFCu8SM$ ziA{B65*!bc3{ntPgST{71Zbbz5%yz*L}u_~3?>1K&u%)LcIfU~ZE{;$hf8mfdb?ie zC)azK2TZ;Us#B8zq!>eP zMiBnP3H~+1YzWkIsQrd!w(Om$@#194+ne@8NPUM`eg}!ZudsOFz`75W8A&l0Su*P{ z!~rrh`p=Ki2e*Ia7T0CZ-3y}UXk`T^GlId8LARgI4eQGd%x>Q~J$xsDz-}J5Qv~M@ z-e$N1b;vVukiZ;byCmWkNXH+c41-{S?=x+?m*SD=TQq0?CLAt@I^s6X5t&adzL1(~ zK5=5K_>x3tE#@T2(>(tkGl??9JpLX#Dc!wmLC~K-OT1R+{@tEBL>dzMT8zyAk;wU64#G1LF419f`)1fq+ZK;%;cJj%;nkyEk^ zxM3B7jTJ@89DP}yY~B1f@#mI=Q(C}ITk;YOX3^mJnFiy@FSaYAt&lhqj_3v8WhEFN z3?pc|z!dbfd;0oAIum#Qai#iuVRdm*6^z)$-gwnsktoXIq*Un&x0IcyfvY?TODQx1#BlId6=1TS$01FNPDnvH9ah}UQE|jj~=&w%fOl{PNltbE( zyg?GTSTa$LI`kR6wk^_36D$?_KHsA014)ip^sBR1!Czptwa?E4-M#~M2N57J?XKt< za;#nMl}Xwd0F>k5L7{5RL1R-D4ETHPt=MJFHi-HnKB|?7KL2@o08s^FFnH1Q zE;V>N)bDqw%}1r^+Kjhn-(XGvjF=UJk~hrGw53w9$pwzc!#LvwZ(g@{TlVBA{_OPL zErOM<%`Uy`YVq<~fDlcL2B3QQDEsp2rcdPlqHZNPOZNm(FlEIAIs4jqbY+sOWyG8A z($gV)qzh+4!}LfXjUKJ~(o7y5LST*4IC;QC$=@m^YvIx=U+u}Ve8h(WJ;F@6hK~Er z65q3S$?9R%`=ViaEZha2V9Y4SQXwKc#pbyF>bCwh(<%|GYLg{!=*6XG!OEz{Gpnon z7sz$k%EZ+zThKuIWD4kb7q(hxk%7!Ah;9|Z1h}0!Liy_h-*o8*X9oQJ70+nf8{*FF z0OXue$U%a!+>;bPf|M2>|>u<%Wh*ys8 zaMUBTZHbx#dsnb$+CLxBSc}XT0O0vnfnl`tQv`n4(9s1aWOyz$f^mgs7f@Q`i zrbhY95DAG!Oe$sl+9vo)pE%!Jiq64B)THIfD<3Wx%kzxM$z+u#RGZ_>r`pGoNk^$= ztc*jxxK+t$Miv$(bT*YHBvxyKn$!ApSJHPn+9nojQvg_M4w~0rxB*<6_1>5N4`c5b zooSSHi^jI?q+;7i#eQSkwpFoh+o{;LZJQN472S0AJ$IaQy89dV|MTbBWABBz=9<%& zRSFr-iJ^m#2L0wk(zU9h!Rulrk9W5&l9<4&NwQWG7_twC-y?Eu?X#b?$}>#|*mg93 za8J2?^*7mD8}8BgE2pZYL$It-eu5BeO%v68nIGbp2UfNUY<3_X&yN%0YLecs58**6 zV8h#+CGR`Dqz#$~9(yw4WH3`gA1&&x8Ut6syL z6`GF{aDhfziCS>Q-GKouyen;5RMYgOLA8$Dt?<8&EG%?e^DUi>!p}nHzagiLZset zOC{|%0QK}izf#~nV?a)9Sg-P2q&?5&b%vskL#h{g4{oj;KupZuS5XvFn4L0NpPpqp zviz7~e}rgSKUT0s*}skIG*=1lDq$Qgr&MK=QME~{Sl?69xv8|BRE=bm&jylA%G$?$ z{l+Co_S1^zS5sxEHnwA*jupmI_^r2#mQzzN`@)Y_3=PYIGIOWMeKk@tu4!BTe#+)2 zn6!ziy?Xny+pZViE%9Mdb1i6}voJIU&Oq?$NZFMTFy#;nax7({I=Bv1w#XZf`aP@0d>Sup-^_Qk>P|M>dZ7xV!F%5LX5O-{y-zYzyLsQ?{HYA9f-afq zhip(>M;UirVZmIbS_9vBJWjlr_w7@$FHhsj+q8zMH%X1iyBYSj-8X-b0(Z#l_C!TD z41nsVfJfG8<@(gGGiGwzuvga9#6DlGJi`%Y{(TV8-5&7vLyGNUCeYWdoTJ(k!amt0 zW`VwEj3tP#l^3Ibx<3R!$Bxr_IW|ayY9z#RRkEeyi1<_+K%uPjx!r2UF z0wYSF#sjd#E?Jw-?pS7(I=>pDUfn}7%{;18Gf6jjN2c!K?nt2pO#KTt@eYo`+2n2!TWAjuF5;1Y2^iizqCLOs>vWE#Wzgcm9lheq0s#3Y=@2`F7 z_NK`TEZ-pCJ37(WtXvKI_oJdFhQc8d$5OdPulHguUK31_X1R@{^*#_dmZN9z+O0*^ zT@yqUOzFttp$$|>fOt9*LP>k>!fsM;Mf-Xh(LH1Fz4!RNjm(iPTBDvzD7HoSQGS*S zeTppO)^|xq@7T_kB!SByBj?yV)y{`e0X?s)q~NAt<a|qf&2NA@srT z8U}cX434tH*LOU%@`h=&sxaOc(#X+EC!bvnQ z)mrVzsIWaUbhrTW7S{FfDAeQC=&dBw)mZXQVAbh*v0X*@1?Q%~BUA&~F;Xv_XBxi- zIG>$oks%deUn`FDdgSQt?MbjuMa!J9;|;x5`;>Pa1A8UtcMxU-(h}$)rVTt z1bdKifD`VMg5%c4Bm2?qalkz7x4`&@#-=Y^qk9JkD99id^^1aPNcW!K+1PvWJswbc zajYbE%N)kSdY(7~bi= zjO!ozQNLh*((Uplg68iEywn7I)pf5JRtDHLAlbZRDFUpWA+8uw_Fy9d)7Dt}Q(^v| zeh#9yCh)Rj3DVc7**JSizeo2`EMa2Rwvz;5ig0UT(LK`1&gV)llLIQckZ(P;hS9~Hmg(lONCjWzVlv;J^}g+alVdwm@@ zN9+dP2yA)zTQp@D!y@K1qDT9rR>Ap*FDD~%q1g<>aCibgX`=cY&RA`S;T7K3K<`<- zub3jHB@0lO`y`gQ2x)2z+P+d-Zpq(gTt`ePEVtVX8k!O`xLfX-R{^Y=39Q!R6vY3;w z*|9$n`sNYBAz-s1FUVr%qvQ90q0+m^XM9+GN0C_$5~so9&k`uA)gc+bVLvHzLufG`gG9D3=@jt-kPcejmT?w=%&=10 zFWt#OG+L8PBL>!zOknDKOa!Nnwl>^T78x!U=8sjVu5;#()a9L6WPt0IMTnY}Z z4TAo)ODr2Vb00%fNLmeiO(?=$i54E_2FljZoC-ICfj8q0MDyev3GTIW92%l@gaa@y z#Od<7ah$)}P9nQF-s0kxBsQpJ48)I5d1-9$R_QpomU77&YSM@$ORKaolk{0?We@tE(Xzy+ z^k`@?#;VQn#FO7%c4;x30Dm|Ke#b#@N~GX4@(4*NPsZ~qnlLt=@$!v2P|2sm`)b^1 zvA{m0esG$CRd)%fu(dc*=;1I$&0-G4w0cgt7?rZzLr#cl{NMm*6vgdK#)Dfc9*Rr%pY?AXVy;i~Azj=wSM#@s;nFwxmQ zeC+AvNmGnERv6hnmN}-mXwhL)?!EC@HjK^(1)!a_o5A5CkO%j08JqX8QwX@_yZa?s znc#5eqmvET9e_Rqoc?}Sg&E91x_#}-UN9W`Ab_$kvWf&U4Ws5Fk~FYhHSX~_z{`bM-IlLPAs+oXP4)_uKz-lrl$1egQ5c;a(CPWHLp-8cwj<*@ zo-Rq%zi)pB&2r^rd`8UNGke;I{j==Cf2?*!L4Tb2QmmeIqR1{$5=I72K^JL6N3z1A z(ktZf5P%mwX>rVIVfLml9;v#DFL!s?4Xl-{ln+!Fm~e9GT;WOr*!)H2fLUKgokqz$ zs`}hV>}pWIDx2Q}X=2E*b`D&HhFBoS3l{5+l^XtGjvRYlJPa@LD%Kv`->wSqck;|S zUa#lyarK-jYF<_%PRk(`8CZ^R833W!W-r{WW)+A1C_rC7S)~{)` zN_0jS@9Qi^JlBbNBN2Z>wKuGpwkXPqQYHN^RdI%IlYHeq|5NU!SfePA`xoN8RB1=z zgY|qxF;}_^^6cxMBvZthAAic>fPgf=$HxD?0s41k;_n9NA5;ZNTT{EAb~g4F)+UZ* ziZ0eBN+!<#nlnc$>&T-Dq470zn4HzmYJ!1*!+<=2YTSS(8zKV|Dc~tm%y(@pM!1bT zhAw{taz4=c|L!+H3&)B0JpFi4Q+|*Wf)OQU@S54ocDhREA=G>3_XS}L_5cM8y1-#8 zAR&?l?6GSPN?=uEC7a8L_Y0y>;h(8S;WFB59RGmJFgQzFbO_ED<%Pl1H3~akxxj2j zf9bEgD>yd8>IVn7+6dfm22zwVrE#qsZ3h^wSSGM8h-6Hub=5bi(ygU1P;cIGR3%qT zI9)BA3pdr%<6T8dVcF@$kW8%^%OBt0UW6jmE9a>9k3tJpLTFx zb3N{IRM`9N_hk}a^Hy-qJV^HAY8{=RCQNhaDRQQ$rz)IllgR=218!_Vh2B1Q-7~Bp z`VLWT#XVlpQnVWeoLcwM3xOnbiKMIYDr14>3=o$#%< zB`$3ftceHiIiz{Htoa#!5E`$CUg}w)9UP8@cWBAGpvY@Dzlppe;!q00AjLwac|6QH zf-|_@tkeNr&`zEY=CEUx4es%YpPB-6C5)Idd;!pM@d$;m z1I+M0oy&;uEG)CX*%Wo(Y@Ppp^S>=D|1XN^e{TKB6itj=934$;jZFS^|BF?nl}J^v z__pv*c{84sh+??QBq2wmA{h2Zs;`)hX8{ba8{ddlr3bUG1=vZ7M$hytOHg=IV;0O1=TXMGTBURU1I7HXK$b5$GhM4bF zR*+dtI+W42&6~WWgjRJM*@xI}>jJJ`;jKobQfbZjx(>aX8>XL`yvEj%VO_s*NS(2| z0aR6oWhV}Fk(x;1wfi6?q)nrOb-Rv)xp6Kn6F+K?c83^y3GDH9(S4W6jTm)WyWh}u zYnn8-0&|ruu!a*YI%ZlUvX*gm_!~V%M46lmzvZu3QpvQ9bzVX%N>EF)I_Zr^kz0JG zlhP)R5}cAOCQx~rwMr}jAS)_Y8|wFY^O_`*)mlTLCY6ID-GiXAuTAiPyynV> zLGhfad~I;hk)xT^4?#aF)L?R+>NL)=cRhsBG7#PEbriYy4K2qBU7^YKyC{fEXL$)# zd^?3@mIQ2fG`n+krrHQti0%Fj2o#C&o0wlhQCMLI2B6My1!+_c`-7&my{XfrsO zeGU9;Y1~S)%i-?p&F&E^0o5<+D1?d zb|?9UN%9tr^`Ka-h$cgwuuGkgvcL_qW{~Eu5jAMM(^yI60(;QM#K-cE#ggfgX>fbO z+FnzjjTz-Wr^l=O{ifc8@il+2KFo=SXQ0Y^hzdRMCqKY&ay6U(pjX-BV^K7C^D6A~?2L5whc98LMp&>Js> z5x0aSHWp&sLq@@-1S6Lrbp8l-EQb?R!!BqF(6~!3%6Vr@Qm-I~r&i?gky~8l{|ufa z$=wz`nTvOsFj@*hS`L}3j@DO?By0e(i(Ai0P*&Y{1(!=$MY${rWwq$XJhw?~a@ari zajwS8+kj)=92oPYKCRBH3HTHX12lJz{yH)49Y5`M8SGv($i>|!d&-}3IUu#Wj_vF?{^DTQ{Wj&GET$nlS zpOcBS{kw-=%WwPbBR@dJ0=q<3J~m>Y-6!M}0bJLJ(hdgvam#}y6K}%op~xsI(zxR) zj9>2Xj2~RcXj@I_-57c`T?!+HIkJmg60!ZS*qthqxYmP%WJV4d<$=fg9X5p4mQ7lL znW4A3y3b$x7#_=UM)*<{p_f|^h|?@|xt?_TAO=S*Lb@qEPf+Kxxe?LS);xWi#)fh) z8G)J~PVMQkPuwX6rqD1*&c?=r7ziFH1F*jjRT(DY=c*_D#Q6vKjb$RD0`ANgkZ6n| zBui)JWxq}C#|s#wHC&caPNLs~x?Uy)DmDs-c=9+{%Jw&davI1hMYCeyV#6C78tWv`DfZAJV6wB2J8ysfJ zNikO5$SIftc`22ja1QVQRtrvlcK8{i(h!~1YJ*r-uemA%LPZ?SB8wqkc!ph3cnwxd z^Hc&Yri#8^btWreQ`ylfXfx`%!P2$iq?^5{5WHdZMY{O_33>Gpr@dWc&8%ef1%1Pw zfc2xLA^IeA!!K3w)TE^^m_JwJAm+mWe&AQQM-zZ5EXCuNf%pOJiF&^R~< zehF!PKXvoqyWzbeUI*c=A!W~Aw`|xAoA%7gOrYj8Zrl2(3O2igEU>*Uxz+e>1uf%< z3e+x_H8FGFl3bD#L{;<$+!6PCU2fi{2apLPdt^NiuRP+X9<49oXUDxmg#;QWg1}#eXjCYJxE~vJ1JO&pfce|u ztG=E%T{`QWf?{eNbJ7JV#Xfa+j9)i!0mUz@bl{zMzC)KN-YKp#ckb0_ejzC~d;1)% ziysMp;Z#!!?i()%G4UM=A;~iO)O?gcS}e3uf@|o5dxR!(v@@hdsZt{wt#vW!Ca7Ss zVutMM99s^+sgxymIFA&d03IFQ#1im_ew)&bb^zqm@)$SuHaF}bhEUuGyw|^+%|SHm z+TJzEecn?!5Yz`#I@@t()oxx5IEsEkq7q%9)X)~K;Zhz;R_?v`aqGB>nAGbMV?fu5 zUyx|Kq3VILWjC?qhw_v;l~w(0C3d;;UsUlloH&1x zB%4UcHW0CxOXvWO$FFzVGrrlzN&@K>_r~3U&$jtF)L!k|M+*^4jhStj z2ewH)aT)GLS_*wBIwPu;W{AOSqR3CfEXrObOo~Z!DJ8+M5>V%$}qyW?Y zvJcFE#Ne7Z8ZtU?AfPqq|0xFl|E~I!9Sv-qESxRuZ2#YQoHX^__56dWZQapGODI}V z>@O%}6Iq+Li#Z&KB~vGi76APNlbcn#d82i!07(E<02Psd6U!(nT#O;jT$t&0cWF>y z{AF5Evx=`b|N71J*u#(Ie$v|S>-C$n%{UE?BshsEuunoJa*Da<4rBlq#)#z~LJa-` zEh{MxOAUU3^$w*-653@rDd$M-r6MS0vA(;&s>If$5qpHaYBDXz^B}}FV?kQl<4QqX zQ8-&jQ63m0t)C4?>-K7B9@K#9HyPdS{9}e9_t^noEM35KgtLG^N=C zdUu0ZLwpUMNB^`5dDP&O-4gGm6NOqW=4%kK4D^aQ78z@+hc-!IzgN7{604XFO%6LJbno|k-!Bh*a z3WlmdFO0FK74(c-PKH;2^$SrSeDr(u)D>6A71G8UozHs8L|p2^!qAKA`O46)@5d@} zI`vUWZ|EV;O$S(y_{|%bpFhGA65wexxFvNr6X8S3&P9$ z->uW!_e1*cg$&7mDr8iYfBs*ac#0dgC;&8_(2ZVBI&@LGA!)mDQ6AlW)FS8r3bLXM z!M9mVmfo?$xU+8~41#ymuY&4u9Kv@Xf$`Q7B&u2Nu{E<9Zm-L(Y5uq8+}s|Z&fc6D zGDk`4)6oN87{nV!aQIkfYeVUQ<`8`N4iK8ALd^yhuLaMyx;1myA}vrW>-0iFE>kTC z^k2$aYroN>ys2vW{4}%Qxl^n%FMHK~>#Y4C1*rUnc>*s8-j5fox_UH8(`dWXcb-r7 z9XaO~Vby{d$&tSHFyKhWqnZX7GN( z%a-T`&e)jcOnSuf#`fs-m>YFctLtjH-%VHDxwIdHF^;-u1_$Zyy}DmND9tHxRt3lW zV{mcCA#(Q91$}jWZ`L}KBGb*dx7{G?F`=p$n0~|Mj#7{bMAMqBHtNizx>!lHtyTVY zr;Y3APDcCtC1z&!QRx-)vv}NT?P@V@4IkT`{$$^AYs`f@GPW;&ku#CZ@u*+dfrGOO zxr#_EH@aAdw0=y-J~p-cXV%=_!TdQKxD*^c>e%iw>n0gNP7zD|9fwGdAdmQka@Hs5 zZxX4ugk-(CWvhagcye;GlhP)`ldu`AaM&vDCAZM_>*;dX9%YI<(D0hDT)J6T^J^WX zm9Kwp6F%K=CO>{}62|?H+YHSA=@R|#b@2Z?djCJcr)*U#dt5d2Pj;{3WL2vXSDUqn zdpS+xwV3sy7_AMDwQwaaUo{N17mw%Ly`LqUGGw{@3!x98*9@ z=t9+lJrG7c?;%=LMOiOajZajl1A#gBFBXEQ34x7}B?5!Y*vc2M=?czJ@wI0o>ZiTL zsyiwI{wdE`nwO~DQ!^Ej8!mMD-TNqa)xJcSZX%&e9_PF_5w9vzj8vi_vMM$&M^Em2 zt?=LZ`Bm|WyKEieN@A+Q8gI4yCF0^vrqrIj^$+2$ESXkGyVp#K7JM9**eGCsq-G7z z8V#C?9;{R7GE*C@EoaonPVFi3#hs4Bkf*Z42^O8ivR*!A*3Ajnl%NOJr~RY7aJlN$ z*C*3GE0hSCVz5wAr0`aga^%Fk98=Qe5;Vu6G-LTqozu#bB!SCJug?}jmds8uz)xh_ zL)2i?_bQLBgfRuX=XHL9Eb(n38v?hfelFCn^aPJlI&$| z#Hfgvg{lhbUVLi=la_RKtyUZNh!z>KH zfXuerYh8Q+Q%lfqlAN?e4}w#5lb4Tx&b-@xu?wCduG+{tHgPec+m=77f&8aif(I3gv=NR%{uh3He7PZ1G#%$z$ zkGVeOMoMuJvDOIYZJJqK5-){hdGw`TazT;(To|2;!N!Bi{RIg%l4UNk%xh#nHf7!mUnX1WFV%6sUc|qJ}<2ZBkk&nKZLQc6bmH@P# zQ$iaR%t27p7)S9CV)+5Rd?Bush=e?c%3ZIN4La1EmRNRFASBMNK)pNI@f9EUtTxg) zV|j(KAX?c6ejE)AH{P8Ip3n&8Pi{bNIX8H6d1@ykybLkpi4BeS;brOJrP=JE8-VHy zZ{tuePxF)9b*x9Y@SVVd-#_h-4=7+e^oMYaUUu+py}~D3v<>Heg>5k-mx5hU0!fzB zm|rCE7X-m;3z>y@Xr-R4W4bw!;#7W3Y3oT8jECeWANB`u#k+WdYrzCtl@oq4K&F5j z@sfl!mCoIqX)qT#Zb!WQ9W#MH43Yj;XUw8PBaU?BrsnX??(prJ>{4u#DJe#=7);{C z$MLi$9G*jAwI$qR8qw!m(zK+`H9?+oKTE-kD&jo2bAyJBGCq&;{unU7vfB|ZO{_=Y zwiubW>ikI}WnCL*hf@qcZjxnkc0c=bobIB0s<5h$@UAB~F9^2Gk!*WqF10_@T92OktMe9U|qO zK%M9(re$zcws4-DyM69WzRJrSF-REfw+bLIgeY=|C=+u5oO}dP4)T$^hVm|Y9YIa_ zl)HG)ZBE#(TLFe23ePC)N1%g~w&c-J%h|Y#wKUkOOcfw~D`!k-ZG3e}}_pG1dk;IXXOB(pX`-0_!o zyVIB&!i?J}Gt&BKZ!MvUK_hVSRh=%NYrWN_T)JC$&NtTKQx&D|T zBx*D@J>u<8+C?}H9&lSe1Pom@FSg4J!HfK@STmSnQ(l?ph|Z9-pr`o*g>Q%l%=F9A z0b*m2RGB+g2_h#i*ic25N#20zX5`D`6-+KMHCb z?$vQg-z43}VZlT2F53+?#+ZSW`vDlf#z4cDz8H8eF5P+Uc9Q#haI%66 ztSo0R9_5v>xcqWVDZ6KvL-U7X*#~HWDtBGPJ!lA3%a#cx;Wjn#L2P%b|RTe6r%+FVL_M)L2)jNr73qA388MkP#7!O)|`$Qn>zyrzXRO}d*rbFr1Cn|fQ#h+H z1E$HHTz&)yW-_IwaNvZaQFUF%jZe-{$HTtro8J;4qS_^dxlD^x1<-2?*w1@8u9&iE zeuM6HvJ#7gb6U_&50Q+C_)8-}Rf<0*(ze?n-n5Z0%2i=%L#R{Awqv@f8TFq~ijhmY z3wiq=N}0yF0q5qM08Qt)JQfj+&wz2L|5gJtL^K<&4!chErBnOS6qKs_dG+W+-IQ?OlIwry@+wf{C(=* zLyT1S%5ZvO4m!aRxJ)t=yrcuN=vox1N9ioD|~y2)HV9EvxSLB zTIjZ8>P_kZn*N;?)}$=i$Al$ug$|!EtaI*h#ZqP;!W5@$%{~nlT5!O^M0%{Kh7e=A zCV){ta>RFx&3fkHY>j}JZ-GPScGUTNdyi$wP0CcZij%#VB7x4qWv8+JlKV(>@Y!YH zuITgUIi@PdV1@v(*KkFM+Ln_)NtrGkw~L$Xp^Sx4LAl-VjcDe5mhqfD%stNbkQa{F zO?Lxzc+vNic4M2WqgAF=*3c8$Ib=lQ)LM82qK@2ekifcxD-R?SvC zEikdei+9cG{dO9Mt|dt4w$eGl>+0`z0+pTTT@92Kj& z!H8J$_qGYEj7}ukYrzQw8$v{U^?~}Hl#PM2PC1k>3OO7AGi-t55sGl3qE(Kmg;@KN zA+~-zV}w#a(cQIAJ<`cu&I66lHe8&|D}P;mnWvx-?)+3NCA$&Nbf#z-Snf&M%3t*3 zR#8T>ZC;F9?zmtO>IhisOcTfYB8` z-|j<;=?dv=i}w6xvllT;$H8*{)n`_Nq?dw7S=qtqsoyAPs~^LXaT0XB3nRt52fK3q zp(A~u%ze+&pMN(QL7nziW_cW}#6FZ5{Otz550=o+J+eXHmcE%5eF z2yk)a=eJ7?5D>w4w)pRvg780OivJV3Fp-;(0u@54iea+SHIMNXBx>XIltTg$f&zo9 zD&3@zWSL~X>Me3Z^v!@2AR;7xq9(D_YcKmPp1ZBL1GH(7mY-`NIEpvHo+8tlT?MP9 zg=&2!LqC>k%dRtWD1(f+9Oh@*(AX~zgEJCkUw$lV<5SzwTX_`Em?6`nNPXLPNLz7! zyq&CCQAB>w^ZfcX@Add_r(Vn_@RC=uM=`Wc$hpO;+5dQ5dN||_3#BID5Ze*(JWq_I zXkmbSLP5$!A*BL!nsm=4pR9eu7@e?ls3<%f8f7bBa2RrdqPsknKkda>hII~eXYqPcuBIa{WYGF8n``HF z`pesC`Z|ki=i`2f%)h#o$bjzKGn&yg!r0ZJ@ZPd3XvrL@HZwJv8I09_fzl9>Ahi}# z7UjDw%Ll6lSqHmFR2WZ|n!EZ5$?y!z*;`D)k9X*hz3Cjz88ono7e6Wj?tG6N1H(y? zC*F$+H*{Mf9j`nokv1h}J!?!E3x{na#%MHz+UIKIe3QqdI71|M04g~!UPQIu_8u1E z@jFZNgLg(-uwMcJtWcFZ2T$G7|MKh{m)S_wr|`pwQX|bdY;XK4TSH}#M;t73fycM*BlF(9t_~X%2cZ%moUo*$l#f+(1wu#x_D+c40)n`&{=5q zQhkY>bh}X?pgtgmFnhii$G37`;)|3>Gb6S4;`AL;+% z(ung#@C{k=;KOuvfVT(Y0Ka>dRq2lG7iUK6ZV-Gy`S#2k5K&rPZ)2E8wlSle5RW!E z>gO;g_G~}fqXds;R#y1jTuPBb#8rKmx7Um4Xu-%^9vfk1(Cq7^_s)A`T@aE1#g`|a z+AK&g^2j?E5gP0|evRtuC<``CZhgQZB{i+j&8M$TavA`RN%B#(gqVmB?AxM_))ZUE zxeV6|j2zC5FTEX_li4XNEQH{OfuWn=(G1_cA{Ey%>k)*F(SeZP*p^7r3}zyYXX==~ zgVwY!m<(>Wm^4xs*BfZkSH_r&ePZCV%e%HmW}p8m@pu&9D>PgGV_Z4b5a}Hy)#M3M zl_4{iYR^^t=47c~Myv(Fu?Dmjy=(R}m`)**Tig`4$-S(q>UVi{roXtG)s+R5HD186 zYq0G!j3g_8IcnspaL$x8s{IMH^^afp4+TP6Az%>^rzij!p_yeFq2JjB1I9Q6t_^=- zTP^Evd_jqSXxMtaz&@Q{(R%Y`bUYyplH5SW9;cgXjV4+>Z~i(Io}n9U$v56x>5{=@ zt+`t8PBfT9Pf?ac7Z^63DwQJESw5tynm?4>5m&HcTSFf&`1S#jT@H2#QzK{pynbej zNr*iwI9?!^&48QuU0Xn1F_}!J0)6H?HIw`vli;U1Ruic$xhIvu7;Kfn8BCKQj>=0s zvqE|1Vo~q|?b5}nfCp{LWM+d^XjC$YZAK^QNlss5T18b=jv_K5eOvfIvH_5mMsz(B;Z-%PC_mdoUZ$U?0vvS8XxK?S5bF z5#Ubg$LG0l2j@Md_DP?}ftTt_ING)JXa(+ zU1~Ojr1P9!M=uxrBHmXSgl`}1%rSDQL#1?*aOBK!1-XC^LFE*MwYIqN_4;vI)lGkO z8smI?GO{g}xOLK`4FX7ET*Vo@BHbyT=$*0eL#7W=)(0ySbPrE77(-7{(MaahET9f` z7FFWZj0j9&j!Y?diyyLT4P3b;-R`w> zNBv$B@>Be<(>8;%L$$cB_3RXM^jDNIW8!2_htn`u&hOSDVn6hf|7IY2uc?kKJ zQ;QlQVK(ZwxF7zvz~z5WHUI9^@}GEz|LEWTHGXSS+fYL_L;9-L(;sN}2cr`m3eXI; zht?H@#bBUhLmxr`6SC15MZrkia&8c^VtCTk(%Pu#TFq=`;D5xsr0QFCTIWCG`tbUz z&C`G@XwEAl{}y-6%ya){>dUfoaXi!G_W|Ea@t&6l8H!%j>jWcws)8h>hinr|c{&1A z6LV)7r}mQ<57q2?t7D}8z}ic=@7`T#xHdr1yo#}ZfD#cfykrt}i>Jhh5Eu%L{Uenm zCJ0U`gq*ZI52nkvbF^XVr&OOMCyXlbRBNJd*4;rPA;awei*M(}2#s&&c*n{+=fn#Y zc8xS8BZ39Aj&PoraOR@0!&Fo-NsLWeoh$T^*vzWBlp6xhZEJi2Q7}0gPS;th9PZj_ z{YB8RghCW)iP0dW%T!A3=ElVmUe}DoDW6eJt8u;{d}fKQ+i;U|#2mYumMbl*foN0Q zPfg+z8S_!*$678^7tQb@ zG{m-9_M+@Tlx@q(BdTjDI{C%C?Z6^pF)C^MR%!I0&^%i;>(8Pc7xKHX< zVQ%tZW3Dt8^UbF)h^lrhI{^7ik4xXY=7x%Wtqjv0CXSv{5F;dltZBwc00IpZgxeNGg zimj<~i@{=3WcbP&{EU0I!s1qH!d2nZ=FG*b%`Py&L~*mVf&XTntayuLp(%hJnyGw^isO%RC>M?< zzRSCzTIoo!a-`BbWyVKa!IE6k;!3l%)cw2iENo1e_ibJQ?CdQyny8#Tq3eGCHkhgycWn zhwj^vhj5Hyj{#RISa z+zT;mW0R2gK`;$RmU3f(U3S_*xvziAN@jAAe5S`J4|Js}nQaTNI@vnx#-^(^xE=*F zQtfez+Twf{35g9btJwu-Q3auw&4`xdjmBixC0D1u7iKCH$d+d#JUy0=#p|i^G+^a^ z)@Faxh58`sdxHC^M%Rk{U_`IxRTMy^d2EGj?&FJIU{t-h$?>a`)cV!!5IrLjK;7-Y&wjEc4d{q(_%TNN6A z>069)iKG6c&N6Rqfodji%;;h`07Zg`g2Es|Ng{&f@LGr?;ir4Vak4T<@q@et&%3ke zTOH_oYDq4&+`p8Qe?q5+vx3=39fW7Z`2`4E{FHoU@F{ zm*Bw9Qi#sdyq;yj!}R1i*TePX?HI!!Set3qU;B{ii!45XyhMIdgXv`OA+ioWYsA0L zT(CeW9D*Dt!JP6}B(%07Ez*`&kFLf>kE67^X^fXV`qw_z;TJ)-mHv)tC*d6|D{ z7P*hKfU1N%Jtrc**W7KylMGg?Zu|+fTe||KMLgHwVUC8RxYIp zk~|N0FRYO>YP?j*kSDlF@t^T9W$VRrT2j-;WMsXAx_+v4IEP+tJ@vp}sb~rm)`1?~ zw3QX?T{96-AGJ*}gY1g<`zy#^Pk5Jbe*}nZ=0;uz+2d#nb?Yk?m+F9xToB#ynATdoBS@&>fyhy( zZ@NY7|HxGT@t>~q|AMyv*N(=&?r||U^tT4!(#dA}q}TnOKV#f(ErJ)bBoq;d91)tZ zzrI8g5L4bM>3ss6jOjkDwW57rmu2NL#wJp#L!YX`k3J}M%redD=4KTuEgPGryzdAuV8_PJI{!TYS_#BT9~^Iwr|J353)h3Q>%P6Jms# z6F~yCTf6~m!%k~)X;)BB|lT(2t^gG-#ClH0G&ZzO`m>xcUwj* zooerld0H_K#0JhaB&Y#BEyl?`K5Qq%sm;xl*t0e%bSa8kzW-IGG(=Q~=s?X_+q^BP zk?4TrTNk|J@7tS+c9lLpy+KOqx&!tyO)K8azC7qmbzB{wkAhdL-$@;w231K%_TFZnxla>dh^n*&y+Sq{3dz(nVv`MGTFCE$>bcR%imMAp|_u?Qm zDtq#4M{r%6(it}1&J+vnk=&Xw_pT_8QFl_FnH7`wkSLBZ_lBsJ(HB{4yX0FfncEGN zD}X+tZK6HH#yL9=v^USjHA3@xw#*-T-Bqds{_TBR@aF?L=xe|(KgO<9r&`}z+R2%D z@~tnn5$ynIRV(D{J(3^6@eD9DVf-x*4Bp^1^$R7z;Wlx~F4Gks{lEm=Q&5ltc+MaJ zkI(P;TD4!K?rHxIXK(pcN7Qd?26uONm*DOe+-2kL?ivX0?(XjH1lYJc1mCy^cS!Tz z+h_ELKKG0s{h|JV8ntRw&EJ~ynZimF*W}`lJTGdgg>KbOgSQvFEEiksh`ddQ3iL+7^itq~?YDH0=??p=bI^m4XkR#V;lvz;k zVffq7Dz?&hBQgjU8dNrFG$bj60+!)xv$e8+5`i(HBcYYY{;9s3Dl|lJQ|J64)+h4g zfvzEIt)?q1V#BXT{teq)+2J~rqUC5jGs_dc#e0yn<~a>IcpKW#2m>vjOWQ@~*{INX7z$yb9KwSsei0DmNdm0JGUQWE_B3}^Otnna zrPM{?baj>oWH07y>9wWO8OI3E+-%7@^a^1a0=@6lf-FAu*(nsum%I{aaBbp z98t4exd=}BGf$$6gnnzG{OrVEp~RYGZXKE%IJswzF1oz*k$$RM;w)=P8%RAe;#exn zZW!)FV~R~i{u;ShpJA~2w8MxBb?vuD*Bfd??Cu)hAKDVjB_1Kxg|_mo-BlqDkd&e zsCs=O*}`Ybg0Qao%$iZQd8;@J8{`9XZTL7J9G>U)eUJ9c7{cgoD$2h4ncbvQ6zU7B z0TP_=!^?$>FF(>Aspl;*e8gt!Vo2DdJJ1&=s@-AU%hx5H>=MCA;#MCoR!R|a4OWyEIL>_rU^xx5o$N>&plDUflnIm-vX5A z1Q&P6eIiuV^=UB=I6CNY-Q2AM?U~coTXQ8mUV4nNgv}->l!&$HKf#1mZ{nZJq5=lv zsotBT0tWW!Ke7Hv!2qD;atD+phJWw>t9XXu`l_BgE%G*^=P%X?Kj6XO0n);k%O-ksc5*Z@qO>i0P5p(sd^YDWX=uK*r zGgWD$la@LC`{Y7Nfamn@h-0ohd$SuN{OJd?Ik0h4@0N;9ZKF5g(h~#~i0eh6Jyp0$ zCjB^b^-*vsjYASH9;|RX3TH{uOWdXE@yfj!Gr}Yq(Ht(Ns=<>4OTfTNwDi7Ij;jT5 z1FdXqSV)RGq^|1NCIoY6lu8da3=i|9>rj2fvQlerz#UVH#+Z~8;xp||5XY6hb=ZoVLlxpTY>{w+AN14msof_8Z!n+XD zl&fZ*nj{ngU@Ww<@rrdyOB+aEPTBpZUHd7C!D2x%oKJ=B;Fcqlm$5RmhOLgpv?NNF z6$#WLZ)=HdgD2O?N$4w!(s21+~Xe1)#-F zyj?W58#$}mrKS&RZ?;58&&8`t9Wv2ailnLnOfYxLFIAiHF7nAqmmkph$r#J3i>Bq? zriP*6t2YJ-#}dA|;z*JEXtftIyTC85j^}3nqN~Qy3Sz(Il?N%(7zj6jYh=_SG? z+}5T<#Lb-GsG5u6qd@2pVl~Va;B2yxIn34RP}#v}ZKG*#gpL`wUT6w*kTm#lR=^%_ zNOQ6xg>%usn#5)MNxN(lvzp`nv=zGAuaU*MPe_f^(3m zo-V0_9iGM(RIk1nHnZ}GwF*hL+sw9-?$`IDP!wW{A=q6UFLsDjdh)GK9m}JGS8cCI838W99Io*~9VGCl5pCazHs98}v>7 z(qt+@hVOJ!AA}$=uEW=v>?tEHcd{)gas-)ahkr0cIR!9zI#3z+oMI7P4$<|a`Dp?0 zWov`ENcWQ@6^BBbnVN>ti@v#;7;ebqBKJnGxp_9GDc1qrz5O%>$^bGq5QA}2nCp+p zAUImv39K~>{fo67n_wsJd_Ikkw=~F@P#-gG%+68CvRAfhVa6I#%kNc_dQOk~k8hs! zym-+$%B_@s6Q3CUM47ZmLjawbS?Bo7QXp9wn9R*jYpAo}&!iM(pquouG`~e^l23#k z5!%>2ei`tFq9JBw;S`ecHr_|r1E(u&#^KxQ6x7R9%ja+ma%!~D)J^O)Slsh7vTg5@ z1yd0HTp6x2`T1{kzN1f3CjUdTxg2*1y!jlA8r)0!Z1>mR1Yu3 zN_lu6tw~#AwyWzd=xgk(YwYyb_{i!)$ogvh)0IKcwr+_IB6IGdtURn^;UqvaJb6k! zDD_?<$IJA<8dme}^K4JPP#l*bU8&zB}OF z&d1c&sv$7NWQ6l9QzXrLx!7>i@SFhWkw6j=DJd(f$FcjBG|OTRsc9eu%sS83$>^J;d?#9v;$13s;eS5(V_|L^GpWZbN2km6C~B`Uy%WCzSe}p( zN!}T$$C2SZ53Sa=@YHuC3Kc;S(DGfzxG3~J-@b7ryhKL)ql?e?tHAPOhYrcd{m5S+ z(N9v_=RW;g8*?*z`uDQN8Ep-Ob1irF5B^&{RHQ$ckQ>Psg6j8OQM-PuH2g_B+s5Ue zZo(migZg&4crcU1v{w+e)xPam)Q+VwLcQ3 z7y@FDt1)a1#mSv9TTM8x6WG#VXahdS>(;l+IcTzLbS5G$aTq%YVU>pg#WmRULF$ee zr}{9`P1r3b3_VD0amXvu6I{{X(wFgY`<4y4UL6_CMf|(^dxNq9ANZL5pi*M(2oH>Y zVe@dKh+m16uOgdQQA4gAQ45Oz+H% z!!<+LKorq&INT)|3Tex7L1-!te-24|7Ql%w)_hM^g}xl-b~p+;reb+oKo}ADF`Tlm zvDx<+AH*DvDJmxjw2s94S0r+gRmZG1EPm=%5Ac}#fs>V6APaOM%t+lyu=7we0s z^(X~l7#wUKxaELxMnnV5)&4eRNVzfF#xsjN=uXJ+ z$w?gkw5EG3_px&*XF_f^{rKCd0EMdPUpUK~Ip+|(%o`--y6;4dHil+SDpK~% zZ@k|UPg_Tza^m;?Bw|6i3Nd%W86Fk_Ab2L%{|*1PDcw&ufpX+_z9;}fQ7to%$YZ<%9?vQd)TPq+(kp z850%?5~e0(lxM#vLD+P@&N=i@S3~}TP_@B2D^1Nc`VQgnL&3#G)Z~_dqjT;ACx&nL zDpV3iwMdcl_S>xLoG=VU1SrvokbW0Zec;KMxzqrqM*=k{fGinQGvI%>RqUwK2> zz`>IwXxO~Kj7?qill)bRE2q#ol{3HIar^(y46de$*4!JY>rdo#^Q z|C!=w+BCpFIpH&H{Z0x!4x?YYS9xa+W>WXE*GUtFL)nLWtcJ7|U^~IEX}UKzmd7up z*M_nrWM$+2)c5wBfCXDWr@ksN6y|-4=`sy)frpvW^guiF8fZ_yG3~G?TL{ znl}O$0x_5WVtudd_vvR@mwi(n#|S?P9ZzJm;uzJriUL;s;d0RQEfE5U<5dq++&ypd zKB9M@rwLxGM)nT*Oy(Lz4=hqWhEmHGMiyajL?JwhA{}BbH(b_;`xUjKXST+=|=dz zORAPFKLY2-3Q9Yi+NLXgN&o@oX%`61_iUpRyonAx&6nMmAH$CuyDr#s+&}1405J3D zp>9t6=SHTHO>=ZO8z?|2Mak^F-TdOTil`ZIa>lZCU$(A5^^Cnxp1SD3F%Lilq*iz6iFmC9!j;#TA!aN+Vu7YwXI^ z9Oc3vHRkVBBV_i_*>5my54EY*nur&tz&on;HD=@Fe;Qm9T3gQI*q|!=vxX_?bjo^W zkOtxG%_VW0qtrsofWzMXCnm>zGhTe`y5^$<ZXWC zPa)CFm#~h^q5fe^G4p+t?rG57x1foQm2K9ce3@{4ifp{3Yx2eFZ(#i;GbwAmtOJRn z-M=4KUXzJrN^C4&Ut6-E@rr$l=ik`D;uH*Qf0g^)V0=< zZ`X2@$YS=?GYp4OE$qxqQiglCDp8;Q$n{=72r4HI40Egc?xgG;A7SEjBS_Tzo!1t}2|CeaH{G&qQvD(-!FgnT@*F*}QL(zu2_2;;filiC z%5QjP@!{1OF-mMYVPkxC!VwRS)` z4AwdkIE4E;!3e||h8{c7^u%=UBK1J}N2d=O-mp!GrSGF|#saV531j)4zzxF7_g5RR z>qnQpAlg8&YmtVdy4Tb_5RM}-6`ruaBS)__{qTN=)`Qw_n0kFyShU~M9j-rC5vEU?yYHwYfuY;p&f?`t~pk>IOHU|#fw z*znfbWYJ*|;p`F#gh;hJfq5D%L6jnvW#9AS8J-qJFM!jD6_Y5|ElQi1kFEfK`{CI= z!(%tRAzxDfV(P^)J~4G}kO1+HK~k60egs_m-*;8tsq`ZM_QyUm3q<`jr$u@( zY*H|fRLo+aT!%@(xC_*bf8g1kS`aqjdk+)*AmKxxjSVQb+7sdndE4>O`Pykg-Gtli z1El54s`9ErXN`{oqN;)W$|wROr!gu%Am_fCgmUOKI; zR&cH?WuBZ3Vq}6Jj)cg61IvWGnwIGvMDjoY!ZWA<9|8!;8X$BsM2{dM(d zDr;WH=_52RoxKY0SJ-+I-Tg}^>IVzFMscftgPpiG&4~QsdOzdPs|W>3y<>9iTF%A& zE0LH-G4A?)feFrx2IbURklmVK6rTVxFb*d!>{ly7RfNUzXNCsWOQQKPh7Fbv28tn$ zk`>|R7D4J`KB^7V*5DL7bB6xbiUB%+28m3-uh21^QA&e1BqG{FGhHzj_2s-R-`b1kL^*&qpr+!7pVw_1{ir=Tmm3Uos5_+b`;( zLCWNC2{?4jaR@UL=>(9mbT#6*C2sE2kT+?gkY?nA3KphvFnn57V-`RiRut2&yLzMP zyREKgw}aurR#mmTEy+gfa^BrEC0c+)aK~RjNntij9@*eJHO8jvtPhj65C@R z4JrQi9T&wnXDxcv`#}Tgjl*v`jwYvJUxr%na7YZ%%4;1Cr|)Wr-AfZ#fYFJ&H|>hw z2a*7LWIvQK5S#@f2=t5r!H{5xa7V~!EQ~_Jfr^0ZB#a-|O<`I&UuR;9DZ3iPedECP zoM*1jg}~o~w)h5~Cd^?M&$fBLfk4k(p19wQ`;MINxfrR>zSN(=M2>4Wg4iEr!KeW{ zktDm{>iw-ob$ecZApINadXI?wH5a{daTqlWRUc<73DB`Byl~3s4T<|4`zaxb`#bzX4#g=5F&W z$NPF*d~QdO!Uvjva_G*Ur@*@q!oNu2>uW;+zd@Ay9|j+h;Y!*^mProNLQcnE6 zf-#~@+8N-*aIgm>u>e|J1KXj!LMyY_--!_l;B{eElzFgH=(fS25;9<+_#MF{%Dbot zN^Kkz#f@@M$3FPiq_nK|t5vyH%aDj0oqAfyMI4N88!yH^Zl0(x&8Xcub6)N|=<&!l zC_7jKWK>d3pAZpBt{dt~`KoW}!u48KCZd3Y3fkv@{iafFpO;l?aH_}yA7wG|A zjb7+bOz$kNVaj4$Q^t9>N+S+Zr0`ID<&kL}jWIfI0<`FoI+{+0?HPphrXXv4rwnDqQ-%vcCYW2X*Dj&e_mUaZ#Oovt`Q>!A)d`5xtRb zlvxhZP7j=lo?(a6L)&n3!8ILEeF85c8mSUrIQ-Ir*niVl*da?M-%L49bTH!~j^ar` zhpfb|;u1wlGAeWnVUz0@fiEf{$FG}0!LNV8(xaVN!k=&}Y;QyC>O z#Bi{UOW#>kT=myNmO{}r6|A}%5W<;rrcQ~DIeN!QPC438V^*rqi^ruczxE*7>KO8e zb_-?KkHqN#r;6sG2sa7-7y3=ICbvS<>^Oo@xq_pBBVI}vPaASw99~4XM;_$>9y>QE zpnGGTSv#6cOdu%R)jg5s7OF~-ozzW*wCr?{3ErJmAK<<@3Dg&ZpW<*-On}H>OOrI+ z8jvVx_ci4pT$M;<7BGP}6jZ}$9>U}EFe;~>S(0p|Ma%GDi%V5UDay^_k;7>o{^NH> zsGlRJ70LU~;pz?==2A#GE0TX66Qu4l#qa26bWvJQccb2X9==zvp%l&O(3b);)Siva18YXrY%5D>CXHaT-BUNHGqy z(5p8^=qrh&>Z-tafb^X{gZAOrtlekm2;WW!zw9s^g%G$vMH1k+ZAjVk7f57A8R3SC z3879q-BZ25%;0x;=1lZzDyPAxXt%p$H4%MGL;Uw$R#09>i36V*ZdeX|-b#iC_ne$F z4dFL+mYXwPXpj{)1IK((v}U6!PP%JI&7Oux&B`#oK`qu-Nzq_1ID46Yfx75)wz^{E z2xo?qDjq8zL^f=7W;<=W^-=ortjRBEX0@HRmYO z5GR&^J9&c7{EKgw#FqVHQhKT85#Fq%S!$}rh+n8qVr9>w1+vm|l+D?()8|Kw;*^Eh zj{MHLEQ)T(p+T&-wE-lusz-~djgUgm#t(KIt&t%g&6JrFb5vVA4#>Zzf&kYADqe4# zGEo6%+tN4YwXF(le?h&cp%jFC0x*gG{)gog`_YSO69;+TKQ@|(d(VQ;6@gU8I$d&U-#nZQk~!}Io{?zh;w{v$kYjyLw8+b>qaSc1vg9iGQ>0XU8DLR$LR>SSoR<&gP%9c`2>tTgXSU z>>)bzV?q(lvse7`(JK%2j@;!yu!AMO`2Ov*zdVq~jY2S6!lX7tL(-R~!a3%BXeX_4 z6i#176$`}zS)*5E+ZP{ZDGq1N9wNn9|7@o?%^1h1=FEuPv{BmaL|CVfC(J7n()av2 z2@y(3(#NP7lcxc6S_KMi1>$W*x^-e=&`!~M!Tbk&cIoGh;s$~GO-R0xPcko(0!;No zcenI0W3e5nSIzUi9uOQ{vKgEk_u?Z#P7YHQnC=dN74 zS&_~S-k5hS73J*1@mroSR(ozYY!wgKD^oN3avEFQP&)@#&fIDHx+tCTilYgPYqMp( z*BrA6QGP>F=)Czya0}wW8si+5Z1dXrtuC7L6QO4TZHL~jl|$!V==f3hrB9yQNdact z2bP(O@FVACzBjj|yCc{rTX);o$;;cd_;tRgNDa5_>MpKqnvJltbwaU&s-B;s%(HDs zEfX|m@|h#eGIRn#Nn8s98pFZ%;>)lzwt?JNP7!v0!3wGB?k4t^)&j|UmJ zie6D+&W{c~(|5e<7+#Bd2kTED{-J{ux{CU19l6?kl7Y?-s{k<9I3wmi+u4SEF>GmC zT!=d?6YPEJs5h|mixseP%PcdK`RSrm8O8TY));5RQx?;UCIWxlNPqj>2i=X=s@cWw z<)j2k;kiZt2PwOZZ-2-)gU=KS{+oAbLM(0>g+6|!_ zdCcsM(l+kf_+vY~e$syJd;7k-w{YCzCsHSZa0&{D=!IoF`QsUIH9~WXMs`>{NJWCN zcu35ubcMw|SuT-Ji0XT=xM%-T!$Stcq{(YGo;0g1d&tdrcuOYNDqvKZ2*adsn_yl_ z*eG#`CRgwGXW{#AbG)?CdCQ}f?~8`7H%dOLw5C{>99fp>FUX*zrrThEs-`olyZKi{ zZ7JRRK$IiJdr6c-NZ2Bq{UzibuH>CA=hkv8QMjD)9@%07gGcT&sN+P-MCUWOA?P2O zr^X*JM(avi;sI4f+<4_UfnU(=wLZT$EIMOlurSLV+U-&FD!;eQoPE4ZJ}#EsJjml? zM1?z_KI>|zVf}ii0(qyS@A-};|6SDmDdPA*b~I)Y z*EI!7$b8t3s!_xmP;&vO%W=EiRtpCF>qI@L5w8)3D+&OYNJXl2DX7*vs1yhSh@h6E zNpOoYQbtHZIzx-*$e_*^BtIGJ;_o3|3r{46Ymb`KmsK=dZN|MV`aP+L8pqpaR={gO zZ-jwaWoE5aT4*7a&Q0zWM#0NYXdsw57nbA{!yhKK5G#nAdTP4B6wFWw9wiXFI+xw< z>1jl<9RdY3;_fu4uq)}8s_z=qH5MyjMjCRZO}m}R+j{n_J7Ss&H7_{AqQcq8(i$2C zvFtR(G-=gh9>uI(*!osk1d&{!*fGlsP=0PFvMQ_$Dr7AsP$NhuBb-WNFGMfxA-bdW zPM9p5p{G<+m1q!QSNSYdfTdTNUsoRjD&GP1S*Ysig=(#&H9Cpv49>wik_(V3k1t!Idk8dTGlHAi#8huldloeUD|O zOsDVNUFp}^I+p#5o6Sd~dNTQ`Z?{No(~1?bJFemGc1^@Yapzl6e{}=oD@T&s;Bgz# zNUB*6{&cOg68rS1pWB88b_U}Yxr=Bdi~|Pj?1ojjUFuR~&XO9T_V)3C z_84l@N7MJ>h$82(t<*;$f5RDTL2)zNj?ZOo}+E)FE>lcJMPFJ7rzeQr=33A%!#Q z%|eF}2oB*Ihhc+OETw9po(hLi)(3M!El<$fnZrBaC)D3+-|NOMoct<#vC6kl@hv8o zB~6efN>t|=nMx%wHm8lJ)FR#W9KfGf5pGWLu9Z%3OzTh1bYF2>y{HaM^T+*l8~$mU z5WH;tEK~K#cc_d;5iC`BcG@#H$HJ~|pio`sZ9!bYIX7-0N<2i!HEOh5E9%DOh-8fbkS9EIx&gD18L7(mBmTN~P}0 zQpP#1W}lX5apP(u0*0z5CM_P6vFYZcqp0co5@Kg7zIYeIXlxK+?ky)1H+)Nsxs2u9 zQnaMDdV~3z$8DuGe|foHlWb?X+7CN9iyAuLIp!(cGB-^_lAvE4c&4v1-u)~J!D13I z#;08icxtF;?2N#zN+a*V?*#|=7Nx(O-$Ghq78g$S0|25%b2F^F#=s;J>!CIxv6s_#V6CEQCms9q^jVMP~A9NA9luBYyhcUKmX+cB~ zOQYcWHGZ3|``SNLOPvM%E6gUIF?)aNweN+cmI{)qLxZZ!m0&e+B#%bX2VOmo?RpiKtvfs}i(4t~C1R z-ra{X;PDUX5b!U{&_O4z zM!!is+4Jl&XdI&Z#$ z+p$aAeUGLOO8WNC%Wo}~r_mO3%t+gvWb>4eZ+FKo|+-fOu$nBY&g#cIpt|NO^nC(*R%27>Ty*&+|)~4 zJo7qki}LHHL75BZLV#Zw(l6{TxchVEO*_sep?kuZg)_&3hBQUtRhey8$TsL2;bjN( z=9m$Ec)mg@@L8qadoIqC#OR(8zayG0_C{vfLa@q}o+-9RzQl5NLyoq=Ci;s3{`yGO zg*5%^85PX=E5QLKH}nHQ#cWdC5#oQt`WUI?r0f?}yvKIC$Ii0{KNC@XuoeC(tMC)n zTVte)d#czqAWB<2?T)V4cJlX5fH#$Al6Op^1-(bTqEo>hu&o z1x*fS2N(tQvf#MO+t&ca}uY* zyyg+g)=zYib3n&%PSqU*o!-ctb^Ri_inzK8e+Q`!s4YU>M-4#F+j7Ie9n$109%^04 zFX%=qlpzU3diY-?bv91<7^p84p#A^I)TH?D=Dh#!ytsXgDEuG`s^q_=bt~sW7^ixI z;ICk0NyQw-5Z6#jOJITrXkO3j8wwSdTVX--%hVhD-%a}tE~s0BfsNe@8Un*D$PI`;ACPMwA3-E5I^I@9~IDf)(HOdO@VYoKPdUS zrR%Tj|2*9OZ;KQDyW#f#^I1t%*LTGDfhm}*?R#S(BPP8`ImAgqw}xzvAw&pI2Zab0 z?x)@wJru6Y{kXKX^e1(Ni(aEtGxZh4YcDXoO4TrGNj6qg;2Of~07gTw85xchO_uRx zo1fisM$q-|RNv>{LxyjQfF`GJG#I%3GfHRugS-b! zQ@cG}`POSt7|qnoaQ8ljm9h+osfH@leW(p>Bj6tMPa1%V?$|IJSo!ae#?#tJRdtK^ zD=CZb^PNXr8ksj+{aRYO2EA2-kxXIH;Bb!2h$~mL+?c46V2cbexhj4ucfHh{2kgE_ zOxVrsP%&c4r4ye}vs!YstyoxTTd91OKDJezshSo|@;SSk8%ul!pPHl8%xW?;*iLMJ zwq#E2c5fKjm^y9G(tIdchAykG#8)f3{io?T#b@i$n)5S~-jtbq9=b-^@cUj1$7?dZ ziB0neOAD|xmvYKW<1Z4fQm9*5!x*@r6I*W3r0imBTp=;Iga(`mXcD-bm!-f~<@MTG z!wIMz)@e<)N0=Db#z<{VR7ktKZQ5H1i}#`1;#zx}s_0YxUNl;QC;QUcFLAa#pF9et z{vGT`$uY6+M3sCf80mUy?3esK@0NLV?jpMT?E7=mnnIVoiRgj3@`g4k(LesI_Jmhy zx%zz;IE%eI^4l26?$yxHXeSh4v-V6)qBNUvN=8X69LTwrt@Iu_Fb^Q`@ZtH)-Wd7x zGvO($zTqD!ezBU9B1vD4$>dq0Bs*C-^W3VnI5tif=qp7{*7$Gqd6U(zd>k08c z)02>AF4poN?@LKYF)ul=&q?ugQrreAynK^e82+g(Dycc2053d_@1M5Q{KVUIZ-fq< zuT6MgGaN!KF1{ZV)tY;X~sq1NMJ@H|hSn4e7rEGyes#pk)2u zKYOw2Dvs!)sGrzYbjR8W*bFwdjktj;#LGAsG8hY1VnJ6=WH4_d}1 zw)?^HLhAcUY%@elxFQ>J4tT&QsP@c!bGP?c6HftHw!8xM}zUilg={BGa=z5B!1I`UlE1el|Cd=DyMW zAhPhpCB3~W4qI092z!IZptuk^4`>)s&^~qV)GdmyaHGekf4FG(z0;vulaLByV~y3B zXp*{afFp5;0;9WOk2br6beI^%0;;;@GX2WLKOPLxLP7S5$jyG|SV-K)M=>n+AId~R zcMEo^%1>rPS7E~3LO@0_NcbQU8{8df!?{E0N0oedl}oDHZF>dC&)qy;N!P;RiwAl5 zS~OZE?C^_BZhNG$-rJEcOrZ-4Ze0Q*QJo$Yij*?+L{{=tfn0K);Qj$Mv9Y}6C%EQ1 zuV~3V-h4bPhjg+&CFIO_l7DguJr&fp-YLc!p2ffb# z6tf$44XUoG5Qkir0$ti%a-pnBLZHGR?1~e^5TgUe$ceC1`Z|otLhFy`cj*5t#n7JL ze>uLgTU`JDvs?eQ6#sA4q2=v|`GECLv1yz!TXak|0u(`jZrt4M9Jq&tiUgNpg+3=i zHBT(Z1{a*2%flZHXnK;3)>@yJbLzx;FxdF5FoN)5oz)0f!WyQ!}9lup6^phVRopcg(xGq4?zurym zP#NQf15P{mO~fksD#z94SspE_^cxv$b8>YPpEVN7vxwtNo@eiGO8 zLln7-we2Y16u?-*lcIPxK%-2if80L)B8Z>rH}O;B+DSUxaM>%SNA9@Eh#J)pDBP2Q zaxl$BTh>LC8(_89rPv@h1|lL@mj-2yboy+{1A1RaB6=kQxyMmshoA>@+succ$4c<+ zElQNi{mfU6kE|$(mHbKLE$%Z|dpTDe+kS*$PRX)S+fm?C2O_fb#RdX~6aig9$u7U^ zvV5$t&4EX?KJ~pWt)`a;WR~Z^n@u%7_iVz}&J^%0Nu^VI3X8RBtduubuu5UW!0JC2 zi<0eVi~Q)p+3wX0O}w&EmY0tPKgYPHaO3N)l{AFweo-Q-zgyc!M*n+IBNZUa_kcv5#Aw`> zHZh9M4U-&j{v%a-8dsjhTQW+WtRVVR^o}NY9-lyVt>i3Gbi9@p4VC0XDa1kEVewDf znxS%&zbty2LbUVx3s3YyXBs3sOhn_K@B=)Gj2w3TD{CD}KEcFo13}_?-7dGvAdSzS zmu*{E=lr0SKhnyd$JVIA_}1)$pFEOwvhU z6;Wsi%)hpTYQ7U)E+{q}{*r*{4Vo71V>N{4#ufo+`34DxTmO-S5>FMCTJ7>+6=j^* zi%c{R_Z?PV+QSTAve2;Uj?}fGp=Tr{=YqN~!}{%YTB4?YzCA*tb1Xe|Bv$D0?b&H_ z1xAB#>6-78{x+P0aAb$$ok+=gEh?JxU0hi|2hOA(?_2>ew1~`IZn*kmPd7)bUO)^K zbroRK(0`@lXQ0&__T&0H(!Y@aj(08ezeobL{rQ1C<4xqi+D4(DZ($+5g#oc0XtS~} zQ5K6$=;CdTFavjZ60_X2&`X3^TRCIYzL07TQGl@CweLtJOLUnX&6gl9wxN-&FG_t? zzL+f5!Gyr4dbAI}f4e=k4E)h^Ia^ZkR7ATxHg$Ml4zi5+_myyMH@ErxWr1u3kD~2+ zCUupQXuadewSqsE_XIAS9$9I%PrO}Xf4Ua#a}X%ROHm}~{R7F8)d#==y_m1Le>1`N z6z5);pS_j4S#-MIN)w(@OH!A&R8z+NqYjOP7q7zEVX>a|9q}sV}i> zw{@C+vnMHPW=xU(JFKrMG4gA@2dw5=S%bb6cf9>Af>#$$-u9Dh~&CQOjf z!KF^k;Sr67e{_2MY@?}ElzK) zn_k$h%{w;5zu$vKJPnNe0#N9bfWzFoUHv>!LGi{%kWt;ebo+6YhsO$c;e9Fw7m(NU3tL=1Zh!deRoqO;UIfP<4k7^)Gr1$`yuJOA)ZXH zgb2%x2sM0J9Z`;U5IVo_Og@-R9r*Au=}iZuSk5I=tKSIk!nYVvtt`ww+}EV`Sl)0s z?uRbL*+wdbs4|}^6De_*3)ISapCLo0?m07#E@&$b;6H5CI^tp zwMkp#r(8f)^ zGTNYod@9j~Ta8hLERd&g9Z>|bv|-E`=Y&ndUL8W-!Gn8I8TUr%X&v_u1V&bOxbf>V zfbIyp)QVyz1_pjsFp2q&k%bV8ZYdIytjBl7g|X%|kVF&cYt%u|*1E((2kisc@DXDN zeq*pFb$`=7A4SDgAlQsB?J$@HI*QOaNbov{K{-fKIf!z46k&Ix4%Py~HctA94t^(R zHfG~F<8UGx$-#ewZaRMxhl|b0S1~+8{VRhNI$+8}Qrc4uQVY@Gr>b@rhMUXCTL+;)QC-a+##v97p3jpWCk=kRjIHiyjmj~p@_{}kWouU z8zGf;G1H!9Ke5&(2HsT#vXe_1$0O+PPJ+f9G}fueUDw42daW*;$oT`i9M-#CNHnqb zgTkb=PQIy!{dL1%0t`lYKw90LsblA;3<<-ldE?79)7fa80$U2=$PoF{mRKX`gWD5p z89URzOx%)rf{Z4)_X>U+DUWUW)87dHMqd-!2js!sftx;&o1+ZQ;_(cfa>t0vCjyu5 z(G>?L<&(A6cnnIngY9tZ?|Og&H>d>1#y0-3uP9BNeKU8+cSGXxB|t=hf8QG4sn&{z zDpO|D;Bv;J>}|69vmCHJnjruPAG-WOQE_M~7~q!s9ka5AG%VZUo@IfEacs!0tnqYJ zY`w<|9xS!#r2RjUc5GatML|fFn1yk`mfU%rgz<;6NGtU2fO^J3ZCR!+>2noqCFkM1OACaJH2RGTS*=?JLFq?1qQXl?0G&ms zH|Tx)f8qGm#nrad;lF*$!up>y)Bgw=_}~28|58k$iE?s45zNrpdn|%t`=7!()w@Ml ztR0$=wM>{r%sO38-1Z|JR5Kz;UDsNb2v9g*1ym_sZCmBqkT49sZi}SkBu*{CC`>RGV-z4YfL>G2TARcHn3o>_!j4+|WYCY%nrP z*u7r8dM;SNo=1PFr6C;_Eb}bx3iXlaR^Z7n$4r}_(ybTn!r2W;!4?XXC(-i$zzbn7 zf)1yy4ep}^aFto}Zz`t3O9A1bH@Uz(!$BLfZ(x+)=~hHXy&gn2HX92fCR0j-<-ia* zFc4nQw?NNf^s~5O-_lq0@;U`9rG>5())p+D98G1R(*bYdUj-|s1vqO7LAqkKqUce{ zu+UF={8!3K+HalO1-g-Z+TyP#5EoeMW*(3yAZ#X;9#$Q~;!18xgR-&9ch1C>m=pe_ z#R_cwqP%`Km*Tu1qLU_)2r8LFrBVhs{$T$R8D=ido|a$CMzb%W@qgC4T>q2a{VzZS z<$n#Qlq|H(ja~k?=J;wE(;`^K`ka}UW{-iHqH-z1wi_+0>~Cz$1;Bx0nxdie>fwvW zka=8yA(@E8m|2IwDQpaNcGWI+>$`jJ zMLKqiF%1HFTg;qy{K8S!TXKq&Nj6pmrbM;Gu`n7av6}(>q=KiTwUJzVW~wq)8*z}u zI2o;5*yvZc2{dZ4VuajIwKx4;)4nWbg)&If9{4qVW7 zdbF7iF|8?DaBy4lJ|=0Lm?!|{%Vz;K&%k)>~3sB^X3KFmV(k1UW@&@9TvOU(v{C? zfsXrp`o=4aUG&>r*F=7+{ZH3FA%y$gv4lCUDX`bH9>#v}ed-x+yXEWUG~L$axd~VC;`hUJ$I@6YE zORMPX>Ca33iv_B@T~x+gqn++d!7KDN4(!GygroG7bOn;tw91BpC)WoxoQLod9*poV zZX=AyNAPJsuzKN(eQKO*Bv*?eiQn^u7H)1W3jZ(Oz5=SMu4|X>?k)jI=?-b>7HK%Z z0S;Y<6r>xZL6J@g1q76m4(XBx6-7k4RRr!nsIT$A>i3QR-is~{W9VkhHP_5%&b62A zbv8+=#k<3f_nX9xRQy}s-9>&ZY`tCDJ4~dK+#M|=e0Q#1|GhY>pyyreJMW(8g||$K z(;H%x)+g7KM3f*O$?42zE=*CEEoe@;@osRL5NEOR%WG{iC1W%ww3JQF7tXb&*e0zd zKpU*AV=@On;qPgzt+|>j2{%re?agYBHR+8zynVE-iDGh7G^vP^?pb5(%F^>R`>2_j z6r=4TEp&cIhxAKt5$FvxoZNZdI45OCanfv!A|i|CpFdRS8(ihQ%<1CY)aQ^_7Cki2 zG}JRqczz0XTb-WKpxq-p=*G z**dmjk3CojwnD2#b&>|5@rKT=KU@g@ME(r@9)ma>cEaV{J~F#EmZizJ3zR&U;mNPX zY;;J^Zf+(WcqKB;K}lK7UYn%QFyTkC2I+I-VLmsDx*yR$n$}H+El@t{_Zb|V?#h`j zu*KG?-$QdJ($Lo*cT+=;W&tx~c ziuAEJ_t`mK$d4Z{#?;!h9N~1l#@`e?`aJ87xBXCrY^?u@nNs?08yf>pYDGX^EZ3ES zNn_^)IUSYLrJ^Lp~i_uLvHof;Y^hCn%mT>)`g-8@`F) z?&#;$1tV|B7Z%4NO2ncP4o*i9GgTUw-PrFhB764kCVj1nA75{E*lRL9;e=Os*LbPk zXog?sN)x{d{D}mogF{#t8*aSaLdJ#bbO#!kK(O~>TMUu01w@O$bX!;1gwNLfb42| zB|64UNp&E-``%6YH!Ihx>CA|^o=taM|JdlQ@>KfrdS`N~+*KuXvSqoe2QDi5=&1AO zaH%v(8i6!nG;d|Vwei;pO-l9xZ)OsFLg6{}F0-hN!Jw0R{Zw{HjPlbsiR?D$;pa%Q zPiQx=Ov)!;tcZEreinSXK*m`RHG~5 zE}op+J&`SZu=w6uqdmQ+RDf#yz2a1$vwqQCUsK^;xBckZMYaD%Hl9%#fc%=S4S0xZ(W7_8dx+L#5ou5u?@aJdy~U9%il7n>;FROOpkdmOMy zYb!cYxNiKc#({87_3A;$@vL8t|FEe|)}!OPfRkN~ErglS$GQi;Rk$Zb?~<1R3~QN3 zh=|JLwe&$bnWk%B9K!+Wva5(BeRr}pR-;yA9zzdJ+A?slV&ZZsQE#E}R(L$26V|1T z@StSv7)4j*V(uccM8c9Hl2nUHL`)vm9>x?tH^D167z-7Z`HC!zgC-V8F)1-p)R8Hm z>^^1NZ*uc`*DzRjGE6>My-=Ee*p^kD%^f>|fiZNn^TY{zpj-CHf{#Lg(El=d=j@Zb zh^E)oTF4I?uvfwG_N+Gx}~d0^bRXbMmDeRHXjR!QC5%PzLAmw(mS*HP6^J}6^_SN8y(e8c$|8) zyEb@-3lCU`%}8$QK4wt!zpM}ovbc=>UT%SLAtRU=^Y(PQ^4zNB6oGYC3A8oK0c<|j zE~e3KsmDPPqgsEci1!pZ2ImbPG1pG=8xb*gm8~;DM;q zrrm|%?%v9sq&xE1W*zAQ;&Bgcy~!%I#S6@zi(k#Nos4`pcI3?{V5k3VVJM;SWA2&N zLM_8AKSmmLjk-}adU-$!>4M?ISLMQ7-N@KxozviW8v&#$Jz2asiYcXP(`anl@hbc{ zw(N-=?3+5>kNL%Klj=5?zMB6KAD+Gw9G+e@6C*)ElenCJ?_H9i&{3(kd}sNS!dC*S zK-U)l8ue0AJm{C7E>wK2hP>3RAtgP#kQMQ1FMf9Ch2}s+bsbe4l9n=+L|=_6f^au8E**)#>&EKvFDk_h~95!a^Xm(^ciF0QbwT6 z^h_a<2qpS)TFpgklnd7fDm7U?=bW|MT543gMDdp9`SBg*Y7T`XeL(`HM>hPeExro- zC*U9&>zixi@$KQ@$0>tqVhElu#(5t!GJ+nZ9RUFA+tO00c^8?TdH4)B|^w>*|g`#Y7+vj{N+3ht39JjdiC9s{V ztSOk<=O8I4{_&6$WdC7E3abAD$cKQG5WLXL_g5pgFMUY8Ws$tc#m`P#p!N}|33*iQ zLyOGIT$Y#7f(|3WO)4&7RJ|eF9qU<&ojN*x&9ko5lJkj*1*Hmi9|T+Xa(*z%N*yMz zU}5NsCP|-UKfR)m_GW`^{%F>-YJAOWD8Es@vA%FMuY+CrB3jA217Eh% zbc7J(&XpnRGK5mt9ae{d=z$*04NE&QDON8 zFU4oO#cm-N)t<_o@_2da>FUe&leMLHMmaHMHW!Z0?!56iS*^S@CH^4%<>edY&z@7H zM5AhPB7C@qmM`rfrRgA-JQJE_!AC=EtVpHqTeo z)s$XxVoRjdAEY+G;U?#}lItWpK1{tO`b4#%BkUrQ-KQTaPDXAXC5|Az+2`5wNw|rV zFmn0XD&9wNRms~4BL#2v$v#d#TSea!QI+g`!zUxDk*JY;Gd^Kt;tij&~5t zrifrBLj1MhIOoo_Cu1MnS#*R)Kk%`fFy^g)NbgaP%Cb|U$h@DX&8c>YZY|F+O@Z^d zTiFVv9%)bUd3tz11C(fiHL9`Ol*9ELg%&h>lUygX67uJPBr!||!#4IVvZk*=0C z_bWhh%><*~PkmE6eorrLqTe~0!D!#)N!a!MINPEP=rZ_8w|q*>jVkTteuSr?5ncAS zggQPF+I_biYk*4l2hodY3agNJEgC7;Itm+K*DQ+w)l>3Yd z3?+r|=3H9XI1nk>urZJf152*1vxsb4`TO1+E_ccD3b1;(BSOkl->L%~Ogq^ANOn~! z>;vNaE?NWoTNah4cj}JlbNbDyWIv}$$r#g*h73`ya4CjerKFX4-g=Q;kG{#;+y(B6 zSi$*IJnAX3M7f{Jg_<$6}Ly+!-(PnZPUDYQ5LEidYo7EG)Z0T9%PK1aVPOTIaxBvI>Nj zvAa;~CdYK`pu2Cg-L2ma-f@4rKjiT6{Itgiu8dxH!}U_Eg3y+9G9|`Q<16V$F%=}N zhDEl?n7E4R{@QYdwl}KH%J7cX?~2PV!CHt`T-HAEU`9K1%afjAi6h z$+(o_^AO>9SwDz`M-3#M0&=hQ$w*-k;Z1a6e+;T7tcj{l zjN*Q03Bj7>#v9Ff`8jSBgr4b=tVc1|h`jsf*`0>uf@1EyZR+cbpfHfqQK77$h!V6^ zmLs-Gzk#JmsmcRBHf+4ZZ8hfZ7sXeup}(AhuffbaO|@*LeVfUOfSlC>S0fU?Nm@aN zwjPV^@&ohDp}2MRxf=HxitSR6f*91#>K?%eqf}*u!-|~SaaZzGq%EJ-Npza)!=$Lv z+yeF+9R%1BySd?U!uj-pxkQK*Q=pb`0*6seHhBpOe%r-jOqatTTrMio&+>H$L4uO34whCRlTN&N`%zcj?y7L=(h2V1((tS&X41PuV5_NI zx>^||VxnOow(+b)^V!8N`hyjqNyCCC#P*fRR=u)d9cRVLw&LX{f3<#`a5L|6 zP9B+QMUfVMT+K__r&hSLACsh5P4141xDX6&UCL48FAEOgX!9fPPc(mtQIpM($k{qz zPHHRPZk>cPZmv-v4owRNngVrdtWvnUU-Bx`d6SD*oe@w4ai-^@+}t3z_mD$wSDEVw zOE@z;QzAxO5E0ieUXQ(+iP|2qW)0T``E&ZKyJ3D10r&SEaLSSEo;AeTW^Vq@k!NvB z7R0$^`V}-OVnT&)Vck2biY1rLJ|T1bP(Mt9tZ+RmbNn@bHajTL5dMfwU|HZzRSb*y z!_JWh`AIENcz(138;+AT_NAAavRh(IHY7GcwE4*KUJAsc*H)wg*DC4=bv?k%<< zoe(8&xQl{L5IDjh`q?{8hduMs$?3t?zBqU9i2d`^yzJ|QQQ<|I;MaNan{?cTID}+F z2k+z|98d@NdzK!z+nyp>nzeU7Wljr_=zX&OMQ8&E?-cpvRYjSnQNaFZ3BCJ|6aQRX!FVXqMC1j(iL)u$Fvt&Hx7jFVU?r3mu zBsxusKtlS@7YXo_vzrZ%VtRNt#i${sz z(9qD}h<=%l`EQS^fuL@{HRn)wcWZNN^P^pCkogfd@NE|x8wX@=ZhrEj4Gta$3u{Cw zBQKuwS#(Iq7=2{`A}MOJEXfNJx{`YZ9z89?wIE07GJ44z=hFs2BSx6?jw4J`OFK0V}Be{(t^&gq8r}cWaJmq zSJLSw!Cn9kyXpP=^uKNcBk-^Pz71ceR|EMtdw75Wt^f>yam5pg1u}OFSDI(!+ue$ZR$>`S14B7h8=`simE?a%9ztYxLMHG5xeR{hdMHzr3V4Sh0 zQf^QJCf56jG~)ku%VcfcAnqQHpdXmy8IJ~I&Zi6Jh#H`%a&K^v7<~-AeLE5UV(JMp zrE9Pf4~#S4x$^7O|9Y|aPn+Uw`Qx5=dS1xL*J(c=;` z7y4iK{$IOAe-wIYCl8Pl@W&0}`Tte|{@wcj>wR?>^htX-fSf!amOt44Up4yo;`7hL z3LrOUn4SBoSvX#R_@H}TSbxn6%|1ClKW{()Ov?7K2|;^X+dDk4M?_T6Gx}j$oXB)5 zBE;n)@@IkG2I1xn;<8o7iS+spIPy`t%A>2`ci(rM2YRc$@{?+=cd0VIA*}y^3yVXD z6&RerUl5yxW|U{t)tiF{mU4SajRjM6o)dkJybu^eS!vkVx(CpGX%U5+r2RR#>; z)5K68aoObYJmMQ3-W1+*8yoZBP!t_j(hNi#+KbJ9Jw}f+3~c-rpnUp$^MB>f?@iA? z{E>xiz0Y^m|HdGcq~Z7gm<=j}*&uU(Nwk*((Zf#%^erT3W_hNYdbR+u^gxTY16-IJ z8ebYb5Td>x(b5L^kOqj!gID?)?4+8@&?xa9Uipk0IZgBw zwaXq8bpRR`vht~;%`F)i6To-`jD4AQw-{gy*a5$=-0p3l_qv^hRI{1@FWpkTUDd(^ zU_1pz9x$resuu18qX8I2VFGkZ&?X5fnoF{*`?ow%m=&dXQr&_?UgjcRa7}|<;^k|A zYf3+H?N^ogy_){RH61`_9Kb&EBN{9rAgZ=qo26>6qmneAYx#_~(j1>H)h@NH8BCN8 zoxK=JEG$Z-5)`3BMSb(~)rhb7Nnj5bvQ^H?_jo)|9E&GU5Y6vAOTZ*14m9ekSuk!`PFDsJ%vr)Mk0`BJJ9r#OS^aLOD7~=yraox@Oqmku!~GTwGR9$|Np^G z%7EP*p;jQK@vDjmu4FyCFMNWurAG;D@r892iTJx-Z8ag0 zDYmxghQa*N!mJEvhB$6JxYCOvNSxBL^0v}1scVg&-WH-dUg4AA66%*@-mAtV3`ssD z%|YksLC^~ppm|>7X4;H&$UJ>`MM-crOX65rb?e!Yj!%uhE@HHdKw(?>fS;}@@>}-D z+Hon=y71J3dE44*YgG_x!SeRE{4>ocMx*8`)?s!l==IhQv@0_QbTd&L20j!@WTd{KLQzSF9? zL3!S1o}r=zV_k8~aI2!NG1&us>p`1uGWQ6I<7&u_TE&F?{LU-{`EHHUr6vUQ-t~IAE!qpz`|1fW-xDYv>|n#DUC4u zaC375I2$ZTZVtKD4*T6d&;G02{s*&bgMIAnK%NkLrcuBKxl;A+($04W6~4K1wJyd@ z>&knP8CeJfjOxgXT3Z>0=r&d=F=E^WUXjuv$m{|a6;>CC%=ENxfY(&~-pNpDs%DL$p$Uzugf zR`Ab1(iJo&UD5T5cb7mnbdG1fY@0?qjBPw#0bYVkSf#Y6Qfj>}9dn+0qMYflU$6jw zcRNOqGI!|lI0-J(WRlV~&TE}4&*hBb#-|wP6hcXoY%}raJXHr8tABijEXW0HrU!Pjf(4Y;=AJk}RCf`@ zy5eA7Nb4yquK}d>)<PpLQ0WZ=O^{8eu5*($Zo+CVt)00|Z`&6cl6S;R zmxXyTVEnIqzqGHj8`zz5(q1uH3$ACkVB$)L1A5RH0wQ7z!lJzH+l(+zdV8PQDSZlj z`5=q-j<@wX+R|FDm^wQUpz;b~C<@`$$PJu3B#J2OA<^>hI?#$_jQnWkBfM50pEor7 zU2PWY#=uXvxvI%Pbb_HGchiIHR9k;Py|;U8ck3OljB(68(t(^a#W(9zTs)`X2FmyO zoooE2%O{jiJ!Y^_UU9N{l3}|pX}j}TohpgEmDT)cCg8C#!r)OgnxV`YB0DCk$A;n;oA4Df8mQ*TPT~%qrAcJ8fxnX-DF64f_Yi-I+JJO z`o@QAZY|U$192Ac-{G8IC(yZR>);2mkKRWdt#+y**{Y8{2tMvsuUk|du&$vcfp z>~CVPky6nWtqs+-lp>C8}OVN@En)D z{y`yk;;Crg8lUXyO}4&?Vb8p*O>MFHRL}Z#M~6d42eo$fcb-)kjg+bphKTN?r*KBs z0ymWcD+flVHf`2-A02+2UBaqrIe8Eq{0iTe+ZZ)2d}vfZV{?LIe$}8p%HYu$i>iq7 zWA2_ivC4?Gva5j@9(J}51(7zV<7MRy1!JaAX6v45-U;6$Co$&M@t zzH1OOKnq&~t6?6L^#mQ&D_~X=Ur0G%CSMmDbTp?(19w0o#sn|OYkLg3 zDU9WNJhr+oMc}sR(yh%m^3)-$Ldls+X`)@FGZQ54q z`(rBy=#4i&%Miz+nj<{a&i*>(S?5o&RAve$0+ptj0Q2UvAn0O~A9fL_QB=nY&DBX2g1tmo4 zLk<~h4P1}GPS1r-&*E^=ZRhYSpVSgMb8t)!)no)D>+L1$*Cp#SP3y%>>ruFjR7xot zX~(5-Lt-?qRiXM4S*>H#NMKe$QD=M+9sJ?zgYfHxE;(#7Bx|yaW5p?`j><7o-^F<3 z5B$Y>G!#A&maw)@6byLca=j_|?d-XT_EKf0?8=T|;GH#?--$YWc0F&`~L`ST{t4fJ4cGYpKC9G3Tp5Bg$ECXvPCg_KqBNsEXh zj8u{;ud4)43N2cYVr!o-V4HkK$BcQ#YBh*VpON8P=35$jN8Q9ts!yO7W z2t_=|f_ZJ$L^I6@MtyB0eB9eysn!GJGiAylRRXDRL6XGv55~ngGy@%p%#D!sg(Hs_ z&Vn`--#xYOCh#M0coEIS06&w6>`5gXQHbnGBHQZDx50qX^hSSK6r*WHpTQrk$%dOL z4(B%3QHnx@4eEvfvY%I*q;?e-SK5cCA@^xGw3Zo3Lw*lFep`vGEfi}1J%)EZ zLi+*YYaBrZLimS#I`a$+9erN{pzE@#H(?<%4Eg*X0R0-m{~jFrHnBX&-2?0{*b?3<=8VXuo*RNPkYvqaJ{8}C%_s3oK5jq zS%=rDoIk=DF_rX%4Dknq(&Z=dY^?^jMJWoX*}JaXy{u4k>4&;HDRZgTNX+SaoqfyLF3R<>PxY5IPsbQ0 zUkY;aCd)5sOwbHs<>o`?3XnD-7H9%#xf1Tx*{#LhS*@B}SDkWAMIcdzQEM?#E93@T5n%qfd4uN}(BjnjGgnN;hdid>XeXomZ2|;sf3JakX z7!&V5XIyC^-*Q{hu)i7P-p@>1*^t4`bz)nY1KGU1ThA-pE77#&)^RBE0IU1S-Y`d{ zS5gy}k1+jmdlsvmu+YeTVI0ZzssW7Y_G71$i$ruEsm5p*&_X!GA4TX_;|qgy{~fyj zCPFG+AUlu)7y?6Vzk&CMK(%5Q#|tQ^n45pRs9E?9BLa1l)?rl{Y1P+EC$)Z1L3KVY7_Ky3+q_aZfZ`S}Y$m8h_4 zhE31Y&Y++*bTq!H7_ojuB_7e{Ca8i!^s`qw_i-bSTP(37kNI99Mjp4yqV~C4sj|TB zkzJ&*ud$ef3;;^)|48lMHSh+=!2$9^r3c3gNRGat`@U*OUx=)hkqQ2qy=#lrO8!rv z{Z}?I0A&4n-=tk2Ab>;QFPRvQCpy5Ph@^Hpcsc+AK5PwwM+iI!M*%kN>Ot2;`04q1 zFCPs3Bs4hZwzcD(?iE6VK&pisTX4q4EIbb0Zo=(;&VCBFi!f{5r^q9MvhM~kQ!IS{ z9>B1oegm>ua*21mdtj#R=CVx6oHc8O7uWsn4NTl)K+BD%UVqt>PNGIrmg=HG7) z6z{!RU}<5Y`lY_G%nwm&ZH z?=qwSv4dQ!%X1&&TS~u=0ZZxezSInTKf-gjKe?5*(}PGrfQ2)XELzBzL1lV&3x2s} zdk}6{@@xcdkBVAcB2fHVi4D7y`0-m(y6hY9sFABLu(a36W;WoL!-RrX7&6rZy?5C) z0==Wu#OX{wg%Q)4T3=F(*UG<_nV6M`yewMmrV!w%AQ)M2(fMWkDl8=tSlrV;F7Wrc z(>KXdfI5M!p&pR$z8MGoNBu;`{Gy-x*Z$E@WE=l0f7j2y3ymho0R;VFUbKty_!qV| zsv}*51blv%7`wiP1c^j8 zzZ+{6XLmQy4^`3Kqc3RdS0C2{Q)0l!^~inoaRdahI9#3-a6Vt`$;XTbny|KopKH~> zlJWN~Qini)AmRvSPQLnC07KK5L0~33n!Xe9VeHDzDek(+y~cTdm;7{ z2Y!{%zgq}pXIm$C4`-+E=KTl_1^)`n?`(X7!9`TfgF&~Rg#`Q0&Ba26gm%{K_?|D0 z?;z~GC!X97Z1$ZmRiVqCCX}S6RzSJ%j4B?y8Oi`aFj?1DO};)oE*d zQk&8n-hG!DyL6qGOAy|OcrO}Xrf+Zi5;cPQVnVJ0^uTEPo(cU*&+kF%ZPySY+Q~|n zDkkX3$|gw5-j_{KkUbcWeR>||KHPFVf;;?CGCn-&j<-wSpq+p(sIbv?D3)jO7@=Hp z1$zG4%c4X^uBnS}%pdHs?@ySvH(&#HY2Hxo=c{hqqhA(-YAfqDxhXda9;6%?2W$Ch zryN)tr=ZbrpOSMUI&pVGxS54A#`rU;q1>-Y%{i*MnUWvsDHmI~DHp4VC|l>7-(%u_ zq{Zzn&mDu$Js{7`j?Z1rWj3<8$k7T5#Uk;noiO_GdBM$+TNi3*fWD_53*<;|{+J{E-AG77E$x9;4lB-a zB}GaQP-DHrXcwzjol7p^y@RJ67Ffz^${4a7ZloD{q`AZ3i{FLZY_%aj9`iE1CxksT z%A7TrnWT(CA=umklaql(x0D$k`85KD-M;wUPSUf_GE2uH4~<9B=NdneNKfzVu2j67 zU0^_yncvUd*^9cxMYD$|2zJi0lsPr zfvnHy2X&UnY{{iJ@~ucLvWE_IaxOs}w#yEZ3hNBSt#x0?3H19)u~Xyb_RFZJh^qss zx?PVgw)9>9*eQxaf3hO~xstld^3tPB9NpDM^5;-$1?Y+G>2xhT?GS!}|Iv83MJ<=< z+zzqhn@}SSW%!i!nW(!4FR4i|gcl_q=BHsinVt5TQ*z?X`<)y>Zv*<#3sP7HYd|$Yt+JjVZ$lnX!M$2^fFFOF)8z91=p*y zqnODP47HCZK)QONX?%-8{n!(G#{4=NY1{b*!w~tk52RY}l>*eGTkR#S)o!b+56%~zz#bp%;U9Warme>9VS zH&hBBdyuoW^A9F+_a}#Y`{9=)OI8esHK-A19{^e4*TS!i8D0)IF#XSso4;D>zq3de zWD7L3ey0H4_27GRB;fP8B;kPoNCO>hF|VNWYjEsI6Yv}c3jU0j{W|yGmwyf9XaNDc zT}%!H92bb;j|J~I0rOzj^AtE-5(x>EFRr{`#hCSfhCIJc{r6?7f$X4eKQR6X2C{tX zm-UrK{1R)8(=qqxpC6x4qN9HeC78&P`C+y8KePSsHcZjk$=Lzw@B^yy|1Qw^l{Aya{+&m3iO@hZw2Ome77=MhWUb-O>vciYV6lON&e%|M}Oa#zsI6Lk=oe|_6?AV z|IcC8-*-(D;$aDbxP3{XaA3LI(JnFp{6$~e;J5hHQ5=xkTUiZDr2hWQ5xoywQBb~i zSbFhS#B6af@2nmp{@*ckgITS76@ zdkFi@uwIzo&;56(U&a|~1A;htLL3}mxeD0)AE;lwU8)094(Uk*(4A6sdJzsw?4kgI zLR-(Nh}gIB84fTcq%9`A(sH3irn9fY67bwx)L1bSRx_Rz0E*THBMcQy{cYbpEr3YN zKN9+P4c7&^fxLd`rExumWi=0WPE+7^d5^accJ~4R*azbn=!OgkTwyy7TzUUAWQ79woC7{Zy?|E8 zr$H;sl6R4p)zT~BcC96o5O&`Ve1_X4kwhBcOotz+yor_sa2m$=X<@Kn8Nl@QKQbQ1 zpg%*QDiGKa2}jUZud=&)@ZEm=vvLTm60|-jLGk|l9N7{D_3AnbH8n~Ep$dnU71cXlrDpKs*c&O!W=P zKmMAN{=Ql(?PmFNFY~XD{ys_j`lu=(qCUX8jVye?PE2Dwz)PyA!gtq;=!C_T+LbiB z=o1-aQbNYnBJA#_X!CivxVYfmO<}BG2AWP^zRa!6mDQ34zAA$+zRoM2v*JpAsS=QF8IDPGO9W`8` z@jA8BW37T@&dDbOSk>D}tjHebP3EjC6pE6dlC;v}yHXVvFV=t1wMcTTeP zfz+^U+x zULsw|FFac9SfWmeNy-Q7u=}k99-lZwya1~2Er*gC&R1=gV-Y9RPhCcNq z%5~!d8p8ISW7H<3kY2~DMYS8wg|&9hQ^~r{&j~Lds=hZjFI@aJO61#Aw+VQNgEM@los1oa7_oc=nH`aL+K30u7S z2V>$6vLTKTe%$>xpn0DeCz`kW%Ob~5%})p#X(!F2WYIl!Lzq6(%qR(LY>-h8mxI!! z51MM)9)wg;;;Ss6m}`YI5x~z#gxp8>@UHF5UVgXZ5Yf^Fau(DVMLF@Xj55Y5Zm90k zAUaxQApFR2NH}zbx0+F9v3pNmUmitorJz2a39)>CjKHE3wL&SV&Pmg&`ZSn=JXFoH zde*$d=$UgG1xD*(`aUhpXue$*kpJIQ-=!VFZV<~a$JxG|N&7Wg`-2{Tdlm|I^KdrP zh5)CHz8}ECLcxcpV-Wx6@YMzYNa2aW;@U%p_v)CKJ-*$v@OmVJhk|)*dL*ic^@);F z(qDpXHPxY17?%0-nY3RG%IQNp=Uz&Rx=VF8!zR$%aa+1x%%eEi$KOnkWz9XqQxB;tlNH;o zuCtksj*pteI(T7uXG=KaI11e=r}MEF6Wx-RRu${Hy!4ibRWrI9`4<=~=F|eZ39t`l z4t{S6ejjaqXP-NeBY1!X#&{GFU=5XCzMx6GS|m0ie4sm=YMfw6cK$9K1qFjL69q*u zk<$(%92nwPYW^YAPyV?Uhx3`NDwa7Z&pjaPfQ__TIFd{gMPr=CnmQpto3vmU6Tf|J?lSh z(SI-DY5>Cd<6%(O16Uo>6N#6cjOa{=TdM8s{QUMdJWweusVwuVt}-tZ8(6gfx9fW) zLNOw}u2;ZyH9e~XMEkbbIXq0j_u&BnXMyYVN=x#Cy1bt`F{R;i6mm zIEqfUB#&LS5O*cv&Y{r5s6g*y&bH{&m!l3LtQk%f43&jv(kE$Ao2u>i@65D2tyFy{YFTm1~b%}wD zzLe4FVbt?sH2Nq8{D}sqn#vRwibTexC_5W1Mia$GkqJc?_Pn(7UVm>dnt;_dpKM&4 zbUb!4H@AHxSx0a%!5*yc2kD+6YS<)Rt<`Rv}Gx`bW_QcNl{%_naDkT+N9U+V%d`i))|4e z0%oY$2PbgXwXfTnDv+3yIRREj!FS2(#+O>#E03C6%{(Ksh%J zQl4@w$wC$|GgWEw4+bzZmBLSV+s>F1U9%!$dzlk=!=&fJE;Dze+14VN-BnWA(Z#N3 zNKSjXM((cE`*?Naw0nnIUN>0pue1! zp$(c~OG7KKG9W%0k?uLb;jM3z?jfME;&^s#(IEQvTn$+A{cx&+T&5odl9M#;q_hN^!75- z%)wls5{6o&^2kww3O0oDs8NDJn(*flpw&)p8|tM;t|(JoW2bf$X|`{x)*<>G;D|-u zc2VctP7}h4`M3bwIPO-;sY{@!C7c<$PJ&C+Ris$Oak-t8_=2LbIJELJGu#`Q$RrfO zr@B>L2Y4L$=25fK`nt@?2Rf4)(aFyWLs{QnVKM@-CReSf+p&{h29@8d4Xyoz>QIR> zuPMJ+q;_1IIBe_~d3&P!<$lRS)56Tw>=TT$i{_sUD_Oi10IH-x{*%G~eQy1a!3R0n zL!8W%fTLg@fYDd!)FcagmC3I?ChdYh7t9d+a+x4FWYn18JP{XNM4=z^Uy;v55k)})Pl|E zl&qtklD^6@NDUe9R51twO7u5K&X!)&e!6(qKpoOnq#|I{-uz_Pezo=tfa&}9%=X*< zr~+B-cQ6^<1!n7UTwwKLyo)v{Aewm*0P7_fak#OBXz>7M_x+Tq9%S6%d44K1TFq@) zVKd1KxA)%Qqqmf}`Vu-F4VN=++AU6+N;M|ep5Baet z77VBOazGwf)KwB#5nMx1$kYuunSY!9vqNA3XXGC;-mnI-AKkJ3^d*7Z_NZ z14;75`vYJUxE{K|^P03HMbd5{q*#3If`Kvl1}tQ>sUL6yit@(@p$6+tdr!IfEbrf% z^6BY_Z8$4RgpWLa*x9=f`z%Q7j5=YpZ7Kkz>ov<8#N7{5mGHYrWg|h}7V92T;!*XI zcp6Te`s#Up)R86idc7UNW3T+mP$Q3JRS^5WA|pZ@leWpgS{r}j_OFid_ps_W`H=&A zxH&^Sn8wv$C#+C+&P}U?SxD>9Ih{A9lyIXqeVW5Yxwlu^m_>wz^+h%e_Uc(tf!r=b zk(qQxBbb zbX19vS$cL4oaI#I-%GWq+Sx1esVG)hUDLOrDj|&-P<}5QH^ZI#6u5gJQQ*@|=G3&S zp{x0f)S7=?sCNIg9?IKUcFUNu4^yJ;b68WuidhY0s`}|FMA2RoXel2`X9$d`-)9|@ zxvv%sRh~}qWz^3>qKxfScwMzC?7)DN`RRTxzdLGXDlY5LGkE2FUI*#o*0&On84HT~ zr0|a|leb@d2zQKDNvX#ebv6p!B+~Q>m_`)iZjV12d)0*`hMD`K0pAlpFbvsY*$$WF zRdrOR#0)2HveW3RB^1BNyv_pbBchNNeUP)(ObKS@hv*I~Qo&uyAXar=>CF59nY3ip zK6NcGdM|>s^w5=)`<3RZ9nqg_(c3@6vmdu}>`$7MiWVtQ3|I15K@Ogn7<$FOJ+D}L zcu{;ZF}<3Y30Mk$z@q=?ENyxA+2O@47<)%n61Uw@XVg!1V#A@GrX6 zVEXkMkmq9!tIc_Mi@8Abx2Gqy&9?(HB+Y|;&WjkcIMdRwa6XabaB$wC>R%Q#FyQ%C zhN7N0)CK6U`CrPV0mvTe0rKD+S5qW{H7?tD3JDQm$!XtIVIYtY=VWM*TM=ibxp~R% z<}=xdJ_&D4G%b9GdYlzD4>ajrf>18H3Rwmgd{qxEA(p$;s?BJo!E~f@3(rF4&jJJ^ z&UdnKM_yeOKbF({Fh7TluUV;f4;TB@t;x8t(Dr6$G^_or3YnyVjmt)9|J1=cDlO&0}&05mBDIP~1VbvxcljmXPz+&V(92(J|6}a|s z>PlIgn^t-yjcyb;mrc($6*PB9YzSo^c_v&bsNS^Zl!~~~uI#0sWR)fm$jWbW#IjUn@rabnQfTZz~tNX>W+7l5i7Lyq_B7L*7eQhg|GPy1_D96lq6!v=W`Skv>5w5Bm+-bZI|1@M2&;YokW;aQRX z$>ARYIXo?px_`;xfn@$7hvyf0+}fjD_ zvI2MmHuvt#g2J%1P9T5z`J0c9^up@5}gAkXW zhn>Uk-t9OBmio%P;Q{cD2s1K$Cv9LD0z(fNrY!nSTEH+EqQ-N+K17A*Y@&u0`S`v9 z@RA5U?6mpoz_@{(CZ-DvJ>)d8>%h2yoYquZh0@jJ^cc0zvX&iuHZt6Xgw9;7eT5s9 z%J3pLY#!7)ehskh+E1+eHQ@NqL<#~__tcV2Y$wc#!jnDi#kdxV7v-dj_Hm(^I)%l^ z0h7HK~C9l4@x8H&nRlXei;0o;xriNz8VU~u2%o{fG$#sv6SF{Bj8A2#a zaI(#^Pev3D-Hfg^Ejnq6Pv0K7<-f1Wa~Ta~MW0u6yDn+L6mO$B=`5w#xyQ?l(bqVe z!FN2B(f3n<>cK)tfBLQUNQ{%Kge?ygRu0Arm&7LdDMndq?H))m7QMfRKs%Ruhxz@+ z?WB1^biC7>n#{*d9;u2(gwK`UsOV+MC3DN`5|(Utg#~ApN^V`U6JJoMS2Klc}ftW7g1neM_jTngAFgjMQ7>ve}ujbSG?`rns^@8~w==+Cq@QoX)|u zm+^xZBSG8?FR>P)xEG$03;SSYW?kuEwS>=i!QV1Q*pjh`e5Z}D6^-n%dBu3)bJjZr zc%=oNP9{U?V^x>q%hI?;E_2tC6M6^sg?BqL*93XWBvDi+k4Lt$=+mUpUB=@BxG-$HYuA(*&}yVL@CLa(d)c4=caGb;Rv?HXf1KpAh46dbBGDZt7NBl znf&DI{CGIcE+39@EW1L=_uV1Mb8o)Xcu&pcNpB27oIJJ9PckdS(FM5tIi&cNBJE?z zIFX8Ndm9S3=aAVCDs#6P$&XK~IT%z$Z{&fkOG5mU$G*5;DeLM9>N%iI^b;=P_5>zk zOq@h9@a`o_7aSh_o7aS%Ei-{SkJ(w2{8B2^ zM-E&Y?O#0f@7LzySVF_v(MS?%;_yp_*98S1LK2?s?1YAh7|?odiv18^xVovLYIF;W zN5B-5v-KtdQ+yi^m|_t6IzW9u0`ie#`P3A=y#Q^$y9R-+T9UNea)!~3CMh2$X z5pF&eR}{#`jKZClQ}y9O-RBT`y{(Y=7bmr-@HTS=JNFLUE1UD~xggZ`X5L0Vbhcn_Lfcv?7=de0_pdVcjY^{&)5&DvWNbR-6G7 zJdGt}j&ZknKduiG(1+YO*|P5vP@t5*q}!>sqR@IPNJ60z88;W6jGt~!gFMQ_l-rIQ zH@U0LVyEo8h}~9A-0-%jopz@4wgkNdb58R(5k;;XS+#nweVj>of#2{3uAS<1PL-oX zHX^>8)irgYux6FsvPx5z>jG^Ygv;(@X!R=18VLM%2}5!{?Py3tX12HlLvU~%CQL~v z)27Ro*w)67y$71b5GUH*QSy+=9yakR?Z%)V5bP2@y3d_icVi}K3R%w(e;hBnTGAAM zoG4ovZ5&sx2d5W5YeVu7nQ!>6$++1lnUm+&59Ef62K7=WuwtS`8EI}9*w|aY#2~+K z?!^v6+RWY&WQbsQjpQ`dLDE#&r?z(W%hi@Xak)$1BAxKBNX`h7NX*l8i_>M%%&Lnb zp)iN7Jr8vf*pi5ZASFCN%ToR-9cla_ybjge-Jd#hNb&0Rp^%xY^V9pQKG&x=k5Ukq z4nKM<51oB9BBpM3m_^6T-b_7#wLfM8I*?QTDFHO@a_|4PiCUSgyDO=SuYH#RKmwoGj{2%jehfx=m&Dd2tB|l4khq48G#5 zXp2s+uIRj9>@YQjz@B&g;V$x2@I2l8P8Fqm<@{P1qxIokx9eYrj~#}NJ*{O8stCmy z?^erKx~k0Ii-{jI>Gt%$&(d@y4?}bLxx?;Am`2t7fK{==W9vl*hD??x*6zysyVP~X zPtAFuR#MOX@5xdb> zm)qFvVJ!YGgb z`mJ-cRIxS;BmdpmXy)2A6KLdqKNpXQi`v&uAOz-VZV>4J3S33Lgw(S_uc@d9)N6N; zBbN&H4zSPVGwX+1%XNVdvHhciz1W8U)jDfS*T2Dq{?|^-ztF!0XVwuYy4YF43Sj31 zjDK{J7XIoa$-y{-BRYJIW&c-olCGQ;C5aYMlxo2~eEVfDemD6S?}d~V=!jc7{-b@= zr$|ue0U7I|C}InjK76y91J1l!s>L2vC5UNloQlVPRYbUcAH z!OeNs8|BJ%a=M@WcQnu(=trkc?q0dQ_eGd9W$C-qb|8^Ng07d+ATbI3uK)ix=a~L6w1Uh-wa1qc%l70 zw!gZ~t{X0Qr<+GX+1^7#`%3o?NzOl97QuihyxKP+A4aWdKtM8ivq5bQ(fyTDVRY(K<%5;94 zEM3=Z&(v}2op3%4w>_nAxEFqd@4I&Jof0fQNAASrmW@zYBZ<&Nlx8i{ zf4C8Y!J{a{rO6*X*h~)++!$+em27Vcfug2atZvY;72$A0vMCf(vA3v9kXZ4C_Jlvi z;S!yxJ|mgp-RN>&@M~YwJ$^C2+Ai)%9Z%zvc;nT3WowjWw>a%~B&Of31ljMm_L`2y zudlT>ikg5%67~pzozW#XY9+-osjCx1cxxVLZZt^3#DUr$O+Rc!JsKy9y|5NZco&a0ocD3j1#G1h0&B zxFVg90o2?7+zqUn!`wixTPhKrCZJHQ&lRt3wYCRNO4wKiCy|8*kS-g zkzK|PCH?jlDU_5Z7RX*M*T5A{$Ah}YwHU&(5*lh#H>@rsLq|3mb>d zdFGNI!qWo5S1SGE*Sa`UR55XOHgP=_`GduzJGk^H$k@m%$OObV$k@8P%fgkR1;NoM zA;BWFfOSMfu0=Dy5gbhJA5R@YGnyrBg-;`A*iDFW8H0u;3(LR3s`J3dr|qN9ccnQ_ z$50-p;4O4c%S(HMeCvzX`*kCrFJcOHMkH?CvM8P_`O+Yk6-J5JzybXzo};z>hIxjW zAQx49P5zp?m-eIBZtgYB+u2%CCgR*{x-_O<46Vanpw*=TgdMoWgJ#xE3VxzuIFbf zCk>|5Gm$-9cCrgfeLci!@0Z$PLI$sx^2Rs;OL4)pj1@(5XW41hKMuO=wCOLpU_78Q zVN0@y-%OBxGm)g3Ks=$WNRDB-XH>O-v5zTS@TGwsZ3|3%92=Ys_PN7&=^ zZI>lhIKHN-(NbRFPF!)7`Jv=fAffAh@?h}vV(}bKyX1oCvg(h~<;B}B>1gTb0z1q< zk?D6&8LMsx+)1fNQkO1W(mVNy`EXZ;A$vc5O1ua8lC(DvipCDwQ*IM$-#~k6$mH!j z_W3=t=U88d6$oH4%s-k9zhC)_-wepEn!3VhlRp&*K%hnNoVr!;Qab{;W>bG%GaV2? z)YX0DR8mT$BrxOa?bW-?kqQN!N$5+56NL79*KIVA;)@}+d%F;@?ent3F5HLOMhv;R z;utLI*+X6uyv>n^D0rLRHkhIN^-G}7wh166onLXDU6D zH&lg)6xJ9Eet%Acr}`ONPo%Bthy4Dn;y(HedpTb=wwb*C$L!!`BzawY{vUzV|`j1D0wQm0m61 z2J2@4cKE+v!;9lp5O-L)nt(sQEF(UEwUf4QBUfCybmM$`m%g4ZBO!~744Z2)hDu^0 z*BIr|7DBsl?KX0#dpvw^edjpfR^AdCGqz}5cAAj@{2|vcP}X*ALIO(*eew{$vd#Gr zDFY=$m(d>5uy2h+J)2KxT)SC_3Tc>Y1j4jUAF0!5N4)U{qC}C~O?g=?P0TFK;On0j zrmTt!BVx91oql%=^dW_lx zTC4Z1WpNiS=OOxya2%Y72Uycfv-@+TAX8#hA`VG*a>nbEE%V2lkV+fIzLUOLC2vUQ z8g)syO3t=2mJX{vQP?FTc?s*?EhPzSR9dnETG|e^ z2-1E@zI=X2>MMWdsann-i{H04)wX=73flE6a8nZt>19bJlqU+r9Oq-1PbdmLW7xeN zZcK^RrbMRaWsP-8o|SMlD>J+$sx-EX_%5i1Tx^JN279a?tFWU4%_2-VqLXH0@h}sC z>VRtDv$xA5yNp<#bOk!X0cSJL)|71)#W|--lsDKE2s9Q z7!;c3-5MESUe%#Zx@9C^y>;cLG-7p6chgsUdx%Y8{6~V}4Z3%?RpvMtC(|gc==R;Y zdi=D_`rUHkL%NrRr&Qb;NOYqa-*xtn4lmiz+7@0N;fSiW?c_jBsvJ=nr)*!$9Z+$j zg}7BF**l_kZlt}Z-`I~rKC=5-_GIlY;UwgdeLCNeKDD}KOpB!SxARE8Ra2Q8>Ncf5VD_f$?k3g9sLCidTNn@M4=p30G zSRedt9ug<0DT-&6)U_(;@S~)+e5xQy!tP#UwRIt5{`Tn%IFnykMri?Ta{n)d+uyC< z#TkQ~iJi5Di3k0t_gRg|-X^Tkhp6xN1mVL+k%`&UwT%UXWlsww@Ev62IHhCkHj1q1{wl^S=B=Vz=7s{C?V$Vc)NU#-^#S_HcWVHXrWX@-!zjkges9yF%{+Fn| z6=JdSyOrTCSc)R?HyR}~3sSo@dws|)EuN}6tMh+~5cA0yD(KxJ-qMd~eO6;mlS(!7 zD7HvAB=){Dg+`vu<vr=58&)PRD<2@^7+d0os>g6$;OqaI*JbC<nb6f{G zlZF7bLyhUcxd!R+ka>hd;s%97HEJ=S3UK?Mr= zMY`Ae)-i=C?Jk)1uhC+(+Ljr=Q#`Nk?mE zb65~d0aL10%#vYax~?}^kVzzsiY@De$G5Nf*;pCWU<#ElBf`*7yEV!d9j<|2-XV?m=zS!n2KkPN#kZ(UpN;pk39FH7(S2`sWGXy; zYTMo>3D-4t)?AOAO;Lyzr--I{AUwIYL_k&jc>^=OhaMSK_s~3n?~>Y&f_>Kff+uOt zv3sVH@t9hceOU(mng(9!_2%JILewATUx+Qn?~KLv*Nq%!4(p@2mJS`;a&?dgGb5WM zY7hl8ca%$LS@%9+2|t#OlO0gkR)4w^s7;tT*0|t|jsNuW2WRCs7)72j?$z|}>g!!b z1*G!&x)sQ~-5HJiRz4{9%^8h~gTVw0 zFkf6n8)VTg*yb4IMzVzUK%}ZiYAP(tlf@QV?z8_(`E*3T=kDGS&&8;BzDp~d55tcFLFO`e2X#u%}H(P z?rBF1epF~<2!umpzXZI$8`g_MB3VaAXLA4%^Hd)7kt2kuLMQK_v(mP-$|Gly5XeZr zP@dUv(FxU0BA0*olI$u2otW?E{y-=N1D$-8+|EPEYI#ZAZy|^$ov5u-HxM7voD^{J zMW;}Y)(yOQFm*-z{-(Em{o!njIcAiHhvTPOiB3AF_c=1F7^yWRH05}X_dY;8j-j;?n;{<8O&o%dw(qv-cBA;XuhhF|hm zX`WGh#x7vb#M_mROj|!NfLlEW^XXev7NBSoZ$b3uG&Iek+{sB1Jp&-{JCtpQJQEBb( zdf~2A`c?BvA6jIvs}9}Qd7U-RXq_DIFgi}hZsjL`wYVuZnx>bF*=85TrY4D`Qu3YU zo2qDwAh*HWPZYjM2%BZ+j+(lCUPfbx9$w+9cYz{}C>#hq9g^zt3jCfkvh&i0`R&8+ zIh8ve8ycB}1BSWwTCy?)lHXM@tfw=lW?4Bi9>CIuCwZ1J1K@rX{$fRc51lW*Bbp{K z!m_KKBYg}Iegu|up!&{>@MlcIi(KQg zCasGwpOjW7{p>bGs#zSK!$Dx0%w}Q#7#24>*((^S<%>S4zy9Tm@W7$ifUru$9Sx<& zM;skFLWbQ0W1fS#OkuK3d2GkQuA-mcOOb7$3rO36fZ492Vus(;_ReRMg01;fHETsh z32WImG|0J>;q%JtX58pwPA@Q4?s>tl+*#r*=rQ_c(X-%O@G^i+T_S$_PF_5fs)Vw( zy3cG2GfxZks2zQ^tuu(4H5D-wtaO+@T$>55OY3mE`w>a|EdoE<1MGWQjMXSb?xGsu z_3FJu`xKGVA}LKs#M?vrOsaDuBW6;$Dc>cjlRV;Ry+u2j9i6{M;A8}ZK44UIxi%T1 zzM&}F$?y?`%ph#GsQB7vk!a@-cyn8(;)=6b6JzJs7tj5pgL$hJD@iF9ws{lTrh+!0 z+F`w3gcN3lk4K>a5q2?;lPc!X^X+E*&7cN+lY0-$;&vxEicf}X@~H}Q^&czB)h9oD zp7ILOf!mUjyi1C*7iz|nRF7D=xW#>-@**a6GK94YbKOk&#aF(XD8oYfk*Q7*w~Br) zXRmd$nX9*MqwGb`U_{MWo4xZsGQ%bJeE8~qg;Qh%)qa$yuq;23<+}vS&lI0dsOOL- z+~{QXI3RO+kJcK~*GyyWT2=Y^1{9SJJ74wh5X{{(n-sbEDtXN^ZEb*>Gjpj~>mwtt zMxP+p7&lzr^Qw7*l@<6~YV76ULmk#s5k+`cH}@AZyS{juN{O34^dtIYFzz>yY;1`u1Y$ONH@QZ0rEW+YF3Ws4%Qz3D81}qqvCT=(_Dw~+m?R9tR74O1gYApvub;1Xf20H`J;#U znubLI2%!n(u-QAdO>mvXx@w5qmsWSBRQx@Huc}Ijj4-L-ZEEXctC=6wbD&WFgeD*g zry7`nSN8eiYhT>GmTT9{ro$E9}##6^Xjw?86meD3%W3P&N66q^ake6@^6PGk+Gh&Ub1@N zq;7$Cwfp6Lf45~9FSC>hAOk!6O@z$tOhEHo0Ze=!9>Ckvze#)h2O*mty?aae?AcEd zwD_?s=YJL?`TZ3xHm8z~CPq47V%y)khJRyK#s1X`V?FDIjfwx?)eB2+tN%!?d0Fh5 zU$4uzJqMt5YDkn5eFk{3XV*>a2RlUc$3oQ~rj`68d`be%784Ma!HDgk5Dhz9f0g;c z*+OXFMJ~VR$A*H^cY=+Drv`-Ec!478SgP7J?mHz0+D@RbUc0gUgp_)=D~=P=P>E$c zD_uwTg$(Kz#dzVcY z#~9aMP`K*-=p}&K{!taw~m+j_X8XH2-`KN(hJPaDUJODw|2K5Z-ArJkuq^+6^&zdqH?E@w zgu>yG0u1<>VkwN%@E*ux*!pbDa$PeiRMh+0+#6WPF?Ng&Y!?%Jd(R71c$mDMuSl?0 zvKlcD;kehkPFm^~hC*Zu3%lJWp_?$2*NLkOoF|SFB|9Vy(Et@S^vxK2wDWs|eS~&G z{e7f%LW2bO1wod^o1ijT4j0|MD8^S~~#Rf$5)@m+PFbWaLhz#5H~}-Dq;B zRU@Hn*)ItlxXdF$JWf+};5Tj45f;W+3*bGmU^Hd-&x27WHkLp@tg9wPLa)c#hGuh@k>~naJ(Qi-U0UeTGP%*r9Me?1o4>wcS)~ zHEvh+9AZTE99AX4$hJ|`|Nh_uh{#tIB8A5*sTpd}Q5I*oZow5txI!0R7UV*+^P~O- zUQd!Tm^P{e1Zf9pCW$kjo{U1D^8E8~P@E>gi zIIPHcrPVrs=^L#NH~(Us4SuWcvLK{kmb`45P8J2vapewJ;&>^r#O~^tp*5ZGY&9YnSLV$kFcueYJb(pkIvMxz;;51u8B=Eop01Ja*5C&e)x zFq)N-EGnQ@jSc~OQs(Le=lNK{5kh`>Oju%y@4H)${bireUD%bB54x1gjqO$CbZ0^*gsyiVlt*068s31j8{* ziWd^OEDxHvKa_4S2=K>}y200EU6Y~lIsG}x7|r9*4AiU0)=TVJ<&~(oR2YFwDD;tT z{30&P88m4^NcHbB!v`}pZ-g{YE)NRLl{$O$x{GaMZys83>nD@+EKu2$ANx6Vnq3oV zb`rSk5a|ANuS$FLacQbf&q?o9jb-s~d8^kLH+=-Y7MLcBM=~^u3|9$KF~n`)#N<84 zawYS+Wk@;mrp=(m;kq>TBd!@tBx@_Wa9%Gt@09F_+*z7Q!6_}42;Oy?^~E*&*J_q_Y%MR&_+KQXr)B`41|{K*~rFQ z>o(V^Y@v1e2!5Sx4B3YfkJbttB3Kvh-z#E|{+PlXc zL*F%{J|2D{6+4C4QeHDfod>4|##I0B+vNXxpaE3q%+ENxe~51f|GKdQ{}XG=MurTm z?X(avUa7ndeCS*KN~HGHXoQ~Kaoc7Z88L(K*fz-3E;Pc-*E?0%~avAhHgBN{lW(I{)}rG)?SIGyHS7 z3QWBa9W|=AA0ifRs&>j~={v`&Wda#clLtd7uDZUxZKTaeJIB&72iR++3`g$PDP{-}I#v2P3GE&!!_Nd^1 zl&L9T(PhbhT4S?}if!pB7XQwgbfoa=Kth1_?NPX$=hlA8wS|~a#UoL~GHl$4<~$J| zl%Th)OBMnx}8Bu*brsi6pbEB^af7--MJlGrtt9~y^>YXphTrCX`hH~yB0s*l) zQwd}p5;j-H`-bpa{Rb4j9;B_xkcMJmM!@*JBME7!KjioIz$E~OH$Q~a*MoC7&)36I z^&S{hLgcS~zY$C4dp6dy?M-a3SHU*m$9O&1$;;RV5Rut8Kz|t`AZOlKMz5!`g5Jr# zTM>f@5n10f7M!UCmr?i`YELagK%a;={zCu3&Z2P~DPMDgt-i6Q!wR^a4+h}u+N5a9 zmP`0cNDgoFUQz;j+09Sc#exlXqcD`A+G7zkcNo;X6QRHzeTt54Y;jYN>stw z4>8k3fS%BfW_2YdyHf-nZ{R&~CyH$LBz4?b9sHsH=T)l=xEY>Blma5-en=H*)LO0L$<^pT=+ z2qu@_%!x$AL;4{8G*7eel*0OHzu;K2Vi3Am6*f;w+MwN=p$HQ?@U?M5%W6SM2#&_< zZjtM1MQB?N5M#P=AjwpJGJ=h}Uw`ss>8NSR;zjR!O%dAL3|Lq;Qd=HLvmwkc`NlQd z6N|}BPE@n>MU_ShEvd6>Vrn%vE8gkEZ z*|*g`7?WyU#`N2WAsaM>AUEbIWDL_KU9mK~uNw0`CZubUP04|&dBHX6dcpBH8h3xo z0=7!`(~ZF(0Z!}yp(dtE`wYwk)7V|r!TuOFuk8^s?#lHWq?A>Q!@(Rsrc@ZGuUqv< z;cmQ1zg^I?in-2~%zViEQT0pMXUea(Eb`GR4u(31bOF=VO&I!ueSYI%_XjPWRuqh} zg!wnbjXgHscI(HSs^ymS6xP`)pU$$$(NmLGBY#t_UoLK%G)(-(Hf$cPu+uA5B9f@W z_ZE%P-l3^oULyqY_{g z+6U_BNwQ8$c*Sd66F+`-M}cYu5OE>xyIF(SDRK{9scg-Nw{Whx)xU5>ik zkuGSq9HUUr200PpZLahKDZhwBJiN_~SJ>3E0qq2Mo1Z@b(Wme#X6o5@gjXO9xIxBo zMw|iK$4rRDKfDohD$+8^!H-=IIdf6jHWIui`{i(u(dtLi6;UjWQo^-Dk;aZEsK6*IriGaLnPAeT8ZU<423q(kAh zKBdCn5uJ$Gl^n*rBQg?|^zof4}Zz!JLuc|yoSgyT?9HaK|CSo(qJBeiS6@r-Yz zx1j%b-U*dBNRxDZ0!W(4z zrV!@ugi_I!>U6ctkLft~93<)YEjmSl={W7PZcidQd|1>>Ra+JuAAAHCt=Jo9e6gXy46KX%DX9bH!j5|pMYDq~hB-m5;(etG@U z8`epTbdE8LxBFyT@0{=mjLIcm97btTc$Z1U9Yu4TS=7B5yErGXk-u8h-#7E$v8a-+ z<_?a|MiSP5*#vInPx^%$76L&(kU;pEF#css%qDy3%;`8vqL+$dHV*` z_;-8gY&GGoK$vdhdgm5S`a&M)w}52PLI@;_U4l;;eR~1a+8+LVM9oVi6aRm9hri#! ze?y%g?kC<^S)rkr*A8HjceQrfz}N0FVS`5m_hq(4U!+uHxWr z&fJZ>a#^fP87MzWKk^;t77XhpgxkWp?Z*b?eTuEobyfp#UajSE05|c^8OOil9F@%- z%pAR7TlweU1~$e62L0MBg+af)90Y4fsHEs?Jl_9r(^kIXWM|T1D6w|6{6LsLBK%=&-m#FuWgiwnTpTbwOGZ8Wbq54$Nw_qS22aaoDCXuI z_@ZulZunO00d3u^u;6ADfqM4!Ar19xwJHUK#U0cEKL5Q8hmR78B3qsfPn`zB9PGd4 zj+$`I&KKv7bQk6t;4Z3}c%6E}yW6m-nXu4Q+@EhR&ya}HFzB6#~Tiq~mcZMmoh@WP$ zTRW=Ed`S32)(=765p#n7a5i<#n~OZm=}jxS(*ptKRamUY;Led7H)3 z_5NWj=Mv5tJCu@3D=u6FO&`DSMHX9-eyfg@RZ_E$_bRABz?`2-QTF{=`Di&9Xm!aQtqHe!nGW!~JOoys^L@#&B z{+Zf$vx&4HD#XzysN8HCA<}KQT3bSETq5$WyvBJ#@y7YD8H;$(-An=v)ArR3DU53h zk;WR~_Y(bcEgxwO$WLIl$<)%V#kF7vu64Ff-!TVGX_ZCX#LlIZNtGuV(NuC*xt zurOA}CDYWk7SD5zDSwQy-d{Iewt?|XK;~V=F}EF)f`O_ULBbTM zr=E!{!=y7E?e|t_lgti(OO0M5Er*QGkoXQgbGqH1?(Vw~|4Ho0cywYpx=RZ|1^k(i zEV;VSK1pi|`6@sMZ0q^H>HbP&Go;c;A;CrAZcq*@t14yp-OI8XvgqkWtaS2qNeyi5 z$HCEEq#Yu>Qm(5O>BPjjf?^M5EV!*x^FLKTRgNCvNS9VV5K_N#PgqU!727DOqqxm$ z#c(g{o!e86xb`hlhpT>t`nXEU;8zkhmupg5oS}Yj_s~w?wD>(|`wt4E!O9~RBLuFh zi!zn+`5PtdZRra4h)QEe8zd`sG4_>onq>Q<};f+qF*i9?V?5a(Ysa~e_1W{BzaY@CA zI(1CisvPV*E6XK~+~pE3dgna^o1nOO%G{E>Z`6XB>>KOR<4yvqJEU2yTHVaO#YwD{ z`s%P686xKJ>~}Q!=ABpGZC!y?#$P_{w~qqn`zF$#tk%VVQ)O5^+!1aJC~_Z zfDxy`l;$P`Jd1*2;bVZD>@v|fg6AQW3Hi(|3u#cy2d&3d92V-?5>3F5_BjOg{%nAY zT-r0P)n#mfZjR_d8dMoUI<08{h`pk?pmp#@LPR#t9k6@7F%sYGa=@SCBQXI!(hFf; zz7e^n%RLu{k8Fmnr2Y*bS%wJkk?;T?iSWH;=oKQ{60a?5<_}^<=7q|a_kkA=K!{tBfKK|DePA+yV8s?Uu^>`Ys>|ujJeK2p= z4|v%Emv6lEMWaseYgs!7QE!0U?`6~arWqM6?RZ__6L+OYdMg@~M39C6id&F|Y)LAB zdff#(SLx3PX$S}95nbdKs6c5U=s6)bLvc$vK(p{^Dcsim*X6z*4@`x@K;hSb$XJ>- zMntDOK!zDzyc7Z7gU&AwzjY&-2O`q-3G|7pKO=|cXYjvi53QYLAhN=jYP2UplpDO; zK@~~xmKcXRZK+0_I?a(zkK>C05U(H~f}5AVkKEG%@QBf7klAOdr$D)O7*G!VCs1w= z=%W4?K)EwG7X=K?Rc2rz=xfODJ_L{F7$=%o(+@CmU9(^)^G~_cQBSf77^Lm_FPr~+ z3UIML(ML9i_}xB&8St0SYo*wu|mAOyiAur z$V;^$W3x-3Nv9&Qt1IG3;7hC!%o50HRiXJ|V5i+M-anBRXx#LPKWt3Cld7bXpWRy` zL!-`M`}EUSe`gKmu}LOVw(0(glQ(gNUSvy@UdD8!3l&sPDR7{9s;|FPRM@CE$v@zu zO3|=*mQ3x=x)U!+Tq&ugxF}o{$IUh=l%>zwHf{i46cL}!V&29pEE`vDV!&@#kIqw( ztW~c(k#;QgLL4%eb$Pi=>OuUbd2K&_#1*uu1M?gVI8uylFLuG>%vj_IR+`^t>6uHYiWSGC6 zC4jS9+;-q@Rq|!rH~?iP@KRBW4EBUxSatXoras+P)%0T2^tb%yE>FI?yWL;sgjux9 zJ$bhJV6%?@!wu5_+Gn01S#vXo(hrNmW+0=y|EPM24@m-vg^q><2l?*Z&~9%H@>ZJe z`yr8PA;Bo9K`5m+hy;17kl3Y}Wz3`%2k+d7tP6ZgZN*H3Mib%RFmz|%yT0v>kLPu# z*(V<@T$Ps6wy&kS>rp!3M%*RO7JHpoLt=SiRIQ_^YHC&Sp<6$Mdil=rfMI?{1hOHg zO|*U>BA+}-{Twq_p?m8mqOTfry)SICb|*d8$@HLp6MNCviMNrh95igeT8xs zyIKr`l2(GdQNynV>@@3gs?24w?a`}E_td7sTZS1XOfV=_l*%fJ4pJ#hNagk7O$l}7 zC$QfzU>uei;4_d8ez+YdN;LRk2-&;8?Y3cAjmR2ppz^&%V+FkAZ+$H`65P*A)WjXo zBDaDuT$hyL^_jl4{w<4TAz_B$75u_PSbx+lxjldflqu})tp|Y=1-#ICL zm3d0s{qWh2`kzG+|9x|;2sN<-8Jx9^EilLDKI=ahnETx{{0qJlXfv8aq2{nM`T2XC z`%cMo(Gkq1e~6A;W*7qqB@>rK4rh=Xx)g!R%|-^O+z535$VQD3sN4vl$9p^A#(TR0 z{SmPUN* zc-o`0>Jqj~UIy@vj2tlmp1kX`*#1U$lpU|NJNINaDx2&q1XHW3|#JpWk}& zo@XPyw`s8{iL5ff|2rWj4+8)W0WeXX0A^@@%_rng%PJH$OSkVxp_VTgklQQk*Wl*` z4c*|kraAl;8#pN8w|;;R{@`il@L$XV&pddd!83f{%Gcv2X*1MwP8ZJetZ1%UqDTmv zOECJ!Z+WqMl{0YzGEJxSMbLd5sP5$DA^Q;2iG_)cPaI&1Rlc8^&B=zD3(3W7q9(`h zb){7@98|fAZ^(8)-TegJ_3|~Yta65c(LVe;3(|K;gOIs31JO`~_D?o%HKbf=TJk&| zxb5~d)+em+`<>)FHWeSO`YtbV7cf2k8X4_F^V!8IErg)<1Ayg}@`xzmH?j)l6v?;` z=B8_4Z+tf0qN3Z{$CgB46h%fcr%rTsg1S|9qu9Rv#cil}Qf zp|Pa3aqW_gps>+cUnVFB`+n4Rk)mp^MN|x-)KOFOn>Ux-U z#}n_5wHXRM9yZ(`bWIrE#U7bq%dO{ATB;hHNm{T#BoW%DbKhFvK1xg9kl+yTUe5Qv z74D7y3cb#f?_*T*U&Neb~~$$r))P5-J_8wF2g6t->M5k7NAKD@uBL3+qJYiZYf(L=opLsGD!zh(aykKj3rj_*%+8lL! zDP|}f5P70IXBaL`_@ckAtGh_#X^fR>1So2^;Z|O{#DxZzgp;7Me(l;Fx0f4{z@-V9 zBLctn0H6?m@oRkmf_UoJcHw}EmM+SI4TiXeBbdNJowY&dj?N;<0D z530`5J$%EyM}AX&mRa!gjCW*=+@>(227l?%{j|2GrFTnvBSA*r7#Mh3^PhZBvJ5m* zt!a{^Yv9{D!5R=wpT~cF{K%)UC^cwuN=Ipz_>-HgdiV=Co5HC8eST}!IQ!8e`559U znUB~nZsx7?ZWlCiuQ%sXPHh%|nu;A~hRWqB>r@@66{)NK3-O4$3ahtQ3C;DYlJVB} z+%LOc$q}vEPvl4)fXd;wOdp%7&1JHp+?JfsJLr?d0bLLz z25)CQ$vtT+L_xNzsBKl5Z0sqm1W-CfO$|L7!G_zTqmRwL6$f^^vlak30gkOxl*s;q zZ5rAd{ z(Q&xYi81h9!6&|BnPi`6W}E!97x{z#3(`kcq#V4r^kl@f?5a$|r5T)ucH3m-t{;d9 zllFOTukO6s+@Z^txyGDlzl&oY|7>niO{wBr5fi&tIQPyCm!lWq;tDy89>WXYz^ z0=n<8`no2y+QL;Jxol6u72YLulEhVuKMfM%y@fF5@qt%M(~EMntA`@9|K11jfyX`} z3Tt~1dfgbG<#r`@z6v;-X_;M5#C)ZLIf%0Mo%;CCi?JyyOe~oBUR34yC*G_%)&RLH7%MLtY&sA5c+UrC|El%Se#$(9*MF z$wb97Dch0h5f)7vt)kmjMby;|#h}jD^Kx_yO5n-=oJ_uGo+L3FEf9Uw8+oJ>^BHp} znm4E1@M-CtfRq@7m~q=gX42J{nj9rEgwWc@%usD{A6uPylG^GpyCd<6Zj`kc?FXOV zjrt1b>iez1w6!!O=G+)3`%5~h_g$P0XNiHf)-*G2?1=lz)HN$guc$ZgI#tGomK zbrtgr>1<2r>xmXpQ{5^ysO#dzgeQ05CLVW&ZyOU50%u_n4#Zm?QK` zbWzkia`CHCHh}UIkC&*g5ymk3{VH!ky#7$2{vN*dn7K~Hw)!_L{u=YN$&B86IWjd- z{&Op*;ugJgIF}89&u;#s&%XG$DueN~W-teI-g1XU_khAG$Hj$q-W)1D25p9wmB&qh zx(bzx9D_+6${8Jjfg&zNfUrLFp)LUQYgdU7fwJIz^w9lfI=zirQN4{Zz#~2r6htqZ z-X8_Zg6;!=UOaafXx@FM1fqgz2=mvT##VAw@KpF3c4_tRrc*B1MVg-SVCol2NuB^J z*!+tn{2$y$6HkB=`J1=LMuA}p{^sq+VFML_w^xR1kA(vcw!VoDHf+r7titB+9vcPo z_ELX*4_ffIf2Oeki+nn0=R7R>+o;^g^EpvXqp&gMss`E`cg#EV+~c3Ly$&nfps_^) zlSF$#I@P5OzcBVDbq;Vg8Pg^a=5q~e5x^u-eK1Kz0HDo-*2N(W6^zDl#QSc(9!pYE zp#HUDTuWg{&9mxwyAd8ZD!84~CN{r0XwnT|HuFBJPcqgN6Osqa*4=sPG%3OzEWFZn z(N4FJel4!jO-%6NVL!FcSvsN=g;E9^k@lEfz|MeC7mrbRcwX04-opmGHCNJ`0BWq;F%FwLBnF#0MC#((aL`^UM16Zo`wAXs zr5j>sf;%f}JL?(~+*Ws*zqZaaz@PVrq`_}-*!V6wxPUprO`hxkUEm1+Nfg#Uv}3_N zUyhrw&oKkD+mVaDmp z$J(WjqNS06ynH3-^1Ieq(z|^&lA-99vOmP{zG062Mn69k{^IIQH)Ku2^^X<8R@MCh z(8g@)VxB=dpR1<4@%}Wln$ZjQKn((>+2mlhsig*u7tYfnhxH^UUw<$C346}ecbRxop%g74EqjW zDqWO({(Za5%2MUQ?^h2wR@dtF&DY)j4|8uFRpr|53rlyGl7e(2A>AMyl7h6vB&8F+_`wf0(`cQ4NQ_TFclKW>;~IEGH2=eqCvieLD1 z@1qTVX}8!t2-V24J*Io(h)^i@l)JNehpycxxm}MdI_is5hm7W%s<%%*nNL|RK5?r# zHZb2kN#ZR=@soFaYNazLX{9E}YBexKLrSB#f3)tUcpH&7FB|?GkXJ zd6_@ve9}@$$HN`9P#H3a?&qwn5;&olml~Ovuo4wISn6rq*0Vr^G!q>XAI%whn4O@6 zt7V`_fk`S8_ml?u@ld?xDdA2?d!)zCSLO}{;3sv5s59iPJj@MS`*4+h>uJhPCoqUL zQKq^#F>NJg@io3Gh8Y;dHbeH9D;}u;gIIK1PT5E8p)8z=n0%x;3$rj_5Q`Tmm@kpv zJ2;9g#9LW&_OC&#LH|;=5AZtwK8XE&$KBqD(!B8qu>J4Y?Z1c9?KQFXjqi}_O*47I z;YI`w`RlyJJ!GWT5|~9uZ~(^^EGm5T_;Qwt@nHo|aboboZipI3utoShR{jgiBgsg~ zNT&vL6CwP(Skq5Y<1LKfDEtU`BSJY9SX2}BSmXX`%MZs7qPJf_DI(1JPd~m{q<|oKc9}GU(c>;PY4(`@${6uT#)+s6eW;{*s z81eb5>5mItV(90UhvDFzHQZu?V+oZ?0|+;9#e?rL8n2O>?gk!BAC&Xf5=?LS^=&Hb z;1&Cd?dT1C0F9zV$(nSE!iE`@PCE85+k3iPRZg;(+g@smFdp{uTZ zFTOT>U9$hBA|y_zU6$-Iti&QX8u0mgWsPO8IFGrfVi@!~C-a`J5At+u0I!Ad`8Y(J z6#NO}Bwq>yTZTW$Plo4^=*55}AQ=X#q(f@xcbd_*`AkGSbR8&(*$?q2Uxyj60l$pa z=@?Brk?jlvP5EqLp$pZzP}3Al=H})~tfHy{g6!na0#PHM1SXfzh38nwJ47^visu#3p=w%vjX~YHYWq@j z((>WEmqYRqCs!k`*%Kb}7%uf0S9;kmga^J4`6h;|u0L2lS8$Xuk@cy>(?ndYecwF3 zo>ix*HNL)^p2KV%RVQ2fTvek|*G;pWn01X(y;2{7<@VBgBB^v7TgeT(q#E0{H((cR zeEN}3s|tbTo|vZBgO}Dz{uBcOWvi?^nxUCmh9x5ikimh6Q(AYx2B8bzkf(g^9lu}I zTu0kc51OUt6SjdgMqoKm!@RJL@dACOjduy{SIW_yGgqY3uD0^+u3jPD+qW45 zi^lq6)fr16=?#XZL&k&`5UCtG=)XbwdF(bcNT70R+@^1hV!uYVDz$xeJElA&xtT^0 zMW_TT14q~PKi)>Ss}vi-{v=g*`L4fRg^(4WoplRuj2ui$<*)7hy2-J&HQ zT#E{fnN%x_o}E~>4`wDkpJPuJ?sT!7y+K$>@&U-5T0Z)KEus&?ATO|LeUJuSfpr8d z<+77I2StM}06Ta~#oztVoF8BZyBasFjT<*;De{Up9|0ef6}A1{=L_FEH6{D69Sd3b zyN3}6t;Gm6-#JiWLmtd@yEAAY*bTR0P>(XWAUJ!IA*1vQD73&e45_ygd{zN?!1r~8 z%G?4!Zrp06RE-+lrJe_G;Oi99c=c zIsF-txS`L-Q#Rn|N-7(WBPX!{c5szQK#qKf0ocJ^A#|~L!D~NtbU+Dr6XgM_j1ufW zoH?fehNBM#=YB38EYVT}Aop<$OVrJ@rK9n!j-~HDD7bHjx z6LAOhedfQ)jOOfPn;StQp?`dSw_m9$0OrHq>MyNm$3qMNNe4c}0KBjN)F1NWN4Zfv zt7GQv?g=g3W8J?eMAp+7RRJipYmHIeUsPr%yZ=^n&l@RLC)>RUzDu#`Awt(+#VNwd z+QLV;6{5O*IH1Vz2a1exfFv2F0FWf70K9>qgvInyvmgpkWMBhD1|m>oC?Nh(Wc;kT z76DA?R<{IDWUSx)cQqIG#K^}x2NnuJ&vrTYG5eIlLQ?P7^EV4&ultxH&Tf3&%|yD< z9U2p{A|49LWo-)-`9NrP;9$HpY=8?c5DjdzTOx%viu!%!0cv7cPn3 z9yTsQ*dzla6F5kL1m3Vv>Frjdldl`C=Q}W;wigVE%8@MIRSTjjbC2hrJ_~V_o+Fas zvX(br<<=+{`F{AKXP&q-z(4+-D46c<3tE?kNEhx)gi@jJ6DqO^ODe9igM~ir{)7C} zV}TqWn)YF0Tr^xCja~TmB*!1@$2EGZ#x@eD#(8=}=h3L13@JwSf)EVn7Wjw1kM5mJ zglb)N=2!U^;FZ#dC|=7bV6Y_=DF<84s?TYLA6q2yQOIzuc4Ev`#F+Lx&Q#5u0cG<} zLwV*NMc3tw5r@IRo5;KM{l0_iLIv^i`rPSp159(Ck;fcJ1eWOZ=_n>El)?RVN8i2lQm})_Pnt?L_U8Zdk zv;U0$0C~6Jm0|(b91E4*3Z2mBW@stqdCSpw5jQkdo1IHY<-EWt;(~uSN}=Z4&Q}8~ z3=i-RI%uKCTsE$qM^+u_8orG)G;)M)dc%sBqDW9@Oto^xxU4C7Zwnkft(Lb-E~!5S z2)CM3^cjowKE|4!heP8s}e%0+k zDPwB{NDF{Xo&(j-|2ku`{bR;tgMTw)>ehM91Xwo+xD0xxq;d*=4{3utpdZWt?u`&Y z)biJ9!wFrBkOX#%DzN@b*jRJ>pKuIyK%xE)@~4{NCz$B8m@aGKoZlsuX{d8|Gw`Vf zWD=R=!oToIs!7XfIJy16ohS0dl?bQFRKT^9G6JBqM&m7gdx7H8-C^+UXrepVcr#Z^ zBIL*Wt1nKjKQgRDzHm2$qCbve@N=JYp+@2fn?_+`@49+~cVDmIM+nT-6{Mnpe>?yQp@Cs; z6WH}u*B_zzY;zIWiW&CftW>Z0=L^=nInBi+#I(MIl&E`tyn&J*-^DxG+ku*wOk|IBu+Jo-HdNnJYKZ<@JP32&)KxNp?rWxFuuGe@ZWJ&o}|O0e1&iNbP0*_nQ9 zbd8ig;|2D)?>VS>auRrtOpIBCbPt8MmsMLYd3f5WXlXoXbqcogK5q$|QN@+`kayxW z_^*nD*xpjcL_zjbmrqLS|-kdJAdQT+gF=XyJ z)|4tXL~i(9uzXLPqJ#jnoqtZ`6-N>b(RchH@=-=biv-937~qTfla2l z-N~m*fZ}oNf&-He#`oy0%*uirIb_wJ#z~40+H0zeW-&wML$o!mxY2h*dKl8DIH3oE zaLQ5g*K zin;6ibH(3EM2bC@TH$xa15Wyr@V8zBoP@A2s8J*_ZoQKcG9S(#(Ssfm?>eP|3zeGm ziVRpLJg@g;kJ^eCN>p=@w>>7+GWnk2unOWrl3&_i2N^8hJM^ zJH2lcYAHJRnP7x-H-GrEz>*?|9iM8tMnhr!Dio<*nKgQ15iPB@>z*hhR5dDNIZE=p zPVStt=#q8J*XCoFb%gfJyNFsOy$8q|nJg))M_tC&gXk7IkBo|I*(d5OI4iddigx>q z3ARRzpa!71Me3n9dwwwyFtEz|#aeRW&3ykP;tdh;kVep099R67~{3T?0ftL=?u>WfJ9>@*(=V;X9IkGUvGhHeVHU z`?M1Ttqr3t32T0~3v<~Pc16Dqh#zAkKpqJ3IpX_g&Q?YAA@9VuC!$)svw+M4KkM5m zIgCH>!3L3b%m~we2#1wEpj20~5VI^M%8Q}P*l6CFJGsNr)IKX`?p?1|h|~FS(fDbr z9rFYk>jxd_q-%7R?;Q#j-!;v>9&$wUmn(8vegDB%TT_~L?R91Hi*`W#wx+NhIQicH zmN?P+Zm*P`-@b}-ENWtb33|m2S$V&GlTiih&~_>L^AM}@Ssh0nDq zcaop)omZi>9k%;BEau4tAGYPLFWsA`E`2W0vMg;p5)_7f8yW?S(PtT5vT)G(`zP>WS+*z*kH zj-nMPC0}K`1+N~Cvke3ZtL|!sYw9MzGa}2}m7J{kwQ@SepoNJ8 z)ckM25tbYR>WsMZqe)U-5R9Ns3F!(EhE5Du>Xty6moQrRmamf3)|SD2BMo2j$Rq;2 zQ&E@s4rIgMhu>dN-eEuc%(QRl}Ru2D~`pN36~Y0fI-#jws*AtfvlDoqy{SF|W9C?x=4V=v)ZeX68G&%r_kUAt$B|G{rykH5sgRFW~M_35$%n zr71KNK`-GFW6E3Hrq-;aP7I1cyt|SpZJ>8uGLWx&ZjC@GCZ@CR(y{^Y|CD|uXG|2y z`4j)$5hH2tYHMP3V^L1vc;}`HW+z0aMR(amRsWv*iJ!G=ZofD;XGB_Ag0>(-S`8-v zUA<{p%9i2BeL1zjPBFw~zC$`xi37TYs2zHA8oCz5n<5wsZ^ox>Z@IViq#@|sw}HO9 z^4&$INM!kf1C{bCN0<4qHXM|^rI^TXG*nO6{cKLXUDCodWHzTujrV&crNCYo`qw7B$?$+DZs@=Lk&7GlK9j8>dqjc?0E zZvtsNPbKey|D?%yqmtfR`Rzxb4^N;QOmi==3%kn+ca^b&!s`Ww9>}uI31J+D=g5%N zTT#{UJm@;f7#c5f0bjeMD|%0ZYAD&cND6$8MqAmcrSe|hSdxnkSc#EX*~BZ_vX1)7 zv&Ur=+hL@oJ`WR-m{+atq@vp0C*I9|1%}E9-CM^mPUm5HPdCB`I=!PLs5+|J7-n3} z7_|5847ZY2s);wCuKIh5HXtYkN}ixMyo#GKfA%X0_J$Sbk+PTnwlGO@9hK8g#3>Q(e0`J zV_OrmpFTTuf_QSn_9y zQPut9d;m0y<@K;$l_knr-ZNG^p4!T1>!&^KPiES}SU$N_%#3W>25lLe z@q~hu<^*EM`W>9FRXMY9WVm?RccJylxX^Li#xa@~@e_>|^bJMqCV1bSdfh8!M*A~0 z_|D$7drcXAu2jxWlQ#2@*Cn>f>q7bRPIoOV^#bB4HnbDQdv07Qs_S(T8{dtx9r;>q zD~62mhzSB`{%SlHo=nS_fD7h=$wv@0+-;1}KwDU72~&tE3ombwQP_S8ljW0;ALsyA zLl!W1#IZF52j0i5`6@6ZO&SO%8Cw#mD{SEJRKtT^1F&a=ccz1U-Gp}*5ilOwuC!xe zM8KrGu)Oe16c8y4D@382Apz0K3rVO6M|{y179w zi3&@ESTe)zX+XXqSP%Z7t?* ztJt?Zs|0j33=Yi3yLh!N#XQUp&qjyXX+Nfh8z&~FZ5k3pW#-F7;K^HU4kYecS%l!r zo1RK&&gaRM$elTDNt)=R)n170t=N9>CE4)F;;z#OCv-V~Sc7OFi)}Ez>6F5bQjI8~ z);ZO&VsoF|7Zx7HskXwA%}455w^}n!oIh>ByOgg9%aSdHO)76{O0X49)W?n-W2=|3 zvKF|sKFWMzcZy1P3RltU{iv|q)rg6=&bGiMAKUHS>`S4K+Qu;!KtAm(`l`sqDD+6> zvS5;-GfQdN_rnf^n#y((+iNqZq3K0(eF6lBdE^@x9K(5DM=RZ@=LzgEC1KlXB#f@k zD}EEd)xLK<@;wh$`+hvx_f)8=f)G)n6uL5D7+L?Q+X<;hZ55eOp%10$d+1b(w?yzv zh3U`=zAz}jQ(;y>hj9(r*u#f`X^lbsf#K-mX!p2)xo<1X)?JF25N<69x=2MCzIJ|? zK}j%ExykF1cGA1ND>HhITlAr_!xjbF+&gdXT?!6!P9bh{wNpObj5zRRnG>xYCs+;A zW<8J$jFyM!;14}$Uwmr3N(^H_YEsfQULx9A(SXDog%0(_mm`Lero@)cd#WOAiusnA3@6j6UQkgmy?iCwo0BY8d84&3q5(0Z^=(1f0YtsU$R zLaQ4@nBUH&gZbj@#G-(^u!Pn_*BVSt?RDE7^a6=m0y0s@@GEGg6(Qre6*SU{ocg%h z1i=QF9f{W8o5=lnU%0eo1=FSRSJ0s;Lg$Qkk##pHT)sSf?@9jUL>Fhd;TkJjh#u3~QE%aKVBW_47IvX{;YA0VGWb(-tyZu&?EU8&4yPyI=K%1c5Ea0rY z5#rZ;eUm4qdE)(82lgyF(toXsrv~sO>~5y;e+*pyThL;^w}x)tz^c{&AJXz>cJYU} z*e_fj$uFZ?%|DH5`~UA6)&3X#KGp#SvD*PmnpUpB*y5%^{1?Zg8z?>VA06Uz{r8BgSF>1aem?~Rr?LR$ znHRb`+koMC+0mVYx~UAf12Egzor7bct(&nSz!;4Ys(|~?=Z1s75a1{Pvk4$HiPob0 z3jv-4d~hXaJrP5q1#Fbr5&CX?l=}soT72ME4j6*gf&sgft|lkIM;Wk5IURX)KWm%} zlHtjqt5Qz*SqzYDzkki8m&ol50YH)n5x?v^kbkkDE-`^sMlwITJDs|wd30b@KTBw&nJd*|Sr zJ)qo!J`d0u%vIkrv+V8OU1NqVg&~XarX-a`i{@sxZ8`oUE*)B zg1^Ri_wF0cd&TZzXO$vC-?AU9D#yMepKStk zWStff`vpSl13lCS?w|jX1irg5pg{}717Jz?mk0m*33Pjl1~7~^1)#x}KeN`K*b5Ut zWNlwqv7FipZCs89T`%y}Dt+g^6d6ulg*Z*#By~rw#4_rBxYfJ7TsqWTMmnnqQgj+d z8aaawefWsT$u27^{!i-H$%f>hT8FAwa*0;?c<{sDOtp)!ce~%!6Qpy#rQ0%{ zpbsMCx{O^{sE;L9usT5Ye#w?JijPHAkQ7StWL#3C60-mrQfHBCH#vssLo^PiuzP$S z0G-FU?l|Uw`n<*7TW8af2dsUjvV z`bu?J$)3PSFwFy-BIIt!FiI|EaAMakb}7t$GKeq$ckUx&fgO$XXcWGLU^t8zv4xff zDK9E`@41@I(pxY79WSvH`;GHe%Is>Xs?)~H$X&_Db_ca44FI{(NS&~SRI5(xaLU># zGs;}_o#45&mR;P)CD&W)=pUDlS9W8 zmiYo7)FqD*1~S8*yHrnG&JiIkj8@!R+vM?cmXwamV%VdmLu5h|EoS$$C~@;B(bzI{RaLwf4a0cafXi^hB|Mc&JJ{3YYL2p?!wut`kl zy}Z&Fs5}WnT==MAqZKz3xK9w|%yjIvUC^R9zD~z*AS!>(C=l_HXSXJY$Z6-R)@bV* zY`IBR|7qUkq?L^#)aWv!Yn`T&e1(=d3Tll?UrF~p!Brxqf+M%d7ImETk<~e6UZsoe zDE7US;O`X^F5eBLvnIi*~bDhC(I3TneT6F2WxJVcGtV z#qsUM(oa`u)j@kn6FZ}{pjbc813O+q*toyd#03Y@QHkL7f9F$i7{B1Nckyzqx zakcrd=BjDr0DA|$Oo~+S@CA=XgM$giINnq|Vg5G-h4)kgKif_b}^0`Ctg5IP$;U!ZP^p%!izpiUs9rrL##X5pE zSwXGRIb1o;xFRIfO?QI6qFZtPsZAhp6&T0Pk^)U{P*8+ZgM6AI*Qa7X%YK*@Z>~4= z(8b0Aqm%v{r`KJ+q#yxF$SnB~MIhTE(MwsRlb`peH?D1aGXS4# zVrkBHV?AO5%p%>~_}sYraQoF*BIM$il_k3hoD3gH4oNz3AAO>B!l7W+)C^4P4yt02 z4vuv}>kzyDt|>$<7=jnrK#?~K*BLb~gX#33AX6AReE5ajw`S>t+xZ6@0pWSbv?njE zw}k6N=GFk+2zbcC&03;6d#`GG3UDx&lnjsYmfkVk^BG&lE$zYC4$u@`5(CUgaHz^H z43;dlwQJ=U%(B`XpKQS$N}dQ~KYB#(vS7K_WnExsd==FgCfZ4++-OcHZKEEdp5n;) zG>}<^Qj$XDW&QxZs(LRzbif&^;W)Rc-O8{Et#Q=LY>Bo`S@j~>h0{#%p>h?FvgyB& zG#DIxV`)V}Tsfb2qzlz2X1jP4+<2G-o~bJQPIgj6QZV^a)UsLDGg@K;bt^z4&@(Yz zJo>X$zJMNUb+qTVuw&MT{+_-rcaJ&>S}Iff<(nRpX%gpIMRq*nzN{0~%Wfr0gV1O1C~FTRlJ`TH z9Ei`E{5X_|EUKEA8q9+HxIe2yjl>gC-; zRqFP|-;(3w+iyQ{9rv+bj(-FKruQEM=Jqo{$^meM1SBnhH1tmZA^4Zl0BgIUxF`a` z$sehxtl6(rbdaRoal5-ABvcDVm1*X_OB{-3d*HOX?Jq@neHGa&V8mB3DmUV9A=w$5jw#mgU5>XrOei)u z{<54P68vQdN#?40|7{q*bn}|jmZ9+LZAHiMAHxyOMP#QtUamv`_g|Z7==|L^>b216w{sJVv zy&PnvxwUAKwDsw?L#;DVinH3COV8m#9LquVN7Y{H^$&5>&F;;)hZ197$t+wwZX#=r z@q{=K9`)sjycx*Lx(hAVf?C%2YC_|Wt$QR}N()-jbGus>N?uJsRlfm}AEbNy8GjVKo>9xAg;4gYhjT zA*80yI*1J<<~EGY(eQYF5J%%r5VMDSF00{(5JzyZsdIQopsB<@@s`jdBqR*uH4J}1 zkc&K&!V$qmipL`Xda%`a%8`|^e+u2mxSoirkxb3&dOKiLY=yy^?5g11PRdGF zRnd(vQp~sz$GkSrfE)2W^K%|zWVIjVWm|2)5|y5%G)}hrELuR#qK=Vi%UwXM`B`W|^_@)*sJJ?o#x(USMI z>!s;``&yT7zi&oe}-fcLOe%Q?h9P|C6o_GNp%8CA}T~m7RFG2uhJz7sVx8^@;nm z*`XF1iKo}wAuzj2Os-@O&J>&9Tg{kFPyY0LWZ;Rnx%m{UW|lc((!OvgGjw!X2$Zff zS|?~VJ#MJ!IH95mQoyo)OlPMPiCxj!XtUwGSTo_d3l$|}v&zSswd&-X zt0CPR#9-M?ntw&=_$Ys|0kpd3qS+^t?lN}e+Af`eL0?23ind^qlCsw8O*8fi)cs7% zg2Yn{EP3%MzwpconTl=UvHrN^pj9rLPw=da1;#L8*A5LscqVRxgq|U;5H&ioRR{tU z3jsQe0L}AFtIgKN?@$!%5tpc@IFVI|fR?Q|I zAA8lQKTs*&k(v^;I$|1B%NhVrBKa_s&3eI4l@-@|Y~%9>q6F8?V*%W%(MK;U_N5A%Z*BIC95eHt23qH&Bv@MAJpTjOnWNJeGU?^ z z_aOhZJpcVHxqUxNIJ?@LfgJ2*;*}XYfhl(OF2{hx1CF)oIV2%>n^`|UbFVoXhk2M- zTIaVX9THJ3GSDJMdBu3bFuHDuL|T-=?j0Hh1rH_^`MP9TN6yPu?5nV1Q6I7EjT4_N zO71~ZN&TiFM3txorW)3!32N>h!G{vZCo8&T*ZO8hhwWT6UCc+IGSvkE}1!;7+ zhpsGAg0xc}Xyc5PRM3z*cYJR!R(WTvg7Y2|>wN}AsDN0oMO6NjwBjnK4m{@!Jm;hF zJ{k?qdJAzO>I@UN31#SYcvjdv|I&eE+Lz}<>zfGGHLgPH7nDuUq`xjrk$5h4#VssS zd+|TsW`LW>{t(wew(q==>%1`5W=$gaVIesW}$HO&LmA={ab^A7mf(VJyZb zO-{HNZsl7%V;ciC^e9evqy{T(%V_}{2pApW6pQG9)e;H9f8gXT*>Cr_Iw1K@C%37xGXg}XVeVc_nw zBBZ#*RRUcx9pNH?TpUJa!NqBed*>kqd*+;(Y1ht+1!_RT$#noAdplg;>GE;`RGU6h z(*CQ<_tAG<%o9kF(*H4uy8UL<1X%-4Hzqd&b^wwA$dHPa!enAeBK75{5f@zeC1oSM zmYC3sO#GDa(Bd{jNF)pkg0r}3A24`wp-N%8+93tuq2`9?Fm91c>?o5H)@s zBAoW1bUUct7u~QuzvQn~$Xc=X_|Yf2wUb|ZZ(r{PboOx#R^)gR2J^<-sb}mTyE;p^ z``MM7a#Yjcw6wne;C^I%SU{d6tidyt>nGp?dhO_HqoT1O>uS?b)c7*3N!{Ds&t~^0#Q7N0DPoj<=3Pd-E>o6z`HT!#(}9&%id= z`P(-5{Sdr8YygKskfp=_#EA8F;RFSM!VZw0{wQx}XNR?d;PD6ylxY$LUv}QF3in%_ z$&=D%t=04Vg4>9KgN(Ewr>7k5c~;GiyUvaJSlBpVP*QfqhwgD*_ozum zBQ4;|tg@7hJErhkv`8jBb<_+Y64!c~R5B-{XArC1CMPt}@2nSSL2I?aN0paGAUtDn zE#V5o-pW&Mdj2ZsjRk0Chu(k%e_@uk?2%$qQtraY*JoX)p`?AI$eHhoPP;Qhh?IqB z_5?XxhFL;06efL&$$67s*r%aCg=8yNO2#vjelX)W~W>MV`d88^6w}p#-OVuy2wJmM$wpj4FHyN?f>|c!B98US>P>0N&Wgb1-j!vR<+wFHlFttpG?{2Pt5r%+ zz0%yd0>k0j{OAYyCsoqBR-Pz=cG0fiw8lfs2+roS0-5tcPvK`A=@r$)#KJH|ql6hI zOM=wQ9P;vvc9%NO=fwBIG7|e>F=(E z$9Lb*;0G1%TPAOu@EKz4mh+_#K20P`UrQRJv9V(Fg*o~ zY}2iui#OX%88;XJ%LiCez%tV^ZqNXhGq4mfYyg#Huoqw`UH)YKdIwV}7GlD@2Jien z_t#w4eH=e{21pWwfv5GKj{|StO@Mscb8}k<*B9o%u+kLJ3C02leV8|o$@mYWbunW2 z8xa-0M}}r5?R~$RJuH(Bxi{P*_P^yRzh5}FANtAwiVJj;bN!o9cVDs- z-*frFf$mg$GjA07WsUbC=dkw}c!o-UdyT&b{Ov3*0A^un4{~yGwYU65>%RN`K&WM$ zl~E5KE0QxFRqr!@*Eb4geje$k>Qcd}a?(;k9awJocwlKM#Zml%IB7LN$W|RO3xBc! z5gUn3zC>n}0t)jn`X2h~#Or#keWTbmF%>5`nhS&}_A#)}@qROs32LA?m-n4PrIb8I zqX#mVR8cAKo_^xj+uD8W{*Jg`Xzlxpmpl)JkYBC!6~C@g_}~;q{ZPHylRr|ad_G5j z7b{I?UL21|U+HaNGF4UO7E2DV2)2S146za(pVxMqv~JkJwz|L{+*-A(Ks{>s=ptk% z3WiO7k|TvTUxhH=ABW*$(F=|n4q)Gfy{U%1Ii()8L)OpA2#ic+>`m)Oh^VpUW+Fn! zVK73{Wd9go=nXT(fGx^awXncMO<&G0NVg^uZu8;!fDqWs-RxP#|p4@ zWhn8%)3?OZf1QCaYXkFqPEztV(#{xT-Z&5rE4vtL%y!(ib`;ZoKGC-DdatL=N=-x9YMqCjIw5#-`>10MLV?#JKb==OhH(!|LWpaTA~jQR`GL%ahG z@X7deweK8LH5TBL@wP(KBk~jX{?b_5#bifdf4k>38Vd$8iqHfl?uXKDgf3_9 zHMoQ3w00+7dO+4ti$%Pd)12ZD0ZO+J7kVQg^!@*Kg#7-MZ$Inh9ZhUqK`zb~pNx&c zU^L+P!UD{JlASrjk?7(5rM0w(5TeR4)ItN=_W;H`CS;1m@0qblkFEnjnW;&So&(ve ziAB#7KbEJx120>y3}55KZs5A~cXzz(r`}mX!{yjo!NcX)%R>o&?SjYp`dA7eD>vRr z9z1V_2Uzt0u7KqnJGuPq4g6n7^$3HmybynPAES1sge^eDe)AzfG#)BL861ASeCL38 zDqt;HF=$Pj4Y25)20rkydBCsOy#{P<_284|_fz0jDD*Ish4#L}cL~+rWp!JGV|Cjk zgyGEWwma3U1YW*aqGbK02}S{Ef&o%sfF>9Lfkl`q1L=^`UGmoAI{(kU6exq2s&FCk z4<>|SugPaM#B)FQ9btcVdwlgAk};|e$#5s>tB-l&(C+ljASd>PrYAzO#y;X8C@J7# zucQs`^MgO#xiSCc&dvYJ=_*K5q3gyc3GQ!k{`-5oeWC?8>Nwbe?9I)85}8cyqI|8v zp=VDds=Z9+iu410oJHI^1_?d3bn!4Rl$`_o;}!oF!w%76NW@!yr4wUnash()6 z$yfRxp9`M^H6D6Ds`x~qeK)TT(Bo!78>4sMB&(o7E&uk!&Cppc8ngOCq8V4p!P-3^ zkI-w&gW1cUhaJh|Ixh$i1gZZR1h=OjK*0%kq=Ot?e`%Nf<-`F@Bkk?Q=@AgN{}@wM zi5Leu`dKvf;UQ*wTz7RdJi7s!1?FK?u-+x_cv<`h0eL{=t*I<RLctZKv(wkW$K4gU5`&yXj+oabfv$a$ME@88mK! zP|wabKyyu!PnTWh3^R7)#ik|#@N+=|3FsF^0!<@_HUP!+t6#)=vIS@Y`j7%%lbeXT zdtS_dklO#^l@Z=+^<<=@Z=?_Y_@Rctj2{@8IQ+xU*S8g;zdr;#9{hhyJ8s7`X}Ezb zT#Te#0YP&Bo_*tu_3zy#Bv$?qE1AalR)Ai1=!h?unO+w2s7@X8 zzC`anuQ=V&8y0eL;SUae;=)UEkY}GBL7rJjBZQNj60wqy!6m1!K~TEVH||W=4^R&2 zTjH$SRoBBE)UhKTf(!fo-MvW20YF*sbT7bL2Y8k@2%tK+uPTMW|Ni4Y2FUG~rSeVO z+B)0_T29@I!^Fc<&{N$_iaFMB|Z7`zm!)1!Ifhn?>h(BfZz&+8z9N2 z!UjK>2?(wj2zmfrML-I^$#wijCj&rE-bm(t#0H`T2ofJ_KstAmABdI#B;5TOAUVAz zjLiV<2a5Y2;zaHNV9FyfR(NkVW-@{2jk5~;>9qP5maa;xGeUUrcVyP$MYQAzW~9>v zbw7l@$1k;i0ZwD@Slj?ko&1-7(f?03?3dAiunPQJX#JiB-F~eDK?Oi49sUDC3I6Yw z>t_Z6;Gc)lzYMyJq@2vnZGOi0pQ6$vUFdi4mc=_r7~9_)U$zCn!5;(iJNt0-DaXCD z$-02F@g$vhJm*8>3Psm&xNloTllFJ-K_=&e%kJLeoSB!M^+yzG)4!86c`h615wHa4 zOXlKvi8uE-7&pLBAg}<^b!ZWiSt=9Y4$2DJooZ{18|Xoh zXEtoQZxqp4XY>)0(?9D1ZtMon5LSkre!#5^8+=FU(*JxXS-%mL71$cA^@V%=u|%;Y2zc7#Kwaf1=C{4(zg0Akp&83_6)aw7rd2(%mT>nT5rq2wOjUlI)O z8R2?pYW{26;Zt;s+?1%QM(CNtM1 zx_nFT#q?1%y^QR;TP6t49YgO^a#ld%DqIy~Emx7JhYzj8fFASjLSJtP-r!&6PNUf; zyK#hP?C8`fw?($fWSZ>dHI0&|vkS2-Kmn|Fj8bGHqk-L^$z9A{`zjTM*Nz<8vERZS z+aQZfEHA^5#J1Gi!#v~b)d)Q1CWP4p7ehR+vX5ypq+6`7UZ$Z&c@}=1yvP24D*OLKuf~CH+{miJag?HwIw1u?v}7KlTqJ7kUsM6$wM}h zi?FjMr9l*`oa5J4h3Y9zpCQ>!uR1hcv75^0@boU(ce`low6L0>(*QQW)hTQmuW*xk z=go+BmuwoQ0LwyJ)OFqi&HSY7-L?bVo3nWvyE=FZ2#`Mr(f^*Gdi&)K;MMJ)n>!gv znt0HS0~k0HfFb6#FH}=hLQ$eDXY*NH-XUJh%a%5`8y5wIufM(BB&u2`-U0=Mq+5c^ z?|jmXn0dzhXklQb!qaZV^_XZC%f<6JvkW-;#o z#I)&ct+4Tyni%*g@{(%oH6N$ce zY&jR<_^wn~F*eK@^LP&1>s5!SK}wenVbMFzh$U3kZCW$$w6iKnhI-{sTC2KvI|kShF|pesg>S}*TCEM z{979N`(^Rq_9MZ`)%33!M@ji_7 zM2&jx>Y7Mqe1LVH+`MX!7;{VFMew@?TxK`zVBGF!iGxI_^Ge~8F9UE2y%@oRz_BJu zh^hkXw3mnOo!H@s9WPjtpIlOsScjyIV30&Rcko+ge6LK18RS<%KwMVmWxcq5UN&{! z=BSjqc>G=@T^ZGYg*Uv8jXKqUFTVP%$5W`C)?DLBR2^yI!i20?*7Pe@ir zO*__@1%Kxp^{mn`>{4^gLAe`WhDaOeTnoU@zkGis+n2&5*<&5nue-o`Z$7Tbw?b6e zZuSk2tK~WmTl;Z=u`-jcGx~IVAcay#7wyhhovmKI1c;f(Rxi1SUSQ@>r{FgzqELBz zBM*!YYkkbPMIhx7%AuAO+WLofd*Ii!PA;9Uco^0fC?dutgqi|ekEzl5&pZ|J>x5DdmCe<&RQ2Pn$)&eBX;_0gGvF z(e2NWQY~fS?Ma`)?$VWs8&QOj!NI^ zp1ij$#WddH8MvnYB2Hw0u`2n(R{s_=UyUMfRW?a=mO!whY23qDn4#pQ1i{!lUb5qo}WtKXpiuBR*JXa z>Sfd96`RwwJ{eo<_Em2-irA=9y%5^(V(k3ZB1l`U4;^o0Wm#xZJ7S(zOO-S?0wC?Yr9+dBmWbPRGIw|G^FXkr5lp&HRX} z8dVMPv+^r^eX=nahA!b-Mtxlk7I~pJ{Zq_ULf<$|7*sH6Rbm& zFk;P@5?!2QGD4Fb2!F42iS7$9-n(rT_rG2Cx2L@Xvy{ml)PC*p#n#_z<0OYS7e_MkZCNk5sb9A9nzB9T@ZS{|lteVh>f zzn!;!rggA|--m}_W6%CPjRz2cY3TdQ*gDv}yvkRz7R1DjHKB+$VP@-u*PxuW#|avp zY)6hUl|vIgTSnOA9TWwxVO1!#G*cvsHlaWOfXplVkoC0Y?XW=iNq9{O@Wanhn|kO2 zG6!S~$ePR4Ll2NyHv@^MQ8zt_rYwfK0HG z>PkZhFfc?=(B`^a9l0-nabrI8i2rBYE9U>*{Q3F#g286aM?trsJ{bw&LyB^s*aozSzxlhxx585esuLiYSl(Zp{O52vIDSgg}mooZ9YzqqwW zwy*Fwu+*ShGRr9cq4l1>c5z%_yR`R{kXmbbzRdA6N=CN6x`T8X`Dw}s4vbXYGA1ew zt`%Fu#qT@?-fvGD%`$4PdFu|YHZ3|Ly6c1tzT7AfTYBVj3*YdbnevO1r5S`pg6MQz zjZw`)7ih&9qqH6(dg6HsKK7~tMl)!9(oKb6w4t31Dq7kib$0L$wm)l&lnzLMKP2C?G8MX} zL2T^6SGq)PJf4E6zH7PzkCJh3ww8o@(v@zjrSIBeY#D`xK5oI+78cNYogefh-lLU* zTT;wK5^k@S!l4-dfkG`sK-FMsP$G@yF+nqJ4xAFK+t0iN#-WABloa*j(hOEzN z@S(3$j{8B@lQhC+jmIU>r;4d?I^F9rl12rfNuw_a#eJSLkVOYXn~>9Y~;zWO}-Hb8P?_H+um;VegZ!K+q- zL1<%_val;cI#tkBFF977qFUEkMuNwR(BTuVA;l@v!81i3I1bj`x?+|}d1=P?43l^n zC@jML9wMxGOUFgKC?g~U5DF|Q8z<%@D|Bx<_!!z=V;c-iT7}x5Nv2ka`kFXOIr1?dffC;Pbz$*N!&aE_G8K)CCrckW3~Nwt&9x1zA%-8(-TgWe7Fzd` z`V!1QBtPaxhqjXo2U8TczR;%h`=rEN_%5^iwM3aWJ*M^~#-W5FJxzr)~@&#gx!qkL*sDW^)E}V$31=|ze(!)^j z`iscmFy5_SXwo&7vwB#+PMcjeF0v*rS@DAHW0{5`Z7V z`TwliVBXF?HV6+CmcT)|iI*>kmp37A^k4ugn(DR*z+m{UvX9W69?g+GX!quG>7 zuL(@)>8z6iNtEl@+{_sT^61fz^7k=Y-+)ojG>efl^k0nyL8u>7hDNS_=LC*i{gnVZ zx%$}?%!yFmwTRiF7?5clhjbh!0SL402tvRe*?tJ8K zy?IZ2s0`<(@}#I*fcec2%hmZaGdv#i-rk9{%3O(bT?ss!zWqjTa0=hFWK26ISWkPX zpDS0L7?M(dUhW%5U|gR5G&t&pV~Mx=yE<$28f9g*It!TEY3;Rj*0V*v^lL_65s8$h zE6^g3og4ZJU0V5GG-7vcZp1ysbd71gp;21GRdj)Lhz>|}a};YS0;7Kc$35cKN3Z_R z^5s5DdU!ec0V&`6G&**mcV#bkTiwr9xmhwl0Vfd4tGVC8F;t*u@T#4ossJ&%BlJ8{ z{N;8?iswXl1N~Q_y(bL*Q&+H-OG~Nz5s^x4!-nIArldS)T8L9LVxD8B!8>0f9vt7h5A>aXkzqi?4y{h!jMtVSxqMr{$!zBB_~s z<=qDf!EceX=&hZ5=y5(=V-gsx786vEDfjvffPgXZ2|INv&+j}=^rH#vI3Lkqi2g^X zas2*yr%f38&kj8m1x@G;!0zQoviyJIpJ+OR;3}8`_S+r)5@H*awhDNRyu+Arfm&A9 zW<#o~nVb|{TPsB@g4-s7YpZB8gS@m4k#~p(X8rykBhfic&*zv&9Ov`Fq5O@+SWixmHAY2RQ$6i~fh3ICiLzi;)UB<^_imF5aoZjHhX=d|lv96RZqVo(SBB z;k_(O4!DJZ+{-jMX`@I<5}h|;c)!#YO0jNi=a5=}OZ7eSa*xQw{<0r1Z%p20ScDf^s8Mvy<_)<~zFL-W zN+8bzGGhZRht6^JX!}m*H+r+4X8HJ6pXdADEuBJy7r2o*d}=Nbhl^=!8~Rb{6-2R9 zC2qo0UcgF|M2q+_mo!^yBZS%|iUe_e?zKqwU=Dt0KRu{RKl?q4#_gmR@8E)zTL=?J zeM|1l8M6N+`zF+Q(T8BCR9E*R!MHpx*{S$fZ6ID^uk z`Gr)x@tETE_KWS5W3Al88W!;6Qv;PW{$wu%nYv2bxt8-uw@!pN1fO55#$A3BdG{-R zi?D}q8`JCj)Ml-=1Qk(IgUyx!?iBx|Tze(%6j{0IR`raJJ*Giu#$LFE8R3HkPO`?2 z@9(hDW@_HQ{qo0;FxlBl!xz3DIFLq{FODInW#%8Le*P2IMP}rk!Rg^(lzrR!11mz> zgele$I4wDOqB==MYt5G{y7FwHe59mAM9SpZP?s151qB{?LlXZ$QZ9=nMGQ-{#+gaX?=6T`Da6>&)$bg1w z!!Y+uSJ@ebLHetePvHz#g)Yp*6)XwJ4Khp`$^_g{$8W**K*S2U%}|QdM%2}Aa;~(JjV~}#L$ z9xbV5lW{K3iTvSVFB%{P52&}Kwx+DLZHB*hVMyI-)@L*o$FK8m@fKdTZhL;#?o{VA zSHXk#Iob?b#V3+o4F`F$Key#4U)k5Su0IIP={zu%$N)PY zd${AM0MOt04_crb{^vBclCSM=Xup4dj`_&Xsc0GUpAz!1h5Kw1y%rNCA%z?qVjt79 z4iSM55&-(gFZ!>S<~=2RxU{%ve;+CVOmij}`(Id^|J12pS4~cailmAA4HF!{G}EyU zL>#Q_hkPE>0FNH&5?HlgCm{qM13PoX<2Zg{_v{_pAws3G280xd2&(2v@>)hn38#|!ka zOY@&XavMs+CB>nZzI6Xw@xQV(QbJHm-#MIQuU5rP^)D>V`%5p2i}rzX86+>etn54d z3rq9=(#v9^ako+1IM8HgBVJ+VK8j$il~ z9yU}!@-UH?!yyj`-^6_NFYqw`Pg5#3`2qEO1x^s3KmKZu= z>zy&RHw#1q30eU(kf60f0|{CVkf23?1g#KA(1K*FJ|J^I#(=DGL4p>L*(Nqf(E34$ zsp4BCOHNx_cA*MYIRd!WvcZG+vkI8ppiUM1W-n>T^s5Rlh6mORI#^or zLDK`&pFX8#NVPsUIcei61yNr1p8}bb_;Z>O;iPNQ+awm<}OxM2O-lJ7UN85Wp_sQo+)XJ zo|ygcA*;dD^`ZOB2k`EDIol<5?>_UG6)QC;RG|4f8ySu_OL1Uk`-Q-X34q^zwfbUc zt9sFcfsaYJ51!^J@|Cb$Grf6Ilkhe!%lGF5GyA8WZB%|0&h!|UX?Vg%)?XeJYukEC zvdKr0K7dbQhXIkNHV+-B@F8$GlTHkRH+AokR+M<- z7jWJfvQVZQ?o}X?edH!i#-LrjF0Js$f0DN2AkZKaqRj6Hj-8~3$4*qD@^98Zh6xRw zoZZhm`TbU)jSo4IaS+GvLdD0fenQ6aO){?~o%a!u_+o!)dJD}lzwggzOJo1(ZO0lK<* z3QCF!3V|lk03=LQR8%pIoSXu@QBBC`13xD!*obJ5AFN%STvjL~}B;*2o34pXa3F*fSwP^wn(bAA&pWFjrpEJkMj zA&t1(i$B)Wo1Z4dQvAMU(&ViAqEU%hLu29~f=<#+qq&ORO{LkNosTJ;K@qNEd~Io< z)|evM-=kQPU_juR@y>LPlC-zI%|oZ$ryiO&JH-(Jc*CLSTerhxR#j>;La<8aLlT!> z%+CgQx41->-lAU?$(Y*hX}UPox><))*gkx@P~Tf!w0&4nLuuOOW-~e6P*u+;`HFba z$<9&od-kR#ltTtln-1{MwGig}XEEsV*2AN-MZ3;LV)X`IviVZ{Vf}WB%p{Y_L0CK_ zRDjkDu*(*pe}w*TqjE&E@4;p{gBB5IkoftHVbDo4dXRaaLw;$0hvXN;sQE4CuQ&Fn z>~okVr)_Oe4AV0BJsQa{3V$%n-zK(=FHfOYGxJjezBRE=aK6Qx< z$0OKhHn1sT#NHCh^LswA+ENqp^&aDi3FMh|Cv@56QNW;n-iO4J|E8Su+NZ-BiW1=YlWKt)FsrXfxZ;!Okty zY%;9k)3hhH5l$4;Goa{cG3-H4dl4gQr6l^kQ&dCeH6HgtX}0!V%A6PKEChK3>9To4pg~4;R5eK`DZDu;j@)k(V9IVE=$=tRRe^P&cQ7!1*FAsB{V}>n-QL^J2Q|m+5UaWT z{WQG@7`KZc=`OpYeKPWT@NJ(B$%-4Qo@AQ7^3694gK;~5XqrZt(ooQ{D_`P!_&J-A zlIEdmg!z{~1>)>c61{j_b7sVy_iJxu(%<)f&)D0$ccF)$lm;dhI81Ji73JMRUN$Cl z-pn4KrMYm$X2tRQ{FyVu%CPk(6ifZvcO$85o|jh`sMBnYrJPs2;5+)+nd@;81J5@f zBAx=fs&+ld$^|`a3de5w-A;0H&{{X!9c|#E=hJ`lE(_D6fxw->d*@)Bvc51P3#@^_ zJ1^2sKIlvJrIx(AB|rb@X|x7bmrb}*-pNK~lkfPojHWp6hfK@o5!AJgLQ7}2U&p#5!INvZT5?Xo#jLC08~@;O7navj?8Uiqy(eJiw3 z_o-JWRNf(~uJPXOwXOO>iIa8Ft=YQpoB&gW^wMSHexJVQ?U6~od*@5o->>_SdN6+ zCUAZ}AL#%cqYYu+0I}#d-{1c;at=29phsR#@&YkZ8&<`1T*=IQvMRZD76MU5`OtzR zvDHZTU+fR{|F=>+#`iIDLx7VO0^y7JZEP>mrWdjS5u%SYs!=E>>`@BRsJbUl?0i~3 zC2@wj8zh{)Uw*#G%+|PYo9ZR{6vY*OwDnibhH~`Wz$un8#~*N<;4!Py;}dL;z?4C=`$aAX^FmXadLw zkj4gRYINPm2n(#93;%xJ(;7c|+lkS1^_^wu*jfq=^Z4^n&@U#ug0W8jZVR++TJEvQ zNk40VOJoCj0w^C)jSO5O2T)}@I1Y-B5|IdIQrKZUkdxTBB#uq#v;Z2_(Sr#4zyS^! zG2{IFM3)?>4&?Zuf83V8pEEPqg(D7l^6ntb%^r736{bfX^|;q0T2Y=zFZ{N`wS;hm zaD||oZ^?vd6RMb9Ub3+G;=)+zVXU-0{`jVIzVcB()Nn>k0?j{RWxuJX24tpCA@C{t)#|l=HO72W1;k zg6f3HHXBjS>cq(zuCa%zr(ZsLa9&$Xt9xGES0h9ojemTULjM}?{Q|WhtU#6sol)jS zx}AfXSNQHlwJ@-gXZ{e`zju@M=-t%t1IK0$$Ag2j*JomIR!8=8Kf5E>%zNf?I1wA} zLmFyDB+wt)ZEZmS^SAfb|B2RzdB?oEo;@A8u9QOn;<%$-&)mk2wsT97c`zv zD}A)L8#BoWb;B>U_o87fn)Sdc2g>h3ob%^vX3!`;)U{%qAgLi3)ED%}DN>pv)r=Wa zD5b;_#Aacc3%*ON5+;2WGZPyE;Xvt!JKyRJ(!hNT0Q$e?TLXJfKevAZ1nb^VpcuB$ zNyi14(E*YN$vzUvL#{R*14Jm+p8d#%>E6!Ke$1k#8vSJTaq#uqBnA!L{8TI~NxN;0 zC*^8(OGwxe@^ib^5~oQ#`yDt*JQqX6NIZ@4$)ZnJgHjBx8oX8ubAQ5Ci$uaC3k&R| z(FDw-QFHvHQIUO;KJ2R=?Gmi8E@)`X8fbQAu$QZMjij9S(t@imMHw>n^ zDPF8|`Em-w23s=PEUGvIf!#uej0Wi+d1c2q>Z+dpcK;kW);|#gD}fbva85o{(N~`# zOJzm{_EVc%S{6RQeIsw(dd%3P02)tUQodsRv;^zR;fEd&A)e9SxVS%^i!e=wO!K{?n8uY2}qd1?7 zPri{Q>AmBA4l}yFQV_FsdK9#Zj{pL%@!&On6yS)A0J=~QfKnW&AnTvs$%zYnP88X9 zw1tO9Nf}6Rf{`{i2@X^=qcRr%@hbWlJFIGN1BSDq#&Dp4(QFrPjrM18;qydCpP=v) zQO(1tdE{?9$k)%U2qPx46x(RR$yTM}rMAJ6$G$>+pEVaAN&d}%m8k6{ZWCjag@WZZ zY#Ge04=uG5)iUXwYZsa3)9Ws*2I;XqbQa&evRYV;{iY%+hLLbch9zRBl|DzRk8} zT21#&&~kq1y-5XMe)>Rn+}&N*pq4Jx`|0ic6I8;L?JwM($GmGQB9qkbUS6oek$e`r zY4}mp`bojCU3o1h+PznS*(0ureeZnH3tV5w4%Uc@h+I{8DA4JhC)+lc$We0MsJ+DK zL9D{VG?SWLA_kp@9xh!T&Rym>d3Df|KG{YyN%}K{;_u8tvR-oFGs!*5s3s`>WaWf{ z9%RgxjG+d0gY}O?#D97C)$j{IIRAe5{S77Uzc_OLZLyevZaKpLF!Xfyab@p0r>KAc zqrR)}MRz$1v+C7et924~FZ0!YaA)(DkG3zV1-X^xoa+1ywThe=&D2W;C&Q1{p^vAwKjQ?9C5Kr=bbVD{YuuMSZ-K}z~SPVuJ@^aW*>P}QPMB_6k(a$-+=2{>OOJ)^h_eSzpFZWam zzU<4hav3NQb$LrL;8C^G=l&S;{iFE42aj-Na`F?U2doVS#&gsA9IuZA2oZdD(<{V$ zt*Buw#_m1I>RA~r79QZE^F(|tY!Tf@H&g&atmp>pri4rPI{JW%u4{~e>*+kdwmiRv zVP=yX<~kCPO@4zVL4yqjhpZ-j^tvwkyxX)qDK-a3%&U&4Qq6&9v45nWc#IO#LU=eI zly4szpDp}@h&)w`r3zx*g@=J~OGEa0UE> z3?}_wdkP9p&c3J_5jTCmAiacj!p}%wVI502oE3TLJ*b0(BYPNL?so#ueM@F=!2wQh zAuKEoSGn5BNm;P3o~eeC2zC^MF<=|kkSY5hL7?~1wZj6H5b#8Mgbz4dlv0DUg(h~Z zD}DpUR3$iA)WVv)L$l#EYAo;?XFz6vf&eKs!E5Y|E+G#WXD?$?(+?S~ph@;2TCOrM zH)$D(GqaEKG^zU=twPqfjE2AM}X!5CC~Lj)=NeKkcCHgGGu*q6u>PW zSTT#pS!-a)8gxc5rb5#QlJ+v}Fs8mE-(=#(`PfN*!$A&`1LMEE8A>4QU&$K1VOJZy zr&gFfCDj?wJ3Fc)>p$lCk^mT#pB+IMoiq(-SkVuHcujj2CAj41S1g*mwR@YqR}1BT z_m|tCS&BL5gE*c1WQKLd$0?K=`yQT5j>g#lZMO=c-qkUrpTsU?dZ`LrCgy!ORqbD z&1335cS9|IbNRxZ3X5d2QI@SC=4O!S6)wq1j_B&0sVNE}%!i2trQ_kJ) zK_l@uq~apZ;v0J61Xw*aJIe$WgZjKVqOqCRM{+z2#}^`9Sm|`F+D#Uk@~Dts|MLB* z1!n=wO>HCjUWP7fC}+0G*^~wu^2^v|&$F|6wVmvOPm8Y32glPmtY3B0Rx3HZk=Csf z=OeIHo@zRso`2CnL$Z7p3?m@7weJ}z5qehbDfh94Il-M6wqxdSR-vov)p|1BC4Vis zOLXadXHR>CJ(-S$DOFd>Ykl;vdo>Bm<*|G@z(`g8UBCgyM|)C#)V zPhS)`#CPwGqxlLiU7;nC=33O`z!R%PWG=e>pt7S(v5Fhi^{Jg&mfoFRLK&g`Z11&)SF!TU^>TWYK`p^WT4^1HY(B!=VC}#;@Tg2@$aDFF&flmdbHL~cQ_cISQ5FJ zXjTvwm}mtWStO-OQ*VAJma7+^CntIA!-En1R*Im=dn%;#RlY`}Lysl8u|xpHaMzW> zMxNvnoI=YQ#^uFIi$(_zO3Y68_r%6E7KD7&+qkMZk#Qt1??GLrn9rVZx)wS1F^d!9 zb7bT#mXvu%?6O;^^u+nK%TmZEXKU?z#K)dbpbU0`W2;|l()M*3;rqJI{XZsqM!Z0=FE?3VMKtLkc z&57OG`S}`{Fo_P(aqpimeO2}ejpQ+pC0c7CK^@wZ*cC0b^%1}^RtR{_Gu_g$hkz;o z6#=RzDIL2HsB960tO^#zq%FIkDBd}P;vEFarn)4nJ}L(H_VEwi`CELrj=p;{dsl?7 zy|=T6ji0w8`|GpF++^dr<9MPB6g@eM-H8;23kErU)F#aq;Hp16p!-mlq@RQ|20H7G*2blP$TepdG zq6eJa`JVldiwl?ELv=?N(IWBP`b8)xA&|D+d-iuPW2P)^`&nbGLz8I21KTBA*qDLHSbrWb(Psxk#oTPAz}YDHyhFng%#^H7-RK1%J z3{MdOqfgDd<(V_A$$-2oYbDD`mvfY+81&N7<1zzklkgLy{ z#bdS}F5_e#zq*Kljt&apkdJV-EH2SQ*+ zSeTRWFfby=QDrJsc<=~kpaQC}=;^!suKIg^n6fz^?TrtLQhZf6Qh`&sqlt7X1AtRG z39l*p#0VsR3jhYRIS7|65phYK~s9nEDV|uqd&LP?P7DH>bncR`+Y7p3AdQp(wmVFRiUG*(7lst z+PsDCvw1lQG3@rEN^0ByR^nMk%XZLs?~+vOVoHzf96b1)OpbPp^demH-3r`q(cn9x z%bcKW|H1fs8ro&q*WPxCY%5zGI@f)Q&s#tVEd?Fis=02h&{o1P!T8@X>G6_HU^fmO;s?w(}FeeE(I&Uf}%WQm`WYaUX4oT5z@ zoqDw|peE@x{TyKSh@W|TZOW{%QEcj6x_m=xd7g=gLcnF#K(?-w5){QOedwN`ju`d zqU?t{i5N9&x#3HH1v3UQaGq2XXD6N@! zy3hTX;rk0Vxg0$-@lG0466{ur7PSkk9c)(QR_R()N*ttQId>0(4jW6ep$+FU-!6rQ z7G3vZupypCKZ)<}!N=H^^0@5fkE^Zp4^mY&Z)Ia!z2AA zCJkDV<$$4;_cG;j+M9)$=0KTOeXF{7?qrn@x$_<>R~5t+=iAZoyh~EAD!!dVQ6_W6 z?JT1L!waQ7d;Kj1MFu*~QiI6lt_5YQg>zgQoOJ^oCB9`#Q}K;bIdu0tYTgswUv1zh zNa4<6Y!Ddmi7Fb<*-GQMaQFIs**A6*lK}(0P&0PI_#>m_J=C?J0Nw8i=_qzJOT&9jr|Q6mWV)WU-zlYz2OUYxV@!Qq<9}5 zbtg|oz=X!UW==U*>CLN`KS=f6eX8xW_Y@2b4WoN#S*kW!o2gj1C6r#>7gdYWy?pyR zIWDCte0#5ks(Np1yJkMfW7=O`Qq989Cef~ZC(Edxvhb04xtWY9|DsZ%QUjM75rMVy z`h$y)>^^0EeBwtGJ6REhlRv+8v*v19(Pjdr|H2IQt;$et-)F@%1tRVd0>lGytJ|kp zJbCYWI^fp6>Gt=mpbnn77HNLJvLL~}P0i?)H*Z>8$XN{Y9Afz;O}C}}^D|rOUHLOR zTyJ<|MWsq>^}j%Tc-S{hb+{R(UX}&-1aU=M@g{my*-j6~cz@$IIU}ZV?;|{h&8z2! znRKSGbnBqXgFx17JmP{Ak{HVPp@GB+@J4*rb%Is0j(5W`sx`Vq#f&@99QH3TI_0*k zuE3tMn)q@%i6;>+f81z@PA^Vpe-7#8)HEBe9QO0$(5_Zo-ni8N(GJ1A4HMso z#fp|m+;Gh%yXjWx!?I9xuUjHIQzcMc!Y}eY!OjYLtw(Z}MV0kJ$<3AUn=4Ol7FXU_ zQKK0Z2|!!)eWW00N!F)fLbB*>r103v%`@H2^PU@qc2$6O)h(0Zs8Ra`*NZIVL|?N! zgGd)t!d4s^M}6r=*A{)9s&1}$8j+-V+FRtoc>BIg6LUrTWl=1gB)i?zlthiN@Y0Gh z-g;8(ye01(>PC0>o$ww{7Qfa$^R%x(MR5nwtfrrW)HkD5X17=H6cCFMymj3Ll z>}-}*?b{@VPEJm^cmwBguSYwPc)gU)$%qp2||ZalZPKgKW@TK5`JO}nfe z`F?)Ukk~+=pxrWhu_Hb=xTBetaoB=#i_zI2)B%2u^yZ=z#?s}Ez<_RdiZ!D6^=B@3 zUe(}}6_)-WzuAGKISjwvHlx7db_S0wzfn29^a+O*ZYF?Hx$Da^b~jAxG+e|{lqu8w zsp6gWO|o6DWh$g+*M;Ryj6`uKIMP%wA8ji1kmU!z)$MV-2(#{8j$>xBfeZWnc&=Z-g_l2<~Sw-~Z$H|Luw$^ZjP_ z-uC{WIN;S`>1lGt+ZJ{wJo5NkQOimX2jCrK8eL- znFe`R8lT2}rwqOKDI12>4#b1^AiOlCI2c<_jTu9(=^9g;Y%{Y0>vPq4qht|}kt5BJ{gu4hP5=N@ z^cZtVrv-bFauAL$Za8n)!fo0Zg(VnjXe;iLWhLPWS-Zx7M?d{xCI5D3SdQjV zc{g{&0f0LK{>RZn0vtWoQAZC(0B(gmdMrv=S`vbzNAjmnLXwISYM<7Hq*`l6!4RNT zN-zXShcG&MmJBjAiv_~Y;0%&zKM7&BHhKy=5~%zkAh3NG4FtBsXKO(O;vle{4FcPM z%m5t(wpl=6dk{d9_zgkXt0@~VWAfWvmZR&kB1=>1eH%_NaHKem44Pbm{TB3n~HVz1Ae}S~_iBa)wpTz@U z-oAFAO7&$1h;7eE+MrFXb4JWwhDOe|O3D4OMTI(6sy&KH!LtQ%pZ|LgU(wkOSp)Sm zyt7T{Wd}b+ziNSfH3Ia{+2ik>KgK^Y^6}-@w)aM`_aOxov>Ch&0;c4p7XuJD zc}yjZ+w$A`fw{mS}DD5~x~R!-~H9=^B@PE5*%I&FxOZW>ij>Nvk)CgJS#^FQ#>u7C8r$n{n*(i1Lce zqecwZ$u*Ql9h{^H-IKFdPE~|r73XC!a67d};rY4DD26BZ5}A>l*}2c((yP$`wJ7l& z(|;YQ`&N?J-qk69cBCO{D=S-uaW^X?S46k>h48@L=a5ZnMc19zviMHtJ~9skKvp=7 zuI|dnEj?`HG7-6V|Gk>fh{1IBZk&@fUGXJ?wuczvBUxCs{ne!0FHG(Uoe5;uy*1wE49smEN?4h>!t))K|>59vn(8K3na6jlwn|gOOF=v zcsmVQ@2@A4tLO6s(2s)5XrP<|tB{Yt03fNuGQ$G>vOy>|w+{qX`9Vnq1$xpF0i;t4 z9}sx$#>ejLCcy6G2e15vE?|b2ky!LKA&H_w?}MZi4$kclxvx(COiI;;1@7^f$<-@> zinl+j-;BUGFL7?>@!}xxZF@r?vG*rRT}@bECV;DZ#>og-zt{}{vs*wWN|?a|@|pe} znVfg5|3_$>eyM#sJZRzgT7i6MpYw0$9EbNIbc-yf~50`7<{EiE?pkRE9-v&M-BZrFp z1J|E=@t8BCPgzwHA=96k z=)hWlx*eG`;-m{67)ckzi21f<-(j}yiGnvW&R}?mD?moPbV9Y~&PP?eU)JIqR_nA5 zW+xs4cIUN#u=N=xIGr_*Av?XVmx7|h&>q_i!c$O7<7q%V!-@MF#x6Thhq4Q zth1_7jXnhwgAD|kt;V55DhBB7I8YSJUdJOLS075j`IlmtMV7@{hXuZM7nQ5G*bqi4 z240{Te42iPuk=DHhA^NQ{KEpDgEv1oBWCDRp%>7CVwdqi%&|m)^Ebsnhg1wWV5ZYQ ziXj3hhOpli1N!fZp`5c3&CB=Pdvrn)mB)_UKSe8{r{gU$K(Y3RI`}UgWOalq07gS@ zlsz1}?Rz-QY~7m>RKWS83#T?jAUEs`YQwbkkoA@;Z=}gcLgs3pZO}srZ%E0df+2=X{eDtjrEZi#|-{@L~u?60Rle2-TFBh&KEq&pC#ublMvuz zWxf-4h2Y@WHUt$xI5|(EwEG>&O4#uw=f}iybpX`x!BhFek4A>@f1n--_Mso$5pd>A z$`W*Cyz#}04D>QT<89ql!$1(1yIwA;h9t^qp=llxY21dur7g>V?haU_n zm8;#sLbefTEPo&bm8!wf|I#XH|4(dfP&RZDdnCFg6Dc1~qUn2!VqE=)l1MP6lu|s<{9aDFgUG zqwf)sH#-o6k`So4@m0S;o#EjW263Y$FlVYjJS?!T0GxC83J8JKG6L>wA{~%w25lqC z^IoNr>4jf`n_*6ZJddJ0j5(QVJjl9rH^{>`=!iqsWkIb~sLlwe8a^no!bFx>0V89q zvZaVjkC9^hOpoz#dY{2uz*Sk-rp$_`&w-wWygKw3mKXOQoCP9Q`G=VOm;QnQsP{*l z_w+`B5&&=q|AQHBU{^N%zTjb(HOMIn>4sr(ku*0pHf|!PIEDGz@TI`V&N))nQ#U!j zn;06aO}TZea#b?(1_s77R5rJEyNrgJ61RM)vugnGeX+@>IIA0Gs2K9YsjKWD6}-o~jXZ^oK$9sQ9PP!f$!al)Ze)2MW7J z0amy1ci_yP|4?t+)Y3BJRPIX5M7#vS##SDD94&5)6>SgzCj|v%(0W zULFhp7s7%7ln^xl7|hSsNL!MQv?Yx^oy}lYGpaZ~g%Few1>=AcqMr>+Un0_El$wgc|Ay5G_0`bjii6WLlI@xY=>QzP&iOU6J7{JLcf*giq!aztS41{FD zW(B%4F@Td@gE93!O%VL5z6Jpy84M7T!9EPhRNw%k0wOUo9oUB<8B%0O<|`O3dKi)c zbGp_!!$3$Te71E|e%v~FDKhVe^<~72+Yw=HnJ)A2zJx(L%1Q%Y5KVX z1NDz0Ly8QN_ikdIux2(E(oMkPqD9Kh4oYr9sDT~>a#M@{Qu78D8Qd2mo!0GsU6>LGffaFfmh5ENAktv(XD& zWAq;^_qQfyIr=UP?LmOpL#ba!HQo!YZGB=(d!nYX=^I(_OARVPR$&F18{e&!%oiFP z6rw&r8<-W+TQMmRN6(@)>!;(?>YbpRb^x zV`b#Cc`-+|^bWk7XLa`!=c4lN|sH$SY~G$71zYH}x4?xriSmw0}={bV_j1 zyDz+!@nQWn1@#S*hh2=}2~}qvc7+miGn~Aa*Q|(Da7KP-;iUbGF4uv0Go}KEq~-^?Q=_E*9omdh3@w<$7CC)33~LqF(p3GxqBL$KHF#W8J?0^Y(ZguB*Gd zhs*go&*MDC^Z7jL-utp%UA%SHurm&2Hc7>sEc+|XD=sSZI_pT(f&vryB`Iw6axW=c zZ+L6MoqcXe4R@7mZAozR&DR@a)jLO!zBWzkqvAYleoXW~)eR5WHqsV0uHdSWj>^RY ziF-sk+maF_6nd`|&=e4maVVI|&ZC;_ei_dY*|Qa6Gn0IFkABn-Y|$3}mjv=)j$bHX zLK03{N!F{_@s#G_XFs@-a2gSF;k1_rVR$vGEZn}esM)1gw6YQ5)t-ygL{1vGI&@8aL2D2=_Jm$Sa0QI`g2QJF7HA=WTj$iOws>BH9K-E}^vz#G#KY z8@po_^(&zl^)DRN$+=6flQSR}LqOv7aBJ$x=lE=VMT7#ei{qc~Fz!vpN**8XdAC*AcC<&LLgn_(jJchbenpLASA^ zM~Iv*kPSEbX)!z!r7c7YDQUg0P}Zms5ByFrMZBiv`YMzn0L+vnZN3d!^5s9mv1t#O znLWIWc}y4O#m=PNa`a>5wC|K=^^FOIM)w5N&r4`%nZqOdb0g}2M<(Us?(|)D=zk<9 z)BDLuE?*PIz>Zd|AJzX=e38LAZn_?=;AMSKW-fez`qTk(k)=XiJuy1gmc$!RkS?sbl^CR!0C>-4F>@N7nX>kYIIqleQO0eZ=}JJ9&x(t2YB! zz1ek!j$!wE>~x;Z&=?z*H300NE9eI;tD}jzx9fiW9JE#DY@i<-Y;g84sH;dJ%jaz8 zvX4Hj%VE@H%FbZS?51IomIIROQE57AS$t{gKx#H_Y#VGFWJfGMfhjOOXL9!?!RF`2 zo~z!wHgCjYCRmN=_d9*-r;Y`|$ zYT~yr&BIrfZ_+I&tSVm1zt>DYG-`Tks8%g^ls{QBK`mQ>@?;@ht77~MlR6Rm^I=Pi zW#|N++07rR-|GaC6`^Q7O};5kxIXCWEf%ZmSTp~TBQ@jZn$Q`p*N%nkCf-asdEG)7S&vy?(9W~am>P1$SeETV$1(wd?jsz1l;Z?aC?E(1~Sxj!NY}E7fR-m z(bb|c=09?d(RFlWTB-0r#Xl+v;;dz2D6NLE9>%&PS&BIfW~fDyI&m;l0q3AL49pa!RhR{^E5 zDj$Z)tS|Q@>*oX)CF?J&HM_3FZA;dlhhZ;MabG0sjo{609F)qH&er^m!sGg$W?*m} zpS+2fIR`b(r>R>I?RFr~1p-^nqQQy-);{--=Y-+UfrczhAN*Me;6Edaa=_tKxA8VH zxBjUX^q=9Q9S|9+IC(nRdH6V5?8oxo>-_6$hw$K{gt9qCtR$f-b_W*jNgknZd$oSL zODIt5H)76k_74k#z2=A~Apv{si747-4$ykThnRls2!OlKqC!l66AAI818_GFfV-U! zLt6VD7wSWTn9yFu`(7V{cIq$SZUA-v4elo1(|S8{D5|yA7CjxEPVh263XWspC>jjM z!7Vbs5RVgHUHTC(+$$e;8gjQ4f|bC|vkAZs_nHud98TaWZn)RfTckk256Gt&Kt9b$ zh*k#R&1N3MKT#Rf@lJ+DTL>mk&a@{4%mvqX4~{g(YL*;vi$; zZ-Qla`tTrvLL6EVONDk><$rzNxtI00`cG^J{*+zqExdU?8QxFV$dW7=5@X(C{Z8YF5BP)2k zbVD!~WCZCO^v`PhU-}vWvJ%G_g!kE4gFPx|@Zj|O{Lup(R2v1B=3d0O=XyVEBEv?c z>R~|hyL~K7q6Q4m+HHAGI0j;SP#fi%o;Gn0ca44Z+60O_Ft9v!oDm%qJ3vNZpk*B($Z z)G)ELhIx6&o-(jfJU{IP_i#Z1j2er#!5@QNl~n#D&%>{Kj%&gP4O&P}+s>Y0Acrtv zv`)IG*RV`}@+4LmYuG7bQ}ADoXyCtS4na-A0R?!EP&@NR1yl%32DG?%8(bIJ7Bv6x z4A7vyoeL0k@LeTDpj8RFl4&;nB^(qZ>jcHPq*v-Z9|T`dmzL zU`Vb1ioRF$ZD(dkef@zU=FS*l*_}CcMxvh6s72iJwj|*cEEZTZaxeV7U1E*nBLs~3 z2AG;%lZK3I#Bj>=r!!%IT~aSUQK{?U;b$VgCy7c=&J%~fv_vE<;-igCChB6%DC1*v zDJ!CmNtC16zpW=N8*jla^XrOjc4hBsc3p&58h9P6ZIP_MYXM?8cV9}@2f-UNn5G`* z*6b+!5;dVt2=Tt#4#*;U3C5G+ie;ilE(U5zl%v$G#Y13ZAU521{(~IDWVKM4-j&CG zXdiYS2fU%ZjUWY`D9afi( zK+x=`>)cjMmc64$u zQnheIhABTldjE0JzXJ-7DmG?L@L~RCKHt9IAn5W%_A?Z_WVK)dpPnK0VkTj@l|?4%%*cn&{+CqR*(JqJMe#ADCZ5#k?y)8aryzZdIuk+_ur3GV zL}y@}=($j1KN}b+$^j!qQ&DwFI#4(+kWZpRTRCV#or2I)QA23>*?}ecEdq#}w=l!2 zOGFTDW14p%qufg-A)$mxKh$^|XQV@xczRQ0%qt#1l)ezsDQA$i}IniMMSc`5!oaJ`-|bH3JgE62h;=* z1d>43Q6dflf(G4C+QtOW!8?HusNvO4wdmnq)*?Ey_l1q)^WL)hUz#I_W=CQ|fR>>i zy0*6+fzE8hb>sLOf^g!-u(ZF}rl5y!I&Pvt^e0u;>GY(D?J6Dmy{}%>+5I=)@yq8N z8^erII9q~;!$3bZgwBxK>i~bek1&o`Kh(rFn;NLaCXRVe(-%{_V7(BvZNT>suHAm% z;lU(K#0INg@yp8pp7tHUG}LglfLVcdPWImW5y%gZ=;4ltZI*(fRgt8pGpGRv4eZBv zB<9GrwN`BVd0AOx9P*Kf#0=t)OUD@7-xJNTpg@!9ga0L)Ni2XxRKt{93TW|=g#-de zw*U(48Gu`=?PX>#)Ubvbo_q2$sK3h3fb7iQ@-vmlI0SC9+jMZ7q0r5jO$VXNJ8R4y z{sD_H09Zsk2N1Au%f|166@b-%<$PgdnDj^?1^!h%GsC3cBJk3(prSVS!no!Fz#~@T z^da+uH&Y}xet|_){{@R^E0-xEr2`iiy#Cf@qm*W9BXpb1)Rhd z1RYs(fL-AS?8-%P1hD!2@N~N0QR#I133ObIHtbPnVxojN9PL!RYpe1K(da#>@j9vMsCy|aFgSZsJ{#e3d(>) zod6)JAe7CBq_4UxlR@zDom2g5a~4)j8BMUkQl-?6DCAi4m7hz-~t zHWgmw7?IdiClFm2;(iEiz86}hNPJsE8x|oU3xJOw z?|;Beu4v+J4Z>>XKgkDg;Gz5~AH2PbltrSrQs^-K*3#8l{*;@s@ih#SGyA89AN%kQ zQbAAhk00ZJ3rfb?$;K2=4SOiV??=aFV-*S~$dZXl{tYwa(dk1T9cN=>G0YbH%11lr zU%xiQ+I>cL5u^ zu>kQp0mexQa4#@!O6bOd6?G!Jv9mDn_8!Jqb-_naj4dYSsJ;hQ3gO)^p&l)ys>o2! zVG{TI>1gn#-aj2ya3CI;nM&4Q-6n<#NUk44>anp&1OxrcNl|c4h5#M}8>TP2GYB>g z)(Gx&zjLjuY{R{4pbeQ?KFQE7xVY!&^ig#d0ld{&ETR=n=HXlWW%&PW0vC+}IRFpL zL;eQCHr=s7{Dct3A!EQeWTf~BDdYg)NVT~^hX42U4FwFZw2ELF7N3Q%XyL6(Zvh|r>K{Ki75weL?(-_k zX~Jg(9GM3)|K00zeUH?Xl<++QxY%`WQ!YxASNUH$JOyah+u=}|m|mnM;%5Fz2qPS= zsbEy)y`3-UGd9Uns2|*4H;J`A6lX}a(I*JEqOwAt8FB3f>~fKkBpcoPOAeA^$4O#N z5IVB(eh-@|i+EXa%_C)QpVZ;%#O9!|!bni$MO#$lL+i4j3Y`52QM4RH&=0UD zGmOzKv`BHeS>qy7M#u?4^$r1HM*yha1%T>Z0I1#t%)SLpA#$*UA^)$-WrbLz#Dt5s zlG8I~1z4mCgky!xu61DBU}0cS3PCamYz{1u9Dpt_mo`wmuPHr#wmU+l!|4kZlQMI+F@ux{{`tP#{_nZe9}2HO{c{t0 z2Mc6N-on@uA5e)d8_15l=LRaVmX;PiN3;|m6lHqhzM?cPd9?G&KOR%@oALw^9$x5{ zFBTfZq)Zku(MnPQYWU{Ib%?H(7I7FRk298ypUQyvHt`h&(MsAY1UowxBE&|+zDS4m z)&>;PVkIJUba;fb1<=+{ikM5J0`5Wp*Z)$;4Z!eqod%7P8%?erU3j2Xbr$YANM%bb zAVi$vEgNSd7fBk2Ja72vm}+x58_3^!A`F z`Z(cRHl8P0Htuz@%;_qoJ?e*@s6gqKn0cQ{Fjf2r@|kj0Bq4I$vDl*g_aP< zh8_}}RS%A>fRrQ85fc~ZY_WRTokr#k&$C$^|YT3P_8l_7ZFHoyi&wsYQ zG;sE-revcBz9F64P+L-1XbMi| zGdLOaYwH82c|h)W(8z8V+J-vspujWwBne_TArTK!|4Tb~aIB@;(SG3Gf;&DM${_v7 zFTUjWkM)O4Q*+$n(@Me(F$)A7hzx50> zyq&y${#BztLF8z>_frw;eD##W!{2{ZqeP{lgMU?S_*DPeS^wlfWIY@JtSPJI>Is8h z_lGICxZr>fCtStca{~DI98lFT_Ai(eKPDv`d|zT$A1fRHfE{MW$aO|wGr5)*BgvP- zV1KXs@9yZ|dfLin${w!fPMrPc&SK6-AyuOvVa7IoH zbx^Jl$742QBDZ&0Yt#%^>9E%ASY!VaPZ^(SOj24?NxjcBCpS%f{z)V4n2r5P;iuT_ z%8O!_n$xlZoj#K6bcfPArB!Z;socZwvu(E~kV^Ku_JTUwk21$^G_SJwUj9Z3q2^pI z)sP3>8INu2Z!arQk32t|<+srvYFfctLi?8U&afK$tOEVL2 zACA2A9#xQVaERWR=*FROt8frK{=U0^BiXw7;%F($Xqv&~O8!mHnYnK&G&WXObSu(Q z43>LM{l?!rhHdno^^Ke%e2`1Qa{P?T>5*Q%xPhY;)dMD)+QA8Y69JtB10VJIHEt)Y zWM1sHk$d-pCVMG~gl- zh!pwZhaK94ge_9#m2|xv@L!%vjmesjBGx3P9t<>Y*RPb%ZM*Xl415~hqEk9nTSr?Y zpJ1_7xYIQ3Y-qBZ)-rPM>|n+uPd zcx;!o4`JuLy(L}XLB=VW)u+Tn@O04%wdH0rR%{vL5ql;a8V5=0E;T&~wHwEe zyQwIYkl^LKJ9K+nNdD;>YKmwmr=jWFSaLn?N3GhnC*7V0E86RvHD!`If>q$p2*<{O+p%EuX3B>ST|k z5m@dITHABfE}qDK**@kS{aSQvBCUT#*5FM_ax9j!U!qSlsD-M(-F=U*M8wH~tXvK= z?fJ2!ho_sQVCQN4;>UjfQ2*Bbp={#iwwG6!LMV(6PW=1*fh@wn{XuXSM@$Sqdcy@1 zsxSNX@o#SOGe{T7`NtprZ>@-oiJOJ@-io;Fjd5|oN5nouhI9D%_WPcEXS)=EhITD_ zUxr5yO>b?iBZD`G3CA0Aho(~Bn}@2naup{)qg*!RPeX|`lQNy&j&m` z;V$|9K=v!Q|IG(}&j(sd2XTMS2lfN{-`AS%AJdCoxOQfzC8oTL=r)%fu^UT_qu>-eXa(~^GRa;f2y*4Tr)YIC| zs=RVqE!m@f{@jD1g{MrF1Vh7eS%b@tSy4wm)?A6Yb?auoD_)M$YHa@nq74!zvvvlm zE`peoZvNNE*y?U^bPDE}K2|7DI+3GE6*8i0T&bqx$DL|-t?B(?owZinoEO-si}IH> zTv;C6swF8)Z6nT+AQMb)3Dvr-7jpfHNu0~=Q;InwO0Yc;IcX$GDh9Zhfdf z!Rx4^?q$f2SVG*4dm_+Sx3+Jsxeo0aDci+{=#F(+oqPaDp?q}e)X{X+=zB#d|3Hv1@hRr&TuhqmOx?%;yZlb1;f zT_`p*nr|xSC-l5dF49Q3pq>4xfOCvOZLFU|Ts(;P$xA!aySVHe#iIjinpQF+b&q+` zdg}FxM0Ql?@vQvJpeL2>v?bo{8OlNxZh}jh%60YwC8HGuQlphpqaI#|J-RrvmLHxN z6t5;*FO&4uPZ#IxH6*p>UaL6eJu02L;W#SiH=q2W^SIm2kPqX_E4#ea0nJxC_M)2O zDQt%@;Vko@|7lYlcqo;f+{~Q3l>4OQ<4gc0o42&&p%4?yQ#`F#5XR3sI~g z#op2FP(++CuJTb4bKlL6#3%3g#Duf5j#|oxwS*JWXZl!l2Zj?GL~==E*MvtJv~g{G zy+SuixGO&8w-dJM?WM$z%So~grrwDTS=wwj5c!Z_zi9b zNJP^GG*o=uxEdC;J-1PQT)3qM$R?zQ<}=uH_ll`AELLSWI_XqKC`a;zU^g;8>_GkU79D#<&_G2AZ?WikQT4}oHygZ1``8S_Y42ppowEKQ zH-4Ueis#tPnEF+Wt9L%*Aw7NcNW%N4;A)D0iFbc@*Z&+^es?!Y9+xaY4*{tGi_~ay zf!#56#p@XUv*%|eRx`xI=bLv#9HLt*13S|D>nzO9-IkY=E~6atIJFQS8J>?F!KlQ< z%9hW{p{-_ZuBuA3)EpQbD81Q)kZx{SUUNBg<@ICVsVUD#b<80bSbeduLSmI_qNceD zZ;HGsIaefotvJ4ItIKb*+vRZSop;+>C&XVgF1{|*EN+fOr&H4R=WRb^ZC;6go!Vo5 z-ZYV@pE}V^o%Kb87hP|g8KQGNNp**4EGa-lGdc6l8JyaOcWcMPWiHIsrPFlT$FcLN zdS8@`pQP)3Mm%iEt|Z~5Wnk1a+)hEH}R*LL_ToF8KOt={+hs4Q)C z*}l@KytjIpvVwAUyl0-{Q(ZB-t?Y<4?G;ynmW@-fVLNiY_UG9*DjH1q>t^-wM=S8A zthQOoq9z&zN);YYj@v7oSmK=Uu+~e!HNU5tO|aR#{Iq?dylPvwQ+4+P+bvh;kGf97 zcQqjS@PH1-)sdsalcUL#x5<;O$y3BZ zI)wj9lqHq&d{MJ_4~=~yeiggOn84ko+-^@rs}yR}6nfJ-hmX|D$(Ir;5SCaz=AP2$ zqwIU4?75@tog(d>@a$Lc?2q8tr?Inq5(wa1>$vlvN~&Z1xWQXN;;%Gc_o9a|?wfAN z5d&nuc$?qLF8`b{{Mb{r9;WuTz}4N$81~>#KZoq9dwM&B`1n!`&r}zEr)l@@eN#em zmRz5q(^n+#DX;dDniUO?;#Y8~pZ(*t z|Iba{?`tM+Vee++XouwFLT>XDr$@2{9RMn-`%NQVF*3mW9h%G$q-nOAe3UI@lpGRL zVAyv)=z2(op@2FN!ozuWp_JN21(SHroxuf7sA+Tvl~w^KVI_oUW9Pkw`l0ivEi~S- zX`u1`6)9%kh-4xnK+HU7U(6iDp$5Rp!S=<>VU(KfG5{rPfx) zz#73a!0xjFIs&W)EGGoiXFck~CFzeTo>;r;iNzw{dotcNK=@VDKIJsRVLIgvESuUN zm+io43Hn(ud!$cX9?b;Qld9K5I0G}83mGGhMrD>tVLuQ(ol(oY#uW%s-qf_z)GB?) zq&bgvWMoK{R_13kGiJBlz={Y>I2xGE9G`BDBVFd3O1SJdwfik~I=VatOM1+{+dDI9 zcIdIG2F0YX48NyXGhd2NCZ|xVXmK!+uQJPSVr}*5X?3q-On6ucL`TNgn_G>q&CHTa{Z^Dh{ zvpzebxGSRBUn*(vB{8Gqn>AGdwg-C#8B>KX&eC*nh!6i$)gA@vg(2DWNz#hVa}^3` zOKuia3!(uVuQ{c^wfET?@!!;9bCQX*;}ZT3%l-s3F|?|PPpZ$XLme2i_?h;|>nVHhGRIXqC*>LCQgt%$R!# zGsdWHqw}->-G3hgJl`s{w=y4R+2fy4#cPe1z z^%`7W-!bet6w)B_)uLu4S3qxA!FPRCB%Z05chSHnl(A?-{4mO)qk zaSi=V`z-1qUOBt2!K~3!t9l}QXH=au#gdLCEc$5jUl4I%2!E?GSKA|1(MP$wDG*wB zBhfQmtWRwH4Ngf)bnf%`-h@o+M+&BDSF?-(zqdlVBWir~6_yePi|OgZ?x=a>+j6vQ zC;a1!EOPLTy)y7xFVEagTI_G(N$Yr@cUQkDj>1a9_^6Ac)b(2a8*ve01TPKl&MnK` zIC=BoizgmAg3E@2XY1^;wDN0O(J9Uw2q@lrH(TJqSP^QdtHF~?R;;2shQDd&)h|-~ z`ElDAZ9;2j#H7`l%7sHcUrwgHEy*FU>N{iia9NMsp*~db=DC!LUQ0)p(UGgH!ewM@ zPuUPGu|awt^v#t|dB&Wo?yd41XwkDCdtb5iydoUuj&8JL?$Vv63fIdd4mZL)o37_E z9rw0=>L|u6JS(bvN>-F!I8=eAKl8y+f_#l2a!p5!rLPQ2t{9w7?+z789tq>+PEviT zQKx!}!lqioW|Q28Ok}hbbMzS9b83;$2Xr~&1On;FO5}rX1WO_3qI_~P8o07YhAO;5 z`16uqT#%%}&+scemC@Md^`-MXFI&SsX3Sk4()LRBm!GFT@2RduN>&A?fpgHp_&J~X zKXwo>Ef)%s%(q~_!$kGc6t%4|>kvl~d`2|Jz;liLZwiyJS>y%to>j}qIrS>NjE+BZ z2J>7ZBM&hncI9Amcr_-&^dUF zDwcQJI`mDFv$dHPi&GhsKn;7&^C!!mb#)KrH=1ZmP0pz&_Zt1Skao1iKargc^DT?GyN#=-bUc~Eb$0pJh@C=5&isZ8-xXtM@23in|LW*8-dmSjWs*PHa+D; zdWygR=eTKg)UM=%^N6juZ(Dsg-%kb9bSy}i#{`YNlir%&s2B(teYa8BXJe&WN!xdZ zLOjTE_Mvv|XPeqqE~RrSNx6z{CJL@w=S3zc4Lm6w1MZ0CqLPJ9hjtu4^E`b(x7IDo zJ+Z<)$L^}+tj{>kNQEVaK~I}kqEku#M0a*wwZesaS-ut0n>uH$aPDASywO*QK`mK) zhHpM3c{%5>m+F<`Twe_-s|$S%rRi?@^P!#Z&Y;groT8DMn(;Z+A;YFtTdjb*6G6&6 znX>Yk?Au=Oy*bXr*$GD@`;SNCz=Tf2#L-9@YDkVwa{c1a@`Qx$Ngew-CoV2mWYihk z9BE?BHVXQP6O9A5t`Wq6@Sm?QgU`trLEqT{p+q=IW(MY|ob(q*rW)_^6aBy-s*J&wioF=Yc@la~d<>yfW`7*j}{P{8g2X@6ItrdE_+381`mTovZC7Z~kpHv(}xd-B_hF{{V-;@3W z6ST87rXZ9BfFI_#{dx60%O&x?;TOe~>Pe-zrMTmA*)QC-3pWnnudaLeQ?v1+2QF7_jMGc9zR11>M$0Ef#bJh6v|q3wy!iC3frzpTibTKlK7ge zE4b1n(MV@;gOsAQhkLO0?&AwXi>+Z>nZ!r+=ZO`2E@iBG-Hf6p@=XgYDhzNhhBS9TvmFCsC&eSSpE~4TGvp~ z($aV66O_gcJJhvrda$jn+1bZaOvb+r740~OF1v`biy1uT=o!tG;_e(CQ9Sk9FtN`< z@7?6syIftW&8I4xImzpd+T~l-%WA!wY@XlDj=Z+KH~*H{{gHwDRbt29(-e0qC_7Fl z3bsD&k8*ak5MMaAjpNSQwU*3Qq^@V>|6+yNK_>;>0iRhaV%H};Zd*(&j5G@82yDpAp0nq<~0O)sra^U5rWe+p9ojmu*&K5{P^*yjN>iuhy!6(Cc0K?(@6(AF+ zlDel*k@Bk@>C;W^?Jz8KlZKFxJd8CDN1qmiyq5J~qT40`)X#dzpnf)o20WwBm~HI1 z2+(Cdjg(*YLRKB=foCKHv@dcj0Q{o=1o#aEux}NLgO?8JLQ8Y|Oj!}oUiB_yHMO+7 zDVvT%3$HHl!2v$G0Px8xae?m-qxJUrv~ay2l%w@F!^)2_zzD2_!4# zFoX-qbOw2KH%$@z1dSDx?@Z?)U^;`U^RqF)lyXZkPFsVhmzxi2f}0WE$F!`McofFB zg>y?^0OieF>&HxV+iTvIdJv2J%69(UmmNK*->Ge4?%}gn_55Ba{%^Y&mh8vZfmgwQ zC+z%p!p{GHChQzo$W*d%Gj;l@kU8=!_AN6uJ}ExACg~eNxyR-?i)YSU9J}~{S0OSp zJ1}I)RV5+>6N@b&B*byiRMXhl+FE^B5S*GHL>Lz6cU%GrnZ-9 z+arUS11-ItqDpC)t5KXYsEDs>&tXdvTszEc@?n4?>YH%8+`QdqPj(q1*_sM> zT~huB9!@Mw-!f^-$yC2cqZEF=fPPn}S0>L4b>1G$ON6ARTp=%{{^|I|M~!H<{TdEm z9;+JXQra3dZ@f8sdhq6x7fGFbbvIT+CpE?SRaFRbRgXQbcj8YH1zFKefwOpi=Vy}o z>?b$NL#HeRQCySH|KXnQyr%Qa(cT6o^^A)YPX1*y$e`z6MzJjSYMB0a0{ zV$qHlH0Hi^=Dsuzp;(!o);!5r*Jaz&`>@BJV2{mVkF`C!&Dx&i=Du)4hktJInJpj1 z0*3Xy6C|USU(uF$tE7FeajF*Fd~T@})`|bR*93h`EeKu2(OA@?X&{-se7M`{zCoEU zLt+C;Y>s!n?m|F`g8fV8DjLBmESfQ8nlU<>F>&^kp3aRXK0@)03dtTZ!uguxbUxGc zPs|$KtF7gVzr>HBHn`-;NKuT5QjEn!E%~J&+>YS-I(O#1@YZq()F4qLYJ2<$wJ%A2 z^~UsGy2E2vih2{$9gbh>Grxx?2RdvmA8RWoS0^M99h6f4YV>uNNVc3BP6-$x>o9e} z>iUdT$HT*uzq_aM!TAxX^3mf{Efp9MQDE518yXT(X}I2Vgy{UhSHkc-8pK7pKw_PM(`Vq{RxC}xm97gmYBj16XF9C5(6io3gYyoz% z$22FzF%R*+gQk9tW01rpWGn-urNIiM7*63^EIhoZ*4zbrL2@h@QVE1y11)YKN$*do zgf^f8v;hmDzgkmBNwm`6LJeaoC+Hb&+|0T4<+La|36ofoLQNB`vk=-||CG|I&=>>4 z2;@+}{|~S!MH^R$`H;=ipCUe~V5Ic-#6INA2h{am?}Xql(AwK8!3dp4)31y@!(Ee` z9yh-tnrno)@UBxRGdW-Mk%D5N9OfNh^kafA35bAS0xcnmWmFJJarR`?E^Yb~*QgAiJI4c|IOZ(zfBmQ9e96lp`7c~{`of~NP|^r1yW|7Rxo|ApUy(T_p`utd+#i~NA7(D_8E+s zr$=GAkqFMe&%*B^^?@!%!^G9Z)&jW0|81atkE0LVrOGDet~Ta?c9u^@LZFOpoY$kl zsd>Gs-ce?ZenfyLLC3ZupRh7DPgX|y=$ZFKb_l;!oG7|8ZIQz!ZRtE?N3rmz^*$k_ zlkpc`StLf&XN&m8w50arO-!%RPiLSk_XNh$i2&EPc z7+JmK{I0fCxn1DVu+{4Zy|9B61G#PV2bGQU&XRLjjmAOVh)up(C zCO#*^h1;c)-1UU=_s^uO*kLbx6k@#UhPtqRf4#=Q{P3?6qoxAM}{&6=M`DACL}Lj_qx(MEMaS}$Tk+)xpC2AJM)1boyi!b zN!KDpZ&f4Kw_dZ}634JBIU^eb_GfLX;`qmGBA1LJm&6`x>%Pp`-9gtN=r79IQI+2` zQcm_$T0JtkC(f!%pm(MW&P&2CCGp?S%z;${RVQ<}mVy5IzxUAmzGesd8EFrIELm9~ zrON&b_QuA>M)`dOnZW)05$vsPf@EAf{FNEzOZ+i6TQ9?pG+H6)2A{Y3- zVoaNxrSb!#6t4!<^=GKA`O!U#c{7XSRa18h8_$C)g~FDNZk#-@+L^847KOCZI-%?? zZfel+`iQsAxuaj4a%#SPm{7YFlbBLNz+RYGdL*N0inY)@UiIE-fx+4l!pAo6`swTH4HF*&Zd9d;E=ytwt_|zM1vP==pSB&MQgl)cN}C0c@8lX4ywOC6v0` zd4lfT7*dUryUlNUTZ-I6_hMf0yU%qtR!^hOB)Pq8@NQJ1$OgmF19fw6}e~ zit=cZ)II77w;)fGUM{?fMYN^%$BiAL6pL}2TpLOf4~IcGzBiS2v|Ps5#ky2*>3MF$ zSVd25)Ruzj5@Sy023BzYX^k9Wlhyp)y@)HkwSP$+ZjUd&L|nfob&Lm{V?`SaNIqT} z|CG>8GPI14$$!T3<>RSCyU5XPY%^s{frW*2eU|{A2qoL%EmF_TWGp(50S44uILCF~ z#KfdnwBl^g_3Jr?3Grbe5yi+9j|IpuKk%@5$1~70XNYFqLxZkQFm``K&U4$r0u5vs zxB1|*H)tR;pnumu4#Wg~pVLTvpK8$endV|J)DzMvVaMlqNr9D+LJ9^I>l8BFgcJ(g z1U*tP_1DeqEw9Q-&Y;d;3R51U0(@uTDTc|CLJEe-#zI=66;+5}b(kTV9fCjTYvG6g z42}Jv+t#rUjn&_~n&%(e84<$5`u=fo|Cz=89U7~Ml*5FJ2AYJ-y+-nJYLrht4Ac#{ z6!m^$32!>`d zv-Gw?6(NQ)v*?0H{(xFQtxWc0ugKt$NSWxTQ+E`f2CUgM%k_Jkk-N%y2A6f558Eip zJV*FNB_n)=`;$@w=JWhh88!D2z4a=mj4*`E=b2eExTW!G5ekcghIWIK)`OF_g9-e$ zD*`M+ac(3ucZ?DfkE{1SxrDk!dr0PjWNrhqBo;_4B^l?xn(`26G{E}-SuEA`+0F0R|(C5kFm+K|f8zHQe z&998lpSZ#-!`Zt)IZx;F%6p8nO2CtR?)F8D_SPWcBC0 zKOJYrxR81^BH48RkjccACp>^X;P6X`_WL0_&==|=XXH5fSbIY@`O8u3&R}TyS4Zvn z{!t^lvVYVF-Gq2}KKb)#OtjS!las%wmGR{t9@bf~i0m%oxsOzeX>DuMFSWS>lMAk+ zueq0Upt8AyyNa|nw=WaT?Vv(|;3_&42tZflVxt&?pPUl^(XYztz;C2Ux2brogs&9NHMVP<~9VyCCO2?NJESDlLoL0h%w z&a6`0NXcNOum17G9hePi+gLa{ngFa?u~ii%WO^(m@YT^}13Fq+VxkDrntn^7_e9EZ zstTls4Js3dxNXA zU4peA(B9;}NE1zDYU9q*eqrOz18oWD73X$StQfo)ZOJpEKf|IvzM{0xQuF#G5j zZ4&-ULv}0mlKY4u{L6W0Sp*I=lm<)GnAS#CqP-*09#tAgUKjK}IjuEgV!1Hh`b=}c ztnSlriGGz`V)5*QiHG*pT2+qm#S~^s3li;(`C*iG+4N@blYAnFQ;$_8hA(lN`W_mQ zkgh6?S*jzEIo+k>t0Gv@7aa3iBkuaSz`1>_qxG>jd}8n*km3Y?XY;>r`+pr8JQr8!@(VRe7LS<-F1rZ^Lw!~LYqR@YDo&PGD0&$AIt}; zQ&Z#8D&QWarViBA)ej8KZI2;(HZ?`F{CRbDxnXk-P04)5T;9@@ftAmTL5P#Dy?ue| zMLl&-H+Sv*us1!|&l2ftU#gfV$58YXWLSEM{8L$N$as2!=ozS7BA%eLZr_HIa#XcORGv|zPQQf}0a3YJ(0J;`hlxRo*?qvwK0F9wf> zM7;Z`$alyf>9*J-!IR8}3L16F8g=J2e3dkO1@jvy2Mq~qR|r`;PJg|fq$nS;uFb-~ zi@`Xgl798|5oAF|COGbvGdw=FKYFf%!+aZiM;i~2!g*!>rwHMlvr$<(9#kyf?N=;k ze32E)G6yStT1rZ3$=eNF_9Hau4|SkgHu|V+$PTJyZU%i6@b#-6DPRvwAb`THvhFupn z4c1}8h#GaQJDP=v$dCDpg==cjehrs}R92!WtSQ}90x)ts_qVre!phf1yyouQZ6=7o znwH?@;TX>d=fgL(6ybY(jn=E3=q%sNWsbJbZ*L9z2(PSb5t>ea+U_Xgi)TaBIE$aW zq=fC|nQwGc`YGX*U05c?g^b|`Xv`aA>E^s`d|xz7Z@@FQ}3^6`!ja}h9Q6bQ3b z(}!AOc-5$LO1(@N%@|=DD`q?2Q+ofoS6D_1_1L!;OrKUyjlJfovf{*?mkX?`x1BCE zd~dGz@qr(u8N2U@guvPvqvR3oD*TTE3muaIBq#pyC?Qt(wAxc7yv{^(rBh96DG>MEYs zZdXn)OT~z=qIE$9^Gv~~K;~c`(Z$S7R>t<#$jWwO^-djTx4ap3?V@k59kmdlXKJ)>>8@+ed zchfqJeyPq-<{NoUtC4sgr$E}1<<3;&Spub8eRQM3Of^YPstSv{Rha|Y9?6NVgKQlp z%33Zwm7~rN-{#7Uxmu42Iy}i;8m$md@r=o#v#`0IA0l$y+0%obOf^vr&4aGrQD#&| z-WS(~8+C~@-4COpROXJsw`Z@;x0#+W%kEYSLeHUCS1}g2lY&b881qE|!W$LD!oq3?Qh8%e5{GS+j$z6eIUDuka zN)7J~Bp;uI8%i{#NAbCflAsFeQIt1{ZzZwaUg7r&7tEl!apo8qB;M>#& zHuy|bo#h(N@3X8($v_JFG7JKF1MQ|#P$k}d3UioqvrZrffgopTFLsc?AP^jmr_Ol!Uw)JCP6-m4sNW?t5g?%{hBlK_9Rzbg0>3W*PhgO|(05>v)N~8-bRe+1 zJuu%X!vlK#M<;w>xUXU3U}*tr6i)WceNL?C$g+Iem~djSm|C*7!p^O)-kHG@f_A2f zyvxC7SeU$D1-vhEusIn!6M*QiLZl|eBIvEv1nK4JFJ)G!r&6A{ni``$KDW4V#jDhJ z_sV*4`N^9fJnQb=pt|#*arph#(Yo5C=IB$2JJ+k#5)A0Bot$%u`DU~=@JU&*JIVD9 zF>`y%L$_}!JD90+-{vB0rFbwpPu~$cj=@%bG5R%{z;m1YZe?5dwV)(zw# zVo#SYg|*X`_6F21=k<4gL8b2>Bz<#1rZ;vJmGj=<3sPGe+)B=n(JE<& zyfoeHw9!=V?DL#-oGLhCanY3*=4HDi^G5OAOVkvTZ4wk$7`qL;U-w>5WU0GeEaSB# zH7}9yI3R38oA&CpFX?$z7@vr9HUt~-{LU2kU8l)N!>%+slpIngzxd#dcQ3~midNM= z%F0;M%6_dQnhBYfxKeUsq+Li&4bU(42p$hWm=ahEx&$LzULp`SChNlg{Q6i$1v%@BdP6VZ{@U?=J$xo zw@Lz`(=N{N23KIztE2MG2*^ROhqAHQlaI#oqawnpScQayuyfVr6!hq1X=Q1*VrGmF z%eF~nNYlvC%E}VS5@j2+2Oc7A&Uw3CKOH@_`G}?@O$g`swpI&!VLow~;8AwA>93tU z(^`*{S6^Tth#A}T^q6+LM8;en-W+(p*@T{R*?lc5NL{bu(#Ou*4jD05t)4Mn^M0xS zjO*Gqp_J5=gtc@drt;I5>F@fud#^>GvRcQB$v7^h=0{YK&8Mp0T9s*{H&j+^N1Wwp zBJ=u$2euw6$t~PA$uU%W(KVCa<$4-=T3Od?>eH;I1j5roGgxHTc=N4|MNgF(P!E^9 zEt@d+?lmaIsO@Q!yg^U$=~nZ``{s?<_6>5+Ac=wD|A)P=fXZ^)+NHZYmG16tlqHdzLXH<0|W)CK`x~5)71|-YQ=)}y-J)hyj zoM|eiD&!9+E1(PbvO3d(ZQCYznZctLjkng*=UYN~{Jjaq`we}bJFt>Szgx+l)0X$9 zY@}Um%?usPfkqVj|1@d+r%CI7dXv`AclvuT7;+BwrU10kUG-oNNwD&HNn3?k( zM@DozP)5gkS0Sy8hI>(tf`Sr$nWHiwy}SGhWs)O2FNAJ2Gm~UHsz*Ww{d+Bgtkwt} zAoPW$MLIT+q;;*%b|N+EH!(Cgdw`o+8|86Pb9N9tzOWSBb8`!Vel^T zK}mPUWcE2b6P64QZfu-y$PO_tgK&O|nVGE$75B6_Q@(jJ&yq%aSA}E2KIjpZZl-cV zZlnBY1EGJ6JpzZm{W+}+2fH#vo(CT9{Bo;YFz;3l?P%Z!vGr_5(b-D)glnUC-$aPA zrOGdJ=&5>4nd!A}F){;RrjAXPWFiwsJIfZ#Pi?z%Ha&T{C1TDTr&8Q@xLS*;rX8DSgwryLvPd zFo1I2fKFPVl5*15ggdwYED0#FHyUjA5@vSYrO5peK64Ho_wi9C`3R#@#&pe|I!J(w4lo#jL4OKIh#1t}G72fO#m9hP2X+)c$p8kF|0wR*l&}CcrAgGE zxF-R=$=`EN0(!Hb-I4G7J?x#o2RwfcG@vzA=W{1BeCzLdpt=djO36JwxD%J^WBU#5 z6334O`SuTY_rVJ8LJe4<#Xnso(t8hS2RpO>fR_G00WJL;5s=+y9rAbF0+he9PlQQJ zLP5jAOX@(DEk{8X$uKAqLbgHc$TNv{Da+81k%_8_IWL4iKq2OH-6qMxL#HJsB0^wn z6Y=fM66beC4>j%~OY7;ojQKc%1hnxS?0cmP<6;#n!FHi%!HA=;AcTaFiG^M6MK;{V z-P$;}gq2OaJ;=>g)2eVFO32oVZh`DQSyUoB2wbXV5bwLew3L_)czb@ON0;`DYJA9S z*6p2TU4>d;x)6V$4syRkskmJTyc-^Pp=_`BIiey2!Yp{<^b3zUPzj;;nINnrV_iG9 zURJ{*WZHEl`?cQ+Skob=cmi}?2{^9n&4IMG%HF#x(~Vi&!Y{1pv78n>L8S*KHid5D zFCLUKJ@j@YyL!Kp)}~+F+i76>`4d?#uR-BnE&NWZ$!EIi)>IQj?Ab5ovt87-L3@-^ z73l#XoO03xIw;;HAdKU*&EQ8jwrfx8;DzU1i7;O$@ler};pNj?m?V~`zN%_{RrO?a zR%pjI!?g}NZO`Sk9c_P|@dHsq`F)p3IT0JGkweCTbMk?@Br|%`*>g7AQ2e?K{5nG~ z%r7Utt)&QNGOcA8{Wl(ka)Kn6W9YHPqI`RvbL{r|qK6?TA|o9}`Bd z(p>fj&R7uHi3K%AsPx+u<MQ#xSHjkc8}6fTQ}R8quc23+ zGLkNh%#tsoTEjiFeaq*!UriqLgfc?*geE|&eB;;isKJcGJfx+oS3X`$_TU zi-@oHjo0e<$@BGZpM--pFL%2HK20CI#Pky!m-8(rml25dR1}D{LFtdY>d~^< z`Kqf71C2!6#T|c>5H?H9EOoRA2~BI&q=Kfq;U1nse!gKg{G3eJeT!sIiIsPPBNstE zsP=JLV6B6j9EDc}p+^5CrFztPb5ImYlPoE*QybNw%G5k1Vc$%HNpm5>zbf`d#m|*+uj?D{YRJfpU|cKhxfXen~5dJ89?}aze4}o z5?Brdy?5fYmA~*6WPk4hEZ&h>eLxTZpu*s?3q`Gj-S_rj^|echQ<|455GEmJilfViS+}?oxE0z5(D4hk1JGt7yx)WVA-~5|k zfdlzOK$Z@I+M<$$bvl?~9sGDF7)iyy|OCp++=33(jU zolk)O6J`g%?fkv|3}AQ0#G*bDm(K@$9sWBfF82@MZ~ylt2$9BfV*-|-6BvJ-RJj-V z1_%}c4JIJBI}r*f5PNC+2Ycu6c^P;uV~J>XXWVP0 zogE!BiE5R*M4h!LNu^WPD=E?YM3u2%CD9KKW{bScg-)K>nD3miqpk&rR6cLyM`Ha7 z&KhaN?*i+%m1AM-C|t%G$QW6b-%cAZ*z-m%YlV+Z^%HYim2#?ci${%!0CQSqv`cM$ ztTNBmk=#|tp!U~d8i++KbSIgEQ+)A%uuc4=*iP7INo|3Ls8JQf>I10yVC_5l^piITKC{cpQbuHRQF@n zw<%4_4w?{{7rvGaH8=!SmK$2!p|+o~B6P=bYE4-~+C1lC30lug3DD(9V!ruJIXqF&U+RVgo_QY_`1XIogTOWt( zq9^zw)vK&fDysF>wf%Ozw>A8t1S6PHHT=upad4KUiNQ~S#U%M%s_^IYP5PC~=O8x4S- zaYRg;*546qGpy11(-F5sE&+&SzDsS_zxjVe6f|bKG1#8x>?(lt1{t6s7y{%f7`mZJ z4AMamVVb6eU;qm@&z<-N(w+DQI3T{!0{(wMCw-UjE;a-bAjLqU`Zw(cKz6$g7+H52 zZyBJG92kwj$b+T^G9Y!pk)(_G&ENB4&lb?(i2p^0!_w%x4u{hZ_=%g|i4O%}tJ#0* zeD1xnhyo&k_IK)qCV!jnBWR4fN(8n94@4uwFbO^k%)k$Td9UpqP7~uAp9xNA;M**6 z1Tq7|pj*Nu&-a6wA{96RDA)Lb6QB>)Mk`V4v-<553(GvFx!8+IQKddRaXZS8%qaUyI-pgD1gq)@UK;e zn;%t&0B)l|kl*{sD^-6vAzqfwhIXo2o^XIgfyvPs1`&YIzVE^z86l;yMg@*oa|Xy& zN&H3dqt!@&=v?{{aP}snYcc(a&dfh{wqioA+WoFa9Ox5A0me)9fDHv;39&TQMO5r%(QCv(@KDO{Gq_sSZoLm=VE$ZY=3etw1=#^z;*_JpQV_~S z9Y+Zs>8J^rl$NvvG6V=ZfgRo!5itnCOT?TKR?j#%IH1zV(6b(kO8}5_9dRi?3Niu& zgb6VMGBP-wK%5ac2=qW4pLRp;ulrAyE|6bwKccA$SvR7QlXw-XNQ$;D+t!`X8I=+C z)QnE9)HlTOojjZq=k)vAcegjlMDg=a#$3px#i~7TB#WX-A1EqWn~j&-@yE?XUO-?S zr3c_ZFlY95U|L#LgX>Hku19Eqe@X_Iu@)L_dL&AVJ)a+8C)-<>V?3{3xkqb8H>>q% zHi{yen8tn-WceO{340Q*E@WmFDHxee9ACc74GBgZf&{lk zQR@~rIpQ8(tD-R$p6*vxQD{hOi&aMLHO2A;l96SL8B0A!i-4oUK$Jz0M?gTx76j4- z?^98|jj-_CGhU(21%2FqbJ12mf7G0-MfsJVO}{Hc&gc0GV{!D-8ZlK1>Ldk9@V4#) z40`4Ref<$hxgC>?wwroBFV}KEHMm}dhfU=)LOz;1&xvyBQyCrds?+ThaNUBPZ`G&^6~*+P&<#%KP|vbB`Z(%}IY02kwgM8s+jWm#gXx}K z^PE;uqC9!&v~Ocel&sr~q7zni<9apJOEaIbO>)W|v3W`0q)?zB?y{r!E{k*i&_}@t z%)%)!slfv_?S-uD60s}Sn?bP@7d0Aga7n`CtSLSI31!0&jK?!$O#3ai<1Eztg!5U? z;)Cm~6JzJeZTZO)W1D?gsL$YZ6%!e8&F3F(E_AZYub|CWq0Jwm&BKoeMo^VY&cT$c zrn7ktv%}2u2JHn7yGvU%7uV>I&pv9JwRf#~q4O2Bo^hAbYr1PV=7MpToma!yN6*+t z$Jocf*hksaN8Qv%)zn9`DibvgGu>CFv%N)!h91>l#ggPQ>?`D58bDAAWdsE_4t zi^K2r6`CMt7mx?%Si9_ZI$`Pr)y|!X&fZSRh@fuD=rOXD`L~~=tVL56B*RIu(CJr| zD#e`*#Nh6FP>FU?F^b5_5O9(^=g6$dX!vNxD1&aF5l3WRT!q12bbMY)*n%H%L7yyi z9rq+gVO?K}0bHl!)NkKtTf6BvSTx2?1S7Yl} zZR?|5rxUVA)9s!N;-_DWTzA0RS{^t5$}KO`e7#wlWFDBY%6MlBC;U)Pn*nEY$G-l@ zcd|bgUzAi;b1^XjR4`fDf0UB6V!v7f@^WBs!1(na{P|8m`iI2=9S3_eX?t@Ad61)9 zGOQ6{{iOe^Q-foLRSNlWL6u4A)Y&pK>3AA?GRo~Rq z$HwirVXMP#_O?_yTq09;zn_ne%c)z&E}#*g_m(MC8YyY|u8Dw6rZXTPdc_`Wg9CH<3b$_t2r@v?i^_ z&^g8ip?pzZs3r__s*CgV4?f7FL$Mi~BRl9)$)!F?LffPC7!1#cGfAsGc|ffue%U`& zLSkKwcO^kBDgOA1Prmp{$vuIK&|am!>}hN`+)fvl;-!Fv z#`So8EPd3fY*e^2`i!4KIyb=%U~4JI6ReuKFg11 zEaoL#bfMIVOpJq=K#=T~}q;@KHTCoi9T%jj{o{Cc5F6Z&grVv zHGN-ZxuzmN=2Fp1guzj~EvvU{6waQC>;~FUljL}xZi`doX0pe(Riv$@Q>GPEIiG_g zm@zO^uu+fh>%4~I%!7Q4Q4(*T_l+~5HWdX%GWOfBmTKuL^ykab_wMX8U0z6>&IYgB zY)$;?3N3KT4Gd%zhQGHqv-@B*4j5E@?8{lq`OLm{fJ|^bXAW-x}iO!R-){MFzcas@mFzW48pUhQig>RdG zoO6!bcY>{pLyFJKS*?r|FEehw?QSZA$T4EVFRFJ#YtHA&?xKj2r7|_e_}D}HvI-^5 zT=ZFNDZgq_q2$Z($^+uJ&>97~4jdnA9(l^S&cwN}&w46pwj|wDI0X#1C38Px)+Em0 z+3A$Mz)Ng0f~)Qhft4%-}wiM$F-4WoMU=VtQ~lA06f z)K2B@SC3;~CiyL$;enh*Q>&5R_EcL%p>k4n*S$O(8UAKr!-~GGI;ChfhEXNZVKDOT zAi@eiRxVHZro(SqJ@-H}RBfS(D@}c<&kSe#k;7n7ra6j&s|hlkSZej$3#@&6os2lD zfqw1Hqu4G*mR>!_X9kg!n-6k6A70zCMy=a=4JLJXP`%Lz-31Swm#4AUljeA(E}x7& z^q7ran>eF-K&aD;N~utCYa2~Hzqi<}BDQ!>>p1sFUlh_1f7YHz@?3W|0;yy?OIz52 zQzo&*S&gpBhzjnaF_6NU@EJm=HLSSEwh}ewJ3867E75zrC~XuPlDo|hm=MF8i35%x z#*QK=zr7QLpp<^dI3BGZ7$cBp-DLB~ohK&>9@(9Tc*2-lBat{7M3ZKc7!j|oZ(Trb znuXQ2rXcq~*1Ud`Gp1RoN8^Mx+Wg#$Th%$wTd#S`M~1N~MqxR1$K1#(TsgTb86&Vk zn^K!P6&(fBkmL68Mid8oP2<~SnH)F;)w(^U$GE(F$QI)T!Mrl=;k4Wk*l(prD{IoJ z2GP+PaA(r<`ye3Q`rrD*+MYkpZMX59B6`tMj9a`xi6Ky+7@ML2YyAnkkedAp{US3n zpE!8T-DS+7sY`-@)@c}hc+?Lz310ZRl*O_rlkdUh*labvwkqNnBe&df<3K$59(7gC zV|G4caH5CObCS8lTM$%Fu8rxCwU0P4%(||hYG#*M;ko9t^$iwCu6|i@md9+~;?Fg9 zD|nZ$gWy(Xwy2?`_7lg>RjztUMCSq)7(qBEt(KLPhZtbmlMJ@DheYnj>8yh;2g>ie&ueHJY?z4!7*=Z zX2!HLv{TFV5h)*-qdvk14duW72f)1rNJ-g&W{bCGv4 z5`24nPu2FD)KMYP$ET;%n6Kp7CZ9}M8(c=idCQQ)5m58?w5IpVPgo(uX|9Ru<~Pls zM4h`4qR#DkX-!zq(sU2)*9VuU=4g;3c~JA0HiTd3I0+8CexUGv2vVbF-uiXed`e0q zS)ncS+jZZ>{7I{Tj#;(I7=&a&(>T%7a4+-*Qqip+m{1VzbzCHt`)V!VqAI6<& zJ_p!ZwVULR?=_PhzD>f{e8w9uTBj7}RVt{WE!$T#QoH;`iC9ZxKwE#@_f5Y+PUVE0 zH-frrNzRD{yQ5~(tmI2_aIV6XvrkN4OPMQeqRYpIc^W%A~h{7#rdHRzjixB>iP`T%Kg{Xv}tT?@6)mU|B|d z{?iO>y*Md+2`g8RBP9P&t*SjG)&wp|7f+c&9eAMlNczVpVlb z#RoqL#-fXP`ua1AR5e-Gspm!vAGpyA60)x{{7iL`&( ztwS<=XqobVk zb#d;?goSO@H{+T{@Hd0dmWzo;V{4pAU%s|39`tPjWO(n6OQ{!#gI%vigfxCw0c_y6YGt`zq~DWo?bD! z34`Xc%o}1VNjAw{saCtJY+XYc>))vAqswoUYd{w?tkM{=w)PtLB|W9=F*+V&{ossq zk?7G;Q7@(J{sawZd>&0nG<`BAknp2s(T_=^3C zrhYh=NY}Qh%B;@Uv4i_lK|SM>*Wr!q-n#OnY9$P+UsBC__`MWrR+ciV#`+oHxzb*+ z>Ic6$p0ODlDT}BY|0dhOCMGw^Xxdo)iCi}PdY3(67TbY+W1pacUHiiqlba1~hecMD zTklvRY-+)i3(jx~<+YrV|?7B|(8Sp2SnC_kSGmt)@hr6Nd%W^!3C>^to zD5;3t0Vm7(jzSAa_9*rKx?N?xf+(!U%C|!>Pm-?>1%U95MF8pn0%}lbH~Dh(ARuWq`mOl+aDTY<)m*5O+xD z$=L#9fH>XtdHL)R#*@4SehJATpuTH{2@+(kc<% zyC2LTUK{zXM0O=P;ji)%CY^M&Op`eP|EE9je>GxT4``(}28yV-H&&inxq2 zit6z!$dS}r9}2fStBcg!O?(BT0gEYUU~OssX_~6A3$!aS;1ur{D@tYNqcm3qIL(g8;D)d!m$6uD}nE*fPC*!)rOF zq1+zUB5By>p`W#$~}v`8=sx5SNe-0xr6)mv0Wi8*qf+9tNUzKVHr`WWD6^ zg?QOTy`p+(b&2GQBLtff%G`mwB710diQtRf24nab5O(8U(LJ=gMDfLKgZ&u#umg4F zv7_LZuZbTOwPG`lukqUfwJ+#)LuVL2==QfuPa)fbKXx9hpdLQH#Qci?4Z<(Dz4K$$ zt)J2D?db#EOWeBKgD&LYThCCrLS`HReFpCl=JFE*6+Ki!qnv35`{QzEdnS8Ydq(?S zLVd#p7+oVDCw`4n|JC1_j&LftMVGc?rl-HM15G;eR!5^FCJ(AT!dCat@}?tV1LZ=* z$FdbJN8JYEvmci8itD@SjNoFo8MZVWej`iI^n_oAj!3{p!DeRGQ)$UQEMJWaPQX1- zYiRPcI5=L_ZyAX2I9t+bN%6>7U2LuNL_L`71wSP|eV|8ltmc%+iFcH)Au#Ch+UcFA zL(AdODtaP~-p%b@u61aS`|%(a7+5gVZ&RZ`7j}sMFf}T#s>UrZp>~IR2?7zp9(tt6 zslJ9Z>yDv9nV65^I2U*yAoXo3hC)|`h^Q{+oC(&h!r4(-rB+_1u2)hz8qxj35-p`9 zleL+3Xsc}3_4V9})kmQN)q{)qd2%fHkj@p>y~Ny{gqI&!MbY%y!B=jnBVcajdW><; zo^scyB%>av=(z6NNLSC*=Ef4OA-gL_@#(vY_P;NgBUjOQ)F0eNyCDuPV@Nuq7#8^{ z$h4G4>aCn8n?`(MmRfXTwi>=)o*J=Vz8Ybu_B^N#uha_cLdTee6~@NL=r!LW>1?zIzIGGdx&%LbDrV68@QH zH^d~|6v}8?;$2TW z5drF0JhYJ^2>>O=1~YJlKLUOfn0@Z=33_YPNCVKFrver0KDbim{{jp9z2-LxSIu{h zI+UL{>Hwa)zjM?zLavq-1K_)|l5p@NuF3cQp7X_>&dtEM21Y0_-W7K^7XV`m7zsE4 zYH)h*9Ly^cDR1z0Hb4{>h4Tk6@8$Q(HOzu z0&C_!F2?+EDfySbstR&2R0Dc@5RCvk{GrDLi-CkBcT0#z0yywnKZZN3qx1-s7obkT zcIVt+;aY+ocis^~0KV=|>Og;tHU8z%;sEECjkDKZ|70@Yz5e$k%)dNY0%QYn{@0(2 zrP?e7JnHYi?wxD}Q)`f&nf-4V$KgGYfK89$fdp8#(GP8eWJMS`mfeigQqth?@V?H9 zBX~s29P#BkT#*Mq%5aBjY2AFlL&bpc>&pN9GJgzr{oC||TtLRQAbS&_aYs~2)d@It z+7FP2CTLw9?GpoG(%r(I4c2pO8hhjIq#MN;m2{}&m{!ZzS$^p32+9r&M1+Fp7I0Mx zn<4EK$!+9AYJ$U;po8M`!Dv{zXeR!)+kJ6;y|*{w0v{XI+~gCy>r4nBl&OXm$LXIP zZjh1PN^d%UAw`W&z0hMoBn_4oekdh|lHxEej-A8$o)sfFlk_5(td zotLZy3wR$x2rfp|cC9$#QaN?jP5;-`#D>^>A z6E1=>K)NoojGMaeFp=h5%nu6m#<)>3G(tb-+K$ptK<;55HDc#X%-aXljM+En>qOcF zhXo^5$<6nDQ&XR%OB7YP4GYq*Eu27GukKT;r6_FEX z>8$lL7V{T|gmlr5!bHS`l+}Ol3`qWE9|LM3E-wLDm{A>w)x1=E6z{*`D z-L`~~lAcKsBr%vEi~=Ejce(VPzI3a=e&+y|>(@R1^HTjWitd-Cl6SBGnOeD6y8Vix zb9V!Lj}t_6sR$bf(7YdT_5((jhXXY4`>i$W`pwMXeLlZg1(}%@Z`EsUbaYf=JxlsL zeNYD@!}{YqFej2}lm=c-<4+yZyQ4^?fNO_-DK~C)((id z&WiO=XZ&ANX(EIb48(!0;yVigu*L7IQ7HISMI4xG#ormh&lY;`gvbFx)n@-ai*fIK zNCEgr=ieBCyZiTJ`G*DSlmjU1T?c3WFTugVzgVF0M)t`47I^P-f$mw5vBR$h@D~~1 zz0VZ`*;}|-{mak&hds9f2$1eFw)!{tpr6g}-UvLI-)yGIP@V)#n+sGqJ75 zqUanp0bb-1ECuxB&_mD1BKpJBamvIZ*(~C&xbMT3uqJfmMD<`}gQxKUojx7-s zCD&9C&MWS~c(W&vl#iW7t;)4CIaOV45Yzp4VVWXsQde2xgA^XNKv*M32kxtl=DDXg zH=VI;d;2gKcGuv$mhgii9Gv-kdyfQtq0>6Qs39tBf%E1%gg-4#-WWw2kYXG_MUT(; ztol=5+H>Pt=53~*Dk}%Q2iWG{vTfbSC_N1U!;Y+EaIaqA zdg~neJZ}qnUv7WcLVHQ1m_`qwI1<$8$1j@^z+U1}Rmxc{uxd8Tg3C>laxOi3L=jJo zQYlaqu%DW-5p1e5Pa2=)x{%qT97_0_d)jGp&xE0wU3-bY@3@mH{?%}`uXVS1-xlKx z#MNAgevE_8rvH-mCn2u!CskuFIL4na_oDP49pY_k7U7=qM-IiPQo8yzFRML)Pqp3- zRDIFwXuUw(1SMRj&WUU?FiCOu1FDI~B(}OMZJI!Ram4VdK63Td_HN9E_ro+3QdtW$ zpE7IZrd_HgMuZVBxm-44{aKT5vk!<1+K%`h$Xntw8nFa%xryO*Bp9cg7_XSuf!vb6%kSPZQ zXs>M0VZ+|xy2A8e>bOAkU_J*F8gr*S{XLzfjpAfVI-RXQ8O7-U-`>0qA_6(;M!Yr7 zl`-gAbaO5BoKO)HR+!UuW5qYi&FxMdac#|H1b3P3JPO8#s+g{xoL1*Cjp% z&L(F7x%sPG`X|rDf7mUlx!GIY#rMBqnF9Z{8S|IWK2`9p-y=8W5SJvj4-II9%1A_8 z9_i`P8kt@1?CQ}Q**XW7f<_2@wePKuzb67Lpnh5G2XqvD=lvRzL^fKw5+q5tUjRoN zVL=&WFFW{K_>K~lgrZ@g2XyD~y91H@CqBfmE%O$ro)q6|=$;guw-BpiPFXH^t85K`NAg`OGo~PJj!rxOT)I>z!#yyIk_=Q1$tp|q#Y~L@j zb3K2S=RB}Tw12ut_g;o%L3WP7e)-L0{da}+KOb!OzM8x-$oPjIyf^3^G1bu+zjDo`N8*kBtO$Hhes!J94{@ zZ-AT400-K*xA1fAfP73bJ-UXYkr5imsFZ%b6^25Id<6`v4u$Q^_!QsQ?f~|{i z>mhBTlc2}R4v?m@tHJUm7a?AQ+27q-xIM+Po#yiqO&DV%&3vG0!WM#GIl!aLMMQE zomI3V__utiuTTMkS=&cx``52Uu+J1lvBa< z%&U^0N?sLS^$eo{XFD4D_b1ftp)5C7^2!AoFxn2 ztM_G3^TzI^(?Wh{dOthvdvoeyZq|S+adZBS7yFAm$-P#uX=QI}>0o99EU}3Z{CD5^ zBa!QY1jCjV;2Uqmf=SWa(Q(xt01n|_3kI8Lw2+~@r{6g^sC4ZsLx_kd+e$YL$wiXa z7YDJ<%TWCpV2yC+sXc_k#4PD%jTdB)lS3)Mc>o5qruXyW&*E#7OtHq*`12Z-e9!r+ zo|3@10^wfN??S$Rc=Jly8j6Cf-0UgGJ5H6Tf!D+pX!3 zWVK?}R&U^?-^@MJcvH7FZi^}A+Pfur4BxY6XwW9Hoc)R2m`%DGWcxS_Yu1sTLyVkI z99hY(kccgAS3I7QdE$^YF=}>ZEF-G12|1~;-0lI}Cj*k_!VuaIi#7#{Co6*IZqk%O zT@b4^-;!{?+Bpx-TCy(YmN~mB4A8Tt5r;)ytag}r{9@gC)6xir;6w@Y@ovf>=;H(x z=OQ~KuUM(;M&;Pz1pE*|eP-h|UTxx#kRmU=U`453TY*OLaAq8yMY)0VrcTt8&+43` zUq~(NBUMvG&+Q0j>RUzjIGi{4ndvWNc{i4+k%$+o4lYAy`@rcHa|VaEwD7~&npM1Z zK0BCm7o#BTjAX*{*HpH_cvrJO$71(!cL{Rn9b8&Wz0&U49q47CI=TI(_a2MXWIAG9 zB0qPUT(vrN@c45Q_U=k*L^&Eeb}KHST7P*JZeG`O21y>aH7hbsFJWSpRo#@9{N(Qx zWaMyfA(nSoghW)?~Tm$a>3zQto?yF)QF4#_s zg?17l*ue}aszd@UjP_O&;BI%fJg{&+cqE1*z$y6rv(W)*emTrVz>kexYr9=X+kmSy&u_075h3XiHH%;30WEWrdqs?SjxHdNj0oq;i#ihk#$?|777qiDY_Yw z^>+s8=#f8`7|a}1qM5fbWroD zMC54Rr>7M-@_0L9itREhSjV1ZIy|LEZyzugJab!2BDG|hPt(~_{mL(-QpLkMm$ zuHSTxy5wl$WcMk)A7dCx9!Z8MH$&PA;w;X7R+f zlTlT%BQ1W}2V*GzAw9Y>F6lMVYYt;!yVJ0_qN6!F=>hu<_(#;157oMaYNclauc1@p z57~wtN1od2G+4zQBJfevx}4ArBk)kKaHb}VhNFPvQt0)3#y~k7Cd63k(Zy);+_Hl| zSk{L>04a1SBRSexx4z;n-m@L9@7YcyE6#f1no6Wht=jlW`2Doh5Z{y9VZ7;8w+PO~ zCM!X7jUCq})JNT4I5Ji!VGQ@@LN*!*Y$;=h&gb$*o@Fhh#^kH=9nmZE$2Dagd*&n) zXauG$py25wW~k{sQ1?+S;51o6CN(H9C~kM9^5$JHd=NoUL{A~Hp{*s$k)N2s`K^mV zc5==-r8+xmt;j*0lv&>syAJzNBbIc%HA3GkUuh*HPxiZUMndm82I#h@#Uh_Ka~IJY z3l;}Iwa~NNBqEK84{l4ljn+&{)g@cdw7PQ6M3B4?5V3;=S+DeR*%q94uNQ^Jz6Cq5 ztIQI?cxf{Mnh~8cLD?0Jom}bz%>*w_Y)+(|>hW*us((&vMp%JKooAZ+JnBr-D#T>px)+CK>40Yhh05mrg@)0mBlG81&s#rLN|tHn0kSC|`YHy!Yir;9nvVtX48^VAq*w{U$<}WubcrC(t{&8&Nn)}^`z>)DN@DjTm&Kg`?6iPZaQqrg`j-Qr%S6zSEc zT+t71rBin(=PVozMi%A0FY(ehu_G~m$X_Pse{q+90RziL`N!gFB_JhY1+t}30wfj9 zoL#+sIhE9PUFIe51POVM@~koRWJncUXag=|BxpC%>qhx%3wcNsu(Na%nuT~U3HyIy-gXJCi6AP7NIMD=E*nXAaewns`+9`B{VU9} zfKcBumVrF^^Jz6N!61$$r44!YrG7LY{vc>Qxz!jkrV{3Z!sBu}O{|q-Ix}?~buZ>{ z8|g&p1vI>K#*z3l&VduV=|(dq1h_8hf$}xjG59IdR?r#bNvGlMVg{PjEd3Z_AsUaW zQ!C?Ixo+$uBM03_991NaU2W#NXUU%?N_|e*p<$TjUJ~o!yx(Xp9PCOK$=;n}2*`@q z(;9fOhdiJgN9aaY#7GY(2>tdXII%YysZ^EDqnFxG~25!$ZOZ*G|eaQZ8z71wpRy@B&-YiG*=OyH$Yb@+R>=G5iU`oYMhC@ znsBkkCpNhhc?ajr_sB`(9j}@z14#Q_sFt#!q1-AtF}E@{&!Q7U16EE-)rpX68`D#>LnqQec#Iu_&4AJcVW-c7K%Z173RNH-YSycLHD}h8;GB@}Vfvyy@pLnhF4IXyD zr%U~C>M1?$p;5cq`7#~UinymdUalAF-VUeBOR8j(Fd>&AiUqV1D8cZtUpM|2XYUjw zO1mwK&bDpawr$(CZO^vt?%B3&+qP}n-DmFg-?;bez2dGDabByUUaI2D%8?^;3=R-n zI_BYH=In!4XutjUTW&LS;+O_XDev>oD1$#y5HYlI1$P|E-oF&6ukvcx+rh5P1Upyq zr~%A#2=gQgn_!?VGyfO>69rOWf}3b<7P+EnB87i|odd9x_z1*ObRtts-2rbNgPYn`WSBb62D#djCPrGt$& zrs63xUU?NZ;?d`Si8~j&Eg+3#T+chl7R%%}bY-58WPHmmgff2-F=s_e@0{e-HjRoE zPlU>tNioU%(Y9@ycD4V?tp33-`NC?)jK5$%d4H8gmC6tAbDzPjo5pK&V?5VrA8iWF zK#y6#YskKl_B$r$ArN;biTVQR#*HJ$IQn^ZDg61DRpLGvpeGdQ*RMyg|8%ek{*7kJ z{8jY~txe=j94+jO|2fq~sUG^sM<~5JY+jSsrubkQ;;jk%aVBgA0`Lffn2w_%#N-hA z5n^m>66%|mgIh4*PpX}oHdlKJ70uf!72p}b+*)=v6;kyu z2IahOmE6;uJ0!RT+r`SB(0$zhNb?BnOU&~e1(xiYExvPv>&3Z;3^ow^O6;oAbwSyJMxBwP^6K&w*)LPTpaW`&b7T@-{9ETL?-x!uFMZoz_9_nA{xF{-1RZ(wgB z!jR>UecPLnqR2hd<*XDJy$@tIsWblxhb!HC&XaB=%fpSvZCrH(off4DF?Z17E^~#3 zc`PlXeV@*Cypm4{d%APRMu8bCObIuo&t?w9FcS4@Iz(kjhG;2l1Q;L*gbCoMc6hWX z^EW509GUCaW3;r)*=vW3B|AtbLT3kjST@23kn-y?T4@$=;qXZXLikju2y2;a;aF?w z?_`>lj7|4n?*F>yVz!mEkf6zXvOB;@L9LfZcLCA#fLD2?#tzO69a=U3u|YP)s&wj7 zjUG04AbhWG++UtCHaY-UC+Gf7)|>TQkdL^rwmobGVz~z~YCI5GFvmLh#-zY5;Cp$k zK3l7NKDQkJ^f8e75Kwp3ICOej9T_{5DV;+GlG9vrBE=!)0brLGvFJ7I{nL}unla0B zyRCa!4 zRwm0pr8yq?BAve?(e-Ed=@PgK4mg@em}HK@lUB(kij4>^T$i zu~}l-l2|(hWCi~~Wdd{#%*m*Ad4F-;8RVbHYXh+G2k}30`+$gO39VrPnf^ouOd836 zX8mRCX8DOU4VITO1X;hz0nPI8R0m8ctXV5mR9lvONo3=!H^Y`rP$R zs#sG}{WCXQ1r-R{q2=HA*g5KS4b8oN_Ufv__x7nNzR*>xAg5S*FotK<-cNyj;UMj1 zG^TpULWXj3RbOl_deuMNF3s%^KwVe-w#lqJdMP~Kn{G~-IY?h{kOKm;G&N?;O4X-! zaL=aF@T_tghrxI9h;S0~Gy$dwjf$xlyv2sC&9}AD^wAnvr@tN6qDi5nH%wy@)LWQq8fQM-nBDAL z_r7CgaW>oa(lmz z@6QCh2I1^CaBlFNl{#zG`PqE{W*904Yb@l zXAe!E25FUtl%w+tzmN0teCXm^-P*077&8YtCwrH?Rw2&S5Gxj4l5M4>U$npnn>U;r zcSCp?pCXT=YfL9wVkRD*E?DwY41{n-llwYGzo?A$)>tkgzZw z;@6)rOko~hhrI^o)83uNGp5gJ1^d|F)*?#sfEF>&=%<38`$HvsqYOP0H_sEkvFLnY z<8{0Eoh!X)yJ&d46C(%7x&S^H(g713I83J+t=g~|E&5B~?v-CR!wg#k9~B%-2Zu~b zDs&m?WcH@nhr)Wiedi#96XKoy;l6=sfxuHmXgeyVIL7pk35gCG!amBJp>i#6>o8$S z>JyI-C-xyi&gq$RlGETAp_~lyL+vqzyMD7{hok%vkMKd(2uCH3*$*Opju*oY9MqJB zj_@H@H6%hDao9Jmi{%E4#a)Qir3{^gvkFV`4M<)M7*v%l98x$!I3aQXAY*(3u0VoU z!*?Jd3mH5ZC9)OSXI-=&D=upj<)wx+RLykHu>+2%nx)+&?@$Q*ae_8)cJMXf{vwh$ z1i1!d^ZLcIq3?wYFPOUs$sOFgP}=t+w+5X@rsYP@3}~|aJrfw&)%%foX3a~=Bxz=H z@Gu81U0-jp+EWk8<8 z)PWJl@0pf;%`3MSPM`4u{mA8$J&C+EmH)Xp0-ogIpr2p+A&H20){HHz-{d z70aTib3S-L`xsKSJq{=2Y=GVZA`eidu%!j5xcH63hvy5AtfAo7Z_ zffwM*U=<;GqV)B+&MQzuh#Z^?raja3?OYgJMeO*SH4Rl?azbP!58ubWS4`DAs+_J( z3!(5sT6RI7_1mQdTwc@ki&{RqkO*g#*9)5`kx@q( z$ez$tpyh_gH~zK21GT-JRBQoC?GP^;G@HNMwkPa+;{40Za|zw)s4s_w9O%E>gr$gT z#r4h5*4JQ?=Xo|`+R~ne{i%*v%Y|EcLqhX}J%b94>-SLxQ=6=zhqznRdwIc%<{wHq zq&h`I)jxV7tR68fr-v;^xD{cuF;VUjH$kLA_GUL4kZaxwTjaB?q^MEgl?5+r|1R%= z$1C8TNl{OcV=uku-bqoX#g9(?Ap%E>PW!Y^IdFY`LI|{n!trW%_ z)+vmTXY5c$lW;=f4~}BGgGfjvqT5U;nEKvg6VFX&MkHwUibF6@e(%UYn3{Xs(JY>w zN(G-cf6PcQPkislL&%nU?5IUNGl3Jf8UAx!yh)0c2 zHG}s+Wl>ur^w8B6J|tQ6#;azHv-Cdy;Sb#_4b@LR`YAtfNm}V`61^!32~5}p7j|vl zf~x44SQpLx60i-tzFOW~ymrUZj&bX~az|_8`}JP&HSqJV3BA!N>j=eAzkY4t|3mu! ziTwUgZ5ip`NdI56ipl>L^!=X?{JZ1jUk?ZvIypNU7&-s%wL-Ltj69YJx-TmqH8m74 zISq3-zX%rMdSj^#jX!E+BRO*te)DM*wK3ELe~K+D&eMJo+RQfhA}rH+uuxZ_A8OU~ zX%t$;L6jKX_R?K7?~bWNhD~i(=Z^2qN9WAP2MOP&lN(mA!X(vc{{$qbgJK`Nq9Amn zmE>?3d)5R6fh^QUDSU}ZXFmTB28I!2#?YH3k)Sw)gJhV209W-c^)y9Vuhn0f1S65L zn0T=$>W@LJ`0dF12{G_=nudUHG@ef~IVBh6arV)`h2IrM^Y8!SQ%00fbDf=TWfMkCxotGJgw)O%=X2ptFHD zpGyBv_%`91C{YfDwRKubm08ZTg>HcLVf}l@*#zRbjgw{zbYgcFgIziaRHAj=R9OIx zW)sl0FSIsDu3VOHQEpXTdCclzxvPp)wME;Jv8RKIUVRqvxmx3=qy_#Yp^=uTtwujC zqS`JA&04!DBnN`&^e9#oW5z^!vl2Q`5LG&LdRs-i37Oec{fUH~6m8~myJ^QzG#8py zONeEN3ZrSC=KKgu9r0B`q{qg5%4NcZfxlWEo&m~9du(Gc z2W({oAwH;@B`<*-gW#V9ONe;Oi>PW7D$``T8m-~V2sV1M0~r)F2Z^D-s|04Xu3Afv zo{U|h5e2u`l3BZqX?fyCX(JD8-A`;;r+v)chOXtpT&mlsz1w{LuD6Sq;NuiUJhq`p zU7{w%^`frO0qwzR10y47?W@v{6SxsoaqCDQu@3pb

    qm4Wk) zy8o5!vUh?$O&0)<+Zo#~@ncV1*A>1jOpHq*IIaC4k@NE*mfv5GCNR!?&M>u3TRUz+ znwi%GH`7*Wrn79@_g=J5P$hRG_zr7KoeP5bd>3UHzI@^^OTshV4s7AYtsp#LKj;P| z@RK5>ZXtn11f-^35iEK*7X(P-ZQHaiggdk`1xJ2xl&0%mfc8yb0tjT%x--YR8R!|l zU~|vyrrl`4oBayi*Q>e@Acz-ahF?c~+HUx^3*0Auz;WBTfYurv2y?qRWGT5X6ZCRj!BQ!8#ljJP%EFVEh& zA7xF@^gw}DXGU;TIcT>h3Hq@Hv@3SceJJ@k_%ZY6K#27QjqufKxGyO?wC0i9wjj{q z+0*NlOV|1DbQkJC_T%F;=g^IW*KH5&4_nf5h>R?skHp~5V9-yQD~D|#_Pc+rib>w6 zA(jUI^=lveKgk&XZdUpiKnebZHEBB|1M7cu44YUUDIfv(kR6F?$B)zE~IX>6$oF(h0_M+x^*r>n^bxtDa z(oG6(Q{~Fn0x2w9U%`+{T4V33D^1VwCtYh@Hrhqi&c?KbY6zUV<78_?n2i0|E|K0A zCya2OMfVBmpK!#NKMTBcKKAvHOlN?6M55+*vA+z^03obGD^L|-@4SMuTwFyf2Q#p{ zerF%>r#cOz+xMTUgFnv3W(jEjT}t#{UHP_=ld!M9;4l6kjRODfCjD<{FJbHC{MSYO z&nwMR)pA2pLH?G_be%tY6wCvGOhT5l$P{cH8zRIUA5w)BmnuR@vfwOKT1ZcjZY83m z%*_vQ-#bUS&4a5=X;xWA^qD^@c)!HE1^#?mQfsVDx4u7ZSnS2_HQT9S#-p6()fmmCuzzKgIbV&8$_VpB^Sdva2|QP1kTAi9H77` zxhs!ia*yWgo(^Rr{*!!5DzqoMHCrVE{RR`g1>LRMpl3wBk%zTDeJG!UdZYMZ*hnbC zQnA8puDUSWIuIo$6lmImS^r2t(S2$R6LQn0#4SXXaS+zY+Lp;M4Zf<(5#>Bdkw zMIsnv0GZEXtAD}2$vl~c!NZGU9b)22Oyi4%6kx>@pd$v(HW7$)pW{jWrn{apa@!wC z+ZZ?|FMtbOF19E?KW`)mw6g?Dwxk}ASKqfCRVK>ZSYan0sZI#+31n&5E2}cD<-3L8 zWUd}Xo~5eImha3&u@mg|OzFYrCO5x(-2N0KJKP^)pjlp&2?}Do z9h4ttfjzgcS~?+3#MTaym`1RaK@N8(F57I(@`q&|nW}9;dYDLAyAxp&@`a?b6|?RS zKJ^JahzvNTJCvOidx<`WAaWN(b+fv3WOhDe1M+*QVj7W#?2Si$Ocd#2ucQ`bX&Ki9XUin%`uFg_YOWrqYX2Z;tke&$H7p5?ZFn{z&@OUs2R+LpAZ1M0W@ zX8owi?9o{-v5wx#Mi&cegnwEZGax5LaqT5KTt6N;Z&^dvdhJ-Dv2j#xcY1G2ou`XG zN@fv}X1aWjJzxI)^{)4$?rU7`#zKbs8P^IZwlhx+L;eA!FG`FNt3#ab=&8B34fwD$Z>B?ZN)*y9 zVRgEZ$jQjVvY^RjtSHuhZJJMJU&`*N5R=1u3BowH3Bs4;I}}2FBiCNql0&C;i*aQ~}2J0gGqnHPFpKm7Z%fE-i8DQVs#H?;D3-kYzgy5BO? z3WdR;8gid<6i>n-O3?M7AP5hiCs1$#6Rc-?j*+XXh`op;GfYX?G2__G{0XAcMf}`6 zxucBx_xwP-5xGO?E@1RU?Y01OE`MbTAAcGDY>hSak?o=hCR?F`02qrCqa`-eu>2mV zF4}Rn^KTm9!~2uF+bAPbF(-TE22MrhDGcD|l9s&@oQxe5VH(&uM8f?&N(q5L4eOl} z2O^X3k)?5oYSlIcIE&3BQ5nZ3#)YLd+g-c<&4qcgOCd2#7PZ=%8colbqb-$}bakK(GhoK^Pb+E0ZvUZakzJt|lJ+zxin&)4!T?@4o zx)&mb>+F#MUd~_*@`-E+bE19?^*JntWCCLRn!8%%o!=Cq;&M7`j~7Z6J*d`hM{SeK z>=(AxiQH_LjjK*X-GR+4J?*muFx{_OZ>|O93$22f9 z!<`}8uxx_G(hBXyix5tdDe(lz??fma3fj+Ke3G3?KtuVk zn_wr|950jJ-rZe5=K3Qc;VM{G>MgYf29X4Q)I{mc=uw(oGy2Uc_~@I}QG-jymyxX_ zUvY8$@`XOQvZX9mS)QSJ;-gJrMUb9wZoq1mPt_5j+u|UbQb+3U4Hk)g-3p2B__T$p zPBZR=-6LW|zB3RUv7mX9#>}0_XH}5YN!Zl*b_N>)7_bA^at=Ajo#~STfdJ65WD&xf zupS9vK?XmmTqV8M&5Jw`b7){bFVk~Cd({~w3sk_FVlB5>hgfGk^)^qRq%e{=+Q+<#}GLT(EX_(aB z{~{{Di_k{Ae@P0|e{_5Py9e%ne31XAeWeEFt##z`<5youHNn<=AS|1-8jgsq6@SR? z&mERnEQ6iP=zx8{E=Z2Q!PXo=-InlYMREmoyg=uyy~!xA5g9T_aUB3;gCI#v3%sV; zYZfflrl+o|(MscG+njCnXVZ&jOs!s~4DZDEW&7c4=EM7h_hp$V7C^mV`MnN`?QJen zPA%~>uacLjg75wy_D+M3Hnpm?vf{(|iG{B_hVS9PmmA*^FKLPG(;Xac0=9aX zp4K=YwB#-?rko{E^>Tl?luXp!XXh(ZsMsDZ)R5m zFFP^wB=`V?V5h2&q*Y_|CCFPZ`>U7x^BDfDieeh=33EI2HKDM5BxF zxs$SDB>1x_t_R`X2gdJ049<4`HY22GdE`VTdz>gLcQ&$xu}{=sl)ct3rmySd z50p)vbb#^Fjd*D+F0s&$s7qZ1K?9@K4zKsB7&aZDHEGVoacEpN0l1KoIvQJ#;WnR? z71-nwk)7nxV~n`7*%FT{{+>&n^KKvJ%uyz|ZJJN#4?m`z)`2ZY4!+N7BQ&@h_CM?i zr{W~@fjC`0q0!&z#?w(v%-;4Xj};eqjPEs+yvph~&hlq5>68Z3x$$%$mXI@}*F+r} zocoQhlFPC-yi6EDPz~t@6#g29d&u%(1d(0f&1^!}3)59+{ys!N;oK(89Cc9niK654 zclzA4wB^$>>qWKJ>x(TJA-6L$w<8N4M47UM$d-^>{Opf^tzOW0Y-x%`R+Ht)!Srpx zgp7vL8h=XGPNkrsSL+|gih>oGtc}5{uPa|@ju`(8M=~r4X91@xscXR-mf|?d zwVrN{fu839D~(KjQFKJA1|RwR$(b^5*lDLFb*s0~#5a&sCkW0taPXELP!>9CM+9=l z>;=V4+ycPx&E0YOmhYKyenarB+(C8b9pv0e;rs;nsi^B#Hn>xoK$9wJH3Sw6h;sV% z)%h9;cb34rI@ib#Q;%tzyECW46*0ZZ=O9SN7AxkD^e|kMw3o(?yM_&OF@A+7h5RMX zc&~CeKfyoCw|x0KnU|>BBRP3U0~3d&2vSvubpldt}Kyfg~F*uq|Iu;NS zrCV=18kNeZO)PO_Sk5g$E{#(Jz^yA+#9-MM94;ulYXrL()8`Y#D(F-xBj|_(4+b?t zX^<2Ojam{|iQBXAQm>wzzlK$Ao^#{i4X|+X##oguGq)L9Y}AVaKr3)(vDWL93Dc5^ z%yS>$x|TxTv^*c(uL=9*MY2pO4?{l4@R2g%cul@hdh}z8V>4__v$m&3`n(xanz{V! zpDFF3Q}ARI`xVvNx4T_}CJ{uNAG0oQ*{~A2(R%dLbAj8Pw=M88dnS}ACqUBWJlXG2 zW6;0UMdC>mO0u*)wqVzqKJw=}1J*LGajTzaIr+PUWt8R7$Bx*<_j!v~YBHu(nax|j z7j#fZVpkQ+uknZo`ONbARwi}_pR_!@)-@Ekf7+`tuBe;}Fahg3%4&O1j9e6qea?1w z=_qrP_3@cC%WN5LYoD{N5s<>USeD^T{KscOO85_OlfDA%k9w10)1tuEKA ztF5ciBNX(PyWyLhkC;wdi(wbh zmLW%$iCqwi3*KW`>9j>ApGh&rVue?($!$Zl zxTWFPiHB?ygg7L#yW%@&+lI2wOLAez7K=TEtf@njj`PbtuhLX>8Tv}!z&Vx1bfo5? zb?o+&tirIN8o)g}#;k(fuK8{|r5v;i6q`JZYoxCf9d==>#XU%FUj^j!@Ut_*qClv| z_AO~lT?~{)2&1yGfNcWE^WEw-A3N|v6Go$8PXYJr4F3?% zRd{r*4%(4@PM>N38<`=5HD;1V^}Uqltd`U=a{8acT&Ky~C87D1%oswx6GmT))+mLm zloId=`1gpR`GkS$MuWW4YqB4R+$vNa2ekmK=rdJ|uvIgmVAUckVU&|Zd}$&_^1?(@ zPH_Zg0KvSoA9LgSAU2WJahdAU#>C{&4*zuA@ot2W$#aExQd-e<&Ml->%$`BL54t5k z@&?bul?f1-&Tm*dJP2zqdA2;+c8TqKfN2&0yjV=S5t!=TP@42CSIKsLA#S0x4*719 z#}XAgB3n}ki451~F5p0n>m{W((4WSP4V{hhQWJl1<2X|lyn&cb+nn}ZsfTjag6Iv4 zv?iu|qd7g>9?w${JHQ!zqqKkNPS3pTnR-W8)Ep30#>jTPQc{7B%>v=$G?&}eM!jXT6BL5IY{4fml z2;b2ueNrL+lvDW5qW0vtoE@_mM&$4_-I3KE3Q+5ChRjZjcd5W%sl(?3$z#)Z?KNwO}n)68LKn`uo zs+7tfLXdiXSTwe^nfM+;_k-ovJv&rl3l(z7!YM1Q4lJ%V>$KCS+zx9xS6VIQm7x%`UrcEmbKM8TrF?Srj5ZjccqN>3 z_;V9=Co%kr8n89q`Ax`%OZCg-O?R_ysQf2w5eOt3@@HB(!i zuEdCX7iZ+ys$w-tFWGuWKB)zpm-eO*z|FwF9gAS-L1rt^$-}R^9qmRzj|GOqcH+hu zFJ8%4VJ+Sk_gSgdiX>~PAg!c3JlAuw@gOMLiAn+FL~;VwHoMm=U@5YUOie3bNoM)H ztMA;@>Zx1brPqe0#qq2zWux^`bApzZ#i}h!>b#LdT}L`HY*b0EuO#~zz!g>I9HX(^ ztWK0Cbn4tgyHK~+_DRQ^-)Dxql+V~|eVB`4A|ni$ztI934O!+D^4dWLuvpUibZj$=owu zX@RZmtY-8%KA_k_Yr!U&`N|zE!<-;} z<|s>91n2})6-0?(I^lv=j&KFARR@Y;r74VycUWR<-7i=N`b5PhT&65w)fi<^vK(Ji z5rpJwPSF+QT&D`WeZ6)QMKtNfN*keHk1MhsO- zJQ>Da&ai{y(6w>}5EE$r7&@ra`MKDfKN7f+;S$`P1h=@TMFaw`?U|xjGQ~(PYyB$hOgKFimm4 z;=PmuEA6n3;=#Yk3EZWcxa%HbdS`jsY0_tMkLfh8j;qJNXh`NbJTTh$4QRAvtmM{> zG)XYFZS3V=1JJb(J`%cNe*H4V`@gKu|9f_(NY%=2LmAyyHe)gR;E{2Co^g3TrKt?b z5iSJW%R9q_~%Guwmi#L}RAxn(0s!?S%j#)zx-*8;yRG^nC zDO)7DG}{>Psw`!hYO4pSP2j6=rXSgtZ6p`U>9y~{=G6b1^R%_nV6-*C;Z1PYQY4>BDii4ogQS7DqZ8j0?)%rmp0a;0q z>qz#9tf5-T_KY^o(4i&8`$eRkl;GIC`}dS!a~$k_lGu|lLIMv=(fPXN^ZAnt<`|_x z=v5_IMpP%J39P7F?L&hET5z1D*6csjfAZ&?7J-J4&O_Txm6KRvGGlDzjl@}=@|qRs z+H|{Qi?%uZv|GwKHT`Y575JVqUXC+hSUt|MNGldbC`=|c7p%p`m_?^_)nuB=*P!cC z0vU@4$v!s5j_&|Fi68cw^KWLz+Xm1sk zWC{h*?zgsw-vK#;m^T!T5yW6syN)l|#w+GJgjgk(-M}Xn5P#zmjR6HMPz1b%abu_7 zV&OQMWExkB1K7;r4YHDW!PU$Ia7KewC$8|2Md}(7ZH@sDj+LD1rYen@!3(mRK4G8z zrraYEpDlCeY7`u)Hai1Mj-5k~_Y*t~O{v_-s*JZTR+*BRv1qADAWZ+&UD(-^pAKxw z^DUCGM|Gz+*FeK3!rTUT7d|t@RxNyuAO1$N)1FXBmR_uZt70dWupWB2!c8Q-7p+Qa zuo6AWB2jLzIrFo1G~@9}0U7xb#`1cYyF&MxC=cO^uY~C1`>jXIH|syibov7IP2ipQ ztuDuoZqLMia?n8AFV*LbJ1gbu`{&lCC3E`??!Q`Nh}xHw@PGS^xPRRf|Nr^o{~!Sh z8#tRNTiBTVqd6t3XeeR-?TgVe3C+w~L*Ngv`Ug48Qv<~V0|LX~XHsLPm@`|>%nByv zb(EKcOO=iJ#g*PIv9ZvqfQG^GYNq@MPVntTx?g8y2b-G4`L_DJZ$D(+RJQ!QzNG2_ zK=*?0i*zCn%18sx1xe7#fFKM{d^&ORPe7-dwlR+sz2WQj0qUU&srNJL=^jm3eLkwf zQ>j1k2p`|^u#aE>r8sR9UHNvPCzwQGl|}$g@~rT4=Fc zy0A1=yv4+Pzd60x?yNv3beEPWdS(z5%GqiZ8x&7Y!C_>eNn0^>+t`*mXzk4Hzcna? zj5BP_UO9luUEXsBy3KFSqFbUm3u&!yNtiE}XNb?q5+Bzy7Ok&SLbyo_VI9q~wul16 z(&J>F)Iim}El@Y*$UCHChS6A8yezp(valXZgxk@a`TiMp zDhtY=aF1@U>&k2{k+D)>LtTP1Cu=Jrxj{j_)@+MPp(>}Ao-$cKZ1h%?0%2w0+TdCQ z>l`yLnN40+*XZZxw9BRR!N$~PaH}e0t$JWB&y-)#WHs~Y#7EptxmC|9CG& z1cdzfw;}L886%hrUcVMFODOy?$a#I>xuZOQKP8|>C|(PQFvV|oU}D8hwq$$=fHPNo zg#h=rHpDZU>vaEL(*9=-^h~!9(!w0SFrA6fAx+4 zzXPkhCOLlpzW~>DTRB*uZ(_6>0)A zuw!U;6>szvwf2g;3tQzK0r3`ixl2XwH|kqIsV$c!SBtGPHMat;8dxO)mjYRhlGN-W zP})H}a$8iCn~l9;2*U%`+02VnqWya0t!Zp*W^u>zhDnA=AXlm4y6RCl`J(Opf_4Ah z3*gCy95CRk(1di`BOluX;*F11p5r+Qp`y_5OU4da*1OGn9s(FKk4}zvj?l>rx)eq0 zaV)_1FpoDbHmK&9$haphNrnNrc(A!`q--|$-c=($x%xMjci&v$@xsW5sqqVkS{U^d z?|k)uX&mTb?ibIC5v<~vggR2$yxg*a4XKFkV#Fv?s&3LU0rZKqDma?YCS41q+=fdO za;=#P3EKyFUG#B?d|t}Fkh+gGzV?#=Q>kG?5Z1($SCTx6A!72iw8dr`3h*lB)h4{! z((At_F|_#C1Fif;%G>{ll>a`7;s4X-|A~(M1C&*&8cs-J@ZZBJo%5bB!|1o+5WI0} ztotGOLi<2q9NhtM3FzQf9taneP1BYp^lkq3htqhYUvZ(_ag_9=aLTv|^2sYfohM+2 zV232h*>jrB#uBV5WeJ{cp6?%?#T_MPejhI*p}(H@nJ~6a;}xQj7%gWfLTAR;X;_IY4n zlD36OrX}P`wc-;D%V*Ep2r-Sga2crI)rrFaT^NyHH19)*MRFZvq%U^eX1!gX9~@$Y zC>DI=+YHexL`*R)K5DsAGuy~m5R9bF2~9W|fR4fM0t?Lv2jvwGgkeoPgzWQQum_fG zWXxl*K4Urf&~q@AZ4|5*N@TqA`ziuJKi-Wz^XnOO$mjZLW-bU8qs9h@kd{1^BGE>% ze+h?GrbDIh6maC>PR)r~Y*K~9*g_qL^a>Z&-W*@*$XP=0EQ%PaH{guRyA$?b#Z+0S zt;W(7mpG0CVf?kUzNRumR9haEQ4%eUGp~SXLXoVeiaU7%A=F9x8Ky5{iPLPIs1wE5 z43?d1s)}+JLAO+^GGLDxq|FoK3_w3=DNHRo2^}G&7Q9yqsbt03#}5;!&c~d0fzs9A zqabWd^&vuoEV!!(K&`i~7VW}ILoh+^vsdbqVWOy~smunMLex;y#>?;GQy9c-=qlP{ zJZNhx+;VQ`5|!=BbQbN}bQ109fT%gh^t*uE?16$|r`RhAfZ0m4R_*$DGPR{z`b8-UdF&v|tg`~NTK3Y*5D`rCx}*vP$GGQ7R*bWWZ5=1< zX=7tuk>V+LLCdW1*1O_fBNc5YSRgm;JGEa0wJXVO;m+=BO1G5VAy^4N4w46p>9`Qy z6Id)|LY#Zb%rH71p0d7)H_YvILg`(d940>X3GUJ9ZI90H;c8M%${qeOJDmR+YrQ6& z;`ul({Vp-L#aT+UwAe1S7#izjoNf11DKp)$Iz2`nfVFJ?YKx7m1wY}Dp%rilPdq&bCd2j#$*4EoSodDc$T|V(^z4hrrmUN~xAu9CS&(UQz_}|{m3}us zcy(Xq5Z?j0nA|9LiknGrWRY4t^#0K#nDoiKeNJe%O-cRZ0aoQSmR)i>Q3)ziDuNSn zR)xDEkOTfGqaK7)y2}RBrFQETl6`c0yAehW$ZT1RP*9?$18nr7@CXEht|>7N492-9 zl={1r3SUGjP9Js@ULXX7_*4+nLRnf)!e;d7fLhXC_Sd>LKipq5JYW1Ex77f5fvHrJ&YsnNH3&6w?m@nSzL@)`&g2euJt11GN; z<Bu3rFrNM{5LZsZ3H@J=lyLiEjbsScPyt3sbx+W|0McW|90baE*?S59V57s zxZPZqOg&SGaW4naMtwY0eov2iLlC|QW+4h)ORmEa5iVp4`8B3ZW z+ghEfBj0mW`Mw72Niacf?ZM+p97aCLw5X{{rBXwd!mD0}RMQ-+(uiH6*D%Y8tX;z9`H5yOjaO24btZ>P#Mgr$&Gd&V4EJ#@ z71|h|!MYrF*nN!oJKKBeFD{Xnv-f}TYA#Uz=}nMdzyAEkeDS}}S^004v;SVcC#&c< zVXC0}!ctRPv(gOnZxp5ssvZ#qHLDuhR25m|haVRB6O+bFQ`h=W#ceseoh9Qf+zn&k z)HoVdVLbI~j|O`REXFh~m2p1Ny#jrroO_`HvJ$JN@BMk`KJm$Ux!AM+nYpnAVh=Wf z@L?y~$AA!vOW5rX3o|2er=JIbpy0EZzVA2@{)6P8D~LAzdds~-C+-e__C|3vK++xS zx$C{@XMa`?XXK4{G7(9ri^$No%Tsff;p5+j6HZGHULdMq!k#wg?9$$zqBiv>p(akW zK6*k$sg6a+>@-rCDMUlE8dHSC!ph3h@#GpiaE8@XMTsc_I+W`Ylg;>u4&CY^qU;zt z44g+|>V}dm~piAk5{w01cwg5V> z3yjbRkqH)*24w1MFHnMmOH$|5d8`=7ss{rL-X-$DF9DR4b@P-=AT)c zra>;JMkYn1<*_v_g{K6a;=p1pVaO0+<9)xQ;}&JE1z-e1BAklzH1GI69){>5()^Y%_}sM=C>oSPf)-PRr+ zSsln#f$p6P0}GG0*UxE1$)l@}t%A6^*_bV|BR#>R^n}nsLD8AFt(Kp)5V7)3E1G{- z7tg z4hsgl?R~PvDji6!7pD--{76KW-mz6M`KmYPGIE95p3+PpN9Ngn!Cs60Y3-_`=$MSAzP);7VtGjK8(^r); zi?m-H&fgp(6j{i*dAx2h+UP51u|=Bj$xqxS#N8zY^oC$|htw7Ra!cteiqVrF@!<~C zL$G#uDuEwI8k24LWsN!TFydZfVS5$BOg>fOo#Bd>{f+fsHGaqp8Uo8-=6e1gBhmjS zEc$PCezdBDGqMVD7vEW7f}{zlKfUp&p$U^UO)0bJLNmyUw34` zRt_Q}P_b3%)q@C7JlON|F$O4O_E~MCOW8vpbn_bN#$1!G>aRw@OO5&sdq2xg+ll}ax5^wkmeMKSPNrC$rJEcvHhFAdAU$w zv0H>Zdl?EubG6)}2rMsIqQ%Y4E&I*wu1ORqufxwI6wXtWS|)1$2wPj~Q)8@%oAt{aNVm!UuOkm)lJ1r!aJ@%>>haGi1l{rgTv}Y1~&QIER zd|UxX%l0jT7bn|CDd%n??Q*sl&w{V3lB+15L9`ZGWQh+(c}2_vw5apDT+;FwsuN_F z?CiK{^Ob=i#$Z4^t_essvUv%fjl23=j%=eb^}9|kRz>j#?r8DW{B{?K;W-_YrlPJT z*1?{uvhR&n6xrGf8j5vYjmmsHEl3U%R=;ly8MzAzAY;4uL7!&moVtY_=zzXq=$yF)n5KM{9}r`& z*)#Ia-&KOi*>eKXGk-O7NT*B{?M+YP#ChpmV^mQBUNWMmr

    55``9_>}33)l`!Vs%`O|BuyEPuC2BHO+Juzqd@KPvwPwhEX!21<+) zNKi zC6OZB1zRT4a9Kxu{WM(f9>ak6_js7hVM|qxx&US%Vl^`qlM%*@v~-&8b<@YJp{lG% zwIn!?CFKIn}^alTW6!gB(s3U+*uxk9O&j+ z`q`$`%*=y;ok&j~;Wij4Y>ihPZ?}s{%Fc_+ulB^APgX82sco{e(1O5#S$^_bt zb>&!Wh_6K)F40?X9-JX9)a_O{$16Rv%&{p!0c)NG*1+=mhRWL!J!PEg&H4#UP!Ez= zf&+uUalx-j7HyE%hj$}x-EWP`nVxI;iJYk%Mk^o9^uIV+O+Z7M%8UDrLr2g~o+T;p z%!+VsEpAKAO|2%(Yszupwr`T4%@CoHE`)-&jEk2CF$=cJh*HMKi9)nYh-U;j2i$^U zlqm~3g1e3WFV4<6$dYK?@?Gk(?JnDPmu=g&UDc&iwr$(CZQHi13sd*r_aQfe~X z5Qi5burMK131JqCL8OIntg@Bh4~jz`W?YvD)QS~XRB58h0?zQo59_Lvw5A9%R9S%v zQNNpf1?GI2n&DZ~U((ToD()TDmrhS%1GF1)7SAM1ohP!B`b@K{`(5e%=FlW;jg!CzjW!sQK1%h6!(c#gI|Ez* z&3C`KI$Vq9*F8_as#TKe>a3dSjx%_Uzq;=~mh17qjyK_dc!5=qo(z648o2!lHpc|Y zI9kMngui=_39RSlo9O4jQ^GSLo{$h5G3)sNGUJ}Uje*h2GSwF0K{Hy|K}3@sRTD}B z7Zmv!Eip27@`s|gOc27aR$ns- zH^HvBUz!h3rDg!|me@1}&~`}d3@Fy{V}pyXjlIaYOeqt^8YD5xc}-Oz5->Pn{=Nt+ zrY=2_#l{?Z8X*IfeC+lqg9ii`(g%N0pcNwwl zquJD4T{_}1w6mjHI#XR*rF+QfY>}~)hB{9s%86@0%tf9>VurQvoVSt7Xr8}|E-Ke* zg*Z>DN+r%Vmo7!!cR^qf;yRDlO1IzKui03#NG+En#=!DAW3!=#y0eNyu?rI=uy#b% z8tCQYWycAaPw z73cxgk}Y{V=q(aiorz}=78drZ3#D`|^U(^1m7r8ka|-RG`-E2-be2ab7)W$ZXSk^T zmd;w)rF=&nXfEjov>aoL3i&3C8fkBfRbs}m%1fE?nBKIn2CtPw+eoV|Vd2Yj0n1`i z;kfl>xv02}7NHppPFImMfoBhM4yMl^)!xrZYRrkhqfbi{Y^vt*Re^>;vmyg#q?=?;1R6A88jx}z_aIr1dfW2de5vSTM1K@>?U%b~( zt4q-F-t5Bb6VqupRw}I#-TMa7gIsCiN9=x}($VuYc1&^|EZBL5l>qi^V7N z>`l^r;!))`^vdp=zwL7ekaCC6FuU$iXDV2_$hG4T-ccg5L1zwqu-CAL{|OhiWXIh-fCmAiSJT&EMjg%B zr|yvYgcSL_qa)gtUZCC;JBT`c9^+-(ckE2n$-h5yMj|RUI6Tn_GT}{+(FQ={!mHix z!Plxw{hF*lFz~^J@(EX=M!Y{Ccy|S5?0|ZM9mZ|9A_d`}#$KuQe>+8GmZHnAZKaT{ z8qIHgm24QvH^!`F3n-*YvlgKmc;;Ey^&ZBc9uX|`NbbVgibJITvcGfo z(%owFSeJj;DZSejvlpAT#W!Y-uN3D?c>Aj;z8|F)c*A*bjCE3Y)o5Gcf+(=6=UO|= zJ7k8zMe3UC1jQ}$xg(&Xb{XB`QCm=!S!i?t+XH-^I{|L;o#NJXB|x|S!I;kdTCs}E ze}(pjwN1k0iU1#2w?}rA7!n>U5M8=2T17s9mO#I_WDt*Fzon!fQiJaomRS5JJDAll2orH}y?rx3V@ z87?}(1$rj2FdydBU^Y8CpFY<_`vBW84*FuX-m%j??s&_+2}hv-0VwWt0wgMVV(5_7 z5w!&G2kLOX*FM&JmVnG>X$2m5=>x%2EZH@wEZ*<%6CzfSkT8BiUw9ES9!e2A1sov( zoW2Zp{|xpp=!WMOz4{^h35Kd|bF|)->r~SZCr7qoGE;|xWYo+Yzk96=l4c&MTSfEd zE@=YoN`E6ng{T);UbWMg`2-y6Fh|Gyay zaT_ON2bcfMie{>;D6O_uI4`v{X_+K0Q@zO{4E>d5>bV{m0U#=DN)XC4pW8thz~GM0&uqc*zNCW$#T5 z=6qk1y$HN)Wuur}1g~cO1s)L|TO88+P?V6>U4Qec7{-$d{Y_A5Wu8;RT6L<+6G zd~@uKr=sakC(CYDgk!qOM-J@gQw=F<=WqYeL_Kv65q#)uRvmLXWI8tSzB9f=6JJ3b zPenFnI(FYloR$sJp@5U7_feJ8ltKl7$ioiT^E&J4mHL&D60Zu zr9(+=jo_TEk{x?yij_c8NK2D9{00~<&uNIPM7h+<)%Y=oJ)lt?e7%R=Q;L`x7qsXl zzXEIXS#xn}$1{tRUEbp!?CD~7#QAB$stJJEvXwU<8MqbEl!evUW%(%$y=rZEo}kCW zL&8rw`1TyC$RcV<*%g1ox&sc(a8CB!sjkiWbSirCH-QGrgf&akhBd49l6>lVnsQ~$ zBQ6KWpQ?;tX`%W$zneTLo~3nQ;<1;fJOe^9Ii%gjX7+3Cf@^GY4+>l)Y$FFZq#Vb? zynt%%((ES2FSanXGl7d($tFz{?h1N3Jr69fQjhUWznz>g{&r5g9bCAH^b*ufsQA>s_ z#7cHG^L|*q$m|3Sy9;T#PN^M70KF~c`(;sfx9tQ)8zy>y#A#gNiuO9Alr6Ft-jpmZ z?GW$6w;|6sAD2%odj|zu3d_N~9vmg$Ff!5OYC*1&jHl^x~16GHf*t z&qg4h^oWZ}(Y+prAM%ps zta}p6ca-b}H>;q1;zZSJ#dlKV^QY$xO*REGM&EPI4Tw$;PX_@1I|5?B&W9W-3&Zv# z5rrh$tMppfmdQUC#9OfQNp{f@nJ<{KK2x^OcQ??G-3d2TeltGb1|2-V$IzyAFklc9 z5#$p5Sy<}|_Vl?5NS4I>MA%bI8gGM<8kX~dG-L=;Krkl4l*Lm^rAAXvlF)jHxpDmP zWJFrSqdJZI@5V+*k5f{-I&5Y}P_cAC<(Y`z2vWbbB5-42BEx+`e!x-_iC0yWnFSyb z1{3VtQDnoqrn5Pcc&ZjO8K0J@crQeL8r0h!M$K1&{?=$dpEqJ5Sq;aN`XG(0@%w2j z!+4c7*^mz2DO64`-#QBIGLaHgWBdm%a-Xo({qI=?>rG~nM=cpT_EHR&5=m@S$BWC@ z@EYr_JoPql^(`%vr)YxoY(>CfDPq4is*DWS1+aC6c^3*2RVIO6<(9NE zeN3K&adUN+WmDtu`ZRs`t<0r68;dnklZF-(qrEmw!rN7Y-l*aRx23rfxXKpkzhJb= zPj8lfW`_pKcKC1zwW;V%N&@({(@U z>!zM7NL}0@`W>-Y^7rLK`9$-PvyWWi_wOGnbTXOx%F6jr;bL9$P|Val!OGKz6{Fw` z(I6e6a7UUFbC>UMaLX2aGM&@O$XcRt@#gPP>&V%`9iwi95jml&-WM$RCq3X(ptg3q zc!3=*{$xvPQ!u311i&`X(;KD&Qkm+D!K%oqZV$D~s*(om9<52`Hlmaqx*Hu>HcZa7 zp0MYI$MZb)3z72NC*ers1VKsGF&f7k4`1LcG?pDw5BTwTASL)SmxjVA$O?5pik=Ws zu(%ykXuTerdaRQmo)RV1?C+P+n#=ntt2e-1-umb()fZ*pBJpWS9&+jhJ_z<{AR3Z0 z3&1tM-$`dxB623;U``UvrYdL?K)(B$m51z<2^Kp%JR*!+UJ7UdusR08-V3 z+jt(1lg~5MV$+e8wXNti`iSSG*h_T3Zl)L;;Lgo2_(RrI0W@_%%UKe9Mo@~xqnT2it*_mycD|v$Fqp@WL{=zYdZhQKbqs3etSn7 zkz7b&ka2ORMdu)H_uaT8Wf4h@CIYGb;e=CJ^7-sMyzE)F(_^!KbR|7qg{5x7aeUg- zR=)>3-sW1oWQ!}9G_@2-F($rXPulI-m3k$__7V8wj;z>PC~=410=c(C7NYpKnzjz) zWw;+hhxySjQ94$lzb}4AuAI7^=*$ah3&T6{4K^O=(^WpHz%ZetbLo;y0Ac+t3tHW2 z#&aYu3vyp|NP+c5D9rO8>U0rsHuLSLj*(_r$ypY~owjyIXjnfxl)* z_%UGK0v^CHb?LM?Q>OwN(V>h8!Sk`7o^NwOq zB8ZP?U4ogacVD^J=-$Y?iv&IaR};-E#GjEZFYqp*Uk1%D`0A1Ii=0wk|2*fnq|Q?o z|K5HfBK&vXXWIWec}(D&)1zo^V`^nAVs30@^uO}N5>;P)Q4TS`x>hHrOqhN{P>aH; z$s}(Ef+hSAhX8<{6>LB@5*S48ALb3GbzKa*=(!HyP^2nER06rs0nxUZ7oCfGMa~P&x0k`IIAp?%|F) z5c)>TNiS&$Fzs#sF{qbx&oY=-K(1JFd>G0$5t*~FVtZdCOhu@^NTHBlBlkNQRsbAgAt9hK)5g__hCHO zMLkR+wgqPjqViR5II^_BD8`u!l>_e*M{I<}QY^EcKYR?vF%4DOM*30oz=$ll*G`Y| zvb~^yze}dbyUlQ3S$Ej5YCh4aeS(RHoq>4TT}K5X___glM8)c*$O}5@F{sI==S= zr!^>Hk`~kpXdJ}P7?_LRaa+ma75;dYd;}ziGLgA+Hf}<5hchm~xM5h~<3%6pkc_!* zedtc)49biO;&Hx=$wp@=V|ljp()*^3Ol%cXaXDtWaP=pNhFSu!bQUy;7X$`6yd=mD z)rS=cM~19{`}Q29gXi(JO5GJ$Tv1OWkUq&UKAJp#ndf;nm$TP)Fq~B+n(XFx$CY_;86j-!QslNPf4der`s6=LJ1 z+XFAu;fGD=qR*GyEjs{zO9Tiq?7g6mL%F@AAi+zF=ccx0tgwhty23H%peBRW?dyQZ z&V9{OS$!eiB-^8TR~wMMVeLoC&P%@)BR<3vPWBG7XfwBWm~$0+N3jim!Gyn=7Jdir zM!BVW*BG$9(M05`iT99RA}N=DHPak3JKwA-Tqxo77zf@$y~Xnx{y06zx69Js#i z3gO#{hAC83$_wG!onFW+l5j=TULhh3+a&z-??!S~c^f9twvBnXD9}7P9}OJuK(BY0 zRFi+3Xb=z@IVrrdsg?x1A}4Nr9}UYkolS38!P-7I#V|_%HpKC@0ezZtUT5Vhz040J zEXv`QwLpNhQgFsG( z=)rq$3)feHcbvI}*w<`3RI;@&m?#-zPZ$tqJ9;#-H`N;TF>r!}dxHn?at){48>5Z8zS5_aguo6(o^KkkU6hK) zx|-Kv1Ea=02;FWHL%bI09S5N`zH;q`!fsvYbIM9N$|ibdM0e&7jnh&?g$rC|WrNZ& z$F;`}u&L(hymhf7htRD#rW7Waug^LDidI06GnDmB*krlu=)kjFV0vI-^9hWQl2%jb zHxK^>JoJT3zn!9+kx(G1+0kF?Qn*E0B{=g{HzDq;X#EXd|2l7Ag1)*b#Z+^`{~jp= zE`2?szumrP?-mgp9`KivGSu=C75h=kADm*-`UsXtD72+2)l$P29-b;Vou-$%DWL|j zEDFXkP_6Y=8K{nC+nwWulQrXz158`NI`e)Z18VUrMJu9rAs zYDrMzth8`0KVTD-yeWb*JDc9U$=Fn3W@9aHZjPVqVs}85GBgy>SZJsae#+a^)Yp49 za%WAh-=R6jwG=l59Yj7Ol%Y(Va|Zn0zrw5#haP}VP%rbAc+!V!Wh>9Kid=u8ZsM+r zkaMG4EN>`#-RQJo%IX=Ufuzg#_Rj-qy#@nG49Fip`oDp$|Mg7d-<|jh#`;G8=y>?w z$06Qv(z4hL2moD0u_iBo0Qq)yWr9|lMKuR1IT8dYVMa^pfE5lV*CS`_-7@=k`cYn) zOeZ)8wkDW6HT4;HI_mj#dms5v_KVH{KjJpV5z=my#*$gS)ST%`h0=7S^j?$s-O4C9 zVsse`z&&mmxA{tdl0*?8n|OvP$SlQF5zWGWB(pJtUpF0h6>S4I8AMI&+ix~pShV3o zV%m+?F?yZAzF4}ywpi8-1AZNzQNvT!LCMIYk9sY)oG0bGtr!}|$b<4c1O+fR1-vyM z`J4{coJrBHIHd5@t*biR?R+hAlcP=b_5Nl(QS>BQF_<*WdUB%Rpl&DKNWzP zT6eLdeO_dVy(dJ;n0SwVXSk!c^7*o62LEag1p|YO!F?#6_A~y6Jrvk9A>s5iK^ELC zj0wmw_b~{%fDgeyAwsf1M+jY(q}mg;;o!aHNq1OdkMlIFm4}V~x+8cyGle(q1DD^& zKXb73e%NB!-&iF3?_Q7p`hjEro5+?nw{dndcKlBqlBXBSBI+mL!X$2#`1cRLK(>(4 zpK7y7!9vV*zZmG^5CWI_NV&v+vbCRH5o475Yph!|E_T(T&AypYStG6)`7K$L&#VP| zuLN6P_IF*LM?YQ9T~AEd#I0`jT$|plJ5FzScHOr;PjI;Ed~T;6|EL)5hR)r~iO~#< zfNE79@eJH3+H;BA$Hju%tpPOe%D8t(4sHs&(Ou2n@OJ3-gWFaA#COy6R5l)`lpH z-f&hs@)0V56l~DB)~pXoxbjNQXyt|q`_s{8I5tfXYJq>40n8XRGLa+mX>qU*;Ga5a zvS5abcfqiyotp(=Dxu|7sgKJXQR2UeibsMgLQY*583m$ATbHpOoRPLJXdljSJeQ#{ zRoOZNn-}|OJ9WwD>Sm$KdCrzct3hRn2(oH9+9mslMzzz73g?F!lA6^b*t zpx@(G0?z{a5yx@DQbbx@5?=9GMJH>8K<-JLM=2rbKaGEHOkC*j1$87l*M8dkDtTI#9}d2Yl)& zyGZw!mAT16Y){;HeX91*Id%H!l;0(Wt8d%FwohJYe1-$3vILQ)ubn&m zmYpARb%yb8L~%h}gtj)TaaoDfrlPz+1Y#AK4n03awn%_3?^p%P^ zgWReyqlG?3o0N+om&dhlg&APR5w=q^^)1^3u;q!bm@m?fG!EfrcGXB68bY|#HKoLc zoGQf@NvV?MXSAG8cJUI~2zk0we})y2u2y^7)}HDVyw3K;ovzbR{m?caIKq)=Ha-?XimHUFV3UC=_Ux)7>zUTzlmloNKBM(?VOT(x**Go=h*y%Q7^ z1RRX4RSYNP^Nw|{wSQCc9gM8KAGF@b=2q*-lnhPR4>I;{i|-N(S%`Waw;sab)0Td> z7v#m`HEy9~e+L4D3g4|1Uw1)K^l~2*9H0v`*Y-(WH!h-lq`0s{eZnQ0{DT##bZcwLaG3TO!b+H|tzI>vbh zW+pC@09F=9Ae zus2fM;gwy$L{8}|b4IorX!w`VX6LmoxIF62{cYiSz7NF98TuZrV^L{G4*IpGBoBDO zZ>$E8L3)SPsNk)`V5>~ZtDqI&aEQCWK&O`v$t4Z?F(}}n$rz&1$zR4nXlQx^vVR#h*eiE9VKU+7M`>=ji4zc3Ibc_0R5-)Ju!5vjC= zVt<(^BiBqor--)U6QJ9*LX*4v5T}+k2tuz*YXI-0B_2_CM?Zo%$U2`kILs=Pf^fts z=N`?m66mT+W$GAf+Znuac?I*@Ff5L0pwmXG`o^<0yz7T$Bm6+Vx}z{vCCnn{+EwH< zD;pnrF8*-3VJe?mcPm=YW2kuY7X*Dqz&X13z4qdOu7!~^NmbN?qr2bq^3X)t(F8ZU zq`%e{UT?CtM2TL}PCz>?C40y}2Vy?pfzHsr;Y!`f7E8_Lh~jf7UovKx(TN%BlthlK z-gi^C!X?8QQUYD#d|9dIRuAfgQg&_rau+oo0Qy(RqHn*4ok+%@$pKJbyYYs1d*;a< z+=X6xO>)LHt?uL7LSmAiJ}5bz=P=Cq$=Tpv^2s@V(qT>xW%vsn!Y`&tPP1{=r=(I~rl?XE8i#FRYKNYYC?Tl*hw2fd z`P`_eGma`R0Decqw1Jb>>xXXtvmLki4VdNvZ^Y$}lQSLgTtUrSI4&bcd24YQ>B(ZEl|@~?7F{+=Q|-)w2Xy*+ z=6o24h24xeccacNBlwWC{5tkX5(8FBJRpU^bh}W^F-irwm#? zF=s-{@*QUxX3AeB8kpy;rId`c2+F6+?6|zfLP%2Mr19E@B7gSPzS=;Pj2Nm85+)g8 zP(I1U)K>5Pa5dggw8w`(p^RE*`zbTc>?II6im@)ucM?N-Td-u6-mX0Uz5 z-$eKeswlbp*KMdv!LP`0F<=EG3W}f#;@MWzia87iE&37cHF z_SCiDK-kRpTd{*fyy^=cbACfj;lE=j|4{J%_ks?ze^c;=wl*%`HJjf~ClFAS9}o}_ zKmN~-j(_(d|K}RPf2}okP&EDzYI~)srBwPdrVrdFZ4*O~KsT{&ZzzGdr4=&PTnY-( z5`Z*Q5n?r?fIxj2xN5Tz4`{qHI8!W%>~IPpgx3XY2bMBME7anVh+;OTQWso$H4W5z>Z+_6ey zV@_m-s}+f;B~nhsiiRqrrp7Pjr(&|4OdB5DxY3PANJJ{cznfybR&i=ll6*h`7_1?<20gNsMF#Q-ZBZZguUC5{Kg=m6t27^e5U32P9R zwm9d}WuIfOrA`&^tvd9bV?6HI&%B%s&dV=3TDY0=#zsgse}Yh`n|5ifu_cHNdV{F2 z9%F0SoncFudbQrlk1rqaqY1?fr}UJOZp)GK>=`}{svVc=>n@Eszi_(&o4a3uTJFxq zL@#&288e#04#&-EQJW?rdeBEPxL3vlvxJ-e{Ta1RG7V*DX@?hX9G$opkhUUAA8{NP zXxM|iT)W!h53}0VkXuorTpBRy6!z=thV6MHqV*o&DKuQqVHs#mmNYsrWSoxx@sdm_ zY(o$xrkeKX#+zic&uEjo=#?@BsMKQS<4hxMa|=yx!`7pzQS^=vDGR*-S*^GTj`*?x zC~ldV6U>LAVdFL`SXt97Une7#*1LzA@iw0*k+pT!#*%1FmNPbR)590{Zhv%3aX6mF zosiO^$>9V>!_SiPW>Cpdjj!p{YH@JA8Xx|FXQ*1EsNT^+PXR!H>Iw_z6dgIU>jd2~ z4gwQIHOjHSu~!8{V_U`lhGxC>lOZDP$7LhI2i5VL!%n+|>H^!8|7~msRi+x64MjyD zXnuYzcRXWOR{a}VCs301VH8prBkbAh_BpCXfxHVBLdU;eFx@Yo&&*=p&bcI)qNO?~ z&bPC{piEv=jm_yAtO63#V_mZZCNN}aft1Wip8RvRJR|0BhhXqLq6;Q%mKV8E%NnQB zy7M$Qdo-x&2`lHkxSL~1eJ{q_>t41sGrl+nu1t&BOXHtY>Q{<;2PDhOXM9xa0%zze z;!NzC$cc?%-OQD#X&E2FlOdpoUGi;BK#RowuOT}K**yH>7f;~mU8)W5q{#nDvUON|*|rjdxHDc-pe zYW0PN?^~KOeh9bYC?&C`xctGD4v<-cFYT8f#V=VdVfQM5l4*Ui(&!}d3dXkMR%-Tv z%7QEj&?C(l7Mj6B7&5tM%w+lbCOk~k(*X49XorA9+xL}JHto91B zgd0n-r_lOW(P-$ETi`^3Bqp*bK z7f+v5Gwz8=)zxgNQ}rPX&rB zL%Px}hPoRDPNKD{)}ik#K!bJW*uqDQEX9Dz70t=4_=Ga4L@I3!$I{EeEXN4852Kl$ z3&r?);~y(vpY*rw8AgfWRC!9=WStaU`nr9zfvrOJL|D)lPE#zvqv@sAiu>MN3cWad z85rOb0L|K2qe1@JAm>$jq4%?VouSRc{4Rv)}%9aur{+&{S*ju$qCw4 znl^@lHCAjHCDl8=y0AJf1SF%V+t8pg1tXiw&Jy4ZGmhdlZ`Pp|H6i@uyF(W-F>Lf~ zE0xjBbo$j>@I{u5@Ffz%V-Q@@L%Z99mz$$%wnDbSPE2X9rgW=YZUF-YLQxCFQHv!T z%JNc2Z!fd351t1^2SrCZsG)@vnSzLIFT4@SCJgOE%etGKhk706d6T;m!57NNT=o0{!1%dx$}`MPOS?NZY^W-_2kz`MEB|El{BMZwFxC_3_e@b35D z2JET-OGWWN)q%9WjlQX|!@pE+qME0d;v()>*38pZU;?1QoXnc!*USS@t{kac4?hr1 z5>$cVcuKUSL!}?{X#eUJe^lO=;jnpWcah;Np4n^AJc+#& z`Wjs>2Ay5JpqAJFK@;4ce~G|l+pTx;g3ETzLDAhQVq3R|wmGzIUcD9Guo+IiG2Z$J z!_^&Jepz3B-N)W|#ND_^N4iR|OAfT(83 zuKoDa{Sm_lz+wNR5BWUSGVLeQb@NMvIAV-_K=o5>=mTlU=so2bZrts6UjQTCUT5~m zOKD*Cs9VZ2UaY;)kUZRLNrWL|)VQ0}(6n(z%nf_M#wzZK`sQYBRPQpX?8BSuKz|q? z>Z#&KuA7ydbiq6Bsfx6fl7U2ZnwhDcD5v3Q0+OWhQ5=lp-75G(f=Ro$cmbgV^Li6w zoy)J>0>WFhr;~>fQWnI};7BSi!v|KghU~TSqB(*fB><_e;jSmeX-M#BQ63eNVmtU- zQ+X(!v1fwFn2L}=>;ff#qHCxUG{Y}tg{2=#cNxxD?p8EWt@_LVl50V(Y!ixmIjyH0 zRK}cZvTMjXh^thoPv6lQ4pzRcudZN}Kb?D&k_ z8T9YI){zOnz1ES&xfYayB@!)|414m?2zBc}*Jg4tX`s3Kf81E7@uC3|g=0(^i_N$R zn?aWiq_an)QE$mYs)oaU*GC)pSBWc<|ENgck!zr0n?~JV?VHh&`oxS}f6QRTRh5o6 z${r0$C)2f2N~d5;GUP66IGs?)zsQbop|g(&OC`f$Q+SQborT< zS3kk^&s$^iJxTp>UOmooS9PGo6C)w4)d@?XErmRq%YP4q9RNonaP|(=<|kwqPnHqKeDnc^XZ)bj9$aT1@&-^5r)M~?0LTViXaY|K}Sp5|V^(27j^ z($_YtX`eZ7(K`eR1+9KzCEk=FSMOSoRqaJjx^0Gb?=>KQ`{KUno7it%J9Y>7ZUBM4 zoVRrE>AjX4Q$IbzDrVuj^xXJ+VgOAU@_udYeUY|--K&y%jiyk>cUrv)n_BCb+Nyb>S}?S%wkB@m z&iwVB(3QfSXMC?*PQl`d%v|}=h_3!=36CP zV^yEG`p!5wr{zi3hJZa@`DA|2+thG8N8AG4VI#HJfT3UV6`K8F%isS+qIdakVqSn!?umV9w`JH$IsrS9hrqa+66=W$qsx?=bgd=Ch)4g9_@qUihj`L4Mu+s z8bJ;nfLs^|Ik+`W0_4jNUa_SO$z;5)?0BpNB9v z^s79;n4;vG_`+aO@@RO)Uciw|V-x`EAVcO5hAiUtVu*e7J~sfp4AM|3H4HZ0vvb5D z^U!_Q8-kbir09+Xo}l53bjX0zxE~I$PQkI{!K<;`O&Gx$w0-PvwPf*?S73c~6rziC z;tNgUi*@1)E@nptT11HRxu8rsv?Ot%q6i0*;B*c%kzN;|(@&VwdzLxvwi;Td(+V__ z3OL5{-~c#(s3T$AbmJUyC3cYj3_~FO7f3?_eQLsp!N6G)1lA1Ml^_BARf)TfFz##+ zcungNjln`-eJbg`Ca6GdrNEjBY!)kIi&c|_`X7@IdyIZHiETBNXni_DMmkb`Is$!^ z%*efPK&RnM1+Cw;WF2v5IaIRyHm;%b7;j)=q{#Q3-b-;g4mqG>Bcf4?#09kI*bW5oLSi}_}V z`S$&mud|Ez$uK0|$1aR9jWpyKc+0Kdp@+blD7#Ww$m|P zQbe5^=uK-(nDnt9C0#Ieo0?&Q0z=!+16R`Oh=xHy{on^|7bZCm{_n2Gpn? zA-e?0sjXw(ZSZF;_Ze#1hP+Wy7SFwtj^bA{H%Fc~#R=^x12ORUD_=RzX(w-a>$Yi@ zx~dkp<8`)^ZdNX}* zR@!g4Hfm-mY08Bf!W;(s=x(VN)(L)NK%k`iY;Zh3oqA4RzJ5Fpv;G01CNB}Jj*$C- z7l`^mK&Y}jfS^1Rt@dM?0ig$W1ErtlcDE^lAB@uDgBfPDg=oJjLLZX|W^q)>!=5`a z#Q-CvK2ytTaLR(greoF+b6sN|7tb@#Qr&uWAs%fxlVwusV$C^tqkIowd?WwUmb_!& z7s*A%lpLF>nn&4=#>7H}mbJSh&-6vi zEs1~XJY%X36E9dR0W{Gxs#kahY?I;QVq_MBHhaKwxal7yEzuBRks@2(1b`I=B^ii& ze}eCJfX*IMQdL=V33L@zYYAHyd+$WXWfZ7nVeu3VURn3&;>e7`TYtfj9eJS+Tcrio zEC$I#`8k)~(UW-q`A}gP>Lt3p5;KulN&Yj{vpnK34`x2)m7&xi`&DTQLQ-IuxYTHh z%Iyy(#yCooTe(3Tyizg!tU7Oz%x{zn2ViS|b132o1VG)$ma&*H( zONm)jak2FzK%#3PEe5!fI8I)(bzyyH9G$V($d1D*txRUF{|)>Q6emvbJTAM)2p406gQ#W)cE{B(#R)jZ9rQox}k;x8@C_*V=O_<9==%OX~ztLCoWo)wMfmkbN_?0 zuYip!*|ts0cFfGo%nUIzGcz-@lNj2}%rP@FvmJArnK@==`+H{YefodioBO2SQcJDY zIqK6@wW0P}d(}xSf9oOx+LAu~R?=Z5e{8Vs9a7JXd{;HztVpi50`KBi-zjVZ$}+TTrDSy%oKlb%6v zYtsemSBph>OtAe@{_q*VPMU8)o0Qv_J6L4PQzD(TX2wIdwWhxvE>Dh(f+QO<`G)*0 z$g2spm@e{i@9g9QwaDPPAB)!4kN!++r1`_237Vt#!ceCNj2unIkUIivHG#40Yp+I# zKRFRO5j{~4p}EszuNM95cSEM*W;EX+Dx6kE_ZB^;lMi6y6^mm;Y-;=1bpf%^xJdqL zRhIcCUuFfh4AzgXaU4;C$8-Xi%x0Tac8=bneUSnSibgN@m|kd_$_5BYT4TC{U1L58 z>r`FcB8!c%Wt3o}XKr-B%(AkLGPtf6&{E&Q9jv>PPxDE#x18}>Ak*@a!`OU`+q@v2d`E{(rt)GXlmmj9LO2#cXXm#!<&k#wxq}Jx1+&P>=K+1g zkVMiSs8yk+IM~D=61!h8z?_7CKsa)7W`{rskTerNChvyulHzp{XHJSA72EZppKa>nAs;gLJm6isIy#r_MvRi6uF%3 z|9Mo{dQ5XT^XLG^*c<#+`6n5W+$HW5p{xOhO`c_lT|JEuvQA}B$|`Z-ibsaasb_3a zqtL7(Uz(kEsB7LtEZu{^rvl1obmAG#kl&-3_Ch+n`8i~h?#&;Vk)9dp5obZ}Qk7CO z?9}LokIpIdE6F5@7 zzU3JG7z6VU`qw{?(tq!NH2xQGBx7%9{u2Y!SuD1dy*sU?6x*b#fyt(4pCaC6NaPTCaPytxNn|HhxkY) z12KvpbS!q*RB@jK&V&}QoZzseox5X7=H;+zJAXq1_6j3JX}FGIKBz$<#2mtgQQJ9N zHC(ZZq`|Oy4NC_HtKlBFUJPx%NGVTaWp6kYMrb7$xq3Wi8btBtq5EQ`56h;$QPLxY z2#xVQUlnsYCI-G+QL0%hmlIrW#c=;>GR1U`w;*QsqriTK1mlV%#OCxp8`Em&6ABA{k*YBQyIBC zh58WORAnw8x=%v=njjvES<%fjQm@9&><|#W+ zxZIs(7uqgXYc?=|Cw`lT#NFT$rM9Z7`U1aYG_{{@x-Dz2a0;8E@tNE&K{C8oGgPat3@ zWfmAlflZ$y+M^67DP!3j0S`XODzn4YC;F}N(%;Z5P?&3UE17M~K&=l~4``+VKBK}| zMHGY&ai`VC=6T4sXyi4dDWF1AGa`Twh#HxA&d{Q%>XTkz3{5IwtmYjWx@+HqtiOIQ)7Vr=loY8~n4wglNM1g1uHf z9^NMJw>1_XZBVmlZ6YGiFSluA&6%#q-?9X(ivEr2-yvRro^kbN`1RS;FmZMvw+N_; zEXbIL)-b3@t2e6jh`s4?=0yifl38r|!ZrLyr4QHb6iY#8PTA$C!B4P{u>=x&J*o&x z+i3c#uLHr)5^;A+ePonb^>?pdPs`|vw^&3iYKVXP5ux%wW0mq^D9X<}fQAxJJfeIf zUZPPZy2ALQTyIz?oyqZGjf4L&&13n;X!q}(+h09$f3wR(WkvfBZpxb-RYIcN0gwxi zx>*)xjIC3v*2FSH)BiBg!iUyDS-MqkS}*BDzvZD?24$yCV8mm@ffk&N|0d&Z^xpR% z%h~SR%gYs9H%kil)gn-Vdh;_r`p?Z+Ky4H)dlIDzEAM>uaEySBd+W390eHY1a;!Pr zKzBp_x3P*&D0vUkil$Y(=8o@OTd@of6J#SK=|l@R!un@SCS%Jy5OYYN6ApEI!R>tf zXP3q4hnV##qkRf601_5eQl@VNk4|dcc5rJb3oxs|I=y>9JHu(h;3HL&89Wylr`mpgAu#w3YR5MONztnT(GPJz{!S9|o5_PU693-aO3> z5~a>1ghJyf9wXe_#~<0SIXA&vXXNw{u(T-Vew-{p06NeW4o^jEimpe*)>OIfdj#*z?|7?B_R^RQtwpftLa065+1Nc57`OF{g6j7v5-PJT*2&Q6^y4BTNK>Ar0up$kDWr! zrMc>tAE)>kOMP8}L-=+_=*`=o0yy-v3zv@{zW)9H)7SsQ#)0S7et{nX0zw$V&J6am;HABGHaBjTm@kH04C3}B*X6bRB|+phZfsTM)g+{zAK)Yg z@!3Ti6Kl7|8enZ?Y+_(y0AghJQyxjkQ1@q%c;DgA=ajj04|0 zzDX|ox3`0V^H2M+7))WFQQ%1U?Ihc}tD7E^M;M~8TfRsH29hFRqx?RUM&JaY513`R z*2FI%VH)CN&!8g$NE|g=uWuVy^8IxEqNEq0A+k1HpW|>>;7@%Z*_ycc_nP}+jV=b_ zOETw7SO*bTS?So??alV8EAS|{A}o2;XnAlGT?c-RsMYhTl|um zq-h4_cq_9cm~0VNXz(~`6=8LiE>2~bVi($#io-U6q(5I7bCr(*u-E0zX|Q;vQ5zwm zS!qhW2Vyw0t#lg`@w^t<;P&QB`0`ooc5Rocn^<)hu3)#qC1n#Nm4f<&Q+NBIbhfDb_fw}IEht}YRaU7)8wtrW+cF8EJt&hcLXv; zu-vrjfNRf`J(C+kW;?DXIv`}TL@eYExaumJ`pzkRfebSo>KvyGZZyM2J~LMD1uNw2 zjJY5a!qu02z(&AaPtm3^spF!v&%SWxO&}y0kByB1m&7dzU93i(t7ly*E?Ei~iH-kh zn7tEQCvw2);1$s4@+2H(pRw-rmAY^CowYEq$>CP!!HU~n+i9?}7mHk*ghq~&z(c#y zMt1)Ad*<#Bl+iic%JlG3G%Ua*JGJ9Us+w&*qJ`+x$v#9`ys^Y!Yb^zaOZt}7Ca#No z-PEw}M33v3L{aN-7Hozd`5q|p!p7!$f~_TBSwbU=L}QU%j+8Q8Y14i$3HknVh*3qx+Y!h{ZwoF7wUoqrX^NE zV&9C)P}v2JGMr`+DvNqk7*n$Vy(A-iIjChVJv$WE$*e}~HxEgUO&r+-HlVz6n=`L> zP>0P)+$@LYlpwXA-V6d5ok$cyYsB++?wKBA!;Vy(EWVc$fb`}~EK z<;O6LjxY|=r=HZV%}gr5+jolLq`)QQ|O{0wJV1?2?!0CChGoa;m*=A{G=UnF`RI$lP87$lTf89L}&M zm`^Bg6wQKKFOta9szUd3-nX58Hr0)+;_O*La*Z3g*(;4}3kqe1jvIOhX40!?j6Q zy+i&H;L%t8H(5W}eR&_{*?)FNtp9s}|Lc^Lzj>uZmA}e3!cA*R=nBBT|dA3 zf29cluLmF))4+(t+qO|jC($q2Szj!DRB@`1QL3$A?aAL@zlC@e%?iz5C62H2@HkJj zxSy?NW_NY@Kr;G6(zEu_ew8<8=cP*iJJT8qw;rWOGe zKvKG|;+)pAe_h24#l)A#$jVU4W!h4msT4s?IfaKo>rwmC(O)Js`I^nb0casn*y+Z4FK~S-o9{NV^xJ zL;WE3LMf43U6-ef#4@~wS1MmN`AvwtaQKneR5@Frj%$e)GqCwhfEYW4JccE0o;r9_ z>JXfyg0{GQSGNdn1u;1m7-kK7T4YL{1BVao?vR`?u__=Q6^eQAmK6vsBb6c~B7}NR zCSwdRJaqCU+oIOOgs`eJQ}&#RnK46~0P5pd&J}2ND2~gnE5M@68+Ukgxjs$koE29* zud1+F6**e3hBp?*sBcj35kzW9BW)1Bunr8K zvNk0qA_-40`IvH4w8b6-H#M_pD{JO10YJh?3My$cKd-LsbVElOex>;keeLf4@QQOa zR~)K!0QvW^f`1u2&AG_k)?`)B&!L)Vi0BM1?e zLTqIND$o_`@6k&3d?Ad0Ab>f%GG6Q>h+N{sLt|V02HPUyBbXNFiFP2VOf5+WXqF_0I`D(O26O z2eE--OT}t0)RY(p$Ha{fhZCay=CeQH@|`^Aw%fpgw}%oFcJpPxrOHZvo1k$^RF^q| zc+)6WpzJl|Q_wBKaN(s$0NtwpCN|*{^!X_4##Dn$ClNzW2S&h?+`G&?;Qnz$LSwMTsqO;7u^Z@6gbPUk| zxgy?85Fuv{!oN2uO^cAoX2fbFsT7AOAxtSN6<@Ca1tFA>Fb$Z7L0Jy8 zsn0p`T7Elpnr4%ow0x>6dS6~I!dj}OH9na19bMgPyI=F(Xt#d%J$3!mv}H~VqCsVl z7&3Q=JQc~7vD!D>LF@$_9o9l3(-<1|`iui+gGyvrfO3C%=_kiOI!umax;VDf7~=7X zIosAXS6&1xEW}TQ3kxyFNE?ekI3+}||50YA4vb=@CFV?I8d_KcMajn*GPq8;pZ;Wj zSC9gKyBeRq@1Q0)UL1^fq(!|ogqPf)>iZD*2}-qoHws8+_a?0S?M9Kc~IA&ZZKQ1qZ`v{MD0x-Xw`N~YXWm-)w`m4<|{=}0VAqbI!97) zcB(gep4Jg=rMY29Q4}91?Ut(FB+t{-N}svC zz8V6oKxSg6O@-&Sxsq2!b+)^MNblEym}gV~_l`fnpSRM{Aisg){ccCTFJcW__} z)`&|V`HsLO9t_<0CunsSkkuO?5n;}mI6-?T^?v3h+x!{GupJY~uw@B7xj6~~FZ}?M zm3V=hmHdY?axW6DX$oH{32r!*BG-JOxN?Bhszzs-yyQinadQq3Set+yPRWhu#3@&! zOrpnvA+)}P+!9=lDADRi^=C>lFPhwdvThHw`AMNHf^ELH+7-aFNFauEeRKQmI2Uo zB_i!wT?>mPo+N7A6fI!{TYR4vNMA6|r5~XEMjVb4()&Z=P zG&B%7n(-l=i{EbaHw9Sk#DZVPq?|BIQ!&faAWNehqNUYBrAb(_np*ul20R8@CFYuT zfuo%I2Zgj{MO~+uyDCVjQ`}RHtInxD;}c?#jhP^Ii4-leM$eI!aHQgdgk+1pW@Z?c z6|q>b&AlsNye+PAg*f&^j$$K~M^Q4>G>wLm;v54>lR|Psq#%L8aKFaA_Bh4iW&l+) z8%q4gh>pzov7b(>-g|3PFUI~Q&4B=qCj9kP1)V4BdgFJQpXM zS!~f@;7(&Mm4Mm~CXy0q@nuMDS=$CJ;gy|WjX=TiqxoGrE&xDffXSqng*MIx11O|| zI%t+`Z+yVuw&2du0nKNhvdq%-+rj>3X3P^eHsdo9h&SxgO&h)x|GuplGxjcHomfF& z1-Ca`Q*76{4p$AY=S2u+AkM<)#~&2bj5nL{SRgk^L}Bx?5#e^0KSzs=6?q2;H#o5D zMI;{CpdeJlfo7>Usu}QuJYBJL;m{M5Tws(EW{<9*0!@XGP-+XMV+9cSod|rmIg;-*!4s_Wkn$pcRfw#PGC!!i#tQoI9}Y84YbrH zfqK|32@v2--HI8#_+8qYX=(Dg%W3PLX*6rw=ut*#&?5q1$#fFwnRY#=oFF|(fQlQ@ zRTD{COrgXTJ!Y^eI5Rb9ZRVu`>{q~ zH3(T@W;r)huEte~!QTmvkuJ+WA{VS;e&yoJ;`o}Ue&Kc!6!j{xEs5!YPLw-ky2E$TOVsc!!j%AF8-gq| z$O~8=|GvPVaHHj`KIF6;_40!IZfgZ*^-G!TtLOw zU8`;0aC*K1GI;Ii)x!_1Vl|5WgQ)r7v(|g4-O;MP#zIhcVd1NTiZcg`M-8^*gt6M) za6Z1wD>M{w2YAvE6YR%BC!hm}3i;2vXlS}ph>$=`1UKz!; z!~;Uv7C{cv`3{1f!GLH(j6D(N_D1kW#`S5Xy$kDOiy8SJwLkuu_AP1W>|$v5cVH(m zw#(`RG#%`^jKE+Ei)_#Zl84_WLNMj#Gpe@U;?ld9w^djAS0(jAUgY$v1~3JS(C#Dn zuyj2dG`5|?eW(9TR7#X3Gz--bsCzz&ZJQuDA86>EFr0`g^;@J}o+V0`m6;tWHC1wJ znk!uW=%J4zTg-WOIJB!ggs~Z}E#)0!?t*{grdRTGute#|pYSXX0Xi{Mb2;U?#7O8G za)HHbV7|te3kWs&4e3%6{n65%>RTqTwbNUV8VL%V;Kw%+1ya<@Pq@}c8p6C@K?-** z-$(HO7_B|Yd$ZY(?6dCw6FvQ-7xZu0>3^Z8k{nAWIM%iejamX$)#OOJ9knqE7V1Gs zDKOCf$?@aWaw%tlOG`rE5)6=NDMJ=s6}Ojcp=@a>znGh?`%VmHaG7^?y@OpKvmwyW z>#SZXbn9XqFtn9#*)W7bjxjBxG2^fW%@4XAN)TdA<^};l*(# zlE8N7w&N}VtQc{9MQV8uMV@hmi_5CjNjBtB!A?!#Zr|Hw$~OH14n{6m7zMPd>d`Re zK0BL8`HO6Q`U+U$N=_Q;`K^nU(50GL0ljYP&h=PR7T8IUwqkArl1iV!YQixVtZOf{l&(nw_W+}Z;(T!>!-k7`G#nWn>%_qVJtMpauD*lydso21a%=ivEF{F&zmFvR1qe0@$qj-~QlXWCD2U1z@DKCd8r zy4HXpiGYq8hB`B*_P6Zs4I$Y&HRFskbdU+O@a$$9Wg3dz_V~p#c^N{~oHdG(K)sxj`0I=dI~8Fj=cLIb5p8O)Wb` zE1(X^mCfo5o26kRtKZ|UqFre$h2_{uZ`=NwZ?mPMR2AMh#1bE-rJI=Y+T5MiXqwF!0jFd8AbWANaaa-l3x3+1Pciq(2hW z=S%HLm}Ox+yqv3500_EL8$fC;ghJwr{xwF6M43XhG~Nlgwv$cVP1|#=d6#)UXxBh_ z#WcX=P1nuiz>SvW?NN?0Cr7XTb-CLAC12L$BF^v%TizxY!xy$DJZE&ER4q4OehYR6 zgJdDI6n%p2yS9*}^rCII^qE~r2^^Ozv}p&HI!hyd7aW&c;>)3+WJSg6gXpr=OleU< zXxZElP&WS?+92bydSlrP;g$sPA_n3ip>i+!@7y!U|VVRT}*LH1G%n5 zm}UbJ;x~9MgZMLzKwbR@p3s`on=x}>Yhy{Dp*NsgeGW;*nN~w#AYnbA3*n#ghmae?K~62(I$j z_L}e!jok4(JR5^`5xUGGVdlA(<8#0LS)?SO8Su*e*sGWQN6yVZM~{DqXdDxq(?TFvlzI^*GAeBKXJ}ZpcV{|{x zd~S?+cYFE>-p%A@WHVqfut;9d44vtHE@iHJCvw>E3@*Q^YKld?%;V?qE zs!2hCcPbc&q#@%fXA@{g?map;%YG2hI{lq-a3VZ$mv$p;Z2os$@r{6h6| z7jf~B9n~6j=m64}OyR}(n+-i}|t(~k& z5MTY?;YMYJ3rg25DtLb6C7f1CY{2#95B``bv;UmJR{>KW) ze^(hW{ue*zZ$tV2pl*LbZa;2j<2I-L{a-$yvxJxt{|_+D5Ki|0g4_-=`nQd&#ULg& z$8OsDDL89nOpf0DOq~MKfyPnPoKrm#URWe&1hQ>o#{bAeKFC|?50Lon-Y|y)LB47zZdn|k>()R-BET~2%qk@kPgK>l}F;2-j~kEnyKi1-#o{AE;&PEGsx z6&|Ym&PbIKy+oEROty#pbmcR9v)LNksL>9>Z(|f$lv6UxC$njSITv)w?Xbr7v6HOF z{q*y(iHWL>4Zlw*;zEIeOrLl7>kWnaNee|}j0f32BMAncbeDgxhGH0OHz5Ye1u^;T z44ZZ9LY^*DG>^H@4p&Ecjs;Gy{kxO+0PaJwF6x zsZFBc58wEH7=TJkeJGTxUYpJ4PE^!NhIE#Ncu)!w%JWvurO}#2)TXNI6}w3XS3c7! zri=C3K0v!@7L$kyG3A_eFaMx}0V$eGq;I>nrX*6Z#4R8h1Q>>H31;R}T0oMIjSOP>K6t^@*$6;BI`%!zq z%j$`Iy{{;bFt-!D{KFTWp;%=X+O{X%t>_E!-XaH%z^LP~8B!RHLKvnvG>Un!ry74G z-agd0dUkcB0j+}HYg%(;SEsw)eFql{H1a0g140U7Icq%(*{fX@6(_p#8i>=i?+{}4%w?mi88%#De zKrNl6TZ9dD9m%+FuJ=k=Fze_6zr&(Rp0m7>E>U(1OFT`Bn4q}L!>vqNkb;t(ytDB!nj~b{GG;K`twP&fS5l<;6*pJ?9)*`tjNfM3*88Qv ztPT3sPZ#|h@btb#{*g8nW9x3BXJe^bHw@lV&r z?fRM4`opcg{KwEo{@>t>3Pap4hywSCZ__C74>N&ZEDV}4sXM$uz&yhyoRtWpn%6SQy7(bS-11;l7W-o zeW{%_Mus{5V4d%t>tNmd+>`n7piAH#q#6c)kaQh(3w1q?2uBPG!^A@y5N_B@A9M*n z@9&{b%=H+Pyv2t_Kk6WArkg03Y^V#c7DV-L#_xyd3nZ}#SQzPbgB@+pIlx-v?(>*n z#!F7OOI`SF)cmj+{jCe?^qK1a)%YLwAThh3zi zG+os(nAH^!`vqXxjDckq&*$k?I`(t7ywo5B9acHvH>7v(`o1@tkl20DaS1bNTnT+F zuX_;c74qRHCaHDQcIpzGRkso;z@u?}B`R^L$O$F0U&OSg+4ndqa%B~R5cRSZwFz$0 zc^Rd1@o*)p;a1D*K5`B_n0mMYtpM#D4n=$KaP*?ND~ zEwz=?a?H(Ul)D-5Xa6TE+fA4jr`% zi;L+@x~uY;5<6~y-b0$D7QOqhD}0~I(9&{7c^KHbI?_-?m}Z9RB?!B!jiL4cT*BUt z5F&@F&v!h)44+jjF+u6#KvY}Yu+Yz(a zin1z)tl@#xsw3E3%@yloQoD?;?WCivo}+KLC&#K<$_+IKt?lTs$WA&*ReV7)+J4kZ z@ybCh)yt>?rS?;GC?~SiDKhGLp5Xnychwwu_!{2w8rf52rFXBn_x)An!r15O!iCu* zI}p4jwqwu}=9uF>!CaM_8N1sU_&TF3zi0BE3tAA)0IH0_N9P-9oX-c zj85n=#X;Wj31zwOgBDLr8eT_8fN7R!M31kCeb@N1pA(oU!@^>iqe75#&}xeqs=tCn zh_SuKG$SBce0}T~z>l>aLA7iTN%k3}jf`WW#ab(Y4hxrnkE4!PlDOv|x_G4@q#htM z@fk#e^)6tL5(6a}Z~^Th=RvVIsDA*-#{Y2#)_PK<s(Q`rVvzbyDHR=FDHZ;Z zC@E?6@&7%U|MX>hgiqdePF)tbj2PK-gKSN>Y#XRg)wy~#)@~oDkam}4v6*^yLxDP( zoq^9o^lDFih*p)XH((u;z3|$=VL>~^A#<&K!%z?c{Ik&|35bKZ^0DFG{?O$5=Y$dW zzqyNl>v8=H9Mpg|z#T|@Wor_nTS88XFwu@ki^hfSg89m`%<6{d|ZrdZTg8BO6@TH7b0krjjA)Q z*_kyZlgZ=C(s#Yrr`NL9(v63QLuleOhV_f^I6`QooABxH3jVw3raJTpA<#aVn5byE z%#?CS@y!|o?sI~zLSR@USmewyW}JyRgA7)W+(Cv`3Nk3JKI)UeZpO?YGq3>}rtt8( zrCrv_^u7TxK#LA6(=6B#>Quk`xFC~!#ssi;K;EIxr;{h(e8ME9ufiO>L_A}>`nw@f zI;|0By5Z+OA$C37eEtu#FVT>yk89P7zRz<^chGJ0)kySfIqWo7NQ4HN8sq@Bqn|=K znyp}soK83UvGf4M+Qyfb#R+#DEdJpESy(*SbgV{38`H(X3o3wI(lS0GkA_c?z7A?W z9Wf>%#`P^SKpK>IY=OS(5Pn(?>GBJk1cr07x4#ROzIVXvz(OaX=mYj1(`IXUFga*T zI?*6-646|O5tdPBFvdiJ$pY3Azy})u>x~7#ykpXta0t@ZIl{=k3oio$XD3GiwNk=C z&aWTXv2rq{&5$ag5=2q9V#bcLRgEvPAnq)%O(cX(9Z@6SrlP}LXapEr&hgZ`*qbaw zx$~p$Mo~b3&#_PFW=q^Po=A!G(rMM}+iIfC&yF`+qU~y?h7|jgmq!oIeVKXHwQ_Q9 zrU9gZN3!RihBhz%{^^mF+FZ+!8bV3HzE3fb6|(2a*ivZA>$l|xy%=N{4fn{wxca*B}R!?QQeAJX>%)C zODoT|R}@e)r!#hz>43yud5E?*KWZ|*W$K$ABh}8ukz89EeAVb>sW_Dx5$uza%1)w- zDBv3%1kzTL)vAnb`Q%jO;Y9{0R@e)(qK6a577>0vxvt2NyMyr9cnf5(iyK*Gqo4~OSTAE4m+au5 z!i%c;F|!(rcZgIHulN$|9TN#(F1duCWR0iAS<-M{4ugPoIRP-Q(e#YRj=HFAMgpVl zmU|-OA`+B7E$p<};AQ>U$PHJ`OYu>PQ>43{mTXy!l&=!v=L;~Bkh9e}5V33s7f~Cm z>4RR~5^JwRUP4+FSJUDu^@K387B3L=w(YhZdEYNk1cO))i|589XU`^Y>jpNy@^0fhpGy|P*59lDre99 zL=y|%A>7e(s5r&7M1N~kDK9*A$jTVA67_LLL-uJeGfi8`R{Q)yE8LU>@A68~rAkw- z=?YhF+3b(}wHt$r?hR1-<3h%VoZyz?w#mIGYaBu^PlF?%%NZ^C^DoafE2R zcj%ak%?gT%l@%+<3P0uZGM<;rQyOVe#s4j{QekKKMzxl=!^XF(zJiwD9M&05x#|6$y524X zdbkVN42IT#1?>HXkd4i0WM^L?4w^{S-0C+N`13-n`y2c&HAQ{objpB{E@i}(dFjoM zpZYRk-3_IUnqs%_0$}eS1`g0J!7oMWd4F9X_Nh0Yd37}lB5}YR@(WeBYOeM=lnEis z+`?LP$gWlbi5!E4qG#azYV?sH`!mCurB^F}c{eG!7XP<0C6n*o%uc&ksN&>1KK607g}&X%HsNd-zs`|NypaWm5F^T zL8=DgZ>yG8^Z_74mP)_!wq=(GU@q%6yibRJ8$(~U-+5aTaPYcq4TD!;tn=$)EgS}~ z2qg>?og~cT#};KD695A%iY3FqBXrC3lGd#={dpFU+tB$?5>^#%50z%auTmi)Zj6L> zbh04MERIwaV$a+j_Q+R6lom%_a?|~lIJ7_qsVX#HLvJW$IKyV6S8x7pTyd83>6UTH ztVaBdoAy|=-5+heR5V-lJahrgD|>4amVnXc*98Wki}@vTiv$pj^# zqWL~MJOnBN``au(c!PN>t)@7TmDSfuoHOKI2QFnkhpaSOH6GHR(){*mmIyI8Shn>VGX%>JH*iF8 zk+!)7oZy+z#Wuq>T+V6dVT_`rqOopD;qEGSwioYO^Pb=)C&q3|*pQ_cJxXNvdQP`S zTM#Zz`TMPN0sRi%bhOO?BxId?r{50m0p4u1Q&tG?famiKXhxTSx7&45?GU^Ex4Zr% zDR;|Z2M&B6OV+tq--;354fwW;?(ZX#ER$EtW#cPtb0*oZ9)|`5Kx8kpb;ig6fZEXI z>e4V%z|Caogr?ZFBoJ*km*!}uxvXFk$kwbU9oRZKZAYDRe0W{_2x5h;F!b$*F)4TO zuq)=he<#$J%;IPoI}L0FDp7(ls+bs`UkM$9OJw z7AgQxSIZ`hj( z^w_*(pU6u+gK~K{MT9Y^2*{v}-)#iEYEQq(_4$$W-faFxn482Ygkjk_z`X8~>eWpO zlw#SsCv2yIcE<^v*+ggp6PDdJQ@OH{P%)1CqOA9U;ktrt1E=~*# z0MBf`l}i&ZUe1l5nUW0O^%>p_r2J$aE0#m0T%_t*+HQBxD9e7Wrj)8d=6R3ZZnhgn zun_907ipg&$Hw9g1apivSw9#nXJVN#fS1}&hBHI)G2IWOts61lJCRkPw@d1OhTGuN~>Ak4DAD}NXrwL)WWth{0E5%yUv27n5-}yN08uR>V3kKtbir8KkZCmnSY{5>7skXF8rbJu` zu;XJuTIYr5@AA8pJPOAH4P+P+IvlKQql~O|G&3x$-r&znd^Fr6$y!;@mD-!56(Qrc zDo3rENU6wV0k;7q%inZ3T%n;ylsYu1o?lY z6&+y(_U?93NM($l>T`lbzFR;$PfX%=JQk3-PHWm@!#cQF_o6 z_MmTf8pah<+23;K_M^jk3gp`D0>>{Tfv^o{Dw#}r^RRBefNZ+HF|Tk_s_i=R9dWb~~Kui8(-<;y8utgE}!{=Omff^KS2Gt9#wzj@%4lVvI+1MW+| z5G8}Mwo`zP&p;gQ&D3ruY6}3s#j^LuT|2nNua;-b zXnLM8X5Pp7m|Ltfdn!3GSWIshsbpvJvaQ(YB4p*kaT1+!A_Q zg;X*2tEUZ^TD2J?o(FsQQ?G%t4rk^souSf3O*7@ivsLe4Y(_lAz23)sOG7ocMX$_G z%2EBomtz$jw6mZ9^rfRZo18+ucU8I;6?Xm+dpRdt6|3*gF?$12fet3WkYe1L4RQtw z+#VlrO3lU`%$NbH~Tw>9nXpdcvV`r>}Ad-1BE~yScGOJJ$02U8Z|j-iTn8EPN_ed`WbmJz;e^VFmfqjbio;fNig+@2<9TSnh^tCI0gc zcQ#9W6lcOJ+eOVA)XHAybVcDAUTeKx%3IxW*?T>95Z&^eTJGa)*ZdmM<+iYy_0b3U z9qDJ;q<||qifDI;$M(A7WgZ;54SfCOmEugu22%y?&kczdj}s5m>tYosRx3G;C|2zq z?+2F!9g)ju3T?<%>Vl_M^*-)CmiBpW46|ne%dZMMwlDXC$#?8leF``~mKBRHd3GxP zyg^&xnSa*rQv*Tn-t&&MH%^0l&K+d&E0WbWq0ufN0xa9O#B)Q7y1Dokjwh%aNjk!` zj2)MlHg~Y4^aFHCyG#K>v$Fc7{`K#Ye+nA1nk#H-3nKxmRcnahsi8Eo!R$E7kl zd7of98pz-c3~9o!7bVBf3*V#H*pSgTN~7q6d1AWMzhmiNsePrmnfVC#UtD_4GA)z1 z1@hd(Tw7sWTF1Ga>0JHj1wN&?5QB4M50rO;sLhUP zLB8DUkh9@vw@MPdTAnkjI6B)_J!a zjo@K?bRM#|O@)Rew|{vbP2$?@-o+R=w@FRrV)Qh9=%8ac>VAQ{(A72@`SHkqfzT*3 zo^@pYVy|ts{DTYYL0o$uACjEF=*?sl*TsMy>@AwkxeD~!XY+lTIT$x(<@@>6`<__? z1y5N`E4H)CEOuF4>-Te>S~u-#4?VxlU%#6SEV~7GYK_p#X?_rJ*KVWJ^3%Ky#3oi7 ztbx3gkyv;84{Yea@BeBY^B>T^;CC`1qtkeq+c6eb8}Yxzy*Q7e9rwQ_{>JELQb4Cc z(SsaS?u%Z2?!V_`a#~~10hhEA>)HZ-tZv|ms~Lb!Ycm$K5X)xLqp0#skK%iGSTBX76Nc=%Qw5V`*aOV*f9B%1kwFdmL57H#y&>@xd0C^c#>Maxyr% z)qYEyWuVSa+4%X2;{-S`}QT<2S9S$Da zMR~l|nVMC1E2;LD3mXx!DKDgor#4e^Oy>^P{UL-2o>}K3G;K7~!UNp-z zkmJ_-5l8>4^(;j{wdqureqhc^SfZx_r3H|}YRt;XTHq+hslVdNQR7ul6jo%a057xJ zL@dq4%E2XvG2*0$Bfr71j&TLd1}fZW%QL7Ap1e`@XVw@ZsZfs>41`p|0vZ@5fjD&$ z=#(mm5giLz$!I>W1p{}wxu0?nc)6fHZEeOS4|Q?jrl^P`b`sZg=4d!;=_a)0rDb18=tGTDsIikNYU`W9S*6C#{VvGu zk?G}6%>8WGf62POI}_fe<0P%72~Bi?MUqRcyHPmlB?N3;N&_>t;GIfUzJGh(PuJ96 z%>`*J%vV;aK}o5i{%rqkJw~tKqfOj6OG9VZ8E2(+MI%BSN~;w`DBjd6ti#F1u;!YH zI%I*tJX)@-pIj27DH}c{AeP;AKYh!|mOt0HjAJV8wp#XO4cI)D7EJ-i=VyX@QwDrJ zG>O*vH!HLRxhlE=3I07}oY!$q5@yAZqAKGo4&{dp%W18nrEtr3h;_|4^j#xKthe5k z(b%{LCA}SfyI;Hz{&f5{-IjFYL9&l`uoli}*GBt$ZG3QdyU{h&9KTU#BCRV|bVdJj zZRrnYmRE;P9Ao71NpUK8O$Yl!!fzD!TkgvOa}O~40m$@sXBT{~s;6Vu2-79R_Y7vf zf<(^+uY1hhL{Z62e55YOr%Yk99kD~zKD54V$ZL|W&Ks!R)d)OY!97E*kVv1f(}*nC z!drH6Vk~W_LM#7*uZSvuf@@sCCsrp#f(r#nqlptu0`l3**YpT=SO_naMrQ-KIc_lv zzh#=rE@4{rrr_C?U;|_ktslN^0gwNfEpgub!Z{k$KP=(BKPx^7-W|t!8 z*>}@R1eUS*m8wvD_9BK>Aq~+nQ}A^|A&%6P5Vt7}0V!V>n>UTH#8@`k+OC4TaN`^lJAH48Z2UnH*Llkycd0{B1-UFBL+drfcX23i{uju-cO4$&L=OpvV88p^$ zi9LgpM5dc>@wST4+f^JLGX*;Q(pzr-IeY^rgR2Sk-N=*neIfr}LjAvAu_XWgURE)8 zH2=R>t2&gM(jpo!IaDhBA9Y9)YGg?LbdtakN@PfAf1$V<(11Pv=uyc#y(D@V@Z>f> z=&ScGx?fc-5kV@F=PH#;Z4FBr<<^5`jV`v8c@G)yTj_snO>A_Ox+Zw8w;aD5uR6aS z2Cg0tZJ&5SelXpN(=`ygAu$ZYl+!1dau^HP07u<@-=vijN z$3;S5_g&$*N1PRD*LagiLLlnCeuBMiVJD1`=<=t(nl|4P&zk_2&Xgx(>zF z1UJdbe?NoLMAb=wBcuEZfB*1vQ`)W|-M#a)RBuxn$Lwu{%&(JZJmKdNi8*C7={B!f zGu?6XM^Cf~ShQ8NaW14{ePcr7dXt15y!|b84QDpqev$%ijUO;TFVN^TZk3*h&(dsO z0mGC^XBQnIv_P}8C6iQEQwzmYGOx=dkZX~gO^;}gJZGpe^Fo9`%ksp7HxB|wq9U%3m+e z)C@g|ByP>r0Sz?1ptfrm@E~nJc|jSm-aQrp2ML-MKhE!4cJGnWyRce1{9q>rmr_S+ zArh_E5FYi+g3x0Kewr&&8SN?492$kLH?(|L1$)__Ul)rcU?NL#UN3SM3@@Vpx4^Gf17-mo0hF30{te0>J$YsqZnavM02WX6bwGLg!jYP|r=J{FAA6>xM`?3(^+g=DBJ{Fpc4nD(3J( z4I_EJ*pU`aUE|h3DFSDpy}||oaGj#&og~OEm=rXaKUwF_9^#BO1~}<{&Si{+6qBaE z{YkyAscp2ZrG}LzV#!Fsl`*glH1O7?vxZ}f1R3F$gs`aOS`Z*#a0R-}IqQ8y4Gto% zw4-M2liF?upbjssG|&J<6W8a!Tm3~+Ne{@$@938qt;3ZGD&-6rXpkkE^-C8ryBFu` zwFPNR4f>^=KM$bEdHdMKznEy2UVlYQN%=qR#+rw&^Rh}^iVkQb9sq~cLajax?;eWi z&9|!vHT=Rg;Jj0kXc)?`4brG9Cy@>mY=4(0Tyg2-Dj3>BT07vVN-_e|KOd{G809_B z%eil#pq$E(n!4VND%_KnK}YRW=M+ubHK)a~1l7v#=h<0%jj&W)Af$-& zhv(;%6G4U(^|z?#{xGm}Dgo+LJhaRjq0^q4^1hR7YjOS*$3y!Ab;M1z2fu77j;4vT zkr&iv$aBEni>hs9ZDm0(jKC6}zvEtoSgBloS%tSR3VuB zwyxii5o^X!cBnj;9pt&d?1nKE#)0f2TfC=Hzfa!iS-Z-JvIKh)yOV1TKr$0dZiG2w+_zg@Z_`pg8@ykicX6=h1G z^n`PU)&fead?N*D^Uv)XUQkB7-BE|miu8ic3OH8SQ@r6;@Yl4*2^xHuuj+Zf@$)~f zzwn4~07`$SP4^&Fyryr&b(MQkx*_UF$zYMxQN2OlDB3Bk$Qwa|M{~p7lDlEdI9g}fSjgsLsOjYy~pd&=(YR~lvtgzOnr+eJ-=}W zj1J<(&O_y=uJoMz_QI{$r+cA08Ut2FB^34%bbn#>}W)_rNRnqPOj7E@8}P3 zrMw~AD%{z0gMr(~-|6&U38gRkD@s00gky|{D|@_{N#tA>U=xT$Y=Fj*lyo=$Lnj?l zBHE-2>F~{BDQ?@(CwLqdU0%OXiw7wE zjDSON`{GOECUsI=;U?oL2`Pr8NlJWF!_kWAIVZ~&r+9Zq_s3}y8gaTpi^IFr!35hJ ztZnwxQm1RD`om6e+kA}c{`Ywa<@tIG&KDo93jwtqJVmP+?c12_-obEr?qB{w>P04j zl)BvtKa1HX3dfLHkAd=;lq2kp1Mob>dV}qofpz7g{ODeff6T0@6q^(Vvj($Sz|mOP zc@;~HieD;x8gX%0>eD|S_70CmYWD3$+K(YsuOttG(%-Equq+*7>ZaP0R{AsaqD?2`)d7pES|uyvpHSWz$tdtMGH(_yo`4C;suB;a37_6uZn> zEB@h%5({E^!lvs457<9ZWx(8VQ=|GJ5A+fS5sJdI$itAth{(xFLLS z{Em@6!D2~~dOawm(Nu9CxSu#ADB4oEJ*C?wfrtbF^9l0)=9NlB((i{9m6Iz(LsCQ> zsgTGkl+vW%pcA2>o0TcQ{2)_R0yhagkwbJ)3{ZrmLdfQq@6IhyTe{G=lHMhLSgn^j(|qw9mOnB(Di(0 zw~kSG=rQ+YGOKYEIv^+=_3&cG`_^hY+8_5KsOM1v?YC6Q^tiDy%VKh-bEi*h0=+s? zND(7s%i!?_BceD+ z%$Jdu&hNseeWV`6vbcAN@|cEZWmM|}Af|@s^kKc`ttYH)(Z!yQxK}8Lnp*{_6Mkpd z3TW+I6^D}|Vx)Pu@thJWgcKr&;1(Hb9oP&qLJbTSp*g)X6Qa-P+OUSO0?8Z0t`X4Y z^9b{6%RJTiQ*9JCC>Ts99wk&c1gp{bwX6lUfLA#Os1f^x^f?=RxVQAe8B~JqiL{7E zY-da;Ip^`g42U;TC;GR5**MR8g$X@d+qGkM2gtO-1nL6YV{Fh2UHf@#610&Za_#am zc=KI21k8{kBJ>0pd=R>=z!4Gnxq;%L?YHkTfDj!^-RehXyhu}8KmP#!`rj^GTw2Q&N^Ye=+0IFO|7obzATa6>0F(u?eKlBu}k2 zvENHj>WWS*%35)PWk8D#<9CYe`91o_oJtBNPj_Bca}Yy!(YEV`WoSA{($`Q0 z>6UYFi!$)7CdwYqGikRV@GY0)=you|2EkR*Z*H5a#_*FlFQjEt7o}-?6H5k;g7_i>af{RZx;BfJ*r#3h|@UTyLb+ae4 zL5k<v-gHaFB;f5GI zZ~>#^iG=XSPA!5M4-@a_tzHhKD1$~|@NI~jr}$t#-p~7;ah)yu4oKZz)j`9Bfa*Ur znp)4!_Iqqf88-%mHfWgmRDEo>Eh{&HF`r3l?@ekR3WKg;Gyd1^w>;d3gU`1hw=cQu zN9JgJ3b%$}7DSC+!L#v7JC@tI*K;_;?hW0wid8gh|Q%T&qP$xjNMDDsswY5F-TS0u|xto6$iCtz>b46vQ869eca zzEQ8!`E89`GkWHzpPc~zxKhI;M2A&!iispeNoi`_C8!!rQoW;ws>1c^YA%BM3Gm$m z+z?Bt-NuPFel#4`?ZH+I?}+V}m83K2ejsTyb);!%dR|v(95m&@>Z)mxypnVnA5807 zaWHWyyKFUIypO@`qKA6~A;WIxRLQ^rG6;=s7b!mbwj7?80MMrfHpBjQiwKx{2#h-N3HyDrdp486kVP>@|=p zKj6fx4XG+}$Za&PZ`95 z^Z;P9jra|7xnMgjNyXnDT{R%g6MC!`l#)ExP>^KYT_ot0E3zllw(yPnxf~$rJMx0d z?)GKK$yh2G_0`1HG*cyoJ!4w-5p|TwXi}p?!(!9+Ph;h(6joi#=Fh6tIkd}TNedHE zX3gHfaF^?Y(HdZmNN~ykzG8!GPN-Q|}^!1kUiHtmoET=(!d z_gzC;Lzz z)Mf7Q?Y4Nq`KsE($NmcS38nk1a*Gf5cko{7Zenn^cR|nCA6J-)?t2QtcFUm4>;+#3 z)!;2_KD5+Lynoy+=v1m-JoluWJuzUO1UOzPO|?j2SI8KfY249P1$g;JrXxI6pdT~K z(178IWZ!+^yA;8Sw`;BmOHGVZN*5Q)O_Konj0s&$ylv@H1+6M#M=dUEVIHh3!L}KY zPTSj+qEO06+fxp6n^poAQ)D(yD?_!EfXXriTS!nit4P>QD0)e780tAcwMETf!djjK zHqB;@N||7ks5Txrb5OLmc`_g?MFLVyQfJj?C<>=B4K$dIG5Q6CvKtan;vI9 zUZu3L6OAzQarmt>!n?+hqv+$ROFczhrDvW+(qx>M)cD#~>PSwryPrP1CN6~Y6NjfyeJ3CiZIk{dTGk!WVV8iuha?pTq zT5^Dw7y-lZ9e$+^KW}+A6pJlWf%g+RGA(~Q=5quU#BTlk*Fg2;g1=@fTKWa`xO_@? zmBVE}Skhyb8gprIe(1Qc?EZATkx&Td%4zNXE~&}dAoROqFNLTP|FU=CA2A6UQi6N2Lwl5?9K^_7v!)(4dH+W@A7RW0{jvyZknn|isPO6fI zze7_%dai;6e3Kjy+jG?rPOWlTbFYdm$X1|rlDp#$CscP>xji%Hc2eSI)WC$#lK zHw1T@Ma85}4Ee{Pg`5=DY-isq4A$(+I;*Zx3SQj7)w#FhgW50Xgc$S4?;iZOa4WZP zy_nsmN1VcZS(sfNn7)h;M9TZ$X2gMufp(`Ph~PtlkcJRJpn>F2y@R#HlWm`7<@keI zV7UN!C5n}36PY6l_NdoN;81is35ThKU**yc;2Fpp!2Vq9Pc1#i6JasVBqxWAWN9H5 zG$6H^TQi`iN%RqOd*IyR(50#^fs*j6@CzuJGyqUAL5+XAq zUD}}n232~VnZi$5vR_riu3RIl4OPeY=d`7kgq=+|9tG6`O-qCqgN*~3ON$Ba^@UXN z+u}+kEm7S@8%nRF%yy47F3jD1j>=J+2lFDOr|gTgWBX%oD#=(gv`8~ozVDzPj5(V? zgo=#*;NXwFwT4)c7>F2{#xf@v)}}+}gzxTH-QbEo__gpe=v)O$RA!$d?k|Up@f&D68j-!0MCG4`3YfiV)Ad9YEc@)D9W(A9c}l3KKgeB;zA*?YfW zYZoQVFMEgO9w5T(l^pB4nz_$z&7&PtAF%22={n_O81jQsBv}wP#pz* zHu?)i|lJWOUyU=5?Ku|6(SkAP=y|m}h(DG^1 zeg0z&Sf;zZG;u?j$;=Y$&pBzka-C+(8p=&Ud4eeQ80BFR3O<%@p-s-CElInLLB*wD zOh_`aCfBUC-*bHQ`^ZhYwNA69@|fVL$*2i`8?WX*@6{?flM23OuJyt~zr`ca+Y(`= z9O0RAs(N+DoX^2s_*@JAK=6gmAmOJ<=IBhlHCkyVyZF} z8?}Z82nloU6>V3-TqiAChZRuT1gx`Mjq34054l^PGMOcNnX?5A>*;Vr-AJ%Ld-3B8 zqb*yi8xU}>)^m29t9j?sv~5s2u463D@L`f>GyQt(F=ih-G7&2XoVXsKi_%G?34VUV z%Y1g{e82w{q+W(0zFyMiRZTd?*b;HDawQ&&&;kYL2>b364mN>{B2LYCVA{dQs zAw{456J*+P!#vo04aKHT9)^Fin_c;&)Edn4^VZ71zs-#i;YZ}wvmJ6<~R?eQz2bD}9f zFi|1P2d5VO^%}*l5yLqTg^N2*5->7}+#|J?-cAGr=<^E=Ej+`MrUv3dC$%#{HDrHX zi;*#^v&3%Z4F$7IAL(vucioJ&J|hd18d1kC&ZWm`8jQB29f}9OU6n6xT3BjHUszp^ z7a4|TmIoW&mL%zjl#DzeSO{9U)@}d%Nr_FJ?{YrZV3y6BHZzkcb#1li!qjGUzL;v1 zw-_^T0lPz?{CQ>vFs)u)uPzjF0#q^>A($H8E?udSjrU8u8*rgmxUg3usi1b~@Ma-5 zaiTBYYRn~9>gjiBuXXW^Iwdq-FVvxf;EwJJCCP0nm3Vt&^lrvR)Lo5TsR^9p;;r>= zlydE*A@*hrG?z^9@ug?#)JhmC0=xGoNKqHtT-@fk&CYX|0zj0@;JbQuw_b_ESJ@? z!%PSl`1odXM69R{TBU7KT#uK1w!1GRoW@+nD{-j9WA0#mnnxy&FEyk|tSmuKo_iWEP zi3+^W_!_~4Tsv^ZytYqW^}`8kufpb*WMQ@Fb>h>n#^nw;Ls;j{8`1&YD=u|DcMMCm ze?|I`gz30+gf9s9plIIga+LAw;4hAd47$B_yyIW#!B6xB#qecCgL@}^c4;e@tTO|= z_L{kC^$CiKY-pPK>Y|25bLZn2GUXku;u$;6^B0H;4i+sJS5$mM0crTbr?I>#aeUn) z&JeqbY>iCNBl_x6i%bI9_w zo1yFC%66(8A#NC;@e6Y1LPE^=$bNxM!z6+9iwz>-oNgTj;xhUI?|==c`E=>3>-Lgl zORsoJTt6rE#{#ZS%}A!}{SMZsm~*B!z@MmIMRxNbPv@Im1i<_^xVX}}#ICYq0yC#q z9nl^-UMSGfD_6&FWuJjqoXD|%d%SBkXP-&{-9MX&D&brwF?=HGOyV$~W@q3NXG=8m zcu!SA8D4R`zHsRa+BZQlJ^Z7=q|TcF7YgNRD2n=WGr+ zH)|5qw1dODRyI@EKog?+=fRl&Ln(Ls6gsG?00H#0OadVZ%)DKI@=~rOJCAn`6+0&r z8crbs+>6gsU8G~M)^*()(7{Y0v^IT=JmOT=ET!tu*3VFHu7fp z+UNP_sBZ*W$WYOgE!gd-u)gMSg|(w>h+1saN-y5Te2rs@ z=>qt9>8KI(R&VrPLcPvJuPHeWG}cNtuvv!Kj_WFh-INfML%16GK==93n^O4uIg}(C zz47b?Gc-=+S~iBR*9dc$$b_yT3_e37oFs%nR|U~j4^SI}voE6rn}axeDf*n7&|Sf* zuL7=AZjt!`{JiBmmTqB8)_B2xem8mHmr}E1M*3O**l{wZHtuUEy2Wtwy~_0%9u3mI z3wl(H*V(CqC@EF)+%A(!wj!t>F2To?IkC)hR*c)OV#!WABW!UcgVLa7G_8mqH2R>21OIsZ6)j)>_#Yf+<_6tBw2 zai*V|);9OFBWN~0r#yDn`2j)kG!vC9>3uX!7stl4RkMw6CJv!vg4=4>uoHb0=xvgvDe@ zLR1`y!A2eD5W@FD6E;TC$CNSlXTq8#anxwqMS#Mp7eLj&KQz~fnKj2}oUP4M3u$oC zTbd7jwE({Cl((wAL8!aQs>6F&?O~A7QYe3lSW$;o*i>tr3QA4hyJ@Yxw&bu!!IyQfvHAqzcm2gVBv|+Q!*p?P?I3paoRN~ zOyEtF%+?asAAQs2Z@VYlSMjl-X5i|OytGz{QKe;522w_X8Z};*`w<__J6-$zMqXhb z{mgSBMb^;JmA`{YR=qfp`XjR2CL=Ahuk`~5h5YM|-Xza+gs(9fFcx||Md!VqJGAe` zuvPB)0I5GEzS@84v1iYY!m5}_Fj(|gPiit_`%%cim_cB9PI}=e7K7#q2+0hlGI*|8*~iit?N&%3-Y$2v2fe1 zZ?lNySewo=8js;olk9x8PabqV)K0Puhq_z`TE!u~xouL)=%Xmptm^cxwQ(m|z7UiT z`BN|zhVJ)i)Bzw-v!Aj+*&H988$gNCBm%FV(qDlxp@CJzaCf?q=GU4M>cXtYfn6Kc zdUWb+^ z+1l5Yrf9}{TAcek+R@7N*2{o%>t9Odz@M1+pu55+zvzY2MD3S${na|ctk-S!hoZUcimQgBqxVtTJo$J- z+lTCkudj}lc;3VWuRC87y1F2rZ?)++Y>}BEqir+^ewy1rP2vq^2%thec`Aq^v5IK? z0)Dd~=_Ga2a+kbGSh)dp;-*Cz1=4;80S7rSfZ^%0VpljxpV4xWxQ9HtrCAtAPDwNKaZ>x|N-+_W zR0v-;kqb7D0o|r-+2Uv7*1?B=yU9U7c)c-ii5#B3`Rj@))vGD{Rmr{f`LIgF$7A&p zT9!(|P=4RZpnPqgbM`~=@rR;wOsP8})oUvV!l_avy_1HL^M9^1C2`5S#$geS;>ZRV zxVa8PGy9!Nx8Fd{;O5!$p>N!RF}_<97GP41ktHTgUZ|77kGroUUyRk~!`A2JYjySC z3p=`oly+V+XzSI#lzC_isofGLq3M8V-dK`&I5p0c;}Q4R`WkG#udH!lS>w!7`f(1~ zL2?M_PPhv?rlK|H4BBs@9XF<9NKEJW$&&h0dVQ^=K4w8(?2MYknGD$+E)9M=T6D4? zNiauDV7D;UuqR8wdmN|d+UgBeGTY#Ez8m2*A5GgabSut!y9>RLe3a)&_+bUp1#~@m z!pIdg&d!%(H%Y!BkXW>aV8au%a@YM?o|@ag$*%Jla;^Vyi&!lIf=7`IDP7nbv;;K~ zwFi~5UrK>Keau;K3Co{G@JJ0XQ45=Dh{ZU}ETloZisD~@@Tv{8=a1{ zJnraZ8h8pu-Q^jxPGZBSN&ci9m`<8-#`Cyk(5wJ5 zRysQ*5>!|yaP0e#bh9_7$-zoV{m&J)Qi9n(gu;oV%Md_oer2HiRAb8!S|eyB7_(+= zSvBUbX3SAB7WP1io8rY(KF6OB5!zghKJ!EZpITl!PYoOpI}o3rstQUY#Gk#Q9q`RXo`$G=V%-F0i)iMi+&eLV%SBTR`MxkeYnwvFnk6ty5*=VB zA)EeX-1?P-J9sBJ=ZboKeppf|Fu5#%w#TF~NvazBfmI}JT3>o^;zhlfG8TO^juerW zQNffr&Fo6I)GokU1@nT8Hz;9PPsw~~ke-%Wgx#AQpLQH1j4IQ$;fE0?+kbRm^0ob0h-B!ojKXO zXib@1AFt-d%6OgD26w=*lseyGom|tM^{$xNqr6jx@05JSDH_)%KdW0qwuP^uatHYGja+||bba9;9`p4+pdvI0EaUQSCV75`5BjZ`);IR#q3`> z7dAMj-r)~?u8<^6l`+@vKY5;{JIthxLf9;#ab)#)hMxdeVkMdf5jm#iNSYZ??%ja! zf_(;F>LB;Xo9k6wS=ZGRKEJ+t8B9xjA7dtNbo5 z&8heY<(E@&rFlZB!u}Ld+1$*i9Z&3D@U2X?Ie9Jq;hOL$Vrg7OFgt`lcf$fUN0SqO9xTSM;nUE?4+_64r;gq?JpbMHJI7IPj+ zf6llOqqw1?-$NnSCqIISKkkLyB(g$oYU_u!+9!vsK{esWr~-%VLK4VF#=1-{d+ZvW3@UizxCMv^G1#K=ng!}m)LB#Ng+`LMx=mlhrCqdv8!C@C9 z;P^SVrqu8(cN6esP_*`)*)qMM5sOumsM)UFGqLZ`ZFhNUWFZifcMLMTFbSO;pXBJ? zZ0H)KcpFRVdq{bdBMl-v+R_*tf`g7N&2eevwXMjo#;nt?)8<8zhz2o4f7x$?gWUa@ zju)(d07;`SzNtN`d1zPGQiVGN>A}&IH?=F$=$R_$XW% z74Ys0T}5=rr64i79EAwa8;e=ci$`T7IpwzJ`Szb1*{TbqWeozS&ILO~oVV%&E~-KP zkivg-e5=@!d@z6e=>?d-q|;Au>E2`T3F;o&KB@HS?cQ5 zWny9Vdwf$9wXLg2PM*3LUYo7!70>gQqs=rQ{$Fp19cXVRI~F*ArTNccXAriz89PNh z?>I?{Nb?N|eX_`Gd#)h$*6mncM~BvR$?*<957?nhz~hTj7Eu) zstJ|jJ#4-)pBh~l4HCP&J@GgBV75G{s8hkL)m%1#Ot{EPtUYpw5RDm*qFBIsTnz<~ zTD=u2ylo)!N7HdUCF8hslVR?sPdo>v?;eYxd1rN1{j(!hfGHDx2JdX*tgNN*F}p(> z1a~lo;~9>jeN~B(Y=P4kCGonAMj4HnLRas-+iO>WZT~(>w5_BZqcmWh8T_a+AFAc; zM{9L8InE8+hQCM}DsHoG5brC>_0)A1D09$^&Dx{^0jLjdWqPO%oq^9tQ-lAIMiPpG zR4w@k$7SNsApwqVAB0#e9COHtqO`ulYNecPhc1jNwq`?5{zXvWv}g<3)N(9V$oQ@x zB`$$=C%QB-@Z3V3tcy8?i*39Ik-@+~lx#1BsYZYM1EH{DnoYd2E>u|QA<$q^T4rZB<* z-6Q&iJqnKx<#v1nnK^_yqrm#US>0&nhGdlc|7bGqtJh{m5 zNF*g3xX1c>s9u=)PeZZA{Je#05;K2dp1hUA8dbxD<&R4PS5w_|>jo=q|Fu z`Dp3LC&HWrkws*7%4k+-$%#)S3Bp#6vY|q37ibqP8Y^D*CL_odTrU<97oPz?%9$0f z6Y(lsI_c)8oa27CY+_+>q8ai;)H13xxni7(sywA@r$j&Tzb9am<~gQaXhQfhdGuiA z9TEW**@do|0m+uIhxx!<-s-Y132oyT=`>Hy{viA;anR;ZdZJc;;OT`*8+vEXC2!c0 z{l|eWL_bsa{N|RIA^tb5fc4)WXhB;mtM4wR@5Ut&eRC^k2V(_eJ6i{*|5OZ=x4#YV zzGFLAj0Ecnf2&ifR1{jo`$`vLCK5n5l+L0iC}C#4)sVnY2X0Q72$n|6c%AF+1nj5N z@$N*x3!DDT{*?V7@42=~B5jy#_%oX2;q7^xah>6De?6P+1Cr9G3iUu-y!Q!8^pb;d ze5;Q`g8Sew8r&p_UNKj*{GxuIaMDa=pMWuw+uWXTHpCaF186>IIT zLZexSt)r9EY-POy5N+?dP&`VF+qW^A)ShqbxKQb@t&bclYBe-cjYv~w;U2HGy;h!R zL%pj94WCqNI-G=#DC7)E`jqAEB+8*?S2p3%t+R5hZLK$HdyZ(tW(goIHds)BU5-2c zUFw#Ou9VKP{M5h+l+2&if~RIZdY}Im3Y}MvdLH8LYz~X4Mplv!6@&NW-~~w#(44=b#AYX zUiDoz^aRa+W;<%{=XQY3J(L1~U>OquM7;Ai*di>RQE`CwmeTKlmqL9cN#NAvWA%QF z7X^Ph%U}ChJ&`sT?T#bnZKeWmQ#$tW^vVye%OwtN?q$|dl9rki>9RikYy;~~nGj&X zKjP_{eT!`)d=_z*Tr&hF9+$8WJt6I}x0@z-DJ>RdQdwR5zf9UK`_!A1f9-7EI#?BF;TKM%&yZ{Lu z(Ft{_z|Y)6By4;BRef0x#`_|}!Xi%sAY}nG<=xPdf9UQ3Bgb1tjsrc>you4#+;b(| z3JMXc@d!)5GC~x%anQ>3i40|2+PQ$%3st{iv9{ISy|2>n{FYg%nerH5hC*UiP=bQ z5dSnY;|^R30Le&?I-SiZqiSub;#G+D@u$_s8;pKz!S8$2829luNc+9_y4d0>*B1m61U=QZkmU0)2{xpl;Bu#)qHtsr;m8nlL5 zJRBwHjSqnmuK>P(K5sV_kGQr|nV70=W$Avv*Ou}R<@uAsAyHd~=nMCj`NIZip(fo(z$(z{8ipiYl9`Gr z1rE}E>SS`MnsiFWIt|*SY^I%t=<&dcbT-*xC7|d!rEloZOw)vO9af#TWw1U`HqA4- zWpnj0aaLJl+2l`p6xpw}-`bStcJoN_8iXu@B7&f+-h6+j5E$|A_a6kv z!OCSLwUPmy+DH+w5aqyw#toCid?|ba&E6hdmr16;sXL}1*aI;In%@~P?~_m(!rhj< z{nHWr2W-JF`~RmZN%`+z4FOwQD`S0||56Di{4-r(_^%*c`@*6HScd}=;<}A~=MES@ zDk3UPPyuLw?YuE?_&KdjGbSG(+7rlYm){Ur1SP-Po5V1}vLTl&>#t*~ z_vh^{iZ4GZvzCnSt^}|+>{&}%4~y2ay&!Ke^M=&#;hGQjxE`8_v3={-4f7&nsebkV zRvr5dQY3oJ`7CmOsO04FyonrHjIevdpipr@R|h_|rhzu7j9F!p*EHoi)gDFjkk>Za z236TSeXm5f9>#ns2*=}6U%aDJpDr@&Xvco2z@fP~=zYh*T>4AMKF7C5R-u#O#00P) z<@Nf8_KqL1{&%#Smi@0mKM~R<>d-n|c2Wk67fT{YT=}eLOAJ^MtVXVmVtK*k>Zl5RrAuU zmpI|YrAm}u-r*DBIcQ__#U)9DS8Ea1LvHWo-uV;rD3)uNS(AMt_7lb!=4>6F^Zoc zraUp9gD#+mhXrG$u!|CSoF7#HZX3B`4?4|NmSAu#NFll97C%v(%U^SKvS_gj_EOZH z7g|vjjBoh4rrXaS=GiC%SC1M%+t?AyvV_P}s4R8V(i%|KWMhUw))Wvb&!|uo1td`# zcB=SDw2Gfg*A-kF*?(jvQxHx$MEWz|G|VN=F#+7dpVOXs?E~c>^&M8K9&rBu1+op^hnxSbrr-|}?iozPb2rw&WLq2P*NHU1f_ zx~3%3h~%!bb}3dAm5QzusB6&ijY>}9@j`j`smN~w@k6*_elrLDfL^OtL+fz>G;T6_ z$3-v=7N(j($%k`PjIPPf-;8v^zs5I3^U18KRiDNqvVMEAe;0;mksI_h$gR0V#P;Q+ z6o;U&^c`%WpHQ{aQ5EHDBaFjRvHa*IM{4{xI$lxj_drfD2Cgg=2k^V0E`)#!vCL@^ zv+mR)w`hbu8WH}n-F|)p4szcYbI5=3tN!orEXV(I%Ovz&^p%~=t^S8?%aoUv?fZ@B zHLhCdPXG;_(UFVkAxD>|BNf6BNtQ=~mt5yZTF5dk@SuAdDunVKhcU)(9ZDv#H*CB$ zwa#X1YNETHrSsz=*McZi8AKR`Apy1m>w5!D#Be2K&kO->*7cJy?6>Xygr<_R8UG(; z?-(TM)@=)SSy{Gi+qP}nwrzIVw%uh{mu$aiPzEH zI_DOucX_@Wut4VCTz7>H&=iNN9j1Kls8s+!uzCw9O&saXSXq*G>lxoeT#qJADj_1e zyiJAtwQffdrGWL?Nm~nYiiy5H;K3(-aA+$kK<6I~VBz0QYthpJ9GL~bvm*HcQTM6K zKf#e64w}*4eq#{EiZaS(h>k)gX)D){+^iR;Lys|`QJN6}8Kx!}LbYq&BJLMM%+Ew@ zEtW;_`!JS=ftN_IFhk0D(u7~534M-p|Fv+Wt7?WyUkjJ8Yd@1+k z+rztnwoIq}iiFS{v{M462F5Qf0g&`hP>WGT`ZO+`n3dbQs$HP`E`CePplHEz3*jzOEL{1jwFg!%_E0MvGHKsPBEe@N^Za+0}gA8CY zFx(Yb9f%W*=ui`Shfx~s+B0#Pnp#^UqUuwh=k9le39ep3{)jawQmTC9RA-gelBmbZ z-#eV3@%#g9&_U5_U$aUP@r<;tEg6&g4bJ^XTjE|vmdr_}4HFHjuWHM1t%B0VW9jvp zY#A9=moWY+_RvGrVOK=zE5ZdR=b(vu5YmcVtP&XARw_}d41W!;upPM88=gCqv4EGL zG;{HICik@z&k3|_s_D`JSCIF6nnRVj%u>d$^z{#{3WfGI|H`cPo3! z!zKs3L2xu08l$nG&}1-dcfe+g1N;QI8qMYiNZ8RI1*9PU<{QX(OtjxeKGQV*T9#I# z#yBbRIs5EPB?s(57U*a*s}BcatXO+2LUR}0Ip?gkv>TEmIL-3oj5<8aa-~n$yU@?aX#h@{oF%CumMKhg%XFiVd4Sip& zqwVy0>@yNIED@UxwqfLH^SMLj@C4Pw>NplC&4r=Kf#&7&uXOK;V~(s=MEbrASesgx5Uvc~~t zccGw=C{FTfM84k;nED9lR{z~~w=(cK$>$K{x-s1<2|s+shs0nAs+*-qk}{R2;*6kl z&TWi=fA%SUt|sHV%8oEw4WWG#Kr55rQD*hL8CGYr@iIwL;Z3tp7PjMDa) zRc<|;1)9)zuo+S0EYQzk(a#9z?^OIIJ)=oOVb?}58=zHxIyy80g>QcOH~u!g=gV%8 zK)m3)s#j2h5EbSY%cIVneC*Jt9iwxmTO&b5&dJ!lnXyc6o&&kpB-8Bi`^M%X{&*J! zbLOrzR|Ta`EdO8^R4LfC=bo@8?NT4sTI*E;U4<36 zhI%!W-Ng0`Cj+|}rmy(!W3SF`Ftgf5YG_wWmx?AgEnEy8p*8$G4_p>dM@kYl3Nas55GK-_e%YY&L+^U} zGIdn`R^OmdfaMnAr6|T(8WFe#iGOoz@?!Fy$C>&4e&q-Lw_i7tKQ(ol9B~gm>m7+3 z?AF^tH`uOrYeT)+XbzFg2ZXkT0{f%dmxV$B#-#LCZGI@PfetC@6`gfY@lgQZd!}Ts zKtm4o%6r)>aGr;)C^e>sXk=@^>9B<^10dCeLa!A|wLtIQO5nQ;<()_U&lH&tH-;MP z#<2u?(Q)_TQU#^XM>CWT**Y?;>{Z`eMmKf+Nt!yWru1()1ZEhPRrJo6OBBsRrn5>z z3FpPm{EPEU4(djwVqaq?;eTTugb!R?#rU z1GOTwN0Fo%3h_8@Jwv>>6*Z?J6aAb3t#lWLP)i6naGbU_`@O(m%t@_u=P!E~46{GN zqQJjb`;mD{dfnIC8DxI*K6{(uey>j#GR6WsANiI)Zlqpe4?_+tuuU($I#vS??QPWd_>Qh#;}<(D80B(O4fny zm=0r`8R>S33}_$*L&Vn^rOcu1T4J-N`~@rPgCF3$`1{v|cb?oe?A;vA;6FE#6S#z! zO(2;-y(N-9g_DL!g_+GNHNewi$Ei^|tg0{U|B6o@pG}7HUoh?c+xYZ1N7H{p^&f=w zpD>M;W3&Sn1mJ+|0kc%x0Yh6f%63FkR0v44Ll8JOrt;Eymkoz|Xh-n`h!dt3MI=MB z=Qi->w(I!&0r?mu8YUacc-U*G8fi48dZS+?=GYe@m^G;mle6Upvxfd`o;Z$IteVb} zEvkjPa2_akV5@g)yi97WQ^l?Mo+MIM%C+2&GtrH+D$?L&H|f6eyJQ@F%vNX7md5nd zr!kA?ith?MX$j$iwq!|ATCybTrhaO-+naFZh7DVV3LcADG>V$^}>Gu_^iSJ<4K0TY&zu$#; zQ7lyMui_*jOh|Y?@B*n9;1|Ow633t#nZK9H)E$ni&o(KsDK0ObBYLi7;L0#tw(N)P z9Efgg6T-!b4M^(rgzw{2Y;X`NRc51bc z2mz>tAYnmpz3WL2hrk2qU$EfqhfT}iXku&cOq#Svti~L0&5`Zd(nZj@(=OBIibUi=*q9R|5Pp}tLMV!bcOE1v zYFL~k_MEh$V!#{S1gOsa%-=^osANo40PpTBNpQ;6pH-u?U2`RohZ1X?Zhu@jnr&%S z6pb-HjD^Cc<&7`;i*}kOie%^W%@tS(OhQ^d(d*6CpH6MKv|=M%s}&Zt5@z$EDfC=1 zsU3t)+90lPa(lqeY76!<-BXRC&9G|>w_aOud+)*iT8tVTqE)gl6dwF75^4W45{2z; zjV$dvms;v8$KPB%1?N&)@UC;~AysBU;1r0EL>CZIqL^4r4t4xHv(#{1p z!_MGN<;C9px&-nFG2dr#%xgRK3G;!$$xZL$$@b&zjMvZO4f$`{tK-DciEs;j#<=o# z9#O+QsW+2-PI#CaT;p777*2KFeaiM2ELEE(qiQA87-VO91lv#Ew1_`;Rcg_sG2)-gy8^0DAj5rD0At?T>{@h}`Be>J$76>y{1PbuDK=HHZy08k z4*%}R=9A}a1BBvuvi+#vNdzu^n7n>+Bicd5*=66YsmP0NLC5^kZD9a61w-|wf}(T& zc2fTnxj4=+_@EiV)F0OLNQb@5#yXibHdXa>DXOb1=_>?L-7FldZEIXe@ly?21K8HM zM_@gpV6LIy8ShJtd9uMf+N{Z&Gq+JgT2&z=u3FQ#^^^G;49wCn)+Jz4E+UiJ)1U7~ zbyE!1OVc|lQRO-o!@bf|Ev6DV#YWXtY41IL?d~bod3|5bPZKzhwK}{mtV(u9xJ3`0 zCz5mO3l_7;g!VBsS!!bEqvMpTP?(r83)#{^bYvEEfN$v{-__0-%;pF24M|*neW26$ zh@0i1wp_rQJh!wn$FNK%P@k1C_~npT8gFav19g!6ByJVH<4vBGzDozGWs$epD)CL# zcpe?!^&1$JLh%U*uZUP`2Cgah?=Jo`$oZ)?US&upICX$nqe(N%BU&WUFh^1+XsgwC zzj>nn7le5vcM>eV(oFW>rkTHCME{=4_#XrREm}}MC`W7lxl?3K88Q;92?8AK*@j6N z0&uY50ul`App!x@dK@-nV|`}qSBL_(RjO4>Ue?sh>uS*t`8D|@B2;*`4XRZ&%SCEc zEiK1oyv<8m->*HlGuCptonGGgUKmHXuirOE{`jVm^ZT7pe4}wgITofz8&`-rFtHde z^eGp>+K4yy#US*b|%dp z8B9T%Hec7nY&A{+09B_JfLgz7NFptdGk~FwwjrQPdNcwSUQHQ$X$>Ld{0o3(jYq_L*YfRNYRi=FwZpW?=|aTOe_x5 zYCfC_0J0pSVyHiEhxG$;RtXAz{yZ^K+v1rYtm6f{fj&dBOEYA?GI(PBK-rb1r-!>! zmKfl}oHhkVXAG_fpc{l7MMz;J2@d=Dt(}4oMQbigzc^8HUn<+|%QG*GA^C|7OptWx z49rM*gvO}vt1|h))w%7l+Bxi^uZpg8-hgA;4`sa^nL*iqzflV*d}5uFJzuu5)A-@) zJW>jdFXVXd)}mh%EBYv4+k_WMCqDXox+Tbp1!E2Atjt%(unl5W-`UESFGfV&Rh3#- zC^{@-Z+(zi`is^UR$JTW9C5R?y~jcW-fe-05^1AV_g*}S-yX&IVQs4p{6UVjGCXKf z4#vtbBy_64!M$d=F7(mj@=1b11N-*bqMHgHtf=MEQaVCGF|86pB9yI$9wm+`MRcv4 zWSO0;&d_rpbKMiIW_D7Ouuvr>R!Mu^24XXa)6lbxPgn4lXU1Yeb&YF_@My3{7WF8om_l~t9 z&7T=RaaO{FfMj8{tdGr)GFTKHa=1GxP*zJtL4cyCHVrQGn*{14?cY5fmNG~TMik6o|3u>ON`Knqmsn`{0Vyc~tQV|O3=}{t2k{3~G8OLoj zn-s^afUyywdQCJ76k$c0ztGZrtQPAKD4{F18fh47L4Td|%If(t8B{Km zQ00|)FHTK48aV5mWvwDmOfcs|B$GVzf|;a+wcBq3W>(Nj2Z*zgl;*aYWBZfS0?{03PfpMYoae#~ z1Sz;SMz@IqgI9bo9Mw|6PR65XVIC7qRJkcJmZPf4mfj>?$^-N;P05;%?aIeTR$W~y z0QHh2a+n|S&t(gv(3bO(2_%LgWZ1i0-n46KsU4M+9u?%?Zwl=PR;zep_fZ+7FI)zkSHReo`EwV#EfJfA zd-*^;7!-wPg9Uyg_**Bi_#Q71pkI`n?F8i%ElAm_}^{yWS z79sH!?iRhIhs0CA2!9{~D<~pLX!YYCFhb=i+>pO01D8VcMaomYu;7WNbCK`Q5#za4 zo*{1d!3*ok_kJId^An^%*H|>BI8y}SUfM#0Um>x|ZQsud;a9%F^id1^v4<<=av#t? zNHJ#|79*&4spg6_PV_VLBikwMm&6MUSl*zyrFYgZpLI*|mN3vEjdZ{YfNw|`-VXh# z@VHiC^{@hK&Iu)smlcdQ)9rehJ{;fP@SxjgU-l;6nojKT_ zAb;90_h=H5gRa4Q9aH;v9M4(EL4ytAzPY#F!M_l*_nf?lKB2bh{<1JmB0f(WiY0bm2A8 z&&uJ4=cIxnCl4mtfN1`>%uFK5gr-7E0@=&Mc2B@^{Hbl$vT)>8L*@ij4c;acmU}3t*e)Ns^&d%}IFe zSN-HMcgiwRMXwf{d%&4Pk7482ZTWd2Suc-co4tILh~8MxiWw{eCM!m)H8tm5s(#+m z^YU61t8Sp8Vv9}B=6l@6xD1F-#T8pgavfBaPj-~W+83Bte<(M*gxVtjDebdcdQm}RB-5Kus;UozMzB|ay`4WiJ6MfS8X zb;5|dE~gZ^C8A~{ej3S&s35x*jF*zB)vJg!;1#!L3150q zS~(mnFd07`8Cw{PH6&jWklYrXS;R{<3KjrHOpkx-<0_fjOpyL|IgD0d7Xp|CPXrw< z{jmp*e{3$D%tK6ej){}x=T0Xd04R_|O*znTY&Ph6$>UZKtg_feg9QVoUb^()l{7>u z%E{nhmKcW|vKKMpVQl&5*v|xc=LeU@+S_em_WF%@8^byze-Lb9z&&bZB@X>&9MI)4 z5}4;qS?iDa^e0I+qhjoWhywE#&hbj)IAfETu9nfw4cyKKU@#$vjFYw@uEsJHF%gH^ zu;90GJy!ZQqfSO39xOD1=mhmz=E=wk8!D-+%N@z)r z(>IG(;@Fvi6A*FgL=o>4P*4;|_w%$do+ik^KZUzlv`pQX5ab)r6yZIg^} z-1#_DG!u)Zdac)nN%nDMaqC`C6F0?X4608Thx!=3jqzd8gzIzje_D5ALB5m=e)o-{ zC>1M#w>1pUgTPyb>ik9kPj*j8MxY~P57&l5c3VKq%l#UXd^PM-Ptl_bq&~kjWnSQt z2Vla_n;)N9*Z_ZvbIIG~1rLP)>IT_e1xa+q=Wu>n@PN~yZoAFabima`HRkgXbZFP} znZitK$`rQ`z?SVuo0EdrlCQ-I$PV7^f+zFD57`_{_yO^AF6q#%{T@P~bR>xCHxsB7 zoJSRS!Hqz+E#~38D-feLB=fFGdEjt8WGW=%IN;6!c@sd8YZs^;`TA(YI-S4qr8-DC zRYd@$l+_i?PyTBU ztI@EW`$qOi+d{WPeohhOPbzU9M)+KzN=e`35!Q5|dMNtSNZN#hc#$Nh{CfcI8JTQ| zzNL&kXOJ?d27`&?$`A(YK#0&Zl{944Mc*vzHJyBPif?aF+q5ITy6?5X8y9FBnZf&# zq*^0K?M8*3&K=?jyy<-gNxXY7Nr~9-f}^+#G={{$dg1#fLwrY|yql5IVi^#pn;p|p zju|3_4D5+O$>uNlR?Qnb7EM}WB=LhqeTqDGU{WS;At%o;Le{Q0K^Rtcr+UiLfYOg^ zi#cRdOkhqI;H39#vPdTO6KR6&2Yw(W(v)oc*yAoG`LTeIq>(KF8P)Q-Kjzto@zAP* zZLI2^d8%|-D~V*xRD#>*nT&lbOlcEp=|HFwB;~n_PUH!|bNr4r==VY=$q+mF%nQvK zjzEWxQ-a^m0!`ud%C~7B^#X}_%&}!4DLjzP0@?yu!zx_=%@AIuFg!HmHT!7V3Mol+ z$9=pQ(Uli@o;bwKgu)*C`c*Oxy%f;P}}eoX(`83J*+U0h)u1^ zJ^&RXWRS=ve3vk3AFpuKh?by<#`abX8?mXnXW z`}dp9f)FWB+TrpNp06r%5SRm~Ute#A04k3R>$D&>)h-1mr8tHDHxC>uQV*4&k&{Qq zmjcRP@uSf)R=knzT_tZ&6gD?gvU*JSDCm1ua`rK)y?kIj+#H8nz58AY93BU(Dp9oXYf|?4k5>PwBx0 zvL+UN@dm`fn{r_*^7KSw;txIp**G&W1Kaq*gc;sB;47XVxo-$!K8IQ3Vp;2~^wg~I zbeMXa`P!VEM^S(my4=BI@0oj=%LO%2(w(o8CM{e)2W0M9HGcmko3Pq^J;X@lL?-lz z&`jt;H%04?1yUk1mL{B1*Ge}7IWmQ-ij#EY2~uy0u>R_&#;QLSw4ZH6i-<|*OZVsC}jozxQLTkQD|R~>Bpw}U{~4osbb)!Jk}ke zp)ZYkgH{>nuCUe_Ej7c-(wfHf#HHAL7x|Oq1&mXdD5`0X6FP)P>p1jS^m1>&R`ZGP zg|v%+>9?K7_xT~g#*4qim!Z>4I{)yl4r3a*S2wPTa=FRyX`O(d}`ZmAXVQL6Yvd^}=ie!F0?rhTF*CPZBR zPub)*9V$`X+ZlgDM7; z%?_+1gwraNp9M6h1W&eMM8n=;4^x|Zsp5*fo&;*0`DJA?2nVR<6t>k-l1Gd+G+ zA3d&9vh;|(nLGzA+s+TVFQs+B-Zx?!qFo4x2y2B+50*n>H7o*O5c}yitQjaO8rIG5 zW3^vf?aMHvwEM2hgof9U#u((Gd`iL75$Z06gErOkkM+E!-W1k>H1O1k(nSThKB z?0#d?6{iM)O<6*G+YrYts>bQ+$43yt?7@ z-{^ncL%0c1I@o(m6v~udHMcJv)&lk=nYb<_;{~hU=FcG02>mQK25L0F z++1jr&*C;%hb7vaES`8r*t*^10d1PDIMNQCh+?mjub9HssBM5yA;(fBs%DFZEp^LF$2c5Q#goDm+t$Jtoi1EUMz`}lL{Q;fW;?S01MV@f- zgLs4eGDVCy=)XGCcTG+HEQ!V8r9|y2_XP!xouOoe#4xzMK)T7xfr4wY%8=Ddui`YpDv}Ykn_#@7a09QC8jeeZ`4mfeSwckRe39m-24r>b|9RPST zz9ExT8bL&s|NcjBZQ~jM$Kk6mqVu zK|A{f!uOR)6ZWs!s@(hR2&r8T(|{VR!O+5Eb!VU8ceiwHSRQtC4b~pBU*mUdq7o@95^E19hRdL<4j6I! ziA7B3H4b6Zg_n0qzBL1%qD}j=az^WJmkwcuG`>z@e$p`W2SpEb}8XtFGFKIvdNEriFo${+6|8 z&ahBuiO`IS2A6u5D|f$xW;HR2>hZB4g~K3=x(l9%dFbl z{)fPnChAtTUAkP(48Q4#Ji1nfINH7?#V?s`e$H>HKc_i{c@&QFZm%)zO1_jll7k<; zT8BmAv&*9yKyOoly6e8&KNjjp))@nSSRUilC|Lx*koZGrZwqcXTfW2TBD+A)&ATET z6Q74iNWTA$X$aQ%xf(i;yd%1gx~TvCBSUVz*dAgH$a2Wi;w_;cY;WPFI6|1oh`#~h zd?6+RH864 zq0h9C3V0zzT!a66tOQ{mqo07z8q@E9*2wBx=yjdc-JR8;{N41DYq|$n7qdogjwUG8 zS41fr>Q>QdM$F$xr?5T(d-e*XWD;3CUW}5O^8I}*IWqHOF~zAwd3s8N1Xe*NJ(5iE zG*EpGqLo$U{>Cz*S7h(f%h7m(h_{*)O8J2=FfKGBOx!1%qUxTSh&Eq_HQVcDXE|u9 z5QPp=9%rHfo*gh$j)eVw$3oHh-lUNSykn{#_8oZrC`J1&n7q6jC%z;n7#kd&z2;KI zb39xPvq76nB3DE$b`nC!^Yrp)`O|hqys=z0xTbg4%IkmrQLs(_V`C`rRq1Mj`nw$S zHw9ZIQ$rK=FDpJ%VS76lQxBJag(jtI`*{NdKRqo97hIe26NlfqagCC?O#FcpXhSA2 zj!-hG!}9c7)YO!=O3=46PBe~UMQi4NC=R-D8S|qtKONG%uiKBW+P7!)_5HuC4n?D= zRG)Z6nPZ``R-Z8_B>a>y(km;bL>wkzny<6eFjv5C$youIZNYP;Vnp>p)!6MkSNHf5 zd2L!j`uRx27oK?+ykMka?uW;21!D!b&aYSWR`hn~_9|}c7-tjT?P|tMv4pS$(W8t#;k?i7B_x%wH4-2iEOt4i097l+>7ajmgBk%o3mm&BFw-?%1c@_6>%d39_ zxPNM^fAtAC7&`rzw_>d7j54+VG^(gnBUG$`w6;Yy?TvDgdr z>w;{xl@S*aQyWxsPrJQE>vlF0Ghj{FuE$@h4A-VAg)YgO*YNpjA^8*JPcJRw20GO0 zxZZVYSH*Rj)TvRNjx8-;j5l7U9(B^ISXX5oD7jOqDYFyKs#b4U=h3fj^hmdbS}(g^ z)v40Ft&!+TM0@gN_HS zMy`N^(dSeXXt+wPBK@hL5g^c91JUx8Lj>%x<#CIEzpG`)!Y^|!^LcuUG@_~w_@!*3 zwZfe$+>G+`G;YeR!PRL5?#4Q`=;RU3YWQUIpJAIy9q6$gHyos%PZe`pV^61E{;;iW zZL#fi>;AQZ*f?uZv$Tq>(ewqNh!V?h+IhYT~CMX^ha z%zLtQ+Yl)VIH$}!iYXdky6tNF1xCOw5HTGGcxwDgr74Jxi-}- zKfAUJ|KwrxsSo2H;CTttz`1zx z^&y7h|NJh&>+cjW*qsfBER8mpHUbp2iAW+*CXyJ!&aq8C%4$gm9E9*60^yhg3G?+K zEY^ZRGTy*rvL5E#DDvH5UN&K!Op^KqljV~6h0O_2+%|(1=jrvK)+U);Pz~yutCz;z z&WF2?C0(eeSI50saudKI%p)4hZR_$M)cO! z=5r^ksP_|mA;$y8V;VfL41B%QGi$O8f#M1{p2$5)`SaBr1_3z$!iz!t6?qo^b}0I9 zDEPmcJN|9ynxZHxJ@_>;p=>zEYhD&0t(Ropv~ zmA?yrBOaNR&x<0GJ?L{W>HY5Zba4NO+XpF**FlT$#Ph&&u|a}VksU3RHKA1M%og(0 zqGUr>G3q=GrT4Lb0UxGpiw0D;I!dJROAE~NZZrdOnPw!*hp<26gcG?#x#FdC(umES zNbXYdI&vzQZH-;bN)!XuuhUp9+@S-78nIZ2HfY0ROcD`}Sjf6mI_V~*+JoB~v22N9 z?_#HMgQJhI;1Bw&or5xbKW~~88hS`gKZBEPK=3%$&0c}!^Yuoh{rPyNef~Q-ORlXQ zzEQU|vBN%s+ib04XUp{}oWiI6a69ZDn7`gLn>Z;G%GXh6^>6#Y=>O)Z^Z%(y{Lgdi zhSb*!=iMldjI8MP=vASmXoj8&?$LzSLI{~pljcvulP+=DL^OO)BR|LQ{!{#>^lp4gHGtW5yNBjJ> zgkGSp83Pov?}`Y%NE$A3jaW4@LSpGWUf(*2$$@gJksy>cNUUR^LM(;QaJ>_KkfMRs zk&)O*2)5*)OnMagd&7BhK9pUdCK#>3su*hxBN@c?5`UvaQmqO~EpPv0 z%K&Mj?Ea-wEB?2qR*L_;l>gU&@4v{Q@`fC;B8qNV&S|r2TQoXKxk7zT1%Rr2bQq>T zqxD%-;7fZAk_hl7c}gBcva!o03Aqx_cQ&W?DSgP|o~jhSadK~Jt*<@mqaXUFmPhqg zkTI<>hZGMkqEym&Wx)xnZ`W{CJ?0cD>mCd5He4<1?7%Qtd-n$ux?*Lw<*2*rk;#5$e6Z~tsAZ_P zRv!=Bjy#z+(HEP@Rb-G$y}|U)D&DkzI)z@3BUzrYaA&Efg3<<`y^=B}dPJ^B38ocg zTrhF|x^P<6c1k!i>910^J@bJqahAtPbPEy=TA>lY?Jj3^T+P z9@rES6NmQ#n;^y2Ju$48bf3LoEC}4eh55$FlEv~ zT|X@)Bs?RO$M05(5ct>^H^7z^*_OT#ZDiyMoG_`lLFg8+2#m)xL!JZa5G7%w>|UW* zagF-6M+&WOBIbBr@DXGmpa8VOlLK6m8Ll9w1S?Ev>0iExmLkC@Q6LjTUhE~DPLWe; z*b`dGGFhka%xK~l*pbK#hqxi0_T5@&BfPXL7|B)y8#I1A1f&>F0{Ir>(F`Yt<&MuJ zA(RlT7;;6NNr^;2f>B#Z=Ijbm5~IYM9OV)sjI|iQ>H0x!2s-r6Oe-a^R;+41zdy;g z5+`j@=0ab>c#QqioCT3zl9|@>;TyvIkSVO-O`8qEDNj(xEn*~DBEG}k?oji=kfqcw z997WuM95cFm)U6^k|#LQ+kb?-#*JFO`7dI7_GN1OpZk#iR&T@3#PTl{XTyK#==}G{ zm!qs}zrcXPE5|<{lAOv24G>eeD7gHI1kS?+Y$x~XR$!i*!T#U>QL&8Ur z@B;KfG31&!AL&PPaipjJo_%m`{JwI1%@4#ASW*yD3ZTWjI-k7}5Y-k3!p$-3plVg+ zF` z%SL-jWnI4S{vHu>&1p9;!JLw>clpFQa;hWJ!jK>wmgDBeHHS5^$LyT5mk@5a&{(ay zMSp$uL7NP}Y?CLxoM9x7mPs4OL!JrhLjGjca9aAlrpu9F-ux-aa99`8^|X#-_PomJ z3P^Sw3m^=p8#GnHSl4|1{-O)Q?vT{~rVp>04ychKH}~-R&Rsau(5{3J`<9FKxsQY5 z>4!x*AH$J$P#q|#Orci6M9DlJdc}UoKU`0Z5`Aj|W{naH8c?w4jl7|T)aXbh zW?O*jDSa~;&4ORSL!1xQ+$mDNhMCVYQsog0%4Ra-1NE%;5R6P++GTOW`EX{mhRnY7 zkQ-)9ip|NFFvFA}NmiS&GO*LJM_m3}i1LXdTD{!1#cIEo-aE)&NjTR6E{X07k=EdU zhe-ba9J#-a^#2`^|Dm9)uDtkddv8A*K*inf9tbzp$OA91L zo9vHEp$^KS7ccwvKAmX^73ZalhZ!; zTlQbV@|Qd8{_h}t!Y@nlVm9=mAh{2Q;rQGQ(nHER{+ZERei!}BexoNw)YGEu@QNQ4 zV({*#w4_yaC^ZV7DqGrNz7q9IGpS@mltz8wpMEOB#{)P055%E@_;3u{g8ZfX2p~KY z#JR?YgEp|QH(l`JFHmlmxSl>Uhb- zP@3nlHVx})&=hibvnaX(ZKM^?V#$J{UzSUH#1*139(nWh;#@}|>$F*w%NrF~l^Khc z3Z^_2u2rR(i-#hUXKvU5rE|WR0+$V!C;e?qee_@~F(U*OoZV1`CMlH_zlwnIU}7Jw z_oo+Kp>NnoJ5hm9X)8;cOWrzBx`nT#D5^D>=*YQDb&tF{=B%G8!UDRSV{X~gf|i19 z;!dgZ8Ce{0Gv15SDMy}L#z8FIl4y2+1wT%*QFW2LnO z?@Z25l_C-8BK*>vAthj$VCsBUg`xB zU)n{0CdC1%jKn9%4T^S^YF`;DZ?8E7gNwu`jyV~LoUSAw(*`LzgG*66O$m7`J2Uk4 z;tpNMM>4;XErBVx5>cf^5FC2EyRj0}EWu5)KJ|x|?W}}-YaL1U@QT{B5)0JME>4jT z^;f<9lXqGoVjlvEf4@0E{Eo<-bczpK@3I1RT+99IXJ%%21ILvic^Hr8VxPmnT?;vb zBs0oU-O(pT5ir21JC2EH4CFg^Yq%mhCRBQYJ?ojr=8N zQrb$^MZ09G&N=Qy!QriDaf5t2exr_XDUVdO%EesCKbzWNSAC%v8Cq2ZDy(dlPzT4Q z4_D>5QXr>%jU2Xe{(z|H+v5{yXG=cExVyx1$L3M4lK_1*}VjC2djVn19Tq1XO6Q1=*TA?sMf8K~`8z~OV=tVcapw^0Y z9(e$VdwL3aJIuVLUwC&<=XdlLqAy zeWvaiDj1PViy?jjvF;&4?!8UigkS@Us_%Uw52qSm3KBqspgjY<{8s_X6*rCg+O4YWg+G6=YX4P2A~0uEYx% zfs3LAV^S12!TF|451VAV^ZhaeN^wF-`7N38I1&o(H2vDbf#_mtHF26HiIY1yo z99bJO2Re(iByRoAr1|p_?!c{DSUL4J%F2uHilIlc;~op}rO@0_(aN?dFybn+)xWJH z{s{LQ%u0;m%R>o-xvO`fsxWL-brLYyh?~nB#A&Mu|BFrIAsEj=`v7&4JKSo;dg4;+ zhjX-|+2^rPad~B7M5Y*HOVIDk(G1z<-OjOCJR}`b2)HC{>T1&4`A$t22puU3)ssQ5 zMvV|c@eo2A2N8w%@|H5G>}+2vG}KfF?9{2a{&B&O0l{-qrb_kzqFvTS>IT zWRn8gF<(y-O$*6Ji)s>V$wV_JJ7mem42&P&TT+&Nuu-)3{5tC3^Fc=Hx4xTXNhgv# zwvuAHkzkT#Ym;C~Nbm2_2fBEOSQ_8dkDo(o);8fZ2cJ!Id$$d(r*Z2xsGm+MO46*K zc8B+p&nIYGf?i+sxrQ_)kVt=8O!C(1AUH69Sjw~(rmExd7{*=Qd{8Ze-5? z^Tyyx_d0F$D}h2G|6LOOo7p-!S6d@fr~g&pDCJ#wK>%Uo`Hi4hg(98^Oc61m6%zKk zOcal3DTsO5P|OeJh{o`3w%GKg=tIz4#N6d4e;@z2BRi)Q0aViO#;mQ*>*J@V+Lhiv zexE=Ao}&}9P*o<&qt!{Ca%9qG!ILmdSthMSvtS!Y7b5u}dSVPs)cw>@PJrSlwI!-p z=-}Ls46j%8%g zOL6dq4I}W26R|g|47nVCI}0xMY9tI7T~endE_%gMTU^XXnqUJa*HMCIUG6;&`a0Ei zQm;C^G)~)cHI<3*%34L5#Dcd9v)!InEUniNi#eT^@yE+XD-0Zn(mU4fRn#C&^!U1VV@8tp&=486tQ6n-ela zfG13SU=zqm$pZqa8*P00DT^AbCDB`rC9t6W;x`{F$01ZQP6NykO1yeMpz}Z|2%9^k zb=-Q-5L%DE6G$jD=kPJORpuBq;fxR$xC7953~xYuYScDKxgxlX7*-jU_A3O9^Sqv;#=sqF5_a~)~9FX}Ed zS5kz3tK~YQLVQLZ>rTMEPs^2_<`A7r5pt&gkCj9U3|IIcjN5$IuuffEm6|)uA*otNI zrDjW6B?k~HFj`btNTWsg?*jaCY{FcIP1NrcpPHyX0YUtI_@v#;nnD&F%Z`|KGnqV0S68$e=w8`ul`IRADr2G?UlZ6qxHL6y9hC8e)tYPaNqH0V&fFc@857 zzh_@p@uArL`V}}5dSc))8z05u30L62L3Ph1^nE0L`Xc)6`^qPQqg^) zr$oxcqsM9Cv}i}i1G4g=65!?Jf>{ZHazt4wHfymkUXW2?a}U9!Pcgbn6$_TbqF6YW z`>j4K3XRH$m$a9}CCsd-{Ta5}ldVLXOLv}xw1F|O1c^%N|1kDW(UquOvv4}LZQJg! zW81cEC!KV%V%xTD+v?b6$L62C-|s&cXT0A&dyL%VBI_n|J+o%bnpL{LM}O}rpF_Qa z-sN`3@Dg*h*2CB?nysgxl-|%FFQ?EPaNl5zCMPJ;?~>b2#&!qLk#8-E7(0mNUl=G& zKRQGnLW_W{(x43Yz+W6rIQ=zModi&EUViamcmK1%`tQC=g#UY8S$yqD9lwVBe{fzB z{}+G#C95`Yws19(bh5LRxBL4;MeQ7I44nTjin{XucVDZQTB)N&MY;;W_z{RsdG-#z zBai?(53DJ)yC)A|ZrP};pBL48>duV!q3ARPox zl*q(P_HuT2br>K?K|Ct_%ZnkjcM5|Yt1T(trZ!eEoI%ZwvLtxLdw?%Yw3&B;*p;|+nflclVJ6j{{+dZil{tUI~MIwv1{>^kIQ5_0L z^MkNT`Yv~!!Ew2{u8-DXq%lhg5iBp72286h^_ayqft32Wvlek%dwfCj(Afa?7>4Xv zPo=Po3L4Gao#D$R*%S^S_*;gNI&V3i61e+tzmAZP$Dz;F@tYiH%jM2Dd{6hlVc34^ zLR6Uu!~97D_m|IEEO1|&JI~dRQl%C=t6;g)?;B;({lA6b%As`79VV;}MP0JMz-d;$ zyS}VRWVpVtd@>iI1GldY`pVIO#nX;cR+{c+LVxn?bRXiCK?H zeA0-=7=bhgi(wzzF|ivBS}zgp8+32_fcWsOjjxwx8ZYM+a_R%A?sarm_YS2;c7}u% z_|(`chD{hAiD-)~cW8t{%z$BsIf&36`*(z>Ly)?f#d(jWlRaJdnM9Y7G5)ZyraTkf z2>$sBzpCtQv*US!^^Pbp1r-KjPu{c$!QgbvRPQ^~UtbhdD}a#87yaP(kA&Ede^KiH zuM*GvvYN(G!St17*Bg+*nG-Ar$C0!^0k#&3JCC4Rtjz0iwLd>EKJu~w@&fg zOZ3ZAbL}{ZP;(c;!t*+d_#DX2*;{gAXA&XI-#b5l_TGH-**xkvdb=BToBraK^FiZM zLX4RGmzWa2tOlcZB0-5;kcMR%-D&(;QdDJ_0Ba5jhVDw0-Gx0Ymd;{q^$s0){o1g% zz_WP=>b?>`#t)W2`|2+MRQ8^ujuVNdJ{xxzqb}(*CuGgkf7nhmEH`ywU$s<)a$5F1 z+4|Snc*i-KaH@=0%d|{&u#@)Evq)@=V#D1w^tmoQT~4Yc)>dP>&SYQ)+_X@*CJvIC z4ystKPku+#U24eMaBXQ?z9iXHTs$R71velE>Tw0?*4WgO|G}zWtVoaIe=M;C*B3O3 zJbY==xK}|RUWXwa@2cR_PU03&MU~AdwqC$J;ot?Q`Vf;H+^dO$?xLdOwofRaTnKiG zEL-0pUvQcb+b1=BR(sZZ!vIB2_ZOt8lTEL0eUnH)F=;+gne>p#>CudjRU^+`5T59&mA*1PI5fA>#isS`9%i=f>U)NksoTH!(6J(AAX}y+82i2 zuqj++ybKY~8cM4bFJ1jEvxa<`pDApv9ju_lrar@;+By77g&D81Wz4!G!u`ovTP5lr zsu+kuqFQ7m_P3xtzfjDxl$D6wZb!i0C|)S{N^H2;2E!O2#@RJD;x=Kw2Rgw#Yrx(h zNd|yT6w~x&k&Qgynt^-es)}U^c#jJ}9<7M}8U)ofEpG;L2dl2b7}5VpY4Qfg>f2+? zrMw*cfcX^=^VlV}@4JJQmng{96#Zm$7h&IQCf69+d9WCWAJ-BHtlP&Z8lVe9tS6jd zgUri0*pw_h-}2+7pHyetIw2OVoc20@{~6m&C`>3l8`~t6u^M#P!F<%oTPqk->VQ3> zrj6C+!)Zct<)P^Q3PF5x3HksegRAGHlSI%sAm*LUo{{cX+i3($03)vBsi2z+zi}BV#yWr0*w)^xN+ETa0!-R9*N@85lAuY zQjAb+xVZ}FxeDAlmdFu1$j~hV$ZHtlZequ#_^zDCYgdiP#&Joh;%Lk74kaZGvIL zaAf*IKgea$1aU*I^JiYr3KVfAQ~Oo%nCb?^nORb0KZ|)Zi|3_ZA?~72o#lK3uQ1Ka z2rgVNyWU;x9#tP7`TgF&w&{Iw1!2Pt-3h;F5=i_pNFp-Tq`(GRfEZE%S%vtB_=x1l z=*XUxzh0!ijHvRm56O-e5jxt+oLmOu`$z`Jih$6l~$;tW*DKx(xE-qvdd~U5(0LK=ETK^PG@ffm zTw9hF0~4$n?%HkZA3OVU5qtnwLc=KI?9R<(QSQfni_As22DA_bFF{Gy4syHl<#4m2 z{W`!B7qjZ5+$+nd{EOC_-7m91Sv*`s0(P`qY`ttj>109H<1|?<>K@W^Dw?8iav(Zn{fZK_zJ9uPCg+l(+iLiI z(`CmsAgYQ~-PmsS+gmc%l->HGS({iqGoH`|w@J9bk>U^8CTUgq^?<}+qDQ5v`=&5+ zs&UG>!4$RTw56`PL}}W>WNXEDx@OaTnb?V1r8rg!ZORsZIkbp9C$RVwL-#vBt7?7V zX4DBo*i5WV}A08hMeGGxE z4#cKbrmoyESjc9vceO~z&|Uq2fJ>2r(E9kUIp)f?9p-hvX&xqRZYG|u^IB?mV(8i+ zf~lP!9BHpnZEW$I1_KYw%?EYS#H+W-#c(@%NO2yYbVlBtsGR%Ly8GiR5^3NwYeJEid4 zIv0)Iarx!s-kTxmUu6BzI8F{Q!TN{qY$L*&^4v^OvuC9r)Aqk<6J>JI#gs~z!_VV4 z;zc^lB{7O4BWC(W_MUJ+s_51r~sRqX4<%k@(%eadk06OG_rO0&q^azQ~O!fHzXk zTkz6(t<{Hs>>TL1C0uWAQV{fAd31&xjUozt_2oCgFBJ41kL71l#)}x$WJ7H)QDGQB zt;CLkv+CYc#7Wlk?-WRwdlopC#8K1R)x;sGJtJ+po~429IOfKp@Z3fz+vQZTiHl+t z84Z~yLVgNsAk)Mll)&}zx6dQL(^vR2O!yx)!Us+A^WxV7q6_&?qoCTqctHN&pqo_Q zz|qO%|4L-7R2-MZVfxzL0ms8r1?G0F?Ser9BiEl4L7(P9lI9`J$fA`B(q{C6ilN|m zWR!F-sFX|o`3l*Uzmz7qPEh|zr}LV1=A_r zs;&o(VUkA&P3~_t3+r;3unPV8VP)Z_6l)T9?qF=qksxG|2;-GHYmlTp(gm65I%gRR z$Tp$Qz#c=#ikA6yiL-`LMW^UOo>5!gY{ZH+l+cCS!c*^+$oN!?wJdy5&NF#GykU35 zhlx#LwL+zawKU|=8{C?@hLqmCn=iz-%ksOrAK%53*#Td7=?dJ=>Pr5;rtj)x<;*mt z72XS^a_i5x_j`|>(4BV>KOf|c$*vXml4yc#-EW*j=HR!3=1O+rU4)e)=Al#iEc%IC zlsQz|0GkK2*a)=9)1MH3 zq14^s!>#16aSrt#ER6AOrT78keGASzYI#+BGvy%qwou)G4Z+(uwL@d=? zTYkVPgYm42m{NP-wg5w(piowF2bxIS8!Blm%D{&|Gg-0*LqBb{;f3lb3ueY)ueE)D z5!L3oY6CvvVlFiM*IeI|z1v0c%L{OI*S5PL|1`1WmJ{o%Q&M#sw#zJGtZu?2G=LPJ zdak1@ws-Bby{1Ap>}R!?c}JhY>7sCJ)A)rFEm&g>B#kFNxW})t(bKqUyb7u&-O#BC zg{O7uE(s#xSH5xIr}*%USp? z0cb^>Jj-Bg%IA?A?XmqBT<*%VKLLMGI&dJ0j=5LSe%A(1lL{`=o3J^QGBbou76pwR zwXaO86}-Y{ln@+NgNoyW+ECUs?sZw&&^c?oSlYZDJN**_eAYNA{|E zvj0x!vQeJ0%6lyzB}O0@#*}hLH}flppIA0cHF6(FgWW>3&FmCs8G~!U-rtzn@u8R4 zq6wHWglLYH&6tuJw41^%!kNh7r}_@fE`b4B#emwKx8UWsxNIhKtWW~+&M=HIh+LXZ z0u{ufni#?rxdISOifPo$e&Spb9-XT zLbG39>_n{S?k9FDzKF?xSZ+kypJ3@)Ot{HQ>KYj6K49T(erR3WBe7pYEgB!-%0+48xCSwYOpe{n2C}C8dD045_RX~nr zN*>_pQmTmw1YDvOsL)C>k$@x@-2DompiU}$N-!YQTh->UDK|9zTAgt>_vK)~KQnRg zTo7O;LF#-G_A_=E*sfZc<{DO49#P{I*&MNl!}_fBRKr|^(_OIP0U{|l`@g#is$mA-_i&spd>P&1RLMzrUtk?+gqF5Xix4_dq<4gM zh^qIOhL%&SC70=j=hiLRcluBmr<~?AnaP-?4nboZER43t-Hf0qo06sh6xL_1$hzk2 zQHp4%5<9>@q{3D^zMM$Q=@!qbLtM48R#G!%FS|UR2;Y+?e%ahk{l2p$Wm)g&yFXX& zWr5SEpd7InG0HH=+ruW?sm8+h8={l{wN}CU7NP=YRR=SD9bmBIcb&1SfarLMY-;W0 zr6u(34E98s!pZ&l@PLtBYYVZ;EX82NuSh}a%Col;2GCxb2_sP0DO60&TnQCMT%dKR zx3uJ(7bY^(HOlAfy#Mryg9MXp@ZAM0UJkoSfhL&_O|3%GcYb2ks?hMDFTGEMJvpE!8}MPPf7-d zrd@1Olyi>T4d^+j&Lz?-9dwI~Rh%oLGqTYWfVA>NGKpyw>q5T+j76rMC;a4EZ@Ld9 z_GB|?Mx91^aDxTBn-D)UbxiM=e)uj>CF(3p>b1b;>IOc_e{@Q5;H)Q9>rA@aAYVu4q7x${}4D8(N`*U?DyX zk(}@E{Hn&KVhyf;fl*WxB~)4e>x7f3^dD2!COT~|e0fO^l)-=iAEc?| zFhiO&OmS&VM%8r0-QYr8lWR}0DlgEk*I!rRh>;&aehCg2Rf}^;11Uw^&GpkfEUy#i ze;;Oy>=lM#UQmmdLlWf^hi3$MK_@B08hnS=>GeTFxSHYiL>){B=m;2w{U!3{mpz0i zYgPsutM-u9%czK)RC~hi3U`FJ#WosGxx!|v+Dg*lGmaGtkvCeSSeMymi;EK#^I|aH zbZ7df$J|~=ea@cN_VjYAtLl)$y13UQG2Jj)YK@9fIQkcyLg9R&kne;`yp~HRF`mH! zOlr@8q`|3{nBuaqh=Rcq5^R5Ou8DYb=6Zzs5V!cEoF#xj*i3SMgO}BEu3bzH8;~2e z-xzJ;yT2vX3oTSZe2Si2B~&r!S5dhPqjej1>16OCeA>m(OKvwqo;r0`E>gK%rNqJ> zNO9%NzmwES2}csbVxCFt-bDeOWvM>M0!W>zA1ft$me4{0taP_>=*)W?y-r$!uud4o z8918dJ`<6pQH>{2W!=0c5_18bww~zpw7|gNM0l2J02r{(pQ%uQL7G0#pGH1hG9WY6 zDy&PPo3>1_n2{tNV~nv~hI6|c+IPAE=*$%lqYX-@=!G-Q!$e-)R=W)O3`_psJ^Ptv zM&^~GV+yC{xg@zWX-T+acp+Y;35ZC|@$NDeB4*3LfJm8Sljy@G1U-7Q5sL_7-T*VM z7q~k&V8mtz))z1dEPd{^La12F0)3wAP}JXi1^OGJX0RV`jYkRcKT(UQTvM)=nD**P zwOTu?aattUCcxQ}(AEXVsy(BKkJb_^l~frVS&<^W#jLqA%C&!V_B7U4(L}wLQUKd? zPny$A5?BJ(TILn4OAFOGb6w(P+>X&~&lO6uXuSY9aTJr?S+uY(4&&$jI*QdIzcry9ah`(dofUIiOqP+7LeA}=SlcjNZmh}^ts6N^>+x>;y+#~ki)uf;`Otdh+Bb6KnC+F(C1u3)Xev-ZIH z#p9-HJX2>GX|?6qV^X$n*^8%}P+oj72V5Vg&A6dUEB$ebY0bulG^@Pv2I3&3*d z?Bz>!!6hnxg`gxGcrH65n9G1eWU!Xd@iR}TV^nC=5`^PRarpu6iKK%UK4Pt5bz-EK z&$YhdppIN}VDIxvjqWKfRcWn;|ZO^n6Ry90cRq`>2y5978m!cKgPOJjW=H4{+cnuTl52rzDoJv zA8(#G|J~dEUkf==dCd_=1d%si$LnBWtSRshVg{%{hHw%t11A8{IDOsP_6Ce5MN*L` z;-HpCbXBENv}#|e58Z8=z-=nJ=@R{@_1v%znf7vw5ojia z>}icUNE>_YDs=_n2B~Up?xgpvHVq5@){M01{Uy8MBuEkm1nhl1b_oc=k+011#L(^w z6q}8VWe$z~<&M$ijMVbZ5B^0F1dY~#$&=^^&q$BuJS9(LXrnobDK@ETlB(~MZE-|9 z3N;H6r2Xb+MuZ7Pg!S|07x-ayb5M^0Or%m_$$sibE?=g;(uT|t3C3jGWmpQ(QlCsg zg}%*blikxM3qY-IBD}~Zwh4Ug8?Xr#p?E7X!rnBHf`e>`r5p=E&e%fg@pZKeTl{qh zlChepoZFc|0Obc4n}*JO1Th9?i-ra)0DEX@u}jO;qqECiIKP_2Q*YuUmVZFtM`hOl1gXB5J`z=V#!{ z+4gv#eyuyHGu?TmgPAN%xwEyyov>MW%&C=O{b_TIehp2X7YIenycRd}qs9)#NT<7M zq^V}4#Sx{~wpOD7$NBC)E)lFCkuy+U>v+su%t+RS8(Wf-%&G8A7VVz)I~gNB5?#F3 z48Kqs2K}vR0wZ%?4!4LMg4n5d;4`QpM`P!#p6>#0Cvr7Q^HuNM$d8rYC!m{9adI+a zYB3a+;{{IsVGu}b!kGoYrXz8KulupRxb$gv%=_u2*voIPv{9^HTe8;_c&h598-|T1|1I^*$1wrYlesa&i`T zOJcj+pQX#JnY}D1EaawGb0TPzofG=|Fl(@-ZU!REut~~Plls#KDtQ0H5373 zNOr$5afy}UnV^233yDx*NGbP27hTRS+FEMz0RKAli)1#3nBS5z#v@58 zbck(83dg%-EOf5@Nue8M}_qo_QFfp62yiMEOGm;!Hyq&k7vkB8)$OyVck=ob(e` zo(z~9QEH$7*%FGy?T`bY(6|X=7YIG<+CsacWiW@WT0efv74T!tACOOwGY^M4fol{% zVk;e)Ll8$n)fZ?8V+K1MuM@A)MIiFVHh~PauVIp9aaRtg%B+)VWt{rd@%8k((y{!} zjL?2)$&Z_5NyPl5#*&hs`n$@*7@RoWzj~q8Kf=0y(9``Nra@9kPFCLW?_d9OS5&BW zqK2Y|`q^0n8iyo^hzKSOVK&YyPE_!1IOU{;n&P$ry`rJ2{!d?c#OA%g@atzWcND7UJjdRXoNXA7jRSF5Z#% z@sGZ6D1x$>l3ou2awZiiJ9@~>aKl#8q~gIZ!;znV{H+Wu1qbYV)w~Ju{eL)1%=9MPixByz#J!LY`?XzlYHxqYu&J)>C5Q zsU-p&c*)A+>vBWP#MCXOs5Jn*XO0HzHTa{!KT1siHbgM}T-w{!_NAlua6+sNu_IuL zgFM|sjK`o=W2@4v261XEwOMeYh_u1_C7KBfxC~5;Nf~=oxBjr4hzZ;qtD!R-VQS-z zcPUP7s;T%K?nzb+axF2}+naV0DUOyO5g87r1)8Z@jG$~NR_WYDXVl4!aBEi1y*b_^ z03xM6E6N7}uQQb*xi70#9;nKB6zcT02*!jOo}3iQ?^7!or6me+>Y6HHNu#NGE@4|t ztQgHxjT7$=-{mV-`I(Tl=JsMA866rx_mY^`T-pe@Ui2*&5lHpo(xXSE;0%fqcyS9D@(7UyR9UFCi^ zEfC{6E->>rVJ1A8O!zu1@V$k8_N|-V*efss(nF=s%3ViLI^=b*jsT*=U8pbJJv=WL zn7O`)$ZX2qNmb75to+&)=<>JMwJi|IUkY|zZ^9iRZ_*kB@h41&?HmJs60q$SYxoccm*8Iku_ymAlEOwDJpP+g+_(E z_}pm|#I{M@WCb_pc_A)8e%y^a%qgLBouiCN0&~iA!ru%MUK|!%@B>?9X)z)lS}b8H za`uuELM6pHdg7?JJ5t^vDre|31yAZvX`&Sw$Okec20lx>?>idiR$Rq}!oP%ro$1oG zYQ#KZX;=k{U5wOaCz+iAi#*h21)hL(lHI8dY{yB*$kMe|x`mOgQntWt#3QL&>oNH_ zZ$Y!==3YvQ&L`2n<|o-cB}{|mPD80#^m`BdNUi+nHkGU-r6T&(p6;5P{Xqm&Iqjt* zr-Uj$Xr&#X zL-I>%?&Q53xFXZrNNAwTTI7%93)H^q&b)}ggL^Cux7hx;gl z1eYKif+cC){{1t0vx7EHM;cKnsv-2w-JpG{H6fP6?Ymhp@mfHwZjXAZxZzz58I5fKx6YkWU~R{@W_-rpEJ>S*>;2Q zJd|(IE%><5^!q-9uWOh|Gt^~2@tauI`{5n)DxL8&^0z=&vegHDGt6`CfYKOu*D+(s zIv!{E-&kc;mUhXzhUv=UEQb5B<}!lv40V70K|V<5Q_c_==HxS3`m7d ztWC_m@Yw%!D#ib~V*Xt;w{oYxO$@@7;R$QRZ} zfxH1V&^R*(nrx95z}kVxgiydNNP`a+3~Du|j!VXMSTsnoa!5WqZkMnIyXm3Iy~6}Y zsa6&#C6cJmJglrw11FTh(A$eQk+}= zvKxoR`a^UU^;#v*<1T0yVT1q>55xm2l19ID<^o9Mh&^WjtG@B^N8WmXu-wRNqW1gd zqt?CJhx~G^v%(-YEP_NzEuv*l2@I}!*?SS&{>v$y&BM5}!Xx7i6rA!#Piqt*-VC$X zJi179b1_5l;}B1GL~%YlM;0MXh^pQQb8LulwJJiu{Y!!g0m(88mK6H60Yv)84WPik z_~(ByuZkw7CXObyM*kgn7b;o(C&vW6iFUl)P=ThdL|-cC-XFpGAiQ^=;D;cZPzV8l zneNw`PF*JQliHI=i0EHAi|%I4gbhI{DKdu+kLyks8QiyLkImUYhYGB*13n;1iZcpsTLJLz@l6 zkm19KX;5}K553y)1R!k6#&Zi@J#WgIex@3(@sR$lm87xu0Sz#DVhr;O)39cWKyNq; zJEi#wb{dOWP2I=<*a9#*Svo|a#cn;V#@^h|Zf?QNxnPR

    <|?Tqo2}6+79C0sbzNzT+FrBKSOfrbs9sI*||>-*X%UgAL2PwGb3VA|NBBR z*GkFAxABjxp0Hj8Nc^38JfYl)0EKxG{ye8Ncd)6b)AR(>GKS^=qo9!;=DApyC=Kv7 zwx|Vpa142ZEIeW{0_J2v$QPrY(N8(5pqCYQs14D~#Y3Q=B*5a+$R)j7 ztdkvU+t#4jfW~LYG?;m@&YCtrU#f33GhV-ExaBfN?`H0If5~ytJ^ED*~p#}}Kc%|%^yU&7=MAyG7wP54XPSm+= zytZz1L*B_fn9-I{C)2Ks^&c~!Tqu3Obsajvo4JxG(D-k3f?p4FOY&O1ucnscio6%xx1?FwZ>J;E852-Q+uG!>lSWf! zLF{K#Q0eo&m2T)eWwi&?mRWNOHu4fvf08M9AT|lCC_z-2!8DRskFg~(z?KuLxU6Ma z*o@j6nx*MNZ*!5`3-tToA=Fgt5vi6);zi3FGCmx>EdlP}hE)KJec!O^7O1fDbRTK6 z4>LYwT5;e7`@a&5YRZh@gtH;HVZ%S2abU;&hU`SiGN9A=Da>gy=BV^d?fYP@1RBht z!gh+R)~fbyrzBt>wF9`5rknAk;1r`dXdC}LNpg}$di<)|{j8t;UB}G)Yr1eUUPBIH zElCZQBxys@4$JY`DT#H1K-7*_6A!RJB=Jc7-rUCL+-!Iuux0c;oKFj)^J81DCucsI zNHz^UdY@DygO!B0?h5K01kX@B9v3ciuSHxj8fb)2Ds2&OJ`g&9_hv|Z8m*gXO{C%p z>DmqRjQARVWkP%xMpSPoe1X1!K5m%EEr#b8=%_>)Q6yGgN}!=lI*d2!k;7;7MFDT7>f8w;B%(f%Zt*+}Y%LQqx?mq>OkgA< zs8JeiF&b`LJMV?R%&wWPEFM2HMH2~f1afnsM5d-MVW5OzJS)4*Mu7z~hYbpa%qnZ; z+TFWjXlAP2qpa85DAe=2bNklR)C5QL=LAQ2b@%gI^0$ioZ~Q~o4FuEMD}*RhD%&0z z7^@iXB|XV+%aIJ@2SJX$-U{>>tllF1Y9`NOj?Zb@x^q``2pI2>+tD;vE^ndQy0cfs zg3kbiEmRx7!~W*|k0UQhO>tyVYv1rkb?S8%S_gB8R9~af5 z;{;;|Vtj9r2>eN8Ebjxs-S<0}1AW;qSC4t8X4oIOz*g7M*t(B9*{pB%S0CCHZy5X^ zXrG6}-Fy73Z^eL5u zcLwU~_~4E@>U#yO`uIZ%f^@-y4zy>sGQy|bAsZo6W~Y?GCM0UF3SllIQf99R^~F2; z83yDsaNE7hfbN{2+ZO%FH`(nHc@T#$uGH256q zYm=aM>)6a5EB(fc*jPjpYg=Z8@Qnl#TA>eresM#%;`11aGSeQ7s!Is2RF+cG81i|A zr^Isp-prIv3nkjqpD^xPb$-w%H7%Iu4i@ocj1MD+XZpU6d>s3TCu1lOU6<3wkj4m6 zcm2!MviX<@^tB=cY0ao0@8%p)O5@sVQ>Y|0R|=LIkuz%oYC+cQ0#_}iH?X~d`O_b4>eZ{2qcqud* zg7G{)yzHSptBkn<7E^R8t|vFs$%p}qZG#v}oDxY9a-$j^`HrIkI51$Wo%9sD1fDT=Y{O)cKuwuG*%L87|JGhoV7RKTLbU( zq*Z%u?=4(>nkdsMbisLzJmGdu7Tk(}DX8yhO5qT_^4o>hd2M36q$IDq5HGdTsC62R zvu{aBj(q~I0i`m2eA$N0fqs1*rnRXkGl8Fo^KdtHu4NH-=KOIejs#V4>5Ew)OFoC; zpy6|w3WH}#AI@r+WTHvn_n^2;0~H#WurLW3`*hNVVB4QJC&_gbWS}RAN^5FEU5rFiCEmh1 z8Q8fJ#bWBRuha)6I4~&x$)v=cQ|7pL)599Jgev;{@856_v}}NiWSuOsL|wQhi@~_) z3OwKVRUPfx`&Zhug1g@xULBIYS`#N`6vBiwE$niCSsSSowROtC9=01Y0jR^-H{=~2Pg4zgRmi$Jy? z{vYOCSS-Yc^1n_gY$}|?5@;NX7SZKx`PeR+0yHj~B1D;KloMp%8_Ug2vmS5!*+d#%#nLlY zO}YBLSW`+95)B1qqGD<*07UcBbsCeLV=O|tq5TaA99F-p<}EezXA`+93tg;tQCap_OtCuzYI=x^ zyH(K}kR-0SIf(|_LOR+di_0xCD;Ax!wQcRa=1;I4rqU%O{HXER4K0-N;kaDni=*P7 zGDLC6pq5VEL8Di{S)w?tu75ktOFV`A0+P@!HtJt)eQcFWxGg4>>jQGl4I9kA*Gcc* z50gM%)3p$ssRCrvOWFy4wB8ai;!(iHSb%^8Z^xvrkee`0c*u=|{%+_VSw~KR4hz#+ zghnK%$Ox2@eVmV>95Cnv^A^h`5N z=TgIvwhoT`oioqJWr~)1iN4~)X|j<<(7_WNxiVqIuN6L}T;BkH&1obf(<>6~CdWM9 z3XL&)hFifhd_9-1L1QF~LuAS(D#`{Axdh*A?glXujaUy$<|;*5H4Byz5DgoEj`3T3 zOZ&C_W*7OgIVjBHV*131wRoX)tQ8Va6v-9W1(v&O6xA`GXHhJImbqe*B!%fvpEKlD zSpl3=w0b;c5c|g^c);|S@>s_w>D{2F)BGG*5lpmC(*Ah>{5JsGFNJKu`HCHg=0>7; z7Co~n{|^@*0=jJmawK__28pRxHnzHZ1Y-+|Nd@YwE>gDVTuJooteFOh20q@sO=w`M zA{e!T@1RXs{xrUL6$i2q6HDhh`gw}QwROOa#Y1{$L$kNnN>Qra*V}F#6O0q3%x^GQ zeSlyvx^|oU4ejk6!CXBgy#^w%^G!Lx?S>^g({hp|rR^4V=rKoH;WQP3%H>ES?9ypF zc_lJC`1!=O3uQ}aC%J~0=UbZa=(P?r)!4;EUig|FSP?5DK`nN`F1-Q#9 znYE34R|X{>FCFeh;-H57Zd9^f8Nms{vl5vbQ8I5md_EYxWhd~1oga6wZ#&r9Z^(Bn z=Ts==eUoPL?+wgSO&WdQk_kN=AjTXh${aAby*TDCdzm}rZ1|@a!;M@LCzg>Me?OFupvQWTr>i~BX8AUW!qjut4(G<` z>!6BeLs{C3FPvMVTB5@QDCc_ElP`kU6kuzkLgJ=D_Zg8lsFg*KnL*m@J7F)FS*?9_ zCg)nS=YbYHA`BLC4@=2#z4ew8>@bUYFX$@c3Gk@r@LWq>Q32m^UAgd(^Kex*v&{Ae zo$BxGKJS%U-HB^3j7(7r`&vnY^cvy1x)E7KGm{^fS}LmNtTm^i4UXG8KZ&O0h5&MA@Vd!U-z^O*?F9DE}xvX=Kmx`~v@s|qjZ zr`xmk3`{^iSJzuw6NmCV>>~ZayzQh6U>eVVyj2&uGz@-V`Gc4_47zs_p0~Z$(i9v- z$=IqqqA9TG}0Obca&AHbhC*M0A)JDV`I;wT}e*C{G<(fXx-`(UO@`1`;Y@-UPAP{zQ_ysQ%EZRkzCt&u4)pIiftVEk z6nf6!-QBNPq93d6Xr7mHQs7*!D7)cthIa`6U0VJ_3kJF&774-dZk}3M2_;Dpljvht zTZ&Fyu5$UuA9~8WHt0swtkbk-u*5OFg{WG7CwV5?QvMU5{K;>k@Ce#A-+qm=GuAmE zsnw@jWbejIF?3L*I2<>ecC(m#2bGg^Dn@zZ4Z%L`qh1X}KOIu}{Y&Qeck^_MOxQbsYP){KZgB1WtIMQIYn*PC6;zS1BY~ukuqpu#&BxkEhqvyMo#uNr*_Yf zLKXzMePzc9_Cf8Qi1R&E4%TWq`3&9NB)bpGJO^~A8F1$wbGo!X%p+W`tT4puE7<0rE49~%xz_Kt7ma$9x0F0=R|IyFz!2e1h3M{dbV~`C`|gKFHa{3Ophd_E~(9 z)w2@b;j%kktbptpGZo_Mqg+w_=NL=maTOSk2$cD-Lij&Ga!T3C<-;xbVjl3MJcH$O z*Y<=9&s+%L%vO<{H8rjH(@vR=`n9Mko=|&+=g4ENX9->YLCG~KYIZ$ZXO-pYT1qnk zvNsV1`K$ItjXzql=26zk#V%ZJ+4d+gfljC}m_a;@!LKy%gKSVvcC-(U-)35hVwFgC8WIE|hZ!Mfq;$NTg zM)nui^5La!PX-SJ^oI9O6!X92T3G)Z*Ya0BGI~>jh-K_cWjJ&bVT9p35H_-*prB%J zK~X3&0pO1!czgZi#a}u$y=|Hkl}r9EZxDIG z@4p<>u_m@vTh^zx;Z5gLSnN4|0f*)CXAcGVdx4|F(K1CO6~=jH5@}E_Vk%B|wDmJ; z#Ez}lwtGc=DxR}Z#g)4^nJ)%12z6sfpMYR7UWFZTw9Gqrmp&V8Q{gW|MA5V;uU;pb z-&A7!hiWmO)-w`!GYob_g-#Uui)vB+rPj!xVpNG4ysF9mEGs1y?T9!Ix#|@hRVl;< zf(r;OLw{I1%0nw<>A@N*tIG|veN`@bOAZ?Q3J4#|T6y$VJGR+Ttbz&JWduttTY9iD zQxe7Fb~!FYv^4}if?emh1{x>F&l9GW;psC1w{rUmJQ?j#%xVfmV;hO9lpRIBZ@UEj zeRO^q$E`pD%fobyN<*$HaG*q#VQ`&o`^(^Y`YBSq4{B~5t6;K3isEN$FFZ>HzjSyR98BA=8X249ofcCX2kKPy~=rUe^+DS zG0C{wLiZj;q{nF_UjNSOX>@(eSOF{1rghT2(3o4Fc=hm#KW=enfp_=P@AvJO1V4aO z1Di*aVsy_KYbEx1TA#oo{zuZ{EG1{uZ9^Ip(0A$BLWg12T*10L^MG?{jL;xC@vdQY zj8cS@vB-ih!#fqn+|{62kr&D`9P%k5ku%bh(Ou}mW^)4c(cw@}kv<)KjM8PYRUC0+ zH&|_Q!IDerpz0mZOQ7&h5K<>2F`t`TihT;d(Qc$%+mFAa*oh-KGk<;2EENApv&j7m zn&sc#S^WnV8^tJi_VArUtu_cuEM;1mZ5v2^IR`>gf222_7lbBF^kW8b0w{Fy$ zeKGli=!IB`!2Nm^>+3x%X(AG-WD6zI>3f*cA| zN8WX1OB(D&gL89cg$h@J+oFbynwF)MCr1lJ!Qwbduj)4E@}LptQ2bU9id?Zs7qz5yunZC+j;}-gEwfg|7Qdz0+@W>YW&}l% zT5v*}mPNNHQW&?NtpDV(CC%4jYa0GC6Z2>FgA6RP_E)VO9dkst0gJc!)SY8eaZie~ z&bSn(DZQBjKU?PY+?OZk!HTapOR~dW>pq~-WXNWznPBOCXqX{K>N4j2D>faq+;X^ndh5${jQg6a}ol zL&rKc2OJ{ASP_Da_xKcO)XIY3)Sx+g11&Z_ucRvaaP#SEK8UQCyZX#azPu`fk#?X& z9TdI8t$25=q0`p^U zr*lfV<-aJ{X8N(12J=3Q1kqk>3i~*t2t735*zt-&O0U@y+DvfHMVCu~6ZkH{oc1HM z00z=9dJo+~>wIgntbFg-Xo*XiAfsae0zxz3c6)p?z_$|~qNN`xQ!2hHZ-Sq$8v-k# zmX@$w^dJZrI(~z4g+)olvdP+h(}6(?`j1kAzMIKhM3$F2%^CkfzQ zB_0a9G?GK09E}CS`^dw|u(QM2)$U*ky~GJAfygCRTM%K*jpB!zNXlN1%tB?4x)QV| z?z!T3-}lZAJkcmQC%LkFkM8Ej)QWMNJBjIeo0*sOsh0m3ayQ_?DonNFmZI;PT>%e= zmkisBBs9G%oSr;dhaPQ}AP2dET@V=X_|s#q_twY@zce%TNVrQ>?aIwkQe?^*j7T`+ z!~$bc#npny;G#nSG*8Z%G^u+&e+oI89sMCV0M68(|3*S;o=}5AyNtPJoe?U1C8#}! z`q^aP`8&=@`pAmCLwurAoHjzD{miUG^iSQ7#^5$R$v>Jc zT25#aSeF*Fx0fAMT%9ToX7_Bw<6b4%=n=4&QZ3IRIb~f(BlOsyK|4E{&E1dZyY;EM z7yJh85A3*`B71wl4%M>_>+QjZg?PWUvI*7)fZL0IER#Jj*@t6T`b#j}ysH!A zHLpz5SZ8uqd{6`IlToX#_qnDu8>Hu`2RB}s+rRDV8j50=)4ez~rkJt4!`He!5x^6` z3po93VjAKZI%d)cn9+m${}}tGAWPS5+p4r}+nJTNZQHi(O53(=JG0WZZQI7p-Q6eR z+>X;bI@WslpVq?{bN$~Oa}HQM3$uNK1O<%^CIrQnc|k>r3nLyUe&B9fu#Rb<9&A#5 zoc(hHPHEo~`_~$X@7vDiKfBldHxy+tSw2HUdm{&jfA3M0*W|zTUtEOL>QpF1h=6om zz@Qxbswk+W-_9eNP{N@t{k=p%nw+A9wWf{b=T)?xyq|zkk7bT~s!uFNBrzp9x1W9{qfQz3?v)wBeUDh4@l(NG;ZIJH%r& z4iHWkw=_lR3x-Hqd75^x7NAfcwan+c)W24BVbD4{;*a{SNK9QbcK9lsxYt~jST_*M z7lo~`Bk7<9XRSD`=mP4M7bZiAwVGad9p1PTk_sLL6)j`;6cK~Yrpk)SlLv|}kLP6_ zip*Ly5u8rnI~X%o3mETrxuB=uRALuue2*}gZ=m}s9XvGpoS^6hkEq9-G}Bd-1KKSP zGDX3*gm3(kD#@CdJcF;8-hFWMUD4%w@X$uq4z>?CD)^yU^bBT2CIqLvv;vx`=(5mb)>AlAzAv5?_15*ZwoH=SI) zT^N{i#uZSD|EgAm61QP?PK{lsPa)R9qv@fqrj=}hDyUi{i8@|UADw?Dv?voQY@UK` z|IU?8>NI7Yr`gdLz$LGZy>LTDhUUpF(}UW>z`^UWeL~`Ad8&*PHST!fg$+SxWqN^VVM31HAp; zXyx2;E_iYF#S~U922r%@w!PxNplb(em*vdkvk_HuhJ|3Hy@Yq_QNrq-;k_!^)R%SGl3sjDhSuK zciet8zicKD!T_|s)11TY&lAnUbj$`=QPHi;1nV7Uy$yUdp`5!?@lgSsxpu>A{2(u8 z9z=`4MM2Mdu-tUgf=EKgK^a>ih@F62&^B!#k@}(OkbU^JFTtrZ_hBYy1EhP_9;ujk zG4mO^Xsr$q&7*{CHn9_&OOFV|=a5N1?nX2(Gsd@hoL4pFj*gD>{UK;EWlvb9Zwdh~ zH^Luzg$9s!aiK{+NmslNra<-y7<){AQAdT;M)VQ;`IX}tP~)|P_>ycqTby!on(>4M#4 z)cX;#KL4Q?U*@zu>ibK_@wc{e|BX`iFRIZ0DdxzO|K6N`qq)9CYc*6;N-}SPkQ%1a zyPQEZC~)$)6sr4NDV>o9>@miA4r6EW-9G@h^Ur@}OQ2s_WAgU{?Mc!*TxB{;uD7~) zf4+VKc1sA}sSb(*Hv_KsnESN1pyv3!A#+~eOb-zT-D)IKG>>fyMdAp2Q$yqQ$dyYu z(}=vx+ViT(<)bHfkF#nho=kea@eg`m`SLP+a`7z1&`_$F8#8Nc=r)DZY!UyR*Ur9g zZKy3*?t(0N|GCc@*eq6_=dF@ zVWfD9hUPeqClDc9@5Zax3#(bfiwKZ?-!nGt^E8;Ljx3VM)o;jaY@ ze>pO11|l6G4?n#E0aB<2_;MhcrzSVDht@O6GC*`XDiyz)!w^Dv@dGSj z-z&jO-x3FrSMdPurwo=n67@4a)g$wCk8kx39u-4DG&^V>1rkN@dk6>4lZCWW;B0kb zIJSy{*wl(S89E%Y5FIp+6SBGe5t9nL+QYI+$3xvg7^}~=@%%a$Qq?TRt2`}~3bG52 z^|f$CDEnYc>1f)N5<`JtIckMPBW{!M`O1gtJxMjP3=F2?z=O%awnvdqnUNoz>6_pYYl%7jRANPr?=i%rNbopz=#kirA3l>I zXv!eA7mDub@;I!0nqT3%qCjt4uy0gCSAEiq8)D$@4_^x?@{v} z2Dz()vY3Zrm?!bpo@q70#8u?0 z>7pI`EZsHB{XWSEg?|5c!%bP5EN(xO;ojHoDm}ScAw&OD^`Tb+c<~KkKB!jQ^dgz`t z0PZd!@RR#B%;ne~9{`iVV@899Op0$C0Z=*A$*}DD=Wh z`;QP$RBk-_gMM0Lq`{C?&H15TJ8Hg7N9|FE>Fs%gOk?;mFwKo&B@0^7Yq1`q!>hZ# zl<=WfBB*sq6HTGy`b+?0i=z+S_9GZ(bO_m;9Am_nFL}?J1OgaD)z6U=TzVitR&{=ugEA14mB$^23mQ-QZ9MaC*o(dO|%4$mOaEwNcPz^J{?Kvo+_` zJLJ#m0}P(|d0{q6ww7fr0gQc}Un_c0h$f~@V9r%lRrFBI3+$31agy%4Z$Ss(8%~a8 zKz$#FG@<>g6AI;U0xDX&?2F}AK4j?Jp+ptR@*JVDEsnNWIUmSQK&zqM>LT?@Hfl z)}Ooc2#@0iA^SP|C;#^aGKlw}u4N9Xv(Nm`AnzVva4?H7y_omHW2`(!(36R`+zHsv zf5cQK!l7mWe|KHRf9v2x^`9q;|McJfH(RDg)ld(_A>^-0nCh4%VX{M7B3A)c$K@7K z{AV&GC?Lc&I73P3Ktt+EtCiWRx^{q!BB?q5A{BQXvv?fxTu`fAsTwheLevH`_vVw0 zPr{GYu2d}vO0$C$qL1h0RJXgRtqu!e?;V~gE#Mm9FNmEBJyBN?Gy)u$olHGWKbJuG zp?0AT(uk*BNwllJ{D|96IBvXMf4zonfyifCobb3X8RlJuXGgGX@V)wHEDcVY-8+2G zTzHx7TDUBvn*mzo9SMBT)JPq@>|*|Bb2Mz$_JDcr3CC=M?CRR7C4pxU%s(UCCIYNe zgEn-RHsQ}O8k_@gn!4HH1YMMP`enk(BatORsSAyLAMLbIj95fkLq(7j|9bUhTuo77?NrWOuc#V-hs2r%nL$(tZ-!-JSgF+4OC>*^XRjGN7i#BRdGuV#Yw zdJdR;+!5DCWW!NY=@q);6rK4MD)RVdPlQ^cz};s!p*>!01uX5lq86?fl-L?*uOY-| zMi1HF?lq${C0{NpY3Zvl-3Ic|urgqcj~YFX_X|6sW{ zZmek3>MjxzV&>-0oJ$*@9nlADqnjzsD#)^Sl1^<~G;2PaM8bW{kS+%%z3PAWggpOU zsgAe9dY|?LB)|GbK_A@@`^AG0c~A2+J$AgaVcsKq;;qO4pbm@7M47H4QfHjxekmjDV{hbnvNNzER*Kbi88ZB!b%%3I-JT zWTJ0dzTOSAy!Osf7XlgySD2~r=dJ+C779HM7>F2_l#SbWV50hFRhHP*1G~-=qveD& zjYd$S_a94w@3Oto*9NOwg=a}-=;C^^jU*2dtqnhULUqq(@!sK~#Gc8k!dvinOrF`W zMHZpe`XLd#eNl!zUN?>bC@Yt*3~btz;qL%> z3w&Nso6n_ri^n@iYc{!zA$W&xi9K^UR76wD=<@es)&{j%1R^>*oU%dhV0sZ6}2> zX8fjNt__$tgk($Ha8Kwypl<+_j++2U6kL=IcC-qKt1P==P28E;@5oxcw4F*xN-G}9 z(?=VXRR1-us8mNdf5mrdl88laurZK`KZ$lBSjGt5!(LtlBR5C3ni}urpM_xr9A`pu$r_#@#_PUQQMle5Yc?J}Mt`Un7<)#?{xl(p6A~LO2XTaACGA`7sXSF->$0@@I88b^l2! z`$S^T9<@tAV27+MQ=0%s2hA!*+#IT?&hV^NTu3s}JNR$JnyT^41?kf{^CO=)+%dBG z^#r>>zI-^Q!!b(uFFYW?Hf}AVC5ex;B8-lPWx!h@7Ce#c4U#8vb&}$=GpnAqscUt< z$NS$#=}jYnMthCzUiWK^iH(Y{T2C@%WkQ)E-K&8wwj8_1KeqeKErm(RaGy^fLh3#x z?!bC0l4mEi8dgQ}dH3r2p#$=I*#Z!gx7&fffC*k}BfFq8^nlxrDObjig<&H*?{xxf zMzrB=dh;t9*n)#Dzq2+PTr|B9(%Gv(F8=`3ax7!qHy5+N zSN8A@EwBY3RQfJ%V% zu3+UQ+l9j}P17T3X*+v@x^b~xIdWj;X^L=QkWb|8A2uc!YDF0=Z|z??X|@G&NNv{( zh{6XoBIW3*zi4f*Z0fDn-$cbY9Gh)#Prwyt58C<_%5X@8m1T6qYb04!$IPwt zy}5qAW^{fOcGevV#DXElb7smkq?Cep|#<)7FGno*naD8rKoyHQ3qb?yn~ zKSe79$gq-Lh!NT3Jh)Y0WC~e0J`h*rj_WvpH)r*k2d5G7-#6V(Qu#`9hc|^2(@tnE zz}QdHl=*Nchr8SIAYJC+Y(fHYW9Fwuo4~dntM>giyJnGvsb##a1;@cJF&kpSEhf@; z!<8ah<4`YcIdBJi^y^Gbj)iP<&1qEx=W7VS8|^#TV^H?+<~C?FQOP)$ea$!xyJb&5 zIwhr9D@4DPU+8&(n^EHzMw?_?*M>ddLVErgc9laJN=Td#i!dq*ZWKV8xRt0Fi_ion zL-EJoG=nfLhe@CzTsX@Q+&7MtE!+u}ZHYN6!tzL)3jc*hrEYQ$?2ZgPWxu>4-d=%` z9&#=qO^sDRF-S*R@T$gwRn0nUKj5Jv&ZIW?9I!n_WEfRsTHF8=nSTY=exxfRV-K`- z9@oelyd_-CnLQ_R_K~j(q*6KDIUn)@i5r~@u-7TlYJ6_d1R$Z5p#7J)eC4|_mpE}636)-?!Z}9e@A*PL zU{daY#Plv%oCDBmvTdBHGe-_?nm$8&_VG}R{|WS@7qYl*{Kb(3PK`#+iMcPnNT&}v z=kc%$`)yA@gK4`gvF9i;mSez&E9Q|q*zW@)yzQxHj!*ubuaLesx!o7E#zL9*e@J1< zgnyTTe(yd|F#c};@i(#5-+|QnX4XcA{|b6x_@_J|QbEe*JL1I)v%MB^wz{FgGhvrs zB9s4&--C}&Gfz1zVOBu4AZ%`MlLThO+K5Am?Fawv?`zcKQe?1}yL>or{K!5Fr6(UHO7)ujsN342+_pjxbckDDC=Q z?AoIdWhC?x;bqsxu16^XgZu+o&KFd?bLryF+xm(9iam(jXhL z=_&Myvy$jDHGE^D$+p-}7Fk`@w!FMS-p=a%L0`&8{a`)sp8C%vIQ3Bb9knhf!X7S( z3w80hpjyP(wTUQOLclTLif+0Z^=<{u{3JMA50=H6!5Y_zDtgX8IJbhHfiVG512UQz zS}iDqea~W2O6Z|UU}#VncG;u4DRt$=BJl*HCh9jfVJlk5vPUIoZ@Y|J^OH|io+slh z7v)vEytXg9x#6+$faSw84tX4cHWK;Kmp~UmBM!s#bpjG1y21N~wEPy#;9Y%Wm4QEh z7?8yk!WhtVdH!I?O;4Zsqx;A~&rwlw!jp4l$}oghhD)fy7^VBkE_plHuOJB2QTzZ1 z@72$!2ALfvxadPAh2+5kK80YD)&XTr%sHO7ZM80@L{&^|Dztaj3c#IB!7Jg$v@Rvf z&?2HdL{+(Wk4&BxKixv54RFBlfiOg;1^{zZU^T>%`S(-^cAnS%k1AjskYycgm0W644#bx z8aUL~7xd+RAx-IlKT##fqYZjdcP;F4K#q|wlWC}m;a3hRK_WxKqRoQVktgCRx@PWA zL8+9rzx$x7i?;;|kCjuNcmx`$fiDpBiAr6%YBmD&TuZo|6_(+iBlY`&6;PZrn^mg) zCVq6yH4f5WTRYg4-Wge}Dk;||4VJnbwW=y;u3rJsq%tFerrA)!X#vXU)J1~^+VU3e z$~*TEe=k5Y<`D99A5G|u#0^mMtfoj8cO}qmSs?!*(11Y62neOriD)RQ&4X zLYwifbM&_tBL{)K5VTRs*~$cLyG>y6x36>dF%;@qf_mua3B7se>uN0e#wn+cLdWMG z`xdNPQrSyo4h@AoPeH!D^|AC?O0N?&&T30Qw3VUV${-PUtsP`DHD_II&=6FsclknX z8S`ST-X1v4tg_QJW3jeB>6QZ1F&ZWm3x{ix*AlUQ#)Co1$sOK|ltY>c)ZB)}y!K7T z;e+K?LN4dd;v1i1{>Q4_(i?ZrUmJ0!7yRt6VQ6pv>qVs)b5?Drn7*B@kZ$WKz-#owfXF~Jvlxvq#(a_Rc)y>QyQ zE3`b^7?;B++J>F?K*3KN)$mXQD4y&o6GX;%&fZ~t`t%GBe?{gOkRxe4E#}EFqOtjP zWWTyFbVb@|P!Q!(Y)-$#;)M*~#33r*sF_!&!(ndePX$H~e~4D`Emq+50(*nkNATP( zB1|peB)oy&{$5aTY`)xIuV`kKnyymec7T*tZGVK@Z&G@zFv$?Dj=;p318xg%^z#d7 zQrf!Q|8bSkn2O?7e{UQL!T;_mqxsLX5^007gRI&zILN zow3TZL4b-&L4){3OvEjn430f}N%F?`tQMC;lJ*SvE;q=r)`&o%<(cYn$z~-y*f~BGVUfJG;$cgUd!a8?LGi6SUGkIC z6yHA*N?(G)jGqEh5?s!4w;>oP<>U$UcQ7FUm z14j$6M)-#k=lIV}`9{7Zmh9gk7N1tl_16SaUTJ*euw(XM7iM%7O%j%eLj|6EFC_85 zMN5@JxAtleDQiY1Wawc?Q0mHr^h+)flzizy9#Tr+Iif(!iT}B-LV=p=-uPZuwg2rE zLiV2v=YOSS{YxF0;3YFBi!_+c(Ug=(0R^w)hFgQ0qrkT>ghWyj!b?xTo2})-5T+rq zYCUKZ7z!}c54#;qpVb6NS^=;Yx3>A1vE^{tDs%Nu!|Opz_&o$P1O!8(jrN29Mv}ba zZbObDBC_F@K0@&58^QjD5cHtS3bSQt>9sv%r^2%2@OAx|Eew$6I-`ZA)(P7?9}VOU zJ6F2ur1Fe7=EsG!vIM340!!q_)Tv#67^5T@U~w65R%d_{leg@g17J|*K#SOPZN!@EDU1XCVJ)7%+@J&1$gv=*fS?1SU`Nai!Wg}B4DyZmAjKkD&@WWOV@NP| zudO7}L!pkMrc5uf(r)G@l^Ij%kqxZ1C=+`0AQ$Sj4z<2u0M&BgMtgPdV1p_JW3Qt@ z1XMPunG*}v829_w-^Qxe0Y_NwYU*H|3;-2ar7wXrEY$bz6`x<}>71utU|%hI?-ZE( z7iY(bR6h9ZrAF*yCkgi05-#w9@cHO{)M?NJKu=4bfaiU5{K49mu#o^-zU^S~PabD8 zSLCaa(S@@^rV@oRaNKVn50dy;Mr%23#OUuZ}TzR=TGoX`-N;^m&c0P6DI$Swid2ESoeq6nT|5)6cq8ILsiGel%m-LPZ zszm{Hn<^t&G^Q9*%qpcTf}wLtDYYy5Mrt@kmqw@DMVBV0Ub)DRLTEtTt?(aNkWngZA*I8v6VCpI&2 zPfS|pMOF#jm2pR+MME4fREFjYa*c!Igd&|$%7epquSGY9Px6DBOk{frE^G&f*IrW= zwdh@}5+(Drzu6puQxhw{%Glo?3V(3avsr}@CcH_s5@{$qr!LCMW6n`=C9m70uM}jW zFA6J?E+^7yb^))p#ub`WwH#ZY8Gw@L`HI1(yVX@1C10}{req({)#DU$9Y=U>PX7t+x5 zIX~H|HnP9Sz(AHSRFODb2XSEpD^!%8z&chI5!yM4KxhF>%dEZkwyHLYGFO&fI>)(_ zXId=Ps;n?4vXQ!2>0Cmn5EaUkR;Q{6U=If;?B!>v$9l)V?QfY}gY3#OgAfISE`PMG z?JEt+Y>1VsZ~x|+C>dL)Yy>G7Z;qO>oUPA5Uv{bYiHeF+Uk6dYu+P^5rh3%Dl#%8I%iM3i2TREys0CK`PcO16<{$vaz6ZpgqL)rJDOh^W&3LbQ$0!8W|Xw)>kAsX9;Ye2D7RFti;Weq>nu(EbzSPj^m=#!)PriW z?r2snkqQMvdA=I1)1jC8_c~*vW1GL@V^U^G;4HE&U zZD`na35rE}y|weAvq;x~nvLTlM}|}RvJIY&{hyRZ9UgP6^k6Fx_)T zP($Y1Bg z=~Srh8EAS88hG|DJu~ar#eN&y5^E^4wFH3?zNl?5q6&3O z;kr}*0%R3;mpO(`rVkctAn!q{IE_@Hs2yM?^R|%q4e_^!mRzudX~9)f=Dk}J>>MjE zF83a5bnr3c1zkrFsn{bD4Fs$Hetzudb7%Z^2^=uZPX~mp-e&NaD>$uSpLg7hn41l& z**}5zG$k;qDsiA7XRM@5zM=$mju0wBNmBUEL*$Hf(nuZk9!ysx1WUGy3N1;)2O0LU znmsQlBh_?83@z3W)cuu)s$*DVc|uGmj0|oNP8+B(q9S1V3pN?~(;#NoSbXcgC4dk2 zp6T0e!R*_=7?VE35}z>__q5nqeiz5y!Jhj4j$80x4S5=QB&_@N30eqt1;S0vWf%XL zkB;y;bww}RL-RT0Rr2Rm*w<;%8pQho_2=fw1o6W7In(hG-dk-T)ke=9xeukTaPmVy zaHVioU$}6VFNi2H2|Y@YeV;d0{1*f}E8IvgStXTKQDfSS$qZCgHdlkxJYqMgBc`YL z#0NU?Gx@>=;*#8{OB~qs)(`0ds|I^NrS+#x@axtyq=~FPigVNndA^CkR}lO$R9qc( ziJB;yE}c1}HX7Lvp1*iq7(>F1mEZTj2*TeXES~?|1N_^t@Lx=6GaG9Gd$aFw(C>$T zjSr(ZB>H)g0;kRiS0c{Hjw&8n7YGDF_1G*U-X`&E!<#{bM$aRrd?P-gPp{{9fO?8rMQXk@# zt!Cr8NRwF}QB8%jAR27$x{ou0XKZ8{JW&zOK`!na4qT&y$XKNwbW9t?tnw{)8`5*U znUQVaSx(DqXIon|qgS@OF_7d9CZYGmZ4@b`W0~N-L<1u-A;o36>=c@xXC`?$v^}ck zMYIEwRpf{Cq@ppS(gCW&+F~YXFT^l$2dIA?t0k$&%jx%_X?Er=OhR~ zBt_MI8@!)WF1ajNfJ{)ZpwB9;pg`?8EupUYdrJVdcO1wS$R@))rE%Kkdm%`cXJOLs zTXg;MD;w&Qoo>=h=37DuCa_KH#1-Fy$;>)-Xs39i-nC-cz1UR`>|x!{T00CIrdO^+ z5krFnt=#b~!+H+$T|g6l(`4gXx+1Ba3EG_uruL2@qf4+X@#$ia)HrzM=Gku=`l#ZH zkT22{fB_J(Y=iea?MO%jlTosHjv^K4wE=O&h|?P6acDU+(&D$Fey#Kr#RWTy9HN| zjV?P^f_8RGyS4D^vC95nn5FW}dRNx=;5K(G)*i7OE%#4o72Jn9MyDgODT{cPR8s5& z6}CTiY+cbRk!zM|UX ztjKZjI^Ykq!RmZguYMgowr)&)E4VEh@$cmTeXyrk)o^=cD(jy>j{QPgmP1`)h|Rta z!C`y(K;`K_+9f+5sTd6bDt(p_X?=ioX5(}0=;h*a`FTS*$`gBL&ilXqs$f>6rDKzC za1isi2%7T0eKGtC9;iTSYM3B@{f^n^Zvlp&j#_A1o<#;gIyPTQs`^zx9UoN12UnJ! zybsU}%|g|xXC%FmQLR=iT^Tm@qP{WMaL<>!T$S!I-zs&MF<0tvmcfpjekHQe=U`2P zFNT;l|L)zob>?~W{;hZW{@{2&EQ9}`4A}1{@We~z#&ztCg0;Ic2FE?@(f;%dFtN7N z$Kf9Bi@v$uTW@Cq&9>c*e@+PS;(Rg7dY6RZrqoLr%68bjd-ee7$c?=61dFy;Y{yB~#V66XDWDpST&8wHCqyIBX61&!GYo zbq)&%lK`~52(R^`6Vvjs3O_y*5uO!4SvdAq|6aBgf_znF6N}Ib9o#qZ-ksQvh0}{h(xgl#O;D;FX=?@s)LBn z;A&=R#s;({P+!`TSDc?oQ?B6q%@oyy=K2zs5xWGjL_t z;j<<2>>t6iD?_i{FClnqg8sWlqMw+K)u;n;N#eOY;?K?%!e`F~kI_5iSJDmcd8{4v zqb!K{71G&Uk!BY2K_S4)jSBh(-5lb?K2?}oo;Y zNk>)HC4ZT3l^M*#IKGutKGtV-2e-%SF8rTd!x-Fxh8$oe7hae2*cJ*gXVEyeDdMz6 zE4H&HVuua+c{E7l$wx=JltezxwNx19+}&OOiJ3eaRRon;$ySn`7_z&T1+E~sK!>jR ziJpwGg27>B&xCs`{0sKBZ3hrSP<|~BAqNHtP4@cCe7BX*uiXPAvG&X@y=pKj_Gs92 ziYCL90)vQY#Knm|ys?v9+drwng;~5cVmFU+Y|3_I87pTu5#}$^tVK9za!$O6?Ur*Tr0=it>JG3`Vx_4SLuD zzRWQ?NZ~@AD_dxc-v-4c&E~t3V~K8ce4fM-oh!~Z0s*x50Rlw#XN3>o#a%T~v`tk9 zjS?n^T_!4GzM#A5g~P`(Tvc+qG{$bu;j|%P5bfY86cxg1DKX6LK<_i%{a}?HO~if> zZ>?fjgErRaPfT5rzX0?lIW^H^h-^+dtB(z@G%aeSG;Ih}=d;SPz}m&D8;tSt30iTj zCl5%r7KZdX07GwrSLnuOsZU)ENm17C;zD-NKsanR9DWx+&p|fU7G`)KOAY9}Bf}b3 z>$mM%D9G}wTks>$n6IJ}4OM*{(50gsVx{6lj2?&=pUEH!gE1*6$>D#aPRirk?JJ{k zP{J0fDmTZPBqRz|Z#7+Hy_Lz^27_?pY%dwcLdEULkc&qg`{kS2IL85)D7U zZH*`+7QnDNqle*uo_bzMq>_WEmGrLe0JW?YEa!?h%AB|8i`ICKg6W&-nr@W3JmG-A zf-7CertjN4_e7y-g|8~Y5HTkwG{o$p&QQ$8A?-n`-(V-$Xt#|mEBQmQR>T#YLoNQI z)&YTdAFO(9u$#m-)~DSVpwJJ-oX&{`g*DX8!m_ZbjIP5Q&EBch3gE7Oy7sHFco{C% z3i6na$2ZXLM}m<757y;5{2ExOIo_3Nv1wx}uNDw8YZO*SH*rgFg*`&KEw0>#j3X@k z0U*!|AN?!2LM$@S4MLbIuHx=ApZP;hvJc{Ui9N>*Xe7}AT=2JTHKW2MQtHi|B+taS z?*}rH*fcRvQihOna=_0=Wp`=SLoT6&agX5gQ|DzXLZv7D8QQcmY5kcd^Sb90(1WJyp0br-?Z9z-5Q7(noloZ{|WAnqsx*_(j_ ztdRrvb>%~QNH8)nYuQC(dt!3{Mh(>|)-5rmTzcWBoq!;{0U1tX!BXz%>BLaha3&K< z?!~I=7xfv&Tz!~>nu|H7XsL;l=4L3FN6yX7fWgNo!6jXTI zIV{!^aj#x~Y zD^>Zb%u(tx#gV?Q>=QnBj_j(wcJpq7ay)Txe82hyW5(jl_gM0Y^_UtXh9^zZT3!aw zh9AicIW{LAsU7V}nwKj=p}P8bxsyq5-P}pI_ZO}Pq)@US z7B~LbB2bcrY`KD|#jA>Sj=}UWhbql$c!9Cyr-*~U6#2K0fO{dqd6?dFD?GoE1ED7c z0EkyuV6_%}5>yn9c_otLfl^jF2QGL=&t9o(RKfL<)D6R4HsSpaclA!M>XR#HiJJNP z`B(eMQS+zy@Ox_)g#LE`=x-J<|A<7e`CpL;k*eUH-=pQP-y*X7~KYS9AYTU3}fS#{FV|nRubi0R`3i{I~q6%wIAx9>9{Oyb_)1i{@z*Z=lJ=}*M1rsEs?~{?KfI1m$rKz)=({W z%aI&z4-4nbOxe}UHyx>TtRr?VKG-uJF5!q`c`GfUH~=^GtHwhB1+v&Y8IID-Ay{X6NCktEtQ&^OKJm1 zWOdE4(<8Lfq}v9>0t2ukfz$Joq{blC^E2DbNhQ_WbbF8LWg514DdgW$EE<&-CW2Pb z=iM0@%t2k$gK!#pwbYw2I%=E*#)O0wo0%N=D3Iixm@wd1P0bw?m(&q9F49`XtfFIy zzRpW<8Zm*y%cR#E+#!d|0~VH179#5S#U-Zy2#q|*5w@r`Biyv;t*RSl;xH2wv{}oj zhOfy99Cd<&_2Nw#)0&#Q2vJA9%>T3|2P17`+L$EKer-pRP9gCsT8+7`@F9ifW|*3vA9nM?=gPZS zNs#Ow6=UXZ{W_^MW)pL$8!#Ikx7SW+&e>4d%&?H3G&ZazORFiG&G3Ub1ru- z;*w#!pl|$9T$GJRWl4B~yHb^gq@TQ!KL|7`{miTkHIEtcXi%E2kD1OAlqT885L#2b zAey3ANj_>wHo2`&y@q(5>Af=YjOR@u8;fp1m86~klh~4y*Mgwzv{94jEHz_>U*0_O zjGjf zqEUKI**)JmSsuMY5lW#n1Gl2!75kS+Ft=trz4m|wz4j0$K+JVfMDsOg{xt_WonyVo zA5zyxnxq@h_gE2=Sbq<*8Uq~Y!y8>tXy@T)#Lc3-*c%g0(!F2Ll*C>HcEiC`D5T|l zgIm`wWy6TzH2I*N0G|rQgn)^MINVGL7m$_Vi6w=!u!>r8D>w#vtR583$-)!!v`ob2 z8lyCoGHRwq(}VL=gp2t?b$)0LPq@#;0l!C{Sw0DC#!G1yizXrhD$%gT+heB*ljQr_ z3!E?Isg3jmXY?^hXX0*ju;OocIs_^*I}pLfJ)?W`qnalf$x$vviIn5u%bViviLF)T znsSC&qg-C-DE9WAfsEqi16zwt(dRSbW(@g`Qb;uThg$$P;)Y{|Xzn&Sq|4!q_#2_^ zX`90^+mRXm5f-i2H5E+2@z}Nj3G}uidWRr%TS0(kC7wtV?ViIbnCQriB~I;;3dlVaLlOPkbN$oAmBhf- zOUZS20)3uOioG(jz~&GuVZV*M1!w;etvgDqX|>sbzaRY!imwH^a^(b@r^^H3C9>U$ z85sPb?FOgtn7^LQ5|a1u)8+r_p{H{o_Z(4@`3Q8-EOhu90X>m2SsBbUH1ha~9%3e3nARmwk3p2jhUFOdMn&`3jUAX#N5i9#CviJvi& zfv1NsN8k<^J=;4pyf>7|DiJSkR$W~9+#Wwz*C&?LP=wwY{yFnOHgF^{OmL?1+A)ohg82I)EiK$mZq(o@7(l&pHq*CmNvo{}J|%L6Y^`ws)6p+qR7^+eTMq z*|xe%S+;H4)x|E`wr#umt-a5_=e_qvoae3&87m@V<%f)aM$S3rn7=_G;;04x-JW;; zM}J)gC_^!S2K%TZwKDKMe~&uRP`Y-@KWA3(0(&%i<_O%^Ev^?eM7fj3MFWj@oz4v^ z+R!xcF9?0Lb5e@(Kvf&aUDog^D;e1f%6!a#=AgRwqp&_96TSpk(=X=^Ye+}Nuqiw- zGR?EqILslr1Ugfoi?xCsbY2gA;hjoKFPkAk881SPX~7Z)*s_@)(MTxY*237=ZU7;(?Oz#% zZp`SD$7BjKmI`YV0t&j)%WLF21qEU?CXU)=yRTZ1r2$NlG+socXPH%ygZ;XKL3bH* zCb~pYakh4bkv0sUyW7N!*C_NPp!U{(k0a(w@P^VYT%&ZLw? z%F;uyY(d6WQUm)WE<$07agyn(y*xuKqP-M_j?5@i=BxHe&IU_+{BYQ| zJS-TQl1xZwh0IJ4grE(DM3#lFEdpO=twbJErqbBPuS2!&FL$w2FXnY%eEvz3;7}#) zYTt|_1JR3|-D4sp+Uk&ar(oldPA~p}1C=wCztWRUmL2|7u>JR6l{B3B*5CUtJ2x`M zKULC9|FaOQVhS+%H|PETrr4;hDWEB%>xU#G+Cov6{=yQj6{hJW4rn2T#hCvJ@Q{v* zDVY<+Nu9JbD~@{iHz2JEN1}{1+pzsYH6^D4%f}DnwEZe=iJ>r?YMty(1I;M z=mV^a>h(y0gGAC|N91A@Y?wG0^b`ir0Jm3PS6TbSBv!@c)q-tXSEI=oCT3d1!>sWF zur_D%h8^dq9W+;IfT?zHm*E(eB}E6}NQ`|${lU<#YiewLUf`lSbnDD?&CAH9mhHU? zQ3hf9%nWb=d2Gg7MpY`KaNY?=^1LULQdt>1c6ggzex=7lGW%RW(lJfL@X z9kma0X@Gz|$hbl=ABr~?Q6u&7(q`l=f99!hc0}qCG^E@%p@>b1ruiEdHoM#d2!X*h zGsNr@9|2H5sGer^D~MI{i8$M@8$xEtI!Esyf5f42r!$3os4|7&vvnFmLF}s$D+Z~d ze8IEBklX3EjxNbyKU)Q=%W*ibuhT{Reba{X?7H&U+hXUMpqG}A`9iJf(Gmgu?=D1g zb%IZ#Ov(8k1gZiWHD?s42pZ{Tjn_r)q;8>lp$y-S6$x_>(0HSfJ%nx$dVIxVrcW6} zb4HkdDd39kUq-RudRu)v4tPrSuCQ)Z_-p?Mjxf}vQ)3#f5H3uR81v@T07+0X=V+|! zIRee_0iC&zVg1n`=Q1~EkQ3gp7LjFt4Qxl0`p*(BIv)fE#h|mZ{Mr$2+dD-AwnYGg(vRQ+T> zy6xzGy12`pBNFQNgQ^YXfM|mScEBP)V2F>GQ3HMi`v=n#mLB(rl6WK*%;X0Q!Dcg4 z9{?}TopQdfIp|+%;n~P!U<32qMaQq0;qAPV zPtH@j7?fC;FbJ3L9i2ClQdk%we!}8Vu4&X6L%AJ`rzP!K^fJ38Wq#i{@IP2{?Ydy0 zZ#-DD8}?mtiEL@AI^{D^Fs&aqkB6O;)elw)6s^IWwaEd5zPefvW&n-b-Xt1n(Z`a} z)^g^>8Ji9{d?ISrdPhGgYYxTPMf03BIpB?TIj4;svjVKI)Hn z)?Ef@ShFCvR*kV|ggBq5G?W6v^<6U06NQ25oiNSnLi-x6^N(H4Jp7iPOE_k{Z71l= z8*vNRB|j4+{;~me^HH zpijl|7b%NassHvuvRofRz>N~4T~EXru=sTgw`sd>X^H`7F4a^|8OE^ybj2#@&m|LE zA=Th9D;wB{m^B~nus=AtUwEO+_8L(g33MFE$gM=FAwLp!QsVgyE)Gm27mH{%mP(e% ziWa5XM+7j%3W#39&Cg-VhJKc=TSs;>Z z+iY73+f5sa^s;jUh>1yc)Wnn#X(S1}N(&0Qk0XCZ{PgFIzPhkmjkT*Kn2>wyYdM*J`ux0<{5Hlyyjw&JevX(A&T60&08P^Kqyt7yJKn^yG^q#WOzWIAegR+{(bGg` z%Y(=(;0x_!7AsuNz!5`wtQ-4*@|H#jy-SP;;fT$2*P!|C!4bN2-9}{3EU+sXbfPST z`BKOIi|Yon{qkY&f`%L)%~9`HYnP;aGcE92nZ_Ktv8akdQDWjR;gs?P8lCnPlH9^- z)lDkNg!)Coss*_seHM*6V24l@iQ8Cl8Fu84V!K8Bfz(C#Z&MroxiTU8<=Bj`HQo^5;V$Immqv{jVeY<<6V+5EUZ2%O6M zHd%BEb=u-$o1!w)zSY>dT`wj#)0PG0HB(0cH>-;Tt6sCUTj!&-@V zjD1Aj*!;!FZ6vco6)E^5B7DjUCZ@96gRq;!p5=Ned>D7(ic=_j!fHGKh%R)b)l#kD z*7N6y2YS7(J`6jMuj1>84sc_~aR}z9c6%Ma>h(sn#rg?0%QB&S`KiHQ<_lHsDk>@< zDs#w7TX(;&?x8-WVkXx!YmZwIHW&;(u2E%dihUn~sm}~Nf6fVL#Wzq@Bnq4LuAT3a z#btBOCCF13xjJo*p3I;27<=p4KYt6v%Myo!W{WWH&z`mp#VWO+Z|r;kcZJhenkC?h z7_>zuYsfrT#$5#;hhAvA(gLn{=_}IK4~|ZxjZXUdF|gU(-eocJ%pXF2rJ9nluNB}U z*G{^^CiF?ysGBF(xco@C$52|sJzrTo=?+s6|Fs2rztJ90=(O+u^Yel)lKzA8jr%ht0{GkR~2 z*s}g|*TDpP)4>G1>wBo&M<6sa0-_PDswFanTnS>n1O2Q`I7p-Nzy-B1RI#Wy4zIGm zfSTuQxL{xOwwSpc&!UnKh$5gWL2^F6%z39BdL75rKBdYWeTRU-D666_)i%?K1#;0i zFv9VBvty0*eo5U7i=9KH?8>vIM=;+wJYW?%d|9*Wz?xQh8@cI}IqEG5KBp*p3RhMW z8hIti9RJ8VbLE+IhXmbR@d=v3g}tD=Yi8A_bij;`#jA?1%a4jcK?F{+`p?-(%zI?K z;BZ`yQhibQddee!u1K&b{4=HYD+Z>LJK)4uYlMx2#!woiI<^p0mX@q6wopWt7G4v< zSb|7wO5Nl3?e0xdw>A+LGFo|Zs0`ssNmgN6n@76cA-rBt{w2HT?mnym&)m{kVfHYy z!HSOR4Yj{6xUp5nwoxWZ0j#Ba(5hDQ9gcw%cM0~V7MT~KuKuBJs=$`u(#x!7jB)0# zA+Khq^ed?G$fJ;un?KNmkplwjd0Oi_OIqtg0$~HU;R7G|^qc|OAKD;HX5e}! z;P=-psc5lNoJ%JMAf|W*lh{wowB9o&9H7hJ85%c`iI`rReC%k6Rx1p zFdprPFo!Jv*84Rv*`Vn@i8%RzHU0*9mxd=Y05Kkl&V*eb^1*-!YbXR((3d4U4XRhr z^P>c?L9BEvNntn3(k(vbgU81b8~0K@GwwcPn309@8moCr#n3Ih+O8+TMbVDqt}l@y z=`pl~g#u|zzh?|ngqj-#mp6;{{BOEl$pAn7@2~&D@_!7%{D*Yr|7`;Cf5BFgl*bfA zSkN;A|8P);BVGTVZbebL8YBQl#fXW{gPR)EAj}I}+c8<~3OzGbvopSb`#C7YoULIL zS?@S=cbb`I`TBTs3u}ls##6|0)hqIA;G1kvKvEs*Msj2o>+8EijIdT5C7w&Z^^&p_&M>`ndQ~j$KuIx&|cKx!{{rswP{%2d=KM)JQJ2?S7|Et9LPdEHk@@QCo*{<#X7k^s| z#zSwx^>fO`p504_U#r1+vB?}^tV+x< z9bYIr+gUsTDlMDLiC{}VR-ESo!*1DDY}@v)H>6h!CuFppCVlNWEhXY%a)i3wkGk65 zkA(j6Jn8u!HqlLiEsIM)huo+U*bUBo_aP2K+D+kj4}bTQ=nD~fW)>uki2-g8)yO>6 z1n2G;&%U~P`sf`B;q}^Yb8+~P24Q&6hDO|GCk+)5AMX2V6KV!F+xRhnR$_ac$D!vsS8rHJs+#{85K z=nDV4cr66*FclZ-Vmy1V;s0a`wFkeMK<)~*w|Z+Onk?|VYR0R&T*^CdoE~i$@vTcl3Gg-U_BMUhI`<3(asYy*vZa}IN z2}nl?n9(J3Im$L24pTwN5q}2GM0b>%hPwW&X0BU_OiDVy8Lqa5T`j%EY8I zD*RAJcEC$3-w<>ch<7hJJAw|4Gq;fQ>iD{8rb4<%bQW{GvBY5fmR$)Gm#ryGdkRP= zuKa{~k!NjYaP+a01#%%m0S}p@*|1c*7Vf-}s0M8|n>qG;xfA1VStgGuFD0aTxN&tE zYhi1=<0Jt_CJiS+|B%WenCINZt+?WFxho7`5?g8$%w_#ETKk|8(b3q@EX-oY92s=h z#vKpc3Y#HS!a2j3!ox@iZ1q$LoX=4C%Zr`A%`X^O6Z}RS_#Ka z(NUw)c*&`Ky~^H6Q!D6EOvY5*N$Jc}C?XmwYBd~=)vWZA&Nv##R}HgumPWm(kdcM5 z4hbyXC0&iV&oz;MzSGfxY^vch8y>0RSMwbrthRvrk-TAuWCZNrN69h%YUb5Flikzi z;yj;^i=61yK6B%)=iwfxA3cOEyq6r?Hg(3COGUYeF4vf_U@FitF0TrLuC=X8;;u5; zU_hepGCf%{5iCNdF^FlkHJ=K~5)@(``CUGveIJ??#zz=K&ynNc5JocQI9-9CU$Ce) zI()!}Fa6{zM9I*Z(|5Oz(kH_@)k2S94F}fR0N*RM8Yi0ro8Xd7k^a+JqtbF%OF1rN zib9Sfy^6F_8JCE*PXS!HZSjZ;4VMhGm_z8@$^TqIrj{pgdeyVJ> zS;=Gt&iG3N4T+1vMxm)zeW0ij4M@MW5yRmrM{pLc>f_-VH$u$ni(D_i(MXx|h0)Nn z8;RPGa!2tVv>jlpB7i2IS%roVi^o<%<;6s$?~Iq|r&uUs3;v8F9k)RcRb+s+^%qD36=v@uB1k1MkWEIF*VC#6)Az%ub7d@ z;+!!fh}mU{YCdjE;&thOyE;U>inTrB?!h@BVdJt@G|2!(w=Gui8%QscEwNiIo^i|a zI_AxCn|_#RY#32&Pq%DQ@IHpjdYp~oeTc_*;=Mp)rI#FV)GLr+FaA`2)rEliXn?q?6FVHPA=Sb)%&G&TED_IK- zW|k7=MM#L5*1V61iy)UL%ZON}X@GYmH*Xko3OkVs$;hfFi0kdaqIa=m&!1Cn3#`3E zNNfvwXi_u4uC3Pr44pE$I{z|*=V-30=O^({aLV;4a5}D}9xDoWC}Uzh1oNabMqDcc zM2q)sS}g@Zgw-{yx?1eb9y+fa+oh^^!mh&5T-4Whs*W^^jis1J)!UQ5aTG<_ERM@e z@G;v`PCE2bL-ED#Px(@n%Ow$jN;C1O3DE7K(z|J}zC`6E>_fu3@L>Z8lvwR~ha>DHzNF%t~t8N@l_8bqthTTWmI*E1#_&2^CCJ~|Gw zc2m9yuOqHp6`qU*4N*68I49w@%s*7|ta7RjQ{So~iD1eN26>*=xMPQr&OC9y19c0W zmmr9+t`lbRUK(raOjY?fTU|ZCH&2I;F?%JQ@#t`_>#ZR*#^}h;!sv;VW89u8;uCY9 zr3Rd#);qL|w5DB>W|n&X>V^pp$tlX(|Ffp7yOK0ut6is`>;$`j?JQ(m$nzwQm8Dx? zhENZ#zJ5!iMM6N8YTfEW4=zMNcCSaEXpFi9^CBI}#M5+cPqaY4$IF$Gqx@aRT%PbC z$ZYh3StSX$YuGbA%sDj1l)V#v?NpQ9Rr!!hlc$+iK1)Ojn&1YUqU?=QfA?_WkuI%q z&?)UA5v7o1bk-t8g>^*POMPcC#5vfFr!ZGXq_cO@nRJ^1H)vE{ZG-Z4G`1%3TIaBMLoVq5vKBL*m2wcPjW{)z>1JC~PXyhL@^xv}^RYYXtpSr@ zIYFR5md+r_nI`TuxVQi?E2MB`* zMna`ePKtn*VDp5#c!FM>Mj7G#U^Mly&Q?8Nv#_VmZow^D6TmbljledOvh%`thfwI@ zJrpyfF9ckPnP928W)DGJba3ek0iUnZ>Z#MYRceK%AD>nWuh48e+ z+zz_eUbs6+Mb$%H8a>9){A$l6i1_9mXUr+xbPK=G$5ucK=HdA%kvX8dB8=rn&^?I( z4peL~CNEl_ti?5V+)#Rwo$i>*jTUbVoZk8%tu}ZfZ;o)hAnMnk$T<7R>7R78f5Uf+ zihjfY;T|;!aQBFz`zgs+fj-&3lI=JtO2y5PX%c>=%-Nr58^O6AeK-2{9e(@!`?s~) z^a~%Uvcg=jqqV+j#AVl-TzsNkM6UCgFC$SP z*oz>fxdWZQ2Ii>-rWwtM8#;;mHdGR$4$deNi;|+hkq{TrfH7k-04svnO1#iggDkX4NZKhaNJVRlJz{6a-kWWD9RAuGc zl(ohDwXxXNPQ%_1hNV!?->qQxcJTGfc)Cvn7uTu$pNLR`KTNoC7spdr)|A9%a-Yc; zUZtZkV%mEYZ|+JWWM0wN7-cThWo|F+ou~Rs>PRT5M0_(u_pY0@*U4929FYxX+~Lz33=_*2=zvD_njPmYuzz)Ynp|vP5eVPDX_Nd@$M+A@ zPjNd}+y8*9{!au*lC|obFgkGSB6ylzm_bAwTwHkVS0U_=U!Woo;%C8Sfq`2hBf_cE z%+jO7-Mu&%aX3R$Utd^*CA2L~(MSBodG=jq!&Uai$J^DC{Wnz)yzfxxC|Oc)9@M16 zYm%hBsgb1NWz>XwVWA}+m;>x);N#)@u_(+`hW>fZTaC89bJL4o#D*34y7g+WTv`fA zuEb0`z6SWXjxK$*toS09$ay*Q(Z4{Qb&XB?ODhO-w`{#tRxf4uL!5w-d0tU!Yr8mS zO$8>aD;e*M^atglRQQ`rZKWvJh1r*GE^H?^mr*e-+LOU#GZv|efqXMlgoS3$aATgi zRgFfliCF^ECC-R&{pFcQHPhc(t7GjOC{rmaF!r~MeHN^)O++j1YBasIu^p}blu{Tt z{Y;?Phw)7!Esz&g8kY`#m95xuN7_^Gx)0T85nkoh}0Igp8@wBh8HocWiYCy&s z&~8w%CZ%Z`Z}KdK_P2R{A=jI0@GfNXCGNwtpT%LI2W_FA4JH_k7+F{DOE3H2F^qX| zEHE3blheN0lli7)A^cRc+oRO$AHRdd>0yRtJp4^T=um&`CjC-}sks5#MV}VQv<8C! z)#i*~hG+6@WUzo?$!`93nYnG^=3OP5D<5*^9p#nBZS@4Qs!!Oj2}!zIgz8^T;kGA( z)X{X{ccr;}>#_-!u~)>!z~|(CX+6|{%MOv1NRlj@eyN3a6-eChFp{<>zLSaE^nD7E z3yxPfVnqK}HKzNEyf{xUQS2s`7i^Fh^qwf=psqk)*DCK5Iu*EKXaGLUskEv0x^VYc ziOjWD0wJAK_%-CsYP643247tDH!+_-#CG1lOzRJOc=zoMjj519pUH_9Ojsd4M;*V6 zO3Pq3o5YvM;n6TvLffQE{Ds6ZGv#_(wV<5xibrw~a@T+Wsx^HfV?orXV0^c}NDqKo zzSG|zIm;Hdcd>nNqi;WvtFYX%Gcjpd^h`t%>B3~?Y;VWpY;0j_3t+Ob z2bh>TeeIWlfunzehKBwo4f20J`wttD|9MvC>*Kzp8&}i+n$0$8!Fk}TV|-qjB}luK zc-jzI&NY68#U#kf90!_<$mr^1)Z6C4_@jfAWJuSam~m}nF;s;@hbp0fV6fzqQddbO zH43YwgMQDW&Mp1Ah{MA}NpJm5c-RsqF3->1T7rGP^tVj!sXd{u7`4d_$*rxQLcb{T ztDzCkldlC}wo)8Q;1uAcm&pJ%aHyB@4lQs`hFZPQ-A}(Q9y-VCb0iBGGsD49FP-z? zpRjg7B5&3Mzw|&Mmzg6`R6@5rd?*V3-Cp?jP#nMUn2_h2(x4%|)F`lEkIXHhogu}S z8*m}NL0-Sf7y~Jf*(ifu&G#E?7{xl^*7cA*#e4LY;@#fU`*UEB(Cyn7iT3tQQJlKh znb8aX8hO8)rN6s<`%uvz3+GVCb3<0{4Xfs@B}C95?%Ke=JlY}G+Lpc)0y5x~lf%hP z_{{e1sr+LU2c?N_Ta#T~*bX6hemFcAHL6_M9~Ca<7vD)m?L%YI*{bduAB5Sk!%$E>oErOL!)I-ga<5`zLgZ5#Tvxn z{31cG#!D4CO)cVn`^o{V+h2Mm^x+HUWD5+q_J#xM&v_CvIjY$^I3*TA)3Fll~7}rb{2}{ zBFOM(JAXma?_pk4;RKhd8D+d&i-NmyGpxfKo21T5lTL__%J_WuAIYAl$@oqNk0h!2 z$F@uw&=(Jfi)W3CY(et zuOy2aWx89dGo7&9;I&5RBm(Pl_R@|G6cv=v(!DXvRY*YZ!Dmm zQbr@M7c6>)VRA^{cXgP$HBCZOj$^uK;vvN()U+I9BB&6`7bcMx%ZNL{dir{%T_kx#?O#6PVb?^K%4<{mm_ z%S9s{^Ha#k3My8S$X@^g6Q&ZRClC0e8hnJ0Xrwbw_88R(ERbqq?yoVAvuv7!=Qw{K z&`JCXuSzTll=)lCSi~zW{y^$)+T`YIZT*=3y9Pd}ZQi!9lp`xY7}U0@`NG*sV_e#G z)6CWTc7yTQO0 zNaIw4L77U_)SRM|#w9dBeX{q{stsCPB-}OaNzV2YM81wj`IiyrbE!0U?L0VW$+W|t zYb2+Pgk+DQV`7{rVJ4h|m2+3`vqOJ7sLy64^@9NBYSaVi3*JQ_2=g~#nMOifSB{ZiE=jtTae5lbBn zvXrAvVF|4nHEK)ki3wLZFMLUhG}Di#*qaETVo{w%nO3~p7bE>rsH(;~EX|^MB0Q)u zECC<<3(Mviyb&s=s!g?yzbf%1NGls~$!l5O8Z-AeGHMw|>D!_%XTNyU7Q5$4WHaBe zU{4wm#x$A?YJ<+~FWF?|Bx8lr4uM)9~-FryPh5{)bxXpDrbvZcl zEdXxW^90eAYVV!%Z>DIRn10cr5KX`DCE)?leQNg)aj!&hFpk+}UWN1|%T)IKPX#tc7F9anDTUdKEtRByKbCh$- zwCqwv(D-b8pc%xcDwa%PA=*bPJN@LJVOIU6T&Y2qSDlMn#i_B%kz$GcQqtd-!LDX@ zSS6dKp9daj3nFhDFIM%Zqw*She6j;kvd3Q)WIr!}Peo~YCIzfwXQw)9P~o!SSO9MB zH(K8BhkJEtx|gZnSVp0nF5P+N{t6eIrkPCNavcZIw-6oa7hzEDA zoLTbr=7V<#NYqMWsxvM2TQm6~Ua_*ncq>}g@=1t(6(&nfDg4LW;vTvsM*WLaNou_SETuH#|@Ljg5ag9Nj$l=~p~ytQ)p z8MRe+?6)RLJN+oTglSt={Lw@|-x{2(Qg(S*6dJjn_}wTRAQx@rX6sGt=5oG$VkcL# z5`VNenT$v22$y;d3t6DP@;fwnUBqJ=urJk;W2ZQXJIyBDFsP!hQ>Ir#^)tBf7o)P- z^|}Olvu9b0AJuJE`x#PxYJh{8z{eKwy<_9S#b>F0FpzprGqAeD2}=eSJ|eSydwh+c zr6`~h#Evq?H-UXi#L&Jd=+;(-jt@<*k^M5i=(!cq3A6k-HB<7?!8=0%#WLbBRB6HnpRyh|NP!M8ZBuJ=r^qDzp}`Zrl0}xf$76-wIIj$L26jwa0K&41jhI2pt>$=uXV{FBljr z<_~=dq^>w332Vb@LWI9T$wR2P8=q=NVlVyq$BFc^2&^lod0V(Q?0RtHYGIG{MvVF3 zHVlnr13p6$?F4p|ym=URu=Y>5%{b-?#z`zgs&Mn40Gsc)CP*mtAuuasJjCs+7%S>x ztNv4~WPE1u3Uu{DHgOlBWPC$nhhbz6l*CezQ&gz*PyGx}g<6w|6?+_S&g^ZFIW1hR zj_~md+f=p)U6g@6D!73;qdnW!dyoc_1!puAYq&n=*qAy9eyfYyXLAFSy}<9VQzS;9$2Q-x=pGP_7%4VyhoMu?rGq{0r4VF+G3{4010gjH6ZC?x)A7nXmH4{hQ)bk^? z{hPROmT{Ll zLCSt9HB{O>s;J^-H7w9S9}vdpS3sZX-C;93?l4pB;2g#$!5mHL-O;wgswYT3)^Whq zD|aX4fmq|woB#;b9Dse2XBwYmc15p*4~I5JX*4Ns9bNi;=?yHyLRf-J9_s?c7X^?a z9QJ|)YShy2?8{%a1;my-jjaS^hWgMP-V|T7L8^E4%L_RW*-Y`ZwJYLHT>PMTTsG^g z8>ve7Yw4h+{XvQ4QnY_Fx=Lyx+v3p+)H9 z{$2-R8wzZH7V9a&73`ydpg<^bjM))``>5Qzj>--CbK#62tEF)r419Zzm&s|cohsU% z5Z_t2DCa}&(+qr0C)~1l#@wQL{sAVb-N#LfTaJvYp`@y`WN4TKcpc_9Z*{7jvRO$g zw)HEEPAfBv0_2lnGT&?3jO_srHZk$w$wmn1={=(X3#>F&3sMzDo@?x3nLt~Voj0+9 zlMzU^Og?ntzTo{X8;=8+GX=;X75tk&T=+Bjhm1aw+eJoy*wK%Rl0oEaL&1Z_MjmmQ8WcQ6}%>5tfd_#@%D`awn87pdI*~$ z24~!OFK2(G_cm0;%7>Y>6LyI#8h1U!A~J^!G$UWS5QlAEe2?5+I3>)sm!!(h5xkzK zuH|6gu}T$72XtWc)-GOfRaw{fb{dC7hTW{+!muk~pp&T_Ku@$YGYTFUZ6AS|ntZfv38m9Qd}`OQQp4^r0|C z{JJo*Q!Vcz$4_j9kSvNSb%X)~W zvJ9CvAe)*JY6SP(TnN0DJ>FnZ`mU(40!^=$Bg^msECa^&G=-%-Acky-7l zk%pV1H0W3lZGcFanJ=zrClXrD6}u<=I7#A^P9S`ga<-tORLi)R$)N0bm-3c0T!Db$Z5xcdSp z;}9*HlYIS+5Zw^&IT9Qq=b(?L>w^a-X9x?F{5DR7KfLC8rvil8N42-*+P3SB0A_38 z3Ean^cfcbONr+k;&rd6yXlKahib`*K4>TM3MioRTVLCKNRx8}#`oX~IUK7-hfs_k@S;(mx=U~cGsTtb29i-w11BD zlV;a|^pjy%i1d?g8wX@c#$w1AG%!d(kPT+-MUOl$V~P-l@8vwHHX?(x!N~uG{QS!& z6C@}Yf%^KQM+*2g6(3~H?MOt2kxIYw&450^A$IDH9DmoDCve>syL_RVE-WbB5SjN? zr~MU)gN6Meby2C4w_GP(|0g*B_aSV!7FYGuRW+Yhb%BiU?Be|^Ap-!-URnx|6`jwr41Pg- zEkj>VGcxZr*4A=RX-vbYjCiKX*SBhieZ=3tczuu7f+eFiauHI;yNyrh&HD|SNs-Sv z1(oWCk4^KITKPD+O^&X387#b79Am8!-*ilB<^FCIlG9{cgahEs2cz@T(5~eQPyL?! z=MX|qI#2j@bB1!#R$IrQPC=)}4L+5tT1|RcoHd>kV}C=!5S_FJtv`x~X(2JCDBd!9VVLqH@OM+PBlly$%C1V%r*4|j z5$fR1`lgzXtImzxVzP~^0_E|woGG>t+E zWL)i1HMy8=#xqKbliOVN2~_Sitf_Ixn6CH4bpLGPM5o+xa*;(1AjH+(;7*wQU;wz^LPXYDY?u zNK3n>tf(EIjiwqspzu*x)k%>oZgG+15)hmQW=S?62d|uSjcCn9{UZ&)35)#oA77y6gxVTou};~MpJCYWEY(u$-N+UE2C zPg*N?>M%gKo?V|Sdo6ETRnJ7Cx~az0;%KEm$EXcK0k8ea_>S-=AxnZ+<0$h*d8t)} zMr3#(?b2hp^3tSyqwauErE8fhgEEIv>QH34ak_wBQ%g7Vfauh78LKR>9FMr;JE z4`u9PZ)Dc#8=}r-%7u=0YgkD`C!<=FfxMcVuB?zeH9~x$BSd@2IGPN)d+KQxWs(W$ zMG~F}`8eLQ&7(%6H!gb7<&F!X2|~ApR#*c4Zd?Yr@=|<7{~~EozI3%Idoj5_4feo4Ne!~^i6?N#R*)^CGiQA0 zx))1ER*2?#SgHH#YfA#tE;}|^EaG#{%co{WXPa!(F8=ouSWZZM<3ST}oAeVV9hf!7 z%j{@x3yrNqF4OpHutgR38RGz}Gzirk-cl8P>=EA%oCk_aKMu^LlLzP2rHMgvr^^$a zW=qUUXXhqCS1Ez)zC}(pycJ3HQI{Atrn?A9{|sdp<#7p@Ii-dOUM}<56gyw9iEZ|4 zhB-~X_r&Bo=~15IB&=fe`L7bb47RM6vcO-OAn6A}TaX^FJOipVAOnXs&@=V%?x&i~ z&PD1dT=!saQ7V}Sv!$5FkMb?ileiMiq@^kdM9L^Ajx5Hc7QHz*no53*;=pv2i&^^W zt$@h<7Ou;~VNARJ#l};g;`$lU2U5{KnZ!EmCIm*6Ek_GxiE6GF zOgVLuUI??-GHNl#6wV7|O246SfNpMori1wFQ#9CC>JPr%fZ(+3MMt8_vq?;#G<6MG zDtPF!mWoklM8;M07c=|2#(x(m=7}#H^C17|Nc`4vxt@outS_(Dp6EF%Ng}b?GG#j_ z;N-QLzP{lmz9g#F*9cu1;p3_C$gIaHpf8DGLj6sqg<&_COt>LE9qJ`=po8yQpo9ZT zG_qiP@R_y;JzPn)5o!#YA3I#jtm9v!O?%`HWQq>c+$`fDhJv)eQdG)LxU*o?ogvJ? zJ@&7tD%yOaz6h0jdGd%F8Ia$P@S}vkd}7FivOWjcM;S4G1f=l3&0kLsQ?UOL?f#|I zZZ*PvxWR|e{wsw~^B~=UK&-<^B`%OgJUQq43(m9kl_Z1%5vVx3Ucd0O&o(+@1bn2G~)st*2~?(&-h2ug&K_IQK-n96EAmi7*5C-Bz)pi`;t%X>oU$Nz{>R_ls-p~!w$nQfU%a5x-=p+|r! z?=W}tTvo;74K&@;5`37w!_Ofo^bEzfX1*Ap(~lv^OVm&mX(?1=ETizPP&6LM(q=@H zS8XCcaKe8j)?7e>O+hLWdzk$SWN|>b3z4moWwmVhg+@M$kcYHKHpv1i7#`EJhvisu zhpzV=uXgXPC^8)8o&WA3C}SWv+MandmQOz^>FF+*w&|1jv|n()U(ms|bt3*kt$0{q z@|#DopC;ToBwpY|jA2?0+G3Sgmrm@-X$m#OTsb^Z^nOnKSbov33X9=8gxU;lE#0=lhn`_NMFA^(w zL!Cggz+F*Zz?;z;13f6G<);_=x&5=iAEvd@mc^&-;^(|!P5kO&Q5!>&bB>@-$*A|C zPpK?w$Si*4`ZB7b2;`<3wE>g+Xeir0J`k5cbbPw{Tw`;wxQB>HkAoS7+TCyEmvYhH zWi^2a_v+_8824Rk$JQBzOuJS06h4VY2Q+$9oV$>iee&qCcDS$Lf+yo8j>|hw@#L>7 zlqwy+?_}J~swxAU04Rhq5D!>17TrN1H>OapxL<_H{|fcO3|BhKg8TNZ>}$IEKeqt? z;C%m23-GncVB_j+>1HZtX=~{s1+X)*G5wG8Jxk425$!v&Uo(TAF5-7FC7%i>k+HRr z3KOJaZMY=KN94NEo<2!l`zq{5}d zxmO=T*$kiXHF$>4y40wnt&G3+IpKx(UI{p}&B&+Z$4PDPI!o_Es}_+2jAM%GFX8y-IWzO0n^8EGAyGt!#t785Hd?i4~){V^pq?{ zZ4r$VnyT~bGHPVT{qv$%1_S1oi_KgZVRx*(8>Pk%m44`8l(N*SaKTamP#99>H%{$L zwX`gziH|-?wI|?TVoyD$AuXQBvb_^M2CvVbBrE@}R{l8`Gw>&2@=^N7n~3?8<5N~7 zt!=SJ&8&}vBq5v({i#+j+`t7z-#tcpWZs+0-NS@F0D=K&1${Vm{yH3RkGf#0#UB2~ zTI*K20T0W5>JR+ai-fOYfp!aPzhD)soPO6-nX7&cJ;9gm)4&62X^`86n4C}XpvPCE z5v*#4J%u@m8S;7Pe3~S*XE1dX{5kTcDg)cA;V*Ce(1aO$=m$S_C+!8)}&|x)07GxU=I&0h#@rPyE_awZ~ z!a`z4DAga4B5zWU(~wFjES<*K`9coZA0{(rYrB|s352;bz}7rV7$9FOQmkJtyV0=N zEy;J9R&4#Ndl#y(CG<;@hkx($Pzd7kWqj>@y#8ZOJIDW1uKV9sK;-^yNBCbx0#Bc> z0Oe1KVB`NEY3~%=Thz7r?%1|%JNd`9ZQFLTV<$VdZEMH2ZQIsP(s{o=r!P)* z_jhrs=DJ^NR?RhQJmVS9FP>fY=4X9$XKq7uZLm&dt}PjAHjw)5Az1HBc7Aku-oy}i z?q3T3^3qI&u*1DKAW6X2iA;jAL}2Eu+68df;ydn@1)f0NzR~N{?t%gPlF^TB z77cD}{@g};{oJaQoX0>Ty7-$h-aMGY9ja}&d3w>mzEYs>GXQSZ!_9$qC|V zV6?-xOwz>OnL|IjwH~WQB~~bdoC)!lu`+2ru3K3RfmSxg1Yoj$Xy5r!(##V!p-#kG~VE5J7{>xU-U z%qd4I?21w-?D1XsK?7Ps!xC1-R(p);Da({)hEcx_?KNML_qF@T)aRGW(5Fu43Ggoz zY?zapy|Jl+)Ums`6T{CjWMn1H$}NkYG}PqSth9=fY82_%(U$>H%~v`zb+zQa5Z3oJ zET{H=`m)EPi+@lIHoBmKCxA#-N}N;Obyt$&KVDepAxGu^y3-@XxL24LEyqmet}}?w zmqhRuVq?!lJu0o(x}YcAqw!{iEiJuteJ+0m^>`6O-$?Kz!k%rwDwb=NF6AW`R5|zn z=N_JpsP3QqmHNuqW28{MvW}SFY9{FUw(p$|kcYOb)l%+jpq1J%?R#LC zowv%K;WsnWHf0{1wdwSoaOOm0<9gqEf~!w5LWoK^;P#TZAaINvoT&iH$wHqVMR>BT z?0PXeJ(}9_^&j`8arKAQQGJpRtX}~m9JjIz-J<3@&->iCKXMIccN_s^%R16n%Cz6; zY#LLHFcxpe0||qlOm42now60DN&&3mU2~ah&91rLKOKh;u)dz3G$DNDTkF`JU8a2- z^Y-2kx{;e(Z!rJESCp^GJB+M{{aTk>j{K7yuCD-pr++X%?;E1H{@oh*?eGud+gL;K zsF%mnHK;6T}?anenwkcHJzby>oIZ zUHleyc~ynV#*>aV^a!PJFs6ubRg!(3+hB&1rKx&eSuR_CQ*8n-y$PuqEnka;rkr3L zQ_|OabCcfLEy%u1W2ZYXJKiP1PFa7&g)}sFTupJOs_Y}lY40H!%?>M}ZoYA502|9( zLr>@vd3^qMECZ9ilC=s|XE*Y5IH~2V5D~8+mzS!n zZ(-3}l7G333}D<=#EtwZ$qxDCIpO*E4;@~nXn5xd9`Q%_3zQn2=&{*Ma9)fI8keT> zKutOrxSu-y=MKG zc}s{{pg+x}7t6X{D$eV|WDxB^eBS^the9}QD63Y+dbpWiq@<*bP*B_OIz%rJXSD&( zwMjHy2q?5BUBRc>k8rQ@`O`bq0Qtf%L)NU|eS|Xlc86S2S+7O0_Fam(q?Ho1CnX4q zlsqszjo{)_vC_p!`@1Pi^ifOnKg-;tq%Kv7>^DuUMlhCi)A&3wn!;Zw3gmNDUKDdq zDVrgZlh@lE5nSHWMl~AEW=zM)y=@lI!#)v?cc{@|%8cuf13SLxFr}CD4el7`?z|MU ze*7t$L2sH#@HnRBB4^#|;M$xPTwu@|f;G2Do1%TU3oxBH97br{zg^p4E*!yeiUzdk z8g0Y493$~>J4UHUnw$c7V_BfxP~dr;u6ASopzd|1*eMlJF-A;F(q<0c^A5c=K%*0m3q zY{~l1Vn1z}l%U5}p3=~@8P13_i{21S8%?h-bOEnkQ=as39lBhzzpy?`6SpOB1zl`j zgIS^JY?RYw;Bl4Ilm|P_c%Eg`k#r@~AZ#b0_|FQWPa;eIdpBujn`WjaFWP9t7*PQ4 zD49;UEL4Ot&=yb=hU0#KuzKxs0E9boP~cO4WP^09Y=}1048=gUp6LjqN1m^~x8xB6 z*EJn#H+)f!uHkJzm}zr5HRtzGU5SpKLm_`+s^raQynXGlsJp>7ut0$PGTASILvF%5pd$?Wcb{NQx=} zG4fiEVZpS?Gk$4jiblF?)6eqB1A>if%QI*Kf{%`vYYT>Q)Nw6DN@Qcra1s>m4d5qgwxC zRAywypaxA0d;Jw{RzVdr;}9gsmm}je&@f{8&?`09a%f4^&73QFmo|1Vw}zTt!LTnx zFG*RR#Ms_W%Me;3bXzn_?qI>TE2Kt-im8m96%5pzDxzjrrU9_Cr-7x@^yr+Z6@Pda}e6nuxz%k0 zMD3^tS}Iv5`GITao*+fG_X0_kPM*t>sR9Kte5q;N2RFL3 zO2vn>7hLwW+ya)I5(u_Rmrf0hqmF#I3%qw}MQGF&NbeIUkF}g^aEgNz^Tjf!;gRu} zt?O7xQ>NOj#PQVBcVH#MB+8)M1Ilj1SYlNYu3p;OnNa*TXFiaY5&cpTnm4Pm8v%6j zOr23id$8G*HCfk~L=%}h_%d?>i$_NP!2CHQIVDs`ypkg?<+D%gUYCyvFtrdmJnK$? zAHQHG(}+6t6NDZXZ4mh$*%f0JQD|OI(&mV@w8YP5e1w7ZmMWNxNbMAuKD!KYut3dh zF%<|sD<&T)AJtAj(r;(g4ZtLe9>Z923uQ6o_KK^q^hsCK+oV57w=9Y*D(P6TybF-_ zEnk^MLGDhvL+ehSqZ_|OQv|x{GYqwbF<&}t;u``ntejBrRU1Bi(Bz$`MxuoBk9MLbJ#>4{|j?u^OG#Qrd~8TNR}Fsv^D& zMyM0(Cu|h+Yf2DgvKp|PUywU6^D;jIY3U@u<0|KE$_(jF&G|Ux&_%yxt&VbT2G+6G zM$h^_!3CsN3zA22JE>VYms!!#PGUpR#`4fMbI}T&3&@?zC5#)jN991wSsK5E$w65U z1cyuszN0LCajAUM=S>xc8sgLc?d8}5hckuXU7pQy3p-Kpz9v8a&E+AHrw5DuC1Bjf zR%w03v&=o9kERhI3juQ^N5i6vx`TDO%V~Aw~+*9vcM~Oi!evuC_#S- z=HxB74x>43?8-jUF-GbuJQup_A!jq^UD)diC(FKsJH%C`@8FkA_IE{y*gS4cVjV_p zw0nezI>5FlbK7W!YO_^i>zc=Pn%H$Z3qZ}(@>kG^sBFB2rI>5;d4ah4i^qMe{qoP8 zvFS*l-wfNhI9=y>emX{9pc}|2fX||1ld?Yr6a3Ea82Bb;>0$v=q?pgEB@4 zqjE(EfdlQ6at`;o@dzbxhW{GV1gxc6d!Bg6v z>0AzwE`a^+*J-U@%&?J~OdMc%&o9gM)bAN2YMr192}=@SWx0B!LF zu-iW}xIQv;fMRsbC+Oeffr}Ccf$fM(0eV4&5p_2v#uF`m*?CLFjXzY1_X^8*0lXI# z^NQR}yT=5vev5YJp;P6n+P{M95QW9jZTC}V27}1&XR`BiW!tXz`GU z@i*;hVw~Sb!_BlSFl_TX<^wUT-m+k@_zC9y6Y6IOspxUa1L;AJ+kq_hr@`+@y!D3o z`pplmnp?Lg&;D;Mv}g5JovDxeoBThF5y3Q;Hgf~*mzvM+nw;x^=}&HVxT{B`tWSt! z$DvF)OGEpf6d7CMRo`_B70F^0>ilYh_JLP;nmNTA4lf7>hF&*P z5MwKmGwI<1PpDds(8S zP@^bxE;VGz@k|n;wVDDP)tN(uzPX@=rWkncm#MTJ*9G;env@Max))HicQJTUE8can$qLvDtjJVk1pq(k{BumYgh5!@-4V0`; zW}<63Q_NILJ#6Z9ya{zas1kVVHPj~wIcc)WL6Czhmm-~?w&F59pbS0gS}E}o-E7fA zBKwlrcM9BH{-toXJEc6hVgY?^s5=RnlQnNpcBwenOIHgezoQ*f18f|YX0K^{^a;t- zDcEsS)X`~=0~G_C%5ZzX@=sHt5t9fi$GxEhl@@Eeutt7aObszB79y`y0}Fr)m6+B= zo6~)$-%ypKOU@>a!st$rtiUO0l0l9f{a(nLIR}bCeh!apdbeWV2(=i!fUT~D$Tq2N zU3Xf0`0aH5EPdfJz6l*3yWS$WDcIjp#0F(ye{;NRj&dO^*+hx*nr^BWdfx2X99}M4 z*qk_D#tieHxtJhb5jv)@!U3kagI<;*K20^41ol{2OT~D0C}ilKED|J3q(O1>ul7wE zXnVv6D@g5(EJP= zMXgOXEQuIKDMkqOd zFE3gcaw43Ve9k8weO8nCXCwF~HjL_%+P?QetgL9!W!O1pi7BRRYs8~an9|V~){wJF z7TOo77d)Fp3W}=;nmL#+tA> z#t(-S`9e*vuYO#OKpr?JVce3>M{7;#D3Etui22SN>t(ds7 zu~C(b$*_`+WbqL$?mn^q`gm3?=bOT1VQ!Ulz)*cDa}kAGPDK@s?jhZK<_&(k}Qq z0?y;6?uWV)Vhn6F_JJK?MQ&XcJMvxs_O8)Zk~Vbfszq$aidtmawG=ANGC;dwt&$1V zKb)fk>#BUNRmg-ik|-*fXp92%X`5|TWY3Cm-E-}%Elv|Nab3W!khA|}m?XbfoEtgG z2%nYFC%c;q!9nYXSNaJ;*&B9*Uw235S(Q=a9+s6j3W%FN}Y9BDFc3Eo14R?I*XNeH*AY{Ed2d>)=B49e$+Gc#sf@a2BFJ z-?-c^==ux7v5*s}!B&ine_C79Ly3{*MmI>oUoNH`cvI(b>6#bU_O7QH0;XA~J^gt3 zkKhR@;iDa%8Ja3Z7KVDVVAuUG5LvfmQ-CU7#lI_|y*J}`vSnQb&FMv8ITjt)zZk|= zDjn(T@)!!W9SOwMWHBa*6a? zP5LDugICAOti%VJcOG&)*ZtYddLi7JC0SltE*ql5(q4O<1z7@sUlg! z*zd;m!j^ocaoPx(PzH~BV)+R+KMuzvzhd@Cg5qhLIRmbTZL|gTjwFZG(ld^q0J4EN z6wi|FrGpq40{1zSRZUtfRkRLdrdCrltaOLzNf+1Z(*bw~dJ&LmN1T|)n)*h_kT6#b_If;bw9hJwZRs^D3P>VaY zH|;68vN9l#jA43{W)aU1D?Y{;@B%=O@w@#)bYh5%_4>oypi64QwzH1KD0QAZ%5?-` z2dLQc0?$0bnqSXUti0i7{gRyW2G7C{Z@eQ+nNTNLgPR`>f#Kitkn!gAPEi`B44H%! zlgm|%+OEooae)f5hNvY-Dp6Q#!~fO^20O7ggUI_L_>Wf%Y8Bd-3-0mRml>V^&i9)- zrc4+GGmf7cztd|CGQdH|x^2k1$>OWo1?-O9G&)sqJ}&u|nadycW;X1~l5-B)Q*^2! zI~x)m0}ZQ~4YCsdz%wX~N;)%TZ91Sfob1tC1Tlo01=bt?JXfVT>X=7*_QIB(6jokj4nFZN^{uOKg2H)eI-POwYQ)exFhL$x6@M!@%CdFxRu; z44@5&$>ng+=?;#2j?tI`KR>8KGGd8o1aI9llQ!5iJU`xV*1mJn-P!P1o^?Vf1!rpf zhsl1V*)U)=cChM$tX)#qJo~4$9kmL^j3OMkAig#Eh`^ z(4eOYy}igXcvBW&Rw z0V>TEu(<#9H_6_>9oSlP{^CyFtu|Zt-Tu>;C1-J`^`Phd15KnYe_Bpm`FBm9klgp~ zr0v0KmFY{i*-gaU$*rf4Ab~H;&anGr`^^Ew@u~RQTwG&e?!KqsU(&E(!M(o;U(d7Wa~#s_s-?+RE}0n~=FuA#&ATZr zs{r+hnZxUN&dYo`pMvVTmS$1BsmXUthDodAmU`x)P>F{z{)`vs?Goq-b7UchY-`CIcfA%r__dB3uYG&$WYG-UJ zV{dQm>hM2%xLul19@2m1qW>0b*%&&9~i-V2;h&mZX>dJ!l;g>e2}1l5NyKlblBME_v^ z=R$b@f=B|a*LniyyHfD4$==)#CItVz5#+cP{gn8p9rV4M+ZWT(KK}A`ewv8#2hg79VZ=)pO+ofu(jurjJ z)I|e`_i>cz~;p&FMKotP83HVbqL zEhbf`phds6maN){I|5X zSxx~kWICAh{t^1@x-iOiu~1|g*S@H&tR?SM$dPytd(Pq!O_SgPy^(!ghZfaQ#jnpx zSFoU^!XoY_6;aJudD!JUerrTm27UU*P>O@=9w09A0Ba7`Y z21T)q5;4-!uI66r7BaMCEGlnDZ!?1Z+{{Lk=^96KK#jw#N+{y@6%KawxtHeZbTO8< zRT>@R99`o<*)-z{D$1+YRJ!66$L5}MxNbH~3JzGeRbrH4u*iVT#JiMgU$Z!XG3n7T zkj+(nX2+S&FqkR%GNaDt#>x4pR@k%~FUq94oZhj1a$nsbb}atbGO*FzJ>^OMLyh>j~7uJf{CVZYir;^P6#(^p_bc!mS?`LQidqGgS;WwBXUGM<;7^}-;!zAWh+i;dAc+K=an zb1q-cYu<3(cIS^6j1D(8!Vqk^aoNK2RtYy~s|?8aI4d-27v<`JZqw=8T8?4onr!GI zPJ>Qvt`$`l5sk+r>f=8iffrQXg@_jIuICg9#v0_f*oUKZCxp96*QL{{KT8{Pma6dP zq2oB9)yAApqTzEGEDD6fY|@p? zc*DRT5iYxFX%l9{M3UN??Kpn>R1&+Txrdzmi`02npeG705amU zNU_tO4jz?A!9+XP4kGt7r_#6svQf84S$)Q0 z>A$jPNY^Xzg)%ZFxQSxQLi5t6;u{eW5Vv`G)Dtq6QX0f1k7HXUZOCk-W>Pw_nNC7X zyin+ZL+$$4Oow`X^HrPSU)JNk_dv=&!Jo{Be#(5b2x<3uJSOAfhlPn10A74VCx!mF zu@PA=vRs9sff64je5QB>N?z)?^!qj*!+l4e3|WUq<^J`=`=kg;iyaynPc1&wMOALH8Aft?rlZD4xgH*Ah|0xl9sXkD3rITHvwE9V;|wf{E}Kptt9C_)2XB}` z&9wl&Z%8${Y_tQ(zaCF<>?nl+`OY8pmfO9YH_Zeg{&Gl(%l~=Sf|50CnXk zz*qz$kpv;{iXA9RGg~e|SC)kQf-4kdYkdPlnPS;08>IqGQoj{%p;V}!RYW8+{MzPz z;^go_Md4{R=yerew3b>Kc#^ZR7rMe@Xkaz1x}>>de=jf65-u}qs?&^Rsr~&O#j#bZ zFK2IKxh)Z`vT1M^3UTSAz2hL(x>c;d8um7@8Rf?DP?p{oxfMA&xFhTOGDpD!dZjV5 zVVq33(NiPhd9ClW1!rl`-}T9)HPlVc{cl!YH#F%Ao9ww@x*F0Aoh?r5RhRYBq4<+y z8@62A0$+QkB2Dez_LB6MG>cA>3?8)Uayz@4F&C6+kF0#YlaiO4D@PKF#f=biRZ=VM zNv;R6w&0aYi(7NnBcei{D*TxoWvEc!ds$AVS904ol!X?>nAAll9U*>cX^)Xhggr`~T%VRX*x2!2?8uZE zICY~sp}#=}Jq0TB4F$hEZTDIYO1I8(zAb5}t17J_hLdp7Ow?5ZYNCO=7jZK-U#Hv2 z2mF8^>eT~QI!C%iX6SOHG;ISTPBtTgTuC`6Fi1S{u9YR!yc=B5;nT!grGFfo+*L4U zy}m^;jy!6_w_KWDxxRSyNOsDarkR=|Yo0_GNghIY#po0IL65#^!8?OG5AtJO3v@ClB^FxW7eU%^ zhcTn~4A1xy(%OVuu-9r`iaZnq}f%{s3{@Ub1?a&c4%@xau(gBF8`JbM^HQ_z@W5G)!?eDs*xDJi!yPxD%T7eaS z1`4QaB@5Taajnt9&|2iwhDqwgPD-!nA&jd&A!pFP^?-GxtKMEy%rNl14OMM-%7A{5 z)LjViC?`bBEydEqiG_PQa)wpnFsCDgsGjXOd$XoR{CDtGR? zRFLbtdoHyZ@HEIEzf4I>WdJ}G>e${$8oHdlS@G#s^7`m=&K`9YNt7aTe@BlAR= z$LqsCc?04xJD`3|gaI$W@PX}0h`tF{^_hCi#{=v7eJfRdR#M2 zGec4zicv?Xpr4c43*AN9L#$6XM&LmyKdt*&4_jCdV!BQQ+ahCB_b0R|X|Eu1&xku{ zhz~q+py`;qeS>84Q_+uDWwvYcWyDf7ZnhfV{KHZ!Rp=HT)yjr|*bb~nAvR8-_^qf5 zgTPduUfr|s?J+^hCpzg~qCWDol=Zz-`80Q!;wIZ}1%*oLoT#GnhR4p}R42VRrdrQg_49{dAzWsT(5ildc*_Q| zIJpkG%yz6RKq6Zifh{3dKH3xh)XwREg#)j8m_0HT?@?QAMfFi9-K! zmDiFh&{PbVFm5y|#K1uwWVP+1r?q?1Np46ks9S}=$rVjN3N!&*b}#+YMn>;7=rb$2 z8Y(&1y*j28VGr^srdq`W?JwJjQUyUUl?9=dd7O+pOylu`#~_MRhTMV|pA5k($!V|1 z=F&GV;iash36&+$iZi&DZpmVwD5*D~rF)Xj-?_Um9vBQ#e0m8=owO_aSt|Qc>zw!n zPFG14^2I8$Xz*CD)-&GV1M4sV5Y+=}OX?u5-#2@rwv03L9eM@0Z%KW9TvBQRRIwK0 z;71nZBl^GNkadF8@1iJ+aPc{M*sDkwscZ5AQe464z`K3G&>9wc8FWo&8CV&6fdJ+7 zJ+zk`w;2Jozn5zD$SR>q4jm!`9wdW&vv)wj6Vodtb5qmUttRZG^RAW@De}}8kQ?Lg z2|+MW35)$)i)4|lh(M_~Q6bK)&aSRs$?}uCTf0hgW`^jfvdpl>B|E+40t*ZT>9LO&<`h23_YV^dEdXX(h z$P9T#)@T)F3ZiraK@8LEw5Cj?Y-@S{Q2l@3oN|u7?jqcZbLEhVVqIsXlXg&?`0T9N z&*c33_w)(zo2hetE>;?_?!Xm*3XakiSV<=lmJ%IH8`?it7mE~q&gdvR;<^b*z`+)6 ziD_;zEiGOF9F$JquD670-JdwFbEiASvjlt3s7^N(T!aF6f}d1W3&z z%>*q)-X41nkxMrmYHjN6=D?n~8W(D%@C~dY(Tc9zsmeT^2Hm$6>oAPWwos;c7*wX^ z7{2N!n9hnsi?$cD6r*(yPYFnF&`RouoSF_*x6XJ}=U5leR>G?XP_S;6oR$l$BURrm zItHsZwco&K$rvJNeC2iS2P?T2`Lz6@L9Ewv1DQcyU^cnhY`&aBTo-_l!)^&;c_9@6;KAIpG^0K%fm5tm|O z$gCIq+BwTrK5e8E9aB+_Jw@I!cm#b|VQ*QFN+qg#4T=oen~-n+^1oj#0R`3@pkmx| zcm-1w^`6qoR@<-VFPtVO{Z)#Xo|hnx8$5Ex|xtt6dtv$9jbu%#9%d7c)Q)9}6^ zAGp5q^U4U-RS>e5uyPBX+|NQ3e~FXK8XghB9l*OD=?1mLgiWxji<}eq!vp`rc=!-s25VNVG`6s}^!%d^Ev*6>~sb z^uxt49CNlMv7Zjmr`gC)8B#=%B6j|B(C)Vgw?KZP9YG=fZwHO%zf~sxmoE3eKWsnQ zJ}82yU!f`Vy6AJjKT#f0O(6{hzbT8M(NHzm>O)0#T1+WnCg`t2!oLU2Wfxxqp@0e^ z_Hme(V+_~CqWEJY)EbShgHa$Z25kwI&S~p)a4M`O z2Ky;g#%yOG5T1!_Cy8kiegr#ldkR_c`NH~3UWnE(o(0a#3`g_NP}!150IQk@3~2Pbhw z_;&Kjc&GG#7CFC<3a+?K`Ai`fpMBBJF!Irw_DRt=Brnl6hrYIaZ0#sgNTAEnRJ2K3)Tg+=kWCkuvkrv6yTarnyNotG~pg_cEP1uAg+ zBaCcoCJy}Sk0(-wNGvTT(?bWzs#rQmPh6O(rF2_%{a7KMK@jFM=luS-9UE#L-fXxtD6MEAe2>G<#mxSy;6_s zkiNZ+g4hH8ekv8XhgyB#gpr|9;*N7E?T|xA1+ngKG3ebickW^l;^qRXXjH@{%=EkQ zw1@@i0**LfNq~H=E@V{u5j5%)9lO~+yld1(XkBE1eZR}79n2GA3Wr;PeUu8hmmHDo z4am`lbX9(I|AF2IXL|12=NCYM%!%mMMAHRqvUb*;O+&XZS`-}?gDF^g?)4|m6avz@ z#B*=?XF4hV|4QFu{BO_Ce@2r2L*a8VboqZ0POG(`JXBVGfHW4fiDL2+u#hAuCWaG) zF~LJdAmGvQpqOhyz!79=2LD(eNa3)j63q?kQAQ#XIb#z65!sxBk|-P<2Q9HML5#97 z3+$F#E<5vdTbV7AFI}$tUoYLIb2dUGw-BA~H@+uX-p}6CczPdm6Z{anYHv*e`fvib z*5H0!;ApRKAU#;UKX)|9>EMluF@;|%bPq=F%>lR7J;c(h@IS?0{?YtU4)40n&p(27 z6|}$IE(37ch(7qO`m1&G7YC3Jf`6r$zxveNPUYMS$Scs7Aky2&FZ=<1tXFfkx71&1 zyZTGxJ>?@kl_UOTBmNa5{^cY7>dp(_ikV-v>tElC>lap6VOEbMWCJ*;0t#eC;S9gQ zlmspAAnHKuF&hX8lZ_S)f>cx`n=?Qci-r*!rL4xf~d;Pd3QmI`C~rNb-Y-Po=a^jFG8 z=zz|Wnj@G068bo0=5?3W{*~ z!fM17$J_gXb?aGDu<|TOwA-o*(&7cYVg1uZ)xRs)+GxaFS)Jm1kCPH91)ecgVl!Ls z(#OuG>@zn6L^~-_7U7GlZaJBF0LdE#cNSJ1yYb6!ZH@sfx{4c~G;h!8j+ZUMD*jfq z8MF*Jl!RcCYc2=m!t5+B%%)gQ+zUy&+$)6RnfqreRj~D`&yYRjv>bFn@NcPT{DjYe4VikMiI{02rC}z3PPs`h$ctBci@(HnApWHLO(nga-Qehw@?G%>@ z%PmTttwdRM>3TZq(-r!4wtVN5z2ut4{c_~hiW%?SIzsQOTUt#HO%|s3+F%}llIk=7 z^Xar`lE?l=DMdLp_kJKPmL!Fev73?lG&LP6tyy4Qu@y0OHRQ4`0bPP>b*dJPqyfIr zO|EREo+3t+B0CrWA*0!?TP!7|gtAN$5P?+}ipz)>ruVt5i0r#e-Pnbiu9+{dBe-yM z#fdPqNLrpM>_%KpVtnw!OYJKpQRIN;Q0%5jw~BJp zES1lxTpKFXbjk$SXOc!GTC|x~?;bM)cg4K*5aVi>=A!mkX>%SYo1#^puOh&5or$b& zXDj>NMN8>u>yoJJ`N)`qd8odZL= z?7dVT&mJq-G#$lHG(X!SzYa4U<^2(@^-vVE7>fxIGBHP>gu!Lj!bW7*7=q53L}I2D zHjT+fn#AA<3oP&tCE(MYG`6K&xP+|Ek&dyiQ@v%ms5>Z0=`-)yxy;6WBkvt+#y+h~ z#_FgH^S1+O88hOxvv`)Pg0URu?<8`DOQ%qfHU`!2fW5Q+v8?|=QWi6vOe(wG)heIq zH`5jTV|S?G%(`}2q&zh(@laQg!)mHyG~R>~h;vLy3%X*xEg@WQK9uP^O2a!S>lke1 zDKMtAGsQD7^@AaYQ7%Z8y$+ z7)^yR!6@B!&kb}`Xs=G(voPrV3Z;zSmwKkqh}h{U#VJ-F7J^kK}he1PC@1Erj z?Pv;NtnmB}AH{wMNqL**MtNaGh9{&{)(4W`Z1h9cGb`^N2&*!cqO1gA`5?2zN8Wa)WvuJg|Br8(Wa*bJEz!u+%f9lEQ4y}n@PUjpyW#{D$!_+r~Pfb(_&z- zdNrCD{Hh3ryS$AN`C6gQ?K#K41)iT`URN*ST&>@a5KngXQ?65=B5jJSh_bPu=jnX9 z_vv8-nYCqFY2&ung7PV(VY&1GMJ~8W<>lsRQ-|4(LC@zxMGW(TSa;W14Ek?q6+x2z z>4(u6moM*%=-ChdTMrvkx|rPCNHGWBd55e`M91P9C%1BFBFG=*{o)-dJB-SmwZINX zb!bZqQD;2oBMQCN_XdC`VR?l0?qpR$m=T-GVVDS_z6WLc2ak5IX+>snm20*6qxUZ6 zQY#&a_9zIhc(o^$izJ~=Oeu^VzLG^Jrw&AN zw@N)Zg|W(Ey^|eK<4btsvHR461fYiNdh-fSMSt{f(}o$XT*Ha8#cMS`MPur@LHntkAVlTLrE={X{C9)y zS24MU3Y;iK*{z>-zZyT@DV%Nb?UFjZQVB_sdi&_Y`Sg@18tp{o_PrlmX7xWhN^!Wi zG%AABMsh#=9)o>VpMgP!{Y+Xiv*);BdBB02d9Gd98kq)(T3Y5Tmle60St!p0>)Z+F zf#vat{Ym5@k^@dOuNn_>VH{%@@`?u*B ziN#-L+>CmZ>|e07%3a`~FHXk;ii?#sSqENAY8M>ZJC`qp(`(`8C&pQgILi(P?|34~ z=i^XFCzm+En!PW_&+0_xiVJ>NKh}e|g~-OXh=s^6Hav{I7sIHYxo>LpEK%FCIe#pe z5`{OTQ_=nRy<1O`GhmugN0jr?Z>6e1r<#^sa+lk7q)Mi8KY4I0N=sDuLr^x4VtZLvGmT9|Sv^o6=4;GNs>HYH$ZS*ei zE7=1L_DHFPv!1ktkMGJP7}!hwD-D3va4o)@T^sHSM+($%$#|8BMNGa8&ayr*m+MKq$4$P~RqfqYJycmSA z0OGUVYUrn|WgXbrcLfJ>!+IMY;Ev_d`t?y3@N(O6!F6-=;OnvZka$C_`@qW=azW+3 z#6>%^OP5-=AI@$4_cso+#c>gRP_h&Y)@B)NN}sIHlF4kpx-dA$OINUJKCGJgY{fsi zpq2rBp#f<~Q;f>CRlhdfb~Vvhtq;Ury^Nk*Ikw;ImjhatBjnW1+@WQ=AUeF^1DqnJ zcqIj~7R`SnF<%zfWjhgep`eRV72$R+IBj-=q96yaw-TQk7Zc}gAl^>X;D596`6TEe zbq;;Iy5N_eVrKNO!!CF2gN?}Gg0fvRi4FMT5|oB%XT<-JX0hIZ=ZQeD{&3qRSs$r{ z{7}S0TiCv?k@5CMJ9KTD)eH88miON57PL!#`WU@>pIDvUVG7aacwf;OwBiZ1C3%ST9hD>eBqf_b_4T%kE{x%&F4r!3U_~IHsy%HLjd>pZ_xWYMt^&>%GCzq;-}Dq2}bdiONRq5R&ezbMQTq7a3nIiSEz?2IR?%)kp~T zvfU?c_bHSg#EDfgpvecigQe|46mKxHS*rSa#Hk=3(BaC~En*xI`-j21X!)U9tzwgM zTUp`^N_Nb}upy~{?5>t3;M+vy+xnV2^`?YSDDewW|Gh02YD+ z6kjIF1&hwoUTHd!j$F@hynLKq|BQ#;PL=cDKtO89f7VQ`o!qnq6oUsXuPndP2P>6% zsXG0&{sZ!}tf7C3s1qmWz@E_mVC@})EM2#y(eCOl+qP}nwr$(4F59+k+qP}ncHLTg z?R(;U5#L#7N8CGq&6qLqV~%&c`Q*rv*)e8paz9mz=0X)TS4dGLsVbF56A-puf(Ge= znsm!zIcis$?ZpKC@IX;?+BMqYJ4UGC8x){w5=f2ECeR_Bkb?C|HLLiBmII|`TMYA2 zFXXIBUz>}frBV_j#>N$E@S+yG@52{cbVyKA+f>DseX0|+4@C_mdHRV{chds_)gi;f z9KUBn)LAeE$@ofG@j&)Yr*&6cF@Fs)ljNE@BmY=J$A2rL_?=AgVoe`V3@{F@&ZOr* z=mNpr{U%E}cEg#ovXA*MGt#Tk4rw85;b}aQ$}=kqVU;ZS*DBFD`<597_l!S}Bi!WfoWfyxrCYcv!VO z9ref`=mjzuO_yS7Iu{F6sudz8X@#Ow^^&U$m1&z#30hLS-aVG5o06%U-!>v#Ujbfh zR~LA=`2PF%!28bQX)lwUXGLFa&jj8Z&r#SLEQ{VruQzlUN!PbR4!k?uB|m0|e^*11 z6{Uc{bzt!z1!5BwzMMLND#1X|d)NbWcgpvc`zt@s_$rIJBw(Z4j7POyn{i(bn)?>_ znSZ!oYE8Lz@%EzsTJ~iYb*aPFY9EO5b20zHyM9Id0xjZ_hRuHc2*iQn4_x$|=FGJ1 z5N#sOxV?jOYAe?3PSCF0`-Y;XZ^Tr9YDScjDOWeDJC;5}S2}<*1j*l^*BU!k!Wsx! zv(xjrH?rL0)8jb=9R(3JXpMy;O2Vuz~2G$cCpDP~R_jntf=SlEh8_t%q@3@v@ zaIEI{W!HJXzEp;qx-kR;x^P>qAK!ycPfykajEg>MEMMwa7CU=FkW4cd%2ld@w$&D- zy+0kklG(^Oq-)rh4LX_DW8A)PI!@WNyWE&msk`~-v0JjP1&?-xw4Nq=08 z4wAs``hr7+zD~i6i3A~0xr3*PN-*(OSlKhW+~kt8(r&l|WJ09$46WMTNV!JC-ZE;k zonHpkpY4TV-pADB`Ob_B7&aG|cbhg@!L^hcdvaUn%#?BuP;;X+2Ie-SV#8&vB?{Yc zM812hC6l)->OGR04{+IzD>hEdSilTfhz9M{QTBx&hl&UyL9iO^wtFnA81i|rB$eOnNi=X7+7rt9s+~HH?*kOL&OFia9Mbe zuaa|BEEkxK{8{xvKr#C4^9!i7XqF7MvXj`BtF&Bx!Jr?pk&~aHn3egaw zab{7LrEoyhFc#{)u;Tf0oX=E_FA9>{ycz(l+{&%}apqWW~o9pCV(?J~Gd zqP??cA^J{HmCgYl5A|Moy39dm0}emez~`?DaGT3JxX!U@O?kADXRJ=@J>ch@aO@pe z)Fzys>dxXtUP5L;%J8!{{XjRtr6A&Aa&FVXI*mhV!*>YoBjmyI=4ZePNq)pLZMySP zO@1&xJt6i3J;w?$zH!G`Q_*KcLTkl_3ISDNw1jZSL^pS>x_R6=lw29(WpptOh*Aqk zbzTLy6ax{nMukQa0a2S`eZfE1viD_TiMsY91@@x@)7%1!G$pHgLOC!Hlu2Yzd0y{m zT{$}i5XX^u9{sNuf=S}fQMX7Hhal@YscaUoCjy%=rf{qlC8(4Y%k6ZQ8iMe%&U|y0 zmjUQ}2`LJ-gNKO9Rz_(^sKuL10WD1lbtXR1QOKsoebexz0;-E+OYwCNqxf9qpOwor znd-mFl?#g;&3v3I4$5lp=I!sVyqtT`Z4-wcHfymcq8073r?MuTrX6P#;h z8m>obteEK66~Z>g>X*&S2nw!1lnYJ3Au@8z`a$&I<}gbQ?Y3zj-ozt)Z-FY2EYf3@ zZD)(X)|v;Si6qQX+Uq*IIfpP2+z`)K4Mc$TUcAcr`h z`jvYcOEVGYS}HR|vD9z44Ur0rh@V&1;uKUXVXS?D`$g7PFD`6w(1b~D zt=dfQqjZRkJSsIXz1(u z$C(wZ^MWmO6XxI08vs4m94gK9D$Y=u;MZI}ufhXu=qJvYGe0n|@xmXD1>&75Cdu!2 ziFnFcoL?dMu(ghFy+XBIPPXu)dYXQO=>CLMkQq9fW@!ZBHo-3LV;u%>E{8&{wyGAF z@n=V#>9AHUf%n2haQ^gpLIp0OA2M zV071-R^V@&3j0SWj{V9_MU@V8=#PKx^{y`%p`Crt%VH4!2~hm+d%a2w|K!RiuPF^L z3&S~=SV^&_BqMVJ4rnOuQ{j7)GYA|kB#{6t5z)TU$b8S#)MneXcHQJr5(54C<4?Tp z<1dP(ocoK} zv-GUmYo1)0!Tye&^Q`%bx#CPi;|r=~nxt)6&FeXTfRpKR)P7jt5@ybBz zuq{}}SHq2r!;6iTVz}!D|48&G%l)K|JU=s1hVTzCO$Hi8T9l!!w$lBThJ>L&$-$p+ zz1w9Z)QnZbuGTC(=~YLr?%BI|pnx9&!9lE0IgQtQ>feWh;Q7L+(7ArYK^Y*P+%)!3 z*D6oX?D^;$qpeQQONx9ofV-uZ>7MIf>dErx8J=>ZO+kF8k?HM|#5`3d(LCs$aS$au zwhDnCL|Buq_6GGji1RCK%0o}UN1A*rkig&`2SfD@xO;w$kpHaCMaUK_VkSjX;5j1E(D*A})Gn!|7uo@-1TV#&$2G* z*C*RV>tDNm#K9V3ce&13Zx2gzw!h27*$ks!XGh0_l+#dMrJvL!AQxOgEMQ* zo`*S@zmt3t2~WCqDl#w_p1&DW{m{JQu+Ga594L)abI%0WLragvT;4Hw67ReE3IF>2 z4$-ub$e(^iWkBPy;?l+#{5_H{b>BwUd`&{^K(mpi5msxw>}0JHV-i;~(}+~sQ2;HL zeqaC_PU|`e5@X9*qEP6Qx}Ge&_&Hweg~ULPL;KdOC?ZiQ2Hme`!5qiS6jQ-Rw$t%Z zE^c~g58LgMB%)Ahim2%H@Hbj(veld#?Zp)kK7MX^`q8VOwtEb7vcGe)*^JapH|piw zT}Aatd4&-vFhtI3ZaiQ88IQa2_rbyGsp(gAT6H*KSFP&l=&RGA)P@ zg`9$-$xmw*CU(^F+s0^K4OCe7r~0T{XZd#2O(a==?C|?;%4-HSB9+zZM;?yLTA(+8 zArU;x^$FND@7IiovEyLm5u1$hq=+9O>7~l_-x*GEc&Zkk>wh7eiPzwIRzxmKMPZ@K zPpf)it;aE8a9WNb=!{Z};o1vltHstxvAz2H3hu-L^GMFHdCm`4Y3!q>o{eLZep4gS z6S|3wPc_4@HtMj2+#~d9V8)|^TKg!X?z6{tVpdi9#H0a1-~_bJX?=Haz3Phe3vuZp z@?cLvtW#laKg06EAY;S~{m2w@0<1cq!^6V5OM6RDLp%P&`zTF$jNg7BR^Jn_mQm#p z2kpIzp=y&aktHV!`zPS!uP+-XB1zaO_h^V&*>q2`(B>`eTXg03Tk1ic_NVO(aH0zN4gnB~Do>^Ma-E?~G zQ4xyF;DJtU#uDgGLRB~VbW%ba>Iumf$QVwWW_$R+{%nQWsjMDwwN&%-d!xzqDvDt_ zdtgt*#8A?9jtAKQ}Ajsu3QPKVO%PKLIF< zH%8n8^wp|MD*a&&8jyBlWER7WRjn;nZpFRdYi*VKy`5FVV|gW`{Tj^=KC-@;MPE-+*J3obOKI zM4`ULU7peQEtmqE zDGG4V+R=(h0GkVq6}cOC$UoiM3=+Hfp{~P8i#5jgsUy1;kCvK)OTB2>ZO}@LGc@AH&jX)CaYt#+wRgF z1SdP2DqI@Xr3ru}Vs?=Z1p!ko*s{0zWbxvLaS^|A%fwW}Nla2aG1X2~N`H8O*m@Rd z1&t_A+z%=1wOl4VJc-50xlELqh&d*t z;P8v~FK7M5cufHCS;R4>ag1)CoyK`=1iHch0eDThDH;%Sg)cXXOIqMFU6!XTbJn+l zdaZo0&Fu0F`SSe0?n=60ncpW=&}X(1%BIWrhHzS^RRTL_SN9I;SSuT?aGe z6_xE~V19et>@^Xo^-lc`vjq4!V`tXyOMHH)eUzb7eYcjkp(OBvPP*KB3IdNq> zRJk_OQQ~!JF@aoVQcGR1u_@&KdEHqflA(Q#C+wjy5DIVi8#_?6q-@EhX}bPyu@AFx2SFv0TR`BQ*d+Aj9Gdgo1zOlVZB~HHzpCOFajyvfpNGXP(mTNJ$exg z(pVNeg4W-Wv)mnO`TOn#`$920frU16n#whB&Ay6U22-8ldnllc#=+?xIhP_z$Dn2> zpah^^8iD6TOY;jKmsjFbdV=u}&A!#p#?un0O%aucdj4$E`}vzZk!ql!H3pGtY58jD z#j&{>Qe_8`4x=ztfnVGzMZLH3YD&);M53&?qN+}iuqTlVNiY{lqYZO0BzB{o0`>e4 zbP0LGbW^0@re2V({g=U-{yVf!N(pop2kWYIf$3P*cmnf(h~+nVG$q)$MnJN{Md>;CmqgI5TA8rH1dZY#l|!WIg&nsJi?a4z z(|3r^bvEI?+`HJ%@QTY%qLy3I=3L&;v)oTyKEyX8UqAm66d5)WtoVN$-~prm6VUsI z;PZbQeoNaK{{`_B9ZW6$26z!lQ_ARy2%lO+Cp>iT6#0OrmI1TT@qvvB<#+p*hsvH^+EDQKx+Dlb<#{ zzcJm$mDg2IRh8E>C=Yk%tSxak$Ymfd4X$w>Yhf)0XC< zy-o~c$MFDJVrk~#Imc%LU*KeD{Lmmau7#Tvo?%L3hArt5F)rz9ke1E%M%EEKTCN)z1NPQ~>oLDaj zB8yL{YU{#1kylSCPzI%}Gd4Z6+cLrL#G_wBzPs+3uVbp0^(}f8p#5J#2SHw~oG0cB z=jZyE`1_{ARLfMvYURd>wGPOZMk2+(ky@HI>@pk1a~pa|1nJFLM^K5GMbA9-jH+!~ zRqW^%n<*WaT}-ZO$0?@oTf5s1SMd;ay8C^7Xbm6?cu6_wt_kgckb0;XumCM|K*xY$ zkMoWp_G@}uJxFM5z=~YC%T$?c5SLtz8Q}~QJ;t^HABT8g%i!iHeKPfvw0#=GeUS_J zE`KX{4m|59G-gx`s|TdF6|3=L0_nq-;(I_Z$C#84eeq5sPc)dG)s#g}%ynfWQPO6m z@nV-A4-4Kh>|AxK<-S2?xjUDq4If1bJ_9k;skWTK8(|&2Ea8B?!1GmDkOG+Ool={y z^w^#Q_WL~}0jy2SVfe`>Il;oYgrX1=|JLHmihQ!lF~V6!TIapsA(>f2S`}33TR+^i z4mpB=6JYP!koZ9qH)^Vv>qKy(+6lJchHid zpneC6)iZD|#AOI6btOhK9YW_)l*i)o!?hSwR&W<__zcZ(8XN;YU!0F)sQV$mGs|3* zkNVpqFtqWG;vC3FQ-OR(b@L&cOzq4OBDia%m9E0?H>baD)Z!MZ>LF(2mv8m_LX*Or zJ?jgso2t(0aA*H26af>AM7nEkNTZIM{Z$mdVE+hIGMDeqPk4F(TIe~h-u*m^W1==z zq2?x#-A1zVtdX~6N2dZ`n7kX*{t@0;b+lP+*d8e=9q^xu7G$7*Oxh#4&PDdSg+t(GoEX9 zTEm`8NbeLLwXQ>9N-H387|Af<4O!Y|)wd)0zNJ+n{!R~N3Pf6H*Vjl%&PtYc2dHdD+#JN;QGd$gyVU zOtBTS=Rk*k$(HYQL7`b`9D{Xds0U`-zQ?;SW^Vkt1I7Iju)Z**d;isj|D?7ETr=fV zNRuqVCENA3_Oa8RjhtA<)IQwwLN2_@kYG?S>EsBSorMOWwuo`Qi~-R-szM)BbI z#KZ3bk043m3B4v9GLbZo5ps0RqE`U5_gaNbQr(2>fj+9Kq(n5$0jxNYaHw>#074}2 zq#YV#&WrmRcvf7AN)iR05(OnfFTYz7^ounS&BE(KF~~U2&4M%u1KDZ)LfbH%D(L49 zG_s9pBNJ&btLQWezJf|DF8{?lD#ko1rhIci6#v#5f2RV1{P>{=8YTH%?f>;4{(fd{ zXH0GAWN2sVKyCI70;uivO$;q{ss9ZPOsyOY?W}Yyz6H#`ek1$<0Rj0T`t$$%60ZOJ zOa4pw|9u@kQjx7fSUSOMaFk5L+{{bBl@rqkn5Rn^vy^}bwz#lUV!bSA5m zkTxc{;gpa32q_8CeZoROgW^+OLuJtM1F*Hr$}oOgS5mnkI>?PLQ??< zC+XUX#zBRDHYL<(W`1|PXcGc-9MO=YuZ@PO$w7hxuI6nsoKI<<-gFaI4JC7~r)zJ3 z`8gkU3<|G|si|2*9qL+jybwEha^jB&*)t~tGwN3GEZvR>>Lp`D>FeTk7@H`ox9Dg}X6F<7@+WPZ@W8jWu z(1!XaZIU~W-FJ+qX zjHe_!Lon1kXbNgg9T!F0^+4Q6fAbfiIs5#b6yRJzY78ypN?lRy=Ge8tO3nuF^B*L86l@E+{VlKlE9NtLP1881^>1ob0$?I^2m`3&r7w_ zHvRCD)Zr$4#Xv`4H(v2(^@_%cY->@{br@Bd@ipD%LST3q{KGd=S)QQ9H`pVx3rmCr z5c!laA@s%xZkX5|ePWzz%C%<%k+~+47gPmW_Wk{#2`IR}*@6%hC91oug+A&6cQi(d zqmoajZ`A{n)?>YG(IP^jHU)I55KDiZFMONScB$&cw0Z^ucH`B_-5P(TTl6QVupBN`yMR_m0CX{iaEq3o-b4ZnxaCH*WVehAom7x6U_6x{8F*$xD~u~ zr4%jipemQZcr6R?0$nkrp{lPLU>i_A4WeJ+W%rC*KU4U@Ko}Fqd;_?)^p=X^F5(9r z@f?0JvyVW7stXp`ZS{EJ3E`!F1(3^n$Rt*2!iCUK;CvJZ@sx_=1Q4!&r%nC!Ip?;u zAVWTm1tlBicvH8Ze33F&bj?C`>H8Tq&wu_Z`x;&_56ADaC;lE!{mWF?nez z8S8)DF$iQG4eeb2540qwZvNL=7g5uMq2yXcjaq|by&07yvVcIa0xlj2ZiUb**9z20 z-~>cQ2IX@V0>S|B%?dVQ=7vDX$tzB0`Wx$3%GLN2wst3gi?CT$ z-l-sip66I^WB@xvWKsT3=l#KR%582*bYRY+vfH^7AK^w)UtiCT2_DCsVR5=3UzaCk zFG+T3uf7>QFogTW{Oi2VSu*aDJh88C!Id~|a3Oxq*0n4TY*7^l7KZ)B&?iSSeUX>Q zaurg|1+pC22Dl3fm>8F2b$`orX9{oNW=XOgv&_4I$x@P#$%vmp9DYJGJNT~?%Z3`7 z4g@Nu)QYZZ*@8&!L^5c_e9oKos3k2;@71hpd#gRTOF9NBIIXAV_|bXcZ;2{Swat_e zJZ0bmf)2W&0tyqdRL#6~pU?nb+RpZuN{(>-sufqrESlE3;zwWC2F|IIir_)$So^eO>%Hw#7X2*57K?Pm&-Jp3!VQ3En0<^ zLcAP>h5r%JVq8~q)|P7P)BC+`s}EfCT97JLDhI)kohRguqRj`!+*?mcZ;#mu$^Py*-}5&=?#J*TFe1+4Xc& zD7Tqg`Xu#xJ_g0V#m1ISnyKTOaiXLoG@S#O?s4I84~i8>p`7Jrr~>jn+LwcFPwf;z;lVHxzFjyT1QA z8j;cbbS>hJ#pSK|bN8{irQ!&C&!Ev-=p-@wD6?_r$L(m+D`|aD@yvO?O~)w~NPf>} zA8(qCuw*(!NmEtt)ko5NcXWG#)=GA2MmwzvF zxhD%pkbOIIUqO}X8JjH9i4LLqS|C~lb8vems0F+dVGyJSzH6?!$jX8vLx{e;Rmt8q z(1n!|QY?lYB3PK{1zE6DE zqb^Q~3Sfk|H-?ibD_`%EmXA+a*xWxkhUy?{i}S0qdVX;*+>k^-U=`Wu?1~;M)zQe( z%QDaC47WecC%<8GAwdj022V9#*f^VHy@<8;=?8k`AKM8-HD8einytz6tB?D~c5*^6Vucv$)x3FWJRx2ZYH{k2M+)oEc?w3{wq{2E&5M7@T#Va(xhs z|LhCMnQ(2+bxVKY8rPDNLHSR%bFBO>KTg82i?3XM!K-q$Tb_vr|2gt5vdBDim}mzrb@ZzQ+%INEA}RC8 zMGjuDX6ZAg3!f<1mwAN@nCsATUMBS~UxhvPSs*UWK#^1PHncYQ z5vm&1^_k^1HBG#!-VRqvrj=_W-|P@W4bi=F5t<>|Q7(mquYVQjN#o@m^>@!}`p2Fp z^Pl&;{{UV7o1l>4lm_61$>42=7Z6}4M+di99~{Le5X0%w5%E`9p&0rhp2%8@E%22Z z@YnYAI=mzV8amU;_)@3q)y3M|82Jy4URwxY+Ig5zE1~dfm8*#ZF|ez6B>1TkdDJka z!A0s}f}@Uc3BZbB65>Oqa0|A)00g!;eLB7x{64v`ox518{DPZ|B`HcqPCy1e)9gZu z3}%0vuL3iOHBo!>PPaVI2BVqSqFnA&`P10LDms$cxW@XkGQbJk`+;yv+lkzFox3?si(zFP%q!bBpadT3V zQcE>Kk;d&P7#Ofk0TG4tW5U5i6veh(~&jj8ak#sux2aZ!dK_)EgQF&jOU-2^N;ssv8!|oG(1H z9y=+-x|r!jnRJ=Bqi+3DT(ACke%*B(j3_^Hf@Q1nA#O%N4?pXmVD}d2#_!OfCI!iU zbA%eGf#GHSyJj~Jx;M|k;ZdW{DkuxhL=b@3$ou92+YNM;akic)b+&%t=!WYEy%W0g zyYO^es5uSNL9heHz0VX*K{i1yTclW7VLZJXx)gni2?ou=9G4Znp3C^fPh&1P;Q`Mc zAkd)?{J0PyPu1ZaxEvTldEKxBT&VcE6a&cq1LnVn@aeE1^HeEPY0-N1={iXsy9kys zQie`GQ2{5`Tcqm1Sk--JE6-9_66Gny>j>rz!X0#F<}MlvYbeuZBtV57EtHx{Bmvpe z%umUWP1((lB{>5;xRMse58%k$Yd>1ezT@@y?i||5*&yn=OzQ?J=GU~i`~*ecjl{D|GcvMN&Pu?V1|l^q z_FtdhD_=E{Z%V?hw639s0_|bK=f^g3GH|RYqggIXIa}CFC!#?$Wo(jVtkb)&6nkf0 zQp{vbU2Rjo5;1q(p=O+*`F7quP814DWn&4EokF&7R!<(EN%XHaOsfd6m<(~gr|HKE zdA}p#r*2e@ae7afepbuH$CaV6|BVL&FJhfjWt~yT#&a0qXLV3%WQLlA7oLJ8osp%# zXR*N9n7TPza+r}k@?0DKanAUd8UD+Hsi>yXp6v+KsAY;q`eszRm(_NQAwkU8^iN%D zMM`U`eSJA&dO>l^cymb$AsC)VXd-h%y_q>`p`j*kQ=Q-HV0l6TeVM~XwIZy$lcXhV zDJUu|acjMVRS&wxy+RwJuBixL{(1ns(2ec zkJZShpG`4<2G9nSv_G_vCs#)>8|k?h4KL>ONEv0{aTBc({iONK-ya0(a!f2*F}I*=VrVU8divnyyJCqsq4dZ`&3j1K2}Hp5r9mDKt`;SMFv z!yDxL1lzXCp+I{k1jk{+Osb4NI^F@Rh zvU;JQxAb6{1NLBOIca5Qd(C)&4K~ZRie% zOdWz_2r&WA&L=)!3<=fM0-nv9YW*s6MRb`d$(H@MrKYB|IWO+#IZIkP3X5haOi=)g zTO}*Mga%VpeXf?a0Xw~9{IEmc-$jm%@gB*)H4k_`OEFoy#=AH6b{~Az?{Yn2?UKCY zs|N34=k3|sOV1Jh3D)JO0Vi8_N(`jWm|jy+Zh(Kfu?aEQV@@A6q|TJ>%f`KmE<^DY zsp|)CE7i!ERI1OD4a*8K*CypT3kQ)FsO7G;H2Tqp>M;wp1!dX)^kx+y1rL$dzYFro zuafN3(MFym&uP*wtt~IFM?G9(_`$C^q&q_Gaqk4F`+$9hc9F6GmJt$YeY|Jpk5GQ@ zl4Y2b)o2FUet4T&I2UPUYv;ud*ml`>f8o(itt_@=VZk_>FgLVVYYEY*WsTlPSdT}! zt9dLZNr!)tGKqx+uduoE4YPj?Sm97*;@YYn+fcFD4@yXPZYdVOv=`p_tI4ezZoSD2 zGY#&tFG znT0barM}K-cOH~y&Nw+d-Nc79Q6G|OnIgJX+(g&E1-3D5UJApYd@*|6xcyR2IKf?# z;5mRoM@FAMH8%?L@Ve&X@SM*4q>cfu)eHdqDorF4yrpOb-wi@D@oY(H=7_11-`Gjq zyPWT?*wbrp<;aO4GPabZynRb%c?B(35CO(h>3dAIjvE(7ACl_e)`MYiFn?m#?$%|w zlI_G@;ufy|fGh7P8r&rxtF+0sYsvThRn0eKzb|@pT8_)NR-xX58lVrP@wc!{W++gQ z>6PcsK?!Gr((PVs?#=1OzcdGYMjVSlYIgCSA5V^J#K27-eom0 ziJPMCq#QgcxTE1RhqR*{QYjztu0S0u2_TckMixe88I9y2I^-A5G}>d$b0Zo`Fe7Su zCq%vC9G!M*ETP)wFAZC3WpFQqi;muR3;e1fo1EejmL9-23^A7ZPju8%#&DX^$2^h? zK_++vdlaZ?>0QS3c66J9gZ4iB$$P>MouXX9fOL~(76~~@n7Jvpq~*~fteQg9gtI}% zx(fDioLUwG{Zk-n}1{FOX(bfQreX~aFG3Ab`GeeB& zRZ7G_zb47fY^@L3Ln(({i88Z8>~6U2Mp9pK$GKg-Rw`s-DSL)xHQQ*(S^t25x5obL zj6{OuLzvm-l4TR;z_4PZ%m(jv;u7TAl3YWs2A~$er1p6zhxEBpki*|cE(X{y?#|xB zvE+ZcT|7UK9E4L+$;4WKtss|;Qq2??y{SCMITWMLTa74;N{emIkJD^!2`B~Nqo57f zhZ_m9vB_-i=Mg@a;`ZJPOffm)w z9@i-8Q;*5MUgDo*BEBp^jMZNQoyV*9hXhlD26|}2`xKT!f-vP$(7j)afXja%BfaT)D|3`+OfajZzze@a}TI;OV&5)M}O;&Ueau@Rv{lJL*K~ ziwRA^4pmyMBdZJXdHWj|473*{I785{Pbc&8@v|#CDgGL_Ea{!B^Lcwzq*`aC>QwFC zv1jTo>zn9xu_|kQJ?p2=%ifE>XQO>S5+6a|Q=w$!e*(L_|KE-!f1}<86;}_02gI*Q zB7@isTu^X-Um$#;WedDCoOyg$P+Za;Nxa`VJ!NqlqI5Lu@J2?azKx9y3tDOymgZMV zYJ%Wq!MK#u{FW7*7lP7=6&($YYUUM>9V;W7sxJ&D*z9-gn^zrI?0>8ubCRIHbEnX% zTxNpHMvrY7xi|agnD6$`s8g?zV67kc_Mg_;N%|Tj?wq{Z^AMI?Z8}_dM~eZuM}jkZ!!Fk#>x*zeP8%*SH?b(!SOYJMhm0+*|{8To*y!Q|>o_ z>xV(W+PgCsc$e2Z5a&;MAkMV;)OE?fxG?%R-kXK{JGg$+679nHp+DvRd~&7r>BA!u z^bqv!65e8CE3ZdwMT{afGPY2G$8kJu)oV1ZH6%?8t^y;OB7nCMGp-*CF8!5P%9T9E z6OZ30Mh-yM%YMLVM`Bf`RxFNXg(S0B26bAC$&C2(BBhNoq=e|q4_DYt+{V%#ZG=a| z`8lvK|K?L|SG83f^#b+yWJ?sR;O4kN(pUIRQ0Nh9h72~Xk;5#0Ui|zx6tmSpoVbFj z8V`t+Q6OJTrNJWLoOe~Bz{ixHLDF^`<^$1{S*MRIF-z_*QD&cKU^b)|-IUo4WM@t2o5z&hEJ zIheVnfPrP2MJb0fa@YlK!hOrO!Oz;TrLjb~i%|1MwsKN@fAQ{6p2~*1K6QJ!_!O&c zdqz73wP`j0wqJGnMo7w*NQn!y?771~PkD%0w?}!LhMAWp`iUD-T*Z7xgCq${g$&ef zm%)>h@MHGa@P&f?(1{gUQCk`|LWWv88ZlM`Sqi<4Nm)7YeN$rOR% zrTW0?>s zN?qSYhLn;0 zN?O7vusSp9`mG9;F1ym126?l>N^Z6#=?upN>!~(GL_}a<)0etCvO1?4=hG7Ah6p-L zga*$C#Orm6br;a_w!7}5E1&t2q*>cq;K=^?$lPJ_Q zYt3}DyNGKvEhN`UHYkwMSF~C!*RHANCl$`87=eQ2!cq0JfgWvZfTG*La`(RDB;Lt& zu92wo?{kON%&V1|j^=3;rMwsWE0rfrha%;P|es+F;dl;o{l;KLdwH{ccQCd$z(4g)wcmP(c22&0bw zLTIW}_G^~buY?9$=7O&TT;+k?ioLevAlPMx!y0r3RH$TzSgVzEZ5FQy3NKca^}SNu z{RD&Es_K^l{nic(zKitYKiBwYZ5P3L1!gJlx(K3r$%bf)JtKNi?lQx9g$a|-NR2hX zVfF37QT5rHedjlj6q*zB61!ag#%|W=jeEvKLbIOjnsY9*j}l-9WUH4DGgr0}*0rPhx&Fq^d>blwM3vQn zPMN}rEX^3{Z$HDJ0&?SBx`KglbZ`MJCsDW*)Cmf#z`2@}S}vv-c*rRgI*j&2?H79S zSbg`)(Y1B?;H5pQt$%Cf3uZdG>VayVcOoVzh|x@638m@w;MJ+r2_}MtKz(C0_@X{I zzIvdQUKM6o{a5L&SHaBz*6@d~M!Ho_eU#HCyYXt3Tu|!S3&U0&qG}DlpmKv6W!TqR zwp2kMgC1UH(zSFu3GYGM#TE;dF31IHhIi=|trKZZ_1wg40SWXlY%Rz@GIe5V$TM^c zhXqR8E&?rdk)IPP!R1^;E!F};853_xQLdD8^v7$LC6NFUmwHm$8j-nL)oFYpo|ri- zH8{&%emz`uJq@N*QLz;O4Y1ec58i?hBdm03`_p}s^CPbb)jXz|6#2BId~<%l28K@n->UCPv)r*qhh$(m%po%4-wOy(n=_g<1c927ingJ8tFd|4LtrlLXaM2q zVw2J0lF>9JIP~(6X3UUVH674Rf}ZlXJFXX`vuFJ-R#LYhu`fmI^5Wz1a)6Q9oz}xC z>xVF$;o%C^u>Za?~%Fg^o0#ELS``OdC4~mv~nj_3OVcK*BlW4^qKIhF} zT;gn8bZ4)dS zJHfvu!KTYc2y2K9bnGTGeLc>UGDn`fLJ-FB!z&ZMAm2H9o+a)l)s)lQ+`Si5R0zjA z=22}+su4s*W}h(t`EP&HU;qFs+%M^Dsczcem<^op#ZNk0=mVII|kmRpu&mmvZqc!^L2Uh2ZVmb_e`;Jp{+gm$<1GqT~3aCET) zHX)@|&rmVZ-7)<$1=msd<4)MUc=%<1=iiideZR4D#kXdT4DFw=q1b)@JFpM(i~u zqe7!6Fv=r=StlCVSt`s44uVqdtWy;+uHWQ#Y>FbhogBLKWU&MkNt5bM17qL3mYj9r zcsyK&JKcUOfUlzEIx=DP*{32S>~hJyF~(Tc9&15ox~^w&k2?CA`K=!B<=)33@p>m?eSmmLRbRI?R{FLl3DPn;!r&QTghQpPr179i6(4BTsg9s@ z*J)+#U3E5if*i9DusOg@X*i1Pu;(YXIMVTZ3yjYPFw^Y5`XK&w-Hx)N@tE4P#?djn z+51oPAYo=0MvXdc{;(;flq~}bV9Q6RB$j>`i1}KSjOp4 zL5fn>wl4#y+7YJsH&TDVdJa<$o3qb>Pw*SRuAV@j{5h5=GB(t;ugQ>*#HPsLbbn00 z(op`~%UbICncU4>aonGet=T*$81C*ht|xVUxK{1`M(MIWgohP66zgBStc4U7^%0Cq zl?ZyHV%mq#k@(Flk4&E%FuL2s?^uo3)9H2&QBHtfEf>NzE>KL7>TW2^u7jBe_EGZB z^qIf8a#byJU{W7PCN8~zTM3HH)Ek*hLiFwBv@#4h#dE?bhD*5cDqFC_t?QU*(9C`B z3>2br$PO1YHx%YO>^clcD9$h=h{Kylt&n)=9Y+-I8L6#pE`^8FH0YpxE7>bdsH*6P zW&5@h&3)spsC#QOPOpDDrQe8Ow!+@?4R>=@odPH<6xDx(kX++ii&gHW6rtfM)Xx z>f1%^s>R+!WY47PxhvcwMU0a2_|M?oieG67NxGO>{(igXK-VLuawPwX_B>m{E&O%JbL2<-irdM_Zy{e<8DC@vNm3 zkWdWzQxP#V)v?%o%3sgMb8e3PxhE@E=!kRms~GtJ;LI_8BW=DzPgRdS!uC5mMgY?h zFQE;}UTPv2KSh@*wi?fca7y@Pm)ubBM5V6Dw5~COuvzr;CFIm3L_?0U&6u+5;>ne= zRIgC5p3MXuqFhZ`&-)%)8zT{ymB9#rOrfvPKS1s^Bznz{e3{Wj>(+=2^k(Gq!UhYlIu8C4Gc zJ`V;?K#$ZcYTch8JSY$l5-RQ+a0{V+!OXY0-OZTE7|9-85TvW9&we=YuEGnU3jn#3<=>cq^rM}CtJ)%FRco z%iFu&AtfYZ?SbQQWnkJzcfJ@1PB;JO>4OgA^lZXuBbP_WKWHC2a$Ie#l*N6zQX{Z$ zj&VY)Q9S8Ir@Z(JensMKak9MmsB{Zy1BsV!paoZhsCEnI;M`1d<5;3aKlLKTCZa;~ zMy}&cC>i$=HRM7lYkS z^#7St+h^%R#=k}4Ex3QR>azdaIrYD~wI#p3yZ_}~2$5@$0ue;?K}q6?iOJDe&m3v4 z=RvdqPVhI_dmrcKdRdza?e6yPHQR@HRXoT=ADN&s3w^=A?T(vmb^FoEN$03!B$a+= zcd8HNraqbaV#8}~tVYFcTWJ~|lh7@aCbJ2~mgAFPy8`N)YJtzJ(s)~vxg2~>{WL$Z z1w8v`Ydd1@a#{z9*CqHQwFbO-j&sO_Y?dM$j93H|qK^nVv^ z`Tn0q?c40(VoIuJZ~4C(H~)untETO?D2DjC0*}-pY6L6EfSRcU(gP~ukB;1Fhmz({ z0b+ZdncCXiO$z->Eu{oi?|sKlc-B%L!Q%|!Y@g#dKurmcLJlo&4#L{}^kJH#u_)#1 z-RnjEN9!GHNRq}>f;UMFs$J!E4KAjg$sLuQxdX%`HZ^u7?BY%;*O8!?c^k^tEh}-F-iy(rd0I z)~t8uWd^EF+H>D6OskR&i_EgAJmVC*j5hDXAH4k*_fcZmTB6P^E9X^}KN4Ie&_uT_ ztX?=h#~HC?dXQ;?eg>NZa8A%p8o9}ipFfb7Yoah>&pZoPJF7 zY@4YobE6snBxU-QH7Q8`qdB(RMN+n1AAMgIL#-90#`nHuqmK*I3{2JNM%wIh9h`+q zd%@|+Iks#M#yzaDip<&{#XEabJq^7aj%Xx?%Rz6dev7i_ow^NnmFwA9Bf849+zVrj zCac9y;JK4IaQn97I|i=Ud8Ud*$B(oHAJZpSZ-Tne_8@SP$av;$^OZJh8tM3$O)%h6k%J6BORQZdZw# zJg3?4$1WCd@3;5l6fQYn%bqPQQSo+-+ngmJ$S(*7+tc;t)I;1l2MS=F!+xhj>Sxqr zVD~J~i)fF2NA7t?^KO%Rg_m}dUqmX1j-B(Q{8*%@ zfFZ^I^0#`WVjc<4&dag#tu}Gce4&-oe|&dCB;Pj-J6h*xt1Ui(`n>uXw6QAk!D1Zz zt^e7WSlEkAo2BXoB&qzg=m-rp75~I?okFfo{ROW^&7ikU2J`vzL4ARoNqQDbE5J0n z4_dA$l=fQ65cPT%IG}h=lW^Kl&oKT8ey3#ZMdDMPCF~`v#o6SK{}JfS;v+DBH0NIl z&y;(aa}Jpl3^yt!J!9?&iV}5UrSl(VDUe%mkaWRB!b0Z2*tGGeF+-4WrrMYr{KUEv zheqr*BMG!DK(54haw!va1!R4CU~*pLtN8`^qzHz}g2bQ;WICm}Wy|66(CS2OR=Bv$ zyhobF&sEJbAA)eQ3q*B<81A+CKdoWp@9_eeW*j9sd$+_dk>kCI?LyS1zb6M z$eK+mC0xHs+8>;R$b+Wq4SA*;=Ob8m#b7K77(Ei<%9J$GQx}PG=t`4H)aj>Je_24O zma9-PsJi;Anaxu*NtIx)Ti4`(HIImuDRskglsB!2U0QUErn8<2xwI?-P}`ExqCb^e@V)vkC<{4y@>Nwa3Oa|sn^VrRT=HlX zevRM$PJV@ZLT(MvH%hEv&c{GPZ580cO)IM*+JiicPQtsZeQwTKsPC|Ic_iP)B2+n| z$ajE7$molLhE)J5jRRGdt$AoUlj#~cp1cMcOLI#OK(}< zzd15De1Jh&I>~>ceuP0L429ui2n7!|1|pl9jcYGzgGnF4+%JSV zZ`bXhpps(;2gV}@7+HtsPp6v0Q$(3Ve*>~Qd24@i6;LPKld6dJdkUrY3cJ;=`uL_v zIO`E7!d_XqaNz-gx7Mdq7)4D~tskvT`NPX=k4v>`+dH?>c-!V&cWs(#XM2kGfy%X1I^r5LrMw{9 z-&6f(_nS20OlSpqzwn`rSh6hbq60{wp91a{qC|Q}szslN#@;ZiU-Z@3lh*gF9yx(? z_)8l&C07o{N=Osd#YAM8<_(z*p(_?HT`u9(8nB_ykghZyBXl_GW+QF*N8gAl2aV$o zlI6zEjfpTjalr99lME@Q%3aV~#aq?Lrere3GJ`MuH5~JlD!Z-{gyI!8ldXpJY0OxDrJ;Z&iS`@sWzx&f0iRO@AM%uECtCl z;*g>J6z)WAyvv$sIXBdvg+j59nPjL^5rG>{amh{*+1pjOWH7A$sp7G@*_}GK`r3up z!LXM&QN>t0R|Kmi^i%MoqbTnUg93(TrC*3GeQS&)_}v7yAF?FK;asK+k%L8<`0~6+ zUgIT&#n{f>_W+yTHMO<%Jiw~1ZX0P&RhJHa5S|1%1?}XJlv=wgKT2f)z1$=kejJB^%_2c$+K8u5G^94%j$EE{ zovS1iBW)LU1|24@no)8l_O?8Ng?l(YX|i9tk$CxszXCfWS{gAR0)PEqFlF3fnMyar4|RV@fJ>tMKu8<1L=WqtP;fIAxSG zmekMg(Do2027j~>n@=!|je9_6KIthr{yib|*2rAxDR4PLOdh7fJUr|4E>^)qZ?I-< zcv)X0XZW{NuB6zIhe{E~9c!oDFG=xuy`?iUPt79rGsP6&smkKK@+W1FPnkjO*CH{2 zvQ@VC5ScHfP`{daoF|+ZU+LaMgX;NP(U`@gNEGb90Xrr+&QPd#&KkGn%OE)2be~rM zPnxh;vob>q`1?q|LV>C$jF_F$USx7u39X{ud7gF4Cp-ARx`J@sHh&1 zR5L#6A&L~cKY^K?_d9rkRcZ1HdEt$61o|NM?r`+QAgFl;bUOT z^-uy-$LEq|hDSmoN=+OU4hdf)N-ZW3Ww9dT8W)qVaKC-#npmktYi};@vCKlsV$?;f zrcKPD)@A-Qdn+EqX*8SY+qX~c(Uij^#$>fV#Z-r+ZKkgP@ky&VFB(+cRVguZoE2&F$<GR&PyY3>hM8o*FxAAT^Hg)Ltx|I80cw)HO9d(X`_n{+){M z*M;?64|mccv6emjakW|_6}?+t5jV&+u#cFxQ)+)+&VI0{HUoQ)$-d7y931fIdW)Ux zD608&FVR+Esel`)66%_cLVBb&dBdbtH19;LsvFaQ#@nj@KOXtG!dK2VfMLU(tHU_fnvi#Si7 z81av3#d%f%^!4PB2}!Y^(hq7RhJCWm06?22eiE^o?e!BTF-=7aH}M^(%y%Le843Lq zLHy4T*@kpZD;$E!HCd8_4yLhAdSy&2$v|C-hRuZ!-ysxRFCBpvx+vxYd(S>=bQlz4 zOFB@h(owrmx}p^f)bm3#Bg zn1*8OcpI1Pi=7z+K9*}Uu5VFWy?#R46W(@p|JIMXxC184%dEuLHY7!ND6(bf)L@pL z0qrx)v{BlgR5^;M*({43-!c8?8J;qEIyC+~<0|*EL3_{Br;kO5&uo)zsVW@2Pi_)i z^A4?Qd(-)5von0An(c;W&DME(Q>Oi+{;i@BLRX=Oc^2BR(WZmn?8!6~qfB|fiP6e* z{E#Y>UFH|p?j*`D z@SWtDo=B^=U>r@NoL;LJ-k+|<))A42e=sAbg5Jqm+^<;Tf_6Qlv+l+^ojeTwNXQo-WH^Do<5C@8 zO!h1h9F+cu%sXffuL7i*H@@g}7mv*EY#qcaJ6qosr!Viklu}==>05Q}IP*&V0wW1wL^7!A?N61=6IaU~GtyY*&26a(A=GzMW1plml!y zuus4B4R3uzHknVKntMo_k6IeBD~93^+3y{k>vYtAiVW$NFn4H%z?!G=#cVjh_ukcT zjgvz~ zbv@mTf^_*qo(X>VQz7CHAWV~;L$burD0D)1Cg=iwaLwNTf?%{kQ1SSFQb4zz8b;{t z5Yz{zBPfX%V#zqKAc91MN(&_a_>l=uQ#!+FY%y0MyxorefroCSkBT zF2T=#*aAE5o)u})f?3Lf{A2-js;ELkWU)TE)EF*~O#ukI0`giV5XJ)Dt^_Q!d}ePt zt-kHqP(ZmB^7n}$Fa8J#?Gal66FL%n{j0&#O@GnUvV~44J)luy)R@Q9A-(`7g9qg> zzQo$OHtiJuFkx9Cu3?^<8ejb$RH5YHjw$+^7Tae}9qaG%c65pf?u#pozA!+c$_wTV ze9VI73(fvUIZhi6^ml_fza&Jy(4B%D6<^R%Ho<2_a7s-<`-ApZBpg`km9hUq4(8~O z65zQIE~G`ibea{jNH2EhAJjooQTg*m(Zxv#(#PpSXk%qkQ-##%Z%VYqrW!&tu=6v< z`<9py=6AGF2Ba@}ETC*KgC19Q_*od(#=dY&#H7q9j~+LCW)1~18R12tzkBe6*)bC;HX}f{u#Dq5M}5*C(M`+7@tcr6GG{72*AOYD&|v;junjf21mm=H^1&;% zTMzeo>iP;Ae{DQUaw*^(fNz$VhXx>Wonzk;!`RpB!1S`{EXYRdT9?e`{|pvr?6W)M zI4^Og#}DY;vlZs@5}sJMrlLr4{Ia4P4Fh|{Ih{<756U9B)nal4RpK9%L4Q9jSHE{d z`+5Z(j()-4X$AfC2LJt zci^Ci)O#}`P!kPERYgC}n9?=g)pLhjg`Qnqmu~m!2H2ksaB$^|u5z?G%Q{1hEaasB zbaM>s<*W9dXw+bA9O!NP%kgPkqd9CXMR?+A5~hOB;d-d8BPgnB+{8m`W*%0}f%7#C z!E2BF8NccCIwl3-{6-aJuHlL#>u8S|ghdqjH8^V19oRc1r9LRLyrW`rbd0}+D|?o} zd47cAJ@J@_WltWIcL)P>nNF##7Wxr4;s#q{emB5#XX`rb&l4JkWvH%7s zSl-0H@Y%jlT|5Sau(^`yn*OeB@LX;Rf}6(ugZ?$uaJwK^<%YBU`5&G1<;XkppC~_m z7_t4U+M@iw)gXlJ|95Hx>3_fZoyqHJY4ZP@CQ=k8r9hZa`R8kmT>C=(;vZerZ+gxejd{j}J-#uNooe;L#^zpZs!A21z0V|0I zHVLACQ#*Pj_}>9Gk@qX9P|JDF=$wCz=a5H%F=%9E_pE-4fzEuTkOG6QaIP?E;&k=j z(j`OF8fP&Xbq`Q-!KZH@u^5H*!9N#1VEj`I##j;l#riE6Rs73NzklD8`H$50e-w?> zEddt)St(XR)9XQA}U<;A|auY#{-g247UGK`>9%`AQKRoT#55sKUZg zEi+E*1M`RUdNJJEteEqN080=4y*%=s3`Qq1?tnb6TeN<`R3ifcO6 z4}(GES<$`V6}2R_%;(azlhn({4#;YcK&!2op(WOg>EJ9m=O^$%jn&aJh4K4rhfKrT zx!)Bi+c;HB#go1{-aN{VybYMPbx{T(b)CUSG(FSX*a)~>@_kK9(+(vkJikN6;BrD~ zTt(_Hg0oah_IwF1VyA^StfxG3At&hV*}-xu0977OfJ4;i$D9XO9J+`XXnSf|W?oN1 z-^lErThFdkq#+G!EtB1F(i5aaf0yGoXVKkB_GfKdi)S51RYQ!?^|DUZ8ajDeEF^Lk za@Q;&c~D)>m6gp-#&RklEk~E-ikC_yMLSL8s)%_uiQFuGqNb3m)&Ek~4@Z+M!+%`f zxwJ3$ZMKamaPmnsaDk*Tn(xuhSf+D0AfSczlg#k++(O@2YB1J^lYyu+31;Uo+2kmE zPCcBEznSdur?PpQ=SQMRKKvA(?xV)Xb`NHQ+r@bWiYw_yz&hF0F=g8N$Qz+lt|PSm zYF3O(boV^fyIf!uW-nIK^30qH<(?oWH^$@-klRlCC4@DDrbkCbB^Jf7Wc*u7mx!hV zgwS|)i2gYJVMl2}Z3|;_v-PU8Rv{Ek(r?r(6ko5dS8M@Wc!G@Wu#7Zch+%XyA78CC za{aFzaSMoGkTKm?6}$hRpXa3zhD zDFz2}B$X}kn{bbx!{%x`aGegA&mqx9jfs0=xD!X#0%k`}UV-J83q zk|roI1vW*(ma1$GHbLXDd^+g&R|i7CCV&kxo5TvrquZ1fM)B=qD(yPjO1n*}Djs%N zKHBb|4fj!lim^8jBhGAY1{Sm$Xc#S4r3635rpY`E!MJ8*X>T!kcb>yeR_-%TwHU59 znFd)LHv-%>H{?=@TIl#4W|QHZLMtXEOcg{xqLRs!L-2Y=UF5M#^%!*|C$*-X$?okO zG;5ion}O}~-<={8(**49wog_HMT?9a&$)#9dFSc8Lb1-4R%oR;J(4caHXMB*>uG9`eEQ`G?wp>g<)CJ_(($E9+gw2><~Sv<@;$uheE9S=5$-=#^EM) zG5)}UjEm99+NnMj0${5WWxLBRcn*@xIaTt98;LizvR98b4oWG?H_oHqF9 zg9FP|xOWuA&tOItb`jyDXSj)7C_{t+rWfJ(LVTPeFF;^nz#W_eB4tDqMwn)N67@YK z8-@U7KLiMqic)_ZL2~ImvwZjLod^S07-JwEh`+2SjM%XY3?xB{B46JMD+J`y9c$wF z_X2D4FLBrZ{%845^1%PDyLM|qcxw-1efjChr_MHf{30SJXNn+R=j0&*3Q9s`#^o6z zA}Rp;#(;`9&_YSN9waksK{w5%rV3>N(`^G3^CN_HHWn6iJ6?9Y=DSDTUgUn2(vcMi z+%2Bpbbht={@J0*d!K!U_)%T_(%FDx@3L=e#~a*=<1S9;c`t{tW4gEP^jZ&d%XAlx z%YQLq>|TeX%6T&2$idBM#yo;z*F``O&q%;3=q}~^Hynn5O);QM=d~?Dir4U=woLam zI>PGh%>#waX(1j}pJ_iaNuNbAs*LQD!|GnvdvZF?zVi+b#m;+IBxj58E;+*UL&oW= zJqyEke}v(lh6DJuIl}TaBLe(mCdT~E3&f9czdvv5mF1I|z>jS{+^?+x_bVCnD>3Vn zj^N9&(e=yJ6_f)>6;oxLMTLxDc`Cw6CS65a+^#Z7UzBe0)qxJSvaZN-sSopri77{h zE7NWc_WOKHlv}V)ZYGrj%(@zL4M@e!p>sUNS~8jA3XXILoZCQ)L1@|}apg_65l9ag z+dv5bd5&MkkJS?7+1VK;C>Z-`zaX`73B?v*Q7pi!u))vMqp0}U^PazL4;Pj+^R%?- zwagKw^{bl^6^e`pvejcUp%oWv63Jp5Uub#6Vvd{@5JK$wa;K1ow`==5#AD0Vf3TL$qy?K(+8c9iaWJ zj6x$|#B~&Uwt-*I=lbfU_9u;|NeeRyHxND1~n*e9g4w)RRcYPS&$6VKiy|0=3d?Irt(`Hs`gAq0XSL zaqnWC0~MYtiP* zIG1Y#KgQ9_oS9pwC-gkBA(>(by+Isvrnf^_3o{ND9hSfgeAc}%_KBraLwe4+2hD># zq#dlK?MzR`2uQj5!2PYpi*q6CP#vWm#+{=~#1Y8}MAHs=I_30a&wJdog%}fROLJg? zdobd}A1y*8Y1+rNF?lWD8H_GJ z#9J+OM-)m2DAloa@$Hx}H8}aA0rdGmYM`rHuU@B5#un_^uvd@{7~~A&8-A3yOpZE_ z76KEWKYT>yzE(Ic!fZF}x;73nZ%|ken(98bsvzr&&M-4( zCu`osPBbc57UokL&*8OuoI9SfO$+nnYsw<3ji>Pfy)K~vyDq{HszrXn^{maWI>*-Q zP5q*+kj)bW5)?e()zC58Ht+#IS^)tM0mUm86g0$sPzc5-OthDI=$2E+UQ?IEMrRdT zg~S~x&lgT+Jgd)F7MXiI^F;rA!|xD;b}SO)kaWd>?8wj~JPQFt z2{Ir9Xtv4ETs@g4pOC2*@d9s((|#d5Feg&!ofM?ObVPw;y`lx`NxH#!qHUAhVRfh* zAma8*Puf0k{iM*~ngsR33JIA^Qb$J?KiD^+tR8QRmt7=U!HWS@fof;1Zq2EFqht5C$Jxkw~1?eM45U9X2wwQ#|ov3ArGM1ufRN&id_7HSL|Tt}Tq7_JOt| z`GT&JCOzVxqr%|pZRXBWqMRhd*ceasJofUnifrZqb4DUuHUbTLg*mFL?jf!v__uwB zA~Y50VdBvs;-T16to;=3;a<$H4w;Fkel(V1$@=PoYEpl(ZF(<7YAz!)k=1ue{dwFfY44C{jnx9~V_gJ4m zMO(_YZG1k|7>GtaKPBeXdg#=TkV*rd$uP_5e7+6qM~|)a<)Fvpi72q=xvvqEj&JQviNbRNu+yt|oPond|3pvMY z_2uBV6CM;(U1`;75Lv~Z9EQ0;ON+ajdqPoje5OU}X5)xHv83l0364pzR5eM0QEyQ;JVQuU<8BU&V4AJFk+H;Q{4Euf{vS(Vz-mj&!q?r z{v~utfLvl*=G+=mvmR!*#fH+|Qt{??B~$ytSGJfNEW<`;R;r^+>My^!*-kxoHLPb~ z)??y_FsHc_H)|0_Cy>fO^6D)w^YL-}`&QWB4=#}4sykd?{^$Q-Lhqvj- zQN=gX%GjcfRjZY9h7rd$Z(FmP_XGae4)Kg0VD(35^vXA`BqXx}q((>hlfJn2wor2) zc>3B9u=0fDuq6p8l>#xPQYrl31-l91_(!*0V&;7C^T#})7fef8iz9Q4@Cb~dVqZN> z>0YBuy1rQnh3T69Mr!E8Hlj@8imxAsv}Pw4nqAc9voo1FWzVc!<%iY!CkG$6eJ9n+ z&dzEWCe`%buyn?px0GsS|oPEAf_Z%2!`mCdUf~8m@8l&G#Rjj&9d|}OI=_;{5COXcC#i8S;Tiuu@ucqxzgL<9f$ix zfF(t3sr8sALYWe)#H*fEy#)DM8t^xx&i2bHUOv_EE5A5Ws@Zs}vu68C_RIH^~Y`?DoB(+~cG4KtEDfq3t@~nSsH7jdU zaaUy=suUslG_53c#A`@4+<|9D;mQqk_zPL>>ge%Y_yu@OuQBP@v@utZy6EAw(?V+o zr`-dPyWkmA0@cSB6iIEzw81-QVs500Iv399w@T;j<%W-HX;QvsJCPw4ho^5+;qVZw zbRt5UC1VkAfb~!N?odRBbZkig`uNleNgLT&pFZ>#|ZcXC9sk zY3TOBtN7#mP75HdJ}?WSQ3IGuKRxip0kAXQ>8AjI!_%3&^%VUMp9ePG)DL@^Adb?0 zoO^CG47+s%>pOT`KLuFH_cG4ECi%o4Au5o|@I zegsEVj(tGQn)UKk+?-R{_*o6=%P=W=+Q`IqZ#h4auLNn zk+()1f2ladJ(Rc7tPgbFO400rv*&LZ?_WI5`U7dd&#Ejt>MrLcPoDYs-hq6})%}7A zs^;bIls}!tdgs3%pgnyk`JqVi1?P7vz$Omfp3P+?Gdo?Z>B$O__et>2vGpm?vq~BM z$B$;Ze^t!?e;_up|0`l+(tm_LkAD4wY>ZM9QTRz0_{+B6=k8g-xKO0XY#Bl#Ca!D~ z#WS;esGHTBPM`6?qyV%6wlA zz|u-%)j@p_yx>#jjoMePJhKMBpaln(bU(7j`;F-Sop}qxCyfurbq}(YLMUY;q!ArK zRm9y2Vn2Xvlv$;LEfRP)GP~d@_!!)XP`K*lXu05!JONu;+k@JdJH}^W)`7kf&d|wE{84Zo6BhF z2jXK|63C@@nc)lsUMGg{@1bKh&VaERIn6F!#_7}P96W(knI{LuEo~5iLT8?AhOeoh zWQ(-Q@@qzM5?8iOQK~kFq>kC6CfNHCwmmS#=7lA|0fKAS70&8nBJzaPo9hIO8nh{F{SBLmUyJ7TOm$hMQO zOZR#oDk1K#;*iagAeSR03|vo4A9k|Fd;Ge(fH_B8p}4BK$~T<1`$L0dA+%wYy%{0# zv7TSF`1lX(`ciINVp1pSZYknnw_(`AVG9CZE@9gr@AMd_nv0Rs6njaY;BG;KX`6)N zAX;^#waW}<0LStB^=MYRXe0$Cj$VTb?ZS05@5Pu8UIp8(Iyn$Zl)~8S5)i2l1E}2( zA%<&s9Nx?4P_y1x_+gllw&yf<#IkxfB(O%WM!l*+wdgU z5v5HmvvKmyCIW`#dg2pfJ#8t%l2KgB-xQ6?IVabV;GQ85hl1!ige{cc%+!>OD!v<3 zgAMN2UsZp_607|U599ET&Jm2DVLdt|G`S@cj1nrrnV)`yZ1l5efXgSFGs-f_NKQKHNl7-6ns%Z$pyo}I zWa1@wDGb zJ2=B=pDU@|D`tn7K(#2)Q2mmo8Da)P!X&FTBs^;({PnnHa#~v{O}{uaZzH!=`$~#m z1T8)1Sh}Tevx1i-VS%7SlqS~y^xQ5y-hRGcX059>HOQ6uS(u;TvD|t+o=oHLJ@1zM z`C&8MO9n9fCLRZaM@v8&vxYN8OSj>p*rc1}NkVlpHA8#dDUGC?HFYCD@0$u)W$Iu#2F^^<}!u`>9@P`A4<)#_*!6tBdKtVVvLjvnz5j(>- z>{n^uWg=obmV?#75cvxe?-1_CxF>~kM7c-#M;#a!fea=M8W;VI$T0D?a47aOTitug zZHNdc_HP;TJL6os-3_UoaQ~i0$>{`dOf@aK~380-$kNKS-cG zA(!WG!D*<~sQ5eI%2E!{Ym2SO!&f$w6j@=SLX&w^1WGW}Q3?urU>1t5l{5$I!YYub zR3k}NfI18Mp+ptKN zY@b?Y*MJEbbcja=iZa+M-)Z5_Le@%mxixH~L}H@Zj#L#78#*Nh?dBsLYmeTT4%MM(!Qt`~uc-WVhb(8Q_nO{vLl`FBNcxHQrebf#?PttvD%ekdX`9_fsujZ)m@os=!~UtQYgqCP9A;|H?9zW4^S~{pQT&Nj z6TQH27W5_zv`sTd$OFx(%MRvU-@Wiq-avR_J&hlwMP{-gcH8qfbDkpHJZ zC2V#a=+)9vm{W*xU(G;MR#XBIU^<|(G-Q=6@fQZkW zB$mzcg@r3$iUMj{ecLKcu9V3iw4Q^%&A5SNA18z&?M5BinqnU@AdR`y8C+Lt6v8J` zHJA6Bp>5>~YWIM%F_Z34K2-WnoWg37N%zfP+x;W7?&?Suk_%6lHB9{&UI0mnljq3{ zt~J%vzqyFBINUFyZl1VVt;?6>lMPN%vi++DR9z-JG=yM#5gAqHM@;Lj`Y1qF!>k1< zvmnbzhwi0;aI7^3CZEm7a@3qrVOQ0YYjwI(*y4t+KX`Xr^HcH4SW2;3ze0b}^O0O> z{iS(+b0N}*O39gqZQc$vP57oXFD?`4Ahi zzlT8bOTMR2L;S?@OSo6(r8%^}dUWHJF2%UF9ua)>$CjmhtcVt3D@iqu-^I8u^K;0vFLIj7guZLLbiQ3vosPBV`mvU(dpMy@)6LAqy%eCv3Y z?ju`1t_Ly%03pux@6ayk$rXX~5&&79D~cx5l&^|6fm>yfY*P^89y6;is2?mHS`?bg zBmCabrP2wh`EfgM9d`1gWgq)sUT46J)v1E#R&Wro2a1i7Fh&f_I!>I4L4+?@o&`x4 z69t(Yxa7|#`dLY=PyT5Y=LcIOI)ZJ~lw+8!ZW0{s*fZ)t!5a#L?zoQxh&SNDu(^)S z?sL{Dxal05_%XT;lF>tfG(=TBi2Qb?XESOEd+1Ag|3k?gksE)2&OKc(C2nr5b;Va33+f=78sptJl(ZtB@sWQv?3~B=7!=XE2AO;SD(l?gka&&)fMQ zx%u}=Z9ww-uDsXI!-lhHKwDzB2RWcsV5>%BL92s<@EWV$*jZ&b!q!QP0dpfq0OfKP z59HZSoNIB9dcASssE}nvr!hwTFYd1Jjcdg7jc&N^0K#otY|ruG&hhc;ZE>9b4J_~6 zR?Ds7&E0*1SH2bE(JxG!ff&{@Fr3)cPAr%%HyFJT?d~1x*(bd??XUkxoqi6~XsG{2 zaHyjGtMi87zug}QnphbcfAbIi+s5FZ#1+8*G@q2HS}QLqAo8X08%gIk69PvDMy4u3 z?rB3qgP{pJR0kF1!A|2rh7L(8>Gw*Rn{ZD=f9HZ9w`C<0k5xSsaBOzFy=3#balHNh zGb;asqrTXH6)K>CRH-dj1lt(um))IHBUY;ePXJHbX0%t^^y$dDx&mYW&GOSbyH2cEwO&z=r~==RM$(w=`iE!Akw{tYEM;LFQp{1MxP-d!%UYRG{)ojp;Vq zo8L6n?^T%tZb#6O4*qXH-zlg^7=94ogF?hM32YjiK)L;CWoHi(tyRb+|-3z#1~_GqcOh?S$x zEzCLj0+kiyz;tK@c&WlPQfr`|38WeUC(yP6CTk<|4PT~anb)#WFzu?B-6as(cAx)# z1gGY}oJes*Q%xeDP2A)e?6GxopZi>^vKKQk2q?1r#?>PCJP(R5l@~){_Kq?!eI-6m zav;BRB@&yp%O;uq|44hsAW`D8e?oAppKk@!|oFR;MbrD z#w5Q5DNDa5Wx=}@*(nLy`=^H--ld1w&xyt`3Z&pE%k3rNX;&sB#Xkq>Jsy;*+cmWW zk!TWVRJyl~ASyeiE>WITFE)s!qU&W*j(G}va3J~iTC+Z4L-?{N5oI3uOT17ntoCn1qCcO`$= zl-gKQ!cd9gXz&J+!NYk0_#hi_L{SxEAVL{keqMXdaId=jczM0#_{FH#4DRYuF^OoI zb)?4uJKdl$)_aeY06~Ry<5MmGXr8zflBKX-+}m?SHtOH|W!5Os!-|4KShKMQ;Ld{m zoZ=zl&RwNSy(`}>LA-3+VOoL@3z1UH*K<%S(;uVv(nfsHV|*-WXB5p3zmm&gXiz~? zGF-5kN|*fHDuIm3mplqrJh#Q|D?~xu$!dU#8~6}2Ql?02B#r!hi2{pEg3Rs#C(D$m z+Rd44L$|$*@0TQKJ)r3*q_v}s1*iHsNgvM7WKd*ED*wgz2E4?zRIH$r3C>njCgFJ{ zM@$q~`9Yj7MH*s7x-6fdOp0BS*mS3(OW;;Q?=_JB6j6o0^^k!r!x~j}Ku@FEKe{1#i zF(kx1EcOsLm~T$eEUQRrjd!9DHi@_yY*a#@7i@H(vq|L`Z+Jt`L2>9)+~pKC9t&;= zgIe|Bl(BCW1L*CZ&V8>JDBbsbIJA451y2$l$_lk~MK3{j0iwq?;yE}W``G(kY_oX| zr3vG*?tPX;%_@k>xuY?1b51&o$14kmKg$%t_)k@SPXp~d2~$+W94kDgl_UtMCi_mu z@IY{ok87#z!k0EzCd3PCRfKA7-4OUqH--3Z-*9$ahRWwF|K=ATKb2J+WMN8HA$wp5 zdOZ&Od&-8nd4^=*QH-3Ep#%M)rDmi$GMVwKxuiIWyEUX5l!L!eol5WAiUsHRVsZ;W*$#@JZRbO^jJ2hCo*UTVH#J$eTj_Fa3bN&2G?NY~iyBn}x zg`zfjYRtL%lcp(%LM-sM`ddjk_}C=LPgoVcN|89>s;UtLB&+x9dU4d|d~j?oTJXev z+N?S5YC|oh9~A{>H!cu5VZkm-?{?7R3UOdK;SxuC%pq3qti{NLa^u;btev{9%p85C z;RfvxarAM|{r53C%@fN#_x1v)``@0v^_CvG&BXvPsw!CTMU*YMP&d?MYRz7wpnI-K zXS{(6I7hu*F3m!d^A;CetLtz`#}`%U#E9A^+x5*4ifNmw&Du?0FdC`M_U}*$Tg{tuIgIW!KzJuvoyiL;o9A&9r) zyh7Qr4-GqJar>dH%=GMt;V9jh-~;?2uZ7%%%r_?hK2gLNkWaaM>YW`=Z1((6I%;wX zLUnl}eRX-pJz%67c6GJ6zwljEw^U8HA7ad)lU1JJ^I4M_Zy-z8teXSq?lcTlsHG%x zPaY)ssEAS>dNM=lDGj6|>8$25#Pr7xqv=wT*!C@goP1*83JHvtnmH-;34!JVC!l{? z1vHVG+bd77t*nC6*LRPcT3Riw#O0G2%ZMGNLTS3JV7EChJ#z|S|3wksqlWmd`-xP< z|JE7fKR3Mpx9#r#5vt_Zt>$^*xYE<(cjjav1MDaVVu0aLh>2k}i4^7GV;c}k`vh=j zj5~=ivD(!+d}()7TtJBe;LgBqTHqN2sCk#=1Z6%`2i?c>7I$2+v~D@ToRW3 zuZ4!$ip6J+@9CS6UbnBa)u*j=P=Wmb;M^z0o=-#SwcmZgzpK^Mi?OL^rt0KZJCbh6 z^bJBU%=mF*NnlOAz&JkCKEf7I?~A+f<5xceCdPq}z>TAGgy@ocrWLh&C@eitj1)~# z>q_*2(hcWTN%l1Pb@)OZ!VV+}T9;9jXSB$~xzmX%_OMo=rsB0p$w@xvRL1^w!Zdcw ze!c#*K)wEL3-tdn7h?FYT1c>LM`U0#H}KA=JFmmGAb z;!DQ$Ok=08U7b?czaBSWFZmHBNr_8^DJxP>n#NPlnd1{5ACI3uqCY-1AhVY0K_F_J zB7BhOhQ<`XVRc&cn*kpz-&v_E`$i#M5|ic=@|J_5MCRvJ zy=Kq8gFjriHpJ$?gWZ@YTA%U<3;y2u__SWXOJ2D!f}^#aH^o4QXVQ-*E_VB&bkD+m`{)%@z1sM^aiy64rCZ5zYn zR?-T6O{M{{(7rPN&9}c-Fo?C7FKy3a2QK-ocPgUCWLad&RPhn{06x)HA>E#}hFB-1 z6zR56C@xBr{!tzQw8r|!&P<6&0-oLG#M@OJm$;^kM|9r zAhnwo<7kN++XhnW8{k z^Y%>#Bo2JRr{a*3u2gjro|zlf@26{9sd&aV-Dq%u)49Rn)g6Tm!>4mvYiZh~SERT_ zvl}nv|0R4o-Q(D!61YS`gzwAV*ipyZ1^6291RfD+3tR}jPc}It-3u%kgr%0!M;1xD z7qunfa1k{#j4@>0xphp7bQ7(!#VmjsnaCwihksD(_FS7Nw z3%(y|UB2zfI=AT_pd029t%~(P?R8a!7eMP(z>-!A>ebnNEBurbFlpqr6Xf0T+dnz6 zJaza;IzNe1D9FD{>3_zCzy3W_`5#*&e0FwvuKzl@iAviFm`X@rS0pvBwY=%S8Ue-4 z*Q}U%*TNc;e3Yq}EHM&v8@jam5KxjgTUK`#OtwF0J#Ghs+4Cz;BKGUOgS>(WQ!_{?90p zW_zw?iQTOu>H3zgMib_bLS#sE8nvjyYC6M5?GBGj{H`-A#1+*+yNSOh-s2C!plxZqxcXPG+@@`(dq?efO$lsT>qR*dzXKVXEooZ<(mLf`ZP zeQ`EWEK?IcdId-KL#WX%65=W?({#nj)BHv&%$Y?pOd+SP`US2>$=Krz{)z)-?I|4C z#k(2-O(c!d)(HIl5vdof2sQW=dY4MuL36{bMT$TF`eHs9!deHQixg3W&DKL-u~zZ48%?oeuPe*V-heAXa&UuTOzn0AIUX=+4l*I*n!TW5V*FiEybTR% zv+<(H$eu-mRz)xCkxT1AJi-{>_vJN2Cw+)Ngd=qN0_S{~GuKyqGF@~mBTCtI%HE-o znS7=yUhP)fw>&o&*Wuj1ndOs@UoY^|riJCS@I} z@`H7X?6arKkCF4@yMP_=9-4_hh}s3z5-|hug@P9i!qd*(G(-yucR>cPpqoTm#i-0B z#U#!mF$b-lRVw&Qg4=I6(jT86l0jo1pzC*T(Us)!SErVo#wCF7XMueG>h6wm`C;_g zV&`uH*QVgVLyytEparn-?P(8N;GH6T(tu&v!w+L|WfFp_j7ampfg5xm>v{4J93r016gT|HR`z;=abM7!`+B)SR4sgM9rR;^4J$SdOK z!;w~s6GMs+C_v_nq<|mNIo*p3X(6Huel;M)=lne@h9q|5xDms4L_Dr4e4hB%VK!Xs z1#XXouLB(%3CamdZs}|-YM>i16mkH-_DBTZI8!!|5sVOKD>HNT z+4#uy2d{3u4Z!KAAdHSFWRWD-pX9qvoM2NNVhQBj=sL~2$?M;12ZU}b<7W55X|rD& z1Mj~Hy)XlhnA$WJI_4Z$#4mU4vEXEI-&gkfwTCo%5nA)=x%KYB^=Lw9SX&gj zGt+v+gSb!@J3BZxXQv+NbsIPYDmT6g;^?*?1 z6sYB6P*dLoJyIhP5}F)+-DJJ*Z!ft1va9vmRxI{;cJw+&E-BP_UM$xyD&Bipxjmw% zgcFduWTcOlEvKKG<93S~aW_`_K> zcjil4U8ngm51}V8yW){`>hc(@2n8gb$r47XDCOWKFu@x*%$0uPyM-dgmWXm*{nG}j zT8BNT)#Vy)iSwB%1J`$kJKX7!-=X(n{H!3yCIO5vEw#X!n!wIUJ`63X70ot*PxOQ0 zE4>(D-T&NdvT?M{#r=tGX#Y00{pV#31qZtyx8{HKp#K+>Jk?k4pUL!hlt)Fw) zaC70qPSNw`xBvFrX|c8OauRVRHpB~GyY*Iw>vPAmvh|ns6Y;P0n{2cpn@aKMbH#^U z1BxXB9i)AVr+qgN#6SEvA$$9fRG;k z5mvi531GF=gFOd}7_YNYVRVFgF z__LNHCr97-Y5(B@bs`ivcIv0^z=ldSqzrnHp=*F$ccociq2g91m$EbI<~Bq4VFKH? zvE_0Ese+9-S&!iv(6WUiZ5P>wj*BPExCJC*XA$o zIBQ*nwLH-d+2>Zj``sT<8relH7NN+HJa}|T%LU~MVIz$d&Jy>@E_O2;xQQL906`b( zdM6r^#a*mutBa`xS{q)50f6PsoS7%Q-JKs-)(=vQ7Xq@f6|f+5wV}3%O&t$yw5scxiiRW3^JT; z{sMwyxH6+@$`rAej1fdPQB%0sCvc>4f3Y^|&nYr1(;PFdcsWH-KVdK2J2HC5)Qg?0 zeUKUJ$szK*-4Us`z8YpU;yQMu-@4CwtMqu z9V33!L5*JHI=1G0O?1FUJMp{5GA-bN(#d&{V%3$NUz1ZlB$rf8#|u+Ydsz_fB=2p- zTyuB9cW_*HN0N`F+Nw@XJ?KYvz$I3Qm#Vpd+@&$zXSj)_c#GgAM2@vL0k>T0g5GVF z=L?ZYwt%eNZ`gczn^!T3?bd1`tuR_5=F2}A7dsLG>Qk~8$*z!;AZXD875eJC1sS9Ga$_*H__dqt|h98ePD;17+uMYBuRR6Znv*Rr+ z^m0hos>Wly9(FD4t)#NFFeCg)U@O%bg^~*7mr!d) zwha25C<+Hz(Y15)X}IQ_h4=ndjaAxy(1+Lh$^mq>({zquXu|L634vUYs=-EZ}MjS};_1Z`XAr}f>D+}CD; zBxD4}T5oqUVysf#02Tx-{x<2c_+!)!7_p?ks1v;aEI?!DO*!yoG$mz}t}2C4X$FXa zD<8~ik=K7gK&U|_k1YnDEQ^)Hjw4Tg2~rzk5u#f@TuEgLyHjMIu=-CW=VtITGR1_9 z2D*W273XBepn#9=eS^m+U7id=R>VI+K)ZQJ-(x(0Vt|XTVD^d>XxpRdHDCLVL$HKU zo{~Gbk=DGwpi_+(NfWU9ABJ9`515Ey8OMlj)A`%OOzdgavRg;#8-Wj&VT3Kl=|>j8 zwZy;lhEd7xn(X*ApD@o zn?|G-0T6;nCF_O6BlThBR0K4|Xa;G|9x?$uLA!eSr<<)Daa*m#&(OH>$93ZWJYD+F z`Q!f_sEPjP2YyF0i~nIW(WnmLfu)50-7Qr&Z$Tn5&zwsg=$BiN-hjC_v()q;PR_+_ zHrhl!2vnRd#(rt++|IGi>__50ncYhPUJC3rXQZsa=xe_sznv znYlSpgs*ik@e{u9JHLO5)^}qs*M~#GX8=>wVr6}NZkk{j;2LliiWkFQhb?kd9^$=H z0Ax>-#Xv7m+>|ES@%_h#HuZj<01GR?&5C=<9{4@0sO2`8R@Hrs8}L2JH9EbS0E{~{ zVm8fKSFsOZfUF_-Y#aqUH>_B(m{AlhDplUCS#w-uCa~l$Wx${6T);Sql-uBNdw;|} zTl`1?!S~W3yNG?euz4xF@^{(+0&cik&)*@va(03NCI+L42BU#o5M)M4d1CWE6?>f)Go;V!9+`(2Y&q+2LUe^Vc5$sF5U0JKZRdYOgHLgf`51 zv?Ta_-)@{NQOO%!yiGrsF5ML67YYy{820kY#7H7qN{cTV8+a=_sSPk{Ws8#zvc^JY zahE3~#Z_*80~iSng~Yb{w2|N}D`5Yj&Rl9`i0ihm4fh_9M8EwK8f-XSdVfg3i9TyW zl7a~qk{H=Ed5{;!q^wHMmD)6KVef@^H^?K5-&2mqfLv%L0>?BfwNdDe3s#Ji(9$7b z%1Px?pEy~Z5DYu3z^rF4zpJGJRXQ!extvun6HxE`6!aploi!0;ia(g5@sqUmtq{xZ zCPin+3qr??IEg^E{nKhV_a@#cGd>`BI_5%xGT$`xAWD)dSs<#AIrsj^HL9eZUT3(qn^3}`gT;0`>-fza6og-%%IYy{dghZ~m}(J81H{%A@ru*DI6 zc*N{4FIAI?)x4l)Ye%#3gp|jXx`ZgQiQs)#i>p^$>|F5_Z@OII<39OXwo3M z24MuJ#^`zu^x7VTG)3J3EZT2>x<{NVbq+nBUFPKAN^*k{^Z|#^^5*o;g;P&` zRwA0EWya3kkoio?%+q+f!@{G=l*X3?=In#&uar6q;nhA%cZr5DyEpwFX^V{R#*qvN zxf6|Ah0K_idPE*LSGq6N|V{rDP!s%wQCFAEc8Icu&yL$Cw6S6)H2T0~&EpN7d{1jC%ra73VM;pAz88oXU*`a_38C*!Dgww8jm8W zy32)0%g`-{O5E?V{@)!Ps=>*MADG{Aw>lkEHb>$~ot0iJ5 z33BwAmdNtN3t<-LCREDvgfZ$#cycplI!W0XT(4>u6$Gi@b5&H1R?c9p$5cV>!m%OP zY0ez(65n{|uo{p{rp-?>mM__=yD|+nDlfFV{_YcB0x}4zu&==5nq+;4$tO+7)`8$C zEtkW%d*Ip{{c?{Ke}BwGryd$z&F?p&=eRc9I&`Z;Nlnh2G#NHu&0>EVZ~jEj$_xw^ z_7&7gzDM_|&L4C>?A8Pp%tXWOsm#;XeN=6exrRkUmQ?z4X5*%P@nE#4>=UTWhIl#( zkQ#f$94)GRP-z~QoYYXJqnu0>={!2BLPguk?joGBVdz`I_{Lll+04Bs^{hxBK}BqS z(P%zbrl*rTbgVY^g?DU{KpQ=H08eF6=q@fF@(GuYW>t3gq#A)NGRdNg9O zT>N&po2HOh`u1(Lz7kL?hmd4$Z-3}O6x5*SL}e$CE^6nf-_#nZLs|BsGBrzo@hdnN){2w7nWL9%UamWm2dhDqlek#D6 zyJ%>X16U5&^R|iBx^6)KBnDiXosl=Q%KF8zs$e#!wv#s2y3E?6i*Ks85XZ;SqM0_6 zoCEBI`jG)(udYtLAdun!RHUjIm8T~maSn%JDf}*LPTk!0lBDKwUP?3* z{P!Ur0(7mWe~)KVcs3ro^~{;1XXAp&JtD5$vx-Qu=*;8dN;G7o@d4G zmx3LDuKT{c;tqW>%ZHlzOJ&XBc$9@3n|Q^sYvqn(FTN!7{8}-$kD2={fyppkWqspU zLqF?gutCZe(>dG}s~>}}zl)R$ZbIN8^}EIs;L@e6l&2_R*s^UmsOT%;H z`Rk(zucqMX0`KC!XGpa~N;JhAV~}JD#t_+?Bvc5~?A_+L2Rlep%m;#F!>OH7PD+;m z3fbX$ql;VXF+N7zAxYdQf|fvF>OiaZAUzlAqTNrL=E)JzUS!2>n2(5lqc^z*EBu>^ zVE7oPBJxA*$;oZ}iK)QW?Y!@h-_C9Rl#84aWoop@m;u&UJ=-cozg=~Vw<%qMO)_YU zcq|r^*=q|%RPSIp)|Th_+_icO4E@Dw?aDaUROWJ-SESkb)eBjclz%9XSr@p50 zQ`!TI+djP{KoXDA_Q^~!Z;Y!h_CJy?(5v*IE)6?gDu~=Nj0oeCuU=Bx94K6(2frw2 zwWhF(#xEBRqX^nYI%oqmqMq5o_W4;<3n`yhbe-WZt_XCU_M(==Q0G`P1+4*knJ z4YQaejg`SkM6H?Yg2diw^?=uOkJ)q+dy@oGoZ;^6ZJfw9&;80K_>~a$)WObLG?Q6n zp{ZeW9BIqcqjD2d^vI7&`{{50gx&uNpYrEyhHZ6WG<0RWaiMbb7)GlMtSHTDQVw2y zJ7?@86pEN(n^?-EG8wk~1Q_vq;R~KL4wh~noJB75H zI1pzYzYxd}y4lr>%A^Q)&Nav`kd{H76=O!6!^G_D9iXczhIo>MuZe_NAvuDNjw#0k zeWL2kq68#a$B<)zS>DZuQ5^vUqe$uVXhsguNT;+{+A%-~O0Rz2pc1Z4jaoC8+w36$ zwXhjmS^B^_7Wh&TfV1W;Od%o(2bCQ1jQV(vKSDFOr(C+w8=52h7uh*#HL$Vl_pe{i z`2Vgp_=ae)O_XFUIZ2!U+1@Bqu46&*UFFX$p8#fD|MPSF&hIE0W z8yM%3y*}$d=sO8CN)Q#Yu>)_ZsR8|~ zT~Tli6l62t1Y3>d z3Q#yN)nx6dq)h29B}YX%?lQG0TU7yeBCRrsy5veQHsGOwpdO)06WkDqi-i z4j{t>p{Y&}q&mX`v}zzG{xG|0O5qRMde;56y5@o0&yy`MQl^HbKLfg<`N(!453Bln zv=%}mp8F0lDg`-Oz9Tg+q97!L#P2zR@AZ1KenR8F$3?oe)`R9|F+-E`5y-$|AQO&zsR2dYac38^}iRc7k|=6 z3s$WpKnhZl8a6Mi+AFC=#M0LWnhGq)mM^4bw*_=sDJb;He?W{J^yrH2CCh zz}1-xk!J{SkZ%QN<>6qX+!O@`5ANKpjpL>2+E*R!-S4+p?zOHtw#RpuVK%^YA2mCMt11GY77na?nR;qFJfvGf?(SX8Fih(nOgk( zuj6cqx2Oqyo`GwEr&U01wtj7)_ACNuBK9-_bYx4s`$U}I@O8Cm4?(}gL}1?Pp|k87 ze_auN+{!`VmKVP6H@*N{#nz%`L+vOaa8Is!2@h#{B$?l_MZLSCTfXpPcZF!Mxugfs zioMYLd#kO9u2(|c+VnNJ?XSU1im%^Zs?CR(#Cxv!U@S{96{_9R01yMu%yq=}u3Hr` z1_cSO&CrZMJD4wlHfj{JlkEfhE4Fcq&yK|5!O+gpZe*-fUCHjVaa0Z?o>ok@IsFX-d0TQS zbcbG?QcDY{hI7=Qsr+3l9;|1o++Jl|k6~Hjh*fWN_+W?h*N%-kyrHQfZfD2}rkc^I z`rH;yIbE65k|7g+J(j5sp=+!rWFSFr-3rDb{0Kc zdQw}us1bo<7s75t9&}TBTNUwTgIU83Y(AD$p5}h0R-8UyKe)N%{#Xo%^5xjcso~m@ zB)WPZjDQxC+rCy)BD0&un3YKewxJbpa2VJzt8~KHMl>mvpL^Uyc{$J~d7~MDGc&cm zDQq&cnFun?TFDuk6cOIKbiRMDK`BSMeYLM7ccinq0csn%Z9K>B0p!L!#x) zJ|>?>Jzt+LoVAJ#Y8UbDI^+|+%!+}Ql<6%VO#)qkF3%n0RWASp7_tZ0Gerw5CDKOp zwY*DIixl|LYt@cB>wxnOFWfe%Fsz*(kL-=W4^=xF8EfdrE-gSn(W0I|#V>nLkAmE+ zf62{N>=rZ6W3Jq4et~HbPXUch%jBkX>gmJy*(nSjgr|R+_(Q(8`oQW2h>L$b0T^J*v4(94BBGkAE363ShgwMd+$yR3Ou&phcY1ELUzouWi+Z91;( zeVLAJ+qHF#j{Vq`;5KTirbzNQ>*JJarr7vBgRmhRtL$v`4^sggw4y*!m_VQcJtW59 z_(u547ne_}Bt(B;SOIcBu%y4o_BP6xh6g8v9IY%(HJbxTwGmy{UDMA+hQ(_6h z9=;OL{eE|vVY0()GY~_7xYk0rDElb5{h8C8u;>IzhUYeapjE=hW&7t%^V0FV5${wR zmD00=2p0_$I+stU`W3viWZb9f82d?P4c2|uH^}QtxuHu6mgf*Uz0D7$xhD*@A=VH` zAFNm@2RtC}>(xOtUgh2iVkk@$&VXHCG ze2J80Y~$%Bzchn(bM?2|p)xS1T+3qTPT5a&lfXml0y?O(S42b%jn)# zE=??4rl$bYHC zcmjB2bwTlVkh{8wA59+WZ@PjtNyr*dnmH?a@rz$G)~xn3g*%TQT-%LX2-GEw`4h@` zRw*{z%Aut-&nP1Zrh-_F0dC+`H0DBDh3|M0q_4(7$RVQNO4!HVIC6F>ZAle}bd&rd zWZhIWn1*|f@4gAl<{UE3n(bqxsg$uBIUKhm>4=h3m zFq-9J5Jl$vvV{zVU5yulmd{*2R{?n8jL_7K%Aw2$*29MNw_iP@5=DaeV4FqiDFW`UJx7yK4&! z6Puh+o+BunfsM&n&y;4^UCuNC`0LIPt0%$sCqm|c*JoIFeHvIKtYSQmsEu#Vs9g|0 z?SeM_e>8MEl!$JiUg$iSO|#r2vjk6wWTLtq^tety())b2J@yq!mv4s8}IW?*v{ zF6aFt`M4=UU3Er!o@fw(kmK4L9ICS3qT1D4Dv%)9!&T+r#Y zAUFuZ*aOH-3C3TOsOWv^V8N^JAg8l=1NYGNPrC^4&Nv+cJ38WW{IS2jrmxp$uPO&I zG((;0v_L;w(nWrI;qPGHX#Bw)jMV=EvO>7e9trdC3Uhs#AS$Z)CGC48>QDC`d#LMV_kez7t@u-g@71_WpkE z?0nh0*8!{%$SUmt>B!qncKD$85(Ek;a!U3UASL;%fc?=ts$-LU7U~UjoZUh^2}2<-0TncQ6FXSBF@J09q#sF z4)O*4U8UTezsuvmxW@zZLi_l+4e$}|_FWw`4$zTnKuTlwQWZrBh}|x@&_4{;C7@Iw zh}a#)C0~}%ffPfp#RvghkijVkD=Ner;iCv@sK%QFRv;da$p~?Fl7O66p@^jnvKt>0 z<)xNCx`rqIf{%GX@>nu^V64SFMuOcbFQGDO+<1ucxRNK9nX`A5VU&H=NZ%@`tm{A& zpR}1o$AC^rSQ1v4*D6Pu+Bq(r88J+yQPXwb;yPzBVYDAQl&eXf7Fiq@>DlVQ4&QuX z%;&1(!D?n~-$Z<(8sX$@GKOQ-Ag%7ix$eT*pD5`tfWd@`NFE=D0c%%ga?^r5$$X8! z-4kO8L#YJJmu%T53B&Sabm?N3a*n)|f;?$dNqBn^vg5MJ)bh-xW2s1#YT1>xy|kBz z__8klN4>p+A*-RyKHopda|BCLReV-)LGmHpNz?O~G|;wj@zG3%}T? zDN(FA4n6#@>d^^SpCNm)V{zgLu+g7vdbM^YR2kM-2rVOFuh55bYrzvqnjg*hL2MX1k@j%9QrJfK}JDM(v=<7^Nqp$&*kT zhRYYp_)1B~KA>Ix_#YFOUcY4}Pl`kH9k!H_|6j@LXRnEk>-N3p**toXj< z87am#msF{QQ2-_uFwahqS>Ex;ub)kGgdxbQisgknbXJ3=&PBZV!mOEN#0J>4f0S*& zF4wSShU(pc*UwQv1f!wOO%@GB_5yzF35rb~HC5RXvx1V|Q5TKGe9kMKPl3*A;2M^+ zqQlL9M`57;-Vi88)BZfzJy2kF>=QRmKs1&jzR9Z5&%BM$U$22<0r8lpK;Fsbu`EM0 z80^$87GF^qyDArZW;A~xigtBE=d^PzVlc21qeNtyhnk>v)E3>xzfM9|<;<9%vm)m( zAABOsCr{i6R8MC2(q-sDT!s*D&%~hK+em*bZ2nF{2#-TVvG2`p7(yGEx0bIfmPyW& zqSK3l8Jbu_w_ezyLA$f@faiQ(YjXW-)i$E8rStH7I~sQ)hoqejcfM_P zO5e%8NivKvrn+D>J zE@j13AZNvJqn8_A-ib-rIJUFh!uws6WX)n2e8G4?eWxtoG%C%fRf__@e#GcKUr%{F zfg|s-H|Cb^#%MNYF=AyVhwBd2Dxmt~F}bGP+om>=2Puc*&|A0m<)nVK>5XuULf0?V z1lU)G9}f_^XsEzsHb14x6n3wT(<8wXGE%{mI9BJ%Jg=qfM1(v}MH|0FVYY9slX#(G zYf0+u5g@{QYi2pZap2SYw39>Pj4?;9B|dB=;C2&%?>xE*xYgrUD8mIKx1>j0vfaaR zO9Lb~z{r+oyav@O0t)QDwSit9fNRt~XFAep7vV1zv_bm(n|X>vU4%dnIz6=WsYXEs z3G4#s5czbl0hnH)s@fZL~*K@p;wk>G%KY5oS7Y%3+8W8zODDJY0gV=!U{?hTUo7}r zHLKBElpa~`E*+I=oc}dpAALOuq1d%BNPjT4O|`e%{7S_p2dEx;0MP5#RB?D1(_NP1NWlWD!J~<|Xro z-_?nM9LFg@7ey>DUVtx!_hFlZUaNgM20*^@oSsC7~83eE?R56i>+-U-n}s%HBGFJ z^XIq0IIY4vxSX7mr_PC9Kjap)aI^s_RH46?9zDFvqixYUEGku;jqJZ=Q;|voJ$G-e{zm=7`_tueEX5IETNJBedCVgk^07qibKx^SA zLR4Ye8o5t-SI_XOk-=xHPPfKMNuswswZl?a_=m7Mks3W)_61$+D1aOM5*jPGl&NLB zZr9-b6`v|MyDBLAT`b0_U)ymsr%5E zgH&>zs=!}$gzyeq1 z@yB0H*7WVl?$RyL=0r4Q^%1HHnFrrGe0>_IUUm$deG}2_F-`GI#=gUKwh@H_W=3-*b__J?BTAm0oyv;=Qp9u1}ZU!T^;F7y>OH60y731b^%go>7?!3*j z`kC0k62tDOVHFk_Bsk-Cjc`@lOeeP<6FheeaV57LV@4=sU~mqgWg2fp#s83FT+kpQ z@{roeIKbnwFiK>vsZ2VTERg61){r22+^C{<4zPa;}9&>bECZ^I~& z6xgGY`Vu*qI-b3tuiN>5Qyw9fcxwV_l0a=Bx^$=andZlFcO}c{ZSuZwMhY7OVotHU zR_Cb-^Uru4j{Z$XlA*`35tbVUYir9pLVuD25^7}T3`_?lpv@2RW(n@64~;}zae!&u zRXb`END~aX%0{k9%5?&%7z{>3z&U*ZXq!d8VHc1edae>(EV8xOs^5C%q#%?k?A1v7 zFoBDxz#aZMECm7A>`K2FDHYYdaWnvw0;0^U{H$_RdTjnerT6wwo6MA<*F8$cPP#12 zmY@Pu;C0e3$Us8#49JznMdMBt_f>gNl*G<0iE7_u3(M&Qe>Ew!xQ z$f1N{;-L-|2^{uEbKsG@Huj>2xF_XD?~-cbj+@yjGjqdxp${~G>iME)e&Bg+yirjU z&#=PjWoLs9g>Bc~==1zY;-uUGnnk2nkiZ+ZEOH!^S=yw+$tG02v6_julpTwBLd}uh z#3$H=NwZI7j%CUmY^sUjP}~RBMeP-j*e_*XP01Wme!(PY4NX?8jjQJG&L3LukcfYr zQhL<5c?bQ@ShNYUFZ&pmqh}~Ddo>w-VQ|6EzLt@PC=?bTYH>!W>}5W@^6dTWb$WCY zx$$vx1ctqHObQk$W@l`pVa4AHks8oqF-l^S)ZUqx&PCzjiKl5q^3Jd?yTLFFnrHX*xZH8kgE;Ma-I59 zKM0W)-QK)QwMetOh1bd@a#jDjwFf+MoT3Pzyd_?Ju?ApcVCW8ToV>6#~w1j|Vp`$_;t?uEG&s&R+i#?esA( z4$^~-A%cjS^z+p5qbUIB3BySNM+xE72p_4PkxJ^Z`gF7UePAd4_G2b3>?`q$(DAth zr=2g;hn3;D11?}4z~|ks*nP3r91kCtuV78s`EPH*G@haC9hv)lZ#xlrYL>CH57W$w zZ=8ROIiv`3qPBj_B)LicT@6k1e^o>Oi-Yj5%6U-rRR?n!{<{j8N_4ys*uoFnFw6iS zZ>0)*7$9Q-$r~5|==K;iS>-$Lsc0-2) zu_xC-$g6_`1&ql>zE_I36%D(v?@z#u#0$nf;lwqm?G^Cp!RQmcyMJ+v z2z45d5B_2SH@#!ew-G)a{=yHZGmtFkp*ElbxZ+z4dc)+AIqK#A=@Bp0Jt#a)-(vk6 zuD&QX)&v<~vewmA3}+&>jG2|376!sJq`bb(;)wpgG4_tZopsyVcgIf0w)2l|+qP}n zwr$(CZ6_VuPC8cin|=0so;v5Lx_3S6)B3imX3aImm}8FXcRfDq?{6A-RZhHL>2FP! zzhA{$nOK_YN~8;kK^EDnuc$nP`^ygp?RshQ&y*)LD_3 zauhXj>Qy(It^Ge-i%L@G`(Y|aex7BMhB*$v-RJ` zTSp=`b@4HjT}eC?73~))n)d4KwbtCHE=fg>o1naIdb$_vE+wMApnq{K@+25GP< zbLB_Mar|KmJ9X0MMx7ZNX!p31AXefE?4_5Irpif88X&yklcLkT6StzH(vnC{B;I?$^qWxc_R#pL_y_pv{lpNH|>Gp17~Uw=iTbW#J! zw$GI)slF=2MYfo0gbii*?=S3=Gc>x4?YbBgH@G;yyhU|MIF{0l=YEOX8Kg^`#kFA2h@M|;lSei!!yLqijmK)^%(FnDlIuU7%H;kbzn*gH8%+8gV zXkMZ{hkNvqh4?Lg%oG_r*O4+`#8x?Gy{>xGW~S51SV5Ox|1m5rgj*9 z>mCvhZ5sjcK3KIRdmtCsRmD6%qS{)k6fkGUWun1k;@$f8x|6{+{SYN_8M#CYTQkzH zdfI)!C`tGDGTx8_B46Tn{g`?OT`Td*aH4gm-4veJyjK=IHYfb4{Y^`YzXO;;^IxMN z-AkFy)SdO#GP6)*Ja8}&nw?V6rK@>~bd&9`y6X&5e>-WXr`=(Hss@HiA>9lxXH9u@I*ko;FCf7G(TQcwu6~oA4cFD%`xFr<2-T&M$Ab2L!s|=UK?;cPMosZ zT%$d?`W9$OUA_xENLn`(c-zETd7_%v)23+!nta7bMcYx_O=GuRUSJVvf{)vHlAX(% zXgT>_+!`y`es6dheP?ZZVuH=@RSV@NoGpRq_sZst- ztmhCIp3oR@_9Z*OKN?LppguDHxU|i)|Iwu`H}0vZ)X39%B)`tptxx=sH~33;12A=a zP2oCItsu|zx|JQ=o=QK)`c(i+>akhvnH~CNk#4(z z+3Z5Jy)*R8Up~(=6!Nld)Ne(S3Tx=qEHzGv!3xor9Sm#p1C!@E|W%<*-$IrD| z8S0%MT)~?i*ttZd(N=DFSD4MuViUuiF5$e~Qe;VC7kUOe6%Ee8XHW+_;?i6bC0&pa z=P;Y%vAwopdTj8A@Qdj$s9KnXDF!ers~S^1tcDtG`z=MmHz=7UWVbS1lw`Y5sIz)%l zNm;kF@Y?;RsB;@kduVLZ7svuo)SZm4yOnx&vNZC%7B!fHS5=Wdc1>QZyG@hwn|SAf z;jNp4siK_=kv)FQ?4Gaftb}g##Yf>YkmKVfL(iN@_0ED;T+@-7+qE&(Pj=4PgdDq} z&5l?gO*6(n@?~r$c=dZWkbGfngm@&7m`vP6UpRy4Pej~jf_DzVSR~mwZ4LBH5$Fwv zuu-R|SC57yIv9yUj8GxS;SSd|)_<$YQB~LU;n+@lOvJ3?cKgosq~F;q_`zrdEM!D&tZMzzDLdefc&eh zk`lFU|M&)LiDUn#vg+H7^Z!+eFX3$B_%H43zpJYd*)CgP288Tm2eEt!R7zAD%6=J6 z09J8SJQ3pg`-nzAxe;;R&j`JuafqWL1l~*vRITY)Q?aH8ub$5z?qd{VO0k3mb7Mt3 z$fZe!$3wCc5`htwl|4!=J5vEEPoFdbJ|q>!o8zA~B(Qzn$j#I-sDn~oTEYFNM3Q@F zL)8b!$hxaBQ6~f?6*HrggB@@0$j_)&I?l2L4RrV$H=C?7X$m7!ST;(k^cam{x4d= zzb9-+{+BW&N7Y6RTLr<_R#zPfO*{!0yc)QKg*pYUM4nn)szJr_hfO@%@`Y)W40>A3 zwzcPl-|wJYrRoi*&kK$}6md>$ZN`LM_4h(2y))bo(_0-)Z>PI_e}U~mT2LI<_6~s1 z^PCh843na0Xj?m81Ec7c+QY+;CM_QK4d`4KU!l8v+=IuEo)^dU`D85hq+Ue_kwbmQ z+;^C9iyBVYH{@Wg^9o+(o7uDv>j&bgaLwtMR~D}_I}N%-XY5lu0-qHr9$9Q2JeClu zd}kV8o2&Vl;8{Xnq+H5MvFKpOoL7QGw^gxsA~qBW%6T8ubFP?Z++N+L zp;aLip~m&9kQD8-Ii@2tte+8*xOy~0!t7Z_L>4luF``D5>eQaqo%-~+ucn4{Q8vpR zg?0`(bjvr|S8X$=9UktupiI$Nf8gMI-~9$(`u5w*VgA&ke??{e8A(K6SjXAzgs}no z(|O=Spi|3+yWMX0TXObQ){H|3Gwr@Mnh{iq3ww=4L?IQssWLhs~0HX4z()IOwB zgiH2kEW}j2U0=R~PSbTKmoCHTb*YKOtL*5@Jc+XLS-xO4cOKV^$#{FL2RP|Fjkx=y zJ*gr%CT%mwdMyq{r<9Kczc+g8#WR|NnfmX(>C}xzyRs|JQXMXZ55b6fSu{`<#S24N zA)xT?`Yvzi18>D_ zz2{NF#R5$Nj}%pt4KwDGlvQ!62;$-7S45H!T*8U82tA&qpW^Vu5{zM>0>$I!KRPB8 zl7O!#X%M6jv0`BH4OQ9Mg|n{$D34JS{fziMf_i&a<2iV*r;R`S#`^IwqW2Si!<>)s z=xO{0t|WkZVAjh=K;z*XqM_aon^T64EI89>q?RG4C)eI3GpVJeG(rgv+leH(w%ILo zPxUEZWT-qUiT$H4pWKA2&m?ws{-aAq-%YT8lsht-4-$xVZsPZ*PtY`;$sa-N+A*&7 z(<#df_9~BeGt~alwxAjC1`mY6P_>_COh~Y)7e6+M>aP*%5rJ4yvLDqU)HC{B1^YvV z7s-Q?@NR#2N$YzN>L(GM7Y$4o!`ItET}eQ$mFu@6Oh>!;t3XQs1kyU1X0%do}>xy|8+erT`=nD_KmP>h5JuIjqRUvz_)R)h4Fs@6aLTJ|Bh|R_jZf?C}VvP zA)3|JLdz9d*pcv@IxL-e%uI+Z41`1F1MT?I@a&@rwK5xl?|Kym8if&l{@>VOomGEK zRfE2*uCCsfj+frsT0TFY51>7un-l$f<2~3~?Dl}h%x&c%8eD7+V}%8S^EG4oPHoP) z_FHd5eJ|Lk-o2c*URaSCC!u==df&{#ad`|!F;{mA zo;KPb`SwAx_B7CZ8n)&vB|^|i-o#p1H;ly;%Ors+58Q!z`LxX7Z*hsY0UPXiwdA z_0c&zJ>Pge+d@y4yKdoK85i4!-K)EcM~U2%OoA zcAEouH0h%i{R5mKQQ)tNv)=*8u?mrmB}1iMY;HWxcFIJpL)$)G3l~wWJwRTvgy--# ztXOm^b1$a0@1NU+X$^n+fE5be?B?wVW0DtBOesrDjU_Z2G3iOUV!$+4%<~d-8e{vb z9|;wIsl_k!3KO1MOe4dBu0Wb06pB+lutTEPOQ&{5PchhYfnTJS>gSE6<7mW7g{mS4 z^NOaoBN5{znE?c?@ram0+J(c9Asz15Xhh3104aZL+9Ol?2AV0?pa)cu^(E=Rv_@Jm zT9GRtQ2K~JX0a4}h$ZbouOZ)qvtzs^{ggGLD=4c)4mnW^81hoS zeBV>9GyieQmH40c=)ZIBzpIjx{~l&FW@}o{F>aDjGKVq)DbAX=k(3$;O(nCjuv$#D zwSa=;T+bm{k~JN?vEG2D!1EVdvAi#Tfg)0=NNjEn+%g-1LH+LsG2zyWX?@$8%tFzx z&vo~u=cV`1=jCWY4SpL;zn~nd2#77z0gqQbLgN)d2;cOK81~xatO(X8x*(3}5h|2- zV!jOHomnW);H(MOC$?aY>J^xnEkq$I%i}Z(aVwB6#DVIW;n4(44{GUIZKxgY1Jyfb zwJywoD|9G5ECFG|od;oX5g|3io<2AhK{d2Kvf`$kbfph-V7oocZo6u)mtNDpDDVT* z&;OQtoa<-EJw2YnojHctVFN97iuCQns@ zGmO{@m}OVnmC)wk3Jsr#;v|OZUQ*zM=3E(*Xo0bMngB*(8u=WVr%MpcvYf>&9hRCG zOOB=W>WmH~-b=663(Bz9;OcA(OCIX7+OzKMRvDe9S3%L$#Y-BeGXCS|=>0QV?Yt&% zCRa&vl_hM(=lom;SXIso#tDwljI%}X2mzDDvnFQpG(yCv(cIP;zjb%qG^Dsl)*;61 z65#t%S+1qD`7mci(gqeQEvT23h+=Il9wXX}E)9ZtgEAM@iTX#EjsQHKrU@Sln$7X8 zY7^Meo*DloyLk}VTO8Z0d%nZW>(~D9P7*i*?^+@$b?OEAt{bH`WdXz9NfSy)Ct+7}Svh{NfmvV(I8# z#uC87$Hxaa7*i~HU_(EIb37svBc*TfBU8M-6V#&d1pXHL* zDB22@HMBd~jzOWij`PKKg;R6+4AL=Di_EBJq^o6W_1XxD6)?e38Cxie=Q7bKF`bp| z_id^LLsBKrgHTkQ$d*l-5?F9HQSlwEUp!C%n;cq4#BiHl&CL{2N}eo3$tlJ~a@Oy{ zm%)SE!}$~%9YLt1{_8*EvzmDg>#UdDY}=Sn)b>%|^+n6V7ojp*7|b|E{bxIsq^aAe zHxslQJxWSmf#Do_%GFggwtceMWn@%*#t0J5Eoezmqz_5tNh~SJ$5_VTJ{PfVMb?>R z*>?W+t-zEpTalteOv-JZpY~TWwFKlg|5Ars9(_~%<9uKPIPbq#mc1$3B~&HIZg$E@ z?w#DjiESq}#8awpr|GRa@OtfyWX-NSfC^1zd;|$iWq1?{rPV(Zb5|U3Y_57`@GUF^ zp;G=#E=Ymp8JP!E6X>BZy0fIPO&X$pPv2^6&?#$&uR!OjHX!yX-dUl}?XdxTqjsUP z*)1&88er5Y+*L=8Uwimv&YM&|f&7&3vLpHS=Ky~KPgOoq{ffk&Lw}%hF$f1Mw`Er+ zEr549m+i`$6`{U*!Rh87)=hRl-jKaS z$~Y9?FY{y-swONEG!$YpbYhq|4Z~iwm`2Uv>W$bC6@|;+?m0@;hX;m7+M=^LrOAb< zs+-DjE5l3$LcbKb{%4q)zug}Tem8FL(P>Q7)dxUCk8t()D299I3Z*gcNi zq-+Usqa3!`c2w4O&eGD>B~YWGl0|MpqH`B$3gqN=$6}ZKy-0&Z6o69e_L;{KvgE|e zB-V77C7gyx>(#8L;uYj;QHXV3HUcV-lOAxe#N$>Y^eDPQL*+*-+|iJA7xb0xHF%=Q ztC!K{mzF?*m@&7EB6r+Td!`84gpzHd5J;*3jb_`}nPIOul0 zAY*ApeccmSA;;&m%KJPbi6u)xnh{Q zVt9slX@}5hVeAR6Q|H!l-EU-|ARn2x1Jyn4y>GVD7nTum`p>%7al5g<(cb+K$ge^K z)PujJ2(-l1;_C8-I>D5|lt@~l>Zk@PNLHlOlIqHaPLNTEXi4fk22a5&QqoXc(fn_` zZxpLKQi#WW7)0S+1@hs_hrG-CzS9FB<|9EU{y!It@W_U^fkEODjqrzD*aNqnPrux? zu?|rVRK#q3crb%z8p-WadEA4TYshAB=hHbfC%=N} z9Z>m17?ljuy(5{$KUJOs$EAZLBwiLHdA_UV|MYmYeR4F9<7ML^jdfp{vc?;j(8{!u z+h@lar~u6!RX7gJUXFxeZQRzmb7swe$sGWoJ z9tA5V6h;wH2*N@ff+|Ea3+HT(#56~KYL}lL7InaB4L>~3dIhych7)<3nLX)5z_VtUfI1r&0&JD5G0Of}}1VrfN#63%O|5~xfpxK77S0!)B^Vpt&h{qW4 z_EfxtL_@)mpD|IJ787qa3{{sWsToK@D{OU!Q=xtb6sS7WY@1Q)6yu{`of%|rk;D|DyiGj_||^lcY)#j2vY@_e~YSj&@yrIS~?CQ#jE zZ;qBGno}X6Pen!TgLex>M(yV$Cz*)MB+l)K#8>%aJKxeO7_XXV4SMKS!8rN>Dsl~N z67B;%_607AmBB3sxiLMhJG*Vs_sg}m7z3T!lAHAzU0x7pSIe@y%4i>X>TS^S@FU5@IT)6%z5OEP<^;W7z^I3W&;nmtZG z7_dzQ6e$D(J?H`Raskeu0!{#RNg_`Ei_h*Ov>2V_`L^TmyzALxS}W668t2kEuLSSG zIP((z=VP~BoL%2`+oImz&rd3U)+1o`u%ecBY$UDNdvP#&*bEwCpkju}VaXp;_TFf+ z{3Z~XcvxIZAa@4Ql-$!>7}jRL>%Z?yDYP1aN7o-nv}B>yrmJOP+=cn^m3)=^jere- z@zCiB_Mq_O!0%9U;rB4Pr&3QXEj)6sbrJ3g{e!r55AGS`)ZDu#4_kidj$w1}9NnXZ zb?)?l@Nm7ijl{u{ygZSxGY`i}9V#+gQCc$BrmJ#=Z3HL&BB8Px$H|Hp5xD@3C#7%`7io|7gqOm9yIf_QY zOI9*cYec5vDNBzm!ZBLL%atrwS42;Fp~y@aGvTxsP#T^m6ZZ;DnZ{0t62%2vp6taX zB&-Y=Sh;f+W(=8Q9_?K&hDAibw--)$U5kS(GN_n#Tu@5jCc}n&xrOjrDKl_bSE3Bv z$JhULFX8dZwvlRK4<2H=Hw{8w+(ZymVH=oYo_1P&vcBXA%sl1DsEN!v~7DtKr)WqQ-$IO^`^jwH^*Gl}fpiAYqT zF_BLB5Ixhy7)~yPYvQ$aZk!PRW!|hL;WkA{N?ehwK%ituIILK?8N6a3Dn?LX7L(kq zV*pFnWkXzT0wiobLWr1U9~bWBfdAyn5y8EKb`L)r?v8$Y@2)ot@hU&;X^p@T(8N6( z!5#-g#5;&-SySjyXF6fAj&RSwi+E4Ti`)Q)OVnx<7Cw`&d_xT&rw)pDF-3Jr&(Iz| z71kDK5X!U-Sq!DtXhdujC8ZgLr;B(6PRlr@dJ(T!yLYdu!)~v-!bp7KuZTiKwR-?m27CeN<0`a8v2hij z_4uL=jpSh$ni+$en;=LP5;s4;w0fJPE#%?4~QGsl5ILn*J|V(+IWM(tEwR#ICiAKXbp z&^GXiCQqI8pEGn=Da+>6m+5JUY=m(a($foSwr*w4WB`vaOsO^A2@=B)?G}33q{=Y7 z$P8rv!nQpK*|;Z8EabEsKVRd{p5M-6sWyusl4PgaTyAhnW@aU`8p8SIE)uKO?tg9a zKD%%81SaJsyxg&W9$DNlIaDMTJwS<0bGyV>i0zEdzID2PyeF+_Mc1czBTia5hG}G- zO$+JPrkvSjHMB#H3g<1v^X0?5tmJ7b&3FWq^H#T4#Fp2*&AJII#A(xbkRc0E1FI(6 z@M;i(;4@QGL?_9Yx#kV7WB#rd67#q(hMfB>z6FKud5)RCtGXqZx@n$9 z;=#gmNzB$SqDiiRs=*U+LDecyc0DV0DX58FfEJ|?MtVjhG0q^w=J~^GY|!aB7O1=s zw+DQS9(^KL;#sV=i1W;9rXbY!56&x;bq{pFunNcWpJ0B}*}{lfQyKl(8fs26H*Ha) zU>m<6y0A_O!7Wb^I9T%*xaJ6Upj1OzAHli-$4OUG*CNc1c|#Ce=N~9PZpUOFk-Bx7 z$?dfQAGc!KVcLV5GkWY*lcUJ0si9$1j2u6b5j0u3+dluL;tgpRHN}NyIH~f z>o-Bxv<_>mL4dO_4k)NfDnI7PjOM75uY-1)7T|&_v1Fp@)An3WJS`Z z;)w`B;oiK*QtP(rS5r$(TWiZo;q!;7>D+Yao}91oj@NGY%l0joY2N!uF9eYEB$fPK z2u$!_iq|@rx7Wpxx;sAfQlmcqK3YNK-h}lwZsNOWaZ?ZIW3GvPL41IGx%^%vjIHBu z4?rR=Z2;<&bczOk##4$$M3kAW#&c4MnCX`ZE59j-i7KE;fDxOziEyO6pkPEw3SfhEJr?rHm(RIa{!QE6!I+v%@k=mR;ZiLHk>Z(fS#ce<-t8Hd|M`nH#%MpG_)+v zkkvdZCM#$dmx#)7&K8sc?V1yjvdGZashx+$jB`_9s&QU`axU!FIxbGqc4o{uAdwke z33O^q`fN0JI1t2iA*ZD+RSl?fFigs~a8l%l%)TgYk+n|H5%6gCikG_tl~7J)@EF!n z7sSP5H!liz?d+eGKa&n&oyeM@9X_*0KX8T@$k;}NY&}y5+(3XnUwF?)i#lfzlpw*1 zJzIDc&Fhn~TLoQouWZ$=x(QRG8mE6jggJ54c zTHNIV?4LBVrg)(Vg;Z;yV%G?U$I~Fz=g_yB>gE=}GV)kD zxXoRut!x*MnGN;w`Qi3=ui5V(aG|bzX=>XMQlH84wlGut(xmVdau`pHmFJ$XrTaMy zT)m=EAkSVau@x0zSE`(T;Qtd2iPa`(;uB}uC(S-llq3V^6YncG!j91SX`9d!maE$w62?j*oD%$ zhjQj{1^F!b5bN6?&ESO%?QxeOt)Z!K*~Qo>oM{&7$}%*?=5Y-LHghotx8b5s2voJ@ zGEr}wnpz;yz08C%qcq0DktuC!_?~Xt8la;|D4cOr zGPI2AKbf3U9~WXM31N&@M2NQ34QOt^x1jt{(G>Zjxy7ZOe zruSE`G`K52j2+u-XpkNM4&f^F_0i>ztn)o59e3xDy~7i3DKx~+nKM@mK5dd>Qt)sH z5JazZMyyR8AqD72rd6=xnw2|q*eEnWWvRRa=@cAT+n+j{$64le2^jK;nGO3{n0Zp5#~wvOuer54PKa#HS$ zuvInhlH@DMbDUx2!ikMqCxUr$*J>wKRTOV)KUc-`JsIUw>5Orucyvm!Ez_gFO0)Hz z9Fk?@RXtM!Yzy?Mp38PdDM^I7Q8>3rzRdRocP9a$_L>V9X)lspY9zZX;v{vP^SGZY zo%!&T??H2w@0+=G2ZaE-162SX|5X*wcv};*>jg!?^F8K<*iQ#x)pLVUvAFpnOlaBn zYRSF?wIZ)1VC8ojp3?b401qL1Ua^>pXQXf0{1Wv9S+Cph;%Dw30;*od<_M|~-S)=F zzI~UFe}Us3VfpSjwTQUXtK4Dis2-~&=N2BIdk7Ar06oHVQpu;Lq6KQo-u!irM{ru? zx<#w6ts;rEWs7-dz$v{r?rcI@rpYJHX@iUXS zj#J$hUY%o8h2DabUAr9bYuiQt2})>@CY>=&U^2&+eq9bjB_(DM+$?ZJV({SVcGyrA zBD>!`SYMhtR$5P5R!>?&PdY`!Ve(hEBNhv-8rphKqlWe4#1HWR%(x3pE;lsHESd7P z&@fK)udqK^D(+;HV>bkE+Ha)jI+`R%M@0I@;0M2A;|+p0Jbo3^9_E_OA7`!6>baCE zKZWN*^kyX09o_S#)@_na5f3W#_JQ5k-vgb$=1SmF<4Yj9jH&^Q5>(t=HZ6)2YF)i< zVAp?%qG#N=23P8KlsVuom*YWMD%yw~1EkM&mP}WjDS%`_u+dr^dn+vCbqgqd5#Fyu zww0*B!L^owtF8~F@LSt@33C=0`mv*&>N2sUUez_hgY#dM^Xfd!7H-BfP*qzO1H3{&r1FfK|0Pewx8OW7(r zPID+}*}9mCrj7ElvkL_`yN_^h4rs7WS^mZ(i)njjrMWmPo>^C~n*wW7antm%29Tw$ z^lM!-+7W-az}WqE5h_M@qnKfK0Q@M$Jse~#w<28cX7p(SON;AYjGX*Hwstok-$q$$ zu?f~_CF5xqbxyTW=4Qw7A!cN`EkX>71g??LyMOY=?4z2PULNHjT|kw3s0P(MmGCmW zePT^bAXpqC|H6@eTx?5~g58}vc9Yd*#Jb*kiu^Kz>?-HwlAjCF5$hT#UBrr=UHP=p zUHglZl2qUE7_l zM9|+K#PY#Z_M}3-p18yauJ*lZs-EqL&1I^?L zVdV;t`hw8qi~zoIp4>s;+)*Ojv_nqnA*Th0V8VAqRfnXkS5wyEYU-$USd##jk*lmNapNSHP-Mdt7ib zWmgZLnLg0eiNSg6c(gOTpQ$qjd#tRUx@|+K>tTNloz@p24 zmAaXDzej_4J?80zmyJ-+$B*30f<4D+=s@G}F zhMg1rEfbgRY}ghPR<0pVG54$Ic@3|2npfNWQdh^?>fsJ{heoYrUTZtT!Hra|3sjO8 zMc!c}1R!llF|4~~hv56;=LY@3M#hM^o)#r-8xJ?*NB!9I9j~h*(=5kY9}Gt84ZKe%$iZBMIgAqEN~+PxDk555G2;bCN($`WloA#o z7sunWRp*29oY)+T##sGc0V8>F73y1c*fLAyc=WI(b{qj@*!4;oMF|cvr$^sm`d`LD zr`+ufp+#?|qaIEB+OfS%7JLASbYISi$J1`WQ3D5!^voWSr#5;l*@+vgoce4Sy;Y`B zco9sKi7sD_zBmvJJ$W46@|F$8WFvfh+XDsRf+`BT>&>fc9bqc5Otr-HAYyq5u>*?C zC{ku%Nj8((yt7cX#Ff%_FLG%P-(58#;+43J0I`LG($YzB*;Hy-*p&5!&kWNV0q0{x zealZ?jS9{E_&)kaWIBMKT9-=vVp{a#8f9$hh21;A+NrERB>z`OA2=>Yt%!@ zuy=FDlW8H$v>^C`A>l+HFe8GCJCvDY7p^huMcyc*dqPC1S56+1W${)7IS&z=_;ogg z1k1GU8=_P*@r=VuwlHx0#Oxk>Jq#>YWJdUNy`h|eCb2z9c*}i;K=3zLpi5rdAWBY3LquGOSI zYi(-SB*^v&h}vTIv~#HqLds_bULmh;eVnBCL{Q-#kNSays!&|7Ns0N)%5^GA5f6+z zT`VB&UY#WKV1X2z0lqUzL?_zY15o^ex}@k&e5l!cpALOJP)u^Wr!$2*+mwANGcW;o z_EdE~aF=r;SFJ^`?XnM4?#8P-6%MUKcwpxuMa(9Vc0D*k)t#dpERzoTOKa|!pSRkS z`4e(jaO9ZQ=pF`5<37d`kq1M5J5W_~o-wLgY0#?5gAdueTH=l&`;DGh<3L60KqX|L za97cu9JoTU9aTvE3bJd0(=`D@R1qgk5n^=7;))iVK8)3nAtyHJO!~|jEwCBNffL(o zo`XGYcBI6ax3&ak&4+dnz7xZ3p7gAE>JCyTmfQj+w}k2rTqna7eOJ2j>wEh8uO&x3 z%KNS5lSK~COaSXs*+IzWi_(Rb>gVVC5hSR0JL+< za%Z^7Gw|f47z=7;5{>eDb^CFW>bfZqp`vZ|zSN~%7mCtLjupG($2J-dM9i!K`sj5C zRa%S@hHIfChNrl@1`(e`mA&>#H3o2W6}RSGfn=_eK!$X7n}dtb<0tMQo~+F{WF?~fq=}4jWo74 z%0Q-BFS1k$H{uW&k>hV7M1>ug(~4Ov04t7VVk&&#yqo4M@v>OzmDS8*Ba!KU#ayx7 zWAPs5>FN32lM&%+pfqc+)6MnbbK5o5^>QBbSJw--pX-he^Fcs+m=rTE;@-#RZvX4r zd~Jl--abcA409m%dU+60qIfMOif0aW8Y6{Zkh6v2agVU$hDT#NBa6(vx8BE(F>d^|T>ZU)fHzhSvR!WSH5r2sci8MsgYb_wLf#mLB-0(rCNt}ea)Y*BqCAzfC zp#IG1;SG1u$zsEKhzX5FT+Uvi>t=f47ElU3O64l_Y81&Uc{Ius*P*8@m)bb3`H4r$ z7RlpqOmSw0ij2-QPr)wzQ}gSuALp&XHDqeDl^$|x6$HXmx6mt@n6+(PEA&fBsR>2C zdQX4S9_$>_E5R(!;x+Hcbd%6`A{Q6r*=M(nHY!aoT&**x4OJZ_rYakhIs{qwyWu?r zjwe&UzuG1z&W^S*(0NClV@`L@e0MjK=8$z3EACRp;#Er4(+2DR@ zv6+ih8(dmh_k}D8?3Q#+7U{|srGT7Ze|=i8$3Ub(e<-e4N(Rqgv(X89hKyXt_NLtJ3p{$;fwIowdIwbD%9$`vWGiA(DqwhsH` z{`@b_1hK?vkvgeqnlLUH-Sd$?UZK>o8lWT z)1`6?Ok-@g9(p-W$ktFHMv7Cts7HO2*gDH2=S5d&&m3@gJ^@|%64DB0E*oZi$t#1A z0Sm_>oqGZjBTY#e9+~G%F59v$+GNmnw2+tLAS76PUSKDG7gVUM{%dc1JUsZrZJG8W zXj?1Q-Pol}&lS~CgSdo_^LkN+;3ULJw~(tmy4gX*D13~nipZz#bkRr#+c*gcTV7;T zGMvS(Mn<)@@s=H(46RPygal__J*kj~s@B3U8DZA|+afs<+1ZltGClzv?jbo-+wj~r zy@gZ-@lus04a;rjhW4@()?#KG&YjJcZ`7E?SZ*&(0_K>0uqs^HY^TXZksnG(iKmNU!Pl~d=Y zkb}Xuzdp`wTfR2!e=dVFCrI2=5Km24dWPfJx`%H`T1>hp#J3Xd(y=x#_Yt!C5&w)I z*a$J3#eO?)5>D!g*ASg0;}jXEFh&@$JAy1?Z4j>#qBd9sDdllJq3-X7cL(=BK#F50 zzyUrG4j+CP^WN?`(Q!JEzt_hxHeCB|#ROsOtBrt-ZQB1FYkT1Pp=TyW#c}tizXvQ# zj0gTJp~^hLUS>~M&?5zQ9~`T<3As;kA$HAs>GX{&%pT{4Q&ThUyy9CpT z5i6Wz`SEyyd|6?{>Wckc-ybJ?t~2P%XPEv=1Ycdi#Mm7YWEKBK*MF<^Qj>;c5^ey2 zM^2dHoCvEJIj~@l5hWeVtR!qSc?RDCRJ%S?9GR3!z@bUR5!p1YGcmCZ|9bp)uRPl6 zr{rJP#n3kCxL456Sfv+m-J$+&y2cP8k*$>U7ns%vBKW#h;lc9oVO=|}h}HcUPk-|6 zX{(6EtAWO_pxEU?4c8DgEy-XljKhcFyC|>5FqTOLbFg48s|aotAY_UGQ2NWY>!IwT zzZ7%K?vp;nTeq*zVz5{7eQ zK}Pyd*`48^v-|(_x%=OesFYM4rA<+k&|MbR!P*~2*>#D<2;zoUB#yuq$oa)g_f6*1q@!2j7 zLCNfFAU8L38Db7mVQ#m9!D`>6idB6@ZDTsDpiEa+;bq*Kod#D(JdoKd0VjGlq%`g% zp{F(;`DyVMY+B5T2&=`j`eiZ^oI{3qk3a z%r~|(_rdwom>l0RcH8MId--K&7mop)yT2@HdP>3*-L74NQ_iKka8>4pnTE6Y_|H1W z2pt%w!;~Xjis({hgo=(XkkOxgFGeK*nZ3#gskW*Em|j(TI1FI1u_N>npnCuqa`vAn z{!0~lX|uX%9Ft`_lu;ci(PV)E4FKpGMcFRsZw}F~@@dRjAZo?hHYc`DT9LeqjIi#E zt86Pcz_ejH5-OJM(G1P-TjWc%bZhvc^#-2*#{2$pk_1;-s~`$b)=u@J9fzowY#F$J z>q*eGjo79shanHy&me6fUT$qM85hGC*tR_<+1K2<>PPlg9X?jX5)xU3(D)uDc0wsZoUb8JzEqaN%Qhy)@t)DS~H~R5&fPZYKNOuMTSuTYqa?1`5UavC$XCo9+m%w6&dF@9d^t z4f33>55uEx@zWJbycY4A=g)L%u2k)UjrP+4W^~z+Or8Pt58$QV&hQrc3Btr9 zu3?%W=~B71EDG(-P? zti5A!rt7vf+_7!jcE`4D+jctX*tTukHaoU$bnG{4t-a4V@BYqS=Q~wzs-CJ;s`BHx z?`vLj%rWO21JWDiO@23Xv@Ca_MqmHZ@G`^mGBp#Ax7!Qo`kM=Ydj*<2A5nA>BrEhf z1!1^KtX~trc#n2a2J%eGD|F>XF7~nkbphIn=nj32;G-P2<7?x0cm?1pJEyl00=hx| z=vSg%xfSkRLz`DF^ko_1PCdTYRvNnNJnJB*@(sh0bLhv?hK4hc-Gk#6x_zw8$NQb! z@ps(htgt;JQjR+T(7lt9+s8m7dR<`O7)~BIL4K@_04^+sZ#Sb4iQ{^WtE0hMPK1|T zYkOCQI=?i~M5Q6w2957Ozsyx=9hOk^myccA+paRCS3le0=fV0Yzi;Ai&xp-(Rh!H` zMK&cW)mjU$V?-5DWqC@}thR=IIm7i0gE^mOg;JF;IUU9i@CE0l zn&||+-a^UnK95N`eKlsNru(I4LbXV$=7uez9!*2nvRsrLtGTH93rag!GJD8 z6tf3vM%!1PYN!+zh)0sa;GT(p>t7`fTO4JNvc?>rRU415Lzi^7uu}0Bu&N%`V^v>Z zu>9e7gGN~#zd#|e0wKj7jiuIV_k?Wqu#=u9h}rD4VBLmnykwVZ71+VGFn^o|xhzDZ z`1I$HNL?f{EA!W$k<{Pr8Ik|{Q~6&OeE(WD%2aiCQ(8dz6;RP~sw`0qMNKgBh0#QhFEgX(urg=@V7)l}Cw0KK%~K z5<`ao$x>m`u*Rqa4qmdFZ9er4!L^1}5~ays386y-{E;pglO2(!85iVFfrX5G92=6; zD;GXfMuo156wU?~Q7N+C0GN(gYlg314Xgl+tXdGL!OdY+wp{rMN8nrzrGyDyeE=JiM!NH)q*cvS5!)=n7EUxHa|OA zf*`{tVSWCv5fN7UeqlN;W1qm;b-1`PZm4gett6OQ9$y(L(jj9TVMpp(i@{P!0ttvB z82i0Z$G4gkb(ZMfV;xyOs>7;$umIq|A6}%f2xc}ZN=?}` z*vISh<7A~h#%kdN;W4&UcEa>A6oN&x zP`)3WY_V`jP-Rd_MaVoI!Iq^`2v5FMN`Tv-Jh5mYZAe;VM1wd3I@hMQ!r;q^9T`$2 zAX13jh85FtkHN+uRU|K}f$3EmKOS|slyCd@cG`mF9;=0^+$9TfqE{9Vu?pj9Zp@4b z3E4xtd1oqprJ4nvvn8awoC~ePLuw4JHU+Ih3{t&@5Vvf2mYKLRe5Pilo|TZTHT2nm zO%{1}sovzYmwi-3opz!f;3dpZ+)YgFSb_zWOnE#8A|*(oe>FLb>h|#Olj-SDBFsZW z-ym9FRLDCd?1dWea2D)-Sr#uyNoMR}2$5>6CEj z@0r+<>c)2(iqxALi(<0L>Z45|@pEfOvn zb~cVILNg`1XqZlK3OtcUJ=3rYpQLkE@uWwFd$3Tk{n6$VeigRfq`r0o)=L*Bcsa&V ztwNkgP^DQ%FhO~i$`=Hc;jYBVF1EWU^hjec=x*JSd|!$_{d6}^Ff*K+7F$r6>X((q zczZg+K`j!tTlg)r7E8LyjZqNcYbC&sph@gT|Ft=`TVohsV9eEMMAwii`4}m~< zkLO(v3;2~&7Zz9p2gnprnfQ-=5jwY2R$)Af_yAO{4@0h zs>zw!SejPA=a<=#aK$|0aldBM1iUTjigte_Nk~&Sv9A}hafR1Lft@|m6g6R|xLRy29C*EexUGu2oyiDHoTA+nc+M3>nqCw2kErOoW?! zAB#htc;g2f!6D>aXBC*76S9Rf(ko5gGl?FmNsroWfN0b2v@X+pQJ{I*1G*k6vOcIe zMXMFQ(SqRF;sIwds-4CNS6(~hGA`3*K@<7Oyd$yiEd|i8q*Y1?UO`%u@fkh1GgS~V zR%5?k($6tG2oSY9hRtx2gOjQAxoK)!UI?CHjWTb@UCNjW#h8j`r!N!u$&_K4Q}}~L zjw$fmabcTM^)N%~@T!f`XK~>nPU=upJC*lnjEge9btCclcKNt3V=1fGYdZ1SLiI3D z>af3Rf=Vk@k}0)aEA^Swj?#*;w4V5DlUOt+e&doibjGuG?GspJNv8aKAmz*X6;*oA z2d^pI8#w%dfU+HddLuYSC`?ZVji(mvjQDs!39DTxE=H{@k|w5tP({zs8v?Nw5eth- zhm3V>DC}$dZbiHJLj8iD*yr5)z+ zbBy&#(?NeNpAfhVjdmd8SZ^|cyFq$Ry!LQgygvGjT`Hlb7u|DxckMhcvuf7dl^gZM zxkT6ysFJcRwk9OBmm%jotIjPpo%Mx4h|CnR3N5d>P;p?ga6^S{#sp0c8^{6hYvLJ2Vt#<Ag9ieO8?8Ljuz$Q8gC#0;_I_^vpMH0aX35d!{WD+*5JA zYVKDapm+YX<8|Db)(|-w9p?Scvk{FR`4R`>XeP@YUULHnkAZ!B6H)D0(-I;Rv@fx> zA%iRX35$_3F2C?Ldd}q-njL7?5ca2#%Ip4yyp0rvhGi-=e9_Lp6WnsH1pUL*`VNvyS@-e0;%88S z*`lp6J0QalDz29!hVQ}d04d3t!QFeh(1&JT<1;&J1<$aYSN(srC35&t0}{SO`3KSd zuKxHNK|uv$eIr>LEBF7-0jT=`y}5>H?}TWwy00dbf>$0b+a|`etUa?;X_$~o>h}1 z3cQDAm6O_oWmR03*s%e9wAd9^1## zN#?Y!Du~KABK)4jBlyf%S+w0Lxa5vz?y+iM!3+zo(>ZTMm0=MHfM>t9W3$C`4lTq6 z&P_U;j?Vf4U`qd{A2Rn*+=5@-6AhhrV`&>KH$oYvAoA`powo4xn$M#X3a2k2oC;WJ3;Y_v20J8$`SW z3UB4Q>8%kYnp#HArl*>dWYI&3Zq44|;z-J9GUu-coHi^G$HI zheC_R4rU3)C?=Aqn1~L|_L!Xh*iw7V9Q@0#`?Rf3*VV0zPB9!K<)3%p$=lNI|O&OYoq9po_3cn|9JS$ZGb6JnkB8PBmk46OnHw z<HN2D;Ob@Klx*o5WPVluTS%!Ml#BCVp zW!;@+!}q(fZ{M^1dX_oPmVapT*5;}`Ahtgil)p3{$y%mILLwhC5g(RDYPQoHt_$UC zp$Zpr2zoZuCpEDT)z=TXw)Z4++fro|Vp=JS@`PTTo`pXCY!iE6$Hv6iFyyS+am(kX?x5P@t63*O2!mxr59w zBBF4oZb>jcGTep#fMG}%{hL;ys2+%G@2BZD_7v47h{C=5mxFtrxb@YydES8xzm#`7 zaQ)v3ftpnMl%;QQ$L(SxbAztA!#wz??wd|Z6 z^6;mttZ^X{FdH5`0!|xDE|Ai|4m>ITXkH2ibjMj!P-4PV15WJKK9m$+9kfak^?Du@t0hjezVeMMB_-$6c6N zLTNg1H!8hQ0yTOTO_s(w0{njZmfT|v`Pvh9#dN)xMQA}5rZxlhvcZ_Kq)BV_jeK>@ z&DyabD-?;-Dniq-cK1oSaP}jHRlh_7_)3W`3)vDe7ts~P{jkcD{mL_o-YN|c$JM6X zWfVo@6l-(lE!uF4JEb(miXZ*7rA;b&dYaI_?vvB!%>HbsTYA^VW5T_ZgWRY$Q|X?MYb_Jn z`{`jQK+k^DS2V+1m@IL7?;{fSTU0p9I^j_{s0_YWvyezu3Tkc2ZyZgRtGCYKW<*&# zN26PBQQzlspZDUM)%_yhzf2bX-6& z)ci=<%2h8m4yMzB5jn|-KeoE->o3fS4L$=5JB;YRBXTyQp5=@Ssd_x7kj9O;d=E8z z`jQg2#U-)>e(1l!bU5dBg6S9Kc{C?hzF>$zXk(&{9#6AZ??nPnA2?$#5d@qX5Cg(j z0}Hqw0iljzfg>dziryB-W-;xnX46Ll}Bqj?-K|Wthvzz_qaa5 zW)v|FXTukCHVTn5gmw5PYZgVs%W^o3oze`z%Kt3gG+JFYIQR1VIo(b>6FqWQEQ6|l z8lmIJA*+a<$-2)jRQ;1Ml<~69$Q0%$?+ubcJ^l_T|C_Ru4_wxaL|P`?&bxQ+ZNV8e z(MsQnqy2u`Ei%nz2h&+kYCuVnL(m8A?^h@bdHAt#ET!bGZ=c!Z+W_~O0m59@Ab&ZR zKEmgR2z`;O(q9|H|326JjZU3}qO8n6tcL!DSWU2${UTO_w#=a<$5Aa>-S}(q1vF#s z{oE)J6V0e8^c4JhZRcFb6_Zv>+AE)`nP-$pW}->I5>Dy`C}c{Au8HYX#-sbugt5>2 z#{*6eVAcTqaD=ZDG{Ju4Lw7lxM6^Ew) z3p!#TrmcPXiTE1jNKkVANnQozC5v`1y|aZ!DN|ExnTGJM#IiI^Qt_)erCCiA@M0!S z=vb6uf!$s|C4)3m{E0@2imp2Di?N#UMxi^Wm^<|Qx<0xXSIV)oDQ)CI^A@tp@hSV zPwE#kgJ-NSPkt-}W)Uz9gyYg(Ro-~WwIoh`lJN{_CwKoU5BsjC=MIUSS)_?dS9nO$ zCUm>HC4?vlEjVoYBz1PrpN8Ip-@o5|!LrZO|76d9CcOqrs*9ZgkE=4oi@hdvPr%mw2~h-TU=e)F zMwO^|g5yAY`w*ZDCg55>cu};xJVVG)&qSM&GmKU&Do$3-med7-8E6N9z{@IhK`)$y zP=p&Z()86l1h;NR_=p%0<@F5Ecu(?Go~_hR@Gv36L$e<|ir%s4(STMvB=Bge&xSY8 zf9yvnUdmoOH%JkUutfjzGB+^mu3gCv!RuR=d1yp<&o!^tMS$9oRw3%=VH6JsbSbG+ zh(%16zrD%F5&F5*c_tRy8&GWo)U{`{{S+1__yHR;yo`3|y5e-j7f!wDyn`hA<LdUzvvo_WnXk@B;Qna#Ff|NlyDpP6U6Ooc;#X3)3&hqw5}=egP{Q_gUk%{bK*|a_0Elc68R<{Ru)JwS+n3OuxPu+lxc7A-#uvDSpzG zfGcJ$AQ8`jYalU9^p@1u5QUMjUo=d?C9bd1pAoc$(U96^x7hkiZ=#*{Q8Ee#m`hJA z6sEjwbZZql8I`-+|q!g%-k$JdORRXihDY5o!IEoQ@YD8!FGpdob z+68wL+#s+WAix+)QKsUF%i?YhIc(VH1syuf4BA;Wn^Y+^xv^xJIp%`Gl2YIB$F>U_ zi$-NNm8tKb6Bl-M>|CK2r6bh}XjC-PX=62=MM9BPuS~~!L{Q!Jk4)ng`HL9Ph+~YZ zvt+B*2QhmO(cQVW@~s*Z<9E;V>Q(a)-S`>>g)@_ygZ^fIFvNeTifO*X8$sjAC(?cL zo6>d~Wp9O&o+{NY;EfX%&^MY9-b0UUo|g9M~ObsJU{0yj~o8~g334nviqs8 zEFH>(vc#Z1aStjq$Eh3I=Czu zI)5w0^sILdNea2bPd4#O0nw)FXzU@Stmf(R<&>NQ$72Fk+L*<;)DOHrLjThp7$f^D zo;2mQ#xZ8V+V65I*TtyJvv82Gh=K0KmKIn zMECEr<=+S({`If_RMoJxkurC5GPW^xAZGYSr6$KM+fNVw!$wj;Ag2)j1`PctfMPGG zK`EaAB>m4i&d|i~4%VYCuiYsz=uZG|;DC*I!OT>$Ib-+STb(1RIF z7^2YgIE|HBOwqG4kD&7dD~bDw6-Bx#k^-Hs@}>hO7&Rd?p^Do)fT9HQxddN~BAlRT zI+B%iOcxilstOf-n>R5p$3PQuN#L~Djw-||ST@ECkOE`AoKMTfH zDnP6s^dzi18Sm?%BP$io@eNXJ-%0u#6!$e!(z;PAseypD6hKwcr}HQqjtXk&rwMtOTTNf59y2{>b-TO0 z!RW)lKso3UMWI*Fr-to%dxW(ZM{o~DjB!+ zCM3;MQP^=^wIo((C|4aACtF5kRzAmC5fPBV<1|~1=dYrLy0pS!D6Np7ARiiWMy?I#w~!HXjp+wg)|#20E?^v z#E(A!K9P3*X7*H9q>1S^6$fM(uX2y$nlKCI1IVwiAX%a;6OH2Y0a_OIl1s^ks#7yv zrl5toYl?t!QcZZYTf>1Ni~H;%xo@K_XO7(*kZ~9_1?;;CCgt{h2a!$EnHo#fOR6PN z*R+u0%@CW4$tS)rA3_R2s|cg%Y?JIIYlrjXSE;PKqaJ=3=IUCSk-5Hxl-ZyuZAZOj zU;n)-qLvhDv(7vdN~>~f5=b#8an@qI%StLuY(F~yk%8Ru^qHP(D3N3N`XrShEHI3N zG}ltTmlgV&Lty-2ir!Faty*~@+P~(IGnf{0n8?BHs9D{%-I}Cr9yn_<7j-ES{I&OQ zKJ=g@+zR+oRpTP_tS;34{C_zm*(`>`X4>hlP zr?A=9bn02zMW_IT+~!mXQ&xP1BOao=*mHQ;*?RxHw+Mv`p0Z04s)Z3zJXnB_Qaqr5 zq2hk@0tp^_x+-qJeEwqbI(Cx+&pz&0XR~OwS9I@v{M~t9&pQ^zbZ%(ue)~QIbV6a6 zjtW~KjZ-86yfiuat(B|(l*oW@BG;FogSHguC&mgVkJE&frFR^8S2=+v4FDUwg+BPK zKTt&7x)fOQ0I_EWNoxZS_r|19@Ca=kwJzOGgJuNkj@e>V#LPuJ@I2Uq>) zW%*wMwo*y+kK*E^sQseJxfKeM(zRg&6&1c3gxGwV8P&an0N@A4YNNKAi?eI^4crrv zl-FP~k6E5?irL-5mQjRh69^2-U{C*42D>Ni*7H>A^TXbr={Kg7aH1e1XhdcZ3VSgs zbhK9?Y!1@BFD}Ke9MS}RKEoQzW^p&m)D5zVf&4KN?H5k7(ClHC6Wvvd@y0T%*4z>s z*YIMe!Qk?)fbpxxVy$G6EeC5eq_20Nrb#H&WF9@bb-)C@kcsr#-4TWkX;jz>GEMx} z_L^36i}qsj5?e%GHaiK|C<-Y1SpsxWQ-?Vg+?O|A&}&S!X2Hn>r?5?>-4gOqkir91 z(Xic-(KlcOXE4x9yNdZRl;5+CF$XtPlQAhtU0#`$;#I161YBOtYzUEkivS zKG;VL4M-k38`_&<08?iFfcCyliA*z!*a?OKNRyRA?*)>{)h&5kKo(E0u0s$akm6I+ z$o8V+&E;;&EcnJ!vtehHN;AV0P6S^{+T85icX~rg5&E+2ps@6o!tJIoXcLUt&we17 zozXPT!5TNpyApyB09Hn+$`7U!B<7J{xx~1C73TNB(R-eEEHfPuaXf-rX z=%%B=LG3{Oze|!;+CUqBRIBbr*Zr@Ey1(yeE*ZYXbxPo8AG{ zFY)E6CY3nA8~-0Et&d-f+9tc}(Q7oFF2MR=MwDVpZf;3#L4QD@J{J_u90w>vemn~m zLQ_~er40i#m&*?}@3LK1{}&0XZn!>D|C_!?;g;1`NZ~w_^s1+7IJEPTKa@vX$id;*O{LmH8aCskT7g0T zP6O81DSkZ>#HDOMoP+nA_~D!cE&Cy99yExQirha!FgB;g zy4H{cSEdswxTMRyFPs>Ko`njQi5)a!P?`-99}}(X4Vf~ZwaB!;FrsRdo(zF;hV`}mJB%~*1~4QQ z%`j&ywWHzJEyEU9HcONz4n1k=^XI{zi@H#W{5tq;e_NhQ{;v=Iza$f4Nn>|cTL+`R zP++C@k(x0?T+C!FN?gL{nl+ zp4a?{qb4X{u{)p(>8Vz_Bd(*?qjk^Mv&YBmZ&`W7f;|c;156mdZUhEeLMkHksU2&H z4TSqjphuZBP-;o_rGj=N9SMIU?lR_WJ|%_#`ah|BzRkFtLQ9O+IThG$ z3rz46x0;2y2eG2e*F$dh@=sT#KO|cB^ZOo*)uE*m)M$x|2bycLimL4NJ+{Nnt?3c= zUL(A$%c1fcbU2!A{A-g*wFedL6;*nA!J~T$?z@~##1aTT_u`y=RsPo!`iKA@x~m-; zG!k>0Y?_Y)m~S3~qiS6nP8FFuCE&5J4~A zd?lcq$ExMIu!I)M$9iJi{M%1lsSIceL*EFMV)P|MQ~W$QHFFvqIzteW8~83rY!3VG zjtc3>f}@1k z1Dvj5nq*IB%g#2#rM$vEQ2&lo+cjt)W6ZmfR?SBL;f_-Uqn7ifmiAsC(I;`aC`_4= znst~k0iF3?OaJyM)@bZ4PyD)FGyS~2b=|B8f;~6=fldvn^JRXsg7>mf?L5{v-kl6t zj1;{3BLu-J#GBP{mJddDrJ~+`5lv7EU2=wFXU;P0jRmPLyHjgpDw&Nvd8Ql!S&#C$ zTv1gTPG&U%DYc}oFCH|m!F@BC+NcgVOY@qnX9KM1Hve5 z&M%zn3ig`AIP1pbAK`$|;o8}5znVE$>O=L9OUn0!T{d9R=eaLgFYdpHfoFwWuL^?` zS4}2|b>N7sMC#3u;}s5H3Gu94+n*v^zzSj|(n(S-u_y886!Or>^`l2BXC~ z$#{kDb0|X>zjDaE{5!n6NIP!-cc6hq^@wR^eTV=ht4MaSErD3g zLsv1|95I^y^|*$Pz>ZOi6n+T% zMQiZE`%+_32)-0~PFV&NS~(?v;*&-cQnJMQ&6sC^QslZZn+Xv=O29^xSdICM9e!G! z$t5^xeaF~4xhMjb-IgK)qFEJ|K>*rxX8!dyQ$ajQ5fKYv#LP8MUr7{+ z0h5aEWTZTCD#uW4h|7)=ZM1IqHBOQ@o@D)8jm}fBgwq^{6x`SNrnTUBo?&_!%JB;& z!(+5gxD`F+Sx4VzL)m-8k;O*UL9?)o{{3wN)?dMH%#WZ;hA%zRL%e0JLn%LVpw002 zDy%Dwc{3}D&#&L;I(K<_G;7^4OQ4UFoh&CKiprCGK_^tGgYdVQg$8Hy1H2YS)6`$( zi8UySR#^%^9n>$U%D810bdmH~P`;}$&2*f$fJ}u%f`tWHBi6WY2@=lml6q{-eJ{8G2w}`8Jyr2cYMZu7;o}Z;2}@b$Ji-B=8b%p50-lr{*9jnF%oV#y{;n6)=BUaA^9}7)(5s)5|j}sEh zYETe}-sg|+9miMDaK{)|LziF6`$uRXtblXWeTByJ--gB?)al={rTc}0VN0J<}M<*yx)u@an_ntdPBqpJrm_eViqu*_fI?$m1y=5 zNL&NK`*LsXd$-Px&h8GtI-(1_?NDroy4d79@URCo;35+SyEp zAC1Bzs?y{ThA@Q(D;JZ65x)kF2c&BCR|zdb)mEINCyKQb;n$I#?QC~rwwD@{>{$@S z3ElHI>Fvp4Tp3l&?K07Eh%c%-5Rzui886bNhrb;{usaKX{~&v$MFns4 zL2#@UYk9i3f9W{AsQdBp-X#Pc{3ETzs&|LiQZ&l&oB#IJ;0kO#Y<_c7m(Z`A;)=e# z6_sxw&^PC%t;6LAB7NjT9`9HYF25)aal0E|bTu+{%KdLDEC7Xvyi7)q)JD!H^;#Gc zR`>_|GY0Li{`7gfHr@kq{vujkzNnmkUvmDxd*4j|z}^buGJp)o+|JV&@WKc;t@FUl z99=F?_ylGl$DsaajB|XG)1*v5L*289p-{X%(Ttl>)DdYdJ){@rzd9fH8#-;T=&HX( z)nxHQLcv0^qFPfkNa0A5>?sBrl)4WGufw#QwpD&lDAP1gSc5K2djJuvqDXAPz2hY8 z*vb5v;-%=xWp*ofE6U-ynl$!u<2@p-l?<=AhtgQ+yOm6r{J3AKH zk#+1SSh`$kelV_PG3c+-*X)k}!zQIod>Q@323rL^L(K=%m^@*O_kzht!vo%9R}0fJ z-6!-46Qs>t+ub)xY)4{%`@)nV6s0W{oKT_liR_bA1>^LS(8Mru=b`x%>$dihst7=4 z2vPq#)|`+t9IA6A1`;zF1BeCvDh|9Q0*B_>**V5J#i*Sb3kDy6xkmlyCO;@s0CfFG zy5kp?Hm99K{EVTFeq*AX#FoFL!*l3mvJ5P2W+bpBP?>90Dxqv8u6&yZlQ(dY8ec_ zVrvOM<*qd&J26rmMut?)JIKp%{U22OsRm}->8$b>*G~J$o*D#?Xw{wsm&$IM-TC-< zVVmtp>hpPfEc;Ehrq}>6TzX@tH~LQp8=6d}COUDZ9%<*68DaUMzuEe;v&gYX4)Xw=YJqN{yAy#Q2E; zZ!_6Ais6=+DolHV4xLiV$vw=mFu8amFq2FyBzwI;j%B2VZ#$Mqu0+yum?7qZbbsT( zIvZ$bow8}mCS0IY(~@$3nQ}Eomikl}3xU9Rvi>Cni(begR$vDn%R62iy%2T#B}NlP z_;&($e~sPE-|?`t#BskC1sg}siY!r{g8Jzh<*bN|(Nu24<=AZ8* z8##gU{NW=Pp!N0T{6*U9S5xK(AJ~dxfFAS_;yW`od*8?kE}eby)O=S?O;!Y_jZiG0~h^pSLWX<2CIDkAU% z9&m+s&*Q;*rJ>ul=ud&vK*-WAz{l*+AVlZ|*i65HXo#*EX#pIV!&S+%(Py5E#TXtD*35u4B^D|T;WZOCtsB{>mx$$mh&0-Bnu7#tMEcFH5U7UexnS)LkAIo8{^66 z_iOqSLoN+|5;+aRIvBz#BO#O6x>$S(pK|Uoe!oqi2_TO~2#P$GJoUu; zZpGLLsHAHe4}A@?0M`DJVCYtppP%d#9tliadYUtherBkBmG%*{GmxA>-qh8uO|UT^ zHpr_E2$}k=dXLJZ-00bF?2{4u9qkW9;?sHIAoMjF`|WQ>miYhIh~&SyvL=-!9kGPr zKSbcF8!8Mnhu{$6$V2yzQJ@6efJq4O&vS&DfEZ;m_8B!I3!N9+O66Z6#*@62WmYN(+RPq%&x;~ipS{5-!?dw%>Cdrt7{7G$ z%T;siR1rUi`~@kY*>#rSRZr98Zl1ZO5)YPiM(u4FhC`8nAyTCtg|a>^M-;=kJGxZ0 zWJF&UMbr^C`9t>!n%6YgS4FGXT%6oyDX~avZMVI{$gx;i!`cdhi5%{hBoPT)^mtqm zb0Sb2CJ;kO)h3fb#XfytSZ&f_K*F@0po3+zMm)Z(m9%-O)pYbnNd$=XmsID6-zcr- z2P@n}lZ5i@3XAE;r|S?pV$vSiI)k#q@KgQ}m-k|dW_5@ZXeWtZp{Zbf%w*^C^0D+z zde#EGC2hZzD_6qO#mlKgO0$)~ytNgB6wI59RcJNGI_YY0-SGGnx1L_rDKs3q$Qb|| z9^GwbjXp#?XZUR90PEx0hK*=_E2XijD`yr(61BP8$FsC%j4#ZD-bxR0k#PqZC!!B$ z!)%R#9*QfBR!@iTubaT2HeVJm^KC{{Xstd#!Do`gApJM9d(h2Z6qqy6%bl(u7$CUo zn4#OkHd)1ItxqCxnyxr`!>5N&JI@jQ3~c&9W=2jNjq!IRH8`$ua~LsFHlr9M-?e*v zx6G(nhJu|5xbHenw1BF8OcO@I!WrKq;?SLTa=X%!=Tp=*npwub03e+EA9=sI2e6` z(i2ktIHQBSFmJ8sgFMPJHey3oo`nojtZB#?G-*f!^AC3M1mh6qRPiFL{ABUikhFYg z#(^Qt29fKgUE(s5cw()~Lf6F2x)8S=x`<1h9i}za1A^=u`1H{=%7D@m)-M6lEA+LH zLpb^mWTgAZl!~$s^=SO(2*`hPV>n0D!urvp2V98)J2UbGa!e0Se#wdYhk91} z^cqM~%=r*(M|ByC_=OcNn6h`#lJSPzzd9j7&^m5IJ< zI@&dWSJG}^&Nk4K+-|D4SlZA?p;bS&l_qX#Mb6B|Ko@+A%46do% zxPDl{ok|75G7zpP;fWabvZXDi^EQ2_-H@yhqg|(6IriEmRP8EhO8Ydf7#>-p5-kie zzi+S5mO9JU;v{cD_CJP^swd?twW7+TK|2?rUOA-|6rq0f$~leh9XG5Y&WLV8jwm~c=QXMr(S?*DMKwE9ejUK(VSGbK)8ukQTNf^ zU`uHT zjDL%GsRn$uB0@9FZj`q0aNcf}w(zgK-7M`vwD7Q37ZhDO<=9~$D_D5VAuzQMh=&u- z!!G@giIylmVTTn)EUWlJAGTD8vCls@=EGLC?a{xO1dhKYorV9`dHX-l;-4MOe=-P# z(&J%$eDD<0IH(vXk!k z6`Q9cJbcGH?C&ihTi^OefFcN^_6lbNGYPP^{*2RQRnFeFuSY@qw=++S|I@?zmuK@= zkS40EDXgg=YYW5~bM9i=n2V8{r=hQGYk?Q^78Xzd_fdrSD67zPOn6m^gzQ>giS6Mh8AjhalJF1Dt8ObM#% zhG~>v@1TP**%gl~l}^l7dD6QV`skWNs!~i{C(agx1&XR~o5fuG-J8YslQ2gc>SM-{ zOxOMs=W}8ucQZPD7P(s&niK{4c!sa{%fodV;Dx+<`tn71))nnimUU~QvS~SSePXzb z`DCeEUsQ%h&6zSv#D^+n+Z%rOVM2#B+4a~*M9pa3qjt^JLo~ou7E~#pcoFzg_D+#I zcPS2A4N+$>W4|e7m1$7n6vX3NnxcUj{KPdE4*v=)Wmb27PP%f3F|r59PR`qaj=G8+MSUyAB1I{< zDHl#G*$_$T~~@xSskc@f*gD(^ZS{+rggI1+S&0tnCUWm<<=%m zQMrn9$p*F7WI3Na$w3sJb~kLZy?Pu9C%dK4^1BW^oql}Rn0ETi z86R~ahUUHpwFVUdEe-_Cx9^0~8kFXK1-t79#juqCBxt}znkE7)22qX~t^|Lg7)Pzu zc~>Q7QzA&{%!LR%R~2J18Ot(LyDAO3AA0h_BYIQcM5}EmRJd}&LBkB*UWAyqqnL1t z7)9gm^BR;Gc$4V}YPAnoJQxQ%#yhbR^Uj)1HO2gz5ZHUBjq`|rWR|2r;_@n5*W9t`+{ z+`K$VX}KcN!Qk`9be`nhSZQ3Mxz?K!MS``t{^Ez3WWI|xIun^lS!~1Rc`RU z5$pUViC8YL1|u+qgw0inWJIMXk82EDJ6(4z`k18pjuq|hYQ}bi+>B#2N>y)7zhZ38 zUUR6X3TvD0v!Al$bJAIrmi`ZA?-(8Vm$r?@NyoNro87T(+jcru#p>9$ZQHhOvy)D8 zGXHtzeP(98Gv}OIRjWQ!ecQi%?|WbOg=Hct?XZ&SPS{`S5q9LL{euaA)+w1-i@vbH z%-yHz&-9yGgt9Lzko*e^OrH_9A@~~>$if<*0?vkc2_M!7m3f&7_XPcfY{uD;21^)$ zTAAv8O&H}N2ms#`du$IPH$^ke@=ZAEPSo62glXlZi2*SnZc5122){&QQj;2Vm3OMK zWIX+7RgXE)p6ATS7Kzp;-+3?2d4-Hp{q{6fl!bLIsE!k@f%Y{a53pHA8 zl%mL3IX5dql!1}nj5-l|ZiD7#uV%fi3y-AINUKzR_uj zl{L%!Mb^&DGmycmqS^tOs1YzzL~Vi*e|Xh=rqtc5KZxYm<(ArbBw)Fa z>Befw`qC?D#A}fOGP$-X=_9eFfG34h-{NJ$xI0|z&y7*G(tnCIIkU^7^oHL-qV?aU zr9@*KdCVqDQ`rNidorR#5XI#S6*DKWwzTO|bDgIdZBXGn<#&GNM+;C;lUkxic!l{z z+m2d}JxFht9?F+4;bSUZBb%)#?di_4!SIH*k9Oh+H`_@`6IW&1- z*X1nz#)6i)9d!h_Z2g}(Qz9z|S>dwA=hMQ;BAWyNz_GWTvA5a(@-jULo-zE^cG+Lrqppe#NeuEP zk?A>kU5+eQ{te9iVK9)z|L)z-qFDZeMSqPx^=x|PsX>+{jInZG*eSqV7I{z`ba9G% zQ8u**PTArWd`UO9=EjvW|1(J3UE~w=)+A$DkC=ZgU1PAyx z_P2$XbXvfteC8)&VY|T2c67~MHRkLweVwoIj=4T$m3FavXiiZcLk$nXScSnf_tVjx zK`&=A#%So_(roQqLhLFar~stg;I<6PetK4gF+6mIm4<;eh*z-~H}~u``55$t*AFWe zPv|FiaO1s;NV(%OQDz}Tg*hILB$~T~q0UeukQHl>+HG%x^elB-Q990G{>s}* zuq3E+9(-mFEUe^pl|&~IZmdgV;M3lU+$FDAWtYIl(_eF0eJ(>x`LCI5FzkOjoBxX_ zLd3w)+C$X9!ul)R^>1G;jwXsG_I8fWCXWAeP534AMcqLJY&!(t3BKx#amcJor8i)z zpe5(%mI0(F6$2f&xz~-g-0)UqQ9o3;RQ7<}e3S<-*1&=&iJCeH_EXKaQa7)g^}0Yf zdsMNWZ{}dn@yqbpd99H*nkCC0VryDA!}qcn#F$k}edC1JW8Iy_~5eG{n zaVlu#VR(D0DTs>D?aVut;3Q-bMA35S6V+>#jS-B_78T74z-TvHot z+@&N5M7R_8ANoCbs=rI0+nftV1`$AS-phq(ra!T{n#Kz^?Gm?=R(!yTrC1dcw|Fr? zJh{KXBaU5~V?x%IPB^H1I^b8s)`DQ@f+N(5mb`a!_I+Gn_}%=p1PBPqi^SPAdxR6_ zCk`WD!|&d}v^2iLov>8nZXDNUXmAbfv(+SB6XY0D(H}8R!*<=MPiWY=v+K&fuLted zP0si*Wqj-JMNXnK0x##vpUMtSIIq9RaR3q z_EZy1-owfsIkX`UV;e^0OJ2-p9Nq`0_eRl1+*XK4~>hSvM@)!9Kp z!H{jFoP1q1MgFVh#D575{%3R6e_T5MJv2DU#tB8`OR~=)({54M;7mn#*V52XAVK6; z2p*nOsakGR3RVuT&^&6>W>Syi$^ot{ETSy$r8-cI5v|vQg(EK(qSkf8!WDgN%WgAI zo*5ZGy4il5Rvq*QxFC*E?h zB32R2#&7?Jsvs6PUcrA;m8Q!9FFXHU4wh+r^XlD;d zRg$HMRSV;~i}7UY6kf=ejbJdIyfayHhYrTDO)-K9yV8UMVJSv$w62_7XiR2qQ4wRP zF~c{UJjPI)Ln_Q%3u{PW{t!zyQr5^-!$Ju>v#_&aoUC!^;!gVsoq}!ouxWHg>9K(Q z(v>Tj^OBEuS}}AoUMTKY~X7yQ9$u7khL+H_}BN17Ns*_>n zqBDsdii;JKriU5_a@tNWG$|CUxFkN3Gi#?|5sA?=FS!Bk)W}=oya6)}J%vHNGf@P1yqvAV2{X>fl z$XmZ|*{jCgAvugYBA$&0X1~k_Hxe9R2u4;y-kGC!N`eqfHil#XPmArahb|;^n!+?> z$@H9Z~{+wdEtq9j-VND|kM)6&jM7p{4%IFViO zw~Z9eYBLLYPor=2X#Y&kCcYtPB=xez{5cfOry7XEljEDC_&>>`1>QnQw zV){T5hdhwXC*+X}SezE|SRcwrihDadE7LYqSXjUkDdrm=gjN0+KWs@gUBS>1pfyS4 zZjs!MS^fFCo}YhC7ouH`+Pie3DKfXB1zZEdj5d^|`IC~3x_fO{Vbwy;CDt*wblM<)>l>dbm?x#kjqjOM@4|ip*zb-U9+Hlt_bc8o03D zUDiVENoi=b=rjc5Sw@JtSIQRa!YrhD%qD2WAO=$CBelyjl9%7B2-@-R(SF#!l5JMs+{J91nIbJ58eH@CnGK8XtqR!YSVKSXaF7^rO#x5yxW z$XIkFqTs@?1x|WgWk#PG7 zk#L_YQW5zBQ26ImkUh?ByJzI^)1l1wV?ts2wr82W5yI01cQmeG@;y`SCyK6%pTI7f2Nbax@W@kF2j0$+FjKmP^^pbY9FUZ9kfpc? zanD_aZKoobax;`I5J@c%i~$tMt*@uIsG{Cg>pq>XuhO0%nAeXb>>gV%Cwb6{ZQg(# zXaKPA$prM`7rmq3@zRyv<7!~u9e^uR6YOI!9A*_zaQEu~RRT-}>Vm*oJf$GftP{ua z^{;NCSk?#))mq0jTy^`__ceD~+upa2l=z;^mAkWbGf%LecGq|*lP^dv&7hkrUo z>u)3u28Vk`%*__80UCn_`_Fww&0Ff~KcoT6H$R~S;P%a4JfQ4^Z^*a8cWgRP2HFj* z`#lXhVi5Woo-sE5{NngS9jXU;o6h*Ovk2w7kEi?F2C*9^KmOL2V1NMJn(NC`_Mq=& zA#qfxSney2j+x!j@a)e)q~FJF2YYsG^>|tyMHSk;WnPL#EJk4v`SdskbeKdwPCWBZ zT`g?n8P!;4ou!3ubb7IDI&l#on#0u+%Z0)cYK~!Ig&>!fvNZQ)1<9-$J=?Pi*gIP)T|v zN>_0vtCr+yKfXMgx>pm!O@6NMrzJG~9oraT)1bjyh3c}ltio})1D?KGSF(^XLB8Hp zUnaX?IYfU7@LoP*HlsKUs4z8QGm?&}l+kt((sXSKs|-)oUCtXGlT@0^v%VwJ@2|k0ExJ$g}8=2Fqjh;O8_pciAQz4a0ulaWg6GqPgNVW0%V#igTat*H2h zI9*m&kvSqUNNnW{=fdJ6jnhVJ!OT-|JgJX*Bi=FFjBn>J4WU8RZ_1GaB|c=PldDZ@ zm2aL=66ORf$C=V1`ckQ86B-j469HdlUb-nSBA_|RmhQs;_C5@ihlRGo8Ylm!*p zJ03}}_(R90j2Eh9p;ocB=QcBSvgSTTauSRPol#@O9ws#yT($>RUJNgeUn(QO0O=|e z$0llDzr#%l2d2^T{=i6|KU;WBSNF^tKL9wL6fJF1oslo{b3=#yPrXEMJ2l?+L6C9O zpRCYuW{yib8ErgVChgh;u52c$pnMrq$qkXbMfSE0tH}h$)55reIidIu;U~j^#DL%D zNVd^CHK9TqxC27O@Hbt+TfcS|jW}i9RjQ`N2f?8k+X~8@NYcpZZi#N51j1HA+!1}z zZ;7U$Ry4bIxS5eL2BNuIh3F0)e|VAZF}#%fy-8Ps4B;UaJBSXj(nq|2lqQIyus<)I&}bJvoFS4 zfrWO<&n<&BnBoHGH)6?#KG5gcJA6OTY}~pN4YGCdfWf?0o>%)hI_#N|mGa>conuR3 zl##LOvYbDp`|7_cBj7J`vGb5yjY&asGIP2f^8O&_VKqTveJ}A!z#R5i^mxq!^z;0i;5`mRA#c^nit~*0>)8Z(hBbr4!^@#e0$vNRn?0^ zo{wTBPN{31RRp%{EdZvszpW>P90gKc?g+PGaXwi;m&mM*TeJT04b=z(Tl`XM2moP) zPoc=r9y{hgwuI{l0mJS$iKIRReh~}K9u;wb9LOiiSHHF92E$`(WLDPf`$^ZZ97r#3 zObuaP-P#GVCduSHYTvQQ9f?Sl)=LX4V0!V=CNjSdK{fB(QgkMjWLZ0{Q!P1lVDob@ zTz589r}u^Vk-akaxo&Vf2rWSY8Zlc4Gc7G5sC>PTL30+DY_cA3WKQ;{YUdlwJIQ!C zu%KPu&H7=#KrPSWCxf-tU{-1mG`HfAVs~jvHtdQP{H&ir4?HuDJ76cfFvA_5=azS| z7o%jU(>&iW$8ZLSG$I_B``yV{K4FeGkT#WA%fVvGo_}gy8miB?hCzIoTAs{B+S?bD zgd=QMO&g?qThhDm*Q;w1XccX@=uqcXpW|vNWt9dkK~KCa*USdc8${}BQADX1OHHX* zW^WKgjoY^iJ`Bb#{GccjWg16x^*$g-l^3m+?k?Gjro}LF6jLLp2-Ks;K4qe7`i$lv z827OsoPTmD45Iov6k1l(P4UPecVjtr&tCw6_A}`>aALb~TS3XVtG0LKe`LgV{Wx~* zxbPFV*A=|i73!zckFGhh>UVymNDjKuAY{vueE5%0bD!SMJz}lB+!C)4az;%q&(FVP z&H85B8h5RGKa{Nl;++Lt_YpX;%>Qo2F~pvoi~TiTIK}*LjR(zt2AuznGyiMLQJ8r7 zHQ+=9Jg+eK4Uy?nz|YJDC4jBw#>MXh`JI!-lF!`44J0(p>-F&iGld_-6*jb%I~Pft zuBGaJXDFN3kzfbGTkLzU_w3s8b}h_b-2VJ?ivdL2>x0f8XgA7BaUU=Nkt)Ny9p@oo z8ZqGtKV%>V*u;(OrNP=7nK6!aa30=)h1MEg^ORv@y_dJ)ZnDL%V#c((w;f;NiMCCJ zRs5OW>)z}#ux+8GDs``RZ}Xw*1ZSqlvf=2&&&Nj~6Vmb$$ zZgr_M|I$PF7E#HwL7?X_8Ew<(-aNiuZC&1PBX+Cn zaLF}Wr=x13`R?I>#us8kCr#)+B}8t|k`9| zqJQLf1bdVKEXZA+pfE^S+<20nQLS3Or6sGXps`?}*sUtJzgY<&f9{Ka+Z~;oS@97% z3ocVAd1cI%^;Bb63bc<#=#Mu^qt%N=wzO^h>15I~ZUI$pty#6XH|=tUZ}c(B<4ljh za^rztv}=i9G?Fl)4WRL$>=VX^HYOj{CcY=rHe&QhTLdie^-Y)?$pNmhHl&rY0>kbl z47ZipOIN2p%)l(*KlS!s#>WN275fyz@9w>bZU%ddz6JwnyaH%1r#(ieJv%UVyb;A% ziy=?kRhWdkP&+>lQ4Xjtz(|=bm`lg98K0D1Q4Zw%-T`KFj3G^6SPd*C?ZK;5DJI}7 z8bLTMY0pNzYAuj8_NF2~VgxWKjnIXCqWFV#t2X%ktq+X|V(*hw29!H<$UfB(6GR`r zt5bI120cqv?5q`FvS9bp5*48brs9TDg)%vU-9s_aFs1Z;msW_x3e(39^}r3Jf*;TZ ztP@L<2WW^*)MLWx47pDbS0(OPA&G|Tvm@4H1?INn$Fv4oDH%$02ds)t$ikXh5}Im8 zN{BGpA_F}s`M?{ggWZD~`b74=MCtENWX)}-Uvh+%4eZcwoKIiNMecebAI3f_3zSU^_!r%#aulV#Ad#lJI zC20MNy*2z_FDnfHxn}&YKkC2MjZ8%?DG&w3kLWA1X1d8MH&_@pdxEn{C`o9LQxT+} z+K;g`=e8FjCwhxgKYj@05TH$J4EFu1M0f4tV%hepXEEE}%GLwMHPj0HVw{g-BdgC6 z8mSDXg~LG{t~gfg1QBUavSSv6uOGplmL1-d*DN3CZd$LQj;d}ZS#U^CBOe>cLvtrh z=VS#ZZ64tV`ka0#)mMtHog^>RbgqYXystF;XCHNjZ?y2XzNEewcbW%BA&p|Nj!G@C z?ZJj#c(>2w_fwwDy_=ya>C(6k4QV((>3j^rTIaI8$8_rLzGPt{+_idSq3PVrDMpkZ zKV8wZU<+Rq?(+GPVSHCAT9z~2T@FsVNlQz!i%L0wh%ldBo@Z1InV~CFDxs_K!dWRX5_Q z$ON+KX#8m=5fk`1h`?WPBX9%fy~!8csQh0g2mfUS)xJELO#ZK)$~u4ZROSO60nss+ zs%%_bd(1y9ceWa&h(y5l=wtT}p9YO|wr`)mplAIc+Gf*4A@F+WB{1ozC;WlbxH>Vl z5zqA{-!?m1f1cI@QkIt>3Y#QFZb|GzuOPMEmj!V{X-V#5cZEHGJ%B^SMAvgTh2@<^ zG#i5n8n%~L)15{a+8yn=dK+tep9^89uPqf;0W?wwWSGv!H2_suDEuVJ$_zTG4fZJ}UNb)!ZGa6)1 z?Z|ZXE5EmMI%LDOWxYOT&3pD+AL)L+46N2?4h!Z7;lU}0X#?imq@SCvz_HnWfT9fB z4R;>7OU)8u2Tl^Bgs+@cig>=cA#joZuP~j2zg(54YXk@3g2=qjwNb{y!_CCAKCOfN z-^k%_{Bm!$`Ha+G`5u2itY%>4d2BXLc0Yw1{CGvN11x$Olo`k+ID)yA8jZ6M>ICi& zMVKkS5qx_~?hJ7@-yiOY9hb9U2bF8dMWs^G`|>4$`EVGN~Fpb}*m zRS=%t6J8h-+5z)SJ1Y=K`QD7w4_|svBR$(VYpbXQ+?S|o@}M(#rmlo6$HF0r5!xko zL08wV7f0puoz#;Ir`s==FHZ?yBuz?PjO(FB^df8+qO~fnNmr*>2Pus$yAs8nMEd#Y zFPV#ZHMs@G7yV54ze3#X|G8@X1J<^){lAY(l-CteejxJ2gP|v($)KVV6Xh8q)87V! z2e|)GC@)brpXr2vK<<$LQ_W6vhd4TPH~+1hVbbD_$9G zUel)b679<6b<0)6np((=w2_1V z#E?-(PStl@!sb%uTU1#$`3cBASK$_Id#)N1jN&8nylWacT39eCIp(WnT^-sLr){hb zx&}pq4QMm%*X)%NWgw`q8ZlbKg?la;?GXub{%E)9px$*c1^VVx` z{0TIpW2uHI&f_?H_V{y8g_2LfF%x-llrhr^KNEd?!7@Bv1!-X|XGo(o4`$*}%Vw<} zG*W&&%C>X=4ru0*{mr*kadKWF|2SBdSSou<_f>Y@yDW~dJl;p5V8kh*0(mcVmPKU+ zoF=l+FdOkRdO*y%gTfAW_@q18@O$gGF{M=Rhb6u7ykm#&Up{VeE+C*tPcWF=PB}Md znbR-?GfeDNA8z^=c~+2{o~T8D^ZWxJxa>-@rCmtI&;|fOk3^kent5ne_=reyv>XRw z;RLseoG_YQj-p>6oboBR3N{w3RT*n$X5I->UFAr8uSMOI`K}p?k)?`=u$%hfsX7&cQbbcSM0XELO`Pfz-^j>WEi2Fwob1&wE{KnxX4&Q{dtFCg+*CX0alk*CC;|an>x)E=rfV+`ztQZZ+D-589 z+WVz_@x?=8a41~q3IR~VAXMdMWlSiDCuY6)KbFzu7xs&k?3$n;%s^nj_3X`4^J%wVYFdh8P`lx zHJyo<6*5DP!EMi1+{2WG6$%L|``z2&idCyF&s=izK#P;UR8Wz>e;Xd*LkfqXB>m!ZCnBnyGUq^aGq9Dea??lhwf zSE)$5ziTUNQ^5m$NM^Pa{#m4M%Q=fEJ?AfTd$=o~(soFi4>!A|-?1dFj?{u!dc%(m!C1$Sm`QDULd8`EZb)?HzGSUA8|U20{)Co^X>kEBUqOrKpSLz|7L}Pl#R2x){=So}(ozdOLfMdCH znD!WJ&&4DaR`1}NI3)n$GEz`V@{qO?u`^((-M3i4ibg*O-J`v@&wPidn{2jkf-_zY z=t%PZRt>?L)}fjg=Gk{n!k>wov5Xh!{f@+`ngrk5O5l>Ay?6*NWM5535O8Fvr}!d& z7Jt`A(tr6@Yp8r?m=vpvrvs-upxC|!%;|6=#>M8Z8A~_ zhComx(ckWNMOH1Fz8$JaUYZROs#lRsy1WQgCH<~d`C7-K0R1Qf0>P< zy6_ARHGtov{1Jftl!LsE`K^<;K2Y+az;(H{byHunfRe7QuoFd1qbaq&1%+otn&-tL zNNGeVOUZs7oy)`L*kVY(ydmQsZG$S4JRpG}1jbTROp%{~ie&qIbfwJ4Y*z?Tsa~|e%F07}#|6A!K zXylD|Bmh!|4nwitp~3%z{I$t+uNf^}+MA6}8i5Jc>Kwm20gy#Tuuu zm3(q*ECkeH2e%s~EFvnG=43YTMRfoe!MEn*?VKK~b ziWPE?y-|o9Hi8ZFndn1-4KCI|&B`@^C^;b#y{U)&)t@>*dF&B*nj@ZQR#^hSW)6EZ zKnsxIaY)i|v}UoudZh9yW?Y`k=7sLv&5)mVD#}fKYshdPWBt8}i(l}m$!Y57>^QL( z>NL@K1Rc#DZ5a)RtBA~zUI^`sh?(=fV8OR3D6C+GFr4eiF~NRfpAwH!{TKQUkj`E< zLjriPcWF0Vo;4xKs?X?59k5c{W4^If(|>p;O`uP`mwICzTkC^^6Qs&^F}ZXMo^VAY zZkaxHMNrBz8g1u~ZVxxUAadL(G)GLgYB?ag-Rw4n$d!A0Y2fu_-$L>C?!Ulf4d|t& z`W6>|#El;7T;QZr0c3C)Ggik;O`2M&{TA;~t5oURf4f0T9{NDjJ+rX3%Sm0#)QH(k zo(`z0nckl4(&Aq>RV*24R1Vi^+DD4@CoRH`TWU$YAMO<^esWn1n>wA93^6aY&P>S0 zRTUhPB(gplwB0`xZ(;H4@GEN0JLu!FC7vCQ)H++%J40)557K5DCdm>>6{i#`jm%LQ zpOW5-T5XX!wWTugR#d6R(Yt7|7}TN6TUbTe-hWrq)y{VgT5uOmKyWx5W@kgT+_5;?5$Elc(OCL=9IZ4m@l4aPx`t`D*dnPL&# zt3aBO$+BmD|%13&4and1W6ExbU*{7Zk$s@i$B^jNj+ev^R{!|F*=tczs( zowBG%YYdnZUS{zQZ+_{*wd7-g;&+u~v5^FzEW>ju`2N1|gdb$GtAN1l(zVRXtm}=i zgSk$+NIrU@_T2E`v{1+CVM6WLsrK<%hINI+IQ? zqm+w&)7b#;9{XY49 z=KfCliKVl{A?cHDkvWWK5@hrJ9A7;zxebHPY9$xgHFM| z%vy*u$fGX)H^1)Xp(D|0wa~R5;ZC>MI4nE3wC%@CZ8n|hT&}bMoigQAjJoz4l1*#Q z7Z-TT7UIk6W8W~doXQ(iwbx6=>L_9*P|J>tSk~_ zD(*|cf5Ij6*8eeIw0_aYD?j+`rLEM+0cvuakbC#rHF3r zi6cyd=;}%4?qa@S>ted8gf=nU?131Az~Act4!ed`t|{$P2QhjxEoHEC%OD4lnl^n5 zTczSGUvN^tMcr@!cP>w@=1_)?7GQ&QD>5k`*)@_XLLLRBuyUTauHvqmST@#K!=Gi+ z;=knIz3{XAA0?0hPndEVRRQPU&#(rjH-hXlTxYs@gPYBxY=C5UY^sFZ zAt}NXrx=iqFh)ARpY*br2QOr&$TTAPgp(%wFQy)2qP_qRx6Xq5h!vzv6)@YtHX?O? z?)!cg_~v=8$o-}#Zopcr$E2v1nE3U`Rq$KQ0f}ITng8LmAXM&tlV1iQs>EW>D<()B z^m?Cl8EV!nmhjRzeyfq{lLDamj2MyQ-DDQDz>4xq^>N!)gEZwY= z4oE~#NibvRjK&(2?Lz9lb3drO*LXN~xNW0zApKs|uW2KOZ8Zb(1;fff#oFYoD| zR~*vnn%s{SKU{#WQ+R7$w0(7$L4TWzyz4(myP`4#62X&1FB73P3^O41rUZ;Nk6Ba@ zucGk@3@g#bc2VTzPp4BZs(#4Iq;VZglBmf0iC7V2GM|VgJsHRB5t=knCg(Qpw8-fr z6q$zR+0>C4CNN32hs97w>M!v602^Ua08A5+mw;>Q8#JTaUxOy>)DzRt;VNDgp1|vo zQ??SL5{6{SS8U3b-kbLMiO-8-@vz4)Yb|`^Z2ITfi>0R@c>cD+K0udEDPQP4*uS9n z|GvUF|GvV1rwIQ8hp~zK%kT;C38IJz*}DJk^Q|U!pb#^V$-w|ZU7wL2GDRQBbcFNl zyv3sBrX>mYy>v3dU$}51^^ANTzy~t zctsy78%oQ)7`E3dcNCG^jT>EP1F=cP6SIN#dCdB;^cQnR)2dxsRcxystVi=+7Cj?w zv)0)rkLzijLNyz&+KSFN9g8rpSq78w9eBPOe_COeg`3nqHI*UUwDq>iWUip2HM2R~ zaj%UQhM;a-1}VNIP%f$%C;#CZTGruNs9?N-)G)iN^MzrIk)9Zc1mHqC1opJ_HDw_7 z#V)~sOJMiInzP{|npIm>2B)N`*2(fXK4xSxNv`(1GHdZ^gsvFj7s>Z-k?I^yxmBis z2GEB+jFm|!f206A$wH+Cb8zYcULonSAx&CBS(^CiCoaGq$m$-CVAvFkVMFTM_ZM)Y zCrQX3;IK4bJ`+ig22^Rd{?5T9GLTq@L~nm(Duj0jc6ffRq4^gg{-2RF?0;TEab;!s ze}U3mlw{;k6j1r9VKZIL3%%3_e$c7p(j~n5LsRAC0w*f7HU*@$xJy$o%A1}|=-(9Y zi0%O@ZNq1UpFg17J|Nr{-tgfBDP^`Yx16Thvst>~yWWB9VdAm58B2&uiTuj3S+(cw z@q~zAVJOIU8W^$ANT@}z0+hbY3|U~0l?GitqL0fqbSD$Nmh05+Pstz(ca)_8Q+X!o z5nAaqMOsHRDuQhh(Y@tT8;wERU}(ORcbI!3!#b0dp3#|}%Jc#>JUB%*Z61=xqa%Ay zrPi

    l;snDY+bpwqyo&r>G~Gu)ub~xt|G^uH$8@#!cp<$3sIXx>l;ilQuY}lg+s6 zN^xY}2iC0sF1v5ct`&1kNGt(Rd9dDQ0~inLU|bvW4lIKG-7+HGHQw`^4c1rbi30}J z1z5wGP*=qGy?oNKWsCOF{V;{a5n}d#z`PcKg|sBE#3rP)fxXeTe>S$Yj5ei!~E@hdECK2X|o(uP6@&_Z26UOgP5k#LK*rGT9 zwlKRzymyy%#frIwfT`<*MawFXYec{>&Nr=}rPR&KX2j;QU=S?M01Y}u;wFTm27zlU zD49vI_k*w~94}Z$vyHvNtfp!a21fn$C9@Ne<-PrD!h;wsCK>tlJPZBHgy-Mu(pN|N zzfI>CI{Xj602jr-d!P#?+q!Aw`t3C5p>7E7K|EFlVdP1~6Az_9;1`b@r<$fpm=^z` z_huwddjb8UFvPPyL|bTE=X9OH_56kWPF)KK_yD^{arO}7hm`Dx#S{}+x*r*h4?7Vs zVCGdR_Te6PPzv`V>fU##sFSD+)hyxMT4fz*n@DsIaKk~O*#LeJ!eojQdLKcQsg8YmkI5|jT^S08poV=_NM2&vTPI| z{yZmPE4wZ=obvHl6s^o$3iCpE=fNsr7q2wkag8e(pkNPF7HU8@b?c;MgExIt-jlHBo5 zmAEPWMVLa~qUFfGBhx9fL38QNOL)FZgrECk3)>(f#j7#w_g}%OyDJKE-CsqG;{V^l z^mp#^Kb`}gN4sTy2nYxg2wPVOS62vGQHZLYKXZ8p%FPoQ%AycH)%v~yp9K{Q2gscj z19ieVp;o$%vOW%`x@~rr5~4oPJfIjPf#yC6Z9b|FK3V*No#8|zpfP5;x|VTHvW5;0 zmP{mpKqFA^83P^8-l5o{5C*i|;Ha3GSSgr%dwrF?h=9N`AQ%xa%3ksa z^q_k}B0y3CBi>)?c)O8%)Ep$f4ecljbdmq6mU2oBAAfHl_Oshbr>;_VPyyPvZzNbQ zX<3TF16JN4Mq37#r+PisFJ@hSyRB68!r>UvSM!s!O91EieTx^jaWPEivvD?TD`0!S z?<#N=yNDs>WJZPDB9+#z;-xmo2OLx@HrSbW$d9&tzwd*F5Sq3H6pcplTEpSj>UhGB z#Y-9JgZAYTC=V3XG7}SW*s7NXI>$?lL!fdCD&Rx8A5q{T4gaD56th1Jy`ZF6>%QQO zYK}C{oLSToC!Hn%{$WBVLz673DXW5Ly=Co;v)f|e0?^W-Fm<6U^=DGDI%aj3O_e!Od?ngSG+6`BH9;%c=9&@3cB1LPx=pq^ zLfau*sF`NSKtwlwuv)lHDl%TUod$Vx3X~-BdmmG~R(+mAWz}r0NpRfA3Tu@sX@#NB zp#8lkav=Req;?jDslu+DhG|{Dcb&b$cj4C)kZyBI zHsjVTHLvVtO^z3%6ZY*j2jx(~>JVY_apyy`=1^+$j-D1RQevi^&f=n`vset=%^i(2 zP~%D5e-0(Y;|*E-xp_>$;?w3~6LU**8n-bk-#t2m8E}+-YIj|uEvuM>DW5)N--D(` zNXIe!d8=O`+WM5H5_cFqn+jl^u`JGjck+HJ1+d%(1)OQe?A=b} zRR|Sm0Xlw$7-%$=H>bA^2G@1U^vm6nmh$TKPv0bj7qk7roi^tL%~qCY>2$$nS$Lf~yQ4*f%Xk z5?DQbcuC1G+nO09_MVwGPRt#W#QBAFTfpRib4Nnj_nhy zXXTDnP3ae|#`Xt7E^NDd5wYL2_Jj?@u~!?edf#o1Ck;ZkX9{3(Ass&j;mU6Q!uOH0 z8{@9npM7H{>Ox9q-or>ZkGgyVv1J^MH>C*&pCYUBduAFqw^b{=t;@&MF&|&*4B5PY z4sMpPYJH2UZQZ2qZZ*1ec%z_e@M6}C+{t}6MS^F`Ml>Xq&wNMAU2BjB`y-&6I^~!w zjGu)%WR*&-nd9`*bu66x5rT`%$uT)Dfz5OyA%%?X58Sn-JAy9--91G^Kt4ZdoO)vt z7rb{|pI~j)(~A9L1Kl?sEEKpl!1Jv?>*tI;KR;RTTX6stLEP^OrU64z=Pb+FM+P_y z{rYfUD^5yQ1o&FYK5@({8BiFjLeBEqgSyIZ&BHj^WT(EmW1$pc8)ktj$uMIf&TOj% z9%4m7Nhx`vFQfMm<#JbOcsHC`+G5eZBQ_G3WTVQS%tD=aYvNnPNmJj(o%^j+*%;VT zD+Amd7S5w6H&SH??w3+y+g)6ejqKvvZ5^;FfZYzsmtxn%joGW`_gXAm!WqD#`)B*{ zidI5@rK8nxZ)+sBJ|83gI_<}0LE_*(nV8d#NNa;FPP}ERgm=0P8NJ6piZSWeWuj#d zbdFt*`(ww{Jnxu&$OqUaT3xT4k!>OHjyFrju)8ZM*Eh(*JCE_IH@hTASJKpw;_hrt z585T24AqwLSRF_y(Or_5p$0fnM2A)1LCNk{bzdS1Xg{k|a`*c=3h?+o+4UXPY+iip+e^d@( zOD-wqDUpBvd6!>%m9Gi$20vdxzyIb1pu0YJI18YnEWmZ|tU?IR9cC&c=xWkeAP9dB z`I)N=Nr(FIoM#LvdHzIv10;D32i~X~x#nLcufQN$U4oEwIk&eUE=u)l`=%IM=u zseVN_E6A@=r?sHk03LJJAN20>UQ(cgQd*W%Yu{Bp=62 zJ$Rr4wX_*Cr@zRrjG@12OIx)TM)jyY7eN&fZd_IMtLQB7KK@K(^rXMItcqa8gMm*s zl+2viCm0|9I6v)@><@eg>Yu&*Kg`nohbd7s@*y<8gPqabwEOv%9hMu_!|@^qWcOV8 zrglR#VcU21M4k7^A9hStue9u$YzG%xGCO%zw!+@*G4KaB-C>_^Hq8)pa}U^j@-heG zIf%YzlBvhQHJB3(8IkO3??laYzF}V0uhQ&o_2L^1&QCuY{^5p=!D7nF-kOc#T$}v? z$Cn_wdf$6620jCEqVFHhL@j{33a<|WJuehTNgV*G!2HxrxqE{+L^*aas}y}VQWq8; zta&V-8f#S%I~ZY9f}j+Pf?C9cH%UIxEEf=yJ_`j{IkaNY|?v z;+FsIBP3!~`9qvbCudp#f)c+Qr0DWu#0{oo*{g%K)=f)Z2;=|5*E>dc_BQ$6v2CYg z+wR!5ZQJSCwr$(CI=1tR?T*t={`cJHIWu$C%!|F&etqq#t9Dg=s=jqK^}Q{>)z7TA zqh5VA>VG}=+dg?WGR_E6ZI(gJE(Skh3%$~s&NlqujXUxPVD(9G^o(GzWgrn%iU@Lb z@j-wlvx5fPY^=2#Qqyp0j*j2FME6K87r8qXrc`B;7X|b|F}cb!;Lk~ zy9vQ|Nkzi1K)3tU!`sE;_V0-DQB9d{58*IMJy|boHdpm-SaXh5UijUvLG|7C%oP=F zY$c4T2B82?djyz7%AbiQkzOu*(&d&O^}>m5ZT>Ipc?aEj zC-t{E^OOMAtO&<_{5N2xnrLwM9h=@;Ya-M}cC(ma^+s)w z8N>ui)>k5yv75iP7V;0ZQ9T9uSVO0Tcspw08%7{?yLLh9nO4~05X*;*?E`~Z7{nAB z^eXv>NEMtg*^0p1V-Q8WET!L3`5)X`-qezC08a#fg*& z+LbIW-gW~97HQj*CG02|9AY@BypdIsAQZ@v>nFgfBblm4iA`bTlw4>POU;_9$d!X( ziT=i=hgwUP`bW)3j3Ng(B*qiL?oR_p@T~7GYkGZhA?D2%tq214K@C+{RZ^^ocjIqV=OE4f1n^(50&MXuhrZ!E*57HLm~f!VO+*TCdp`ZZ7m@n zCXhm+LP4Z@04W?1k{MtcOweB2KB{IztG1?a08&kQRGe;}1{l{zVN;=|PP_YC|3IvA%=P>7iqy`))-1M9CCK zP5L@78FRTPzyiZG&e=ejcmQM8Ectv ztgCb}olP$WNLN$o-@bT3cI zkflSmvWBrWpt#ROEm(Pq63TH?>3Lvp3FSe(nun@-A}hqsfrqRyZSiugtR9Z@B*#mi`ddlGFP-u>;~OvJI}Au5o9eOJ|C?H8~58M)Pi$6b4naS3`}z ztDCer)L21DPe2szwX0m+xjppQ)K)^GU_5DVgOh>kM2L}Dd+io)m1^`Os7m!h3qdhS zGZB^^ZfvL_2Bp~L(|G$YMd!mpX$F_s9$&ZpUO3dAnj;%OqXSba%U8OsFy(xwTK0jr zIS27^^viCRB09&dybtGEEiE;iPjDQ(53%A08sVfX9@{Mg9*YAWRg5cA0`qu45Xv9n z#^+u^Im33C)$tPnIHx;Frvs;JmLZ(6_-H9im_EsKsb=>j`osD#6vY|rlTZs<8#lUI zK<~@31aY&a9xb`{G6g+tMsqSVA+)^|s|ZPiLvTt=-S~QN^uWO0rkxJ4sQ@Hn@mP32 zncA5<8^??-e;5(L`6ZmVTGldom}3!M`x_m+NS1;1!K(;eDE%Gu^KitZ6n4vyt2SsHjD__Std&~k(GwelPCPv{ zISK8ay+Y65HY?M3?0E`$$D>Q#uvpk?s5&URR;s&=s3HQ+8@N`sR~vK7$Wj`Tqc;dW zG$^rc%n9 zo3XywA1YJD>BSttpZy5{5rZgSow5L`_Hq7xIE_eCUat}(CQL#%!r&zLeaaGUj^#6z zlLBu2dPFOpZo$4H#2E^Yqsj+}Zp5MOBE7v7@~Y3du883Cvw;uVQkr$Q-m;h)@fR_uwUlp!%kM2^8 zSC`HEGg>Z{Z3iY8`g2pr#--No_9g)K}n!qcX~dG9}bXPpkpY&ZNq{16_a3IonV;}#-I9$8QNz0Gojhe z=_Cr2ciD~<_ng_T%qI>6oa}T}9bS8D!&Zwoc4$pa#x@k@fBQqSV2hd;0X;aNVB~|H+|KrgaH5|uuX?8cp5x0J*c`9l?ho${ zOn6}v+yBLkP&cGrkDg|Pt7ZsEKh#6(jj2|IXm~k<)9ufWH>~x6eDNB9KA?R%Ea1S! z{}WCe`DFEHAn$3R@ItQ}fO~rJ zLg0(4eFou^XE%U&%DyGyet@wNVb@8xS%KNMXtyQ!ULWKa+jR=$w(xLTFeI_C>p+M< z@ackvNI4jn0*P4ZbE&j^s#>tu>`xWVZF1-L zA}#wpY*+kT)y>=NPWaiX91lUhF#Re_M}?liv?aq2v7Q*=^P86%FGPka#9N9dCOu~) zJ$IQ=+*qS-vz0a)t~c%1lXsZvL+WRYnSL@n)tIZEY?7`>Ydm$%SX+roidn5WYV-v2 zDz3@N>>9&NP=qnG*k|fq)o;6r^}^!jt**kqcuAGUlj{vZsLc;GM%g{2et8k=XM!tT z0}~eJv!pbh$9cGwIbe;ax>wSvbH29LuyH!9LYstWn3KS8ui+V4K{zTX;61qSrsDsz zUb(d>M_AX*f6U7@WqB7f$Hf-XKw+SC>{7my9gPr`pq{IEkfNr;I8ilAgz3cHjFe(QAPKJ!W5k4oGI%jR-!n`iNHox6^rPUI}{ zc7e(YdhZfqO(jIvBY3ab6VB>>zJ$m0 zu{Cg(O7^=?&`-<7J<%=L2Md{+Fqv|H?c|T;;ICk-2 z&v}7$O}rr#W)r1tCS-V&gIO$7MJMyD>>ZN?D7vhbk}B}G7;~Ps?#-ujbv}e;_Hwk| zw``I?Im*fe{hH~jo$dC`i=Ba{M(pf{4>TKDXt*L+Y{RDE-7FYpTG%H|i)fn^TQN^G zagA+|8;wYmw$~*}Vj753TS@l-VZ!#EJqHx!fHnJ&Fgqds?P#HmP-45p5*M0EOP-lM zGp;1NG1^X0_$^lTMZVK~!aMuxoULH*_E++b{hcV>GybLw@-yJeLdb?JH$z0eK;JEm zXJx|NQa+Cef)SdfIF9ytg3_^D1io03M=-84NoETH^u<{V96r&-GfdVrKgowPORGY2 z3#!jZ`VwuPzbm*INtM?cg|6tb%Rl-7f7TW=AK3z2F~| z9hb_KmMSDw&iDpvI-aRyYOTh8Xe6SkI4#Y#;M+(HplHw|0~39|Fj{feb7Fm8xrU zRwUxH=vL7tt7tlu!&t1#)Jh2-j^_8(BFf6LK{EDEN{v^ta@w_+v%%$`$&FPP3Y~0Q zR8gT6w}aFI>!3MgFjAE#7XL0ZNu8sieKUxcLG{wi%pH-)b=AYrMk7<+K6_b%&@^nU zslWk=dq+MT|4YE#GZEpKzJG^_wy2#hWnYxIGhq2h-z##nZ{(F{=otJx;K#lwfQ>;2 zz%3I3fYI8gQY;K&Xzi>z0N4Kk@*Inh~A&>nc za+Dw*Q{ZStE35dbQZYIYr}`6qQW$nwM5~&7o*6w~dRY=pO_ZFKet&v>n!z<7)a>gI zx`oFreOVW2XVmV>F0*0&Ep;uM;a>6<^FGL*rjcOaf?c1CFfN4GEw4uZHFAH-RJ`M| za9|C4R6JoS`Bps9Lsa15L%5&_Se~b`;)<23(NZ;pg3?_PREqnqiIj(*^!q{e!j}cj zCH8*>{z(~;SNkMxzb8nazCnfmxtD_apHs$vI^h3K7*#dZmDRtsjG(a@uxbPM6i8Hq zgTq}d=(My;5at*qK+wkY_P%!kVkVqme#`MG77eCe*;TybXFIb%@cf&(lS<|izH|65)ZR6s26o5 zJgJN2G}aPIj}|rkbCXaPc2pVJh6FrEOmU3KVt_?+R2yaKJjU7ODIV55q-;Rw8>X&h zx_V}q(sJ(7XtBN}EV%-+5tIr&2u2c!YDk-Sj3Qq}nTLjzR4S3UjIBenE^gk_Mw7df z0wKqNOtAkHD{&LY{FG4}E1IuGm0thV#4xI`%LugIVFXsjQhqN3 zy{?0_Jcm?wAh`{ShSs53fawTv5>9C#9C59DBV>9;onVqTw z0Ve5QVgJ1-h^hm08M;s86b%0mx@2u5KX}2BGedpB5aXxU!Z_U6hjC^_Qwz!$s@P;5 z+2?}qFPT*fR}x>kanJ|dV?_t})tncd0r)MIThVV>VQ?SV9Oc^-ms9I4rCa#k61OJ( z0XrEqgA=7%t-@$*dDfN%vfr$n3MnIRX^Q~4^CUCYRnw{SDE3JEom@6SC#y~#o}$;g zk6Gk>y~R^(!c}Fu>WH7ZpHbh$`nF=QBL;o?PP2aXnWnFN12I0!%1osYH(djH8r2)Eqmn&DAFJia3!zsN5>2bX|)hgD@}~4vId&` zRPE_jgP%`kiaDaP`g138bf-)N{AXGt`x@LD{7C z^I2^g>_I7?=augopW+I-B&GqhABgp8`8{{QR^X*fV#lTd0u8k!{hhV;t=hH(~57+CRxJ#GqBp?-^cn$+`|* zUA0VciPZq@-4OSbwyg+1ro4`yBJVKwiN;UyMtocd*pQ~Rf9vR{v zW%0QGq9FC(K@r0LeD(jUjs9;!S7d%I9MGo zCc&a{ETL66YD2vi;iy=Oa}sZ@=>O4u@o*#>Wp!k7mUrs)HangfJK5y%r@`~E@LGGQ zmoNXVs>Qf}3%GYIJf4(Kk^D%QYL={pj!B?vOt*KXo}M3~goDV)aXiKd$aFGa7vvbJ2r08F-+_034Oy#X zy=tNvIykbL?G?EarLsJtGXJZ`TO(})#a-A+xSiSx+taK$jrz@D z%zr=sb7&>`f6mw5((Zfv?0+LceG~qr1RDBxk{u;x-U1LCxyOtQs+Xcu7>J@0e!PR7 z)j;Mp^(X?qJK%m-?D4HAgT4E+IwN=wg;&N__vuq$`u*er*WY&9JYmoU%?xjvJDnt2 z6Pt40ZnB@cXcqAq%0*;+Il8rA&QQ6ThxxOf`S4heKmaO3w?tKg3~lv79iXPNA@rUi zhDCXGW5Wtvk=YR+?4xVxxz%Aeu_x2K!ArFiGbR*x)P4i6ykF87JkkmMF`2^F>9oYj z#m^=c#=O?|d?-8K>IOB_(yaEvbP`8DfWLRVd3edp=$>F?!*mr9YpUe92SK#SnA4vG zN$teRGCrr~!Wl>#TEr-*@v0D30kz?Wm%G*l^})1A->Y#Jb~D)~v)wXortVtfBOF z3;*=lK%o`N$eIyVZ|)n&Kc0bq@RDWu{nd>BS1j;o&NLj~4yb@{&uznUKHy1*Eb)>LEc9rXe5rS>PUCpT2vccpC zPxf8Ren(bUjaIOy+A(*ef|x5-F_N_=SkE$B^kACf?P?|Vq9Dh2>Ec;${BNd9n`=S7juN;JOj)I@ZuM2xON zXIjbtyA$R_;pAX{Y6=YKyFog&RSSuVMxmIq-|Bsx|M@e2q&H+kYwat-)`j!A1bIbuLVG={9LTb=kZ)*pu{K@BX|v0R8z?03WRf7415;v71tQ+CHl8k zC%1!`h((9`5GiN{*^u^+37El&0(Y3qhh9U!T#iX`^Ny`cDTE{T7+Vrs-0t)lr#$ow z8kf%Lsr|&i&r>@K6J<*D+v(*pc4BgHZa(f}Y3%JSv5H^Z zYG|Dly?KeCB)R&a=ekI1B^#M-jr}tCq$|1l^jfmK`%!i&covfL98q_QJc)h|cMR|a zCmBiFG`Q{BLpu!2fIl~%chg4BsKO!$=@uyomkl%}hE`R4obi4&n zPg^`C4^mvz%3NoF7$QB=IkBd7GhyMYl$8ge)HzatiU;AoiWTA{0WqY-n)rdcq;td< zod_H)Q7G^F)M<&TdkRpR^7;L_GqgyGo*@efpO5f1Ym)lpo;>BZ2<0Yj z5RF=tTI>`|kf{R#ek^(X5O{;#*dWUM!edcW#gwavRm%Xd412P0=B4^1i=G3$*=_Ha zD2L&KU?amxsh|iu$r);R@i@ZjnzSUgQQ45Md68Xh~o@Eggl^L44{OeNLeJ!0{7kn z>H;?^YanWfMU7U+lxmPmYLs+!tG*@YuUcDL>RPsIuk7^S%WKoWW}knPqM|GvK5w6N zoP5v1b)0>F=d^at7;L z-q{0p;|dY@+3s^lJ=|dUS?>$bcAM|JOa1kR{aXR{x1{OU93W2XgDM#I&K&V}NDreA zC~7B(0BQ~9`A_9^pT*s-)`vXQ=4~JFM_x!@C?mSS{KySW7NPb_|KQ(?k1#C*ChSN}7O6y#r<5pdCn@J!-Z&5Xc7PBNIMb#X!^o)XRDVS-cOp{6H z3JWb2f>Wc2xtSIUyktePC6jd2I#DlE?RTV8UnSQIRsrp*M3 zbgEY4bfOlHPU;0a!$P54)SG`b)VNfDZkEI_kCm2Dg$gg(t;(uCEoJ#8@+LZseFRzN zq;=~Uw^7WQ#~4UJ+Z!MSz8XWdPJ@~;O1(j&GgK5GcDJ%63RlBhy+*fUJGApW)D+~G zsdFKhuILIG%c^55c?TQ)c%8M}u)0gDU4(megstViL^1t3mbE74g~f`W*<9Anj!aGH zDj84aqQj-SvIuRw+#C#{w_I$R579)%Kcmb(8{c~Bi zB|5i7#E-SPt>o|$9-i|4LHUVhW_Q|zSdMu;RcfkStLT=5`Dl5AC5mmv@g~@P3uibh z-K`vpP0rVa>a$R210qTv-2{Im*jPldCH5LnmYfaG0k&iAT3wu(1y5c!jPR*Y^c9%< zrL7Zr4x+2UKZB-l)oL|5OvSsIdJGshV=5~zSJrSNVOy+Z7HYc|K`EUyocba(Xr9J5 zvE$l0bSiSb>Fuu zt=JmRVOJN=Ly6}44c&SdTumOsy7t1`ixkh+TAkwBTAe0svz{NoW2B(eV4752>c?VK zV+(83p+axGHEZEG_)9G5U=8~!N3spsTDlZt?F9wFnS!PCy7kDZLkQEhm5f~5rkgCL z)n>#{8_@VWm3-Zf1@*Gtl!5>yn!q5lmt?l7p}mE!r)->$sL9qcL2cBx!NABdA$LK; znOGH#M#>U}%4&LtkW^+|47Y6`W1HY$l*L*th0fMvGS#gmukLv8oNc+)MPf3w`I!89 zj$)zJWs-iw`0kp$lef2}e2r*Z#bzpH(DzEwI;O&2uB2R1(NWb=(FRu(1O2;$z`HqW zPKn}f(SX=C_i&=V-ma_-uCst6&0$9|HJWNdtv7tBP)yz#89{2EIEg-jq7|n?wV5I3 ztmfbn4x1EuUglapSQZL`iQp(@vsF6@KXp9@ErzQH)w)1k$|V`Dpr+_$`p^((HZ zRi_AT#|5(DNUMYX$Lgk2(3Zqe+lZDDUiUXGDPk@iMaOZ_-s!_|#bhn_^E6reh+W%m z^|VVkO8bbV^)l&mqtm$`RlEiVg1p65eZTosQky7Gke^19BkxOZ ztCWtqY%Wz#b}L8x*lKdBE`a(>n(T(L&t*8;lAnd6_d!wHf-J4Jqug}eCV({h@#eSM zyjnc(*-*ME7_whVS`jN2D+kDoVtDV zf%jECF8RZlajmyCU$C$IXM!{TM#n0>T<+=4ZRfzElRn1&Mvp&T2xSWYSm1mwE=+iu&pMxFC zts)LeKv6_ETMUos2dINYz_CB@TMbpNTdwgWt9m+1`Pg+b5g$>76~_rYcK!uK z&TTIgF3)Z7bKjE##O?tHFjS#J5`}h1ra;bHtBkLAX)lTLFLLFZsik+8ryRK)M8)*s z`=-m3rej+O{YTGn^)<#9Jn23bjc9L;4SL|~5#MTIm_&(^sM+8LW6;1cL-zQ9lT#`< zwPQvofFEyv=Tre#KfgV^I;V|QXz8u?h<#{LIyIsVKz+iVsE^uDTAF0Yi_yoILoH40etV^HL1N8T zHAPIUy{1Wu1i1}8#{-U}i?M-~Sqf5Woz4MgADj^nnciUUj5^=N=m^T(! z%@}Q}s^isKA=J77d$kCf!vJ!7JvJ+$l%=+mrp|fG9dgRoWzrAllK%S94zJj-S4M7j z;hJF%pkMU5lrDOxFQ)E?jCgUw$CcMAH# zpMNC`Bg*pC7wY>Y_q*Mg@=|D^-QgDbFb+11K+r+QV@(h(4i=Md(#>ScP=){#`=*%! zZ*<%-Awtf3!4Rx_`_?P>a+fQ=S54#?Xmd+UoiS~1z=THx@Dp>~1ax+cJpiOT z@aP4ydcayEj>Ca#M+9zn)NO&{R@Z!Nsyznw^poT`a*1dIV_H_`Xzei@uvP6 z%M_Xh?Juc}8-?@P@;?lW2z|pYA23nty-k_~-j;#~HaV0bCF-;{P9`cDH zk4~eg{V0aP$?vzUW!-q0lR#wAZXCzE(+x;0qo_*zWtsDl28OrT$pizK>om@ThAV>6 ztFi3&g$bH`=~teKphw%~`;VnT1`uD$ckCUH0J zg`X>(ofdwEh}SPK7hbwX{?_WN6vuwt^U>Nd)m;gKMNk-`6=kEEToQ zJvfyTq;N1yL!fob=!qsnPgP+QWFTuYMfcklW3(Pa)mR9T)~)>6=V%?5PaJmWf3JOg z`+x~S?nX4LIiFJzw@=)H72@(tpcW~S^QX)EX4d9?T1Qm3$Ak8QP|VM=phOmB@i8Q| zYmN;Q{ta)n#sOZSWzLIk%z|baB^9@Ja`wT*jG-i>r~T`aPw_M^TQa0(@MjwawyNj3 zF5(}8XeGlau1`Si&O2TW0;iT~t3TIF`tuKRsxpFVFZd$7k{r3d<7;|Wi|kL+*_g|I zvDUvZabO-nM~1;`SR_M?lA%Q!_e|1*lxa}MQxdevioCnvQ&K4{uP13leYgtbw?V5sJdvt79CR@nKS2N5yc3dXm zLvPHSyS7ZOQ?q{aRd*d?I7`^Egqijw{i-#(?@q1|eUJw-hSJyy?t*;CmN`uN-JPDJ zsVru5w7}G{N8=$j0H!?)sPZyxc)~M}Sv&_Gfag7S#5<_YbF(@r`2cD%n!_86;+&}- zpC+F*@?v=KrS!K2rgc@u#WfH_I=LD75OlU_Z_0$1@0){5Px|UW9un&5HghsdXkr$? zfuFk76M;ajKZ*o+R)s#wJA2| zX?=!Fyof-rIptu;IXrGOY?h~*tgdv$!ov-bJ)NO|5+}B+W`6$GsLfQIT@0V=Ai|qt zndLy=3y8gH3ZY-!EmJCNrFXDFR`%7Qi_pVW35sycs^ zn9+1u_M7ESrB;{v8wLP(JV-_wkw~6kl+qK-_((CED2!1T!MK$-)bk!~CZ()FCs#0f zV4Ggw6vr#}tPHYkl4*;GVUON3f$Eeqc6{}=*#}hoC`(3w;#SpjnJZCo!x3|ESc!ot z{DwH$Bg0^%+?0iJU&mhVY@ zmkay!JkBfD@PbMn@l_Gw?a`d{$m>m&xSi-_SpMjt3)n|*OaKA!AQn1n7<)!yrgz*} zBM@u*Ms1}fDAJe{n}cpij_1JL^DAAI{J`_(mf5SVn(&vL(?SAd>YY*WoniHzF$#%a zX9MHd;ge>v5_6}8^dhQ$b@nU9V$uLqDZ8u%!B`>tv}Cjc;MZocvdb@)B5yX!WeSlP z9+i`v1IVmF8Ry|RH)s~}gci%uzK!^$Z-XoJsHk@)3 zBGI}d(bZHnLNM-hi)#nZ#R`m~Ob|CZ89z8TIMB3ai;4!F8i?d~N`)@KHo6p)EqbEe zp6smr=2!$&kf@;ugqnXmG76dQ$5%2{`Kxvk*Hy>Mugn;)l~7;9BkTUn#~qteQE+R< zl{a~DLzsA8psgF^4XY&XvR$sU-$iqQQ|AUv*p_26=)`?3Rv=wkD4R&@Wa3aNtF-vT z6=H1?SB0CV={waa;5F0WEhbdEJ@v?i?hC(pn&;LlRH!Lkdu4r8C5vs0PXjes=*#ou zeGCZ$0`6CurwIAsmk>;W!G)wG@Jjluoj)hr#LqoJVKpD;*rXs zcSAICTcgBx7g%O;;g%Oc{VGS7o3sg1R(EmC-2GbNx=B$;V|a}>Z|slIVO9y2WvXFz zg=m6itWgt6)AWdjrP@A96HZzNgbkZ@Jgc>1%DR7#8Ofh4+4eD=NXY3UPLtZ7ZR^ox zzcC)u#kvO@IArkbGi+Zf)+5|yVRu++UWz0Epo`?A&C=s8<4{S74dir55y@tmy3Aub zR43`%O18C$UP;Li&NVjdtCC3_dML*bh1J?7bsaIMXKw4}e<<|SAL;Pu%7x2TYXq`TvJbR@yLT5?x0}JVS zJmvEB3*MfXjPT;5eIJC{D)IR+%43r5v<|kPr+Yw9_7Ku|Aaca#Mv;Mf{DBW|lpq$f zbM1?7OEKMXjxeWzK`$nTl70+Lmt!oiNKZDt{@u^}?;d96-E|^n)9<&j)Gu@UE7Bxd z9hV)Vip3oCVe)32pdH-^$%Atb1n#*9H$!R$$7ib$sYZ=)9wb!fnT^7CcE2LqZtHvn zM0ZYgK!4hLj56uG)7HXb@;p85vt)O&cF$E<52?!OBG3#p!TxC~!9NP;sC-+ju%kR+G_F zW~e^EwZThxppMldU4gMiFsuRq&NK^Uq*iUF3Ky}CGQ@@MY?QkiA6R1~SkAi}jfbJi z8F&Cwg9`XYu5^&J^yV^fnu!K2bpM z!)7JoA-6T9g``K_s^=E~(MK^^EL=*1*c{f!GwHc>e^d)~vfE%$+)Q=sYpo0RxOIbS zy?0s{maNem&2pLL-Ayp2qs-K2T#h?OBXh5&OAzfTB;y-DAYRu$LMsaPoQIcViaqTq z&AFUMJfUSnu%T@?hasfg>{jk6KZiBur*jFJ9(wm-c2e^(x08&^#N>a|YOEIq55fPg zepSURY26cLQEz0&RWqK9?U2x045T5t#{yqS3|{%&?fBe%^wMf2EUihS->h4fzlRTP zHIH9KEJ%V&Wdl{F<-{)Zgo-jVgT|%s4H;th?=mF`ag*fA$V2HE5*po2 zcr3$hNi2`hto-mTzZ#Ti9@vQ19o1Hlj73zR$JoSh}wp@JZd4MqvABcD9ann+DD_ZR72<&r;;&nce=3wre0kQ^O4 z^)+22=0#VeNX!X5p?tnKFtvQXE%3NJL2qQ9ecggVIKw8XXcE2XXoGIZ1E@u6y;(m< zEKy?{O3M1eedCZhv#$glc=z7if}tJ8sbv0`ubEpc3vuBb_ydjNj#qy>Z$K0WbE0do zmAw11i~{nGnk=`>-P=&HG)(IhpUm4AthO+&iu_!+&=MGdeKg11 z!He_(+`x7h7}kxu^a_|LZ>(f{2O^AF@8=;UPh@9l&w+R#2K%gX}Kzq`994oxX=p&6^8 zCxQ+9!-?`G!b8c*^TVOINkPGqWTs`-s#{vhT`jL_4RpH{Xr$+GKq6^WwY692-TtPk z^=Z|p)u@WRex3C4FxZ>z0O^1FeoT8mf2$gHoP5kW&34#-oKZj$5*2#cw&uBoN5MBt z%4fE7CTWdW3D9G{Q;F*UP}A=D4pFUNc5)?QMIq(k9uBmGs}J72{0dm2LWdy;x}vpp zHC=wXJd}*Zr4e^a)#+ORocc~t6>~8U)CBsv=8>{|jGFSqnCN6(98WNWZJri69UJ6z z2A*eckEHTmXm{%X*m+ZEC4dK+S1Vzk0gBdFD$3gZ8Eanvciu}OQSGyGPy2v8W;iaq zW0Jg2#Oe#P`_A-Dz_ciUW_nLOV{g?5a4~(r(SDM}e@7?01t{w<>XF~F3cvERIzC45 z`(ziW!Q5pZzT$TbBf5T!=xTqq6R1Ibei?R8-*DGVo@J`IakK_~_RVA9fxioiuHygk z8pm_ZHjLP#&S%EAHI}B^eQCS3@f+@nX;@DnWZ0kR4>rJ$z{j6KfO$A56pMA(PZ*BL z8`7gAi1!gmpTGaq{PhbGxJ`b$PxD`NT{x5Lp#AGP(_y!9E|dNdjW)75tdkz<$@RYJ{Bd-}T?{-% z1MN&(y^RRxtU|lqMKVhVrFg0mB9`I*WqR z+md$4Zylger?o8b%h|h~V+H$cU_(?Dp(AzljoW)=0-U)p;j7ne!eg@C#1^a2GohBg zAJ_}SI$<~sO+%w?J9m7#3ngBOD_~;*7qV*lDW>$Cs|oIIH}s_`AI81b1BNB_M!r$1Ob_+97)Zf@KWsy=#RbZ{g4PU~THrLgVeV}q>!tUiX zhY#QIl#PVg8wjg34?DsoL>Oo~s*OG{r?8G|!9D}AGjqUujon&uPK_Z8q_oXNREWvi zElRY%aT-mo+OFHwVCEzD%T5qAJN@?sjA&64ir&8Fw3oNK#f6&SD^(NG;rC+UL*OmDhI($Q!F?}xW4?}wLTw8Z^mBG5sH^87F7UHcXbH{hfGb2gGRocnn=*o=oHGjL#fhd=xMd zuJG%K$3{E_-Fl`$!@Efb}F!-7u;shD8LltE?-%5ITOcOXGkGHn<6RFTZFjcAfvOaO<2cRlA;NqS2p5;2W?y|K@Sz#r|vykX!BAA&FG4s?gQKrqtVVRjfIGkI0 zZiUdBRHf6oI9KhoskmL1>g3}o?LPG1$`!9#xR8)JgKdnh4q$>Hwy(klvz|ZPY+b3G{pE^--OtsG0 zf*eH*TlnkYp9A4;ZtiX&Zwn^Y-B}Xyy5y+leKrgcHRi2P;jSFU$mTyQE1W>7wjrvY zgFA=vt8K#_l#ci(Fr$V^=EA909gLl*S5d8@Tc&=iM%guzSec8+YVVAlk+mkR)?bqQ zA+gp@<`#!iP`Crpa&^qkRAd{YDnT{3cE*oiLfbcLh;;ESY~u@Ev1E%GSzRQ8eQG4Z z-w9ZZ5vx(D#>c-^a!*3JhjfwY7BS$75+k*|y2xe4FCAqv;sWYyh9|0uC2M15PCu@9 z)-W=P`xS7M%eYv8W|k5Xi;0f)si*Q%<>a)SY`QWAlVm%iuEkzls8D3z*thK>S4Vb# z0Ji);^?rm#(#~xY#()<#DCpDHSFp75D|9q2pxK9W1iXLz?$O}hLWTmT4oV4-(9d^5 zhxjY!o&})u>PNGWf>8bt?gmYAu6j!^$GssBSU3>&-wg+jJ*SMW?{Fk+p+C*Y&+@Lw($lX zCvR+{W81cE+jcs()3Lqtt+ne^?S1O3I#uHr%sFb-Gskm}>nctzJJqp!vR4PR(#+x{ zp^Nyjt3&dT`}rqXr>6g&VCfTa(OD0Bz|iRxDwXI4L%EuFkfqm{U~TfM>Rp6wLZR@M zWhAa6$lgSQHu52==Rg(-`pMKp5?Y9{a6X#SI}Y7)0Jm#^p=eT?Chl2iW`tdg9swSF zT-a$@k~ZS5F_mU$LC%CaA<~IR0)Ku1{4-@S=In64 zC)$FO%FmK0C_G9ANbo3rA8LIIw8pT?D=C-?%~RWMBfnNeJb1?MM;k%j>2j2;nVMF? z)D%(;ZW?d`&)@0_c`puV8H|yGMRwfs~&+O8^T- z?MH7iEH9JWk5yzWhQ)Q>;9Emq*tIc)l*l`Trn;x;3TAISwG;QCw{ep4%qW|hW%BJd zKb-I^b}8pT`+57qhv&BXcp!ch8n4a?GX#1|R>;h>gdWkf5F3~IPHV3qx6zNCDy~9@ za-6zGS4G`dxOW7IZRZ+1l$K`OcSMW!LT#jl>jD2+3uhuhq}ANbSU(1!q_mHSc3ttz z-l+dIa-_vp+czb$jJY|F24|hU{dc4SN;iS;Ni!N@x`SfT2gk+c^e~vVc<8F7H!qo;bYo%P<#>&PzLuhh!h*mshnfuUWAYEMld3n0SeP|p$ zwc8L6+j5t_YtUtKnO}5w!7>RX@3eTn_4%h)t6DMFUQOBmE-?U{wu-xPOUZKOhc7Ejn3(BMKw=O^OgQ0!SYNRDgJE2a}3b{3Z>|XWu3M%_)BrASN_Hf zBZST@m93NU<(Jf6TiyIdEQ%yEoM%FtRq+qf4238-5XHpk{0*Tt{-!}7HB6PD-ICK< zb#w=Dt*WmYP<~Rf*mt0h20%y@yxW8HHrZ2Sd}U92uYl0gXTxt z4pY>N_=IoO*&7fio;8W565ppwrD@hk>S8gT_KrWPCDh(e!5R;!JsT2OCk{;OX6dJW zfMhxX6x?Iiw?Q11kHzB>!qg@BShXv=R6hmHLY%A>5*1cyH{ndNpk@*e>xh_Z=uYg!IF-RyF*7h8a1=+@5*L{|!pPaEZG}c;fof|WjS%ImAcz?LGhWzL(%7Vo_&y&6OvdD`P}kKZh1RA zy4p?k!RId>6v#y?b;0JHyP_7!bjV5|5xl??wV6LIA2}FqQe-_sGBIa$>#4d=g1Y6 zPbHV@GrKLRV$PZ+t!<8J4S|%CH{?WKm0NM*=)|rov3^3)9^CD}Oz*@O+XFJX4Q|y9 z-e?1<_q%BGUM|eAS6Di4w2E-HORxccU!d^q&jG`IG|3(I$}GGEdoDb;bQ_7I@nvD; zMkM_BHzK7$@}&^>QPU##N|heGPAHG}=!3$QbSuYrIZxmZ zaI~;1mBHUaIap5|&1vZ+)Y}HXc*>Ocm+*)RTi?olc$;Iv0`PbRNx`j4SlGhBw}O=| zLrOKzURH9R#+p()><*M%1fNk( z?v-dn-G9r+h}=__B0k|brJByi>}JnMDpfE$qGS7FU%4@P;%)JeC2`DPdJvrO=8Do$ zTrqdTSUXS57$_vZgz? z3b|Gps_*r5nODHX+L!+m1zmjH?1q!li72gondc=Oz-#gdD+q4(egqUB#E-(0S zvqohfk+19UJFyMm91KdIm|-|I;QrhvZ#E7>?2>IU$+S5)2^V1uB8&D*g#yvDn?)Nt zd*RDB!v#rC`f;}aJ?mfyLW2C=6|+zv`CkH{?{S|_sKh&TJjGdE=i7)N8Y1b|&>(+_ zz^z1}TQP}u+7)m>MWvyikzN(ZXAvwI%Ud8UnuG<<|5QN3>9}CZAZ>#lxAe~01~IsB zy2N{A%zT&rt&LV}r}ih-hbsUP3xLPqbZn;tK=l2Acm)w603Oo8&mQ7i+>;roMAsaZ zZ~fF`jSkiKJirt#!W152fF9FJMeva*zAMKZu5sGb7z;%|8gLoQCxBq5Q)SiNs*I2THidYT3$8`~{xGTGC8SP%fLwD?rs+4$s!Ro-^ zcv5|@$sM;-Oz&VGEuzy^(UjgLB5cBvi=JNC(Bl$0YXpD2Q?kl8#JI|W(=#zG`T6JR z9zy7+D-EWt!GdSTaJXwJ!3^t=XMEGCCR$<4}$A=syA2-X@uLIL~IhDAU z4_#|)#eK@e5Keaa1AMEcwSp41b5eG2NOpE1JN%%k&T|I3~k4OA74+vWgllR8u@5fm*0N zfVzN6g9LV~pwECUrNDOP5R@t7bxvOm?I8y0LPTL!RL*Qs8~`~EAn8I5QZLF=rMOG7 z7!as^MWWSQiEh;^R%+2PY ztCDEg$bPMnlrOE73TX?oHaV6mX=<3xv#4>Cp1kM*BCVD-F^ZzVDQWOIuww4=q-pjAB8X%Rb=1pg%2O`zOR$(1QP6|gTr(qV0Zf@ZB2ZR_(pS^RjlJPGw)Bxo*yQtrxKB}x=9;bla^yPk zD7J%9Z6YLgismsL|`)hNDVpLS!kGOGSe zLOSinE|dudi-%YUh^8L_iruJgmMA~$4&dZS&xR~q#hju!=ekv2#9)klYVs%!OvMYe zqiYLv=$9%nE>!8ED_cV1b~W89C{uwGT(J35On9=(CAePZgn4AVy-a_2wS>n}m$pfH z!uq_i&H6z4ys5yN3zSG-aFs9X{o(6|-u8y+eq-@^!cxAyBT^tQ6bNP!4RK$jxw6ui zgWh7rHId1zO|A3d)th9>$K2FVm9155Fddpmue1MR8C%(K^{zYv6 zjiHyPjY-SlheP4vSw92`rJp}FDym;MwUKS9b+sV`d$$k4Ga9olwq7QQTZe)Dv;bi5 zwt-68YxaRU++PMxZPjKuRHj9QoYaFfzl+iff^2WNpk{|P$dhLL@P>-3=EHhj(o@C0Lilp9=W*})57(B?D9P~TmN+A>7s=P7PN4_ zmxQy>e~pcgO*1|b7R5nA?8ElGn|2(a^i#4Vp`In8R=cY8>&U=3CJ8%WY)rkC@hG7{ zgoSfvW8$e`U6o{mNZ{4~z-kO?o@3{jjq(D&7%PTXKst7;BeT9%oyDBNZXZU=J?AyLh;_;Wn?JXftZ5{R)F(G{yLr(o1|+mp?Qv$?6FLn!CC3_UXV4`TkD*nEI0%PaY%(bolJSp; z{;7}dXxCMTDN}E@!&NzBwO6eNI-7lEoHGozuTuTl%Sigwt!09!Z0x#cdZ=ahJ{9g8 zk`MiX8foX1nUa13?m}t88{t|JSu%J#|D3$k(Secx)?u=@5GY4(FmYQ+G~kG0WkMcx zU6~I%W3eI~YQcBGw!Q%33A3Ox!?@Go$y?@c_JsIGAFg{o^#(tw^W35FJqbIq! zQfH)_?bLm->IPc*{kKVSZT>-aG1F(Gmeg&Lo&HJ?z(C@0#bmJvABR2zD}Bl8=a z|5tB{O(3H;&a)T9vscm?@9zKw?}g#w>0O=$EA^7q6Lvb_{rBb5~Nja+uIls7!cjlbAC=&|VH9N`6M5cK`fi9weu#g0c8aymlgd&j<`7kfN{%IWWjS6loj_ zI#~yX0h-mw#8(UVgkx~>rx*(Pr6pkV`bpT=#FXH)l(dyG4yU9`sF*3Vlt}bxEh=@) zGxyx{Pz72{Lz~MLR*r7Z45m%E{^3jM*>ah9(&EV+t;rmLMnWZm?a6l`3>5-_)?y;GWd2t(>|*V?i2 zUyH`$I_+DLr@7R;+S)z+ppdWseGK|*N+$RRDfNAY@~MWThE(3RC+a;?(QHm;xPsuT z0_?|3PHOjt6WXZ;?S(7V#c|yuR{i6ys)lCsrKE4?b}nAc-3XHVqx64jek_wCmNJWO z3DSZLNr-&kvYg?9{_8QUhi4+8$+MKHRHuQLQ!)pnr~Zo}FpUTbf@`nKDOP;^lZSfy zWj)cz7SLdYbKb}3eibC}6-(jfsx;e?QS9-gSm4UY?*63I@B{+*V`z#)lNHeg1q^sH zfWqwJ_^+COqkm$P%u$Tb(n`$r2QZ6?Wwb@tx{!x7%^=RJjRAbP0-NKLL6(d0!Uq}PjrC|N(Qv&28H8ydH8Sk(H5h05xcws-Z`7y-TIy1bIpC`?w@6K~yGQKwvL(<@ zPvZDgx%arDRb}~N|rv0`W_}ViRno7i87}BL#bW~ zGMrR34jKG=7D;8PYhd;rNo+UJj~n1ao!)ssY?Z*K(XrGve}~uO+#ucU%=$Y15wz;! ztmwz&NhIrr!oH`?2L#o(+8)_=OV%D`q4No#kV|G=5QzV8Y|Ydq(euB|ATvc zsYepy^vb8FbBGnIC8NaAo$mRVs}X>vP;cJG+_7vPvWp9>`AC0~qrqcA_VrhRw- zj{<_|1M`VQB9nYte%$6bLOr55cnAc2&Ojj`<)cBUW=xw)@)y?WR)@J4f+s~XcZ=a7 zvbV{Le0v$Q$S3N*3KN|7r8>!Nd2Mkuowe9qAX9iG$p-;I>p+Y{BLRxZwz@Sy+o#bY zoF(|gGF~UH@BTRrCffF%%eAe>$Z;Pgp>`nY#SO+bz%>J8;k`Owg{nBIB|JkBxo4)t za{D00UX0C;Chr9CtYoSc?Y5fuHF$nmTvFi`umOSuFnV7^=pcG#V5;V`B%Knz(&Wz z?}ev(jT8Ql7Pj24Y{&{A-kDvf@Si7b0q zgMJ-^={}Aa!^Y*bfnG36jHb8;`dXTm7A$jEF8@NcG7aOD$TG!>dob#!efbrC2Dj@& zqgm+VX7(lS(DWK*e4&zP{dbOweeZ|24C#rFdR62)sfER1vYkw)uU8fPUA^xv(I)QI zOnI5wl#%N){MWKLf$h1iaGGxj>b5`Vw)n~?R8~DY6sG`xMc5LEO$6=!8n;Q{ow@=E)31LBWG zTWhS2K%tGoD{ewwo0nvi3V@g){we9}zkD6HjH`_Wz;{XgC1BF%kcp zz@Y*2P430`yrOew9f&o7CL@L>%?*Sh1Eqm(HAZ2l5JErzUAs-~Bom>y3)cG4)NG-x zUDZ?-&e14sRkc`dtthEjE{v7uQnL)G0zBEwcQr{DeR*F^O-vde-Mz)XUGjX(yuXe+ z-OoNG2%%~UH1pAA3B8iGg4#6uV*>D)a!KT@5m!v-u6Z4CNM>I9Nwxy{7y*p zOVr6N1#B(S-KMowVmYJQ?m0G{{aP?eQyBcLd{vZ z6Y5VmZt01^ORnHchSmMP5>oUWrt>(ypYwXn`mWRcDcr~CZ9cp}z`Ng93glUyut zJYaj>xzUxo(*l|;hq`J1~{ zV81TRf-?XHy1>zR9@afPCB?VAvfR|}_)t6r;A|4^O`G2bC0|F4OH3yE{buT1v4*W? z!Q4kriN}vz%tno)s?oGmVXxjCQCNxbnesV6J1-_=XkgBxX8 zU93>RWM2Y7*`F|FPfS34pG1IRnB1xLPpnsY*=!6$<;}i``BTA9OPoPG3ZCDfpVLlk zxRK{^*g;ZJjMQ$cF;UN1I(m7}pgW0PHOi%Pi~b(m7>k|(Qr0qnh@d7&foA^?L91BQ zm7{SUk})?`1WP_4uw(>uZu#-th{bWd@>7_iqS!|x))kzt;5u-EvYK7zJ)WNHjDjDN> z68e$iUZ@;5rHPlS>s4l&4=vf}9mCg15YA6ae;Fz_H9N|Y?c76EMGEe~&B%Fhj0-u@ z`Q|BdjTd~p!T0$_;a#S$=i?b^D=zVirBW+T|LS^Q7l%lLhPdzQQmsHruFum4Z{X{_ zm7s;n?f21jE1|~DINtWfvJU0?@uIL%DUXrvmL!{a-@75$L!y-u{f9;VMEL`TSdFUL zZ>@!#*_PFWzpFJA5ve0c{y`8WW^vplBnso%2uaQmlzyz)ri#K42S=_Vp7O0Ng%63z zzpTS?Nui*@`ehH>l1_b`CUSIJ-Ssf>jrR2bDn+AsY!$7ec$E_wyetsx&Os&7ym$A& zvgFeALRJ+APzz-0I=UFLT+w(;0!@$e2ymh4_f+oE!$hl!Y>sjTW}@zPjV{@Nc=}8u4u3FDUMp8KwR%8F@5*Fb7F&vrII|tOEZT zmaR7Q^VaHP?aX6D{^Q_bBH?LoyTEbMw;g!3olzsZE0HiVn!H!<>wnCJ);rv2uz%$e zagG%J5R5M>2I$SdF+qK_MwTqdwzc9BLPl;%l;-5%I#}5ixqxsI_oS;lgfPGS=sXAQ zW|s9JX~dd#@Wy%{7RMKd`V~#AYPL1edXvcL2JQp3JnsELnmT!5BYPQZh#8qT8P5W5 zTk0j~aS%Tpg$)=l!YoJH;}vg6N)<%H-rsb{5#P_C=C>|4)IsE1;Xr;vkt6| zeEEn@wkme3KtfHx6Owc=ISWe`2MuD=2>bP77gw^QnZ2q5pCKnoPAk!O)IXKmqaH7M zc{idVTEP&oS*#v2Jm_RR5iIeV{OCIH95}UI@X4o!%n};&U9ifFh5^86N+#!D8-76X zSBnuv@&=XxS>%R!Y8)(FE#?KmxrVyf-6`-Mkc8GPu+L26)2#@af5R}XF*;8Pwn$ur zy(E!LQb@a2yjIwR`OFcOecO_YX;4Iwn?$aN15M(sF)FnxeloSleAm}koU3%< z3x!nXc6uat2?<%LSy|-jE}EJaFNa2@1a*E&hIqWm7=RiRm1e50*iygS3b;`2caZ!& zj${T3IY@(*Vdbc(B0mG25jmJI42_w+Xo!b`RQ^D&_=_JFf1?b#q&|HVd9L@)=NZJE8Mmcd2B91g$EBejs6S7{_N_Sq_E_{O< z&D>w{I!5o_tG+;Q?nxG&P~Vm&L}zIw_tZ#k*z+%)H$s0=9m;t{|MqCvx9%W2V(Qcm zHGonWp5wH_8nMH~wcKUk3r>RFU>~t(!J`8&CNva&O>miZ(d4pZ?*p=753GBIPD4W+ z;hymR_$A^MKWK@ms4xw3W~I)5P2h}g#N(Y4^~rfwY6^4ikY=afW@nNlY>BDAX_u^~ zdQ6nOy_j5grKvVYtKwUthJ9DrKe{+zV5&gwH32o9DWqz~TE)tF03O@PGq%#Oelmb| z#RBeW<%+qW7|KGGkB33>$K4PXGgLa0p?DWhDd8RC zvR9+lHp^OY4gA)M3d4`0PcqELG*aK$q)(GV>0mIRN3+sxL+k~yqJbvU-c@^R*(9W} zn^rYvKLsZ^3Vxt9MBEI+aTkp;PkC}cRw*RNkUu$Gars@_)UzIbT`R$KNo_!D)da^n zIn&dBN$&;33UI+WHNH1Dn~;i*T97Ib7%yl}<^=s9@^2Wb52RHvm(T3SGNJGQvVjLO z0_m!xEnA#VID`YN7Tcg9U#QqyUF*k>4fh1`=WTCBdTfK-J%8wdqnN9!rO>~v0MV-J7npx zP2O-!5z?Ru%C4N@@YDeiWK;Y>qJ1Kxo}>bhJ)P$vn&jS>R0;-BMJK~(^AVl7KHkdV zvOSVaVun84x?r{Cs9MdK(pGq8doHIs6l#=V1mS_Hd?X%G0he&-OAIhKMbVpB?7@BE z5fqdWRuVrfQB>RT#<;%|sW@6iQaVGtQ|#Q662Md8rNQ~PF^&p^gtj^cT!;4&P4}3xSMfvBF~Zb(j9LLFqwPxA&jvOR>nOeEn+)RH zKp!9fS*M&k4M(d|AfeE7P$S7RnkOrfU z75pjd&nB5$wJ28~DA#YZvMCt5h7>igei5<^po;%P5A5SEb5W*aE%n_i{lYhUFWWCQ za=uStntjgf$e4o47;ojd^1kxi{?GCV*D>$$$J7X+9@sTd$0d(|k6|(QuV4<`@;{Nu zUSce~6Z`z%mmwyhJj_H-LUGurtE4RO+;OoCD+KMogAc6y4 z4DAC!H%*myZpQmj)QW8(KlgyUTwm&ms*bE@`WlOXaj2+tN!sHf=y(;+uq9$A=d8Q>?gY_?y&_PI;?Sz=YM z=>ytW6C~VmWUkQNH8dQ^mVU0|q!>Hbr=E$8ih^A--&l8!Ix*_NQ|R^c!D3AOQCR2M zJ7vQH?GhPtqO)@%OACXrkn4=pFn&hVt*rWGkG#!(L(@%ZSwr1B_;kZP;N1a6fqR34 z7PHeB#_AUE(#f}mb;5@yC+5jor<$9bsQeQ;JikG;J8oQi)?yEe)65VLjbeJ=Ka6ls z4pS;mG4!u(+6rUF<32N5$2Auk7Bes(-!|i9(5CJQ#{DfC&rzyRM^Y3vyGTm<9TPvP zBtWd*v5$@(*(N?aHt|TNKCvp~y}vya5orX~8`c>j!Q&;q6t>xG{=8nlkBwSBN76XI zfJeE^SlV&#VdQmU01kga^i@G zRxITuz>lY0pDkVGvBW*oq@xzUEK3dHg<7jePtg5_uN%+sVY9D`9y*DxzKP&}jDr=y z8i5+tmkfU^EXI2dX)2-k|5UM7lvseOu~;^~SY@Z%Cq7#p*Cx?EN?G0Jh=*z-I3*ZhiFc2CQYNR6>f;O>mhE+{3W+V z6O>yN3*j{_rOPw_8aV1_K&lz=ga?v3=9T8r_<8)J=?pArGqP= zuYi=aF-wA4wKeQ9M@}tZ!joSEwBylyLsMqkLuLNF=~4oQNBy!2t6y_%i8#6iM3jqV z!NBqLDr0W*{E?$#@!T~|cCUNoK~&K(>>E4^p=0UT>h|%Yyo1&wmUE0&>jp-0g6`%d zvm-%W06d#rdN=dcDEJ{~ghl26ck>-UHa2>i)tgbDFvCM&%UHN`h^#fVggNZ^nnQ1Z z=ievR%cDePx$Dap^HxbU(hb^se3C;=HGtB@o0}Luk|c75H3)CfQDFPRfbGmK9HuFu zwPt{JWkR}%C0T{nIVSofGCH|%mYu@Dl_6-k-~>|#5-(h8(KI*P-3gAM=&~E+4FO#@ zBmgbgUOZ}_Fdt}>lp6s|d>*1626 z_HYhS9`0aLtGQIbrMBKmk=-t0sHLgxlF_~mbUxJT^HT0;in0jX8*vEt?dxEYH!_E; zjy=LsmX7w}7OpHt$a3yMHDo4r?q^MCAQU?qB)JPyo{0wkmi6Sg?d9N1_w>f}7$STQ z2j94Y-=KiKA&q|~IK9^JQa)3EZ~~Xh=W-g_m^DKAT{>Tc=>iHgHv{{WJ7E%r+`#0I zNqP|Li5h&mM5FQ>hzHZltdVB)!B}~yCKafOGOl+e_QSM@`x zh1CM0l+|29!WO>+ac`*_+g9fLmfg zjHerspZ~QNlw6ciQw{yS7liUZop$~YC;ET(g8mODdek?rPjxBnD`!mha?+RrUgU=X z1!pj*0TDP|e(az4AL)sIPzjU?JQ6l~1zFI{D0saZo!2jHtT(GwtL)Wko8*=%{eyOr zt5*Q$MwXVVmjz4Z4@1q(P3xP0O~ZvR*UKs1z1oX+pC{g)yRM!qFSG2A{a*xNcKlm+ z1sJX`_86BOb}@t|oF^i1h*FLBP>K8fj5qAYc_yqt6lj30T_-vMa(45WN8=fn!Kk zabt+Lf*5~c6MYZ6BAU}Qisrjan-!sF*gwkXf}Bja z(Tlx)$f)?{kGOO?B(!4oFG{F<%Nay<~)K=4m?rAnkSxUpO zz>#RaoxBvyiG47uH(gUN7B0$WJ06%Q!LmAbHG$EKTg{nFe^W1BpthNzA2W*+z@iyC zX=1@~gtDh+w6E1S`IvUHsB!!F3Yl65vY2IRSJgb)Ft)&F3LWgN}6bh zQE+IWd)-0tdMW-v@2Gu$Z=*acReW7rlA7E9^!2r?9q;0rU$*ZYe_}|{dMWKl!!U6+qm6fueN*cqnv+WwD2#}iT*sP! zp0zAnwN)FO-v9W->e*MDPaZWEo#u^TTL~;(f!oUdMEY$GKoL2Bzg{8S6TCQ)N;l=XwXimGU~+l zaym#kEPMdWeA*URm+FvYAQ$ft5I4lT1W=?=$=0Vb`QU!J{)yNh$=h=b-o^dHY=(?M zso3m3ZQmNxhsMYg>;QxZcG_<i~Es^Dh0=!adY>&aLsYpFHQ=(L6B&U z)!Sp3?kEr1t{>+u=@9uYrHtS^<7G(gVhdehK@&OmO z$<|Ksx)^PmkE6vF@XLi(cE{U~HfM)U@#$(KaNs&9gK}I9V44$B^{;OLACJw&`we>N z@|{1Yqw3KAJ_plnpe6oACT}1#9f|30MFVl+->z~cbpzd<+JzZWa*lUN!*=CqXPh~A zrx{Uhib(3zB+yhGM!x4GB#R z1u%C2-89t&+8c_!C*z>vd{hzYLAwP`9r&N0;Ty0k5Go>fS7L{YvwMsK6ZU^+7iS&1 zYNZ)dtIa;1I8Oh~`>2cEq^1h8@?B;p2Uo)tqU zIt%c80FA_cG~vJb|46U<1bZT1*7LSGAUH~Ztd)~6>+Z^c%Y~a;`*L2iYDVn*{4>Hg z=r_U_DHY%~U|zx*68-D2kPgY{Y%@~mRos0wwhMX8PmDd)Gc@y=$^wIe74*2k?*mk) z&@*F%ywuo}5aSL**e9wM3H8;dI1I{dk9hceAoA}3?*sG<{{C3aU7TBD9B<`eILeHu z>g;)S9#vFZ+zAzB5ItFQfqiAkas8RgNV4lZsvj z6yDT(`VSzp{=`CR!8=dE452K#zwHINqAUd4UIJYnc^rhW_1;!>KyMbSy+1f`N<^P_!^ zCA_}=^q-Kg zz(-mwt!CU5jo+&H4ZikpGd7{Jd}wcUto?QG ztxJcl%OSa?NEwts64o|^ z)T$A#NE9%h(LdMhJ621*a>&d5R-l(IO?8VkD~D1sKL1pB-)fufc=fbwXdGbW5In$b z(KA@TL5?u44faOX1f(kR{jpyn{t|jFCubbr*tvvobf(dCau-k0<&8*u_ zTwP#0v;OHVV$aq6JqxsoLd$Q+)N=!jUvc}~?aOXOAVtJd)*7>(uR)s4QzaCINIVSE zIWZOor-(Hc5C4^#-Y#@p+!@V);I@Dp0lq~z*LR5;0xt_RvlZ&(=%Vtv#|NDSjw*=h zl#vX=Jg}$Epc&L+b{rnCt5qrMMEIih9_a5YC~JT7jX{07+9!Cxwv?K|I(c*ys36(c zD{n>7dGbqKv_B^U)N>bbvCSlB(V#mOhLlt0P%y!{F-vu-)=8$ecs=CGr`k2an#Wjk zr7o}G_^iONq!A8ae$~M@-fd=8!v6DM^vPB|OW?i5&M>|{WBh3-j^j@Jn*;K%WSuJI zQ2a?WR`J2RI6nd90$Wvk3&ygvORkS>&`03Y9NgqRqhYxR%yD@Nvu@XLtvmk183Olu zhPh%%o$3dk+!>a+T90ss2b|?1W1Z9ouJ+dC~Bl zPXdy*#ywiQ+Ww3RrpKD=X;a*!X2G_0&WRM3pYRf;?Lw@;t^=5bLZhpY#EM_C9Vo3A z-hNG^{0!pNSJqK&H-2HE6u0l=1*%YzpMHTGz{qq%rO})FJKr@J&q#8tmHuQ6-3zQwLl9YAb+A~v9j zqh}KH!P31*0A=izHZ`F6nglVE6olv<#KXQQ@DB4IjK$2Hdz~5Lk012^qri;h|HfD- z{Vw=j-Gddq(YD9UhIu}}?Cri!ukR>^#;Pj{cqYyD(s!nigB}>x0+tLVX z=&QgKizn|Gu9CZyqrnjx1*Wk&4S9I#bx1Ez76%+`4~_B&LQ11z#!YSAW69exqX{oG-&xgD*$M+|T6Tg{jb_M;IDL49^<*$g)`P z+2}hWR^y(GLC4Qi8dgkeZDF}+%c#3Ay=v1=Gao+R=r-5ujfQkR+e?ZDLB}lnS;0#4 zv0~ZPPHVxSmc`{gbdP~^?u>{|$ekwhEBx^BnDL&Fy6p?l4w{ z)Z!4-5-8E*vR^SiXl!u1cqBenf!zh@TH>kVf+T+-C-6yBfu!#caSA?<*xnBvVA-)Y z5c_N_JTIIv5&Qx{V}F{kYbQnS)f{qAfCXRsC?(s!XC?i>ReuSigoQRND6(_7rqGwfu=5MB|1b`t1{r^6R}lmEQMuK|x{ zq~bcb`r%&KZCE=|>*j40e$g z^R1zo0{@?;F$Dj2dn*`Pm>4;c$vazF{dYplSxL@zK@i#dJcbj28U_fId9lcwB`b2? z4faP?CjU-2;`w`=SQ}Li8fdjNt2|66Ir<8Fo`T3r;&D3cND!M|V2BPkk)n|?kJ}R;7j72r*%RABTR!Gac5fET)#t+fjCV{CVCCb{dh%JSWY2oX*PKAXgbyza3 z3lY?XhxL^tq*JQ|46Y`Zp7RfmX%v)AUcWA7?!vt^m6Q~3f&|Tn>*-z9b7^t4Q527| zoKzYiLZ-)Uv$$gC~Y&5juQ}HwO1$#CCXTJnsNpl?C5>;9IBMw6#mY9=`gs|pd)AG2AA-6fL~KelM|5EnRg1~`IJ zdiBDUyPk&aHdhy=O>=nwr$(ClZkEHc5=tIJ+YlTwrxyoXM&ygeX6#0 zx3+5cs=lhuhwe|O>YP5+-M_!6UPMedz)pK|7|~WpW|aK$1J^HG?;o8(1c)Dspcqs8 z?2G$bU7DfOeA+P=$70Z7;mFm2n|%@2&7IRUo7Y}nLCJOJh3#*A;Gq_qZIeD*m71hq z#5!dR$)r;K7@w>ru5ZROw15DMLnm(NtQ;{wb;h*Ou~~i922|d;mlqD)9{<_A9r#&b z5v$A@=RE@CL5q7ss8@CS&i4EZV{u)+IAkSYihnkTO@}$IdWzFWhk*tjG@e?~}Kb610?oSJX&@3h+~yP`*Pi-My+C-hcA; zit8bWOfrnvAG`(&FvnX2pw)_VsXHN!6Ji6$VyK0BvE+~{@)e5nxp&QZgKM6~hTgkN zp&A7`4*Pc(f}{S=f#Va!H9vI4IP2sxcHqrdo?=!9Lu$90aN@!8IUmTVq+N4-dB89+F|TM< z`5Xo^NYcCn1&21%VQz?yaMM7;u^~L&=*WX0DE$huizrDxp^#A| zF$Toj-kZO=s{tO{dfQJzOy54s{JDAKVrvfbu9}+aecqZq-Z$z`-LHR>|AH7+yvD#j z-<{Fq?}N^iUnq@Pbl$SWFf^U9NFG}(`gOuW-gn^SOTM_U3FKeHo;D^3(Jj0hr$XuO z?Ju(ThF+WDFqZ!%@#e3%D}|=ZWh{0wSGMv3t=pqTS)=o3(4$fBWdUjQOq~$LsdE>0 z@F(D3Z70fKMTz9`uFjLGwj5e!Xicbdx@+;pU(T(&hy9uTaB9>OV=%@!cT9p={Rj8V z*$I?4-asT>o~BRjFdcbsvhoF;W>=2?cS%IGntuyybmR_+f80cy<;Sl$gOgwJwGO+^I)))|-w5IarTL#1j;T9sNmp)E*F8n71siSyM-Wkb5S1Smd5mx2 z3h!zFCW4Yb@ig9$LBHB3@+k}Gm+l}^`=r+RahG)<2 zA&6hepWY@q_AwK_PtR=3fWpO(@OoczeuU)(5az*TizrhY)#hc< zd-QJc&;EK8A*w$wiwR=hP$(422FRP*7za}LX5HG5NTPOt`xj6^DnA&am12pUH|M@K zKW24Q~gF4@{h(h+~Yl~w?Cxn(8 zg;~$7X{yrDH>}I(wUOznY3XQ6h|T45C;AtAQ-fU8#MQ<1kVz8w4LRI%k!TQ62+-9B z7T!~3gV|ZZWNAVkoh#^+xOtUSg=fu6Roc2irKNIlsqrvmGKGCQh4XrOp>4xLRAIZ5ahTMoB zTNR|D!1B_rYDlh~#l0+0<;R<@kxM+QRYx}=|8md45TRu6>gg_xOa}*3hig1!^B}?w z3k|A5N$SCJZFNibj(sg1T8T^gITJSkgk09ft*WCIZT~!Ut)D0BKu@WwXc;i04N;E_ zuBK@(vo|j=*G3{tITzY??%uC|J*r`?ZXplaFsuynE(JG^T0y|lNng@TRkiWZxp*uH z+VxzQX!_{}CceA8Vxgk`IbkRtm=e6i?=PEUC6kj`9_^yWOt^23iE5W?NuU8vLkV65 zW`^!oA^KZLTl;h3eL@JoNMnsSx#(zfK+YAisyamd7%pi-^r^&^7z|w6;vmrTe5Rf? zTS|q67iN4>^#GbRPfxjlml>p1!=2ad%>?TaN5nBj9de}>7~}-XDrLV*T$?*FokMn& z+s_*^UQB^L)NSfYWgU^AObA5_Jr-6Hix@_8+#FRs{V+$STpn#UtnM~oHh=@!3&3tc zX>n81*%g`mh2<$RC07XHYFuAqOwPPd7MSH{b=;p$DP!dk$S$J^6iB8O4eCVbl;h~f zq8*4Tb$BH81Exn;^8`mr?8Md}#Rv?A~2wPayOA^o>Q zljmvGmkOdNiB>)&(ptc%V-P&ix(b?VXq>V|ZDpHwJgapuTa4;U*$w|y6(kg(M zi!FwAjLj9`4O?B`U|_2UCDcqr?}j301ywgx6HR&YSIQuZM61IcC8W1C{9s~Y zuTki@J`N1R8zxYU(xs~rky3L2W zHJAfC(O1P-W`MwF-@v=65DH6CXD>sq4tE_Xq4gA@qz$S_YA81RJaTCB>vr+sZfm$Q z%NKq?BT(f9AOVm(9r`YNIQlMgxeHkIl99~iZ3WnkMqpu+WS)(?rkZ zs*$`5JL&r+EZ{;fZMqU{_)M6Ke)KcZ`x}_F@J{~NWwj^l(i0LBLBpsH$ERyEu85v1 zIIw!o>vnG`bzZZqH$vDT;XbWL&<^#R)(11DWimGad^-y31_xBv?k(+z799SL7I#+u zh5bvsVnw5-rUGusH6c^DPBOi+DwC!BPtviK+ho)Lpde9wAq07_$YdmQ(nh43IzlW5 z8vEu|VZkn~2^N!ak(j1MBb9=Ml?H#378UBD)TH6WFq*=ePn zm3u4`HHVFtf|pAo;k+&KLpgZOEXd}`VarbMH+nV*)(;N2_SBMWsE4_fX}gz-#tU&= z!>=9|W7|fSC0@_j))Wq+!{|}X{5Ca5fg*JAuQ1nrgOx1D)6`-&`HR#-R#!Xb;lnb-*$Advw6TH|qQk8#fFsmLXP`%xY`uYA1i8=xQjZ zwsaQRdue<>{OuCY6e8U$51ARLa&EftzQi$ovu{wNb9or>{mHYFyrO3EV(6toR2?Av zUDL0Uf|O?VyT^vkWMoxSEiIYFJxj|#Pg^-$q&QEzXWKTFC_5(1AgWA_cP-~jyAa3Z z5#~8E`^prt(l|^fXY$%3My7R=UL)EJSwKv7nZBx`a+FYVq(V$hz5*NrkHF z&5?8V@GUZhYj#?|)MX1)EKX-Bnn!)9YaL>3BsbJirh6JHm|YpYdds*)>kz|cn5T`) zKz9%0VmQpcA&99ja!wX-jGEQ<2DWWn+`cxwW4f8p%2nN-y*+*Hy571Vo3hbouA3pDJ}vybdLpru-WJR|&`wmXP-VGp3Wk2VN=FBO$~mT* z`}_%_V&MR%VVM5+@flZUIwXxvh`kd&fcQ72j-_l>c&sKS?r-x6BO)0heYTl`@8Ft7 zB|o!{%RaJ5MD=PWQ<3Q^ShE&4vW^&B<3cU&XjEZlUWC}BQX};31Br%ZdV6E3z|rsy zBb>xx&KR97W8AKp>A#J*TSYtn4XRJ=eX6J+mSu^DpJ`xpTzZJon*HO%L=H8Q%f ziH+tEmuw171Y#wNlge5Frw^~4y_t>(r|?TR#CkRriYc*?V_ zcx&=DuS^VX%V%Dl)2=Fx7On-!D-Q=JxJ^_^~8YOH^&1k?ro-)Sh{3!s)rn zr?XlFRh2O~ULPBsL{C0z^aRM$ks)ixfBb&-!(NJW`b70yn%6b1Ze7wpw`TWD?wI_r ze-`-LPftL;c$?w5MW0t7o55ccy=^~FlF(0i)~LyMjPZBO_!5)7ifa!8YTcLfZ&pD7 z@C$F)agi@l^x*8LS-Yn~1>7=Z)VTc}96h7nLHiP1<3>|W4V{*b&BcKOVHJjEEljHP z>cU!U(^FYV7xuPCnS6{PcISA7jk%upmajyE>&Nz`;3Z`~dy2YY9?!jzwAchu>J zum+fDI_eRd)RDvdv0Z1kXu5|LJe89RqYh!0R7Q0|cD1fY%!?(p^d3*hlwfQ;2?Y(s zmQ&2jFqEZl2Nd>PS6g=ch&mi2dvgk1p)9^$)oEi2Lu26%y#QGnb;uo|J0>A)TSyf4|)=e{q#Ng zQzk0i(lKV%>iJ}TBMa+TvwaxzK$a|wW}b-mtQQjbJ6fZj@2(}Ae}urJ$?J7&^xg^U zvN@CEENC;A4%=;yMqBi^q;Oic;z9DZFN`3Nz89IRvTIoT`EL?@Nnx*e6LuZ`RcAT; z@fd<)$`uQxfwN9qyJ$2r-^q zkPO31ipWb4)H#DnJsovSE!N7i@W^rQyO{!hB;_ z+7*c66tQbpD|C$A<>R0Y6})s^DlZqDOcNkS)>?&xjG>jB!kE|vS;!=VGMV@*{Y#M5 zn$^@-x$!53~to5Z~ z!8eqERjwVYT!bXz-_aWfG(ebz{iLWAZD+NmG)Nhbt@Xxu${ZE&n1?D^mz)|qfcc61d-2b&>JL*O3&G5ydId#Q z8VY_v&(L*2&YNlT(hkBSy^e#Q%5|T3nfx*FzKXvq@HKU0p^y{Do0FH*avE;z3yM0@ zu?9Ia&#r!6t%qArY@&5`T!=g;)abZJqy$=cQAVTCaw#opv~Nq`RzV#rSKeSpTf@X|sl)RGEd__)v7B(S}$)pDh{GHV53L z3HsXj%8PT;JG1SVL0z2NRGp?)Xc@a#6y^Mx-(sa4uUW5}>sT{7f}VN$oIlv3D*o}K zLqi9%qLTG0xCsuw(8&!_x_L~4$U_s#X38puKj`!y^&^`@^^c>SUAbu+XXjm;6Rov{ zx~8Q5Mev5Xom#FoYE3GKixyrOZ`75PRlTKZ+tjTEN?fw^KvroGOH!acwbV!M_wzwi z8`duxG?$zindEX)#nx3>8#St{nx0Pi#4arv``L^O=fA@lfg|2+uGD9GFI-V}#kEQk zM~{11ks+JxI})i=)p@5kXA{dy^0%5oyl9bMqIWsLS=iGr`_P7*|ayz zHZBiNcZSo_k9GT(%+!(ITJintN5W6?>k4{%2F>rn9YQU*Omc`DvO#(N;faK{29dj` ztP!Yae~7O!Cb6Hp7ss*B4}cB1c(&$!5TpRx*-yD4ZzYJ zKiLIg=%XZty9RsY<2fY8DQi1wxU1v+svYgq_g5rw+YI|mx~)^iN|KH9NP;CxnOVy5 z!GiJY7>fcX9Ph#s9C>0Y%3!H9Ff1pBr!%>-M_i~Cc%}jq_9mZbj7~Ws3dZju_6d>m zOb%2mcc9}{$#*Vp#HdjyFY|3WC)ZTpN4WsUi@Xf_s(^N3Kc9r8Wy_7#@pR*LMD`IO>ekIDg6xymZ6J zjKg=9jY z#hru>o=cxfRgT?5|EPOuE0!mn;R2sA6*e@-M`(lvqo!t1Ii{+D-iZ0>tdd#?fsntN zc;Oa05MRq}G?wZP?2s1jx+7kXb5;8mW~(KqC=UcUYKA1&27$L?sI2oySzrnwbRj`D zJTZY^+^>tH07;q|&ZvUDDr^u+i~^g+cx55biQ^ z#O=~s8v6~w*)=nAE(Uuh)`}%<%=|!NI1^(~kI;hDDt(c*2r4?r)C{3OFTThco8pBC zN4aevS<1KM5V7inMbixkNw~pA4o`$osB`I4$t!<{VM{D8Kd(G@$GUbaI~Rr3)&HkG zASx^z%(?%wWo>8O({9%~B{~tf z9j@3`EOaB}?J)ZE#~y8+-}3oJJZKvVY#o8hkk<(B*HzRdGL_jhQ_NLx*rhU+NxU$* z51vK?Qw^{+Mhn)~OmUFjw(e+?=LkrbGbo#&!@y>PT?5CR@uPe|suG3=t)EW=VC+GH zXi-nJQptooBZf{GM#K4IMqHF#_gAJJ#!Fj+*^r<1uNfL8j&Vl_oq?HQ>7;PhhNN1t zXp#w&B{d^>>RDgMg)O!eN&_?ERQ2jhK9&4|z357IHE8vp+aPRxV3qJN0U$l-okJi4 zcJBpqJ5}5bvT|k@wzXep;li=GyR!#2vxPqpHdB5#iMv~9#9S7>>5ZPttE(cjO_y_5 zm=*hR1?84@NEWos=DYli#wmEvrxJO>3R(2FMWy0a0qM`D#pOLF2qm!|sInL6TSs?u zrBheYG-zr`ffuU;`HP190S7;Qk}%XOB-SUk?hjFJ$er#74_xD9O7n}^xXU$DMP`o) zEJ=K-FWF`9ro~##8$-JDf{cVUxr~jVwceY2yVQ0@d)T&e6J-K zh7>&%i@9tUtbPbIN2sa8tT@I8`rfIwSC-v_NmpD0T_S+616i|;B5p2^P8`MBTs>w3 zK%;QDyt%(b!g1fu8H|g+oZaN?F)8OL$cU;Jf8>M=s=<*qc1k*r3^v4tPj%2y0?gAH z9ED$<8c|eQTJ^%fg|D=+H@QckJWhkq7=jPNN-k^$Z&f=F!9Nc~)RSUi11#DLL++%< zkod+%_0O;^Jp<!k!Ni=Iv*cX&Q3|dB%L1p~@Um z5*M7S+n)3&5!5kqsT*b^JQtji-`G+oGZ#G25u@j6~SXh{^#J zQ+Ww=K$54#(yAubn+PzEwjGDI4XgL&CpFz8C68))_m@7p(H2d8tr1T)S{}?V()h%#SWnCVjZ4B{_h5z z5w3iRr`a?lH#$D89vZi@JYTMZm@f5fXLRk&^}?6cT?#4Z;&7J_?eq_v0vv@K(|NOTjOdc&ijE@JUde zZlLwVF&_JU6z5?Z#csa;jlW@C&8_FJ)t32qaX6kSo4yY^5-@DkV8gP%YIY&szX;(+ zgedL)F&{USI0~kL3}%4bbk59VvHR(42_lzXyk!o!cfiB06qWppW`vk?5w$mAlTC+zeE@CIU3+4Axt;6S8FHe}7OPa>f6?JC`VAfWro zN5BYxRpv#(2*9HI&V1MGy%arIL|VmWmdO7h>pu!-d{gBRhQr1dToM37n15ji!dw6y z3+J85TWu`^)z%w{;V`LV;0;fVfFn}C5hmSBn9zL`TP|E&4sjfgu>A!EE@ehwIP;pL zSIPc8lkUC*rzICq=idzE7Ik8?%aF8)O9Hz~lYXe4E zlp7M#3DDUIqz3iEsJI=;9u2oZSr?plX!tg3%`|xr7ejWpp6oRVnOg?h9rOyTqyW5U z$Nsg>BZVlNP8c9=NJjip?AT%|$aB_^)V)I?-Ns(CnPf`dwY#)!^az*IBeqE7(ml;w zZ{LIs%4%aJfr&^|0<|uBMN}Ak6=bs^>Rliz#p?)qefd*G!bi%7C-jl&z!lSH=tv!| z2ya^|NJFxH|Uy14qLUkyfN%R93BP!oc z2HQ}vzP`CmLLx|BuDX!|Btm6wmEWP zEFa7;LY8n?+23M}9Xb!1L6cA1D zh?<*8WIPPitf0h~hk^YwkyNoU#;H)M%5^2L4wxC0u((4rr(<3i&BPl^x zKV@EM#i5>W5W1h1pY zvRkEb(V_59TVuSx=`3-j#AgW=oCJANjMSIV0$FMf*fX2Y$d(?Csr?UoKq*l<_v#q) zkqUrV^Y>vc)pFqMg9k9b!djKI-T4^hf?0>ka~Hl%<#0seG`tNyZVua_4O`D4{`^-9 z?sdXhj4rF6a={TBDZY&ns;>22`Hxy6D&eD9m7`gfBSnaN3y4Q0n!@}>lyE9ytYS6M zN)<5L6dtYWnjqQK7RQdpnS;%L%I$WoudV9`o90KGO-T;vYp;I_)iYkx_N3)x6nTJ# zJ1&>?FR zCTv1psb~unT?TB4debP^nNzoB3v89$=CwS^|lag@-K z3U|zvgGc0y{f!NmMZx?gcZBi|aY^o;E4@jzc)oA^r-Knr9&yz1%mp|7GDbU8ma!pS zUTQYmoRLxE=C42wt#*px=^2an6lZJYJ@uV>!J}V0W2adHe2AeVT)JBAqt~NZP(ZrDG}v;Zgc8xRy$-yfC}G;e5WMSz48>5IY)*H&S||%JF>7 z^_72=s88nVV4z#D`o8*e7W66mgXPp|d$kCzkH#g_TC({@pf9%{VM2ANE@h)~#C>tc z(QWYJJbn`X*`AYW@ajC6H@CNNYcb*x@B5&Xq#%{6sg5p=)uGB?d1RU^6BDxZ`$K1| zwDHo_^=S$x+Ir3oUMur<%0;;p6l!Y`d|Q`b4u z#o+1H41}uqGfe9f|VU+l|Ns;An*)mW-31TmBC$R-#uw>DHt-R zvxAIU$vq-@Ya#eB}>83Z`Xn_BSFK2aBvbAh{s+It#%J%ObJAl@?L9QJZi zU}&|ovH2xe5Wa`T{H#Ru{a;Qwr7X=Muk>= zIqMS5$F45#W*>pCFImOYEc9S)vK=on z*`st;e4n>{YYIj;a&Nz;vv=Q#0EFXFc~B$G*1F*7Ovbu z>h5`>a&YeiU*O;L+W|a`x(@k0r|yt1-F!i3xdlQ_@bd>_01kWTqv^LeJG-vF5Dtf* z{G+S4AcJ31Mwb**l2B(HYQT6UYv@z1*(4UX0kQTdKRU$I*l?Y7%1c!k);$;5=lpDo zX}sG+xoBrs4+FD&qgNuP#*I+{3xhS4LWw$vvJPFCYmzXxon-6o!hKK5&-X!66uP;-KuHchF#eQ}Wb}mzvec314 zOC2XT#Op3=R9N0^U`56*qr0}KRoUWhoL))OKi`o3H?+e4O=o`DdOz-FKws8<}q7)i0hsKDw;bYLTIiB8;j zal_RWaF>gEtLDB4C9Uqm0jnV*y$EgnrdQ4rY7v^yB_C)`0o^;G4s2M8DSjQvIWv;` z(@fpsJ>g#H;?G`P$c@w86useYZEn}bNL{fCoBH@loK%wgn zBJcG;ALZb!QP8>iX9ejrgf*(AE3&iCp zkWG1D^pn`a@{IPYoM=^y{{400sdbX`1Cxt#(EEf;*0i*p?i*jc@Sqv>(&rhGZaSS@ z4Rt6UA!Rn5_#fOHbY*fuu(YiuC^zgTnC?@S!kfh?iVta`_7MPL5|m@NbOBYZIW!g< z1|COF5F*Bg+b0@4;cr@l?i~^hnwrf7Ylglv9_$-xet1|MI3H{RDG*1A&f+ZiE#dSX z@o5^F{nyDB|H2_QGW&*U_)5urO?=v;8T08BApYr_msYin;HivpV;MYzH6XaHe`~2? z553?# zq-j7>$&u~9pbMe1;C^&xh!8n}$vEJ{EaRnBCa+S$KUc!9BHrUeoXBObKxt75`V^UA zSGv-L#l7{9dhl)E>L9RqgKQu1Lbi3X553621U}8kmQ<-7Mzccjl~u_}O4JQ&R}1&6 zWR<2ZpbZMCS}`#HgX=u_$CZD&8|=h-VlKcw7wz$H^%h^U;3Kn^i`U3E zNr+KAEN(u=!a-y~A5@{ORN#OZ9FF{)0Az9R%X9GJ%$58kkcnNVY+l#k?%5OVS z)PVIRfci2}1pVT@+KcgAU?e*WK$d(TRTOy_-H;A2_c?PBml1SU@`xGl(G6I7A>=;A z8ZYi@=1ey6zc!+)HP}$3oQ%(0nklFtkWx`)ij@gtV~2mQ-0rV)ZzImN`HyY#ic^r4 za$oWl<&Us5bnk4RcQAfb^w%H=zC;K4&wL22569C$bLf1SoWt(JQpgx#I9*_6)lu>!B2SsnJ zdhWP=LctTh8W?#pMNcd6mK*n~MCSLePN5kIKU zXe#eP&ZW|VQXe)Y$D(@zgsctKHS8M8-F+~O9`#*x=m z^Cr;siD69Trd3Hn(t#q%BMI##-KWM?qJ&cMPp*7QPxHHLIRvC;`VEQjIvKh@B~AON zYhJK(I-*v*p{&Gx z1+Q|-bEljCtRQkN1=sA&TRI)xi;sUon7IFJd?VB5&08B?iYbM~HUvK_FHqbg2-d-4 z2O^i1*J3~~A$z?8(>6l&Bk$XAbqeFPQs~adAEPQ3I03wk*$NgX%EHs;@yQwh+q`~- zr(zYdU=r>jXL@k$Xl@YP}leny4jDJs3oRi3TENu zQ-k!O9U0m)HMM|A7W_f(ixxSd%gRy%uS;#Dr|+-VC6v#kMC{XV2Gr~yydMz-^@%g> zi-nlq!c-|11_0+swJ(g%mcxy;I()>1AdUxGNhlB^zlBLiqwE#vR-19h_&-4uwXl2zrTrnls!BDI zjS6EI(BUX79^l@f*L1l;ER3TLa$t5u{qx?4yixeQ(o)tDWX*X!87CC9^&>B5eX_mA z8}=4d0mRU@8ng_|)?__wvf^D9e)`}u&CMFIN} zuiFX7$tTA3DSwioOzMxGn~OO3R_7SD$uME)VLPpRh$JT)bLR`UZn6Jh<5Na{8PkEi z0sYO-jf&1fGyOccK#fQ0YdwW9U=@G6CFXA2?`%b4+@THa$FrKuTofu67u3E) z&WtQ`efeLEc8wi)ea4|>!e*pX9LV)w@FkWlV-Mb^rM1ES8#q`MwPA%D5?FJSe0^z+Sq`8D4y)?FLC~Y`iLjD}1uKG6|vmLo%{)24! ze7WnJk`}B{R#6hrZthsz+j?3>k9EgR|0*6{8RXbK^-Gl?Nwz)i+MQI2)0Q3~Mce;g zb(n5<0=HI(1q=c|lba*<0_( zG01Ap4BSl}3z^5KLuIM}nD54;ZTBhdzvyf^3%Sj^M50XrwsWHgl7#+MANCp{uC5Y1 z*&kBHh!reHXGkl5TE6TBK@|IbSd#Glj9tt|$SJR62884pEuu%jr4Yf$5pV`Tfe&Ci zX;=rEB8q9(>Y{N=1LqRvD6mGw&XNPiz+C=2m+Z=t5O z=|wJ(g_)VfH4$sZo^LRx8>K!Xe%BWKhUE;jvtEz$S6zsm+Tq~%y+(y*4SLl(E5V*n zz40PXw;A8L_Ji~TN_&G~CB`2R!oiDgs?`J7u6Y5;|F}c*%4m*C37$z&NH&_@{cr~I zL-B7mVyu)4H7I1w&njRQ#&`Aat2?@VZ01mSPB0=0P$=t@YqtuVrvJ)55Jl1f);NIQ z!~35hdQjxArw5I&K^Pd^aQ1qSPLOD?J0OJFtHiM)eY=VjD3RQTJuRI1bK_U^;I?3n zKiky4G<_y!CR)p3tZZAmpyr`?5ay;#27XzlQ-|n*J)Npxb$Vkzigcue=pc$z^`fyn z!kpG=1}hqXaKCpXl-Gr-^uWxlR1+7h3YYf6SU)}#>KnjUKe;&;`h(~e)_)1h zd{8A>$4g2+EW(kAA=VTds8L~f!T3p~p4?LA$6J>0r0^DQMB|a}li1;EgA|{?RE_Z6 zQey7$Vz;S&1xMbhGRBg#vgoW)SLFM_vguei!d@uqbX4u6YXey11iO8zsSXSWKC}F~9o!c6%>rW3VzW6)=ZWrM`PSL@HHGRO{P=zsx zD~_n;Yu#Gs6Pj%U?!7Zf3g37De`tRZr^rI*gwTdS28^Z_sefSssW`F(M$=KY0T`H% zltM(ldb{wskNjMO`JuLcjBtzj!Sn9|83i{Hi%gc(^ZDT}k0*wOUvP9Q`C;(yM(w(S zpqdx6K!s0;oB&3Vm@gK-(!St}ahu!jFP`q&K9KxVhe6GEo!iBgO*esZZEat79dv+NV7p`m2)uw{*zr&$k&r&pmMXm=bFBkAN$0kEWBiBI<*kmOdDJm%xu&O8$DwBCiI z#9`wGLWAdYu_L}~-WaWBpP&ezRG&HV)_9BT&U`d@(awtHx2#hc9${WwjRPNrm6cbj zbht$-bf2fTVG#=4TLMu$xQb#Ms7(8~rIB2_36bd5gnC z_>7Lf<5k0aHxUqA3J|+F+MQGUhHkmASo&>XnDs?#y`O@#O0Tm z!5|*OGVW|@idXDA)@v}=kG;uOYN=eV-Dk3@i4fL%t^X%~(!J?lH-j}xX3aE+@Mzov z>v5MwLy!=+`M^IlS<|?;`E`O&c5S*`d6)C=|HdJ7KR6}$@%{LL6a1eUW|$v8{*g`n zqS>YY0W<#R_Ydv<@Q~94>{}!nKyQ7JNot=Zd%l{H! z?x7^}zXss{-viu@Y^_X;TR59j@ShKcjk=gp@@}6gU@}xK zs8vF>5qwj{?`F#_WGT#vU;Dgl|Mh$6^|{GT?)&n8hwJCAA#?mEgMufaAAO-RCB;lT z3~$wgJ*q!Bm9f_IM4FFLU=>dn!x^WP7jNzzuU=Ep-<3}h@A0=`RZ+E6Lf#5j0dCV=-t;bBiyp;8&ZcTO!Mnb(&^``($QJ z?SV2MYGkJ6bsL?twzL%4&)N)2;8hQOu$fD53#x6Q1ChBB+b)lDG?ry(y?_4?#@;bV z)@{oIJ-e{Wwr$(CZQHhY*~Tv0wr$(Ck!9_wdUbB!zVE$`j(a;|W&X%WMSS0yYs@j` z9Mia}is5XtU6o-x-D<5(LF*WqLWMdpwR>{6I>{^&?lD2CA@^*NcA)hkyKYmkO0&sY zjZV&6d%ofh)A^dRRny|JUG?!!9}i@IqMhq_<#2~UQ$^v7kp>Fs$aJ`3iuc;KaeM%= zmLFmu%_=!ej9PJXjesw1ZGwiXgj2?~Wa#?RRE<$-UJmyfK$S+~f$miGZJd26SG8YX zDfR?{S%HyUZ+lN09w0_ikPxwrZBN52xCkt$&_%U5>*OtZedH#JpCe( zEx{t%qGtsnqWCavLs*Hd3ijb!nisCoP?r zIU8YMeQrB0nl^p9p#QFTeK;Uj9yfAF02+BEfZQV?ug}?}sxR8++^w;$Y^iV2?g%q@ zrwA?GB2l&H$=(VWjgSc{1eeM)7Rm@SPL?U<^I(uwdSYT6EwmTkcZb?S7o`(TTYG00 zlB(|uX&7}taZLInE)q2MqY#~5AXJ73U8= z{2y6-bqlZz|6K!Z=)c5#t$}O60_Y5g|Eg>b&MrB*n(c!y>C{Ni9ho>d<5ZohU z@v|7$_LPqKQ5=Wjyi0~>vG$q8r6~q@5zf;SC)Abnj+^gi@6VjAnbSTx??Jg2f;D4T zm*e)KX8=_P04wK7Y0?nO4ZwAMuvV>={GoLl3$tLCKJGC;JKDAUfH7-e<|Z*O%xnIk3Wcb6$0OV zHrx`_VApYrQ}?37)_pR(V4LZ7fWel%1jq!WECGB#QR+U$%^C~5D(~$__@(`O-cx-A z;Yc1IjLA)pCLa!cDP2tGJ*4Ecggoo@TW^6uxAS7I&DG|{qfgoZz46_B;w!81>c+j% zc$D&7Ki@q!Ul7dTo?x8YZUX|A=05AHyR&1=Z`A!pcJ+;O)dXZ5MgmMog*c4n*)h&n zXeLIB+UneDJFFBI$h_$yl3P6Q!g0`s%E9&AVkL6DnR0X6xDqp<&op=#Oo9;8lp_p+ zWltrX1X~!}4Vg_=>vL)6#McR9ezlJ)z1Rh}cSF$=dcU znHGwds(TT@VIk(3AhJ?8lscPTl&!`msb(iToy&4L?Y(RR#8B8_>gXDbtz1pWOHeA0 zs#Qk@g{MbPq)L$+eZ1k@pqb)X@A6I=m!rm53_9FS@T8*65=;gC1(8)un_C@XZReb9 z+XmNbghhs^c^o>$X2$hdI>qa4Uc~PD)oDfzlDp8S*5z9<+S<$@kVFjOOdKh;A~L1X zH6|v*)+yK;7>pQA3TZ%bncB(86?|pNEss&Vi->c^)Uz-hxTzLo{h1fStJ4*J=(1a54VXwO2&@p0t6I5 zvdA9*^4r{1L5fBT%qEfqR~S#jG(lPeY(|l#s#kM_mavb~c@twNQNb4IWrHbx0-H1n zqtVF>X(YqRRWV7K;EBu=l(F-AC{g z4+aD_BvkC;;5L5Y)?KRB-|&M*O6u@*I*aQFlkYa)0$*J*3Jl_&rL#I$dToDzdK=%b z;C7E6s!6PwVXna6pzHNE=D2_;`g_9HoO?F`Jo+*GO!m37R@-5kJ3g+pRZowFpSu`0 zZcS{ja+KAa^F+LP{$`T$(*Q-O(QmknMzI#ylCy^bDBxRaIyVK`wod_sZK5G}hO^;st-E||Pa_}4K zV_A3Fyy)JgMt(EZOXxW7X>TKPbZ&Wzto-m(U%rKMuS0lTg+yg7V%(JSct`XAJL*N` z5N|UG-xP1N2;Y=W+e*KW&bJzODB-!TAK7{uHJz!;%u&583iU~1bwKtz$4;WcM)8i3 z`>o9bt+ENzd~6$IxU>d99j_jr3N8;NniX5}Z4_{}FAD;8WD?mVYYt?!gw%P4VaKcy z%A$ECw{=rquc10$eKK_IfmRa{8(Z+Qw+F-DXQu}v^J(+Us1eE-9>%f{UBYbA=!&_! z07ws%O;6`K!s_OUWC3RsE6nltx&25tT4ta!U?+}JRR*Nt{}MxAM)oVn2y)8YAWJJ@ zzE2>5@^Camko5m0n~zjNe8~gS2&?kKt)~2=3Yi~7hw&F`d(h1#Hr89^thK zN5{E#f0CwT29Vkx->pEe7`tG(80W1hmvPxMG4?W=e~C zT|NBq%P3#MEGcb4H|rS9d9$ymSQl9um$H9fnau61OE1&f@R22Puv4qpZ@NbjFi~of z%34KPwq!PN!>~G*r#U8EXjwUdFMsup-t3gMZ%% zVjJDB8C$wBe-<0OC5zg(QGMbX-POtL%ee*lj3@!HjrnBi7|`+H6a`Cx=o&s(>h#dA zLo3xpdFAwjHyq;!Br@VrIvAgR(OX~}%3&tz;tJ5<7FUtp&q3Q{TNXi|MwEK&l3ptj zYJ1>SX8;&Aw2V!aqwdL3XZj|dJa(2>5A;?xyn!!7x>!*>(nU>_8vF)a79S=jze>&| z!>gki<9d()UX7n%eV<4dw{-IlH}mmDGm5zz^agl~p6Hp$w>~(5tCYZ1eZ*3d$$83o zmqP9)$bWJ)#Y86+bFdT5;y>nRY#To@Ge2iW>(+ZDVo*LcIXpiyj!wU5&T&1Vw5kQ# zG%b5YF1^m&@nY3d!`EVIgmLs29ClN!fkxI+2KB~me_HH*{S9A!s8uWIf9G_w@c$0J zaQ!FvBIIadY~d_q;As3W3_~nnW8(f#Afqg!v>=bnQ$r!41w1%jQo0+qE=VBHFD%cS zKk58)u})fStE+g1HIdLi)_y2moUUqD- z=eAeR-z)v&$kbG=6MvNxF8N^GR|rrMhB`qfC!ao({5P|o9I?RgdQ6eFT7;>uU{4S zrrzMHvBjN><1p!roTLafa6Iv~DeUR$c3OasAnyf@H`|Z(Seuzqf<1oefp-w_T_O=)c=?t&wg?3TQ%WR*sU$(Dk8$XjaY&9w|x^%+3RyvudmdGgFL_ zDgvrUbreS6-hdAy@r*?ylQG14PNDhwzV@OxA$d(i6v*#W+AC9j(WToh-6Nn)E*TEe%ZBbB?bX#W9M36RV zV6A=m&yx7cK4e8l39HnUH?zZpxws{Lt5J(ls6~^hC==q)Dd}a&l9-ky8H0LjtA@sdWv165x`kPK2p7RmS$6)N54m!OHL?gA>N$ z-oE_>n`xtYaT#GF*I`K+XShNpBn6}OFuC+OcTdX*)B+D83leCqtZ>*FshF;7-2L|! z4T_0t1VB(mC}^k8SrCPXI)xKG8;h+eEY^XkOW$m#8ed=KUaxOzrzv9n{ zR8EkzCkB82uL;|}W&c|x(@oXs_q%$}2$+r$X{~N{U7)MT3UE&JhUgay)!&i~?}4NT z5(}gB*Q%~7i;X-5mciLH8T40sih*5wj%w*>Qr{gtg~^=za3=E$ro-9sbEf^jLo(1F z_$QObt)!kQAA&0%ih`V|OMezd7P;GwU^ry>bjT^fn}Md#&8`|{V2mYMvMkWD6saeh z{R$$PmER;|TDb2*tp4jBzBmJS>%?U2=4=@d64H<<1(YGRoWYX0a!a~BUkBU;R24}9Y;kOZbF-@h z@t7ThTe)z{*nHuRhj;n{-@&Xsdy7D8*;;tOSUu~5qgFJ`qHXq(^j3Lbq&;^FVLQ2? z7TR^j48=_{+gz%lY}^Y$5Gi7#VX>U&4fb7)b-03R5?H0A3x$ofz~LpvIJRIfp)fwI z_i;)g2)^7}K5}%ABF~++%(qORaLi3iR7;|*ONw%=SfqhmO%IOCxWH{pQ(GNS6*1~7 z8=Bgw@P#kwb7nlR>_fGa-?pgCX^^E%Q_7stPhwQy9kqyR1E{h_L0phul!Y?=#cE*; zHr25BRJ^F?unH9w=xjg2-NA1FoBX1knqmTOT?yY~29kZeGAYR&C^}y8lBX1GwwG)( za&oeCkLeo=zLuxG;#2~LE6J~O$SQmYTP|uhaL?1(lH{6N@kbDdq0`&4xRC2DEI0V; zQnRs5{bMnyT~4?=uqC*Mt7jwe8;qd5teTUia&pDq8cX!zsnnc(;dFU zM7zPG+q6aN|CW0lXo$0eWxPI2otf0EPh|n>(Gp4fc1n0!`T{nEsk`5mE%>vgG>ico0p(Ux0ri%l-N#zs zIv{w{LA#wCD^ejF{-yZWz8YD01UU94t)QL4(@AY1Bp(sL214?fAnnEp<8qKTTcUG{ zwm>sfA*&ZoT@%vH_eYr~+BC(3?{!ze7Hlf}bgilr-;L@E{|{%_36Q6j={*U5ItD?5 zHvHSSKJg4{(3(l7z)Enn0wKv5$=`g3Ft28H`BG38J^8$a9|0xZf;LiG;!co9#~&SR zH-1}$8eS+Du#TX#aT6lUdx#i%rUcq1fa*H?YNH^#91vUl;2Ha$IRnFJ;{!sS45L_H z=%jp2s&@IH=-r!t5=rz*t<$dk2p~T zhU{-bi*Ajuic+ZClrNt{kT9XlgV%Wy0|uxBM>2l-=XRD{2z-K91|-pc{$cj1b2#;9 z<@?MqhxvEs2H$@=H~u#mC2ZkjWas+d7VB9`6SfQT@H}j;m&EK<5X?ycN_q2n{;Uw7 z@_@f6iWCb0@MVNStDEd<;gLpQ8{xZ3t93>LAu@65fFFNgpo^;wdn6b8fhLEb$>_D13l%qT*&cgu$>#b!pnEaBdWGpFF2lzl^;(~QD4LATajZ4op-+lo(7V}q98!=2(;EZ~jBJ&ED)@t#CRi&`x2Q|?cN zZHT!Utm`yFMbKpG&c?E~^~tBHVXL0{7Ma`4KOo2TLEK^Lbb%O)8=u7@)Qg7+WUE4t zJ<^GL#|S#tOM-m%O4P42|HVN~pgqhzJvdfF$ha%0p-2|zcn31}JUf9z-v0Tc{0~C? zLpV@jkGP*`;j4wAG-h@RQLQHC8*QU+$Muc;@j5<;m{Ui2E~um|sjtWDZzjKojX*UMHJgGi`3JzF+TSHGk0> zG{Jqij|d{FQFlgGkXCEZ)0d^>YZgm)ni*i;XubT!G)`F_e610grzWk9hMt-KghN3e zFZtDDf8hCndXQkU@>{BEJq3FCiY7LDHR+;buaTcPxf(o^d|qj(=`LA zcw>$}Rj)3vIJ4(uRP=P&hcPn2 zS*m8a*79cU& zR?aymrF40Su++q8e$GvUf>1Rr-_vE|A)EF>-h=nYS=DGOT;;_sM-tZ|LMUK@b439p3rhD#5~xI z%tAvyUlv*NI#V04@sX4QBI|&b$MMkWh(nlD^|o zI^JtZkw|XG4!b_sURnG>LY1tz-K>SH0aG+D)?kqIES%5+BUUslMis%E**oz7eQOgW z_sE1R@Tby&tZlflrI#vf!Io&}SjnT{pySj-yg*EdhS$F$NO!_le75Xio^R8sqBJ5{AeV3>=cE#f1EV<~#xYg_n%!+(h+{>=q$Iz;S8U_W98cO@d7k{ zoitx?#R?{nX*)^ab%UtHhHE3ITJ5p!mkiV<$EAGP1&cu`c8yEfezI32t{8yPJW&{! zx1K_>U0rceJ%kUI+Z~2|EXqGA<2@@8bcwy)hC*=edJcR14*m)nhMwQ!WU#3yvm}I# z{0w>rgW5_99k~3y`%q7R{~U33;Hre48xmkf~l%v$Ql&AQesO_4Q@c3UOov zE0&L1o49u3e2PYtjZcx!S-~AIvxc=`AN*PFH7>Vlp65-co$tr>pZDVurN5T<^aQ+N z((qIE!^~sK*-?Xb5~ISl9p*COYj(bW_axB$2bs#B+ypv4Xu*Lpc-_HRMm-V( zPt{0hl=>znZnL5+wFL>HDJ8;1Gh!9wI9mqAg3Un`;M^DVvuZgvPhYnsjnR{7063&e z3{PB9ami-r(YVJpW1olYp+l&+KwqcKB<5T2kawfuN^zJnuJn6zq1(Zxty~x7EE};f z5o>+V^%agKaq(O_S$D2>VNFU!-K!cXLb1cn)WGjAr&eO1pwCAZD1b|ztM)6>h8W zS<>?;KMW{KY3a9)Fq^~lD3?%kg5w_^Ji?M3P42TQ#n#PDq#zD5%I$v3bn4vl8(mF9fB^HnoW9-e#`6`k`)iIe$mbk zTqP`PaQd3%LXfi}&tyM#mVCm2OKBjdcGu+A&qxnYYt42s<@y5Yo{__*hd^G|NWpS%pTx?hx7PC2o;g9OT4ZsV=uUBmU zF&0y^PGcyC`47ec@rN#ixKW*U%^o7J;%!~X#7ktrsShzRX!NtV*ybTq5hAfWtXc17 zI$t{`uRw~K?bC_Y0E%>J>LP%m`tH>H1zH0p$4GL%yH;zbUr|GA(HGe_;qF&ENi=>8d%cfTC zCk#quo?OgzuwMB=x`)W(?ee=*rMAkM5m>fbc{!w`T@tn5ktZwVvAHOzic7d{71eCG zsrbU)rM2)Z-TsV3YAB{O%rI2;a!mUpQJ(^wA+tmTPVx3Wm_=NOhg-`t0L*J_%g#Li zZLPVN*YO$j8G3D5K_OUkh((qq%Vxl0j|^f}F3cF>ib?!3z}~<%zqBb#txU<_n4*S8 zk&ZmzJns4dbENc2ZcL2f>2)i`sfBB(slxDWeUN7;QB_j6i}9K#Z&E@MQw?VT1uRoG z=s7aFrj;u*%QJI3)?HV^eFcq{_6E7AhAg91xv}=x*VcRCP?To3T1*Rx~=iZEOO}$F4jsD`tz2-1VdBRSFX`R=9!O z%8H%tUE_uI4U6?BCiw$TOI_zM9VeQ?T&EK>4~utC*l-1a&nNi2JDnf(NCR`9E)ud_ zSTaV$a3CcfIi}5Ah^1K{VLiO}z`UQ;x60YkY9m|_jjbuM zV9On~LZYkF)Fs!_#qHk(?XlceF*tUTsT)_{D@5u=M z-}eQQXJ~C(&>1p!awaiP zKma4RoTlgNWzsE1yNH-KWw!DyvKBd|Ys1dSPBw?X$Q5#dZH0OGo9@FxB|p!U83#<1 zt_V-yMV@WQ*}epKWp0TFA`DRO!6mhVIv18#xMSie&DNorTUvmO|68vMHJ*q}IdR8EaQ(% zg5#P*f3{k5vpOIEJELwCTcBqYbSFy8gi2uStno)gfXBZg zDN!6y0@-d;AqNTyyFaOvlNjs=^$34!h8PnvSd>fOIdG1Q1XqM5#2#Od5^EwOGdWta zMlGVyGlsM9!tYFDlevIqO2>*gRxYB{GV-vhjXT=4$Rfwhhj>`iA(hIdLe+2nL8SqGYc&oy~zfQy>No4$ZMc~lA}R;j2ZmbmgrK&AVH>|@NftW?4N{S@>9jSeE~TH2c1 z_RTZz&EES{%UAc;kKROgnh?||QG@|?_lqS=Dvp#G8=WCKq6mGtGJnHzwY%+Y zWr^>O0%FfYheCx|_$P}{gRCSt>01~?bgGDopph!mB83-4O$r^kM^;Kor3SvP0sQAv z6oHihQ30J*iWG*41_gC#T0mRlU}_qQ$Vx3M+Oa zrkKW!q;K_+;}HpSCt>1*m>;8wtXU4Fn^|cDf)>^9E@!Zym-I0@scJAucBr(g)+rwR&hG0R zzP#xfFi^J!KGA&Dn0@!i+)v&Y7V~GNNAwr)Ln}epgY)@Tsuh-v~ zV*lw7pr!9trXe~~n3k5=z}48Y#lhK1Ww7F@M%I-OsbSMD@NdXcna8JY<@#Jb`SKJ*z-iV7U|plJ#%Cv z9XI_=@F3hbdm&+bNBA4B*%RD_?&r=yQtrs1-0mT~g!b$nNd7h6#)AwoY7|iKamxbj9TQ`@k?mgBrWLPUm>e#y`&_ zddi8IAw7K@Wp{TvD)JdZUDDjTB6MyVE_j-QlHj-p{GeK7U~5tOD%33bZJNzYVxKPg zV_%e<7c=rlt05dUZs+;U!k+D za1UGko+v0N9@ksnL_ zd{4*n9YB~rF#Je)tY;s=XpHs(V5|eh6tWA>jq;f%-&Qg?&lvO~E#F)buRl1h&JS>V@$s6#M=+(o@F3$=Srw=vzz{g-@f>d;Y+!n4v?!4cBeX~f23>qTPQ^erE!HJ@!6ftSpagotmK!E<&R zt?w&T=%QZZ(rNXRIYHYdw_3f;=+N&kO_B;3{$}IZ!`!T*9|he&wcXyID$aGg;EK^& zau38}$-|KCl09nzwoOC1=BQ3_6B&BAL)PFNHkDm1)h(Omfg~xOTh!n=LsJ$et68)k zlDemtLX5;^)4jSAl`jfHfpA0btxY)ZNtK?qlRCAJH+a>{FXIv^Il?sDc;I548?fs8 zO+pk71$|KR{m-Q<2(=Xnj8NQ64r_;dl`$@IYgjAIlzA%7rOLZ2&pG?BR+Aj?v=Hy0 z+rG?s105A75AM3@xkIA6A>?Yi*kI0kXD#?SXwnEa{0cDkr&Qb4NYJHFAkTCU@Q$KG zY9%(jYb-c{T{`6a8D==DZHbo>IZfG{M`SWYUC!<9yrVlrZre$$g+PF@nu2s5E&J%y z^wlrbsEf~>(F;9r^WOI7$8ygWeWQLbm5pQxQn;c{nwuK_R z`HBC;2lNZ%gOGsu8YDQrj1_YQZ5e-FJIa3$liCNn5@=rufBYgf@Jyt@XIbe0txAA# zS*qQ(9Oi`eLxk4<$rezX;r~S=3F?VP`VT3YrC$DTDcM%+pywY1O0l<*gIR;+5VGtjpLF7Qh*Ph0ch%YKmbXWu!0XquS4Vs$S@E7Eb5_V zv!CJ}y%zkV#hRe5u7Um)Tjk&?AX8Z1dOx0aBYpjTau4+jN!f*19#%+Xpg9CbaQk;Q zqN<)}w_{dEg%gkt5+lyaE$|+QkAaK{;|8bKo4b}DNulPrf~ie61-q8i_=x` z0n)yg6N{kznyVS)j<9<=;2_EbafjvBNP}p+U{~w~ZjK}A%*02IQ-%a%_VY}C9??sp z2^CKQLD*OD@e8nb?{*S{VK7y8To9SJV2tnD;Zrr9qUa;6>ChLkb*S1Gbc% znE)Nz8p431e>mj|RU9giyAI4ankj)?R&s;6QN~khK`=qk0@z|4%IY!UJNaB#>a0_J z2X24cF6n-3($TSa=3v5=Da0_obG&|kf7&+7kt^u&eH-BeM(@Xg@R=pf90A=%CZR4M z78rrF)7_8m%V4yl>@1UP4Xe35P6$%zoXk+`KOI^j;SQNV?Dn_2J7&~-PYIgxu0pGE ze6b4!VCu~Yw)V>@ePzLSWA#6y8=5T5Chd1xCb4ue|CV8@g$Oa1q)VofEMu%euCUx4 z=A-kw8*fr0voNwHbu;z-eoySQ>=gaw%-OJ^qJ{#blx2M`9bKZ%UB2QXYEpzPF-(`{ zoTMcOhZ*w8idrZ}yCRd=!rB^B*<4y9lC687J%!MBe*?vkx_$mnI17?0#{S(%xJjlL zrMH0bS_(1J#HAyra)ydbs(DE-SvvViND)~lt2sT5`ElqmFfV&)8ijsH+2vAITq?>U zD5YWJCiTMA{kHpY5fTZj$T9DsS;@!&;1YBoG!I%1uK`y7Ln_I=eg~7GJJR|}Wk@Ne z^L$T>V1pK@LN1BfTIqnpCClJAK~0XHLM#+VekwC5l)B^vsYpXAr9~7?%cXIPF3MC3 zwkmreJH_@OL&ZaR7Kunh>(Jv(voO2SS0!w6K@Jr;^5h81B=BZwEzrA|In`7yKB1qR zLochV=zKH7r`5lk5bctsyooZVBBH5tj2ST)#sCt$IcSO8InvV7;3EfT&YG2qTN9dX zs;Yz>V!u(U$nQjtq-f#AWNBzrQ_$OW0uU!Nwpa&c8^vAR8yjn338Dvria>vg|v zW{cUETR11HqHGVPv7+^UbCHRRGeZ_7F**cCNF{<-TQH2I&60FOP zXl}Z?x-=%N2+buBTxM?Vtk^$>#5Y1PJe4(t_sY_cI3`|YwGmPCm{d^~i&I!)kJ0AU zj8c#3>!mE+FGZa7UJjdxYOPTdZSj-T^q8aG%hKp^Y-uh2c{E?LY?p5tl+Y{0^4O^t z8mbFPDP$1%$NA|qD^caiS`Wi>&=aRStTlV>jOHDfQtlgW5!Ay-126@*?2d?!{wffj zXD!Nxd1n^ygr<2(C=^VzS1X7@PvDdIUMWtlMuMlP5B@E}>P@gjzp#Zg69u+ z$ak8}#6uCNN1VWC0vNz)1n!d>8~FpC)1E zvBky*!^8*q53p;m7oIBs*ExWT-@gCKO#3!K*S#cT566B8%44r=3XttGWcAp;@coMO z5R}(m73%<&>ri4RK-Vh74Lp>lbHI4?f}k@*JYZbBTT5-njw6E98chbB$Q_n+5dq3F zb3F8SMx*F9%+r>T7SFPcf72GXiID_43h1bqk#Z$XQ2MZfSl0c0UG}zCoY&j-bJ%MO z>?OK^8Hj6C1TWE((V<>QZ6$YOICo*Zk9a!Y(wy`vGZO2RFwxXK>Xb!fvCjz7iY@cepB1`4J_h;*m&`Ks&+&_GQV63LMti0o!iJplv&;BCVHqCz&iz&*&-7fR7g!e> zr8q^MZ6iZsyQ#OO;wZ0(qrC&#QE0wI$dE2exPdy35LV;F^hYp( zxt54)MIo7L5g;!)VtZq3=;_11s_Itx^0xkZ1oH{?A?hyq(DA+QwYijZe!a=#BJB#@ zO-41H%J)7tQu}i`{q?!M($QFSb167A;2QxImE?~Tnj=FvTs%7=t522D_t(UMgeI2Z zegFH%AZGrY+9)6HhyYhiV855>Ctk0b2)6GVIlIvaLhzST5W3OU+!wq!x>?>T9``Yg zh$nYV>27O&7)^fsjIM&Z_MAp$gMAJeT5Do`9H!fD0c{(sk$QhHwrhD?Eza z+o^_2G()=OQ@jB2TX&-fl@?^LkA(Uik3#oO-k~b@xzFPrvKU|;Jfr)uSiouM=?i-7 zTgX?=dNuWTPmg=i$k&PEU)XTnG;hB|GIywE>IO38Ci zcA|*i0?MKd#oogD1jxTho$6{oc?c;MFdU#42YSiFgc(iC`lRUtNNbq6?3#JLYM5cW z%lUHpApIrON>PB7lUxTU$2xyWfy+BGa6;lOAR5^8M+7(fcn=Y71^^&|n0W(aM*Wrj zd;sd57Fsjh{GF zcTyHW$w|7)^j{$QQr9xooLR6iRh_*$({d%FBg4mngZy+{>&!EawqQ}3J=f!KzMu4( z(e0Mv=Ve9ab8w~R#l=GaCq-Mjx1=sGJuyNG$)28megz=;FQ2(HGN9*Rwx5*q8<-(UlEO%k+0BjMnLmxD!_64jYF zf%KG|fWnqOet1o7uPjDwRHtld6b>>xS(5ftWpVVhZfD1$3weNeId*)Thj5W7PNdx6rV9uDacK{@Hw)JRYn_aV&rTnEsE;)9pBSY zJ)zJh4s)d}IKCgtyw@u_3m+)T&P<2tFkD%a7H(r))`Grr`(~LVGuJs*`Ddfs&?4 zrpC9bF%4!ry;q)wKv37Ij;BT(FH7sr9@W~MfY2<{9-_t`&X~+Q+maN`Hk<2#q6xyZ z+SW9lypP3c#cp#iA&93MITL0THoe3p(QBn9tTgP>y!o65maeUuB|lg5-dRh6hGr3&j1Ykxvq zZgA7!N#Q|s2jwL4!sv)wO#D1^)9t4NNiRb#Pyw3FtZAZ@OReI~H076pT_-0}q7Nd5 zqX2zAAcDl@7w$6QQLVl-W1)?H#azZa+ieGG&mBIt^} zj{Z%tf;T6m?XH_MH)Q=wSFgW~OE{<%)TfAU^@hyKnzrPLA<}URkI&q^aRuWg294*F zZL~MHN!FZyRT~#^J6jE6WC*`?M!vS_+C0GpH){`#*7oR9qJMoX2gQ`5f5a1isiuNe zsTa-Kb7ejl#7s3K__ADWn*5MraM~(s5arge z?wd>(91vc=tn)7I!|Wg1w|Ko!_;m!)!8)%o-rf2F;}PvA9%DS`HMazxQ4_z^OD`Q) zu(jv5OI3G`Sc_{D3D%s@E3$CR`N7D-b_XlFagzvFT>DvmJ? zfZd}!UT{kzY!W%++V1K2)VwcMoA@=^dF64<{+@!f+bHWD| zg9p@@3{uO4>2*;&ZJfVQnEaQLrlvp%x^RCnHzS)P>F zOg_?$Kii2$7!A^}i5KJ_*LhmGM0Qk8NawahVO<{|f{APuf+@ z$_Yyi!#AdBK7RRPbv4B@F^E}4(uSifW0u_}vslF#4B6X)#%SfJJ*D}M^sc&IvrRTn z0t-=-HW+n2CCExj(}^Jo)shW{KFc5k?hgp>9T__M&-=_|YpU>)T~WN4X)lhO51*N} zp3jpmz8|ZxJE!9Lg#}XK_pI0hMlklcg6h)&Srhz zWRb*|h?r#;VdZ@a9Eiya_P_?oxrOsxrfBxin)0L0!C+DAkrm?Xr8?jeWL@$08nt&CGFi-CjV zEq@Xm8#Pw4+{s-msy_%cI$K=*)o(6oMw)?}g^sOcuZ*8kL6PSWo`-atxu$h{WoWlf zgIbko*CET7R`1%!@DU-VRLpA3$$jV$5Q})Wl znzhST2^uUTU4{05>V>>1dlmD@$@g@L+X{621MwD?sWgEU}rz=s4jmrPJM*;`vuo4nXKM+XhLJe zT7?4#E7h~5KENATb*#a$*p7ia%V^PbM$=j`LqnD$<|3mhKw>ei%eQ!^_b=WmR9CwV z&r_vrvuxb@iEjVUIKe4gU>W>!1RZj?@-z zU^PJdxBi}+l7sbkrPnPLaO6uk358Tbb$J zt^UjUkwOWigDlP;_^EEX)0?O0YA9A>v2hrqI@YqJcJVn!$WLi|1i*CUy46pz_I5U0 z1IJ-@pK3K5i`iD;vsORDgIF?cv+108G=lgtO$TC`?BzT>^~D!-b+yHxH1kRy42| z^iw4_K3K%=8rbd}Kptmn4q%V-`-6_%faWsVa_q`v>h>E#;m|)XoS4L_N>CB zZMtfqIXX*l=15L|!^?f@?qQV-GDcOHTlOB}c4gO#D5P5@x&A-2ol}rt-L|FEwr$&$ zwr$(C?MkE4wr$&HrES~n{Lg8{edzAE(f57Fdfe-qV~#OakT5)5=#?)EN)Q>OK0PSMu!K`~y{#{(>v$ z?yTXT_vwkg7+vilG0@Ow?IG2^vhK(X8=z~W_fcKC-;J_W$5gya{EF&Y+Ul=b<_=Rc zBn_av`pE8hxb6W@Jz-q-@ne4B;l7yg`>5$IkU6`PDqovY4PbM@4u&j_O$I;-iA~^} z?um#BX*t^WzDTjV4bBp;8&TqdgJ039gU44NYVuq;Bj}c2a0semu!k};o=j)ZXD;2B z+YnLW${x#$7y%sC`Yz;)lII|K7#3zKvv@1TSsX}Qr6F%bx1-I=H{zvox&v^k>z6#Y zqe!lFyD>{TQY&4-T-!q|y zYp-GI>K@E_Lv*^KFtoX}c})f9$^e$ovltfLbg5_W_G+|yVsrhEGQ+nmEH|`R-)ws? zxNTd6+Z_kmh8c7XtlLI~HFauVy)Yl~aNRThUC}sSI3NZv3U{nKQVeb91lKGxQo|mZ z+~6xd&c3w5X7TV$h^CjC0_Vf(Q?V69g`g%VD>a&NB|c%*rN(t^q}GHlWB#bl0@cJX zF@M+*&tAyWA86srT616=RR*ndCn1aD^~ZqSz^70Q0!RXqDa<61y5#Y7B{qN`!;=do zA2*Xpa;C4VNO%#$Khggg;AiKG242Ac0D$5CPnYZewP#4x!13RgX|(d@Py7$%d-KQ& zTQS1ol`0GnalVoC1(2vHH&IbZNGn6p9B|?%{%4c0DP3ZRX zhO)SDRDzM#jb4-ixvz+VMLQ-Rw*hfd1aTlZl-jYYd^bI`rI52`w;fDpAh3~6EG{+| zApo%tHo!)u!0>Dcvp|v6=G^co(;ox*1f#jCyg+L@O1Ba-uZMT^f$vJ!OOJpvIU_p@ zCv7H54tlU*;!TD}XR&I?dAclhX)iZa#MDcm?X+z2r8Kn2WqEP*Wb{x1wwQl*UMiIT zq?m>fLAP4AN2fSnC8}Jf;-D;o;|<+XHID*VHZA!y6AgmI%Pf`G8vW#QGCi45mzowM z$-+lqc&NcOJIeVk|B@qU`i}-Gdt4KBq(xWdaY~f)7G07!vkZW#fZK&+xRR2~JEM zS*vDUF->Z}P99=CaFf5<@y5|@tdKXtLrjRT5vq5V@?fzCm^?RJ9h)3itJy^j4pg@& zxH56U+zxPfdK?AlD~g>2$9n5@ERCnVs!(ya`mbaLXO<=n`$}OPBP3W$D6)Q$+D5xM z3Wts`_!BeY41Zz#QGAe$7u19KRKx}|d)`SPKt0ib&nVZ3(O|;LU^KSZUg9LIZ2*-P zBq>jTlpybugYJk@hIjVFW+?=nYk5~M?4fcu9x6`SJysK$h%j4DZQte6g z$X=LYp|N^_zV%9~N}zDir%?hijwlssLrmOq*Nf`AG)gGg5l8@s_$Yz<5~kfghMP&4 zDg3w%+ez*K|4pR2eoacZiHn zP@-*!n?RAPQj?5zwUDi7j1BaJCv+cgl0^*@RnjM*xg+|{;E=|82gB0d8wtdG0fl9&X}pJ9h12P}Mk*vWSQ#hVA0Zt$NZ+=~6HTCW$DL8bOjc#5DHO@R$5w(ZXZkN6Z zWEV3Ym3qDdj)OmVk2Q2#E3{OAq;jNkD!4Dvgw{Sc&zeNA{nWqyIZf5H8AGZGqF?T*5Fz!>^V+*(;< z&rVu6uE<9~XY8ftpPwS?7Ar^JkLSbcCl2txir!5ALvI`T|4r3&G;y+XaWpddclq1D z8{GcmA)Np3hq(Ta;v_vrJ!U-yI%8+!Lo6$&_2JuwS8BQ_Gm176($z~A1za;@9x`ha z308}e>XCg8K(QNRgpm!v{FV0at`0AF907SnrZiv5;bvibyY1`y2|KVLIIfg%iYRf7 zGIb8*3-dnY7e>_u$FU}TvvMj$T}hSNtb*HBx}aD=W)+BHmJDiIP8tP~vO^b@{)~-1 zBkl#k$sbf9G%_NDcpW-4cJ>}GWNX6a(l8MYR^K2sQ~=88UGR>V(j_4pMY##W<7G!VYd-*( zk^n0%X2jSxDH%9POFG=Mx3g>0hU2K?ROVd2|8toYL`Oed0&Lteu!Y*j0QPV%Map{e z;5qaHlq&JUTAO-Lx)xa}*bH_j1q(%2&&xc$lEqrE=y{hJ(8&m39)Vuz#bR3EkkZAA z6+8S1_wK>+dV04R{OSGhbU8ON|gtrz-0hTJowFB;? z@#j2MCOkB&Z%5^r6cmV?JRyPqfMYiYmEL|))ezk1cC}nA{ z1jLS}aXmqw+e;%#`c2&a*3>`nwvXr?#p_-d=a^BWK=)+*f@} zMBF(g;WZ|nFJiZQUVOjhE?&RBa=_oggFdfUzU~Ktf(FpHKNC=qF6#B=#`bPN3Y3OV z*b?VpBa%ZO%20*7pch#u;{Vd*r=g^u8#kX7oGYjXQ~at#02>%GU}5VxY!fSC0HO(X znG{XL$QkxJJ$*gRScn`8-F2NjyBz8Wb31P`n@&0m#fwhk83)isOb$q1Ik)(m zpfx&N*0cHo{mDE0Ei1r;ktKRIjv~YRFT`|JY8bfGy(3u!Yg2$svG&mx`C7KZX%<{$ zc(Mf)d#2T+zbAbmNW^wKRJ@RAm{J{rh~-jZSXnf@qQGB>gQ>izd<&~5@g|H|NDvav zCIF^Y6&5qNGuM28CgTMD>0CsTi4 z&9SWquzfe|V;SVjbJiTTc1`F{)Kf%Gqbi&@39noTOCM&u{MlWcv5i(?sJ#_V&;wTh@vrpxRVk zpEeS#ao@Dliq%JmwP4rL=47_XW~@7PMF;8^D}MoUKh?71B!}*y0d9YLs~|^wpXDA&{PWLiL=L z*kP0$5(s6TMTk*&uPjU#TxlblI zqixePf4|VUsL7y|EOwDO#(<=Es;9l zd^L97Iy}EL$GPoBOuS4)Ef-rc2h-gv^+9U060Us!WThOao4Ke!A)i1<;rQAVp>rq% zx39S@~QOVSD{6J2w6KcLXwpg>KZS2eMUuZ7N9=?#z%24KquUid9Y za?yZ!>K{lEjxD=gstf-&C<5-vR+ipsi1@amA?Vu}&X?%Yz*^CXELJ8WmJeF2TYHYypuDD&nW={B6ckWD7NTA)CjAu<5&ljturq1hs6(Umg@#;-OVv zYoYD5mZCI&qzms~M%&>-<3h^IYKT_l@pfc+M;L?Q9e%NaoCk3yzaGL6Q*=2O&M&|f zivzQtH<84Q9;Xf=L}Hs>Rfp0Cy6-6p-3U{;r~R7QmceWe~|7A zk+j6a>;X-OOsqjce94A&BADhMpl@U$?B8RjKNR*|V>Ic5Jh>ALpYw^<;^MV4b;dF; z3YMYfFj7Z;242bM{M?~hMZ)>mjFka!%q5_3)rQfHS6?^y*w=USYTsiD&(&Nh?`{(Y zx9BufhA!Xa^1$T?;nbYfO9=-(VswRZ=~d7JbI z+>SB#)lOGyU`I2*c=+fl^7wJ0D-2{^KY`oQL2FL4U}->~`};(fr>07`v{hCzcx!%l z)oZVqI1CMz7|Cn1rEai)u`#~>_7Ip7TL4db1VVYEXI?0-3eyXhX0$DS1^d}%mU_v} zy46+yJ?6>6mk=2%see<8{^W{ZL%AAt;H&7W|BbyMz(a?g4w|Fp=*c#6d+r+LC^W>2 zHtdB+tD{VSEIJHR5YN1^1O;Q8hxJ`xb|ChVXhx31l#D@MjUj6rx4z^X3>2qdPqXH8 zM2t$rT>cTBN1Bf3!q{P%KsxKsZJ~_n{F0a(2saU4ytjvQwzLv`Q}~l6@%Yog3Dz%_ zev~dGU(r(cx_(%*&~da^mRz>}GN)15+}}8F8XwN||Vw;hhwIaDwI%i-a zR*T#52S=8!S^ABHC0>}WMN#oDdZJtF6t5JKchp}cu|)6XB4k%+Iq4JaYeZJTU(o-| z6{W*eITb%e(m$QC|C{&n|I7ksC!s8bD?_=P5e&vD5fQ@%CWDbWzwu^THPE$GDk+ zPg~qssPGy_mM7a$%QYNS!=R6V8p0Z^VPR*_c1v~WvsDRHd>OL>drF4vRpK_i9Du}@ zTf2DNHRe8TTzTF6g{b!Ra+PPsVwxNzsj&B^I&L3VY2%KmimcHJ-l z>I6|7)X7)yl2^zF7lFuoD81c7M19#LA&O(h^jEm$-goLdI#WHt5QvB9N(3t~=WnY8 zWmg|h%r#n~J!@*;OsPUogt+0z#yb|=x)ley+FdsRi!l+S${zD5riGFtxB%4+?J}_2 z2D2&0h$U(w;`Q@$8n>mzCkbK)4rN&wWT0R!Y+^Q~+9wznw0e~$q;EWb`7nR`G8_~Z zmH;In45VgEVZ`hnFe{rK{O#}6617HyA~0ALya`;f6IsJeJy~We(G}TJ1E_%Jd1>3z z(}wi$eo{uF7?8d~gk-uC4L@qPKcWB6Xg zx_ipbtq=RWdfl`6?Ro>={0rlwjtj#Te7m-9tIyuO_Irv?oraJO(n}KYw;Y~xImTr= z^IBU$5uu+YsKzx?6B0*6x=CZ4pc5|56&D0gc|_b{=up3YJA2HqY752P1&XQvq5Pq> zaKx(xx1?A}!LNdbQ_UUMqxkl{xqG@kz%+Tw8*r9781Zux zQ$_zIHLMB@RVu^9X6H7ivj`40E)Q#dQiicY?&@>nu54tqujV%ae06}q`*(T98WDgq zaCry*j>!X^0b*Y=5fsDEi~tjP|1zL85~7j=x|3Dbuk!%vW>SMMrwixZooJQ#v9+4k zqm~U2O~Fey{Kj(Uzx?gs5UI1OH2_rDE9NBL^gt&ldu0`sA(Bx;-jwR6K|m*10pPtF zwUlTA^Vmw7r%m<0F5XZ+JN(0p#OTdvazcN{ELS><^q0zP~v>w6yF`%sDWd#D~Qaxvf4Bo9m$Q*n%357eMgH28ze8_ise{O;CuRWad=dfX76Wu(|b=x%Q3xLuL!AY1D+0IiJVvvr~QO zrD49IR0J=O*)S!@qRq|5Qc6D%tNQeQCKBsO9T<8&?w{_fCRkLz&1T7^qv1UH$VlY~ zu=QczZc}Opm8H(0Qh{viBBqxqVtyq9F2}v68<9TS{%G|~pI;$9B~3`p1-kMw(QrQW z7E7vfB9*D+3KHO_^7tFDT|fsx_D`^ z2_B#q`SvM5gzal2dQvvMT{x}bHRdYoR&b~S*;08kt%Os_{Z3atv+8H1ZNZRl+wtdy zj25ag+)GBk-H<7&Xkt@h!O&x&1}A&OHL@^TQs)(jlQVgqQ3*A};$T)cl5^g8B!Z3S z86Kl4RnpT~J5eQIay*R7uf!2qGOLqQ&p2XxDD&40ner+IMCc@}vZOl9|7knMoH6eN zVqRxXB^2&RIFB?5*$!KgA(cnSqqW>pR-&s@!<}2hx#@!5h^eS#3@d#VVOU@)pV8;5w(&oKYxcmEq9b>TP2?QAEKu&(1gxsLUGK zSv74!I?5NgGaLC#AeV!nPn=DYS&b5F3abF@BzT#e-RG0lSf-6QyncVF8_$k-sQ-W=Q zq0+(9KDW%ix35$a1>wv}1d!gA5=y+DbvK^E_r)1Xf^8|7O5>_mrl{cYVC?o}&(YbL z9T&HuC9ax&{CrmFGX=&CE%11to1Qi3=(51&=(vm{Xhz-HcLB3K87OEN2ZI}^GsrRD zn#d#fln1VL0NkI;8mt;Ipd63k3qGFfBXC0xvTZ>001iK3W7qWn&hMv60+0Vnm)VhU z@y!X)?HbzNk96mX70B%xv3GMFZlfy)e&Z9|zoW-M6(Ia{Z=&|bFJ|LY^x%pQsO^0{ zzM}`V4HU`F=w&#vGXQeAJb@m)@yx#G*raO{yrkTr)w0B=C*Lz}} zwyD&6I#N$T&sa|AVGTuq)xO8!A(rxdSiN8=Fpp$jmC>t9-rE?K`<}`z!`~dLjF4WR zX`jry4&bMU?HzyMmprk|?=rrOAnX^xMAul!pI+kCFAtlWqTgyAu;B22A7+cXFxzD- zw7k95af*4U->U?|AHi#_kZ9Tb1me$UoGO4$tMH#&aX)7b(8n>tuPeG696ky5ACL#s zWc%)OZVvSvQoN1NYwXMD{(f- z(x?6h^5XKo#j69n`=fBdq7E7}axyF!H3Aj7FO(y8cSd+B0(ChstAa_&ols>ME;Qj@ z2n;{OlnPneqFGt9QN6NWaALjQpR4R}579595%y66G?ALf@Ji8!Q8z})yZ^Jk4(!ztc_|1f`GnF`qt^M8~M6`KznY@8d= zsQrOJ>sBga&NZ!Y63Fm@)s`RLDP1-M7e{O}o7>G<0sdir@Z_?c+)|c}fwdxmQMXYus#-+hfPC}HvWauA@GO4*zPhE-3$VL0 zGm5j+HnM9<(E#S<__w0v&FLlZJ_iNzy_P)VA$1hGNQfcqo*EWT=G6LRtA5K;pyKO4 z%)j&x^Bc|C_YWt8b>YblC%8uXFlYO^Ji3l|V{UE0(3kAb1?z0qE>ui3+&X*z*dV4? zZ+=?T&R^~-r$F2x3&Y;E3!ZZGh2bMW1Wy(Ahlr_e8pcFu%$UFm>OIDe1E>CG&0+=; zp?gxoiq82vN zsg*3aEfbR|N>chmAZ|poO^#jw^HK+s@q(8Bs0dmWpl+q3YV`3Oe-`89TX{H>oB9CmQQA%azn zU|o(f7mA&~V`wp&pefMY0iqL$IW)nfDW2CBgAQ*KjH4nnYCFJWz#xMoW>le>?&%5@ zZ^u#T#FpRN$%2hV(mi1uJb5w7v|^X<%_BFk~AcT+2q1lO1^sOK~G*+Xr^vDc{Rg*2_hL0 zx&~5f%(k{(l-peQuVWK5Vi0;OQ(lKLv{y9ta((N9poX5_1xTI{0$}B{UVj_dGrr-? zB2;S&BV%Qc)Jid<9d z97{w%j`E#$y5^v`h>L7d4otkbMRVo_pCO|38Ozr`V?jv0g<(e$-i+y6oRz+GA{Ae) z+ut%)VSoN+t??WAG!NXWM28C7{s8QmG)i-Kz48!ui0S!8b^iKK2Amxsx{7Lr(_A=g zT#*K6JUHEuxXqtVNS*};Ta)(NB9h?(x$R#Fo129U`K07Z3D0USGwVguBr-JZ!f12h z`@w844=M8qyxAF2m2bh!KTSwyi~X{x33#uZr?i$;DWF3A0-5NhEfqYx6*UYRD>CDu zWiZ^z9Re1&L=^miSC%I-sbVTIC$=+L8OOZ5&}N&G4@9ay-M}9Pg;NIxUk{Abec6Z$ z>bKt5R0!LgCl4Jd7y-60>}zF0?Vz>X8J#PT%>a>flTiXtJnnojc-dK$8(*76yzy!Y zHC5b%YE)>n?Qysw+qgh(6dg#5&Vc_FK%MPcx@+U~4FeN(lFO72^V+@Zm%|Vor zeCus*Ys|ugpMIs}sXe@42q$P>Qqjs^#fQR*?2P4fIx*SQ?cuZj+NOgn;aL)ZL-r6v zFaxzqhy#@{Kxt{Gi;W1=aN8Z=I%S>mE8yh}q|Sh`SRa+74Qw?TGFENdBsIPflq#Kt zuI@Vhp|p7!xGBdrlgm%v!Rp$Tw!r~d2nr&S@N$T&#@=fO0^Cp;^ACRX%nt|uAaJ%q ztGjfKww(mfK1pjC0}Yr-Yghov8+f*PjWj_wih5JiB7quzRO-@6EJY-sa@0xmQrzgn z{8|(SumOXzkeWSXXo`S@o>zkV%;AON^Ytw^xdsP+_1jRF!c$+x>h#1*^=VwiUNoFYGPKu(*L2{Wd9JR`Q8Xh@4}0X*m;~#)zlBo8Qiqokn!i5_GSpa5N9AErh#UL!M0^q8G03`42FJCG*ffk!HF4Ho zsj%%cg={(eym%-18CZaTFf!42qsVsFFk``Gl&5@U8AHvX3J`5oEd8)LwbE2qS?3u@kTZ5QW0OW& z1~EDNrYN+0aiyjacEKoZDuDf1RU~r_0z^#l8^z_2qLw$@r+ba2C7vE6k!qvE4C|&B zyWUc$h=6M2w-tB65!7Uq>8xN_Del8ic|RY&vyBqaBZ8~QR0dT<)nobsBCd+-)h9q^ zy5vqv2;GnycKE-@H@mx{1Yzrkd?kL!_m?qsF-2l}F-ldeoh`aE zX2iRh_|zr;8%R}_WhHt)0Tzj$^9G;SQ`C(hq|RERjTV)B35gCwrEg{uTCI}@IKfXN zMN<5eIm|)-6_AkdtdY#xOopY)aL-w#lbj$%=It)Cfl&I969m5MaeR}zK?C&_$CLbJ z@70U~ef<|nMj86j3Jd#er9*GGc^3u2VoLAGV1D6f3(dWAZ=gVmyiw}5p8>0(I0>tKLh4$4G@3j%O zu}@C$?9S&H`%Kg#xQAQQ)jFc4byB>BE%SXxjq_@JB_+l<qTF(Z)>64Ot%3u;xzE zt-pcmGcHXxQS=!I)Kl`Ezy}MhCkwD_>ZHJBUZ{pDx`-->dm;lB9rH*JWsO%EK;B)c zTl6Mm(tyBz%xw(X!)Gw_4GPB|fbZG&dVP6~YW_hL>`E_r>-U9wnoPaSEVw+(_>ipX z_R?L;$@gA)RSwp+Zl~QsqRIXhMTD)p^KT1&bhhz`-j5kZlj6SsV*ll2xzzl$TOY>! z((xNoftBYpl+tJGg zuO6n}JlgSm@6i+E@u|_XjcCTHSf)}(!K5&m#6E5kthaBiNmHb-$3nfJj>ai9v^4kP zthH0YL?o3o8l`S5>LQ$26f(DL62KK+Kz=Yu(IjtS;1-NQJv2B&Pgby>mwF}~uCCPr z*_qOw>Q*bLRW~^a&In3~Ig-9IE_{OW3r!ZHz;u3)Gb_N#*Y3euH_SSX%IKJL`!o#l zlz|u4QC%#FLvY|(;}q5WQ|c4d3@GK^Mp?s2Al-4Ee;r6cZ{XbMU}^DjZ= z6;Tp80x}cro$v&UVv;PX&&qBWdAtrfQU&QbLA`}jTAWA;@k=_oh%Y+^P09rBSpJo< zDH}vO?6m&G{cWw>p6g%-i^5VrZ%^V{Z}IZ8;1L4ZpJfEbc&R&duMi*DCn;dyl7{Ts zt<@~ll0{djKLXoFKh6~lSME-c{hS}s!b3*M6KsdB^{gV}$Xjjh9uU}cqI1sI}WaOv`*CzP^Ufvy4 z2I>x(MM^x>(L%eF8@l@@vAF(Le<0IHR{xZJJYJ@?x+t3?cEW&Q8l-A3l8ktjNGp~o zC=SbBTZlG_S0qI4kG)Ui$wU4|A?Sy${wrNl`IMZAHqL+>dbvq-8lf%{?u^q6pXFb} z2VF>!{|0+Yx7`JpjdRof*|)RH&43Y?71J;jX#M8E)yEXnchh-(>dC)73O|oh4|z5k zk3A@24c-!PG~>m0eYK&Q;gb@&5jGrR(=hUDx5)+T!MZ z^LJagd^cXZQ(w+)WqB{Q=QGgC$)VU*g(!3yQgsm}%QMll-OBY+m3JXo$B3yA9{-k_ zKp%iz(5WhlW$vR}4CCk_!r4HioMtEs3dlZP`VT){fxIJ%Dy5c+eC|5H^X}@+<&AfJ zKtPqoADxKn<%vsFSc$#}kIG`s5SE?rOcB1gK}7vB^degSSpt?KAxRJE((@&i zVGZ=jgw=9w*!bK(w8rgp2@Rf2waqOF@Sr9!=4IK$L)zP=5O-puItVq5DxZ*Z%zvrE zDHCM#uoO9t7186Ylg7cgCOh+W>cA|-WJI+wbi+4{N2NnlpX3W21Ngd_K_1R%{Or*|Zr8al1rjvG(wqM7CV6CC{x- zG|T~WsoL~33pMuEKlPE(6}=#5$GlR`l18Em=L-TefUx7wmWEr*wQ$-3*b?Vj`5KBgNSkf42L!HYA{I{5#C*E0XLk>H50uhcWlrHScGFt@26ckS;ORQtkB4s`v;t+PX1z zZ~5ww`Yx5HlQU=#F)KH;gxyrtAnidF{grqSnVxAk>bW=?V#XjJ{<@QGr&}Q2lth@X z{W^r6ORsjPs;dVOFLkN#I&nCS(*u02pOdh>LMn)_z zII^hSmTI0j3_(WPo|M-F=wvaOKyn^70uw7)9)HLU*?COXf@LOPE**pCOBbCk9Z^C# zA*sP5S9tXy`VR}?JPlxxI^8i2xkdr+?|JPbl2z*6G8Es|x^6uMS&3ypx1Fx6?v8H9ZlJgK2uZNFe74x&y6It`8w=BFob!EGTzi3c z8StXz9O`pLq?>C&@RkVUSgl6NqA8FXCmVsoa@_WGI=joV<6JqcrHzHW80$m`P9A{T zH}FkPnq=l8Dr>TpjmD_vb;3++VN&di#;GyloV?2NAzA_9wnwc`csEXD3~R}vA%j!x z{1BWiwfN52_x78vpRMl+Zbid|-X(j?{+D+Jsyo{A_3hY4xZ7V2u7&~0oDypmm@0{( zGbn|O&XR(xHyA>-d)XD1QMJ?NQHJoqNkPG!z?I?(2Misr)_qL3M%%iKSonb4_;{^B z0aT%!=N#!mkQ`W9Cp9;7bUqhzBfLI1AD+}xPZLRlmu||Z2e-vdk_fR&T_0np^+O(V z6p6F-RkEVu(3nJ6FXVu{rCyF0S;>e`n`OI=&2GebmFa5IMY6NM;3z@P2KiD3K`xBb zPy!}2^Wpj~!MOIQeC}@BMi_Gg2th*5i^^-&jmAY}U!jhE0cSZuf>^SctTLHcsxZ}5 zF1DVZM?Zpsn=6+q*a|}Fl7( z=L?(blEd&(jk@9qp6mLCjk;VKnD z^zG+=(kFz#;|>;P+bv+#$yET%#H6!t&X)Rq`;Q zSICDjTc(=`{Tw5|b-QhCL|y(I#NfuM6n&c^cUx%*CCqd~Nc_?AR&MJv9vsqBwM`jZ zfX1Z;kkcgx?cqkD`vDBbJ_w)l@a=Tpm7doUKitEZ+tWW02&+^r8eV2%YL#}83^#pl za2Huzrukyq?YXjZLhxp1-1bTqw4Fg+n>+Lk^pBTedXYG}>ZcQr^S{E&z@YbUWmCh; zj<^N!TQ4VY6$jxxza%R^+)F06!9=)9&Xrb2@fQT#10Cs{F72;_YLli@x9iEcjo*!& zT>M(-Cy-`2O;XeMzv%C#%(7%7bw=e$M1^UTXtbc%q&*8@uBlRVkQWuFthER<)c1|(7BWZa?(KjMc#~T+}cY5QWCp}Vp~R!FMgO17*2LI#2tYVTSE;)Rk4xE5DKcf5*sBuArz+&wGa{g zm6ZYkh9J{rYAnFfpJCr!9D)*`cdG&HcVqsB)`CLNT%#Z$b=f)MyXP{a^V$;gL!MM#%I z6ibyq&c!r#mMmkV8lwn-Y%Zcp!`Zk6w-uyaxabhlX3CtR8(uj36I=sA%~xVJuo~y% z%kwtze*1V*IfTWFurQqXp50(VT3;05i;UiJ2sJ-4&g~Ydq1?l3CPktcFKlWx@v`}M z$bBY;%PE_jaL+lAtn^wRHkHDs78+{$3&gJE0nHm4qHGUvoMaK%xh0Z}LRw;p5oz9O zw-5I@NOt;OwxyksSL z%4`$FT_~|o$KkfkRmfeOC1`EX6xf;&qJf`j%N^0mHMOPDufy$t07vur zUk^8ERKiNI{No{d+E3s0$t@q{`S+fxvz%Kpgwt5beD<`6L^2c4%4@N&^Q*cBAFZV! zPk)|>a=r5wXZ?$*>ZIlj_18!eoR%5eb<@2;PSxoC7!pFwn!r8@_k$09OEnvbdTU61 zX`R+fENBX&m*>NvF{h!xrpNfSnOHe!sT4+s38pi+9NuJ%_&3fYiHEQ6$_h9cWGK7; z_~G9)D_9ykvgeX9Y~FO2I5N-Wm89aj4VO&=6;Y(i`qj zNZ-c=ew*16Fjfyd3R-s>m=)<`<7mp)20E3|xy~IZSYScR>Eu=$HLLW7VY1bCB15M0 z5EzUwun?k5qze>-iuFb{_a@U>9i50u>r1_sSWDUWjP>E9;??d_4fv6#LS-+8x9RA9 zEP^|Te8jE~2cnm#|0-j-KTK|H@k-G#N-sI{Xv*Hy}qwyG49897J=1-L|+$B-x4+d`EMC3@mw42}29C$y@{<^t>^+&Vo;# zQoJ_a9~E*@IJH5$nIP??>3kR>S`Hu^%$I8topEt(dJaW0t{~6h6V-chL=X7GCAcTX zFGSM$r9HWIGlnROdvhNRa&L?&jkhD0jr|%k1gX)wJb|zf6ciEmMGWw22n;urTszFi zYyKDgrH%xJ%Y8jZ3S(m$F-!o{EjT!k>nwp+?Z)gd3XU9(%o z!Xsm-3n)(WS1R1QV0b=!3pU=W3MN1aFsWP_j=pIieFoo{BvV?_np) zB>sGTI9z`S>r>IIRQMO3)`2IKxUt-9i>*Xx>*S@(n0pFxrx6rNR??arrmV=E7Qy-0 zxB@q|h78MtSM-p&9GE{pp|)z8%3Eg`gJkoo-Xle!(DG^HYWp_z{y%CUbJgHJ6e_Y5 zXKfX6fFds-b16X-t38nUUqcf@&a*HI#DXe0i{C*QxZeFIk%rE-@C89X=!eH@gtAfg zt%bnz1~P{pax%vohSvok?1t#sSuzU@3b0!u`TY$rx9@|%;|myewdJaE)pp|#Bcs*^ zdGmXC=p&(Z;yZD_FTB2R!~eID0>^sOZLaxPD;Gjsxb`8nSI!9jsa<`Y!H^DKDwjss z_=`-5yQng#Am&LN;)hy~+IluqU;lQJ8p2oU5DlpRjP;)=zU*4HZvf!TUU(gt52t4= z+5M?JS9F+{lpd`WMiU-MXG&%bsS0pzGy30S^yS5tI~`t1bpvyP58I=T&wD{vt)R8N z{~i1`OB?Cpf57jG`2VB@{wH&7O#dU-X7Q72d;H0@vHg>4<2Ek&*=Q$3RT}lHCMzen zo_TU-qt=3`fz?gY5kyqIZ@+J?14|(!CQ29UMbyzEdcR+Jecn~{&`$Y$2)jSMjn zjEp*0M#GfXscxD)B2}soG-pnkF!(K_5IUB2JfL1Fj7Z{LLq*O{QlTV}(*;Z;zCU!6 zJMe^%f8Kq5^&L{Rdl6WpkteB&iAad%7OtM$OLo(!e)I=D9D)h-Blq_+Tu3_|2fx#w zfHDo3VfWQj2G1jtHg23~)r!Ay$Q43G4e=?~&T#FWshMzbn{ZxQ2mKhcGxSM|xeMp4 z`%?O3yUV?X(`x4Q^-!x=qctoPt)p*~>_%>EQHtkdPGEP#0J)U9wO4b&(d0T$XXZ@V z4_p_=w+|%~ElN-Ka~Z$H&=+n`gLS$MMpDqp_fKE$fOxa&3L>8`?DiuQc#(5SbBV5! zvD(1VNG;_H^(C)av$;J%ec7bqN7JPFONlDn$<&K&L+EBHlLhGu1*oy~=`Q{8X^bU) ze(t1Lu3$mA5jb#32eWJAf3qnhG zJn#E%+um+BqS z3gxN@&UA8Z)nh765vPh~waM>Y@O5JAiGLKraU;0o$iX=iviLlE^Dtqs}o2VYpW zq~vDg^m25iTVPsJ4$sn$XWkxQGd-KXg=h$&Fv3a<$)I<@%mvH)dV0e}__gV&lmfLp ziWwsfiiw1EpwSZ-j3@I}p_>7d`AL-S^2d<52zd#%XZn%`07s*K5dpFxkJ9vtmPLxhXgHFa2hu8ISkmfNi+uIT;nNQ zJS_36lb>LeO({YeGu+@3?>gB~j3ChKfK_Q2R_;Le{j_P#aycT|_hZTUKm@L*o)jLB z`x?xolx}mVqX{iQz=qe4sYTlpj<-qvY9k1~irn_UfV!LMZ?spdPVqN}>{*)nEh2$& zc?yv+X87s<-)MWs=t|o}Yd5xS+qPY?om6bwRk7`)l8TcRR&3k0ZQCbr_ul>O?yvXW z=j6#9cBOFum~2JI7Al zIR2AnkzVw(w^<#rpG{Act9{6eLyGksk5+Yp z7o2h)u4c3BIV6*HQm30G5$f@pnSs3f=j(R zr(805rEpqTxF>M=XiVMS>wIF~SD<^TsEgcu2thn%SSx)BMKe>_a|G;oJvVpu<~s+u z(a01GA2b4PS_cz5&VG%(1u+NIx`7{^wTs=+(e9s}PEa*fCeW(meRdZYTYg+41Pq7u z6+#ZD*ie|j@e3~4a_yejpKbfvd8js!#@1|HD%|rlaA26`iWDLV558p~*R}u{*a#Tl zaddLcNqAj5G;&;_$|NmhqWDf?>uJnY(vwvhFD6#hxF%YiSzPO6Ebi)TCFyCBt0m5E z8}dqH$Co3{Axa$p%*Q_WlS&0rU*CC%nDFT33+aSkMvsGqcxd`Gs@0$A;z?KO{(Y#L zQnlo9eu}Y-DzL$MD1_-8H=WlZiIiFa5V!wxG!ljE2T-p{vP^a=31R^*Um}U z09n5u1zFsjzg?6*@Z@D!rDavl9~dWE=raZ<{dxY&=MvOGJ3^;=Rq5+MOG)MUG@Pvc zB8L3pw<#RYDX?`_$CUY;+cVBJP9~RI2MK?O`DY4~is^NdV}{9>PCu2FQdegyMQf z9S~uT%T$CTLp>9@3RcqUvV)m83@~V~z4CM+@vjVz0U*BXEWN4c5P}^bk(kBMo$k(t z=D{0SzbFe~^wjXpZXvai8{p7^D{u4j?P9yC5Sh6{tot85fOe)aJ((*t`GG3qqw$Te zCIrjvX3Tc{O5k|(0+O{|J{JYhURNX6T8z&wYRo=5_HD_S9A-m_$Azvi1Ub^3$H;@h zta$DjU?J*N{%Zc&CxS)dxM~w!2*rTK$*O$?E@klP%=qJG584wl*xnSh&OY~NR)h!f z;+<$o-9`Gajzc=uurjt~#M=*i1RZx5N z;&=|0rM9n#D!-DT!Fz}IRJ|4XG@x;Q35;tKI>KqP|7t!?j;s>#NWJLaC~e;Vs(V!|}#n&iTJ25P6Cs1A)=b7zCSa-{-sui>)l^XDdCMN3r6>cp>`Ui81S07@ z>bXBwoncHcJkist4%3j5^zBd}kD@GrWn+x$-jE;*7yTr>yV}TA)F6knkY{0HkL<=` zzOQ_1b{YEi^I)cmo9#6b))KbQS4R?5A{KF07P7JynP;;0usMuluI}KWDjUK3|z+o*E<-kS0f{~x%Hw}JegG#s%ry*6KX0#m&z z-lf&mZ0LsvMHNY_YN3ja3hJ5hjg6!7QzqVG`LpAt>RA?c??r;u;^HqBSRw2gy`UX^ z*>&{l((W*4{HXcdQP`|De|_DA&%QwXcuG3&B2Po4*d0>7O@R9~!~BS}xdl*?XXz6J*PA?V{F2r0kO{nc<$ z@K?hH8pP!s>sP~t${HNmPdu4#69dry*>K@MTKu047o~w}uc*JD**U{g;x^U;X`(l9 z!j8c3N$a6${P(~+jLCc|;rFq23T3j{Wunl1h&AtsfW0K;LF6^_0f@r7xTsloy334b z&nWl2kfTPbIJv}<9M7f53}W0G$2^!pQ@+=@ae6{0T4@*;Bdg>@T0K>+n}$j#65c#L zW;L3E24%8B-Ju|VerEVTe?~Tm^Jyk)I4hL{;B8oTSsn$ZAEIO~T{I=@WL3Jhb;}^< zyot#b-xk2b@K{8CMHEsg*A|J%y7C{S=_It<@5lsWY%SVj~z}b zb?uApm-5KazQS6Xz#(;YY}j*Ooq)6P4X;}SF?MYb@2!piH{~y#V~9S0K_Q3|r)=<= zwRW$xyM`X%0B7J9b)#~Uofrv9=~{ssQK68!M1apq`K+NvRtZtx`sT3IwG|AQrb_h{ zg{_u2V*Ojg#X+>d1oht!A1^ z5U7dYr-O@vzMzuQgvuOuo9l4Av)_fFXzOhN5rE9AFW~x_@U76&US+`po5!dVphNPS z18?`AFmMj{Utqw-_CH|2tLiTp02zXR{!bV<{3jT&Oa8AgAQ!rd@fQq4|G$O-{C~he z<3GW`qRT;~F2mwqF!1N|?=XOTOwG00pY`9uK;ah*kp34Ku&!SJcQCNAdsRpKcNlOy zy{|Ogi~M~ZWd(J$ktHmTrk6RkW+AI11}_reVL=9z?-^r%You?`Js^+JTormI{2I6J zBaqaBLYOHYqTG$ZHuk-{w?o8#&9_Ef;^;N*<${I_%=3rnIn##93Uo<-_XYoK-I!U0 zJ?%a89((-~kK}C14|QJIB;>{S-smNpAZA_63hu9xjH#Qym1GoNFAraM$I;lED98Yt z;}R}3@WT18=SZV#H{F~fi296k_r(RFl&FIn!tRH~8CXc#RBnzM|JaCM6vu7ac zzyc%PY@GP%sx@gt4{b&1(KSE1iU{9XP_hUlA`(txDjwc4T=`gZZZ&6UxiAovFR8? z2f@zY!x8uZqilSxjS}*EiERjP>nsDE>rfdKljskzzfaLuc$?ke=u$}3s7kDy^G*fV zK!HvTBt!xI*zAh`MqEPF?7X~iuh9PH zaMr5d#SPN-$IXN?D!#{k?RO-VT29e{fQ50e#HyTnh>)Q;P(ac3v7f9UC4-wxS!J zBt=o$)+96tw2*EgUrQa0=HHrR+yLb27P*uf2qicd04POA$ycl*;I|NVF085zL*~Hs z$nsgDZgBj2T}fYP2xUc7jmx4F6imTcO2|HW@iZ_VG!UtB&QU9D@Oo+-8^)kR|`GR|@~SNyhoV zIdcE8Nv7)QVEQk+Wc3=*9;)-`U)y=+0I{7sGlmID(hIU@BY}#OqZod zG}t2@ZGFu0zGyyt`)oekc-$-YCIDeliEw4xX29R&;MsV?}ASQk3@@zNm#Ze#UnChC*~o4K zF37vJi=ZFu1*8&>COm_spk)*JnTV(#5qtR-=_UP2x zJ-wNE+L0ooZB~z{C;t$Qur-Xg_5#C$i?$L|B6w{goxMy;kN)>`^w#vTTo>N3KiFtd zwV}NSFIPZ=B`GV|MDov$Ffx4Iam{2%HxhjE_wKH6cZ(dkR5x0qgA%)XI~G%LuFpNP z@nV;3ZAII^1K?H%i{|}_<|7aS>Ix-VDPyn_j>diov%psk=9J#fhEqd221uK=qQCt@ zZk-l%S49DY{ODJ%64^{HsM#Bk0$i7PF_F~K$7e{M?xH?w`e+SBoG%QS zVWAdR!1ZyI^A>3tH+Yu6?_1RKIa5{ww&mdMuko;AvOR_)$m}rtxM%jxkM7bz*M=3X z8LQu}okv40N`e`NBhrfJg=^<=D<8mgz$=^SJEYVWGePvaF=`jemc|v-!_7;A;eSOt zYcj&M!Q*h<5TU1-_IGt&$Ao-hJuz;uUkSERV)2T3sw{lkZ~6KdY>E1qY#I9$Y@>qy zE^U}JATpAQC~)$0{G&<5$$^zXAx}QtWS+c-BC2cku$nMIUqGgTlP43BFeTw865y;h z%ti)#iIqTacb_5Jgp#N*?EEcI{hR2zPJ@9x*CBw=x%> z-_e+X(s^BCo)h``lBMBldcm+#2p)YR_+a#t%R<3WoUzFWP!o3>!9+@vkcxuvpxL8GTLW-veZ%$Yh*Q->GxCtF zB;rVkgh&w|@n}6HmgDI+1Eww}o$>nxwaS=dAxp6>d0inr8rdJ-9``?)S93}^7A7nj zE*0wrR?S{$5>^-iMp6B0-x$Qaq?A^wmI|1xq}}8kJl~btnZ?MCp|dYY@81V70BT>W zLdKGmyp3UwA;H2)-tBVp!G6y55s})N2{`j6v{vcT?<&%fry-N6z^2-i=l4aM)}_1? zOpg&yBZ7`kv^=*PxTVY*uJx0TWzh>(o)ayXcP?%jejW0HOTi2sRBB{LtC?P!z8YLe zav7Qph;53+^)#O-nqk@$<>39aA+ATabH$prJ6Zj>5rXFlP6|IGLLeI!W<{*mlI0WZ zfca@R6zeBZVUSY;eS{2A1V1u}G(*s$2C*&7K4twBini!FZgUI-Ls_z`e6mLySsHpc zDheQ-stUcbUr_3U#1#pLLn?p})vM(sVYNvUSC@76uSry<6f|Uw z8~JW(3uk_th>tL~GZc=;9j<<;xiB~t(ES6|c7aE$t|g-)^%F<=7dy^^W@KeO=04yw z2ic&4j$t{L!;)$}Hflzn3&&09Qas~C&fTTA8FS@kj-Y7-e^%y(T8dFYB|6&)GDa;c zD!~rR-N4CDo0H`>&h@qe3-h?uz8OB`mJuwb$ruwvE;R;+ccs2v;Hkwm~bNq~UMlrnT@`8$-R$Cw0Vhsky=2TJn^IC9OO zdy*)IGVq%C7w8+d@>vJ}TTwa+n$v1SDVm#*+`MR+MrRXxNguczV=~q9!QjyJh-pXF zsA%Q*&B*IOKvUR)w;(uNFmbCjyCFinRnO(n^c2I|f!);fhm^?n?niON4B@)fWo zg&C4()Wf7|b2!uJwC5JH)(v!l2aS%4eY;(lM-&qgu0#Xl&1}hp{y4Siecb08-H zm>6NFJS{`xhI+&w^dv0N7^}qRH>9eYBGkYCuBz)#8(OeaVp!r4AtN{*Z_af?2kK!* zrmEYW#M`Edhc79vloUbTPDLQwFLU>3%5x2~?VFsiDAj*jumi7rP2uksiPYJ9v|);N zNyvh(L9XcNDu}+gwE~51ZK>^|sgim-L>)dIUsyCaOHAz`Me{3@PyYJg9kO3bP!( zfxZkZRBI#IathS%-wbxjI8g7wOi(KcBf`@o!nJyt96{34#(_qL#lX|kcu^=g3~#rM zcb>Q?%vNQ`>e7bJy1xacYl=~vU=JCwObb!q4EHIsOp8&Z#D}vE_rb6@UJ$ch*Mm_s z+_5@>Hb?+9r=|G3|2eU~v2bM%Rp`>ubTb^iLEcx>lgCml=$+#%DDrH|PP96sp z7+oV^!IVmU&V{@xHseylHf)2rJ?vKqy|Vs=tedN<-~JlG$RvbGG}DFBMkxhpOMAsO_}1e?1StLc||3|GJoSRD%Fii zccPb1I#r}z%-6OPs<0UlSq_kB1}`2}XB&>@(y;5nShfT1i1W<TRVV7Ee(Tvef zCNjmrR9>EQEgKVit(3pKLDcyJ1VBfBB~W}H0rqm1F76Z;rlGsSMO9=&o}c1+#z|7} zj9s*+V=09HW}!<`m=lK{MKxkjGp+Jrmr9ihIsa&q0wb<9{6jvk9X7uJQc{XBCWW6W z9+F9tKrHyI7!uJqn=fE?Pst{M(&*R+OzC=?gM>S_xg^e|q{R4Z_@Z$MwalIOl9c*w z-NZ1%$}l6aE;e3N)-(d-nzU?a6Pwo_Q>=qxjn6XGCa@A=4WEwS{dMZ)Pu$^-0Nons zsKf#v0nu2q{h)wSOwAmSFIvjO&YfO~>LxYHV-`#DHj#KE1NpI+PM73=AZhe3a%R3hn?RaVyzsa9Qu+u5_o@<3PEY`RU;&S z5Ve^i5n8uz4BI_ssmtqIbplUYo7=UF0(GnnVOfqo&I8v!t_dCRCfi$~zZS3}UYs63 zxDH<@+%LGlWUNiWPmnE=GcqrxDnsIMsDst%XmM^`g_%DEhTPEbwA5=|#ZFJM2xU%; zjG>v|)$qhSNh%owT!^nn~emyYMxZ z7Ak_ZAR30I;%n&_S?Q__($ok(cgr9*kA7so#t5%wQ+t^VPu15MpW!Z-QjVR~RCD%E zWn-E~YT`}&nfBp1XO!!uF~7|wEx(ydI8Uk_$W~fASkBV}AQ`%CGKmjg*-+|~jK3X) z;)=`a5!XDWY?*}{K0R|e&qR!^76p^H(ZU_hGVU;G8-(qjp``Kz_iL0U%U!IoamcM4 zYt=+1u>_(>o*J+o*ust+_Jx}$87Sq8(Y(wKqSi449+kXSVxjl@j>YtG!$eowWf8B# zlp3B693U`yNgMin->_q~a2T7?s-vGoO3`V(>cHsA7b}6*7|!Eb%NhC@-A^#fKz9dN zsagT<0Cgj4I`CpKbrHKwAf-P-$ey3CTUmzl;nkYA93=;Yg3?nU>8;c;vh_m?ps-sq zecmOcCT{pcG2vrXlrMteKR)%j+O_NXl(xaQVMdmsOqX4-!t4xqVIqH_6c|rj<|4yf z2e(kAH2!{Pv`Rn&7FO zP;S)jL_siroF}95_t;};5PQ0S-Fi=_nst#?g=f|#;=Sp3^b3nLCf-TPp??CD(}`Ro z-x+U0T&-Ndbi?T7p{dPyyQq$e+^{kSG;$s3*FvK& zF}A)4n)y_0s^tfaFAphKbXqxsc4z5A)pQ0-^uc+ZJBIy~M~ph|9(L|w`WUe00X2y= zWSD>iT`vJ?Hg^7Y{0(7IHK8NUCTRg%3zNTon*v|zRS}O06;`*W&^Q@xyWg-I+m<%j zBo#kudbRKan62c{w|(E_j+I5Ul{kA1Ng1L*W|8<>M_nT8a9-ps91BvD9L8HxBV&c! z3V3}kp&g`ir8R^^I>n{P2(n$?`EM^LWWK=Rzf7+&z*lx3(?kz6Oi8& zDJ@li%HX-b%|j~#1Ls$k`>PE}Sm8r;DI>qZ*m}NkT1;Q&Mhp5gbmzmvT;!m-ALo&{2#=gH-dQ&#CC()_;VG_87MTgS4)!9kQyx{IDxSJp!4pm$qZJ*C zB`B2f0r4liQMwT1MQ$S%V-bWnSyBtEHzGW}WqiavR8G0}q3!eoF(VU&ICj`|0n`@Q z(OY9V0%Ji|@%XXLt{vk_Y<}WV?s;H6tU@e#0O5B3!V%1Ui3j8pf>_PzAANq6^*}=X z5?X_b{~7{V`Hvxhzjyfm>mL(eQZ$gglR2ZIgQ2m7DWkEyt*yPCGvhz{`WYoGO>Ip6 z{+jF8f%Z|IZ~p9XHb0nfszriATKGem4hE)Wf(+#yBu4(V1BEb*B$1fT#VRaR-CSUww~znGt2wXj71i1>SN<{@|X95 zz2K%(h~MG+;BT@#%ab*t^X(WQ+dbPEUFvZ+OE;-nm5j22X6+0;itnfeMDAeEqCOR4 zZ<)h{2+Fze+dP()oX?~;?ZkbA`?zu)!;_qlfF%3)1LGMVJ}Fn9GPcIy?A5>}U&*+E z>nviLZH1vL2JDNJZA!Th_ii`$xS|_7tyR)-ewMbyz1IL$XeXwo*~!PzM_}%I0MU;O zK~h{ow&&V_6K9sEHn#6jGqN4Cd-BhIN@fHJ8@)5H32feSeq>U&U}tQBsTi&n27lNeCp>XBB22BOzo!)BtSaOxwpmn{zi|@ zM~j6Bt0!slvP#^N@d!IPIeg+C6niMfv5CIWNlD|ivG>XJ44(KMZiZZBgyN&)>H~E7 zwJql*_xF#zL&Dc*O1}>U!Oyu#!Q0!(;H&RX&*XxiGn1VO(^cy5AY-0{N*B zCotg-@l5ZhlhHX8(mArmJM$)|`P|C(D(9!Mu#tE`ID^OjoF;U1b^FR95aUnMY1FBV zMcb=NpyDaFZ%iXEo>(n)x?;hCF4MOu$>IJXTML=(>x%05NQ29WcIJ}uHTPK-#j4vx*?cwa=UH8oAZkEGZOOqn~IEIrd zIh`>+{b13?-M?oUTPM~ng3o1b6)nyVT74jeGiK<;ui_v>x3c16SHqoQLQ{t*u`9<5 z#(=O4=UQM~p<)7Y28Lrye=XHQ3f;8poN|~o^y!0lZKsF(Eg<7WE!<=@Ny@vx(%MB@ zC9eWrq`$GAeT59Hu!t_QV1||iP;npch6l?K-awfz7w=M+4zO{R)&`oG#VmTbY_};LgxR1zt8H38z@n08!hz-(OA>d3n_gviL<4YNszDiX2i!3-q^bv8;5Ii$@BK?aTrhL+pStZ~nJtzvyGB z*?q-|6!rk{7|D!GLo8WT8Uf9nrGjR*6_dxM4^B{yu&=ktLE=)lN*KSxF-PtFw5s%} zquE9+r9b~1D7X<$+_X(fH{)a$uW2NvtkE@j_1q4sE({%tyeUzV>rO_oQ9G1ML9EVf z=iR=Q<*{VKyUceE*fSGYkA%q7(Wk8qOnXW1gB$wyR1cs6vL@;AX&1KT5Z>6~TNFUr zuDS8f*m~|f4Ci7kPQrG=QHqqLwYKEeq)5ZG2Mhs*qH-j-qwGZ>cC5Zu8GbreI%!Xf z-&s$}XgME*s}rRht{RPC)CfE!sPWpjGnVB)a-cXTn{0o+WkT4WE;5Y z*uR#-J?m?gGZGAIqa$B1wiZ_L##x*%8nKD&+o2^l3ANF*wnh7OlqK`4^_eATsCh`m zCU|N4?sw;iNWagZr6r3GbunsKA>QwD%Sg#YD1cYLnEDJDW-nV2$zj4ioVc6*(@!#a z&(xLgWefp@afgmm=Q$KKU5_>!9HdmeV42DN4>z=QZ#*s1yn_ zdb*T#_;43vNpEkGa6HfBha!vCAY%VQ+AoLMrLIB`aypsPdWVv{Zb;BMTplE_Zwph_ z3#6JO>(8Wrx(Qow6U-?!FYrlTjHY$%1ajyeX@xY9K!R~!j0G*{9_r&#`7n* z<*K}rkmlA%fPT0;MWdaV-7n(?>;XjuH133G1{pF9cd3ZGT)*Dx*|Pay-A<*!yGF%u-L>ocOEfh&@9S!rg#i^!je)q`AT@`B-1VyyE!L$|y z>XBCEm(Garq|!07N86BQRN*iO(AnCoNGC~WVzkUb{J%c)IrZp^ni^tBS`qzbCu9&dokyZmlQfgHF#lII0 zrj^Qn6prLEoHQIExsvWYCX|SOFQzn5NTDexM)rU4DH1BEgh13a29S8IEBD{E6+%d< zh)B}0E5g@2!Fcs67qW0_!dD-ezO?rTnsTWoGbcZ$LTFi~;n+=oKaRz~7tfcNLN+1e zC*xjQDpzO_mU9!5a}$&tw4+hL!xsmYx-rxbWxAtW#p96 zi%RQMlVM2Z8dU40+CvT>YT!AE{c}tKT$u1ev7InE?*1ep?pZbf>JzxgvRtWbl9gYj zG+TB9--FNGV*0^#EdZ8x0fiHL*eMy6W}19pqS-Xw<|0H^7<6%mPz}}Zo!~6dg6V59 zmYS0shuHIaNoBVnIIby$W@X%0-u^%lRX4Sx-I_=k_)sR1LPUr3+6suS#kHGP zcM0fFT$j^cSU^H#4@Z$+T^342Q@0QmjX%Kvga<(F{^vFJ1SQ<7d4yB9MLmz+Rsym` zoi?!0UBl1$be3(hldQoC#Nx&{>k0u7x%XJ}MvLK^R{q)+0PXrA)kyk!F*;9!jkcN+ zz7(2R%9;I`F#3AcwH}swJmhs{+P<`tsVlRNF6G0LWQ<9pBj@CwV?Mlq!(r^9T*eNbt4rS3utA2(v6e6wly9 zHx@LGoLV?L6E?qjz19yg2t+?1#5t;G`+CYB)QW)SIAzxhT6il-w$V@Ht>*pKaW$Zx zl*^a*$y(@?y=#jq@`}ztxppDLP&jrEurY5V4NgE;j*w!qm##Bzra?@1^(?x(B=0yv z$B$PZTCQ@2e@$kbvHR>(bXLB6;;%1w!y#P;&N*(Zl8D#7O!bf*KToDT;{QmqP7U<7 zo%A|kF~oxZ1MZnL_nTE-YFPMwvcq# z<)kMKt5l)$w=~0QWNUULDA7k$OzxJ=>u_80o~I!lO0apMvFz!sI+ySJL>j00`K#nG z^3BdhrX=r$E!!+~)=5P1(5DA+L)E6~_IK}g zisNt1Q`{;*I5ONq{M7Gxibk8iH}svSkK1AnF{XpDdxw&sx+>g>Uqz*CPNXEg{j6$s z8D~@cr1f4Q=hs#)=A^OoECbRCZO?CTqZ{cnlD=ORW!WTW`KvUi3`|L^h(=uGdIN$& zrhQ!mm5(9Am>#L41Vs^BcCBdgC(WWUr=VVR7oPB<1b?&ZhhJmX3}o%aJ3;%#s>;5+ z{<(cmxLrT>QQ|*lgrR!(RgIM?Py}hKvh;Xmj%9&r2POOD4HG0(CtRdNxNi;s84kWC zlM^LO##=FGy2ZjiLarz~p{U$>FDPIxxR%;Y9?&p7qpTgN{rxrrtBRku)nW&OPh>5K zZlD^bH0?)oag0#HlAV+A&UU2~{eWv>t_-{aAS#ImaY05GK?k*Dg)hXw`BuS}qRbZF zAbPeqgZBbOU#N4$*Am$gu96~0<{O#apL)!M?}(KqQoh)x_MOzZDsrrt@^X^r%oXuR zX0|iJUZ*y2iiYPUX@sND4^%)v^4`n8p zb=?=~rbHC#rim}8#FsmWFFiHxGY34o!Sb~9=@qm2q z^%qb+05i1ZTWkEzSEPY|13%APALNp_C=o3b|BkI z4y?1-sJLohzg8Z-+co+uK1v}W?%9j!*^^D3}nfkP)j5<)@>&AAxL#kLExI?XC6FZ?#@Yq)u1*HphTOZHfk_`_!q=N*eM_h*MjM{ zLa!>QWl6H8@-P;up-uVcd9WPvBa>+ZV_@&(P_FHJynaDG(7ZlaA+o7JUNO+H)J# zns2yO^y)<5s#?x`hX`SMT!i~-MI7pj;qU2LCcQup>7Fu#89p5Lrb6OqDLGKeoz-l|A){0@iJw@{${R#=;2Q+czlm#y!3n?pfe%5+S5Q#Q7hXYM#z)tuhD>e2D= zx>9-47t71st7p->X^u2)J#rdomeS7OjxitTyS%V`7iQfoRY!otEeB6vRgmBk!uEMi zf1An&JF~b4rr!ACRDD{jzo2a6m8%QxkEDx(%sL^BpU=yx3YSD8&th3ZKb3@c`oL5b*J~R{4p8cLgT5LEvCDLwWpb^@ zRItwGF9=QAvdW&)%@!6zT%VwW+h!Wozj0q+OefV)%JeLN?@smWkW2K3+PC{F z1|HJKfgcp7rO$d~e)Js8R+pm`@W*9Kq}#b}LB^~pK9aJ$AcYsTt=Nd{^|=R7=piy& zc*W=Orf{Naq%B9X1?BAg7fxwM(VZgXZHVy)%s7+lY{`gSC{LTT~4}6UP(~{4Vmi3SlXAhjh zr`_Pr^RumJ^T3t8b6EJqNbK;&bRN!Niuh4uP?<4x7rF$9S^`nOE-oKA-VIWj)P!#4 z6BA90cJMJ<^T1h15Hg=ihG_{-5Y{e<;hDm-ZwajfJ;RKO4`rHH!fGtK%$76o&|)4{ zA!qzZB)=lTv_OW$_s4XE;xF`0>5!sR*!J9+yNf~}8>_EhycwhhGr})Miel}4@H_Kg zvLso26iV_jb{J=6b4Em;2YSO(!2UIM_Hv>d7{IvS2>AIaBKlnAz2%`qH$QLU<*HY;x= z0wRDFNyrlmv9aC~uKyPyYbKB@P{1LHPbB|MFb~o#2CLO3Ih+oklnl0i5pkuP1WL=79@KZ9!yt7Y@ZF2kg++6DO$QY<9V|}$tE1>&1d)4zT`|1-? zxq3g)MW11#AG^)fnGaj{5SBrKgTX#IN&~bQaS`=sqzz$hP`s36Je#Nq^)Y_V<)#c< zwcKo)h&_~MUN@uiU|PhL!&dPYAWmOkYlW7kn=LHMhAok4ajy?%!t zP9wD|%&d_RKq~C*Chs*WH~`Oca~TAsw+>}`e2w8Qv_sofQbEVby^1Lssc;S#${)Cy zAK*2ibLbLGCSzM1Eq7azJ;x|F535~HFXW>XevN)zlsovSWBr(?LOqjt70rnov-Tr= zP>wfcj8XD1g!?nLylsW`9h2RS;L|adIV!G5Zhfw)0E1f0Ahw$H5L zpWMAS2vw}eUMly+HBsk6A08=8sLrpRB$*O!0#g3*nEd`oxqnJ=Lm8$MkIAghI2s8H=Rho+zVbNXe?0^j*Eky0?rkBm_m~kBru5>f0O#N{^Lp@V8)Ldu#6=nz2 zvQ%|{gmF}eM)+BBif20|>?FMWL8IoE-ZZ7vqkVIt&OCSIv~8#mK+UYV6P%p?beitO z&6Yi`syXlZen8DS`ldG*6tChy_=AV;&nTZ8il42f(Iv3ehC=@geoiZB&#OxchM1pQ zxG`TUQFC0XRAGm-@E!>G2{VoA_k6<>Al)J1QpMQbFr+_oi-uAPN`YQD5O;94N}D+a zFBCf?jYnqpbnC?kv&D1BCw(81bM8k!Ul@E<_^X23z_DPJO2>C={rSU1Bt(z+BB5)D9|@j7`?#{QORMw4>;h&f=yD5pVKpeOsfrCE8Lhj^ZgbWqv<4d;B)RrVMg_pEH2*to@|Rhgbe=5tqa8*UUo zr%OTV9q|&fLI~vnhcFL5be#N>AuPGxXs0j_I59qqulFmmLc#I?S%$Uh6iI%9I<{Kf z0@N%;{y~9w`zZQ7gT|bOX}A|$Iw6^rz2i4Vt*UKUAoYL)!k@YmIRE+);e>Eol0eMeP@Q3so=!ATT(v#1YyV26VZs z(S=C8Fr3i90;##dZ7Ga%!k)x-yW%`kjC-zOP$3r;i`BwjxOcbtZ@=Fd52CvgzKPuV zb&%B(CjTs^l*=->DHPWlTSXQO=p4r;c3}Mp&fE#@vtc8-thsC!C!{edI&P|R z_%xUnyQsQShE?5^k1;Jhhmopz-Ht@Vv=^!W+6@e6gM6^#5Tc+T)+Cf&z#EyNBQ4R& z-iS*g?W|m-EN3&z`rgo-im{Mtx{OkRB+vS@X-KmSKx{kgY-@w z-IKr*vk+;~N5v8er>b@KSDsk+RlWD1AKr2bKsqvoibtWtY?XnCP5vQRoHJOv6d86t za3gK#5pB`xxQ(;@1Ne3GPhhTC?$h$doO;%4a*a5TGn7%U7O{?k>()LI1WW>Qzk8cQ zqbIF`FN1U&X418{fu-#8)IH+t3PEC~1)d6cR=QFx3o9g;X<;5`>7=jsCv-mb7nvTc z=4&r1W(%*8R>mv147)f-nW<#zqma9%VLSTGdAFW6o47!+X5LM;;^NiUB z_PE+6MGB+|Bv|3pe*)-4v5G!o&iEHGP@b&6Qv9-hfo<&DywszjsXi!`+;jpjo2@R; zzV0by7s*Gsu_noIiMk7v%T={nCHyyxWB5tSozw6`0K6zrPrv-px2ePUA7fdNQjQF9 z_IKc5S`j-*7loc^!#bq1PBh!`9bJFVn}d=yp8Deh0VzxTPdS$Vb(2NZ$<)NsMbyyA zi9#K9QWYUFc5iwiza9=3l1D)VjSg^Zg!bWS#XIdQcK-;;h|hZ zG4@GboY-Z%t#VETwkXVbhTvt0ATqcevcYiP`M1k%L!!O9JtsUjCNB9VYqw*IJ3k<{NG`~k zW17JRm>5%WowVXcZyWZTTK4UZ>Qj()JZ~1~elIUGg6-_5 zs8wKt9Ph+@2ri0)laZK zvk18SY^anUwi~vomL6}20jfxGkBX2X5}sWa4e>l~H)<_Z&o|`M%Wt{z>$hmKLC%7d zsnlQATfo(KZ|#kTEKY}=JoY}>Z& zn|*e>=e>6BxqF}Y{;amv`mx$-v(4FudLKiJHFY6_XfMWX^+=1@F^r#rKl#((gy zjMNtDKuSDnEkrAC;dx^!ao13d9hx*!PYs7a(p|h(^PXCfX_3F zbnGY^Gb0UsWsnFyWz3<)Txm--mqR@@7(mX1k~=(T zUo*T3aAb-*M?3)XUg57cbEjeym6zRzCve_5U8mvD-GYw}~`ggV>Lg(KHR0aoh;=+I5STi2#;>V2u?F&+fH)0gxLOU|z zlB~ki_oZ#{5u^j{qjh3~AitGC_CtZY!`0vebH2n<-U#p+jt_bN+Q%G?e9=PMry@Re zFX9Zk>Do0i&wTMFfscFN=+HA@OXg$xLL|M0V*SmuWR}gnYuptymgCFSdJ*xJ0gk3t z_WQ(HpI%?jH_Cqkv@qi3ew#1k^6o6|40OT=9G(-?Rwo11GZRzF4uSrMr3N z3;GXAjA1h?f=(<9{yF%EC zLOibbC+tVf8;U|G!2Pc5uNVHv>hE;^*iOhF?{v1Bpb&+q-hQ9W-&bxK&r%kJfI7;b zPZ~!)>d#NA?avxd>Q8tl;*Dc-g}@Vqcze%x{^$=7&h>vCd1-5VaUXa!VK8}BZ!9P1 z7o>vmJG{$-xdt2_6rpn-k)UG);!^tA=ld$ES~@}z2LhL+)H5B=PP-K~ z9F*Truh)OeAJYytI6=zedi>Sma3XVM#g6}v7kF*(1+2671OZyQmAb3}>FpA6LwP}E zLB3J8fM@%YealM};TG3+=(=<38v9zFUB}1I5bHjtz_<>BP;MiE88@3H_$x+=1IbVU z8vw81kybM`UTmn&&edHtF%i?$u59R=>pgy;B}Xl&<4^8wSkXC`;4OOq;txT)7M?$L zw@57ze;Ye@;-E7_*Xula?!6jzB6EJSwQilg52_O3&6Xm#i%ay^$$$O{9d#-1;!B`3=x9D*a8CNjUd7*iGtsVa^b#l+Ttg3v0|+vRCX6 zmj+vDn;Rk%SpAd|!`1g#W;z(hjW?Hg>0c`t^2V(6)9B4kbber6Lf`6f=5OH%HBlh*KAeXY zRH^*%tO^p7T$n_TE6m8ll(<&{A!mIC*q=Qb4I^Yf9&|(-17M8ZeT)QH^(v}Uq$Hm7 zeJvW5*xZBqEB#@iOJ3&(P~`(+5h~xhuekGID4}t@Z1kdaQmm4sB*-Ym`c}-PP9Z)d z7}Gg$If_JIip18SF{X=%DEb|q7ozZ)x)3Lp-$d^FiYzs(%1!t5|2WbxLQ9P-AV5GF z-%Pjv`-nRFf44b}EzC@uoJ|~Q9bK$Voag{H))#6zPOBWK-cL2HXD343C`S6++0rS6 zLPBYznS$hGC#G9Lv{8y$j-*I`|7=l@cwr^Pk*$1N0oVD!(vi27l5_cf#)ZQ1nN+0@&-1*A^U2wY{rBndz@&r!JX?gJHE2%Y&m7JpgtynJV23ZL@55_0Xl^O8 zY2H&X%XvHzGxRK&R-633BMmj5yy)1gnH1=_lya$WH-;^;yi4zQNU0x2}D2jNrkN*oVUsA@fBX{6JA+b6mkL z_jzmF51(fQ3NGwkZZ$~sS*$F0yY6fi{q3~{3}={U0nD64d|}Ia2476qkZjB6Ej{{e z?AUMyp0l@@EWM1IMH@YKk_8Bb z^%IQZbj*0zCn0xQyK?Ru3dIcjE_ACt!vqrn*#}_~Hs)4OS;zGtv56Byd{p5CogiHc-|gW(`f-TW@J7B#HI&w`zVV*Ax+u~a zc3K^{y#4v5&FfYz?WF5aC~c?f8-sh=-Pe%VXWCr;Bg#}lBp8F*fU$z*G06x)0{4A0 zgJ;;3`)YASi`Pj{D91{8L*xhxg!k7X-0G!$$H7ec(EP_j?j;Wadr!021*M0rk6zD} z#|01oCZJ^$^OO{JYGIn76M2BV+wj1tTh%S|5(z>sMyz_49W%Bj>=k?Orqq>fq>hY>A*KPTc*Co6@k&?7xxt>qvyM}Rq%o@?LT9-8wJx6@o#`qMEZY&)PJSo zvi>`e`p-!1TYF&V;%M{@R7TbYPEJjlF#1Ug$$Ups#-IF&zkxtS1Bm*#_gP5@EW`8( z1VANvq{9X=zNxtoWXukx0e*|B1657kzpI)fR#P;$Y6x}3Kd8O#3@Bjcr?iXMVJM5>e&dl)8cHfbSYQ8ic!q1!rgnk%Kf2$XZak0 z0Rtwp{7JqS*@T=CF1h$YWeaH(tYRFVzP=)!hPbiT^=;@KB@6rH#t*!lfdxS=;sI;Q z!{PTnk;XQ>3_sEtx1dQe4|8;U6Z@*hBP?yR>luhCj9qX%?5Uw2e>~Egr?*9B&Ex6@ z1$D=VPQ9{vW$-k6_TY34uN6;h*jfj+ReK9pglIdZk5i>C0D)`!IMZz#ebnDl;O}1x zS9FHnk$~`?+D_#4f)k*bVRbs)8ppO7U36~GBP$oh}fF%Bz2Oz?YtTwmQ-zAkM zMjyxzH)hB<{~`J+^pYxj)v@UH&^?qU>N?NP&N|;hZ>6=;oZrUSvu~q|qm6$r7BGY7 zOMr#&O@K7;(b}t%@qcW7eJnPqBEWWXq$}?fuM8bo!i{`-4)pG=W+n7ht8BrLdSjdg zCGvHW{sFT{6EolmnnyxXJuI?`7AY*KGg3Q`0f{oQ7ZA=$+sh~Yz!LPjn^&#RG(Vv{ zyNE9n;wkiVM;M?&qKqFsm>|F!S+-1QU>akuo(KY}JecuH=lM76a{5%?mt+O^3|dss zg5WiACv5AqZ=Wc0IOVs62i?sQB=OFrJ`?)Wnsb`PV#`k)^|sFLuCBVOg>7F$$EDzc zoqexuRj!7>ktT}8XcIBE(C+~Kb5kV`;Ax*s8dkZ96l5^d%&jxRYVbp+>*|18v8h>} zXc7Mknv`IqRZ*(JetZk{;!N(ZPoDl2PrLw(SUUVDC+s#hyL0d>swS7O-Vuy}-)!R3 zC`_hbYq*45DIcSRt)Y4z_d1FsiO@~gb~^SW`!brt$Ss z*W%&CCHzp~fg(WoA&IYu=EM2@AC>$7pkfIJr`Z4{u+^Ax?Aa3} zfPdQe6lfcZlkuHXtNu6Qy#5FP7$a5!SVu>yNc-6yug&ZPOM^2YD#`C}gvBkN*$+KN zE_6w5&r6XIj}Dsr8c|}xhQ@_BdOIC+;u!QG+hW0M=?j5kEY9;L3>1;Tt~hSrE-*$v z1U3uEmS#q_ejnlS41M>HR|2I4|B1d^-n{*|1B^q*ZqNfBQ;MUY)&prV;re_70fKcD zII_1rKjJuE-Bi#e&;;Y|){XK{`$A6(b7G|n`>Nk())dNKighj{wbnT>qqvnivq60> z1NPYcgr(iOh9)fG>yU7MlnIQi$?(y~kk+&Y!K@odS||sH&^enmrE_X%0#%jGMTCiO zfxM11m8#{kSm>c3QsG7Q%t%l7-2hl}Fzty(E5Xo1bx2#8Fu1=)Ia#%VlSR?qWesI4 zklyfSs88i%5?nOwnf!7`_<~T&Zte_t3G%aC)(Afj^DZtMI6bZD6#>5=le^r~#?Vbw zLEokRJPuC&f>;Y^AqM6$ynwcr&1q!P!!AX0Eq)3{?7`vB}ekIfyS7v*! zTr8A2R!po;+NEkoz2O&2AyKqpJz?~~#WXvg0gK`7{c-E}smo!>B@`I5BC16JteybB zu?wglNxd~u)Q-_{E~n4B7I`B^O03zYHfef`lS%hN)3do{^{SG<|3Oty-v)gED(LVt z&gqbw>ADv7eRv=L?tz0|sZ6A3)VQ4Oo+!DkcmMaboJ;r2ekLF?C_}v#$J#q$u!Rfn z>|p{C%TAOje3aI!X|g5bo%yqENUZ|iExS3p zT%b6%qG)qFG09Gq$5zKzkwFJUhk-F)#x+q#C#yllu?Xi?9K0_BU4b82aw z(Y6dHQXYN#q0f?qFS(B`k(yg8G98&ESgx|vD$U47&^n4_HL!VN z13+SOwH*GY!QQx33MX>30}(yElP^(gFMcWi3}ez63)U@3FN?*WQ26@LyeF_?i#J(N z49JdOAr&juW`C)9)1jq`pI=Akf;ZF4e|IY3S67TU_GU==mDT zEJ~%A2tVk?$7)Fs73LT@@^!;ygA-qgg|h7IpD)#D3x{YEfr)Vp5TMc6r;D1pXt-r4 zS0`(bhH|7YHT6B(5M|}>2n(63_{te6^R#Jo73L(F)S%kFF^K!LF!*PlkLm2}P?5{L zRT-D>c8Tcx;>8+my;~>z0e=^6$HJy#Rm+|PWKpX77fL(to`mrwO!!qooO6<+QH?|} zjA&#UVhokiJql1tZY{xdM6F%5e?qssu~D4!BX-zjZsV#V@7i8Wa3*IT+a!T(7+*FE zF-mMM#8H47EDR~II)~s=!S3{}PHz?NZu?$Z?2rJT3^diaco9dT!b6KiDaMAE6)!2? zPT}wt;^{K>aj?CwVqq*aVO@>u8JpMc*eLtl@9I!ZE9HPZzTxM90Gz*v6d`c=?OXH)5IZNHPODS9|9PR*a6r_PLxghpu|Dw-B zfkcwn5#pTNh|t~%4;TK!gmB>uxVi6dI_Vbjyl8IH)1#3AJiS!yB}PZA5&qP@BZvny z%l*-=811H1Bo|F;Xzh*bpK|<;m7hjjs1Ii+5J~(3a;T2X-3_D7@v3Ygw|GQLfk}GJ zf$Q08;=XZF(oFwRM8#v+FZQP-HND8O&6iLzM63&MNIHOGX^SJ<-5Z-Hm+j!(kzd?`Y!AE)x^&BX(jQ$5grdv7Ts*|) zy2ZQwP=7k89{`M@hZ?W#3M?Dy(>J&3acZ!=L0Uh4L6r@lU+DFr55OlOG|Bt;GK{ju z#U8hC%5Oq>`9LQ9&hzj{$&l9*rI+{9b0|ej$YsCj%j|ILA1$wdr zdYbzP=m^AHVQ-B+giuQ~lcElApnX0vI+qMPyOYJv9ho@b9sz?@1=YND&G`GnTd62# zbx5hsdkoS%!>zq3wq*`BdK5o@HU)YKXd)?JI^woI!bTZ5?Xo};h?L_+K6{(%r@TzH zOLA*Y@eJCmk`l;mIqgbfg$wtqm6c;9!j6pHPWC5A00`-xS z--a_0#&nsrB0_8~b6eQtVZ1ZaYHEX;0ViZej)YMXf2%pEN{K?(tms0Z&9l`3t;{of z;HmoPmJH zI!HwOaz{q%K`sE`Iad_)J)36?!X%CJMOv+%&Lt~LgR}VO{54&W_r=DUuRru!OTD5A zw23kARTR^eW2VKyBW2?$JqIrL&WI=+5-dJnD`$aky8OvsM}p>dezJ2XUD@;YIXa9y^BTqwP{SwfJc`=K@{NJr}nT-sAZRG_5+bwF$Q|jDbqOnrZBkKEd+VzLy1cnw= z5L`%x%xfLPy_2|>QOYYtsZCPKcm+FG@$C2}bs~_b#K<}=0I|%zOk>cLtMF2hg?s9( z)xGBrQpH0QUsWQ;mH6*W%d|bi0#pyZkj%Z9u~9HzP_$)bc{46jLmwIN~z& zRUqXm`Wr{{=BS*csU1uVOAg%F|HiQQhG-pYcXR%PA+*vgn79{PyJDOBL-{9h^-n=c zXq96KQ?QiA3#wym3*RWKiTnkU%OVQR9P^55sC zOXQXSKtg{BvKtll;wkCtoN>yrVff_gJ2Jb+t(zj;;Z64;7HP;hv*KMPr&q31Cvww8 z^ApLq@RpZYsSH=k%ZNSb0pq4pVX>4=JMq13k*HV@2i4QOQqf_`s)bNGfqK%unKn&~ z6w=LI(hxmiXP30m3tGl#&8)OfwB@r)#+V(^dROq?tBvI$|1{-0Jorm&W6GB_qYuW+ zJMSyr7x>V<-U+tPZ`=LYW7W^J%U!u+zR#rQ8?$?ouWUX6=a&SxJKX5xwl~Du5+ccW za4m&UElpO?r8Z@_K^aa^OW!73T-LQ-g$7)0%PT6#sXfknz7GuCseQ+Td)whD@pZa> z?8S|q5AcQKd;aUi4QH^?6(e-7n1av)`ugUhoLsMHa}ZcFpy^~sl4ZTvSKER)W(hy& zR!tK+F&hSyBk=mJ2{G z;chnM+QTgi>wD^;Q{Vs1=#PEi#- zvN&*#SCvRLSCPDX>G1)+Zk{|xw_Y@xU(ppv7GLKBfi{~FUnrTu&M0vz38!- z@eN>%JoUZUD^FYB+)&P++j3O^XOdDTyHGq@D7jCMcJTihK(~$FpR@T+t4y)nY+Y2? zxS?gDph?tn9(_*og5z{H!#uG$X>umx#LK3QSW!1FCJCc(>bt@874&pR z(%HcU8NFjc{gi_~@(2FMpNlQE<(3eOvYwNKT7PXN36Iza^XeoBjnH^kY&7$dIdfX^ z0nL^@hKv++Gfm5y{1mRJ;uX&(pcyhJOsxKnGIe`tyoawun8dvcb46IPuyqdk3d+gjWHu>u6M728`>6bE#@aUpRw({4AZHtc$vV!Ukuw199) z43#21{-$~E+(9%r*Ik#lzii7>)UT4uXh<$NJECdM(F>XU`K}KNxGRq&@J(g~k4_wU zbPx7?maa_snCl$0*56e4`3+YkSK`tJLneRxx$IBPX><#AcHOG64Kj*^^L+oK+BQ!= z#yf%n1XRiR&s^cRdjAIy(0|Pp{#z!4qn(Shg{_Ixcaa1X?7x@(|N3|N#{c|=gsq9Q zfU&WoiIdZR<{dMr|XbJ9{n`iyZd@+75>xlkvwoaG5ap&^gSm@m~YvDFrHRmSC3 zZ@w!$6m4&^qmqhnwn=C#YLtQUo=$1@=K$7BKo!D~oK4~(O#JQVk7bH!`i%cd&A`Kx zcgQVPPfKn(nxyxbv(eCDHg(zJd3nXx?Ss-|+Icm^waf*N4OmCOnB|){Qcj5aO+qap zYm0kp1b*v-x_ykv%s}^2gT+DfM~sA%Y6Jx$CuysMi}^wMNaQi&h$ag=>wsI@9f0+ET#3$j`F8 z$%}}B=-@B%b49wBk$EyV9k0PW+QJ{ZjB7eE%G1*P7@>vSP$)BBu|zVr zT>rp^nb-UP#+8j3aZA)U7Vx>s#=-g-`sWJex`O%5P^WIgdD(j!mz~&xnHg7t!=0OX zovJnnTLEq1arrW@x_i?<8|q{ovDIyJu^FJ&$T>m1@$9=erRe>08MpMF@JgOD^cYB;pNW=JOFw+bi zWaeu|=QpeMPdc~#4MQ{Q5}BS2L_E}Ku6jx-eFyd?&p}ZH^%tMJU#kgFBV_43iIgOI z$d;2~I*6s1%~`Efk_msCL$1Hv*f;3vL3%?v#t=8hKrc9@4vBWsMuyzd+7y+gBp+wJ z?%^!p0n-jw95 zSM9%)c0O?U4K(OuUuA)+mXUifW{`j3W&@um?7MU#^<;A7?R5ZqA&`Ts`hZxbExm!H z{UQgR7St=T=kmMSGX~<1I}FIjmz=WOfkXGD^SyZKbQdO57+M2<|6yjVYzE%*4sH*B z1$J#D4RMX~&f@3h5YXDnyaL=AddFi}0Q+DDLi@Y>?$G^;*M3?O*|15{*o+v8mFJ>B z1XXzwve)-Sc@hQTE(sUud0p@g#x)@|o8>&J)W6?BkGDkdykS3TZaDoVph(l8*U94W zh-H*JSf}~kc$_7ur{3`+28sE1Eqt^_mX>Apae1Bxz7c!j1W0C8Kb9()%IyK={%kXI zVnrL%s3<$kfN`Y_#UBmEnGE_QfZu?5lA~5)P#2q_a)OBo{O!{Ouloqwo93` zwVKBz)st#-3$EM%vvA5Q-(?XFe^BV9H#gfm1m4pN9Ip&}K?e6Jlt;iS);$Y2Z>Cl! z;Z=6cqbD*qp;-x8xXWfstT1=tw1GSe#3#M1prqD9qICSFi!U^1>I?#e+5qL=Z zFl?dqpK4gk{~(zYKO@6xvgKtqEuLHvuCg%0EG+j~Kir-ZK-4C7V5j6G=pBv{J27T< zu@o_R@{z>n21^~(p>?mRR~ju0F^C7ZM#shYFiyP5GxV?ySc*jma2-E>z%+dodJ_H) zHoVorX9VMqMAXu2cxEcc)8_NnY^qdkJfux;d|;JQ{sfU66p@#(B$qEEX(};o3gEr3 zJ%c!XWYHNgtJb%OR8>y@r6OJdrPIetcb?Hdilyd4c!8Y)#mDF$ci0_runupb2&n0) zsolj^ZMTQ1_z^<2r(L&?jCxther(h34iTCeusQLqKUa$@HTDn0Q}u39z86QMePB}! zy3bhX#J5|bV0A&eVVqzMpBPo7Z(|emP+3s%VzU(Ic?l!mV|f=SFr8@259T-|4Tynk zqS~XOIyi#$8cXI5r!ok$R2ZW&hgP|Aas-;HeVnTA`)zc@EBE4{`ULLU6Diy$)xS1Y zc|qMjQ!x*SUO)5V+S(^}5BT1y0$Kgwe1l8r1zH@@Teqa2y!gBPw{V{*tY1+L&tb7= zde`uuArkL_DM|pf)|;H`Z>rR_lR`8C<^s4vXrv(}UATuA#o|uH48F@9$Iv{hOw4`RJ9qn}PF8BISg8v=tzHtc@SV;wgm}Lu>0i%RN zEQj+?BSSR*W0&~Ie~w>T?0xxAvDZ9;8Z6AEclllSoZ@_1zk8qX{d&jp>jSvKJnjY% za0-xtGj@{1y4NAN=gC4Ddf3lI4k;jxHe!e*b*A;A1SAD}iy%s!PkJ~&$w51=M3!7P z5~L2Sm<6$r7n%icJn=sJ+uvtF^51WZ*}ki{K8NG*yX?7xSD_VHp9VV=XfsL;)Co)b zJ1Pn|`If2I-RHAbW0=A%#SA=Qd^(Zd5V6np-FynOq+j5N#T27GCty5Cd9>zY-0d`~ zutmP$A?V6av*5{)8LCht0BS9aX_CW->WxmGOCjkg?Q{F>+_72JeGh3YVP&Dv!!U%yAPW z?r5K^EeU0x=8C-=XLgHi=A$^Of}19j^4IzVtr}^QpR**qjU;WnEZp9`6lV7@;MLBM zlQ|oWYQJf&S|`a0nb(Y*R%e}J5l)$#KjroBfU!L%@+}@H?V-~4#``jusEvWk+9o0z zRqe&LA64ORXLUmCM+W1)40z}V))}(n8}soS;jFwwsRTJ4RT}4PYWG%G6BCr5 z$fTN%aqb0C+S;s5xXqBB7VUN%D03&s;_$28P$^Qy zY?tEHls$v%nmMR+`cqSF_S37F8*&p5fBZdE`@2-50!t_|FZdE2;a=B8Fs$`WCT7GX zZNAeab>^8~z>12)MNnL;*=+%Ya%L?}g0~9_*cko^NDbB@K%8!@-d^XVS{-Np5UJ1x zsKS`{Zgvm%=3Ihi6uX$~ta92I8eaaYb)uUVc!SSylLiy|*{lES?6sLLfG~iwJ)N8Y z`i*z8ZDCVZr`3F)rnyj?NouF@9V|^w4S#L(D^^axzOSqn#!f<5V1F$|us6m#Tbd)yHC@tg&*zrfcdpE*Rd!1#n>n&xZ=7@_cI6$IN4>!_Oq}zE;;nx=@hvMh0l&q) z|4?D1<@(FueoiQA)z=8B)C%`>w2odWQk{e%v@bF#Hfsl zJJlKi{=|TOy$~V`0E@Su_g9!2dO618To@|W{%NwDALmb;Fa$INMaQ=MPg^Jg1JKsg zLlD)1EeE)2()3TNWzG}DD$QlOY(x8%lBsFUcM2;g?|{MS>ewCli%-m)3RZT$4A7~> z?w(qDLu%awx+j%bLdpvALfddfaS*#eSZ4E32?e`W&M2d3hML6gUIsPH!-;mobv#id zJ)*Ujk{}{qbypwoRHM4N78CGIcS5>?GAHoU?Orq%`mo?>fg|YV>fC`vZAGi(45vC* znNSVJ?VtJXsVZ+j3qJ8|00 z;Ad`Qz^zl=x7z&B>uLixj=T_Lhw|5TWvT+bA-!Z@!RKD7n|JKIRP=60eJ4_1;c)h@ zn34<5n{2KPVfUEI;x!eCIY<+4Yr*Bl3NLp?m^q|6fZda;&zAf4tM~kHj&R?*rV1N1 z6Jl4pwy)lisd_K0qu=v9G%kqDOgkf7E22K+SoZXU->%wIu9vQ#83}J-hZk+l(T69A zt;D{kqN0jFzc1CE39-DmN^Ksl5xc+X)jmb_-9UBU5u#FZ7oDTlH?&{IIl6T1SlZw! zA$ACimGaY)c%6s!<4@jd(c57zR!K$O-V1Q1a5zci&h{~w}xXA?6M z$NyqXt5l`z{-cMfwb}U%i%S9A?bmZLHR;T-WN`6`{pSHlap-d70byUgsT0 zq?S2+I2qYp=jl`LzD#lw?PIXh;B3&XN|3c3C|#Bc(Q!A#V#Iq0;^zwXcJp}*Ak6Jtj1`0 zpzWVzd2l1WExsyoD544g(Cs#0K75WV?bdTM|H{oI3{|;5 zz@6|2hTz=4&91PU^w%4%#8z|SkhRZ3Q|i{9rj)Y{Q%gHpP%H5Q zf3VXdKkEfVfB?C4-pWJ*FPnk7-fKb7dxfzID>KyC_Y8(((w_yEsLTLU?Abmr$Hgjv zEfz#$w$_gw(_`&#!H!I4(GF?WG(!v&+z~?^_^hWXcJWPfh}$(?-^h?>_xh?C=H#WU zr(=9hi9tJF7sB623jw|DEB4uKDC4vb{L{rLt@#uid1qvusCgo^o7y8=CfLFUS#Y`T z2coGkv*plHN#x{= z&!-x=Xsrr`@q`v3G@>MzB7YBFyH=2z{TaN8&yF|!>JL!>cvaBXz;erwR|6C=GrXZZ zbcA=a^Ev0k$BzJf$f%2(8xImZy#wLO)Gmw2UIzMEY1zbCKh@FLzg)Sm_PVdeX*zj@@^RDhkNYM@A zM3GR;!XY?hdCsq-U+q?u+Z2Y-2ZxKTr9OIx@;Lrd0WtN7$;@2F*ixKjacQmQf zZy~$h7WzXA=W`$Fbsh+wHA?O zkAe4~Mt~lJj=adV4bu)0cV>k>xf>0cD8>-{?O3MGJZG)2?%a{@fhyzco=2D2=^rm= zZ@_+Q>To+u)nG`yfVgE9!WxM*L_u_Wot{EJO5iyVQ?PN#RzicAop5cBB5q6CA)I=X ztKrVxg$%L^)h^p~8TVKmk7Vu?+BMa&8JQ}|l1i?n2{<<*gEg-|om|wG5rZHHhf``jpXVINLKpd^nHBCD?)$o$evDz)Wt* zO{%8()r@Mag+?2#M`WSGeftN}WG_r1{BcAo4O*>*Mdx^=CHkCfh(?eNV zCree80HPh$G;DYBC?Daz)<^&*jJh%Aizl$bI*RQRI1geiiM~dU5HNKZGmRp1vMY0P zfhmoqqjZ04;7Dskkg6+rY@eDmq~BMZM#EKwz0CnYauNlPt7Xnhy%^3T zdo(v7UEg5aTCg_vF(eoP&gJ+Mk`RLFrO7Z~nNBs~K(g)vaTq-zoMz^jLuaPJ*+j!x z9G9gRu?NV|cq)E+n-rq+3&Qo9_#QlGYWKz`cuMX0$JU(C3Hi!WGO~oP8icr{4i*X4 z@hIYmdF&Hbp67a>V9N);f`tI=F3~GP5R`O6cD@ucd50gEqVb%%ShzJ7eQrWkzCW1; zq}_E&W$G^QpJ$2_&`A_}#YMt;3<`P*y-?a#nv44Sv2r>m?Z-(IqAi;IDH2%XC&*!Z z$a2ddBA(VDg?hdyq|HKhQ6r?heBf917=zE5YrB60+ILG#B$eL+2xIVnbu9S*$Hzj@ z!c4;UzjF|ZQnc()#88L6P-?om2gs1%(&R^rF!VsQR%a8))xNG4OJeLGl%oA#(s{V#kmc1L-RxmPY3wq>83Tj+0lulUeEU zzdzre<$&<@NdtMRP0LCNJev zHe8Y!M99=@tX^8DZDw>E%t>3WI#zB|3FT{BFh;TI1kNr{T4<)QN!FUYz>eH{WUm#z z_cTQLxf*5@dX7DCdDObLNQG2R#-%XM)N0ypF1k5SEM_-1OUlZ6mLto?kEzlqM=-SY zwIqmLXCd@Cz=z6(7B0gf&ks3O^p|%a5W%C?q+MhZLno+@kF>rRce-4yU3H zjeS&MM?)tYSR)e6)ZuQPx*g9~L$u#~Ya*;%l!K4|ydf8ewq zWoA0wI`Ui{M6VSi4by<$$>!3Ap*Y5wtRLGq6^uv&ic1aS1#pFdWpJ8#npafZ)|kh^ zBgvgRr*{7IeB5zFu-|g{D|NmkT)Nn4z!w|3j1+{6gcN+Rk;RhI;QtM3p^C+Mjxf0O z-BQ8Z;@Egf1s%7Z)|rncK#e7EmOrVkz8lLpzm;TU(Y>;ML>+d`Zl>Yu!nr3X-+iRp zGNeex0i9%?oNmy}Wp@vAq}ly}DcWzIG^mV!dUS$@*T<;IDO-?uf8aZ6r~h;!WpAlu z=o+uNN@?K^1;tpQn%pl0%ZsRPn^i<#D=NzlH3S}nwTbG8>mW&lE&l_guwsuqJpS0k zd3X#dYA!F^_fSL5l2Uhtl zby7dCrgZ=Q<-opVymt6LOP%g__Ycuf;VYsC)K^+y5=Q59Z2F%Y zW;p-HFe7Z>{9gy1RjKMIX^CL^uw^AC{sLj7ts+#ZsKORBZ`=ZD7D2=*oJRi<&~!nV zCAjLf%^4cA$)O9_i*nO_f$`WAX<{xaV3xIW#-)FU`~-QBt*MN;x?G`w;{0_y4gdCX zc~|##ne%?T<;D-h5#xx-sBKZQYstNv#>QZzzxXQ$VFC*fyL8v7zCG~9bF9hD*W;qQ zzC9oVO7>feMP5IQGew6*%6-f=Vqw(UHpxGlSy-$bZHSfHc9W(`<8{jSgX8TW)R&$i z=&lc?ZDuFEtOB-#to+e&QJWQpTD4i8Hq}Drv08(QF5Pxva&>{VMZGTTy!1r#W%Zgs zXsG_+5X`IBkR$QbTN2l%uw58P2Ze>ZO;xw?9LuRrn7B93u;@6)$Xx2-5Nj7@0Yrmk zghFNvb3%ub3)aJuaL6bi#tH+5uI-2{yf?#@|ImSE2rapgRj}p2Z692lV}ik-E##0nt$-_n6?Imf zrFv@EJz9arQh*gNktA;P)n9!H=`!9*ge_SkZ|z8I`pd=Z#qt_nQsqcVVrO1enYCS= z(5>tV!nJ#Ld&(jsJ}82^lSe0sWYW1wPYvzgmc)(`=*|m&MJ-{hZVzeBV)`69FN-V( zbR3>RYJ5#58YvgDqAO~-K{+q=_0kJuH?XN!W2lkXQOC8&hGJ`07Xl7AQp?O}CAi_9 z>@07ZRqRQlt-SY5hss@7zP0Uo`163@3;NF~>V(gG6TdbC)z;WU{4aRk@O(CMLZP9_ zxh^t-xl_kgZt}6z^H=f&CHTBA<`!5x^rO)R&@2I5u@3t`azuy%j&6|YDae{RrL2Tp zEF{Ih=RmiDLtk36pb5b5A;IdC2Ebq*4nSK(|Pv2=;?E8t8#@Zh?6xo5A%xbp4r&hDwrn`PsacHvH~vi2>zA&@>RVqfVzM z&0a=H=y?Z-_aW*(VHfk8w8Vc5%+tDum;cQay84Dx?3!Q-uW*I9@c#RecG9*3+k&<=riUFQ1+qm6?wc7w1g}KB8yue$1XQS-Q1EyV^S}fmj`cvT{G*fNETUCe;#rrzb`|-z!KdVT* zQnUyktl@lO$Jh%x$X#3buQ`6Qo_WyiQUY!g=9|0dt6(E%pEyY?tA7K3(&7$5S?m}$ zfctj`2M=*;UgzS_X5Frod{#YtwMTmII^&I4NH_+HJC_$^k>tH7y^~SMdiX~Wl~d$L z5K&PABDrVHKVc^&>*Y%E3){&zmj1+C`=v~VY08l|2H|;xJ=UN(mHc|irdz_BJ;qDdSgrE;vLHXoLH^!rj#SUlAf^p&-U zrA%I=qN52{jN(DGTvbI}zhafq`53a6{Me)tQ7m)Tn_$|ugy%gD+=?;a9DHbui6LJrUi~Q{kFTdh@S&n=^lnE0dKM^o)e}{1?9LnxHsNA&0Hu4isS@)t?zb(+uEn>DmF=lvvH#IgN zN8UN3lm^GQU;l7CX>Se8D!!f0GQ@vn5&o?#{69%1!gel(*8hi1P}Z@-5kcks_BkIt z&RC!tL(t7N2|mTGen82HYhv#Pakc8z8HsPQW!kh4JZhfFpl-eZccKMtCqup>MkEnX zz)ZrarEZD=#qBoiyEpDfUE)e6^F z;WJAlrfL`_#oOq`tK?&DjTPKJvreH*QQF3s4VUhfUP#wI5F6Woe`}U@?(Zn5-DCpD zIbi#O35u!IMbyyh5-@bB!zzV=WT43r-+(GZcI}wgCPJZ?E>@>8Jqf~k&@41ye=)aK zno{BEdw))uNm$^_9%@{@=m=SBUM#BH zQ@*O?ZIqTPKGj&$H4tbN6)T@DQ_|9xex48}g~9#%i^P1ea?EFeYO>f$6NZgH@Ti^Z z6FPRm0o~#!y+Im+N_+o?3nxP`bb%386TBL}=0AL*Asm3x5J|DKv{8BA#2=L`i(rG@ z^h-(vpY)y8kpQ!$V?6BQ|3%qZ1;qh0`yLArd~tUPp5RV`JHg%EVR3hN4<0;Di<+`UbIU|t%t9mLb zzfvPj+#%J+Ce)7V3|3nw(yBFJm?=a86!!@$e3D*wZYiJb(@h8?45@*1cHvYk_+H%~ zsZ-iaj+mCY-iG|-eZ>(9{c!DJ);RUU073J%K{@y5(ywf$rFoZq(1@@5cq90h0E}>i z>+PPKNox8XQtt#u^d!uIlJ9$MiQSCu`+h`C>4N>vr0Lx^QB(V9K>tqM=$8eP@3*Cw zC@3LvTS!kySCnD6w2>Sap5uj49LhB{#vy;~LF&?$T8O4fKd%jnZ3osDM#hcL?cEOM zQe+2`*ztR4)7hiy=LHq>x$k104Tlbcx)21&hL|hOCH7H32VOgj;NS$U6H&g5;6F^7 z3@67&W}kEh!two84i(~#x9}D|f8>*qv9b(BcU$0~x83JU)C>*(F%V9n;y%DBT=$)H z-z0nLioRHpy-z{xa`H45FONFyM8-$w{4AngeOf3_N;g1~afGL#JV@PoMYPCF>esO~ zDdqy_YYulcq;o^h$P05_jlZ{O?ENmGtgtjd+Dm1f%BgmHKJ;;PJ+T z==W@#?#1ukChnEjT&{R)QE_%}12}9W@6Iyp5ggB}kIgnlPOiZ4M}iR8p+k`Rf#BVL zsS4OXrbm1J%Qb=jTXxR>Jla*%(o*|>nWq1A&Nb*7`4aqNhN%@;XLw;S0Y7|pA&f#n zN5mjD{F=p=^--~fHGR>tNUiE*$eMY!l2)G!gY99j&u!rGGZ(wbX2+k=N~e4Ipu3IA zOV9i&k~S1DqbJwn`B~T9MxNR0(+e5`+BI#GU>asAvUE^4-VXuLNGz20w?)!kSyV)n z?+7{_$#*7+R8)_=IV%g457f*p7L7I>aqPxF#U)gtU=mrxDpJ{>v7|69*^)TlDSp9` z!iBOmdho_X@vNm~nkzMvZc@&y5|w}5NO8?0X?w;x=a6>V!QN7H|8bw(3c`rEwVmy0V3GICoXG5d|mEKQAN z2hK{vUpx+~Gw)(dwT-9LHgb+ms}3s`bv4*I(iO)KpOMX@>PG&H%9OV zl}7M;b4c13Pg8%*Hu)??>HTzlw$iV7#O+Oh;LG;Q_w8AHg6#93?MU5`>;8Y8Y+HxIM2{qo&NQew6k6omQ_t5 zJ7a4i$dEtiI_|5atTZ4WPuC#OT={?jwi^popBAY zW!ld1K=UPgcuf^cn~LZ?R#s_qnMzSzXiG#`CsO`ly&X9=e~;vwOGkWlark8nzyJFB zXM=QGJY$Kd-PkQls%dY=Ivv!Cti(JgHt4mdp#1Ps!$1 z4s(nM{{Fnl-+#xHar!)W>rd41r&RT6t{#bLcPRT@88Q3a{Gd0Q`10qy5nbmo9K%6b zZWPsZ#YZ9hzrmsxHLME(>{p-p(2kSHiIX24#_Z(ULhr=Z8R&ptf1vzXq(G(R=J~1> z7we85>ok1v69pzNw?sMP9DV+Vyauo;l$s7<&W}u8099k`b~$k*zf~?E@psIDpT?m_ zU%PJVXNI~aSDo0|pVDDV5%j5lQ1rU>x|&P7lS9%`Ftd6@iYUiKPo8Ct`~9U0^C0jp1$13l=1&)m~#D$B^#6y`$uh+qfAo4AIY_hsO#O~7U4aW z)GHUAZ^>_XShu8fG@}GlUMw8RY%!OCUu9hzZ`5O$3><;}zQW-XA4QVt@ zl2^zH-6Uyt;ah~r35U2)H%WfFK@vgFTqocYuU#|HKM;z<7Lv~Tq=9zyiu!*e%(%GS zdzya{Ci#Dx@&DgMnEzkK|37}XA_(mZ<>-ow-i+(r32k`qxJKBJ6l1gwJto~pTE>s` zaoYqwwmvKl!>AU(Sz)w-LeE)&PQ?8%ULlqwuuzyM!p&t(F;RfP>+93~$>VLYl8HC_ zj%Qu3eAClS%@O5T9`*Bzua8etWp~QYhoPc<$X-uL#N)}(iMN~ePgQp}W{8xB6YbB= zp}cd*ERyg002XQA4_<8+UzuW!aM(V;J`R~rc`w}0q1+G;OgQq+PXFyj&!Pu8)?t_?j zf$oF2cWCaR=y&q&p;&h;?x7fWcJ84#ci7#7VUNt)X2Zdlms{?kZ|Zu;(7DAGs;2DK5y= zk4p@fdhZ^Fj=ctKH!8ogVIy3~156;Siw=~$=Yr)% z;8!qQfbPcYS1_`L1Yz_u8s5TyuW5w+yU~Gyp%-Xw z0MIj(Go}j#f(XNj^2GyH!g9c(q!2n7PP8v6=obtp))xiD0Hu0!W$!mOBuZ?G#Er>~ z#*N#A&_rVjFnw!E20;LQ@+0!o@#FXN_QUpL-{XgN>~%oB_prefF@i{Lgb*daG4LZJ zXdhaHa3$l%0v08Mu)@@$eaS&f&?3Yu6+b($CggqcR&;e&Fa!2k$5YyjnI3O0arRR=STzT@{Zi@n44+l{*8^xKWO zqw;G42U0qvXyB@h7vmUJ;*BQYX-5JFh%NfZT zLj^?uSpcmQff>;V$q2Coff?BdSu4yX%q9FH>>`{htY(PMT;x6SF|sXETiC`Br8!qK zLo-1$Z!=~ydox9|=zH9CnzJ@z z36Tn+2oVZl>Elr1P$E*krF=t)O^Hm2$@r0Y9MS(P!XISWuP9mJh~{|T5OltxE{CHw zBiSQye#Q0*qcbNZMU)HA9`YDs3EvMV2qOs349g7H3eyT-3R?>24dV@O3u_Da4D$@X z3A+i$48sgh3`-1G4pR=F3Y!XN4`UCn3#$uv3UdlS3p)#^2vbKaL3KrOMRG-TMRa}R zitLJZiExQ>iFAp2iFoFZ) z_i%@3!X*(yQD2arh~N}3-#wb4$04*K$#7h#D2ylwTM~H?ErdIWWMHi0>Jf$vr+Y$w z5rXeSn-D`);RJhQFzly}y(a8XD)`y38ScviOfYPa?kRcC4J(uYUNBsO9?A!NvantcreUvxa3W!z>_fSXm}U! zq6YJg8N_`0rw)f2>I=WwyFv_=coK(lhYgZE^+T_aL+PG^p;u_3fTw3Dcg!Hl3nC0R zDirUj5|#^=Bz>WS;YNp&KK+8>#)hIiF+geFyxPOZh9rqYkR&lB(IjyP5e8{O03mNf z$X*bhKEa9LI&gltHyj(zz9$In+UtV)?%{%IVkD75315`pW8hcDr+sJ%!mA9N1uRMS z!U|K54kdqDf|ek@s=)2QlK(WdU~|!-)K521GlW+uI0<-=^o0q=9UV&cGzB$7d{u($ zfd|Q7_+d@ap;S+2&|QRAEtn+ss~lVqJV^G!33H1MrFhzc?jpXb!F|Dl6ffeitLRXg zr$?wH!s{nEE;y9*g#ktr{Yv^Y29-p7RfMa9L&;xwVI|S8lut*{elADd>9r1K7X8W(H;aA6hVMqba>93GUa8U&+d;DoWaY%OW zADc!Z0^w5}t<-xQupf#Otv&%51?2-$q&X*w6N5e)xEFm@x>+Iu8_zk;oB@S`VI2ir zh0aXBjs-qM@BH}wEjS0gQwsJLB@^JBY>pA(g6EuQE{d|nu#O1UMp?pBk$;c;i6$Zs z-Inf4vN=vf54w*`GeJZV;5@=y52cT8oeC_55=i?c)m$9~6Yo6Q+zsWCRzJ?%4CRqd zKgv85B@w{!$sHjA89*6j&KhBZjw9!e9w7~&j4>CE7y(d*?a*PYFmt?5Z$1%y!u~|{2^oxmqKd+a;(|hjB8?scNTMZ`ZN>+C zpi9K>`Ju4T3IV{1=xTEA7!g{4!k9fT6gyfW0FhHba0-CCR#XKgdQLW8@vVxLIw*0 zf-u2dfFLxm6S}E9%migu8WxNq`4J|KA}Iy4LXrFg(?XGyhIyj6(Zb(E2m+q)!A9s1 zIT$<26)l`UVwV=q8L>#$Zt1-M0e=FdXe`3s%aGDh#=46Q^W!zfyCV&gmVW9c9_|1%M!K6s zozWT7KvB^JWx4^w$pF^~cdaM_fNPAqXOt0bVU)Xalo8z%%J2kwmz>ZWr~rDGY&X^L z1>iEwoo(0wy_%sgycrj&64iz`D<^~oHI5Rc-+l|7Mfd&G%|5(?cbVc&JuHqlE8opB z{099_s#|b47>`S)n|t^fk4vgsa(EOymsSh`8jg-D)lCTHi9%x#LxGl}<4Si^LZRrX zAN?4I%kij_VWd%G^eT9^fJ3}P05RSz0|z|^9R~yDN1?dph~|XmnC6t`aQ8RE%)`XP z0>e1NbWtPd@^~rq#_=$rs1g}Jv0(zd;y4&%6bpmc8)yx>y0o9jFfU$lJd7jCjzJ6! z+JinP?I$seiDw!IqmLqC0HHuD(YdAlgooMjOygl}QF;s@RA>i!leC}sFa=%+2DBOg ziGwjm2{M4*KpW8Ar2RyPMe!i+H1`rywAN@+&PjVOyPa+OR7lq3ZgaR!`r;&yW z4YS}$#KTyl)ER60T(r~fiIoc(B>dU}xxq;jjYq!D!eP`d}oCKdOo0iEH?Z?nz>phW3eWn1=4@!*B`h6YFpZ z-IMUJAl?fSv;aLc9>y8v#_&Wm?2Gq84t2wOA%D#Co67Q{R0gq))(0mgb{gAdg#> z;X~9&8mBeHT-c0T{nXA?_7|@q)gD=ff_@Wy;YXanr*_t|_&5RScHuHkJXNW7rm_aS zV59|W86$@L2zv^dE&5HIh1)ovk9pdpnsv z+D)Pb*Ek<}KHLTBxI>0bf(0a*K)Owe1&KIf`c0CBkT_zxO_~Ku8D%`Gu;Y(1Xmo}N z_GD#|0IG=N&oZ%ehAGGHGV-({_zN0wDRN#|WmW*DxYjse-0wJyxCa0cAR8|mfK5v- zqy0%+R$E$Ie)(fNk_LeWrUr!u+5%pgg$zTS9H2qQi?U3eUW9t#ZJe5n7k*hLpeW*4 zTc(;$gld5-ZdS&NxU3CO6nShcb3`XXv+yR4OU4UOmIyG3IM$TOrR$|!Ac||0@ggd# z1DHe}8_KNF^-?cj$4NvVFU7gacoCEp0Cpmdb!EEfdZ`wu;x1*pNXq&EJCVnxGIw;n zGz-Xa)G~kY%3=ZH5yu)bsdNF93j}e+GJgomssZAW#|AQUbOF>0c6h{Q_>MSyRWRVneWk<_RHB%6`z-LO<{e8i!HH^r8(Kr!na6!wrszJp}mc3j;AW zqx1w$c7^V?g+re~BayG>Y<`1OTcI`%E1%J?fQ!B8K&6hy+W}b7(V9NxYk*sgWBrVO zAcwx!^e4<)Q}-{7A;zjs97e#Q(^0%&`Q=NA0YAtK=8s~W45dm5(6?e`w#9X5nRM4Y z-3>A4wkM>O360h6wk)8nTY6CeSUHT-6VSodzisiZChJDA53*fqaMeE5A>|Y+ezsC! zENaamy}S-HV;4P~kDj^}wq3}$zaeI2nchOfVI#z3n9Tc2(`lL51R4KF?pSGLT9N9a zZ*#vkMVraImhgLNjl?x{pKkrPd)Z_=f#9ES&^QZslhwWq9_)=y;TVQYKQRTS5WTH8 z-BEDs@o`r^+&nlfGVBu;87$^jP&*4#s%F|Z;uue0J(5r|I5V5PFl+qaKeK}2lR0cz z+CSfzS-33e`+N2EFYLDYgNAMT0r#bLTl8ToqfvSm6${PF?i%^lin{{6vIg7Ps*tOL z=mhp<316>=?-8(J8=~WtR)qtw&z)QpY}#(sVYR!Mcpc#C%K7`NDw8X`?07!SPUS97 zJF~L9!-u|&)JrQ@r=nG*0NC%kIBXco>(Eh9WZbvJv5qAEt9{$tLi@1O$o1-SehWz! zaW421;o0G=nahBFnP6^?ae0B8JYBFrG(WI1prhqm+Ce3E;Of@o#_9e8++*tl!)AhM zj}o23q>?_5w!OgAeT0_;Z(g}z=~CJPcYRJ}p)|{@FRze8cIoDcRT7qwmd%NaXwjJe z>u$39CA7LhkT$1Zd@yUA^4tAymgnMj!(>eMY^e`5(@w;qD^d;p=8Ssw?V|`+ z)(s!amu|Ont+#TFlpV7dTq*XQ_bsos%G&+_e;=eST<`mST(1?}ihcrV2c8$!d39+v zw?iBbF#@xNKR7*4xjWDG(%&iE4ULPBn~?WRy;HhWoIH7S!>R_RhzI<36{X$~ay6}7 zt)Z6m?=nf%C)&9DwqNBc>a=-Xhu;ag7{BO(*tRAMDown${aKZF9o%Bn;11vf;`-Rk zxIEJc686OQ#>!kGo*(yIUZ)3!{0Sfo7JM*05ZG2az|pL)u-Ei@C%2tI5-gbzg7^GB zA%yT*2q-zhg6nygusyZIPVXx$Ew4qX>>)I&K{)oA5_-v0XZiTa|nuJ4PpF9dTUR>QjY43)hsTWsiV14TnkvS)o2>yYkKU41l*aJ+23tk7;z5!RC*YaLq|5?MxuonuN%`PAyTj0qz8)`|#9PK0IeOjqiuiJj%v%Bz%&M+iDj74I_MH&d z>hMw^xavrMll(pR#A>4A0GBB1gwO9vMk8BGt_hOb*8V5P+{|nI;;&7aZH$~a`RBu_ z^n4?VjkCnSi{GEai5cy>6x1`+fzy@2XR5!8lnPp;(hZ_*i{js0i+@LFdRFW(Cd&rc zGj?d?oHl(>LI1Dpw=mr>zWEg4=ychj}9J$@@N^sOSH6 zES-H|`&FNWtE@Ab{Qb6B^MrdXV^e8Wv!=aU=H9)M$1$-Zqg{8RMlbrucP)Hf6(Q)1 zRGsWjAFBfi+&Mc%+f6f@Ffn5)r?$bTG|w)-WI1EfzORtsgry^>O>NOPb29-au%PAC zIwK%@1d?`tP}_mLW8eHkE;93oMH6K3O+S_1fqA8nYSFeat1-Ejs>yasZqc;kw@+pJ zJ>cP4012) z-A#w9_6B;S&co8ybHhHhSQi>O{KLlfx?1@|X~WYQ=3hbb79PwTgG-Mb4Fl zZA?!0gs7D{9QWfSdF}zmR=FKa#jPA}h1?#5);HvM-0YdUP$4C? zHmN36ppZ5--4^tZH6~?meX~)9dIp8pCY1^J)NxuB*o6y>R z@owqImWtEa5|ESJP!x+wG`1*vJ8~nNud;_x8JF{fdtG5vuG>)R-{p5{*4+D}l!Fyh zP%f+BoLB3-b}gKtt5q)>9+)`*)U;|!Cs^71Ywg>tv zi_>c$Plf*!27YS?=E36ex8P3k&7Dz8{>g2eJ^%6?E^`l_o*Cma=R@aWlyjx*uN-|X zmVa^XTpAZAS~bEQ!PF_IiXzwEfzBSDe_vjZP6YL;?G~|D5>E;}oUP+Y!sh z_gD#oYT5ld#(6RM(e2-awojUu>l&nHQ62p^q3_1dvJbz=;*t`{b>=G*@tg|di%P31 z@A;4=UqG*S=4;<(-6-{A`ami`mBLMd8C{&d-3jELE0kGRO?Uk6;IX1VE<;@u7R(+k(Xe_1+;Z3p!j?D0J~d{tvQ2+t|XYS~Ncz{Ia`n95a@zBi0i{9AaTApUnZ z;O4K`nk}cgIOEjLLqBme zxg_V3$oiP#w6xN%@4Iu@R|~bvDRab_NcKlB#{-;Oqz0SIv|Q)UEQwmNj0Ae*RgCg5 z+I5?g8{6Wf>Xua2v_2p6ok{=7Sz*&^c9pSs=MA9^x9v^WAce~P-0Kw+o|nI2{Oq=1 z>{k~w_4Pe{LCZ?BguQyGrb@WU-#7UqHhnk&Ow(ZCnDM;IAl2t|PE1up!iZn!Z#$G~ zjMm&#Ron)XIPP_mG$owGF`CRsl_|qq#{NHOpX zFifAVE1t~fWndXNpKMHBT(!6Hb>+QiG!B+g*`^aY*#?mP^p9JIQnNExOqfbd<+!bH zSLu@;8XkSnI=FwQ#W9aSe4%-VUh{^7_`rHHo|PDrc=FkpH7aM6&gsV+txI;@j37GM zGg+dGnhO0IyBa5Mj1IL_Curad4ICY@oD++AeyVkvV6bBTi?V_c@C)Wg52WyRHww zQnGD+ePPmFv-JiFlXqBF+besWyOgu6cc$c8>o2l0`8ecc)HbUv#C#9DYIn&o;bKaW zS7+T-4~!DtwPQgcrojB(DR+yDCXN*tWvl;q%# z1U1{Jn^y`@*Eu?t?vZHU-OCAe%fS);^^ zy#sexY>DUrn-m_@_v2>rJJ@o1nINSTm{a^4hE^;gSrj%k-xOl2wpCmzKI@LQf}(_s zJC9a%IBp_1wxIe`X}(`vYxD)2W@|;K5h)eAzgA*h4KRAs=5}PnSbhDxhduJKv_AtI zi_luY!IB60c3JrIgn^j5+VyApr6c)l^RBCH4nLY_ zNU1x#tjxInOltfPnQnEB;sM_J3=ZaDZE{R8i${1*KB9b9*1aZWCC<+z~I!ww^2Xt5&CvW9N`iA>9z-v+K$n zFJM?Mpp?4UkhGvuDQ0;uEvELUy#s8R3dA`}Ql`}zRO_A8R>;p_m;c)CcN#@-)|vHJ zj~$zpDBgI+WI}sWcTNDCg3Z#RHM(%6eyLecID0m3rJi@Oh0<6R2yy||#dm{)v^#AF zldF;6g@chuRI8L$kkfz8RdQ8{IbZoys4P+YJ@KVc&n~`C4v)(Jx6~=527GRge^Wo= zv=Oy8_)lnG*(QO;PL%|oJKA(QM8ndmuD9)aSe1QK6|?KJwEm)}Zf)PhPtLlyXsQ3Aod)i2pu=XijN+h%(z2h+QC{V7yAqd&yk zat8Tjkt+&RF5v?E<{yLT>rh;5nE7jxv-rq!kU%lcZvx$~T(a~UE0CAJRiIgbH3a4! zpMCC(W8^BeW_;M2ceAX?x39#LMch;aD0Yl~#t3y^v^G>i+LH~dm)-dKt~~TR^ODvr zRP9unr!Vpx*0q`ys9D~g*ch^_o~sii2E7Z$W&Uuc(RlgoD+QVA(pL0kaG^G&MUg5H z(>hr;axE?owWzb0=$389WP#P%0WpB-V?Qr@%=lp|x>krY^KFMpYCWdwjcqsy@25;( zot-U=R6yY1{^tBQ)ya68A0OJdaAbT^k4sT(j0<)|J8Vm>vGv=`x%Z3{`M23`>wAJf1HYu^V^z3 zn*mr*oN=}+NH4HbCjXRXGtM+dyKHp5;R?6n2nR10`f`&Pg7&*o zwT*T#tx!dCevhUd#=;Y6P;oV&0) zDQ{6c<^%)Q%EoBgt;aE*pKpnmG8H-sa~~Mq#)Ap3hFt@4HO^!ezgq3szr|vi$rfO& znt2Fq*#6kBtt>7Jowvo;W`T8CIrX~Gj&j7g zBh$!f^&*PGf%*J}w%A<_Z_~yKfYker_Sya{9G}}(CNs0!dwF~fs%&si=o=uB71HUq zhNU`+ceRv|{LU?%v!8$39ff%e>WZf}M#6(drzp%GGJ)F_l3I#?jd6EQZhr0Li%tFR(+Vs4vGl$lLKZr1}Eixm9Aa>NFG`xZG_jmT!rl zX}&Kt_*wS1!Qf<|q#1hY%`oEKcVsBmDQ%q_Uisym&%oN@1D#r6?r_@92bYCvN8}UH zLsL{|l0{@Ww>m39Hp3#ha?6HVr${~vRbo#$0v#=yUbo}KF(in z79YR&rWy|>@wqe>ik^1n03P2vFfYv-|wSHw_g@Ni=lP2*ZXp7+o`|MQ!NLM zS;@0wsMw+>6G7z!Tv{u0?c+i_|NcYXKL%JmgQo4Qn{rYA${w}gk2w?^Q+p! zX=+~wx}w&k=`xn#&?o%8Q{iVdA61YbHt7d`=UpsP}vK3}?npNVGFU zmF+YI=KM;SPW!tZGdU5a7ex~d%=-^%Ey5GZL z*&4M=1qt!!bBk}Yv`r%mQc-@XQU)wy6!HaU;KT1 z?f=Q(35*rar#72fzPNW>r>6Om_OPF4(K_A@73o_culI`Kgks;gu26FYERGm)mu8ne z^Z9;}$s(&_B4YJvu=^fDzpxeTy_dXRr*2w6d|suw_*NFZ1biDMF!^*qIH8kK%5dPH!F7C=^|csQLCsfVU;hu{1d5JLMi)w3q;ZX zl%qNC-wo=#yS@}8O~fG?`z=?^tYzn6JaoKWqgZO>>?+Y``Jg{|NW95g?b~}gP31i4 z$Fy_U8a&cgHG9s@H`bdugRM3-t7>~#5G_H5QR2|!Ffp&c23%^J*|0L1nqaiCORC9X zzqPplwxws!7P6#{Rz8-fr2JdYwNm6s~O1 zuM_7BT}IW(j{6uQp}D!_PnI=>x(&mvJPXkuzk^T90EqXm*S)5-wJi>9>Ur z!T3gzEx+5(>(AS*b$Nn028~^23kAwob!v@E@~63cS7^TEz>b|)Xuj2d;cwve^}GG@ z16g{;!ShhJ?=Q|_K0}+`QFZd4j8RBah~F_14@ar54b z3i1~;s8ShOs7$KO9ZCi;igrnEeY2BP8fR*|VZSH#<|y6P8z+(@r&*aVPG^a()-aGN z8W?CP(x!4~`l5SrxKh!YH!=Anzc9Rwq|-9;+2{jb-{6)yg{x|j;kT5(Z34ZPUJvyx zt=I;_RyXtGokz39;;ZK6E952}5WQ(C(wW=jncakKbDjo`8E@W#N+M}byX1y%w!zZ1_F5rt+vmI`v(xG6 zt*Pqfg6-1+!;>F!O6<03W;P;vw}RChqgTJF27>>-w=614*AS-aDOa2wsJ^69Rr>P) zT95%TQd2P1*}5S-F9ev1$p^mOT(+Fv}*E zsV zXfy|e;MKO(7Z*3oYIs1boEjBpaJf4!06VrbqW(qYx5Bz}xIFxBtllXrH@`||TWn2% zCzM1-l{vF50r-uxTKo?XkvWWR0`KA;uP1&p3dfL^dd21Zm*}d&O3eDaG54K0j0Xe6 zT`tD~l4Y?h$Jr__pnJk{@jwb!E2iwKo;68A{a1wx2SWZGQ4{CS?nnup!~zD^nX>C}V|5LieW?C~KZ6r@W-r|GC_MuF@ZMslrG#^y7_823MvdOh;5S!NccBN0*0<~@a zidCJk)it#~u+<&qHsqU;9oM?VDJ`C?g6NmGS$luvl^#{!H%i^S=qGSRe z*oWjdocweO32gE&Tf>&v+H1ph-27SE!JPY{$%iO5ORuMGa=S$zL8s03LcGY+m z{Pq6k7u(?l=is*Hm#kj_9ju8d*h7pRO|>0*KL*4-lUmM5YXiSH&c}Bi@RYyj7Y#f; z|Im9?kmrIkJ>#wDX=~==6DpdQPq9yZeQ>%|-SB&%3PU|r*ccz0VKx?^43wKz1jXb=)@5U%r=U_a{YRaw~`*Pwe?cL=g^4RCd}c=#eW zD#fKE^w+lPpEL9PTx%7wK2#5N@U$b;^QW1CI@CS+#3#=didR|53W==!x=DZ&{p4V} z7e=P(!S>9Ao|8hW2b9cS+YKfhA>5cMpri*pq-!itBtzBFH z$qS*UWl6OyuyDE1Ojy?clCueT)sHg?n=usoyxAtUKNr=e$uuCoK1q>{Z(mW>ka ztUVd)u!<#{ta1S<_~EUU;{9ZjwQcG9j^$umug0X^gv*1JTfwv7Uj}VwRvsRkRV+GA zW^z5n@;!9$NvWm-9|Pg(R77~j8`V>xjBJuEx{Mk<{alZR$tKYmZ8a zmm{cvs#pEFd1#^1l|A@pKMALC?_6z3cvB9$dep@OeTcfyZiwiIThEo1si5;Y9b`yy zr%~*tI?uB%%a&txNnxY7KXgo@Ip5Z&ev!f$5?X%~`pm^+Lgj;ZTh#9Lg{JMigpYZm zUPZ~yM$=c9xgkGW(W;H-Bs7mG_`B4jAx}xjz)3=&!5(|k#Y;KOu}|pxuBE{&8m-$< z)>NNh2VeWu{HGR%{onE}%HKttpFNOU+|N=K2@@@r9HVb>T7xc_tnT!x|6veHSMvG1 zPqq7!;DL?<{P|;3oOuQJznyh|d=>6(e^gGMpjkT~^8%K(<+Zhmj%i#P+i}_<`xf`b zMjeT!l<$Z$4Girl4^wmp_C3}snZ3Jy-j=oU7|Vsf(2VYk;+wS^4xD{|GN^7iqV=sA zwIQ~8QCR+2N-VgiF38Ds^%H6$Hf%Yx3&yydqVX^k>rEWwS=B}Rr>yQg#sZf= zkzczoerbi4tHHlgeHQ3WSz`YkCV-j+?cs~gtPw1CT>QV1YW-3 zTBjaQ|5U2RM2Brz*19K zmJTe#c{$f+*37`=@=^C>?WnQYDAmwkZBFE@>Xc8frVZ4Gw^}3>ObuKOnKqE`1-(ko z25d<{>qF;iiE>?2)(ZIx*Yqgjz4bcU8@E~+T4Ip9IO#aCy>$6K<+}37URS44oe#sV;kMqKzDTSI(1VcSrT&NGJB za5ajiMTbls5toO-lRu5^_mJ1GOUJK9)!DCLFO{e66Zpr|=cCv6RAbLmUiL5K16$K{ zJF-F+1%7Q~g)>b)Pc8w}o}GT?1*s~Ve!Abj7uF@U#hjYBc&qBKjHBE|>C`D>ZIRDf z-^tunxKd#D`S|Q7b+lzt`v|lEwb%vQf#qm=WV_hbbHb1owbWdp@LccJKfqZLQ^>|R zd)x=14RNLh-G3zp&kM=dv~uesu?y!OG03UM5y70>&34=D!8324D`>`3P}s?>?^=LD zU46{$#DUEFG4^U4?(&?*YcpvzE3ma|!|(Y`Fgxl=HG6R5cURpLXWF1_-Kz_`G+$=%u?Y7&KxvtL~x|6ms5?%)f@$sLsO znJ?QaVrs2KxlI@6dao|fKa^tm2E}f@0oO6pKf>%kj=d$S+z1un&b!+G~)cB{y* zJYTv*Jwc*HMg4t+JD|YAdr1GRDdc%}0D?UGGQ5KpfGau`rG7?wv$CEQZ@Et0FB2S)5hn9p&f1 zu|OT>7pIh~;3cxF;3E%8IHBaobkFo%5lz+`pY*^M6MCIHeAe9FPX!{4uLA_} zZ-RE;Epzw7}PkdVCDWtycTsE56@JUu#qNfe)r)WjYvVc-O94mw}QtgHZ?=l(fN~fR-MTwlK?W9B;HAF zTc}>qb^C&-$)j7=UMpLD%jPE8m8k=jM$Bd%hiy|i!-rS*Ci1qtEi)^-osE~Yr1jR= zB1LskQSLdh%k$sOC^Z3pJf{X+{8V$ zAen4v^50h3-5aF0Q%^ zOK{1EX>iI&aB$;@OmOVT-Ie~^!7G8cWmkT0zg}UzeR!5f_h_d>PJg>YUVkS@ZhkvR zetzdhPGI{+9v)4NvlK^7umq#VTS}lNT8g2@6(*2m@e&GE+f}-48~JjD_Lg;rQJ#ue zlKyAP*$iD`Vgc?8ncH_G_&a;)90i-X1d^IU!gm;3saK7WIy=Ou6@vv&a;d`dJrr({ z`?AhrBOA9fQ0<2~@h4+?l!OFBUwfF}()ay2%RnO@u%I<12}|?Px@FngzH*LK-LAvu zi0_eZW4mM6`gvs%$-3>150C4SZDR?I_wc<*gC#4 zhz#2HN4*^CVOS-;f8!B$Ytr}d>;x5i=md`nw(&%a;y(XW>Gn}y$r&|T;$Rq^7}b5& zsoX7bU&@&Un&x2G6EVvByi>JX?7qgco5;OwY}BdY`=`MScS)y4B^2A}3e4Mkanl1+ z7CdA0-7cw$x5ZjC-PWm^x5-)vXX6U52kJ-&aeJI*g|=%H;u%9H zD*2-=1fA5k1>>@%Zp*c}&rB3Zw_D?lW3MPn<{7%}W<>@T;*B$|%u42;gicjn#B2yU zJ>15QTTZ%?EfJu*8>x(skrZ&k-`0#H*+>k(eO)+5{n9w%l` z*OGMH1@3*z?REu98Plms*_Z=zUlPxUCF%HreES~T3JR3ctBaLSVsc1)2|RU55*Rf2 z_DQzw6ev|!S1TjiUTYa`KP~YZV2>ZeZ{?|$x{cKOJ20w17-K@NN2kGEt+qN;iLl+G zfQi@2TP?G?UdiJ5sKjZYN?|T$Ce8_`g1k9GsK1io{Zu89XStT^Hd~3vz>)$c?j8xh zTCVdfs;6R!LX0SBb8=gw)-bL=_kPNNS-ePoTaFeZj=$i(+_qSW2HmmM?C8KBg*=&6 zaKcy&dYnjnTZUEz{-wY^#;BCAT z4jL-U+1CRP#uI`cj@bl)xFOp3h%q#77`>8X+WENl3`4>V7=2Wx`Ed0?GzxBzSb4(En_g2VY?vv4>sY!wa{gzduJxL}8H z30s06W+BT=KRepLFyVE!k23Lewl6VhceW2Qd3CnWF(r4lPcSufwy!ZwceeL4{p@U? zVZ!TbA7|p}YF}Z}?rI-q^6F||U`p<4pJHn0YTsa*?h5?K^s_7QGZS8S;0O~>ciF&Tjrk~w`(@c0hfn!WOJ%P(i+C70oOkO>K^GwM- zfs;%PJ%Q^?(>>R5TDxHvMkS;7`^b>-R!F&@+lyzoui+$7zcb(@gA6HT$bqro%f78M z=LV+RhVPF>$dbd)o@>|_P(cq${%4$_3JXvLcc{V!l+tYrsaGI%0;JA{Ogm)Epu8X` zmbd%A2Kt* z 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�!!ybUdR4n8i&a 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≻pfc-p+kq>A@&EZJ32ii;nzX4TDQYlf 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
    gy>fqEPDaO`QF}o` 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%0AO0^D-A)i$ldleqyk}TE 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 z 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

    tyv*0yP}nk-pv4zbBt@DbR|3V7ZQ73LXi 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 kF-h#lNtCW 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 diff --git a/main.nf b/main.nf index e2c2a9a3..ac268f06 100644 --- a/main.nf +++ b/main.nf @@ -44,7 +44,7 @@ if (params.validate_params) { validateParameters() } -WorkflowMain.initialise(workflow, params, log) +WorkflowMain.initialise(workflow, params, log, args) /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/modules.json b/modules.json index 893d6c2c..d4a463ff 100644 --- a/modules.json +++ b/modules.json @@ -7,17 +7,17 @@ "nf-core": { "custom/dumpsoftwareversions": { "branch": "master", - "git_sha": "bba7e362e4afead70653f84d8700588ea28d0f9e", + "git_sha": "8ec825f465b9c17f9d83000022995b4f7de6fe93", "installed_by": ["modules"] }, "fastqc": { "branch": "master", - "git_sha": "65ad3e0b9a4099592e1102e92e10455dc661cf53", + "git_sha": "c9488585ce7bd35ccd2a30faa2371454c8112fb9", "installed_by": ["modules"] }, "multiqc": { "branch": "master", - "git_sha": "4ab13872435962dadc239979554d13709e20bf29", + "git_sha": "8ec825f465b9c17f9d83000022995b4f7de6fe93", "installed_by": ["modules"] } } diff --git a/modules/nf-core/custom/dumpsoftwareversions/environment.yml b/modules/nf-core/custom/dumpsoftwareversions/environment.yml index f0c63f69..9b3272bc 100644 --- a/modules/nf-core/custom/dumpsoftwareversions/environment.yml +++ b/modules/nf-core/custom/dumpsoftwareversions/environment.yml @@ -4,4 +4,4 @@ channels: - bioconda - defaults dependencies: - - bioconda::multiqc=1.17 + - bioconda::multiqc=1.19 diff --git a/modules/nf-core/custom/dumpsoftwareversions/main.nf b/modules/nf-core/custom/dumpsoftwareversions/main.nf index 7685b33c..f2187611 100644 --- a/modules/nf-core/custom/dumpsoftwareversions/main.nf +++ b/modules/nf-core/custom/dumpsoftwareversions/main.nf @@ -4,8 +4,8 @@ process CUSTOM_DUMPSOFTWAREVERSIONS { // Requires `pyyaml` which does not have a dedicated container but is in the MultiQC container conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/multiqc:1.17--pyhdfd78af_0' : - 'biocontainers/multiqc:1.17--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/multiqc:1.19--pyhdfd78af_0' : + 'biocontainers/multiqc:1.19--pyhdfd78af_0' }" input: path versions diff --git a/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test b/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test index eec1db10..b1e1630b 100644 --- a/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test +++ b/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test @@ -31,7 +31,12 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out).match() } + { assert snapshot( + process.out.versions, + file(process.out.mqc_yml[0]).readLines()[0..10], + file(process.out.yml[0]).readLines()[0..7] + ).match() + } ) } } diff --git a/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test.snap b/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test.snap index 4274ed57..5f59a936 100644 --- a/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test.snap +++ b/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test.snap @@ -1,27 +1,33 @@ { "Should run without failures": { "content": [ - { - "0": [ - "software_versions.yml:md5,1c851188476409cda5752ce971b20b58" - ], - "1": [ - "software_versions_mqc.yml:md5,2570f4ba271ad08357b0d3d32a9cf84d" - ], - "2": [ - "versions.yml:md5,3843ac526e762117eedf8825b40683df" - ], - "mqc_yml": [ - "software_versions_mqc.yml:md5,2570f4ba271ad08357b0d3d32a9cf84d" - ], - "versions": [ - "versions.yml:md5,3843ac526e762117eedf8825b40683df" - ], - "yml": [ - "software_versions.yml:md5,1c851188476409cda5752ce971b20b58" - ] - } + [ + "versions.yml:md5,76d454d92244589d32455833f7c1ba6d" + ], + [ + "data: \"\\n\\n \\n \\n \\n \\n \\n \\n \\n\\", + " \\n\\n\\n \\n \\n\\", + " \\ \\n\\n\\n\\n \\n \\", + " \\ \\n \\n\\n\\n\\n\\", + " \\n\\n \\n \\n\\", + " \\ \\n\\n\\n\\n\\n\\n \\n\\", + " \\ \\n \\n\\n\\n\\n\\", + " \\n\\n \\n \\n\\" + ], + [ + "CUSTOM_DUMPSOFTWAREVERSIONS:", + " python: 3.11.7", + " yaml: 5.4.1", + "TOOL1:", + " tool1: 0.11.9", + "TOOL2:", + " tool2: '1.9'", + "Workflow:" + ] ], - "timestamp": "2023-11-03T14:43:22.157011" + "timestamp": "2024-01-09T23:01:18.710682" } -} +} \ No newline at end of file diff --git a/modules/nf-core/fastqc/tests/main.nf.test b/modules/nf-core/fastqc/tests/main.nf.test index b9e8f926..1f21c664 100644 --- a/modules/nf-core/fastqc/tests/main.nf.test +++ b/modules/nf-core/fastqc/tests/main.nf.test @@ -3,24 +3,20 @@ nextflow_process { name "Test Process FASTQC" script "../main.nf" process "FASTQC" + tag "modules" tag "modules_nfcore" tag "fastqc" - test("Single-Read") { + test("sarscov2 single-end [fastq]") { when { - params { - outdir = "$outputDir" - } process { """ - input[0] = [ + input[0] = Channel.of([ [ id: 'test', single_end:true ], - [ - file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) - ] - ] + [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true) ] + ]) """ } } @@ -28,82 +24,189 @@ nextflow_process { then { assertAll ( { assert process.success }, + // NOTE The report contains the date inside it, which means that the md5sum is stable per day, but not longer than that. So you can't md5sum it. // looks like this:
    Mon 2 Oct 2023
    test.gz
    // https://github.com/nf-core/modules/pull/3903#issuecomment-1743620039 - { assert process.out.html.get(0).get(1) ==~ ".*/test_fastqc.html" }, - { assert path(process.out.html.get(0).get(1)).getText().contains("") }, - { assert snapshot(process.out.versions).match("versions") }, - { assert process.out.zip.get(0).get(1) ==~ ".*/test_fastqc.zip" } + + { assert process.out.html[0][1] ==~ ".*/test_fastqc.html" }, + { assert process.out.zip[0][1] ==~ ".*/test_fastqc.zip" }, + { assert path(process.out.html[0][1]).text.contains("") }, + + { assert snapshot(process.out.versions).match("versions") } + ) + } + } + + test("sarscov2 paired-end [fastq]") { + + when { + process { + """ + input[0] = Channel.of([ + [id: 'test', single_end: false], // meta map + [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_2.fastq.gz', checkIfExists: true) ] + ]) + """ + } + } + + then { + assertAll ( + { assert process.success }, + + { assert process.out.html[0][1][0] ==~ ".*/test_1_fastqc.html" }, + { assert process.out.html[0][1][1] ==~ ".*/test_2_fastqc.html" }, + { assert process.out.zip[0][1][0] ==~ ".*/test_1_fastqc.zip" }, + { assert process.out.zip[0][1][1] ==~ ".*/test_2_fastqc.zip" }, + { assert path(process.out.html[0][1][0]).text.contains("") }, + { assert path(process.out.html[0][1][1]).text.contains("") }, + + { assert snapshot(process.out.versions).match("versions") } + ) + } + } + + test("sarscov2 interleaved [fastq]") { + + when { + process { + """ + input[0] = Channel.of([ + [id: 'test', single_end: false], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_interleaved.fastq.gz', checkIfExists: true) + ]) + """ + } + } + + then { + assertAll ( + { assert process.success }, + + { assert process.out.html[0][1] ==~ ".*/test_fastqc.html" }, + { assert process.out.zip[0][1] ==~ ".*/test_fastqc.zip" }, + { assert path(process.out.html[0][1]).text.contains("") }, + + { assert snapshot(process.out.versions).match("versions") } ) } } -// TODO -// // -// // Test with paired-end data -// // -// workflow test_fastqc_paired_end { -// input = [ -// [id: 'test', single_end: false], // meta map -// [ -// file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), -// file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) -// ] -// ] - -// FASTQC ( input ) -// } - -// // -// // Test with interleaved data -// // -// workflow test_fastqc_interleaved { -// input = [ -// [id: 'test', single_end: false], // meta map -// file(params.test_data['sarscov2']['illumina']['test_interleaved_fastq_gz'], checkIfExists: true) -// ] - -// FASTQC ( input ) -// } - -// // -// // Test with bam data -// // -// workflow test_fastqc_bam { -// input = [ -// [id: 'test', single_end: false], // meta map -// file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) -// ] - -// FASTQC ( input ) -// } - -// // -// // Test with multiple samples -// // -// workflow test_fastqc_multiple { -// input = [ -// [id: 'test', single_end: false], // meta map -// [ -// file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), -// file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true), -// file(params.test_data['sarscov2']['illumina']['test2_1_fastq_gz'], checkIfExists: true), -// file(params.test_data['sarscov2']['illumina']['test2_2_fastq_gz'], checkIfExists: true) -// ] -// ] - -// FASTQC ( input ) -// } - -// // -// // Test with custom prefix -// // -// workflow test_fastqc_custom_prefix { -// input = [ -// [ id:'mysample', single_end:true ], // meta map -// file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) -// ] - -// FASTQC ( input ) -// } + + test("sarscov2 paired-end [bam]") { + + when { + process { + """ + input[0] = Channel.of([ + [id: 'test', single_end: false], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true) + ]) + """ + } + } + + then { + assertAll ( + { assert process.success }, + + { assert process.out.html[0][1] ==~ ".*/test_fastqc.html" }, + { assert process.out.zip[0][1] ==~ ".*/test_fastqc.zip" }, + { assert path(process.out.html[0][1]).text.contains("") }, + + { assert snapshot(process.out.versions).match("versions") } + ) + } + } + + test("sarscov2 multiple [fastq]") { + + when { + process { + """ + input[0] = Channel.of([ + [id: 'test', single_end: false], // meta map + [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_2.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test2_1.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test2_2.fastq.gz', checkIfExists: true) ] + ]) + """ + } + } + + then { + assertAll ( + { assert process.success }, + + { assert process.out.html[0][1][0] ==~ ".*/test_1_fastqc.html" }, + { assert process.out.html[0][1][1] ==~ ".*/test_2_fastqc.html" }, + { assert process.out.html[0][1][2] ==~ ".*/test_3_fastqc.html" }, + { assert process.out.html[0][1][3] ==~ ".*/test_4_fastqc.html" }, + { assert process.out.zip[0][1][0] ==~ ".*/test_1_fastqc.zip" }, + { assert process.out.zip[0][1][1] ==~ ".*/test_2_fastqc.zip" }, + { assert process.out.zip[0][1][2] ==~ ".*/test_3_fastqc.zip" }, + { assert process.out.zip[0][1][3] ==~ ".*/test_4_fastqc.zip" }, + { assert path(process.out.html[0][1][0]).text.contains("") }, + { assert path(process.out.html[0][1][1]).text.contains("") }, + { assert path(process.out.html[0][1][2]).text.contains("") }, + { assert path(process.out.html[0][1][3]).text.contains("") }, + + { assert snapshot(process.out.versions).match("versions") } + ) + } + } + + test("sarscov2 custom_prefix") { + + when { + process { + """ + input[0] = Channel.of([ + [ id:'mysample', single_end:true ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true) + ]) + """ + } + } + + then { + assertAll ( + { assert process.success }, + + { assert process.out.html[0][1] ==~ ".*/mysample_fastqc.html" }, + { assert process.out.zip[0][1] ==~ ".*/mysample_fastqc.zip" }, + { assert path(process.out.html[0][1]).text.contains("") }, + + { assert snapshot(process.out.versions).match("versions") } + ) + } + } + + test("sarscov2 single-end [fastq] - stub") { + + options "-stub" + + when { + process { + """ + input[0] = Channel.of([ + [ id: 'test', single_end:true ], + [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true) ] + ]) + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out.html.collect { file(it[1]).getName() } + + process.out.zip.collect { file(it[1]).getName() } + + process.out.versions ).match() } + ) + } + } + } diff --git a/modules/nf-core/fastqc/tests/main.nf.test.snap b/modules/nf-core/fastqc/tests/main.nf.test.snap index 636a32ce..5d624bb8 100644 --- a/modules/nf-core/fastqc/tests/main.nf.test.snap +++ b/modules/nf-core/fastqc/tests/main.nf.test.snap @@ -1,10 +1,20 @@ { + "sarscov2 single-end [fastq] - stub": { + "content": [ + [ + "test.html", + "test.zip", + "versions.yml:md5,e1cc25ca8af856014824abd842e93978" + ] + ], + "timestamp": "2024-01-17T18:40:57.254299" + }, "versions": { "content": [ [ "versions.yml:md5,e1cc25ca8af856014824abd842e93978" ] ], - "timestamp": "2023-10-09T23:40:54+0000" + "timestamp": "2024-01-17T18:36:50.033627" } } \ No newline at end of file diff --git a/modules/nf-core/multiqc/environment.yml b/modules/nf-core/multiqc/environment.yml index bc0bdb5b..7625b752 100644 --- a/modules/nf-core/multiqc/environment.yml +++ b/modules/nf-core/multiqc/environment.yml @@ -4,4 +4,4 @@ channels: - bioconda - defaults dependencies: - - bioconda::multiqc=1.18 + - bioconda::multiqc=1.19 diff --git a/modules/nf-core/multiqc/main.nf b/modules/nf-core/multiqc/main.nf index 00cc48d2..1b9f7c43 100644 --- a/modules/nf-core/multiqc/main.nf +++ b/modules/nf-core/multiqc/main.nf @@ -3,8 +3,8 @@ process MULTIQC { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/multiqc:1.18--pyhdfd78af_0' : - 'biocontainers/multiqc:1.18--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/multiqc:1.19--pyhdfd78af_0' : + 'biocontainers/multiqc:1.19--pyhdfd78af_0' }" input: path multiqc_files, stageAs: "?/*" @@ -43,7 +43,7 @@ process MULTIQC { stub: """ - touch multiqc_data + mkdir multiqc_data touch multiqc_plots touch multiqc_report.html diff --git a/modules/nf-core/multiqc/meta.yml b/modules/nf-core/multiqc/meta.yml index f1aa660e..45a9bc35 100644 --- a/modules/nf-core/multiqc/meta.yml +++ b/modules/nf-core/multiqc/meta.yml @@ -1,4 +1,3 @@ -# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json name: multiqc description: Aggregate results from bioinformatics analyses across many samples into a single report keywords: diff --git a/modules/nf-core/multiqc/tests/main.nf.test b/modules/nf-core/multiqc/tests/main.nf.test index c2dad217..d0438eda 100644 --- a/modules/nf-core/multiqc/tests/main.nf.test +++ b/modules/nf-core/multiqc/tests/main.nf.test @@ -7,12 +7,9 @@ nextflow_process { tag "modules_nfcore" tag "multiqc" - test("MULTIQC: FASTQC") { + test("sarscov2 single-end [fastqc]") { when { - params { - outdir = "$outputDir" - } process { """ input[0] = Channel.of([file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz_fastqc_zip'], checkIfExists: true)]) @@ -26,20 +23,17 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert path(process.out.report.get(0)).exists() }, - { assert path(process.out.data.get(0)).exists() }, - { assert path(process.out.versions.get(0)).getText().contains("multiqc") } + { assert process.out.report[0] ==~ ".*/multiqc_report.html" }, + { assert process.out.data[0] ==~ ".*/multiqc_data" }, + { assert snapshot(process.out.versions).match("versions") } ) } } - test("MULTIQC: FASTQC and a config file") { + test("sarscov2 single-end [fastqc] [config]") { when { - params { - outdir = "$outputDir" - } process { """ input[0] = Channel.of([file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz_fastqc_zip'], checkIfExists: true)]) @@ -53,9 +47,35 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert path(process.out.report.get(0)).exists() }, - { assert path(process.out.data.get(0)).exists() }, - { assert path(process.out.versions.get(0)).getText().contains("multiqc") } + { assert process.out.report[0] ==~ ".*/multiqc_report.html" }, + { assert process.out.data[0] ==~ ".*/multiqc_data" }, + { assert snapshot(process.out.versions).match("versions") } + ) + } + } + + test("sarscov2 single-end [fastqc] - stub") { + + options "-stub" + + when { + process { + """ + input[0] = Channel.of([file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz_fastqc_zip'], checkIfExists: true)]) + input[1] = [] + input[2] = [] + input[3] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out.report.collect { file(it).getName() } + + process.out.data.collect { file(it).getName() } + + process.out.plots.collect { file(it).getName() } + + process.out.versions ).match() } ) } diff --git a/modules/nf-core/multiqc/tests/main.nf.test.snap b/modules/nf-core/multiqc/tests/main.nf.test.snap new file mode 100644 index 00000000..d37e7304 --- /dev/null +++ b/modules/nf-core/multiqc/tests/main.nf.test.snap @@ -0,0 +1,21 @@ +{ + "versions": { + "content": [ + [ + "versions.yml:md5,14e9a2661241abd828f4f06a7b5c222d" + ] + ], + "timestamp": "2024-01-09T23:02:49.911994" + }, + "sarscov2 single-end [fastqc] - stub": { + "content": [ + [ + "multiqc_report.html", + "multiqc_data", + "multiqc_plots", + "versions.yml:md5,14e9a2661241abd828f4f06a7b5c222d" + ] + ], + "timestamp": "2024-01-09T23:03:14.524346" + } +} \ No newline at end of file diff --git a/nextflow.config b/nextflow.config index e4367873..59e48f09 100644 --- a/nextflow.config +++ b/nextflow.config @@ -71,7 +71,7 @@ try { } // Load nf-core/chipseq custom profiles from different institutions. -// Warning: Uncomment only if a pipeline-specific instititutional config already exists on nf-core/configs! +// Warning: Uncomment only if a pipeline-specific institutional config already exists on nf-core/configs! // try { // includeConfig "${params.custom_config_base}/pipeline/chipseq.config" // } catch (Exception e) { @@ -91,6 +91,7 @@ profiles { podman.enabled = false shifter.enabled = false charliecloud.enabled = false + channels = ['conda-forge', 'bioconda', 'defaults'] apptainer.enabled = false } mamba { diff --git a/pyproject.toml b/pyproject.toml index 0d62beb6..7d08e1c8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,10 +1,13 @@ -# Config file for Python. Mostly used to configure linting of bin/check_samplesheet.py with Black. +# Config file for Python. Mostly used to configure linting of bin/*.py with Ruff. # Should be kept the same as nf-core/tools to avoid fighting with template synchronisation. -[tool.black] +[tool.ruff] line-length = 120 -target_version = ["py37", "py38", "py39", "py310"] +target-version = "py38" +select = ["I", "E1", "E4", "E7", "E9", "F", "UP", "N"] +cache-dir = "~/.cache/ruff" -[tool.isort] -profile = "black" -known_first_party = ["nf_core"] -multi_line_output = 3 +[tool.ruff.isort] +known-first-party = ["nf_core"] + +[tool.ruff.per-file-ignores] +"__init__.py" = ["E402", "F401"] diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index 1f747dc3..3bac800f 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -127,6 +127,13 @@ workflow.onComplete { } } +workflow.onError { + if (workflow.errorReport.contains("Process requirement exceeds available memory")) { + println("🛑 Default resources exceed availability 🛑 ") + println("💡 See here on how to configure pipeline: https://nf-co.re/docs/usage/configuration#tuning-workflow-resources 💡") + } +} + /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ THE END From a5f02598f501cf21d2dc0dd1c2eb051beb355d93 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Thu, 1 Feb 2024 15:07:04 +0100 Subject: [PATCH 131/201] Fix lint --- .nf-core.yml | 6 ++++++ nextflow_schema.json | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.nf-core.yml b/.nf-core.yml index 3805dc81..e8247adb 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -1 +1,7 @@ repository_type: pipeline + +lint: + nextflow_config: + - config_defaults: + - params.bamtools_filter_se_config + - params.bamtools_filter_pe_config diff --git a/nextflow_schema.json b/nextflow_schema.json index 1cc86686..c05ca671 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -163,7 +163,7 @@ "type": "string", "format": "directory-path", "description": "Directory / URL base for iGenomes references.", - "default": "s3://ngi-igenomes/igenomes", + "default": "s3://ngi-igenomes/igenomes/", "fa_icon": "fas fa-cloud-download-alt", "hidden": true }, From 2efa8faf5cd5f6a93e65006abe2db01bd1d39446 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Thu, 1 Feb 2024 15:53:41 +0100 Subject: [PATCH 132/201] fix linting --- modules.json | 201 +++++++++++++----- .../nf-core/bam_markduplicates_picard/main.nf | 12 +- .../bam_markduplicates_picard/meta.yml | 8 +- .../tests/main.nf.test | 93 ++++++++ .../tests/main.nf.test.snap | 22 ++ .../bam_markduplicates_picard/tests/tags.yml | 2 + .../nf-core/bam_sort_stats_samtools/meta.yml | 6 +- .../tests/main.nf.test | 82 +++++++ .../tests/main.nf.test.snap | 86 ++++++++ .../bam_sort_stats_samtools/tests/tags.yml | 2 + .../nf-core/bam_stats_samtools/main.nf | 2 +- .../nf-core/bam_stats_samtools/meta.yml | 4 +- .../bam_stats_samtools/tests/main.nf.test | 108 ++++++++++ .../tests/main.nf.test.snap | 128 +++++++++++ .../nf-core/bam_stats_samtools/tests/tags.yml | 2 + .../nf-core/fastq_align_bowtie2/main.nf | 8 +- .../nf-core/fastq_align_bowtie2/meta.yml | 10 +- subworkflows/nf-core/fastq_align_bwa/main.nf | 2 +- subworkflows/nf-core/fastq_align_bwa/meta.yml | 13 +- .../nf-core/fastq_align_chromap/main.nf | 2 +- .../nf-core/fastq_align_chromap/meta.yml | 5 +- .../fastq_fastqc_umitools_trimgalore/meta.yml | 12 +- 22 files changed, 726 insertions(+), 84 deletions(-) create mode 100644 subworkflows/nf-core/bam_markduplicates_picard/tests/main.nf.test create mode 100644 subworkflows/nf-core/bam_markduplicates_picard/tests/main.nf.test.snap create mode 100644 subworkflows/nf-core/bam_markduplicates_picard/tests/tags.yml create mode 100644 subworkflows/nf-core/bam_sort_stats_samtools/tests/main.nf.test create mode 100644 subworkflows/nf-core/bam_sort_stats_samtools/tests/main.nf.test.snap create mode 100644 subworkflows/nf-core/bam_sort_stats_samtools/tests/tags.yml create mode 100644 subworkflows/nf-core/bam_stats_samtools/tests/main.nf.test create mode 100644 subworkflows/nf-core/bam_stats_samtools/tests/main.nf.test.snap create mode 100644 subworkflows/nf-core/bam_stats_samtools/tests/tags.yml diff --git a/modules.json b/modules.json index 758b63a5..99214bc7 100644 --- a/modules.json +++ b/modules.json @@ -8,177 +8,259 @@ "bowtie2/align": { "branch": "master", "git_sha": "fe54581f8bed20e4c4a51c616c93fd3379d89820", - "installed_by": ["modules", "fastq_align_bowtie2"] + "installed_by": [ + "modules", + "fastq_align_bowtie2" + ] }, "bowtie2/build": { "branch": "master", "git_sha": "6a24fbe314bb2e6fe6306c29a63076ea87e8eb3c", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "bwa/index": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "bwa/mem": { "branch": "master", "git_sha": "603ecbd9f45300c9788f197d2a15a005685b4220", - "installed_by": ["modules", "fastq_align_bwa"] + "installed_by": [ + "modules", + "fastq_align_bwa" + ] }, "chromap/chromap": { "branch": "master", "git_sha": "603ecbd9f45300c9788f197d2a15a005685b4220", - "installed_by": ["modules", "fastq_align_chromap"] + "installed_by": [ + "modules", + "fastq_align_chromap" + ] }, "chromap/index": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "custom/dumpsoftwareversions": { "branch": "master", "git_sha": "8ec825f465b9c17f9d83000022995b4f7de6fe93", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "custom/getchromsizes": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "deeptools/computematrix": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "deeptools/plotfingerprint": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "deeptools/plotheatmap": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "deeptools/plotprofile": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "fastqc": { "branch": "master", - "git_sha": "9a4517e720bc812e95b56d23d15a1653b6db4f53", - "installed_by": ["modules", "fastq_fastqc_umitools_trimgalore"] + "git_sha": "f4ae1d942bd50c5c0b9bd2de1393ce38315ba57c", + "installed_by": [ + "fastq_fastqc_umitools_trimgalore", + "modules" + ] }, "gffread": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "gunzip": { "branch": "master", "git_sha": "5c460c5a4736974abde2843294f35307ee2b0e5e", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "homer/annotatepeaks": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "khmer/uniquekmers": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "macs2/callpeak": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "multiqc": { "branch": "master", "git_sha": "8ec825f465b9c17f9d83000022995b4f7de6fe93", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "phantompeakqualtools": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "picard/collectmultiplemetrics": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "picard/markduplicates": { "branch": "master", "git_sha": "735e1e04e7e01751d2d6e97055bbdb6f70683cc1", - "installed_by": ["modules", "bam_markduplicates_picard"] + "installed_by": [ + "modules", + "bam_markduplicates_picard" + ] }, "picard/mergesamfiles": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "preseq/lcextrap": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "samtools/flagstat": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules", "bam_stats_samtools"] + "installed_by": [ + "modules", + "bam_stats_samtools" + ] }, "samtools/idxstats": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules", "bam_stats_samtools"] + "installed_by": [ + "modules", + "bam_stats_samtools" + ] }, "samtools/index": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules", "bam_markduplicates_picard", "bam_sort_stats_samtools"] + "installed_by": [ + "modules", + "bam_markduplicates_picard", + "bam_sort_stats_samtools" + ] }, "samtools/sort": { "branch": "master", "git_sha": "a0f7be95788366c1923171e358da7d049eb440f9", - "installed_by": ["modules", "bam_sort_stats_samtools"] + "installed_by": [ + "modules", + "bam_sort_stats_samtools" + ] }, "samtools/stats": { "branch": "master", "git_sha": "735e1e04e7e01751d2d6e97055bbdb6f70683cc1", - "installed_by": ["modules", "bam_stats_samtools"] + "installed_by": [ + "modules", + "bam_stats_samtools" + ] }, "subread/featurecounts": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "trimgalore": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["fastq_fastqc_umitools_trimgalore", "modules"] + "installed_by": [ + "fastq_fastqc_umitools_trimgalore", + "modules" + ] }, "ucsc/bedgraphtobigwig": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "umitools/extract": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["fastq_fastqc_umitools_trimgalore"] + "installed_by": [ + "fastq_fastqc_umitools_trimgalore" + ] }, "untar": { "branch": "master", "git_sha": "5c460c5a4736974abde2843294f35307ee2b0e5e", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "untarfiles": { "branch": "master", "git_sha": "5c460c5a4736974abde2843294f35307ee2b0e5e", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] } } }, @@ -186,41 +268,58 @@ "nf-core": { "bam_markduplicates_picard": { "branch": "master", - "git_sha": "a9784afdd5dcda23b84e64db75dc591065d64653", - "installed_by": ["subworkflows"] + "git_sha": "0c38be7e652a0b2f3a37681ee4c0dbdf85677647", + "installed_by": [ + "subworkflows" + ] }, "bam_sort_stats_samtools": { "branch": "master", - "git_sha": "735e1e04e7e01751d2d6e97055bbdb6f70683cc1", - "installed_by": ["fastq_align_bowtie2", "fastq_align_chromap", "fastq_align_bwa"] + "git_sha": "0c38be7e652a0b2f3a37681ee4c0dbdf85677647", + "installed_by": [ + "fastq_align_bowtie2", + "fastq_align_bwa", + "fastq_align_chromap" + ] }, "bam_stats_samtools": { "branch": "master", - "git_sha": "735e1e04e7e01751d2d6e97055bbdb6f70683cc1", - "installed_by": ["bam_sort_stats_samtools", "bam_markduplicates_picard"] + "git_sha": "0c38be7e652a0b2f3a37681ee4c0dbdf85677647", + "installed_by": [ + "bam_markduplicates_picard", + "bam_sort_stats_samtools" + ] }, "fastq_align_bowtie2": { "branch": "master", - "git_sha": "ac75f79157ecc64283a2b3a559f1ba90bc0f2259", - "installed_by": ["subworkflows"] + "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", + "installed_by": [ + "subworkflows" + ] }, "fastq_align_bwa": { "branch": "master", - "git_sha": "a9784afdd5dcda23b84e64db75dc591065d64653", - "installed_by": ["subworkflows"] + "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", + "installed_by": [ + "subworkflows" + ] }, "fastq_align_chromap": { "branch": "master", - "git_sha": "735e1e04e7e01751d2d6e97055bbdb6f70683cc1", - "installed_by": ["subworkflows"] + "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", + "installed_by": [ + "subworkflows" + ] }, "fastq_fastqc_umitools_trimgalore": { "branch": "master", - "git_sha": "a9784afdd5dcda23b84e64db75dc591065d64653", - "installed_by": ["subworkflows"] + "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", + "installed_by": [ + "subworkflows" + ] } } } } } -} +} \ No newline at end of file diff --git a/subworkflows/nf-core/bam_markduplicates_picard/main.nf b/subworkflows/nf-core/bam_markduplicates_picard/main.nf index 3725ea95..de8130fb 100644 --- a/subworkflows/nf-core/bam_markduplicates_picard/main.nf +++ b/subworkflows/nf-core/bam_markduplicates_picard/main.nf @@ -17,7 +17,7 @@ workflow BAM_MARKDUPLICATES_PICARD { ch_versions = Channel.empty() - PICARD_MARKDUPLICATES ( ch_bam, ch_fasta.map { [ [:], it ] }, ch_fai.map { [ [:], it ] } ) + PICARD_MARKDUPLICATES ( ch_bam, ch_fasta, ch_fai ) ch_versions = ch_versions.mix(PICARD_MARKDUPLICATES.out.versions.first()) SAMTOOLS_INDEX ( PICARD_MARKDUPLICATES.out.bam ) @@ -26,13 +26,9 @@ workflow BAM_MARKDUPLICATES_PICARD { ch_bam_bai = PICARD_MARKDUPLICATES.out.bam .join(SAMTOOLS_INDEX.out.bai, by: [0], remainder: true) .join(SAMTOOLS_INDEX.out.csi, by: [0], remainder: true) - .map { - meta, bam, bai, csi -> - if (bai) { - [ meta, bam, bai ] - } else { - [ meta, bam, csi ] - } + .map{meta, bam, bai, csi -> + if (bai) [ meta, bam, bai ] + else [ meta, bam, csi ] } BAM_STATS_SAMTOOLS ( ch_bam_bai, ch_fasta ) diff --git a/subworkflows/nf-core/bam_markduplicates_picard/meta.yml b/subworkflows/nf-core/bam_markduplicates_picard/meta.yml index d5e71609..fe63068e 100644 --- a/subworkflows/nf-core/bam_markduplicates_picard/meta.yml +++ b/subworkflows/nf-core/bam_markduplicates_picard/meta.yml @@ -6,14 +6,13 @@ keywords: - bam - sam - cram - -modules: +components: - picard/markduplicates - samtools/index - samtools/stats - samtools/idxstats - samtools/flagstat - + - bam_stats_samtools input: - ch_bam: description: | @@ -59,3 +58,6 @@ output: authors: - "@dmarron" - "@drpatelh" +maintainers: + - "@dmarron" + - "@drpatelh" diff --git a/subworkflows/nf-core/bam_markduplicates_picard/tests/main.nf.test b/subworkflows/nf-core/bam_markduplicates_picard/tests/main.nf.test new file mode 100644 index 00000000..d8d24290 --- /dev/null +++ b/subworkflows/nf-core/bam_markduplicates_picard/tests/main.nf.test @@ -0,0 +1,93 @@ +nextflow_workflow { + + name "Test Workflow BAM_MARKDUPLICATES_PICARD" + script "../main.nf" + workflow "BAM_MARKDUPLICATES_PICARD" + + tag "picard" + tag "picard/markduplicates" + tag "subworkflows" + tag "subworkflows_nfcore" + tag "bam_markduplicates_picard" + tag "subworkflows/bam_markduplicates_picard" + tag "subworkflows/bam_stats_samtools" + tag "bam_stats_samtools" + tag "samtools" + tag "samtools/flagstat" + tag "samtools/idxstats" + tag "samtools/index" + tag "samtools/stats" + + test("sarscov2 - bam") { + + when { + workflow { + """ + input[0] = Channel.of([ + [ id:'test', single_end: false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true) + ]) + input[1] = Channel.of([ + [ id:'genome' ], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ]) + input[2] = Channel.of([ + [ id:'genome' ], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta.fai', checkIfExists: true) + ]) + """ + } + } + + then { + assertAll( + { assert workflow.success}, + { assert snapshot( + path(workflow.out.bam[0][1]), + path(workflow.out.bai[0][1]), + path(workflow.out.flagstat[0][1]), + path(workflow.out.idxstats[0][1]), + path(workflow.out.stats[0][1]), + ).match("sarscov2 - bam") }, + { assert path(workflow.out.metrics.get(0).get(1)).getText().contains("97") } + ) + } + } + + test("homo_sapiens - cram") { + + when { + workflow { + """ + input[0] = Channel.of([ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram', checkIfExists: true) + ]) + input[1] = Channel.of([ + [ id:'genome' ], + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) + ]) + input[2] = Channel.of([ + [ id:'genome' ], + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta.fai', checkIfExists: true) + ]) + """ + } + } + + then { + assertAll( + { assert workflow.success}, + { assert snapshot( + path(workflow.out.bam[0][1]), + path(workflow.out.bai[0][1]), + path(workflow.out.flagstat[0][1]), + path(workflow.out.idxstats[0][1]), + path(workflow.out.stats[0][1]), + ).match("homo_sapiens - cram") }, + { assert path(workflow.out.metrics.get(0).get(1)).getText().contains("0.999986") } + ) + } + } + +} diff --git a/subworkflows/nf-core/bam_markduplicates_picard/tests/main.nf.test.snap b/subworkflows/nf-core/bam_markduplicates_picard/tests/main.nf.test.snap new file mode 100644 index 00000000..a208d101 --- /dev/null +++ b/subworkflows/nf-core/bam_markduplicates_picard/tests/main.nf.test.snap @@ -0,0 +1,22 @@ +{ + "homo_sapiens - cram": { + "content": [ + "test.bam:md5,6641dc05efa8384a061f378d86d922cd", + "test.bam.bai:md5,c41c60d8a94adebe53b6df80b6e90d38", + "test.flagstat:md5,93b0ef463df947ede1f42ff60396c34d", + "test.idxstats:md5,e179601fa7b8ebce81ac3765206f6c15", + "test.stats:md5,0035ac8900d85e9a790f4c1f48b76947" + ], + "timestamp": "2023-12-05T17:45:12.484869" + }, + "sarscov2 - bam": { + "content": [ + "test.bam:md5,3091fe6ba1b7530f382fe40b9fd8f45b", + "test.bam.bai:md5,4d3ae8d013444b55e17aa0149a2ab404", + "test.flagstat:md5,4f7ffd1e6a5e85524d443209ac97d783", + "test.idxstats:md5,df60a8c8d6621100d05178c93fb053a2", + "test.stats:md5,e32e7e49dce1fbe327a89e0fb7bc01b1" + ], + "timestamp": "2023-12-05T17:43:58.582652" + } +} diff --git a/subworkflows/nf-core/bam_markduplicates_picard/tests/tags.yml b/subworkflows/nf-core/bam_markduplicates_picard/tests/tags.yml new file mode 100644 index 00000000..10b85270 --- /dev/null +++ b/subworkflows/nf-core/bam_markduplicates_picard/tests/tags.yml @@ -0,0 +1,2 @@ +subworkflows/bam_markduplicates_picard: + - subworkflows/nf-core/bam_markduplicates_picard/** diff --git a/subworkflows/nf-core/bam_sort_stats_samtools/meta.yml b/subworkflows/nf-core/bam_sort_stats_samtools/meta.yml index 8dfbd58d..e01f9ccf 100644 --- a/subworkflows/nf-core/bam_sort_stats_samtools/meta.yml +++ b/subworkflows/nf-core/bam_sort_stats_samtools/meta.yml @@ -6,12 +6,13 @@ keywords: - bam - sam - cram -modules: +components: - samtools/sort - samtools/index - samtools/stats - samtools/idxstats - samtools/flagstat + - bam_stats_samtools input: - meta: type: map @@ -64,3 +65,6 @@ output: authors: - "@drpatelh" - "@ewels" +maintainers: + - "@drpatelh" + - "@ewels" diff --git a/subworkflows/nf-core/bam_sort_stats_samtools/tests/main.nf.test b/subworkflows/nf-core/bam_sort_stats_samtools/tests/main.nf.test new file mode 100644 index 00000000..75b5b934 --- /dev/null +++ b/subworkflows/nf-core/bam_sort_stats_samtools/tests/main.nf.test @@ -0,0 +1,82 @@ +nextflow_workflow { + + name "Test Workflow BAM_SORT_STATS_SAMTOOLS" + script "../main.nf" + workflow "BAM_SORT_STATS_SAMTOOLS" + tag "subworkflows" + tag "subworkflows_nfcore" + tag "subworkflows/bam_sort_stats_samtools" + tag "bam_sort_stats_samtools" + tag "subworkflows/bam_stats_samtools" + tag "bam_stats_samtools" + tag "samtools" + tag "samtools/index" + tag "samtools/sort" + tag "samtools/stats" + tag "samtools/idxstats" + tag "samtools/flagstat" + + test("test_bam_sort_stats_samtools_single_end") { + + when { + params { + outdir = "$outputDir" + } + workflow { + """ + input[0] = Channel.of([ + [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.single_end.bam', checkIfExists: true) + ]) + input[1] = Channel.of([ + [ id:'genome' ], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ]) + """ + } + } + + then { + assertAll( + { assert workflow.success}, + { assert workflow.out.bam.get(0).get(1) ==~ ".*.bam"}, + { assert workflow.out.bai.get(0).get(1) ==~ ".*.bai"}, + { assert snapshot(workflow.out.stats).match("test_bam_sort_stats_samtools_single_end_stats") }, + { assert snapshot(workflow.out.flagstat).match("test_bam_sort_stats_samtools_single_end_flagstats") }, + { assert snapshot(workflow.out.idxstats).match("test_bam_sort_stats_samtools_single_end_idxstats") } + ) + } + } + + test("test_bam_sort_stats_samtools_paired_end") { + + when { + params { + outdir = "$outputDir" + } + workflow { + """ + input[0] = Channel.of([ + [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.bam', checkIfExists: true) + ]) + input[1] = Channel.of([ + [ id:'genome' ], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ]) + """ + } + } + + then { + assertAll( + { assert workflow.success}, + { assert workflow.out.bam.get(0).get(1) ==~ ".*.bam"}, + { assert workflow.out.bai.get(0).get(1) ==~ ".*.bai"}, + { assert snapshot(workflow.out.stats).match("test_bam_sort_stats_samtools_paired_end_stats") }, + { assert snapshot(workflow.out.flagstat).match("test_bam_sort_stats_samtools_paired_end_flagstats") }, + { assert snapshot(workflow.out.idxstats).match("test_bam_sort_stats_samtools_paired_end_idxstats") } + ) + } + } +} diff --git a/subworkflows/nf-core/bam_sort_stats_samtools/tests/main.nf.test.snap b/subworkflows/nf-core/bam_sort_stats_samtools/tests/main.nf.test.snap new file mode 100644 index 00000000..c159eef3 --- /dev/null +++ b/subworkflows/nf-core/bam_sort_stats_samtools/tests/main.nf.test.snap @@ -0,0 +1,86 @@ +{ + "test_bam_sort_stats_samtools_paired_end_flagstats": { + "content": [ + [ + [ + { + "id": "test", + "single_end": false + }, + "test.flagstat:md5,4f7ffd1e6a5e85524d443209ac97d783" + ] + ] + ], + "timestamp": "2023-10-22T20:25:03.687121177" + }, + "test_bam_sort_stats_samtools_paired_end_idxstats": { + "content": [ + [ + [ + { + "id": "test", + "single_end": false + }, + "test.idxstats:md5,df60a8c8d6621100d05178c93fb053a2" + ] + ] + ], + "timestamp": "2023-10-22T20:25:03.709648916" + }, + "test_bam_sort_stats_samtools_single_end_stats": { + "content": [ + [ + [ + { + "id": "test", + "single_end": false + }, + "test.stats:md5,f281507081517414eb1a04b2d9c855b2" + ] + ] + ], + "timestamp": "2024-01-18T17:10:02.818694" + }, + "test_bam_sort_stats_samtools_paired_end_stats": { + "content": [ + [ + [ + { + "id": "test", + "single_end": false + }, + "test.stats:md5,e32e7e49dce1fbe327a89e0fb7bc01b1" + ] + ] + ], + "timestamp": "2023-12-04T11:06:59.253905951" + }, + "test_bam_sort_stats_samtools_single_end_idxstats": { + "content": [ + [ + [ + { + "id": "test", + "single_end": false + }, + "test.idxstats:md5,613e048487662c694aa4a2f73ca96a20" + ] + ] + ], + "timestamp": "2024-01-18T17:10:02.84631" + }, + "test_bam_sort_stats_samtools_single_end_flagstats": { + "content": [ + [ + [ + { + "id": "test", + "single_end": false + }, + "test.flagstat:md5,2191911d72575a2358b08b1df64ccb53" + ] + ] + ], + "timestamp": "2024-01-18T17:10:02.829756" + } +} \ No newline at end of file diff --git a/subworkflows/nf-core/bam_sort_stats_samtools/tests/tags.yml b/subworkflows/nf-core/bam_sort_stats_samtools/tests/tags.yml new file mode 100644 index 00000000..30b69d6a --- /dev/null +++ b/subworkflows/nf-core/bam_sort_stats_samtools/tests/tags.yml @@ -0,0 +1,2 @@ +subworkflows/bam_sort_stats_samtools: + - subworkflows/nf-core/bam_sort_stats_samtools/** diff --git a/subworkflows/nf-core/bam_stats_samtools/main.nf b/subworkflows/nf-core/bam_stats_samtools/main.nf index e80ce43a..44d4c010 100644 --- a/subworkflows/nf-core/bam_stats_samtools/main.nf +++ b/subworkflows/nf-core/bam_stats_samtools/main.nf @@ -14,7 +14,7 @@ workflow BAM_STATS_SAMTOOLS { main: ch_versions = Channel.empty() - SAMTOOLS_STATS ( ch_bam_bai, ch_fasta.map { [ [:], it ] } ) + SAMTOOLS_STATS ( ch_bam_bai, ch_fasta ) ch_versions = ch_versions.mix(SAMTOOLS_STATS.out.versions) SAMTOOLS_FLAGSTAT ( ch_bam_bai ) diff --git a/subworkflows/nf-core/bam_stats_samtools/meta.yml b/subworkflows/nf-core/bam_stats_samtools/meta.yml index b05086bc..809bf736 100644 --- a/subworkflows/nf-core/bam_stats_samtools/meta.yml +++ b/subworkflows/nf-core/bam_stats_samtools/meta.yml @@ -7,7 +7,7 @@ keywords: - bam - sam - cram -modules: +components: - samtools/stats - samtools/idxstats - samtools/flagstat @@ -39,3 +39,5 @@ output: Structure: [ path(versions.yml) ] authors: - "@drpatelh" +maintainers: + - "@drpatelh" diff --git a/subworkflows/nf-core/bam_stats_samtools/tests/main.nf.test b/subworkflows/nf-core/bam_stats_samtools/tests/main.nf.test new file mode 100644 index 00000000..c8b21f28 --- /dev/null +++ b/subworkflows/nf-core/bam_stats_samtools/tests/main.nf.test @@ -0,0 +1,108 @@ +nextflow_workflow { + + name "Test Workflow BAM_STATS_SAMTOOLS" + script "../main.nf" + workflow "BAM_STATS_SAMTOOLS" + tag "subworkflows" + tag "subworkflows_nfcore" + tag "bam_stats_samtools" + tag "subworkflows/bam_stats_samtools" + tag "samtools" + tag "samtools/flagstat" + tag "samtools/idxstats" + tag "samtools/stats" + + test("test_bam_stats_samtools_single_end") { + + when { + params { + outdir = "$outputDir" + } + workflow { + """ + input[0] = Channel.of([ + [ id:'test', single_end:true ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.single_end.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.single_end.sorted.bam.bai', checkIfExists: true) + ]) + input[1] = Channel.of([ + [ id:'genome' ], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ]) + """ + } + } + + then { + assertAll( + { assert workflow.success}, + { assert snapshot(workflow.out.stats).match("test_bam_stats_samtools_single_end_stats") }, + { assert snapshot(workflow.out.flagstat).match("test_bam_stats_samtools_single_end_flagstats") }, + { assert snapshot(workflow.out.idxstats).match("test_bam_stats_samtools_single_end_idxstats") } + ) + } + } + + test("test_bam_stats_samtools_paired_end") { + + when { + params { + outdir = "$outputDir" + } + workflow { + """ + input[0] = Channel.of([ + [ id:'test', single_end:true ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam.bai', checkIfExists: true) + ]) + input[1] = Channel.of([ + [ id:'genome' ], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ]) + """ + } + } + + then { + assertAll( + { assert workflow.success }, + { assert snapshot(workflow.out.stats).match("test_bam_stats_samtools_paired_end_stats") }, + { assert snapshot(workflow.out.flagstat).match("test_bam_stats_samtools_paired_end_flagstats") }, + { assert snapshot(workflow.out.idxstats).match("test_bam_stats_samtools_paired_end_idxstats") } + ) + } + } + + test("test_bam_stats_samtools_paired_end_cram") { + + when { + params { + outdir = "$outputDir" + } + workflow { + """ + input[0] = Channel.of([ + [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram.crai', checkIfExists: true) + ]) + input[1] = Channel.of([ + [ id:'genome' ], + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) + ]) + """ + } + } + + then { + assertAll( + { assert workflow.success}, + { assert snapshot(workflow.out.stats).match("test_bam_stats_samtools_paired_end_cram_stats") }, + { assert snapshot(workflow.out.flagstat).match("test_bam_stats_samtools_paired_end_cram_flagstats") }, + { assert snapshot(workflow.out.idxstats).match("test_bam_stats_samtools_paired_end_cram_idxstats") } + ) + } + } + +} diff --git a/subworkflows/nf-core/bam_stats_samtools/tests/main.nf.test.snap b/subworkflows/nf-core/bam_stats_samtools/tests/main.nf.test.snap new file mode 100644 index 00000000..8bf0d379 --- /dev/null +++ b/subworkflows/nf-core/bam_stats_samtools/tests/main.nf.test.snap @@ -0,0 +1,128 @@ +{ + "test_bam_stats_samtools_paired_end_cram_flagstats": { + "content": [ + [ + [ + { + "id": "test", + "single_end": false + }, + "test.flagstat:md5,a53f3d26e2e9851f7d528442bbfe9781" + ] + ] + ], + "timestamp": "2023-11-06T09:31:26.194017574" + }, + "test_bam_stats_samtools_paired_end_stats": { + "content": [ + [ + [ + { + "id": "test", + "single_end": true + }, + "test.stats:md5,49e2b43344ff92bc4c02463a58f7ba4a" + ] + ] + ], + "timestamp": "2024-01-18T17:17:27.704335" + }, + "test_bam_stats_samtools_paired_end_flagstats": { + "content": [ + [ + [ + { + "id": "test", + "single_end": true + }, + "test.flagstat:md5,4f7ffd1e6a5e85524d443209ac97d783" + ] + ] + ], + "timestamp": "2024-01-18T17:17:27.717482" + }, + "test_bam_stats_samtools_single_end_flagstats": { + "content": [ + [ + [ + { + "id": "test", + "single_end": true + }, + "test.flagstat:md5,2191911d72575a2358b08b1df64ccb53" + ] + ] + ], + "timestamp": "2023-11-06T09:26:10.340046381" + }, + "test_bam_stats_samtools_paired_end_cram_idxstats": { + "content": [ + [ + [ + { + "id": "test", + "single_end": false + }, + "test.idxstats:md5,e179601fa7b8ebce81ac3765206f6c15" + ] + ] + ], + "timestamp": "2023-11-06T09:31:26.207052003" + }, + "test_bam_stats_samtools_single_end_stats": { + "content": [ + [ + [ + { + "id": "test", + "single_end": true + }, + "test.stats:md5,5a6667d97806e5002731e9cf23674fad" + ] + ] + ], + "timestamp": "2023-12-04T11:07:06.676820877" + }, + "test_bam_stats_samtools_paired_end_idxstats": { + "content": [ + [ + [ + { + "id": "test", + "single_end": true + }, + "test.idxstats:md5,df60a8c8d6621100d05178c93fb053a2" + ] + ] + ], + "timestamp": "2024-01-18T17:17:27.726719" + }, + "test_bam_stats_samtools_single_end_idxstats": { + "content": [ + [ + [ + { + "id": "test", + "single_end": true + }, + "test.idxstats:md5,613e048487662c694aa4a2f73ca96a20" + ] + ] + ], + "timestamp": "2023-11-06T09:26:10.349439801" + }, + "test_bam_stats_samtools_paired_end_cram_stats": { + "content": [ + [ + [ + { + "id": "test", + "single_end": false + }, + "test.stats:md5,2cf2fe93596ee3d74f946097b204a629" + ] + ] + ], + "timestamp": "2023-12-04T11:07:22.30295557" + } +} \ No newline at end of file diff --git a/subworkflows/nf-core/bam_stats_samtools/tests/tags.yml b/subworkflows/nf-core/bam_stats_samtools/tests/tags.yml new file mode 100644 index 00000000..ec2f2d68 --- /dev/null +++ b/subworkflows/nf-core/bam_stats_samtools/tests/tags.yml @@ -0,0 +1,2 @@ +subworkflows/bam_stats_samtools: + - subworkflows/nf-core/bam_stats_samtools/** diff --git a/subworkflows/nf-core/fastq_align_bowtie2/main.nf b/subworkflows/nf-core/fastq_align_bowtie2/main.nf index e77cb2c4..ba4420f7 100644 --- a/subworkflows/nf-core/fastq_align_bowtie2/main.nf +++ b/subworkflows/nf-core/fastq_align_bowtie2/main.nf @@ -21,7 +21,7 @@ workflow FASTQ_ALIGN_BOWTIE2 { // Map reads with Bowtie2 // BOWTIE2_ALIGN ( ch_reads, ch_index, save_unaligned, sort_bam ) - ch_versions = ch_versions.mix(BOWTIE2_ALIGN.out.versions.first()) + ch_versions = ch_versions.mix(BOWTIE2_ALIGN.out.versions) // // Sort, index BAM file and run samtools stats, flagstat and idxstats @@ -30,9 +30,9 @@ workflow FASTQ_ALIGN_BOWTIE2 { ch_versions = ch_versions.mix(BAM_SORT_STATS_SAMTOOLS.out.versions) emit: - bam_orig = BOWTIE2_ALIGN.out.aligned // channel: [ val(meta), bam ] - log_out = BOWTIE2_ALIGN.out.log // channel: [ val(meta), log ] - fastq = BOWTIE2_ALIGN.out.fastq // channel: [ val(meta), fastq ] + bam_orig = BOWTIE2_ALIGN.out.aligned // channel: [ val(meta), aligned ] + log_out = BOWTIE2_ALIGN.out.log // channel: [ val(meta), log ] + fastq = BOWTIE2_ALIGN.out.fastq // channel: [ val(meta), fastq ] bam = BAM_SORT_STATS_SAMTOOLS.out.bam // channel: [ val(meta), [ bam ] ] bai = BAM_SORT_STATS_SAMTOOLS.out.bai // channel: [ val(meta), [ bai ] ] diff --git a/subworkflows/nf-core/fastq_align_bowtie2/meta.yml b/subworkflows/nf-core/fastq_align_bowtie2/meta.yml index ad378077..58023a89 100644 --- a/subworkflows/nf-core/fastq_align_bowtie2/meta.yml +++ b/subworkflows/nf-core/fastq_align_bowtie2/meta.yml @@ -1,3 +1,4 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/subworkflows/yaml-schema.json name: fastq_align_bowtie2 description: Align reads to a reference genome using bowtie2 then sort with samtools keywords: @@ -5,13 +6,14 @@ keywords: - fasta - genome - reference -modules: +components: - bowtie2/align - samtools/sort - samtools/index - samtools/stats - samtools/idxstats - samtools/flagstat + - bam_sort_stats_samtools input: - meta: type: map @@ -33,9 +35,10 @@ input: Save reads that do not map to the reference (true) or discard them (false) (default: false) - sort_bam: + type: boolean description: | Save reads that do not map to the reference (true) or discard them (false) - (default: false) + default: false - ch_fasta: type: file description: Reference fasta file @@ -58,6 +61,7 @@ output: type: file description: Alignment log pattern: "*.log" -# TODO Add samtools outputs authors: - "@drpatelh" +maintainers: + - "@drpatelh" diff --git a/subworkflows/nf-core/fastq_align_bwa/main.nf b/subworkflows/nf-core/fastq_align_bwa/main.nf index 4ce4f886..9192550d 100644 --- a/subworkflows/nf-core/fastq_align_bwa/main.nf +++ b/subworkflows/nf-core/fastq_align_bwa/main.nf @@ -10,7 +10,7 @@ workflow FASTQ_ALIGN_BWA { ch_reads // channel (mandatory): [ val(meta), [ path(reads) ] ] ch_index // channel (mandatory): [ val(meta2), path(index) ] val_sort_bam // boolean (mandatory): true or false - ch_fasta // channel (optional) : [ path(fasta) ] + ch_fasta // channel (optional) : [ val(meta3), path(fasta) ] main: ch_versions = Channel.empty() diff --git a/subworkflows/nf-core/fastq_align_bwa/meta.yml b/subworkflows/nf-core/fastq_align_bwa/meta.yml index 548fec3f..fa218408 100644 --- a/subworkflows/nf-core/fastq_align_bwa/meta.yml +++ b/subworkflows/nf-core/fastq_align_bwa/meta.yml @@ -6,13 +6,15 @@ keywords: - fasta - genome - reference -modules: +components: + - bwa/mem - bwa/align - samtools/sort - samtools/index - samtools/stats - samtools/idxstats - samtools/flagstat + - bam_sort_stats_samtools input: - ch_reads: description: | @@ -22,7 +24,7 @@ input: - ch_index: description: | BWA genome index files - Structure: [ val(meta2), path(index) ] + Structure: [ val(meta), path(index) ] - val_sort_bam: type: boolean description: If true bwa modules sort resulting bam files @@ -30,9 +32,8 @@ input: - ch_fasta: type: file description: | - Optional reference fasta file. This only needs to be given if val_sort_bam = true - Structure: [ path(fasta) ] - + Optional reference fasta file. This only needs to be given if val_sort_bam = true. + Structure: [ val(meta), path(fasta) ] output: - bam_orig: description: | @@ -68,3 +69,5 @@ output: Structure: [ path(versions.yml) ] authors: - "@JoseEspinosa" +maintainers: + - "@JoseEspinosa" diff --git a/subworkflows/nf-core/fastq_align_chromap/main.nf b/subworkflows/nf-core/fastq_align_chromap/main.nf index 9d706c98..26b6a4be 100644 --- a/subworkflows/nf-core/fastq_align_chromap/main.nf +++ b/subworkflows/nf-core/fastq_align_chromap/main.nf @@ -27,7 +27,7 @@ workflow FASTQ_ALIGN_CHROMAP { // // Sort, index BAM file and run samtools stats, flagstat and idxstats // - BAM_SORT_STATS_SAMTOOLS(CHROMAP_CHROMAP.out.bam, ch_fasta.map { it[1] }) + BAM_SORT_STATS_SAMTOOLS(CHROMAP_CHROMAP.out.bam, ch_fasta) ch_versions = ch_versions.mix(BAM_SORT_STATS_SAMTOOLS.out.versions) emit: diff --git a/subworkflows/nf-core/fastq_align_chromap/meta.yml b/subworkflows/nf-core/fastq_align_chromap/meta.yml index d5f59cac..1db3eff1 100644 --- a/subworkflows/nf-core/fastq_align_chromap/meta.yml +++ b/subworkflows/nf-core/fastq_align_chromap/meta.yml @@ -10,13 +10,14 @@ keywords: - chip-seq - atac-seq - hic -modules: +components: - chromap/chromap - samtools/sort - samtools/index - samtools/stats - samtools/idxstats - samtools/flagstat + - bam_sort_stats_samtools input: - meta: type: map @@ -98,3 +99,5 @@ output: pattern: "versions.yml" authors: - "@JoseEspinosa" +maintainers: + - "@JoseEspinosa" diff --git a/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/meta.yml b/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/meta.yml index 3b1a675c..a7df97f7 100644 --- a/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/meta.yml +++ b/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/meta.yml @@ -8,7 +8,7 @@ keywords: - UMI - trimming - trimgalore -modules: +components: - fastqc - umitools/extract - trimgalore @@ -47,13 +47,14 @@ input: type: integer description: | Inputs with fewer than this reads will be filtered out of the "reads" output channel - output: - reads: type: file description: > - Extracted FASTQ files. | - For single-end reads, pattern is \${prefix}.umi_extract.fastq.gz. | + Extracted FASTQ files. | For single-end reads, pattern is \${prefix}.umi_extract.fastq.gz. | + + + For paired-end reads, pattern is \${prefix}.umi_extract_{1,2}.fastq.gz. pattern: "*.{fastq.gz}" - fastqc_html: @@ -95,3 +96,6 @@ output: authors: - "@drpatelh" - "@KamilMaliszArdigen" +maintainers: + - "@drpatelh" + - "@KamilMaliszArdigen" From 26e03a5a2f102be6da132fcf019f0621eae15ecf Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Thu, 1 Feb 2024 22:14:37 +0100 Subject: [PATCH 133/201] Update modules --- modules/nf-core/bowtie2/align/environment.yml | 9 + modules/nf-core/bowtie2/align/main.nf | 17 +- modules/nf-core/bowtie2/align/meta.yml | 3 + .../bowtie2/align/tests/large_index.config | 5 + .../nf-core/bowtie2/align/tests/main.nf.test | 561 ++++++++++++++++++ .../bowtie2/align/tests/main.nf.test.snap | 263 ++++++++ .../nf-core/bowtie2/align/tests/sam.config | 5 + .../nf-core/bowtie2/align/tests/sam2.config | 5 + modules/nf-core/bowtie2/align/tests/tags.yml | 2 + modules/nf-core/bwa/mem/environment.yml | 9 + modules/nf-core/bwa/mem/main.nf | 18 +- modules/nf-core/bwa/mem/meta.yml | 3 + modules/nf-core/bwa/mem/tests/main.nf.test | 172 ++++++ .../nf-core/bwa/mem/tests/main.nf.test.snap | 126 ++++ modules/nf-core/bwa/mem/tests/tags.yml | 3 + .../nf-core/chromap/chromap/environment.yml | 8 + modules/nf-core/chromap/chromap/main.nf | 2 +- modules/nf-core/chromap/chromap/meta.yml | 5 +- modules/nf-core/fastqc/tests/main.nf.test | 14 +- .../nf-core/fastqc/tests/main.nf.test.snap | 76 ++- .../picard/markduplicates/environment.yml | 7 + modules/nf-core/picard/markduplicates/main.nf | 10 +- .../nf-core/picard/markduplicates/meta.yml | 4 + .../picard/markduplicates/tests/main.nf.test | 104 ++++ .../markduplicates/tests/main.nf.test.snap | 74 +++ .../markduplicates/tests/nextflow.config | 6 + .../picard/markduplicates/tests/tags.yml | 2 + .../nf-core/samtools/flagstat/environment.yml | 8 + modules/nf-core/samtools/flagstat/main.nf | 17 +- modules/nf-core/samtools/flagstat/meta.yml | 2 + .../samtools/flagstat/tests/main.nf.test | 36 ++ .../samtools/flagstat/tests/main.nf.test.snap | 16 + .../nf-core/samtools/flagstat/tests/tags.yml | 2 + .../nf-core/samtools/idxstats/environment.yml | 8 + modules/nf-core/samtools/idxstats/main.nf | 18 +- modules/nf-core/samtools/idxstats/meta.yml | 2 + .../samtools/idxstats/tests/main.nf.test | 36 ++ .../samtools/idxstats/tests/main.nf.test.snap | 16 + .../nf-core/samtools/idxstats/tests/tags.yml | 2 + .../nf-core/samtools/index/environment.yml | 8 + modules/nf-core/samtools/index/main.nf | 6 +- modules/nf-core/samtools/index/meta.yml | 4 + .../samtools/index/tests/csi.nextflow.config | 7 + .../nf-core/samtools/index/tests/main.nf.test | 87 +++ .../samtools/index/tests/main.nf.test.snap | 28 + modules/nf-core/samtools/index/tests/tags.yml | 2 + modules/nf-core/samtools/sort/environment.yml | 8 + modules/nf-core/samtools/sort/main.nf | 6 +- modules/nf-core/samtools/sort/meta.yml | 3 + .../nf-core/samtools/sort/tests/main.nf.test | 73 +++ .../samtools/sort/tests/main.nf.test.snap | 48 ++ .../samtools/sort/tests/nextflow.config | 7 + modules/nf-core/samtools/sort/tests/tags.yml | 3 + .../nf-core/samtools/stats/environment.yml | 8 + modules/nf-core/samtools/stats/main.nf | 6 +- modules/nf-core/samtools/stats/meta.yml | 4 + .../nf-core/samtools/stats/tests/main.nf.test | 78 +++ .../samtools/stats/tests/main.nf.test.snap | 64 ++ modules/nf-core/samtools/stats/tests/tags.yml | 2 + modules/nf-core/trimgalore/environment.yml | 7 + modules/nf-core/trimgalore/main.nf | 2 +- modules/nf-core/trimgalore/meta.yml | 4 + modules/nf-core/trimgalore/tests/main.nf.test | 105 ++++ .../trimgalore/tests/main.nf.test.snap | 148 +++++ modules/nf-core/trimgalore/tests/tags.yml | 2 + .../nf-core/umitools/extract/environment.yml | 7 + modules/nf-core/umitools/extract/main.nf | 6 +- modules/nf-core/umitools/extract/meta.yml | 17 +- .../umitools/extract/tests/main.nf.test | 35 ++ .../umitools/extract/tests/main.nf.test.snap | 10 + .../umitools/extract/tests/nextflow.config | 9 + .../nf-core/umitools/extract/tests/tags.yml | 2 + 72 files changed, 2429 insertions(+), 53 deletions(-) create mode 100644 modules/nf-core/bowtie2/align/environment.yml create mode 100644 modules/nf-core/bowtie2/align/tests/large_index.config create mode 100644 modules/nf-core/bowtie2/align/tests/main.nf.test create mode 100644 modules/nf-core/bowtie2/align/tests/main.nf.test.snap create mode 100644 modules/nf-core/bowtie2/align/tests/sam.config create mode 100644 modules/nf-core/bowtie2/align/tests/sam2.config create mode 100644 modules/nf-core/bowtie2/align/tests/tags.yml create mode 100644 modules/nf-core/bwa/mem/environment.yml create mode 100644 modules/nf-core/bwa/mem/tests/main.nf.test create mode 100644 modules/nf-core/bwa/mem/tests/main.nf.test.snap create mode 100644 modules/nf-core/bwa/mem/tests/tags.yml create mode 100644 modules/nf-core/chromap/chromap/environment.yml create mode 100644 modules/nf-core/picard/markduplicates/environment.yml create mode 100644 modules/nf-core/picard/markduplicates/tests/main.nf.test create mode 100644 modules/nf-core/picard/markduplicates/tests/main.nf.test.snap create mode 100644 modules/nf-core/picard/markduplicates/tests/nextflow.config create mode 100644 modules/nf-core/picard/markduplicates/tests/tags.yml create mode 100644 modules/nf-core/samtools/flagstat/environment.yml create mode 100644 modules/nf-core/samtools/flagstat/tests/main.nf.test create mode 100644 modules/nf-core/samtools/flagstat/tests/main.nf.test.snap create mode 100644 modules/nf-core/samtools/flagstat/tests/tags.yml create mode 100644 modules/nf-core/samtools/idxstats/environment.yml create mode 100644 modules/nf-core/samtools/idxstats/tests/main.nf.test create mode 100644 modules/nf-core/samtools/idxstats/tests/main.nf.test.snap create mode 100644 modules/nf-core/samtools/idxstats/tests/tags.yml create mode 100644 modules/nf-core/samtools/index/environment.yml create mode 100644 modules/nf-core/samtools/index/tests/csi.nextflow.config create mode 100644 modules/nf-core/samtools/index/tests/main.nf.test create mode 100644 modules/nf-core/samtools/index/tests/main.nf.test.snap create mode 100644 modules/nf-core/samtools/index/tests/tags.yml create mode 100644 modules/nf-core/samtools/sort/environment.yml create mode 100644 modules/nf-core/samtools/sort/tests/main.nf.test create mode 100644 modules/nf-core/samtools/sort/tests/main.nf.test.snap create mode 100644 modules/nf-core/samtools/sort/tests/nextflow.config create mode 100644 modules/nf-core/samtools/sort/tests/tags.yml create mode 100644 modules/nf-core/samtools/stats/environment.yml create mode 100644 modules/nf-core/samtools/stats/tests/main.nf.test create mode 100644 modules/nf-core/samtools/stats/tests/main.nf.test.snap create mode 100644 modules/nf-core/samtools/stats/tests/tags.yml create mode 100644 modules/nf-core/trimgalore/environment.yml create mode 100644 modules/nf-core/trimgalore/tests/main.nf.test create mode 100644 modules/nf-core/trimgalore/tests/main.nf.test.snap create mode 100644 modules/nf-core/trimgalore/tests/tags.yml create mode 100644 modules/nf-core/umitools/extract/environment.yml create mode 100644 modules/nf-core/umitools/extract/tests/main.nf.test create mode 100644 modules/nf-core/umitools/extract/tests/main.nf.test.snap create mode 100644 modules/nf-core/umitools/extract/tests/nextflow.config create mode 100644 modules/nf-core/umitools/extract/tests/tags.yml diff --git a/modules/nf-core/bowtie2/align/environment.yml b/modules/nf-core/bowtie2/align/environment.yml new file mode 100644 index 00000000..d2796359 --- /dev/null +++ b/modules/nf-core/bowtie2/align/environment.yml @@ -0,0 +1,9 @@ +name: bowtie2_align +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::bowtie2=2.5.2 + - bioconda::samtools=1.18 + - conda-forge::pigz=2.6 diff --git a/modules/nf-core/bowtie2/align/main.nf b/modules/nf-core/bowtie2/align/main.nf index a77114d2..8c405ee3 100644 --- a/modules/nf-core/bowtie2/align/main.nf +++ b/modules/nf-core/bowtie2/align/main.nf @@ -2,10 +2,10 @@ process BOWTIE2_ALIGN { tag "$meta.id" label "process_high" - conda "bioconda::bowtie2=2.4.4 bioconda::samtools=1.16.1 conda-forge::pigz=2.6" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-ac74a7f02cebcfcc07d8e8d1d750af9c83b4d45a:a0ffedb52808e102887f6ce600d092675bf3528a-0' : - 'biocontainers/mulled-v2-ac74a7f02cebcfcc07d8e8d1d750af9c83b4d45a:a0ffedb52808e102887f6ce600d092675bf3528a-0' }" + 'https://depot.galaxyproject.org/singularity/mulled-v2-ac74a7f02cebcfcc07d8e8d1d750af9c83b4d45a:f70b31a2db15c023d641c32f433fb02cd04df5a6-0' : + 'biocontainers/mulled-v2-ac74a7f02cebcfcc07d8e8d1d750af9c83b4d45a:f70b31a2db15c023d641c32f433fb02cd04df5a6-0' }" input: tuple val(meta) , path(reads) @@ -52,7 +52,7 @@ process BOWTIE2_ALIGN { --threads $task.cpus \\ $unaligned \\ $args \\ - 2> ${prefix}.bowtie2.log \\ + 2> >(tee ${prefix}.bowtie2.log >&2) \\ | samtools $samtools_command $args2 --threads $task.cpus -o ${prefix}.${extension} - if [ -f ${prefix}.unmapped.fastq.1.gz ]; then @@ -76,12 +76,17 @@ process BOWTIE2_ALIGN { def prefix = task.ext.prefix ?: "${meta.id}" def extension_pattern = /(--output-fmt|-O)+\s+(\S+)/ def extension = (args2 ==~ extension_pattern) ? (args2 =~ extension_pattern)[0][2].toLowerCase() : "bam" + def create_unmapped = "" + if (meta.single_end) { + create_unmapped = save_unaligned ? "touch ${prefix}.unmapped.fastq.gz" : "" + } else { + create_unmapped = save_unaligned ? "touch ${prefix}.unmapped_1.fastq.gz && touch ${prefix}.unmapped_2.fastq.gz" : "" + } """ touch ${prefix}.${extension} touch ${prefix}.bowtie2.log - touch ${prefix}.unmapped_1.fastq.gz - touch ${prefix}.unmapped_2.fastq.gz + ${create_unmapped} cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/nf-core/bowtie2/align/meta.yml b/modules/nf-core/bowtie2/align/meta.yml index 60d04c12..e66811d0 100644 --- a/modules/nf-core/bowtie2/align/meta.yml +++ b/modules/nf-core/bowtie2/align/meta.yml @@ -65,3 +65,6 @@ output: authors: - "@joseespinosa" - "@drpatelh" +maintainers: + - "@joseespinosa" + - "@drpatelh" diff --git a/modules/nf-core/bowtie2/align/tests/large_index.config b/modules/nf-core/bowtie2/align/tests/large_index.config new file mode 100644 index 00000000..fdc1c59d --- /dev/null +++ b/modules/nf-core/bowtie2/align/tests/large_index.config @@ -0,0 +1,5 @@ +process { + withName: BOWTIE2_BUILD { + ext.args = '--large-index' + } +} \ No newline at end of file diff --git a/modules/nf-core/bowtie2/align/tests/main.nf.test b/modules/nf-core/bowtie2/align/tests/main.nf.test new file mode 100644 index 00000000..a478d17b --- /dev/null +++ b/modules/nf-core/bowtie2/align/tests/main.nf.test @@ -0,0 +1,561 @@ +nextflow_process { + + name "Test Process BOWTIE2_ALIGN" + script "../main.nf" + process "BOWTIE2_ALIGN" + tag "modules" + tag "modules_nfcore" + tag "bowtie2" + tag "bowtie2/align" + + test("sarscov2 - fastq, index, false, false - bam") { + + setup { + run("BOWTIE2_BUILD") { + script "../../build/main.nf" + process { + """ + input[0] = [ + [ id:'test'], + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + ] + """ + } + } + } + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:true ], // meta map + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] + input[1] = BOWTIE2_BUILD.out.index + input[2] = false //save_unaligned + input[3] = false //sort + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot( + file(process.out.aligned[0][1]).name, + process.out.log, + process.out.fastq, + process.out.versions + ).match() } + ) + } + + } + + test("sarscov2 - fastq, index, false, false - sam") { + + config "./sam.config" + setup { + run("BOWTIE2_BUILD") { + script "../../build/main.nf" + process { + """ + input[0] = [ + [ id:'test'], + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + ] + """ + } + } + } + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:true ], // meta map + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] + input[1] = BOWTIE2_BUILD.out.index + input[2] = false //save_unaligned + input[3] = false //sort + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot( + file(process.out.aligned[0][1]).readLines()[0..4], + process.out.log, + process.out.fastq, + process.out.versions + ).match() } + ) + } + + } + + test("sarscov2 - fastq, index, false, false - sam2") { + + config "./sam2.config" + setup { + run("BOWTIE2_BUILD") { + script "../../build/main.nf" + process { + """ + input[0] = [ + [ id:'test'], + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + ] + """ + } + } + } + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:true ], // meta map + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] + input[1] = BOWTIE2_BUILD.out.index + input[2] = false //save_unaligned + input[3] = false //sort + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot( + file(process.out.aligned[0][1]).readLines()[0..4], + process.out.log, + process.out.fastq, + process.out.versions + ).match() } + ) + } + + } + + test("sarscov2 - fastq, index, false, true - bam") { + + setup { + run("BOWTIE2_BUILD") { + script "../../build/main.nf" + process { + """ + input[0] = [ + [ id:'test'], + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + ] + """ + } + } + } + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:true ], // meta map + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] + input[1] = BOWTIE2_BUILD.out.index + input[2] = false //save_unaligned + input[3] = true //sort + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot( + file(process.out.aligned[0][1]).name, + process.out.log, + process.out.fastq, + process.out.versions + ).match() } + ) + } + + } + + test("sarscov2 - [fastq1, fastq2], index, false, false - bam") { + + setup { + run("BOWTIE2_BUILD") { + script "../../build/main.nf" + process { + """ + input[0] = [ + [ id:'test'], + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + ] + """ + } + } + } + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + [ + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) + ] + ] + input[1] = BOWTIE2_BUILD.out.index + input[2] = false //save_unaligned + input[3] = false //sort + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot( + file(process.out.aligned[0][1]).name, + process.out.log, + process.out.fastq, + process.out.versions + ).match() } + ) + } + + } + + test("sarscov2 - [fastq1, fastq2], index, false, true - bam") { + + setup { + run("BOWTIE2_BUILD") { + script "../../build/main.nf" + process { + """ + input[0] = [ + [ id:'test'], + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + ] + """ + } + } + } + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + [ + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) + ] + ] + input[1] = BOWTIE2_BUILD.out.index + input[2] = false //save_unaligned + input[3] = true //sort + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot( + file(process.out.aligned[0][1]).name, + process.out.log, + process.out.fastq, + process.out.versions + ).match() } + ) + } + + } + + test("sarscov2 - fastq, large_index, false, false - bam") { + + config "./large_index.config" + setup { + run("BOWTIE2_BUILD") { + script "../../build/main.nf" + process { + """ + input[0] = [ + [ id:'test'], + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + ] + """ + } + } + } + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:true ], // meta map + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] + input[1] = BOWTIE2_BUILD.out.index + input[2] = false //save_unaligned + input[3] = false //sort + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot( + file(process.out.aligned[0][1]).name, + process.out.log, + process.out.fastq, + process.out.versions + ).match() } + ) + } + + } + + test("sarscov2 - [fastq1, fastq2], large_index, false, false - bam") { + + config "./large_index.config" + setup { + run("BOWTIE2_BUILD") { + script "../../build/main.nf" + process { + """ + input[0] = [ + [ id:'test'], + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + ] + """ + } + } + } + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + [ + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) + ] + ] + input[1] = BOWTIE2_BUILD.out.index + input[2] = false //save_unaligned + input[3] = false //sort + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot( + file(process.out.aligned[0][1]).name, + process.out.log, + process.out.fastq, + process.out.versions + ).match() } + ) + } + + } + + test("sarscov2 - [fastq1, fastq2], index, true, false - bam") { + + setup { + run("BOWTIE2_BUILD") { + script "../../build/main.nf" + process { + """ + input[0] = [ + [ id:'test'], + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + ] + """ + } + } + } + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + [ + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) + ] + ] + input[1] = BOWTIE2_BUILD.out.index + input[2] = true //save_unaligned + input[3] = false //sort + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot( + file(process.out.aligned[0][1]).name, + process.out.log, + process.out.fastq, + process.out.versions + ).match() } + ) + } + + } + + test("sarscov2 - fastq, index, true, false - bam") { + + setup { + run("BOWTIE2_BUILD") { + script "../../build/main.nf" + process { + """ + input[0] = [ + [ id:'test'], + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + ] + """ + } + } + } + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:true ], // meta map + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] + input[1] = BOWTIE2_BUILD.out.index + input[2] = true //save_unaligned + input[3] = false //sort + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot( + file(process.out.aligned[0][1]).name, + process.out.log, + process.out.fastq, + process.out.versions + ).match() } + + ) + } + + } + + test("sarscov2 - [fastq1, fastq2], index, false, false - stub") { + + options "-stub" + setup { + run("BOWTIE2_BUILD") { + script "../../build/main.nf" + process { + """ + input[0] = [ + [ id:'test'], + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + ] + """ + } + } + } + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + [ + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) + ] + ] + input[1] = BOWTIE2_BUILD.out.index + input[2] = false //save_unaligned + input[3] = false //sort + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot( + file(process.out.aligned[0][1]).name, + file(process.out.log[0][1]).name, + process.out.fastq, + process.out.versions + ).match() } + ) + } + + } + + test("sarscov2 - fastq, index, true, false - stub") { + + options "-stub" + setup { + run("BOWTIE2_BUILD") { + script "../../build/main.nf" + process { + """ + input[0] = [ + [ id:'test'], + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + ] + """ + } + } + } + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:true ], // meta map + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] + input[1] = BOWTIE2_BUILD.out.index + input[2] = true //save_unaligned + input[3] = false //sort + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot( + file(process.out.aligned[0][1]).name, + file(process.out.log[0][1]).name, + file(process.out.fastq[0][1]).name, + process.out.versions + ).match() } + ) + } + + } + +} diff --git a/modules/nf-core/bowtie2/align/tests/main.nf.test.snap b/modules/nf-core/bowtie2/align/tests/main.nf.test.snap new file mode 100644 index 00000000..883dc7ec --- /dev/null +++ b/modules/nf-core/bowtie2/align/tests/main.nf.test.snap @@ -0,0 +1,263 @@ +{ + "sarscov2 - fastq, index, false, false - sam2": { + "content": [ + [ + "ERR5069949.2151832\t16\tMT192765.1\t17453\t42\t150M\t*\t0\t0\tACGCACATTGCTAACTAAGGGCACACTAGAACCAGAATATTTCAATTCAGTGTGTAGACTTATGAAAACTATAGGTCCAGACATGTTCCTCGGAACTTGTCGGCGTTGTCCTGCTGAAATTGTTGACACTGTGAGTGCTTTGGTTTATGA\tAAAA&1) | sed 's/^.*samtools //; s/Using.*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.bam + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bwa: \$(echo \$(bwa 2>&1) | sed 's/^.*Version: //; s/Contact:.*\$//') + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS + """ } diff --git a/modules/nf-core/bwa/mem/meta.yml b/modules/nf-core/bwa/mem/meta.yml index 62357bf8..440fb1f9 100644 --- a/modules/nf-core/bwa/mem/meta.yml +++ b/modules/nf-core/bwa/mem/meta.yml @@ -53,3 +53,6 @@ output: authors: - "@drpatelh" - "@jeremy1805" +maintainers: + - "@drpatelh" + - "@jeremy1805" diff --git a/modules/nf-core/bwa/mem/tests/main.nf.test b/modules/nf-core/bwa/mem/tests/main.nf.test new file mode 100644 index 00000000..b199bb70 --- /dev/null +++ b/modules/nf-core/bwa/mem/tests/main.nf.test @@ -0,0 +1,172 @@ +nextflow_process { + + name "Test Process BWA_MEM" + tag "modules_nfcore" + tag "modules" + tag "bwa" + tag "bwa/mem" + script "../main.nf" + process "BWA_MEM" + + test("Single-End") { + + setup { + run("BWA_INDEX") { + script "../../index/main.nf" + process { + """ + input[0] = [ + [id: 'test'], + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + ] + """ + } + } + } + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:true ], // meta map + [ + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] + ] + input[1] = BWA_INDEX.out.index + input[2] = false + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("Single-End Sort") { + + setup { + run("BWA_INDEX") { + script "../../index/main.nf" + process { + """ + input[0] = [ + [id: 'test'], + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + ] + """ + } + } + } + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:true ], // meta map + [ + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] + ] + input[1] = BWA_INDEX.out.index + input[2] = true + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("Paired-End") { + + setup { + run("BWA_INDEX") { + script "../../index/main.nf" + process { + """ + input[0] = [ + [id: 'test'], + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + ] + """ + } + } + } + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + [ + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) + ] + ] + input[1] = BWA_INDEX.out.index + input[2] = false + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("Paired-End Sort") { + + setup { + run("BWA_INDEX") { + script "../../index/main.nf" + process { + """ + input[0] = [ + [id: 'test'], + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + ] + """ + } + } + } + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + [ + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) + ] + ] + input[1] = BWA_INDEX.out.index + input[2] = true + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } +} diff --git a/modules/nf-core/bwa/mem/tests/main.nf.test.snap b/modules/nf-core/bwa/mem/tests/main.nf.test.snap new file mode 100644 index 00000000..bfb55fc7 --- /dev/null +++ b/modules/nf-core/bwa/mem/tests/main.nf.test.snap @@ -0,0 +1,126 @@ +{ + "Single-End": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": true + }, + "test.bam:md5,df203d7c7e8fef351408a909570c7952" + ] + ], + "1": [ + "versions.yml:md5,a18ac8ef8cfcc7b2cc262c49d4c064f9" + ], + "bam": [ + [ + { + "id": "test", + "single_end": true + }, + "test.bam:md5,df203d7c7e8fef351408a909570c7952" + ] + ], + "versions": [ + "versions.yml:md5,a18ac8ef8cfcc7b2cc262c49d4c064f9" + ] + } + ], + "timestamp": "2023-12-04T11:01:22.483594641" + }, + "Single-End Sort": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": true + }, + "test.bam:md5,8a52bd78fdcecb994c1f63897d5b431c" + ] + ], + "1": [ + "versions.yml:md5,a18ac8ef8cfcc7b2cc262c49d4c064f9" + ], + "bam": [ + [ + { + "id": "test", + "single_end": true + }, + "test.bam:md5,8a52bd78fdcecb994c1f63897d5b431c" + ] + ], + "versions": [ + "versions.yml:md5,a18ac8ef8cfcc7b2cc262c49d4c064f9" + ] + } + ], + "timestamp": "2023-12-04T11:01:30.180783483" + }, + "Paired-End": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.bam:md5,9815aef9ec763a60c53c3879be2d73ae" + ] + ], + "1": [ + "versions.yml:md5,a18ac8ef8cfcc7b2cc262c49d4c064f9" + ], + "bam": [ + [ + { + "id": "test", + "single_end": false + }, + "test.bam:md5,9815aef9ec763a60c53c3879be2d73ae" + ] + ], + "versions": [ + "versions.yml:md5,a18ac8ef8cfcc7b2cc262c49d4c064f9" + ] + } + ], + "timestamp": "2023-12-04T11:01:38.761983007" + }, + "Paired-End Sort": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.bam:md5,0f0cda73704c4f7ba08af482edcbbe88" + ] + ], + "1": [ + "versions.yml:md5,a18ac8ef8cfcc7b2cc262c49d4c064f9" + ], + "bam": [ + [ + { + "id": "test", + "single_end": false + }, + "test.bam:md5,0f0cda73704c4f7ba08af482edcbbe88" + ] + ], + "versions": [ + "versions.yml:md5,a18ac8ef8cfcc7b2cc262c49d4c064f9" + ] + } + ], + "timestamp": "2023-12-04T11:01:46.284587802" + } +} \ No newline at end of file diff --git a/modules/nf-core/bwa/mem/tests/tags.yml b/modules/nf-core/bwa/mem/tests/tags.yml new file mode 100644 index 00000000..82992d1f --- /dev/null +++ b/modules/nf-core/bwa/mem/tests/tags.yml @@ -0,0 +1,3 @@ +bwa/mem: + - modules/nf-core/bwa/index/** + - modules/nf-core/bwa/mem/** diff --git a/modules/nf-core/chromap/chromap/environment.yml b/modules/nf-core/chromap/chromap/environment.yml new file mode 100644 index 00000000..a630f9c5 --- /dev/null +++ b/modules/nf-core/chromap/chromap/environment.yml @@ -0,0 +1,8 @@ +name: chromap_chromap +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::chromap=0.2.4 + - bioconda::samtools=1.16.1 diff --git a/modules/nf-core/chromap/chromap/main.nf b/modules/nf-core/chromap/chromap/main.nf index a39302e3..2cc09a43 100644 --- a/modules/nf-core/chromap/chromap/main.nf +++ b/modules/nf-core/chromap/chromap/main.nf @@ -2,7 +2,7 @@ process CHROMAP_CHROMAP { tag "$meta.id" label 'process_medium' - conda "bioconda::chromap=0.2.4 bioconda::samtools=1.16.1" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/mulled-v2-1f09f39f20b1c4ee36581dc81cc323c70e661633:5b2e433ab8b3d1ef098fc944b567fd98caa23f56-0' : 'biocontainers/mulled-v2-1f09f39f20b1c4ee36581dc81cc323c70e661633:5b2e433ab8b3d1ef098fc944b567fd98caa23f56-0' }" diff --git a/modules/nf-core/chromap/chromap/meta.yml b/modules/nf-core/chromap/chromap/meta.yml index 05f70cf0..140299ed 100644 --- a/modules/nf-core/chromap/chromap/meta.yml +++ b/modules/nf-core/chromap/chromap/meta.yml @@ -20,7 +20,6 @@ tools: homepage: https://github.com/haowenz/chromap documentation: https://github.com/haowenz/chromap tool_dev_url: https://github.com/haowenz/chromap - licence: ["GPL v3"] input: - meta: @@ -93,7 +92,9 @@ output: type: file description: pairs file pattern: "*.pairs.gz" - authors: - "@mahesh-panchal" - "@joseespinosa" +maintainers: + - "@mahesh-panchal" + - "@joseespinosa" diff --git a/modules/nf-core/fastqc/tests/main.nf.test b/modules/nf-core/fastqc/tests/main.nf.test index 1f21c664..70edae4d 100644 --- a/modules/nf-core/fastqc/tests/main.nf.test +++ b/modules/nf-core/fastqc/tests/main.nf.test @@ -33,7 +33,7 @@ nextflow_process { { assert process.out.zip[0][1] ==~ ".*/test_fastqc.zip" }, { assert path(process.out.html[0][1]).text.contains("") }, - { assert snapshot(process.out.versions).match("versions") } + { assert snapshot(process.out.versions).match("fastqc_versions_single") } ) } } @@ -63,7 +63,7 @@ nextflow_process { { assert path(process.out.html[0][1][0]).text.contains("") }, { assert path(process.out.html[0][1][1]).text.contains("") }, - { assert snapshot(process.out.versions).match("versions") } + { assert snapshot(process.out.versions).match("fastqc_versions_paired") } ) } } @@ -89,7 +89,7 @@ nextflow_process { { assert process.out.zip[0][1] ==~ ".*/test_fastqc.zip" }, { assert path(process.out.html[0][1]).text.contains("") }, - { assert snapshot(process.out.versions).match("versions") } + { assert snapshot(process.out.versions).match("fastqc_versions_interleaved") } ) } } @@ -115,7 +115,7 @@ nextflow_process { { assert process.out.zip[0][1] ==~ ".*/test_fastqc.zip" }, { assert path(process.out.html[0][1]).text.contains("") }, - { assert snapshot(process.out.versions).match("versions") } + { assert snapshot(process.out.versions).match("fastqc_versions_bam") } ) } } @@ -153,7 +153,7 @@ nextflow_process { { assert path(process.out.html[0][1][2]).text.contains("") }, { assert path(process.out.html[0][1][3]).text.contains("") }, - { assert snapshot(process.out.versions).match("versions") } + { assert snapshot(process.out.versions).match("fastqc_versions_multiple") } ) } } @@ -179,7 +179,7 @@ nextflow_process { { assert process.out.zip[0][1] ==~ ".*/mysample_fastqc.zip" }, { assert path(process.out.html[0][1]).text.contains("") }, - { assert snapshot(process.out.versions).match("versions") } + { assert snapshot(process.out.versions).match("fastqc_versions_custom_prefix") } ) } } @@ -204,7 +204,7 @@ nextflow_process { { assert process.success }, { assert snapshot(process.out.html.collect { file(it[1]).getName() } + process.out.zip.collect { file(it[1]).getName() } + - process.out.versions ).match() } + process.out.versions ).match("fastqc_stub") } ) } } diff --git a/modules/nf-core/fastqc/tests/main.nf.test.snap b/modules/nf-core/fastqc/tests/main.nf.test.snap index 5d624bb8..86f7c311 100644 --- a/modules/nf-core/fastqc/tests/main.nf.test.snap +++ b/modules/nf-core/fastqc/tests/main.nf.test.snap @@ -1,5 +1,17 @@ { - "sarscov2 single-end [fastq] - stub": { + "fastqc_versions_interleaved": { + "content": [ + [ + "versions.yml:md5,e1cc25ca8af856014824abd842e93978" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-01-31T17:40:07.293713" + }, + "fastqc_stub": { "content": [ [ "test.html", @@ -7,14 +19,70 @@ "versions.yml:md5,e1cc25ca8af856014824abd842e93978" ] ], - "timestamp": "2024-01-17T18:40:57.254299" + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-01-31T17:31:01.425198" + }, + "fastqc_versions_multiple": { + "content": [ + [ + "versions.yml:md5,e1cc25ca8af856014824abd842e93978" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-01-31T17:40:55.797907" + }, + "fastqc_versions_bam": { + "content": [ + [ + "versions.yml:md5,e1cc25ca8af856014824abd842e93978" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-01-31T17:40:26.795862" + }, + "fastqc_versions_single": { + "content": [ + [ + "versions.yml:md5,e1cc25ca8af856014824abd842e93978" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-01-31T17:39:27.043675" + }, + "fastqc_versions_paired": { + "content": [ + [ + "versions.yml:md5,e1cc25ca8af856014824abd842e93978" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-01-31T17:39:47.584191" }, - "versions": { + "fastqc_versions_custom_prefix": { "content": [ [ "versions.yml:md5,e1cc25ca8af856014824abd842e93978" ] ], - "timestamp": "2024-01-17T18:36:50.033627" + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-01-31T17:41:14.576531" } } \ No newline at end of file diff --git a/modules/nf-core/picard/markduplicates/environment.yml b/modules/nf-core/picard/markduplicates/environment.yml new file mode 100644 index 00000000..58b795f5 --- /dev/null +++ b/modules/nf-core/picard/markduplicates/environment.yml @@ -0,0 +1,7 @@ +name: picard_markduplicates +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::picard=3.1.1 diff --git a/modules/nf-core/picard/markduplicates/main.nf b/modules/nf-core/picard/markduplicates/main.nf index facd7efb..80930cc4 100644 --- a/modules/nf-core/picard/markduplicates/main.nf +++ b/modules/nf-core/picard/markduplicates/main.nf @@ -2,10 +2,10 @@ process PICARD_MARKDUPLICATES { tag "$meta.id" label 'process_medium' - conda "bioconda::picard=3.0.0" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/picard:3.0.0--hdfd78af_1' : - 'biocontainers/picard:3.0.0--hdfd78af_1' }" + 'https://depot.galaxyproject.org/singularity/picard:3.1.1--hdfd78af_0' : + 'biocontainers/picard:3.1.1--hdfd78af_0' }" input: tuple val(meta), path(bam) @@ -30,6 +30,9 @@ process PICARD_MARKDUPLICATES { } else { avail_mem = (task.memory.mega*0.8).intValue() } + + if ("$bam" == "${prefix}.bam") error "Input and output names are the same, use \"task.ext.prefix\" to disambiguate!" + """ picard \\ -Xmx${avail_mem}M \\ @@ -48,6 +51,7 @@ process PICARD_MARKDUPLICATES { stub: def prefix = task.ext.prefix ?: "${meta.id}" + if ("$bam" == "${prefix}.bam") error "Input and output names are the same, use \"task.ext.prefix\" to disambiguate!" """ touch ${prefix}.bam touch ${prefix}.bam.bai diff --git a/modules/nf-core/picard/markduplicates/meta.yml b/modules/nf-core/picard/markduplicates/meta.yml index f7693d2f..1ab90c07 100644 --- a/modules/nf-core/picard/markduplicates/meta.yml +++ b/modules/nf-core/picard/markduplicates/meta.yml @@ -69,3 +69,7 @@ authors: - "@drpatelh" - "@projectoriented" - "@ramprasadn" +maintainers: + - "@drpatelh" + - "@projectoriented" + - "@ramprasadn" diff --git a/modules/nf-core/picard/markduplicates/tests/main.nf.test b/modules/nf-core/picard/markduplicates/tests/main.nf.test new file mode 100644 index 00000000..c5a29b4b --- /dev/null +++ b/modules/nf-core/picard/markduplicates/tests/main.nf.test @@ -0,0 +1,104 @@ +nextflow_process { + + name "Test Process PICARD_MARKDUPLICATES" + script "../main.nf" + process "PICARD_MARKDUPLICATES" + config "./nextflow.config" + tag "modules" + tag "modules_nfcore" + tag "picard" + tag "picard/markduplicates" + + test("sarscov2 [unsorted bam]") { + + when { + process { + """ + input[0] = Channel.of([ + [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.bam', checkIfExists: true) + ]) + input[1] = Channel.of([ + [ id:'genome' ], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ]) + input[2] = Channel.of([ + [ id:'genome' ], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta.fai', checkIfExists: true) + ]) + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(file(process.out.bam[0][1]).name).match("unsorted_bam_name") }, + { assert snapshot(path(process.out.metrics.get(0).get(1)).readLines()[0..2]).match("unsorted_bam_metrics") }, + { assert snapshot(process.out.versions).match("unsorted_bam_versions") } + ) + } + } + + test("sarscov2 [sorted bam]") { + + when { + process { + """ + input[0] = Channel.of([ + [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true) + ]) + input[1] = Channel.of([ + [ id:'genome' ], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ]) + input[2] = Channel.of([ + [ id:'genome' ], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta.fai', checkIfExists: true) + ]) + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(file(process.out.bam[0][1]).name).match("sorted_bam_name") }, + { assert snapshot(path(process.out.metrics.get(0).get(1)).readLines()[0..2]).match("sorted_bam_metrics") }, + { assert snapshot(process.out.versions).match("sorted_bam_versions") } + ) + } + } + + test("homo_sapiens [cram]") { + + when { + process { + """ + input[0] = Channel.of([ + [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram', checkIfExists: true) + ]) + input[1] = Channel.of([ + [ id:'genome' ], + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) + ]) + input[2] = Channel.of([ + [ id:'genome' ], + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta.fai', checkIfExists: true) + ]) + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(file(process.out.bam[0][1]).name).match("cram_name") }, + { assert snapshot(path(process.out.metrics.get(0).get(1)).readLines()[0..2]).match("cram_metrics") }, + { assert snapshot(process.out.versions).match("cram_versions") } + ) + } + } +} diff --git a/modules/nf-core/picard/markduplicates/tests/main.nf.test.snap b/modules/nf-core/picard/markduplicates/tests/main.nf.test.snap new file mode 100644 index 00000000..31c9130d --- /dev/null +++ b/modules/nf-core/picard/markduplicates/tests/main.nf.test.snap @@ -0,0 +1,74 @@ +{ + "sorted_bam_versions": { + "content": [ + [ + "versions.yml:md5,b699af51b1956f3810f8a7c066e0ab17" + ] + ], + "timestamp": "2024-01-19T10:26:45.092349" + }, + "unsorted_bam_name": { + "content": [ + "test.marked.bam" + ], + "timestamp": "2024-01-19T10:26:28.100755" + }, + "cram_metrics": { + "content": [ + [ + "## htsjdk.samtools.metrics.StringHeader", + "# MarkDuplicates --INPUT test.paired_end.sorted.cram --OUTPUT test.marked.bam --METRICS_FILE test.marked.MarkDuplicates.metrics.txt --ASSUME_SORT_ORDER queryname --REFERENCE_SEQUENCE genome.fasta --MAX_SEQUENCES_FOR_DISK_READ_ENDS_MAP 50000 --MAX_FILE_HANDLES_FOR_READ_ENDS_MAP 8000 --SORTING_COLLECTION_SIZE_RATIO 0.25 --TAG_DUPLICATE_SET_MEMBERS false --REMOVE_SEQUENCING_DUPLICATES false --TAGGING_POLICY DontTag --CLEAR_DT true --DUPLEX_UMI false --FLOW_MODE false --FLOW_QUALITY_SUM_STRATEGY false --USE_END_IN_UNPAIRED_READS false --USE_UNPAIRED_CLIPPED_END false --UNPAIRED_END_UNCERTAINTY 0 --FLOW_SKIP_FIRST_N_FLOWS 0 --FLOW_Q_IS_KNOWN_END false --FLOW_EFFECTIVE_QUALITY_THRESHOLD 15 --ADD_PG_TAG_TO_READS true --REMOVE_DUPLICATES false --ASSUME_SORTED false --DUPLICATE_SCORING_STRATEGY SUM_OF_BASE_QUALITIES --PROGRAM_RECORD_ID MarkDuplicates --PROGRAM_GROUP_NAME MarkDuplicates --READ_NAME_REGEX --OPTICAL_DUPLICATE_PIXEL_DISTANCE 100 --MAX_OPTICAL_DUPLICATE_SET_SIZE 300000 --VERBOSITY INFO --QUIET false --VALIDATION_STRINGENCY STRICT --COMPRESSION_LEVEL 5 --MAX_RECORDS_IN_RAM 500000 --CREATE_INDEX false --CREATE_MD5_FILE false --help false --version false --showHidden false --USE_JDK_DEFLATER false --USE_JDK_INFLATER false", + "## htsjdk.samtools.metrics.StringHeader" + ] + ], + "timestamp": "2024-01-19T10:27:03.253071" + }, + "sorted_bam_metrics": { + "content": [ + [ + "## htsjdk.samtools.metrics.StringHeader", + "# MarkDuplicates --INPUT test.paired_end.sorted.bam --OUTPUT test.marked.bam --METRICS_FILE test.marked.MarkDuplicates.metrics.txt --ASSUME_SORT_ORDER queryname --REFERENCE_SEQUENCE genome.fasta --MAX_SEQUENCES_FOR_DISK_READ_ENDS_MAP 50000 --MAX_FILE_HANDLES_FOR_READ_ENDS_MAP 8000 --SORTING_COLLECTION_SIZE_RATIO 0.25 --TAG_DUPLICATE_SET_MEMBERS false --REMOVE_SEQUENCING_DUPLICATES false --TAGGING_POLICY DontTag --CLEAR_DT true --DUPLEX_UMI false --FLOW_MODE false --FLOW_QUALITY_SUM_STRATEGY false --USE_END_IN_UNPAIRED_READS false --USE_UNPAIRED_CLIPPED_END false --UNPAIRED_END_UNCERTAINTY 0 --FLOW_SKIP_FIRST_N_FLOWS 0 --FLOW_Q_IS_KNOWN_END false --FLOW_EFFECTIVE_QUALITY_THRESHOLD 15 --ADD_PG_TAG_TO_READS true --REMOVE_DUPLICATES false --ASSUME_SORTED false --DUPLICATE_SCORING_STRATEGY SUM_OF_BASE_QUALITIES --PROGRAM_RECORD_ID MarkDuplicates --PROGRAM_GROUP_NAME MarkDuplicates --READ_NAME_REGEX --OPTICAL_DUPLICATE_PIXEL_DISTANCE 100 --MAX_OPTICAL_DUPLICATE_SET_SIZE 300000 --VERBOSITY INFO --QUIET false --VALIDATION_STRINGENCY STRICT --COMPRESSION_LEVEL 5 --MAX_RECORDS_IN_RAM 500000 --CREATE_INDEX false --CREATE_MD5_FILE false --help false --version false --showHidden false --USE_JDK_DEFLATER false --USE_JDK_INFLATER false", + "## htsjdk.samtools.metrics.StringHeader" + ] + ], + "timestamp": "2024-01-19T10:26:45.086503" + }, + "cram_name": { + "content": [ + "test.marked.bam" + ], + "timestamp": "2024-01-19T10:27:03.241617" + }, + "cram_versions": { + "content": [ + [ + "versions.yml:md5,b699af51b1956f3810f8a7c066e0ab17" + ] + ], + "timestamp": "2024-01-19T10:27:03.26989" + }, + "unsorted_bam_versions": { + "content": [ + [ + "versions.yml:md5,b699af51b1956f3810f8a7c066e0ab17" + ] + ], + "timestamp": "2024-01-19T10:26:28.159071" + }, + "unsorted_bam_metrics": { + "content": [ + [ + "## htsjdk.samtools.metrics.StringHeader", + "# MarkDuplicates --INPUT test.paired_end.bam --OUTPUT test.marked.bam --METRICS_FILE test.marked.MarkDuplicates.metrics.txt --ASSUME_SORT_ORDER queryname --REFERENCE_SEQUENCE genome.fasta --MAX_SEQUENCES_FOR_DISK_READ_ENDS_MAP 50000 --MAX_FILE_HANDLES_FOR_READ_ENDS_MAP 8000 --SORTING_COLLECTION_SIZE_RATIO 0.25 --TAG_DUPLICATE_SET_MEMBERS false --REMOVE_SEQUENCING_DUPLICATES false --TAGGING_POLICY DontTag --CLEAR_DT true --DUPLEX_UMI false --FLOW_MODE false --FLOW_QUALITY_SUM_STRATEGY false --USE_END_IN_UNPAIRED_READS false --USE_UNPAIRED_CLIPPED_END false --UNPAIRED_END_UNCERTAINTY 0 --FLOW_SKIP_FIRST_N_FLOWS 0 --FLOW_Q_IS_KNOWN_END false --FLOW_EFFECTIVE_QUALITY_THRESHOLD 15 --ADD_PG_TAG_TO_READS true --REMOVE_DUPLICATES false --ASSUME_SORTED false --DUPLICATE_SCORING_STRATEGY SUM_OF_BASE_QUALITIES --PROGRAM_RECORD_ID MarkDuplicates --PROGRAM_GROUP_NAME MarkDuplicates --READ_NAME_REGEX --OPTICAL_DUPLICATE_PIXEL_DISTANCE 100 --MAX_OPTICAL_DUPLICATE_SET_SIZE 300000 --VERBOSITY INFO --QUIET false --VALIDATION_STRINGENCY STRICT --COMPRESSION_LEVEL 5 --MAX_RECORDS_IN_RAM 500000 --CREATE_INDEX false --CREATE_MD5_FILE false --help false --version false --showHidden false --USE_JDK_DEFLATER false --USE_JDK_INFLATER false", + "## htsjdk.samtools.metrics.StringHeader" + ] + ], + "timestamp": "2024-01-19T10:26:28.143979" + }, + "sorted_bam_name": { + "content": [ + "test.marked.bam" + ], + "timestamp": "2024-01-19T10:26:45.080116" + } +} \ No newline at end of file diff --git a/modules/nf-core/picard/markduplicates/tests/nextflow.config b/modules/nf-core/picard/markduplicates/tests/nextflow.config new file mode 100644 index 00000000..02818dd6 --- /dev/null +++ b/modules/nf-core/picard/markduplicates/tests/nextflow.config @@ -0,0 +1,6 @@ +process { + withName: PICARD_MARKDUPLICATES { + ext.prefix = { "${meta.id}.marked" } + ext.args = '--ASSUME_SORT_ORDER queryname' + } +} diff --git a/modules/nf-core/picard/markduplicates/tests/tags.yml b/modules/nf-core/picard/markduplicates/tests/tags.yml new file mode 100644 index 00000000..4f213d62 --- /dev/null +++ b/modules/nf-core/picard/markduplicates/tests/tags.yml @@ -0,0 +1,2 @@ +picard/markduplicates: + - modules/nf-core/picard/markduplicates/** diff --git a/modules/nf-core/samtools/flagstat/environment.yml b/modules/nf-core/samtools/flagstat/environment.yml new file mode 100644 index 00000000..dd0b5c19 --- /dev/null +++ b/modules/nf-core/samtools/flagstat/environment.yml @@ -0,0 +1,8 @@ +name: samtools_flagstat +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::samtools=1.18 + - bioconda::htslib=1.18 diff --git a/modules/nf-core/samtools/flagstat/main.nf b/modules/nf-core/samtools/flagstat/main.nf index eb7e72fc..f1893d7c 100644 --- a/modules/nf-core/samtools/flagstat/main.nf +++ b/modules/nf-core/samtools/flagstat/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_FLAGSTAT { tag "$meta.id" label 'process_single' - conda "bioconda::samtools=1.17" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.17--h00cdaf9_0' : - 'biocontainers/samtools:1.17--h00cdaf9_0' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.18--h50ea8bc_1' : + 'biocontainers/samtools:1.18--h50ea8bc_1' }" input: tuple val(meta), path(bam), path(bai) @@ -32,4 +32,15 @@ process SAMTOOLS_FLAGSTAT { samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.flagstat + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS + """ } diff --git a/modules/nf-core/samtools/flagstat/meta.yml b/modules/nf-core/samtools/flagstat/meta.yml index 954225df..97991358 100644 --- a/modules/nf-core/samtools/flagstat/meta.yml +++ b/modules/nf-core/samtools/flagstat/meta.yml @@ -47,3 +47,5 @@ output: pattern: "versions.yml" authors: - "@drpatelh" +maintainers: + - "@drpatelh" diff --git a/modules/nf-core/samtools/flagstat/tests/main.nf.test b/modules/nf-core/samtools/flagstat/tests/main.nf.test new file mode 100644 index 00000000..c8dd8dc9 --- /dev/null +++ b/modules/nf-core/samtools/flagstat/tests/main.nf.test @@ -0,0 +1,36 @@ +nextflow_process { + + name "Test Process SAMTOOLS_FLAGSTAT" + script "../main.nf" + process "SAMTOOLS_FLAGSTAT" + tag "modules" + tag "modules_nfcore" + tag "samtools" + tag "samtools/flagstat" + + test("BAM") { + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true) + ] + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out.flagstat).match() }, + { assert path(process.out.versions.get(0)).getText().contains("samtools") } + ) + } + } +} diff --git a/modules/nf-core/samtools/flagstat/tests/main.nf.test.snap b/modules/nf-core/samtools/flagstat/tests/main.nf.test.snap new file mode 100644 index 00000000..880019f2 --- /dev/null +++ b/modules/nf-core/samtools/flagstat/tests/main.nf.test.snap @@ -0,0 +1,16 @@ +{ + "BAM": { + "content": [ + [ + [ + { + "id": "test", + "single_end": false + }, + "test.flagstat:md5,4f7ffd1e6a5e85524d443209ac97d783" + ] + ] + ], + "timestamp": "2023-11-14T15:49:22.577133" + } +} \ No newline at end of file diff --git a/modules/nf-core/samtools/flagstat/tests/tags.yml b/modules/nf-core/samtools/flagstat/tests/tags.yml new file mode 100644 index 00000000..2d2b7255 --- /dev/null +++ b/modules/nf-core/samtools/flagstat/tests/tags.yml @@ -0,0 +1,2 @@ +samtools/flagstat: + - modules/nf-core/samtools/flagstat/** diff --git a/modules/nf-core/samtools/idxstats/environment.yml b/modules/nf-core/samtools/idxstats/environment.yml new file mode 100644 index 00000000..de3ed47e --- /dev/null +++ b/modules/nf-core/samtools/idxstats/environment.yml @@ -0,0 +1,8 @@ +name: samtools_idxstats +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::samtools=1.18 + - bioconda::htslib=1.18 diff --git a/modules/nf-core/samtools/idxstats/main.nf b/modules/nf-core/samtools/idxstats/main.nf index a257d700..00d916bb 100644 --- a/modules/nf-core/samtools/idxstats/main.nf +++ b/modules/nf-core/samtools/idxstats/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_IDXSTATS { tag "$meta.id" label 'process_single' - conda "bioconda::samtools=1.17" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.17--h00cdaf9_0' : - 'biocontainers/samtools:1.17--h00cdaf9_0' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.18--h50ea8bc_1' : + 'biocontainers/samtools:1.18--h50ea8bc_1' }" input: tuple val(meta), path(bam), path(bai) @@ -33,4 +33,16 @@ process SAMTOOLS_IDXSTATS { samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + + """ + touch ${prefix}.idxstats + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS + """ } diff --git a/modules/nf-core/samtools/idxstats/meta.yml b/modules/nf-core/samtools/idxstats/meta.yml index dda87e1e..344e92a3 100644 --- a/modules/nf-core/samtools/idxstats/meta.yml +++ b/modules/nf-core/samtools/idxstats/meta.yml @@ -48,3 +48,5 @@ output: pattern: "versions.yml" authors: - "@drpatelh" +maintainers: + - "@drpatelh" diff --git a/modules/nf-core/samtools/idxstats/tests/main.nf.test b/modules/nf-core/samtools/idxstats/tests/main.nf.test new file mode 100644 index 00000000..f6c92150 --- /dev/null +++ b/modules/nf-core/samtools/idxstats/tests/main.nf.test @@ -0,0 +1,36 @@ +nextflow_process { + + name "Test Process SAMTOOLS_IDXSTATS" + script "../main.nf" + process "SAMTOOLS_IDXSTATS" + tag "modules" + tag "modules_nfcore" + tag "samtools" + tag "samtools/idxstats" + + test("BAM") { + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true) + ] + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out.idxstats).match() }, + { assert path(process.out.versions.get(0)).getText().contains("samtools") } + ) + } + } +} diff --git a/modules/nf-core/samtools/idxstats/tests/main.nf.test.snap b/modules/nf-core/samtools/idxstats/tests/main.nf.test.snap new file mode 100644 index 00000000..4c6c12bd --- /dev/null +++ b/modules/nf-core/samtools/idxstats/tests/main.nf.test.snap @@ -0,0 +1,16 @@ +{ + "BAM": { + "content": [ + [ + [ + { + "id": "test", + "single_end": false + }, + "test.idxstats:md5,df60a8c8d6621100d05178c93fb053a2" + ] + ] + ], + "timestamp": "2023-11-14T15:52:19.875194" + } +} \ No newline at end of file diff --git a/modules/nf-core/samtools/idxstats/tests/tags.yml b/modules/nf-core/samtools/idxstats/tests/tags.yml new file mode 100644 index 00000000..d3057c61 --- /dev/null +++ b/modules/nf-core/samtools/idxstats/tests/tags.yml @@ -0,0 +1,2 @@ +samtools/idxstats: + - modules/nf-core/samtools/idxstats/** diff --git a/modules/nf-core/samtools/index/environment.yml b/modules/nf-core/samtools/index/environment.yml new file mode 100644 index 00000000..81f09391 --- /dev/null +++ b/modules/nf-core/samtools/index/environment.yml @@ -0,0 +1,8 @@ +name: samtools_index +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::samtools=1.18 + - bioconda::htslib=1.18 diff --git a/modules/nf-core/samtools/index/main.nf b/modules/nf-core/samtools/index/main.nf index 0b20aa4b..8ad18fdc 100644 --- a/modules/nf-core/samtools/index/main.nf +++ b/modules/nf-core/samtools/index/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_INDEX { tag "$meta.id" label 'process_low' - conda "bioconda::samtools=1.17" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.17--h00cdaf9_0' : - 'biocontainers/samtools:1.17--h00cdaf9_0' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.18--h50ea8bc_1' : + 'biocontainers/samtools:1.18--h50ea8bc_1' }" input: tuple val(meta), path(input) diff --git a/modules/nf-core/samtools/index/meta.yml b/modules/nf-core/samtools/index/meta.yml index 8bd2fa6f..01a4ee03 100644 --- a/modules/nf-core/samtools/index/meta.yml +++ b/modules/nf-core/samtools/index/meta.yml @@ -51,3 +51,7 @@ authors: - "@drpatelh" - "@ewels" - "@maxulysse" +maintainers: + - "@drpatelh" + - "@ewels" + - "@maxulysse" diff --git a/modules/nf-core/samtools/index/tests/csi.nextflow.config b/modules/nf-core/samtools/index/tests/csi.nextflow.config new file mode 100644 index 00000000..0ed260ef --- /dev/null +++ b/modules/nf-core/samtools/index/tests/csi.nextflow.config @@ -0,0 +1,7 @@ +process { + + withName: SAMTOOLS_INDEX { + ext.args = '-c' + } + +} diff --git a/modules/nf-core/samtools/index/tests/main.nf.test b/modules/nf-core/samtools/index/tests/main.nf.test new file mode 100644 index 00000000..c76a9169 --- /dev/null +++ b/modules/nf-core/samtools/index/tests/main.nf.test @@ -0,0 +1,87 @@ +nextflow_process { + + name "Test Process SAMTOOLS_INDEX" + script "../main.nf" + process "SAMTOOLS_INDEX" + tag "modules" + tag "modules_nfcore" + tag "samtools" + tag "samtools/index" + + test("sarscov2 [BAI]") { + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ + [ id:'test' ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) + ] + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out.bai).match("bai") }, + { assert path(process.out.versions.get(0)).getText().contains("samtools") } + ) + } + } + + test("homo_sapiens [CRAI]") { + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ + [ id:'test' ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_cram'], checkIfExists: true) + ] + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out.crai).match("crai") }, + { assert path(process.out.versions.get(0)).getText().contains("samtools") } + ) + } + } + + test("homo_sapiens [CSI]") { + + config "./csi.nextflow.config" + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ + [ id:'test' ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) + ] + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert path(process.out.csi.get(0).get(1)).exists() }, + { assert path(process.out.versions.get(0)).getText().contains("samtools") } + ) + } + } +} diff --git a/modules/nf-core/samtools/index/tests/main.nf.test.snap b/modules/nf-core/samtools/index/tests/main.nf.test.snap new file mode 100644 index 00000000..b3baee7f --- /dev/null +++ b/modules/nf-core/samtools/index/tests/main.nf.test.snap @@ -0,0 +1,28 @@ +{ + "crai": { + "content": [ + [ + [ + { + "id": "test" + }, + "test.paired_end.recalibrated.sorted.cram.crai:md5,14bc3bd5c89cacc8f4541f9062429029" + ] + ] + ], + "timestamp": "2023-11-15T15:17:37.30801" + }, + "bai": { + "content": [ + [ + [ + { + "id": "test" + }, + "test.paired_end.sorted.bam.bai:md5,704c10dd1326482448ca3073fdebc2f4" + ] + ] + ], + "timestamp": "2023-11-15T15:17:30.869234" + } +} \ No newline at end of file diff --git a/modules/nf-core/samtools/index/tests/tags.yml b/modules/nf-core/samtools/index/tests/tags.yml new file mode 100644 index 00000000..e0f58a7a --- /dev/null +++ b/modules/nf-core/samtools/index/tests/tags.yml @@ -0,0 +1,2 @@ +samtools/index: + - modules/nf-core/samtools/index/** diff --git a/modules/nf-core/samtools/sort/environment.yml b/modules/nf-core/samtools/sort/environment.yml new file mode 100644 index 00000000..f4064b72 --- /dev/null +++ b/modules/nf-core/samtools/sort/environment.yml @@ -0,0 +1,8 @@ +name: samtools_sort +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::samtools=1.18 + - bioconda::htslib=1.18 diff --git a/modules/nf-core/samtools/sort/main.nf b/modules/nf-core/samtools/sort/main.nf index 2b7753fd..4a666d42 100644 --- a/modules/nf-core/samtools/sort/main.nf +++ b/modules/nf-core/samtools/sort/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_SORT { tag "$meta.id" label 'process_medium' - conda "bioconda::samtools=1.17" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.17--h00cdaf9_0' : - 'biocontainers/samtools:1.17--h00cdaf9_0' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.18--h50ea8bc_1' : + 'biocontainers/samtools:1.18--h50ea8bc_1' }" input: tuple val(meta), path(bam) diff --git a/modules/nf-core/samtools/sort/meta.yml b/modules/nf-core/samtools/sort/meta.yml index 07328431..2200de72 100644 --- a/modules/nf-core/samtools/sort/meta.yml +++ b/modules/nf-core/samtools/sort/meta.yml @@ -46,3 +46,6 @@ output: authors: - "@drpatelh" - "@ewels" +maintainers: + - "@drpatelh" + - "@ewels" diff --git a/modules/nf-core/samtools/sort/tests/main.nf.test b/modules/nf-core/samtools/sort/tests/main.nf.test new file mode 100644 index 00000000..abb80978 --- /dev/null +++ b/modules/nf-core/samtools/sort/tests/main.nf.test @@ -0,0 +1,73 @@ +nextflow_process { + + name "Test Process SAMTOOLS_SORT" + script "../main.nf" + process "SAMTOOLS_SORT" + tag "modules" + tag "modules_nfcore" + tag "samtools" + tag "samtools/sort" + + test("test_samtools_sort") { + + config "./nextflow.config" + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ + [ id:'test', single_end:false ], + [ + file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true) + ] + ] + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("test_samtools_sort_stub") { + + config "./nextflow.config" + options "-stub-run" + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ + [ id:'test', single_end:false ], + [ + file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true) + ] + ] + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot( + file(process.out.bam[0][1]).name, + process.out.versions + ).match() } + ) + } + + } + +} diff --git a/modules/nf-core/samtools/sort/tests/main.nf.test.snap b/modules/nf-core/samtools/sort/tests/main.nf.test.snap new file mode 100644 index 00000000..ff722259 --- /dev/null +++ b/modules/nf-core/samtools/sort/tests/main.nf.test.snap @@ -0,0 +1,48 @@ +{ + "test_samtools_sort": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.sorted.bam:md5,ea6a0fef94eb534e901f107a05a33a06" + ] + ], + "1": [ + + ], + "2": [ + "versions.yml:md5,33b6a403dc19a0d28e4219ccab0a1d80" + ], + "bam": [ + [ + { + "id": "test", + "single_end": false + }, + "test.sorted.bam:md5,ea6a0fef94eb534e901f107a05a33a06" + ] + ], + "csi": [ + + ], + "versions": [ + "versions.yml:md5,33b6a403dc19a0d28e4219ccab0a1d80" + ] + } + ], + "timestamp": "2023-12-04T11:11:22.005628301" + }, + "test_samtools_sort_stub": { + "content": [ + "test.sorted.bam", + [ + "versions.yml:md5,33b6a403dc19a0d28e4219ccab0a1d80" + ] + ], + "timestamp": "2023-12-04T17:47:22.314445935" + } +} \ No newline at end of file diff --git a/modules/nf-core/samtools/sort/tests/nextflow.config b/modules/nf-core/samtools/sort/tests/nextflow.config new file mode 100644 index 00000000..d0f35086 --- /dev/null +++ b/modules/nf-core/samtools/sort/tests/nextflow.config @@ -0,0 +1,7 @@ +process { + + withName: SAMTOOLS_SORT { + ext.prefix = { "${meta.id}.sorted" } + } + +} diff --git a/modules/nf-core/samtools/sort/tests/tags.yml b/modules/nf-core/samtools/sort/tests/tags.yml new file mode 100644 index 00000000..cd63ea20 --- /dev/null +++ b/modules/nf-core/samtools/sort/tests/tags.yml @@ -0,0 +1,3 @@ +samtools/sort: + - modules/nf-core/samtools/sort/** + - tests/modules/nf-core/samtools/sort/** diff --git a/modules/nf-core/samtools/stats/environment.yml b/modules/nf-core/samtools/stats/environment.yml new file mode 100644 index 00000000..b45ba90c --- /dev/null +++ b/modules/nf-core/samtools/stats/environment.yml @@ -0,0 +1,8 @@ +name: samtools_stats +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::samtools=1.18 + - bioconda::htslib=1.18 diff --git a/modules/nf-core/samtools/stats/main.nf b/modules/nf-core/samtools/stats/main.nf index 4a2607de..7539140a 100644 --- a/modules/nf-core/samtools/stats/main.nf +++ b/modules/nf-core/samtools/stats/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_STATS { tag "$meta.id" label 'process_single' - conda "bioconda::samtools=1.17" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.17--h00cdaf9_0' : - 'biocontainers/samtools:1.17--h00cdaf9_0' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.18--h50ea8bc_1' : + 'biocontainers/samtools:1.18--h50ea8bc_1' }" input: tuple val(meta), path(input), path(input_index) diff --git a/modules/nf-core/samtools/stats/meta.yml b/modules/nf-core/samtools/stats/meta.yml index 90e6345f..735ff812 100644 --- a/modules/nf-core/samtools/stats/meta.yml +++ b/modules/nf-core/samtools/stats/meta.yml @@ -57,3 +57,7 @@ authors: - "@drpatelh" - "@FriederikeHanssen" - "@ramprasadn" +maintainers: + - "@drpatelh" + - "@FriederikeHanssen" + - "@ramprasadn" diff --git a/modules/nf-core/samtools/stats/tests/main.nf.test b/modules/nf-core/samtools/stats/tests/main.nf.test new file mode 100644 index 00000000..20c3efe1 --- /dev/null +++ b/modules/nf-core/samtools/stats/tests/main.nf.test @@ -0,0 +1,78 @@ +nextflow_process { + + name "Test Process SAMTOOLS_STATS" + script "../main.nf" + process "SAMTOOLS_STATS" + tag "modules" + tag "modules_nfcore" + tag "samtools" + tag "samtools/stats" + + test("SAMTOOLS STATS Should run without failures") { + + when { + params { + + outdir = "$outputDir" + } + process { + """ + // define inputs of the process here. + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true) + + ] + input[1] = [[],[]] + """ + + } + } + + then { + assertAll( + {assert process.success}, + {assert snapshot(process.out).match()} + ) + } + + } + + test("SAMTOOLS CRAM Should run without failures") { + + when { + params { + + outdir = "$outputDir" + } + process { + """ + // define inputs of the process here + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_cram'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_cram_crai'], checkIfExists: true) + + ] + input[1] = [ + [ id:'genome' ], + file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + ] + """ + } + + + } + + then { + assertAll( + {assert process.success}, + {assert snapshot(process.out).match()} + ) + } + + } + + +} diff --git a/modules/nf-core/samtools/stats/tests/main.nf.test.snap b/modules/nf-core/samtools/stats/tests/main.nf.test.snap new file mode 100644 index 00000000..025c83a5 --- /dev/null +++ b/modules/nf-core/samtools/stats/tests/main.nf.test.snap @@ -0,0 +1,64 @@ +{ + "SAMTOOLS STATS Should run without failures": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.stats:md5,045a48208b1c6f5b8af4347fe31f4def" + ] + ], + "1": [ + "versions.yml:md5,650a365c6635001436008350ae83337c" + ], + "stats": [ + [ + { + "id": "test", + "single_end": false + }, + "test.stats:md5,045a48208b1c6f5b8af4347fe31f4def" + ] + ], + "versions": [ + "versions.yml:md5,650a365c6635001436008350ae83337c" + ] + } + ], + "timestamp": "2023-12-04T11:07:28.26821485" + }, + "SAMTOOLS CRAM Should run without failures": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.stats:md5,dfbfa130d4a6925ddd1931dcd8354a43" + ] + ], + "1": [ + "versions.yml:md5,650a365c6635001436008350ae83337c" + ], + "stats": [ + [ + { + "id": "test", + "single_end": false + }, + "test.stats:md5,dfbfa130d4a6925ddd1931dcd8354a43" + ] + ], + "versions": [ + "versions.yml:md5,650a365c6635001436008350ae83337c" + ] + } + ], + "timestamp": "2023-12-04T11:07:50.356233402" + } +} \ No newline at end of file diff --git a/modules/nf-core/samtools/stats/tests/tags.yml b/modules/nf-core/samtools/stats/tests/tags.yml new file mode 100644 index 00000000..7c28e30f --- /dev/null +++ b/modules/nf-core/samtools/stats/tests/tags.yml @@ -0,0 +1,2 @@ +samtools/stats: + - modules/nf-core/samtools/stats/** diff --git a/modules/nf-core/trimgalore/environment.yml b/modules/nf-core/trimgalore/environment.yml new file mode 100644 index 00000000..6cd0f51b --- /dev/null +++ b/modules/nf-core/trimgalore/environment.yml @@ -0,0 +1,7 @@ +name: trimgalore +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::trim-galore=0.6.7 diff --git a/modules/nf-core/trimgalore/main.nf b/modules/nf-core/trimgalore/main.nf index dcb77ae7..24ead871 100644 --- a/modules/nf-core/trimgalore/main.nf +++ b/modules/nf-core/trimgalore/main.nf @@ -2,7 +2,7 @@ process TRIMGALORE { tag "$meta.id" label 'process_high' - conda "bioconda::trim-galore=0.6.7" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/trim-galore:0.6.7--hdfd78af_0' : 'biocontainers/trim-galore:0.6.7--hdfd78af_0' }" diff --git a/modules/nf-core/trimgalore/meta.yml b/modules/nf-core/trimgalore/meta.yml index f84c4d77..e649088c 100644 --- a/modules/nf-core/trimgalore/meta.yml +++ b/modules/nf-core/trimgalore/meta.yml @@ -62,3 +62,7 @@ authors: - "@drpatelh" - "@ewels" - "@FelixKrueger" +maintainers: + - "@drpatelh" + - "@ewels" + - "@FelixKrueger" diff --git a/modules/nf-core/trimgalore/tests/main.nf.test b/modules/nf-core/trimgalore/tests/main.nf.test new file mode 100644 index 00000000..bc6812cc --- /dev/null +++ b/modules/nf-core/trimgalore/tests/main.nf.test @@ -0,0 +1,105 @@ +nextflow_process { + + name "Test Process TRIMGALORE" + script "../main.nf" + process "TRIMGALORE" + tag "modules" + tag "modules_nfcore" + tag "trimgalore" + + test("test_trimgalore_single_end") { + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ [ id:'test', single_end:true ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) ] + ] + """ + } + } + + then { + def read_lines = ["@ERR5069949.2151832 NS500628:121:HK3MMAFX2:2:21208:10793:15304/1", + "TCATAAACCAAAGCACTCACAGTGTCAACAATTTCAGCAGGACAACGCCGACAAGTTCCGAGGAACATGTCTGGACCTATAGTTTTCATAAGTCTACACACTGAATTGAAATATTCTGGTTCTAGTGTGCCCTTAGTTAGCAATGTGCGT", + "AAAAAAEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAAEEEEAEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAAEEEEE + { assert path(process.out.reads.get(0).get(1)).linesGzip.contains(read_line) } + } + }, + { report1_lines.each { report1_line -> + { assert path(process.out.log.get(0).get(1)).getText().contains(report1_line) } + } + } + ) + } + } + + test("test_trimgalore_paired_end") { + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ [ id:'test', single_end:false ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ] + ] + """ + } + } + + then { + def read1_lines = ["@ERR5069949.2151832 NS500628:121:HK3MMAFX2:2:21208:10793:15304/1", + "TCATAAACCAAAGCACTCACAGTGTCAACAATTTCAGCAGGACAACGCCGACAAGTTCCGAGGAACATGTCTGGACCTATAGTTTTCATAAGTCTACACACTGAATTGAAATATTCTGGTTCTAGTGTGCCCTTAGTTAGCAATGTGCGT", + "AAAAAAEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAAEEEEAEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAAEEEEE + { assert path(process.out.reads.get(0).get(1).get(0)).linesGzip.contains(read1_line) } + } + }, + { read2_lines.each { read2_line -> + { assert path(process.out.reads.get(0).get(1).get(1)).linesGzip.contains(read2_line) } + } + }, + { report1_lines.each { report1_line -> + { assert path(process.out.log.get(0).get(1).get(0)).getText().contains(report1_line) } + } + }, + { report2_lines.each { report2_line -> + { assert path(process.out.log.get(0).get(1).get(1)).getText().contains(report2_line) } + } + } + ) + } + } +} diff --git a/modules/nf-core/trimgalore/tests/main.nf.test.snap b/modules/nf-core/trimgalore/tests/main.nf.test.snap new file mode 100644 index 00000000..84feacca --- /dev/null +++ b/modules/nf-core/trimgalore/tests/main.nf.test.snap @@ -0,0 +1,148 @@ +{ + "test_trimgalore_single_end": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": true + }, + "test_trimmed.fq.gz:md5,e0a7516b8ea8d6467d6306acb2cd13c4" + ] + ], + "1": [ + [ + { + "id": "test", + "single_end": true + }, + "test.fastq.gz_trimming_report.txt:md5,a1ab3958205f1ddf48af623242b5b429" + ] + ], + "2": [ + + ], + "3": [ + + ], + "4": [ + + ], + "5": [ + "versions.yml:md5,47d966cbb31c80eb8f7fe860d55659b7" + ], + "html": [ + + ], + "log": [ + [ + { + "id": "test", + "single_end": true + }, + "test.fastq.gz_trimming_report.txt:md5,a1ab3958205f1ddf48af623242b5b429" + ] + ], + "reads": [ + [ + { + "id": "test", + "single_end": true + }, + "test_trimmed.fq.gz:md5,e0a7516b8ea8d6467d6306acb2cd13c4" + ] + ], + "unpaired": [ + + ], + "versions": [ + "versions.yml:md5,47d966cbb31c80eb8f7fe860d55659b7" + ], + "zip": [ + + ] + } + ], + "timestamp": "2023-10-17T15:24:57.782141441" + }, + "test_trimgalore_paired_end": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test_1_val_1.fq.gz:md5,e0a7516b8ea8d6467d6306acb2cd13c4", + "test_2_val_2.fq.gz:md5,f3d61189e6d10202da7b8686f1dbb71b" + ] + ] + ], + "1": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test_1.fastq.gz_trimming_report.txt:md5,315d40465412f9909bbaabf52269274d", + "test_2.fastq.gz_trimming_report.txt:md5,34436303da1c78811103427a2fb57f7b" + ] + ] + ], + "2": [ + + ], + "3": [ + + ], + "4": [ + + ], + "5": [ + "versions.yml:md5,47d966cbb31c80eb8f7fe860d55659b7" + ], + "html": [ + + ], + "log": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test_1.fastq.gz_trimming_report.txt:md5,315d40465412f9909bbaabf52269274d", + "test_2.fastq.gz_trimming_report.txt:md5,34436303da1c78811103427a2fb57f7b" + ] + ] + ], + "reads": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test_1_val_1.fq.gz:md5,e0a7516b8ea8d6467d6306acb2cd13c4", + "test_2_val_2.fq.gz:md5,f3d61189e6d10202da7b8686f1dbb71b" + ] + ] + ], + "unpaired": [ + + ], + "versions": [ + "versions.yml:md5,47d966cbb31c80eb8f7fe860d55659b7" + ], + "zip": [ + + ] + } + ], + "timestamp": "2023-10-17T15:25:08.513589909" + } +} \ No newline at end of file diff --git a/modules/nf-core/trimgalore/tests/tags.yml b/modules/nf-core/trimgalore/tests/tags.yml new file mode 100644 index 00000000..e9937691 --- /dev/null +++ b/modules/nf-core/trimgalore/tests/tags.yml @@ -0,0 +1,2 @@ +trimgalore: + - modules/nf-core/trimgalore/** diff --git a/modules/nf-core/umitools/extract/environment.yml b/modules/nf-core/umitools/extract/environment.yml new file mode 100644 index 00000000..7d08ac0e --- /dev/null +++ b/modules/nf-core/umitools/extract/environment.yml @@ -0,0 +1,7 @@ +name: umitools_extract +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::umi_tools=1.1.4 diff --git a/modules/nf-core/umitools/extract/main.nf b/modules/nf-core/umitools/extract/main.nf index 2f94fa93..4bd79e79 100644 --- a/modules/nf-core/umitools/extract/main.nf +++ b/modules/nf-core/umitools/extract/main.nf @@ -3,7 +3,7 @@ process UMITOOLS_EXTRACT { label "process_single" label "process_long" - conda "bioconda::umi_tools=1.1.4" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/umi_tools:1.1.4--py38hbff2b2d_1' : 'biocontainers/umi_tools:1.1.4--py38hbff2b2d_1' }" @@ -33,7 +33,7 @@ process UMITOOLS_EXTRACT { cat <<-END_VERSIONS > versions.yml "${task.process}": - umitools: \$(umi_tools --version 2>&1 | sed 's/^.*UMI-tools version://; s/ *\$//') + umitools: \$( umi_tools --version | sed '/version:/!d; s/.*: //' ) END_VERSIONS """ } else { @@ -49,7 +49,7 @@ process UMITOOLS_EXTRACT { cat <<-END_VERSIONS > versions.yml "${task.process}": - umitools: \$(umi_tools --version 2>&1 | sed 's/^.*UMI-tools version://; s/ *\$//') + umitools: \$( umi_tools --version | sed '/version:/!d; s/.*: //' ) END_VERSIONS """ } diff --git a/modules/nf-core/umitools/extract/meta.yml b/modules/nf-core/umitools/extract/meta.yml index db64a0f8..7695b271 100644 --- a/modules/nf-core/umitools/extract/meta.yml +++ b/modules/nf-core/umitools/extract/meta.yml @@ -1,15 +1,16 @@ name: umitools_extract description: Extracts UMI barcode from a read and add it to the read name, leaving any sample barcode in place keywords: - - umitools + - UMI + - barcode - extract + - umitools tools: - umi_tools: description: > - UMI-tools contains tools for dealing with Unique Molecular Identifiers (UMIs)/Random Molecular Tags (RMTs) - and single cell RNA-Seq cell barcodes + UMI-tools contains tools for dealing with Unique Molecular Identifiers (UMIs)/Random Molecular Tags (RMTs) and single cell RNA-Seq cell barcodes documentation: https://umi-tools.readthedocs.io/en/latest/ - license: ["MIT"] + license: "MIT" input: - meta: type: map @@ -29,9 +30,7 @@ output: - reads: type: file description: > - Extracted FASTQ files. | - For single-end reads, pattern is \${prefix}.umi_extract.fastq.gz. | - For paired-end reads, pattern is \${prefix}.umi_extract_{1,2}.fastq.gz. + Extracted FASTQ files. | For single-end reads, pattern is \${prefix}.umi_extract.fastq.gz. | For paired-end reads, pattern is \${prefix}.umi_extract_{1,2}.fastq.gz. pattern: "*.{fastq.gz}" - log: type: file @@ -41,7 +40,9 @@ output: type: file description: File containing software versions pattern: "versions.yml" - authors: - "@drpatelh" - "@grst" +maintainers: + - "@drpatelh" + - "@grst" diff --git a/modules/nf-core/umitools/extract/tests/main.nf.test b/modules/nf-core/umitools/extract/tests/main.nf.test new file mode 100644 index 00000000..22242d1d --- /dev/null +++ b/modules/nf-core/umitools/extract/tests/main.nf.test @@ -0,0 +1,35 @@ +nextflow_process { + + name "Test Process UMITOOLS_EXTRACT" + script "../main.nf" + process "UMITOOLS_EXTRACT" + config "./nextflow.config" + tag "modules_nfcore" + tag "modules" + tag "umitools" + tag "umitools/extract" + + test("Should run without failures") { + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ [ id:'test', single_end:true ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) ] + ] + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out.versions).match("versions") } + ) + } + + } +} \ No newline at end of file diff --git a/modules/nf-core/umitools/extract/tests/main.nf.test.snap b/modules/nf-core/umitools/extract/tests/main.nf.test.snap new file mode 100644 index 00000000..6d5944f1 --- /dev/null +++ b/modules/nf-core/umitools/extract/tests/main.nf.test.snap @@ -0,0 +1,10 @@ +{ + "versions": { + "content": [ + [ + "versions.yml:md5,5a18da2d3a5a4de15e7aaae9082d7abb" + ] + ], + "timestamp": "2023-12-08T09:41:43.540658352" + } +} \ No newline at end of file diff --git a/modules/nf-core/umitools/extract/tests/nextflow.config b/modules/nf-core/umitools/extract/tests/nextflow.config new file mode 100644 index 00000000..c866f5a0 --- /dev/null +++ b/modules/nf-core/umitools/extract/tests/nextflow.config @@ -0,0 +1,9 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + + withName: UMITOOLS_EXTRACT { + ext.args = '--bc-pattern="NNNN"' + } + +} diff --git a/modules/nf-core/umitools/extract/tests/tags.yml b/modules/nf-core/umitools/extract/tests/tags.yml new file mode 100644 index 00000000..c3fb23de --- /dev/null +++ b/modules/nf-core/umitools/extract/tests/tags.yml @@ -0,0 +1,2 @@ +umitools/extract: + - modules/nf-core/umitools/extract/** From 12b6e43cdda3c3fca16aae039cddf13e8fb45014 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Thu, 1 Feb 2024 22:15:08 +0100 Subject: [PATCH 134/201] Update modules json --- modules.json | 58 ++++++++++++++++++++++++++-------------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/modules.json b/modules.json index 99214bc7..3c55d338 100644 --- a/modules.json +++ b/modules.json @@ -7,10 +7,10 @@ "nf-core": { "bowtie2/align": { "branch": "master", - "git_sha": "fe54581f8bed20e4c4a51c616c93fd3379d89820", + "git_sha": "3c77ca9aac783e76c3614a06db3bfe4fef619bde", "installed_by": [ - "modules", - "fastq_align_bowtie2" + "fastq_align_bowtie2", + "modules" ] }, "bowtie2/build": { @@ -29,18 +29,18 @@ }, "bwa/mem": { "branch": "master", - "git_sha": "603ecbd9f45300c9788f197d2a15a005685b4220", + "git_sha": "a64788f5ad388f1d2ac5bd5f1f3f8fc81476148c", "installed_by": [ - "modules", - "fastq_align_bwa" + "fastq_align_bwa", + "modules" ] }, "chromap/chromap": { "branch": "master", - "git_sha": "603ecbd9f45300c9788f197d2a15a005685b4220", + "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5", "installed_by": [ - "modules", - "fastq_align_chromap" + "fastq_align_chromap", + "modules" ] }, "chromap/index": { @@ -158,10 +158,10 @@ }, "picard/markduplicates": { "branch": "master", - "git_sha": "735e1e04e7e01751d2d6e97055bbdb6f70683cc1", + "git_sha": "ec833ac4c29db6005d18baccf3306f557c46b006", "installed_by": [ - "modules", - "bam_markduplicates_picard" + "bam_markduplicates_picard", + "modules" ] }, "picard/mergesamfiles": { @@ -180,43 +180,43 @@ }, "samtools/flagstat": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "ce0b1aed7d504883061e748f492a31bf44c5777c", "installed_by": [ - "modules", - "bam_stats_samtools" + "bam_stats_samtools", + "modules" ] }, "samtools/idxstats": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "ce0b1aed7d504883061e748f492a31bf44c5777c", "installed_by": [ - "modules", - "bam_stats_samtools" + "bam_stats_samtools", + "modules" ] }, "samtools/index": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "ce0b1aed7d504883061e748f492a31bf44c5777c", "installed_by": [ - "modules", "bam_markduplicates_picard", - "bam_sort_stats_samtools" + "bam_sort_stats_samtools", + "modules" ] }, "samtools/sort": { "branch": "master", - "git_sha": "a0f7be95788366c1923171e358da7d049eb440f9", + "git_sha": "ce0b1aed7d504883061e748f492a31bf44c5777c", "installed_by": [ - "modules", - "bam_sort_stats_samtools" + "bam_sort_stats_samtools", + "modules" ] }, "samtools/stats": { "branch": "master", - "git_sha": "735e1e04e7e01751d2d6e97055bbdb6f70683cc1", + "git_sha": "ec833ac4c29db6005d18baccf3306f557c46b006", "installed_by": [ - "modules", - "bam_stats_samtools" + "bam_stats_samtools", + "modules" ] }, "subread/featurecounts": { @@ -228,7 +228,7 @@ }, "trimgalore": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5", "installed_by": [ "fastq_fastqc_umitools_trimgalore", "modules" @@ -243,7 +243,7 @@ }, "umitools/extract": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "65ad3e0b9a4099592e1102e92e10455dc661cf53", "installed_by": [ "fastq_fastqc_umitools_trimgalore" ] From da58939ee5ed8e976436b36f2c35b708b4cf5f38 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Thu, 1 Feb 2024 22:15:34 +0100 Subject: [PATCH 135/201] Pass empty meta for modules needing it --- workflows/chipseq.nf | 38 +++++++++++++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index b2d5831a..f3f8e517 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -173,7 +173,12 @@ workflow CHIPSEQ { FASTQ_FASTQC_UMITOOLS_TRIMGALORE.out.reads, PREPARE_GENOME.out.bwa_index, false, - PREPARE_GENOME.out.fasta + PREPARE_GENOME + .out + .fasta + .map { + [ [:], it ] + } ) ch_genome_bam = FASTQ_ALIGN_BWA.out.bam ch_genome_bam_index = FASTQ_ALIGN_BWA.out.bai @@ -193,6 +198,9 @@ workflow CHIPSEQ { params.save_unaligned, false, PREPARE_GENOME.out.fasta + .map { + [ [:], it ] + } ) ch_genome_bam = FASTQ_ALIGN_BOWTIE2.out.bam ch_genome_bam_index = FASTQ_ALIGN_BOWTIE2.out.bai @@ -209,7 +217,9 @@ workflow CHIPSEQ { FASTQ_ALIGN_CHROMAP ( FASTQ_FASTQC_UMITOOLS_TRIMGALORE.out.reads, PREPARE_GENOME.out.chromap_index, - PREPARE_GENOME.out.fasta + PREPARE_GENOME + .out + .fasta .map { [ [:], it ] }, @@ -233,7 +243,12 @@ workflow CHIPSEQ { ALIGN_STAR ( FASTQ_FASTQC_UMITOOLS_TRIMGALORE.out.reads, PREPARE_GENOME.out.star_index, - PREPARE_GENOME.out.fasta, + PREPARE_GENOME + .out + .fasta + .map { + [ [:], it ] + }, params.seq_center ?: '' ) ch_genome_bam = ALIGN_STAR.out.bam @@ -275,8 +290,16 @@ workflow CHIPSEQ { // BAM_MARKDUPLICATES_PICARD ( PICARD_MERGESAMFILES.out.bam, - PREPARE_GENOME.out.fasta, + PREPARE_GENOME + .out + .fasta + .map { + [ [:], it ] + }, PREPARE_GENOME.out.fai + .map { + [ [:], it ] + } ) ch_versions = ch_versions.mix(BAM_MARKDUPLICATES_PICARD.out.versions) @@ -286,7 +309,12 @@ workflow CHIPSEQ { BAM_FILTER_BAMTOOLS ( BAM_MARKDUPLICATES_PICARD.out.bam.join(BAM_MARKDUPLICATES_PICARD.out.bai, by: [0]), PREPARE_GENOME.out.filtered_bed.first(), - PREPARE_GENOME.out.fasta, + PREPARE_GENOME + .out + .fasta + .map { + [ [:], it ] + }, ch_bamtools_filter_se_config, ch_bamtools_filter_pe_config ) From 1b42a379c896c47d5557b376daa83fbd0c985161 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Thu, 1 Feb 2024 22:21:41 +0100 Subject: [PATCH 136/201] Make prettier happy --- lib/WorkflowMain.groovy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/WorkflowMain.groovy b/lib/WorkflowMain.groovy index 70b9b3ff..56cacad8 100755 --- a/lib/WorkflowMain.groovy +++ b/lib/WorkflowMain.groovy @@ -70,7 +70,7 @@ class WorkflowMain { } return val } - + // Exit pipeline if --profile contains spaces // private static void checkProfile(profile, args, log) { From 334c21acf82048e3a91a4f0a232add59c908a6e9 Mon Sep 17 00:00:00 2001 From: Jose Espinosa-Carrasco Date: Mon, 5 Feb 2024 11:19:41 +0000 Subject: [PATCH 137/201] Fix lint --- .github/workflows/download_pipeline.yml | 2 +- .nf-core.yml | 4 +- modules.json | 185 ++++++------------------ 3 files changed, 46 insertions(+), 145 deletions(-) diff --git a/.github/workflows/download_pipeline.yml b/.github/workflows/download_pipeline.yml index 8611458a..8a330045 100644 --- a/.github/workflows/download_pipeline.yml +++ b/.github/workflows/download_pipeline.yml @@ -64,4 +64,4 @@ jobs: env: NXF_SINGULARITY_CACHEDIR: ./ NXF_SINGULARITY_HOME_MOUNT: true - run: nextflow run ./${{ env.REPOTITLE_LOWERCASE }}/$( sed 's/\W/_/g' <<< ${{ env.REPO_BRANCH }}) -stub -profile test,singularity --outdir ./results + run: nextflow run ./${{ env.REPOTITLE_LOWERCASE }}/$( sed 's/\W/_/g' <<< ${{ env.REPO_BRANCH }}) -stub -profile test,singularity --outdir ./results diff --git a/.nf-core.yml b/.nf-core.yml index e8247adb..2e90e7d0 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -3,5 +3,5 @@ repository_type: pipeline lint: nextflow_config: - config_defaults: - - params.bamtools_filter_se_config - - params.bamtools_filter_pe_config + - params.bamtools_filter_se_config + - params.bamtools_filter_pe_config diff --git a/modules.json b/modules.json index 3c55d338..0ae8b30f 100644 --- a/modules.json +++ b/modules.json @@ -8,259 +8,177 @@ "bowtie2/align": { "branch": "master", "git_sha": "3c77ca9aac783e76c3614a06db3bfe4fef619bde", - "installed_by": [ - "fastq_align_bowtie2", - "modules" - ] + "installed_by": ["fastq_align_bowtie2", "modules"] }, "bowtie2/build": { "branch": "master", "git_sha": "6a24fbe314bb2e6fe6306c29a63076ea87e8eb3c", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "bwa/index": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "bwa/mem": { "branch": "master", "git_sha": "a64788f5ad388f1d2ac5bd5f1f3f8fc81476148c", - "installed_by": [ - "fastq_align_bwa", - "modules" - ] + "installed_by": ["fastq_align_bwa", "modules"] }, "chromap/chromap": { "branch": "master", "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5", - "installed_by": [ - "fastq_align_chromap", - "modules" - ] + "installed_by": ["fastq_align_chromap", "modules"] }, "chromap/index": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "custom/dumpsoftwareversions": { "branch": "master", "git_sha": "8ec825f465b9c17f9d83000022995b4f7de6fe93", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "custom/getchromsizes": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "deeptools/computematrix": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "deeptools/plotfingerprint": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "deeptools/plotheatmap": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "deeptools/plotprofile": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "fastqc": { "branch": "master", "git_sha": "f4ae1d942bd50c5c0b9bd2de1393ce38315ba57c", - "installed_by": [ - "fastq_fastqc_umitools_trimgalore", - "modules" - ] + "installed_by": ["fastq_fastqc_umitools_trimgalore", "modules"] }, "gffread": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "gunzip": { "branch": "master", "git_sha": "5c460c5a4736974abde2843294f35307ee2b0e5e", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "homer/annotatepeaks": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "khmer/uniquekmers": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "macs2/callpeak": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "multiqc": { "branch": "master", "git_sha": "8ec825f465b9c17f9d83000022995b4f7de6fe93", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "phantompeakqualtools": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "picard/collectmultiplemetrics": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "picard/markduplicates": { "branch": "master", "git_sha": "ec833ac4c29db6005d18baccf3306f557c46b006", - "installed_by": [ - "bam_markduplicates_picard", - "modules" - ] + "installed_by": ["bam_markduplicates_picard", "modules"] }, "picard/mergesamfiles": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "preseq/lcextrap": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "samtools/flagstat": { "branch": "master", "git_sha": "ce0b1aed7d504883061e748f492a31bf44c5777c", - "installed_by": [ - "bam_stats_samtools", - "modules" - ] + "installed_by": ["bam_stats_samtools", "modules"] }, "samtools/idxstats": { "branch": "master", "git_sha": "ce0b1aed7d504883061e748f492a31bf44c5777c", - "installed_by": [ - "bam_stats_samtools", - "modules" - ] + "installed_by": ["bam_stats_samtools", "modules"] }, "samtools/index": { "branch": "master", "git_sha": "ce0b1aed7d504883061e748f492a31bf44c5777c", - "installed_by": [ - "bam_markduplicates_picard", - "bam_sort_stats_samtools", - "modules" - ] + "installed_by": ["bam_markduplicates_picard", "bam_sort_stats_samtools", "modules"] }, "samtools/sort": { "branch": "master", "git_sha": "ce0b1aed7d504883061e748f492a31bf44c5777c", - "installed_by": [ - "bam_sort_stats_samtools", - "modules" - ] + "installed_by": ["bam_sort_stats_samtools", "modules"] }, "samtools/stats": { "branch": "master", "git_sha": "ec833ac4c29db6005d18baccf3306f557c46b006", - "installed_by": [ - "bam_stats_samtools", - "modules" - ] + "installed_by": ["bam_stats_samtools", "modules"] }, "subread/featurecounts": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "trimgalore": { "branch": "master", "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5", - "installed_by": [ - "fastq_fastqc_umitools_trimgalore", - "modules" - ] + "installed_by": ["fastq_fastqc_umitools_trimgalore", "modules"] }, "ucsc/bedgraphtobigwig": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "umitools/extract": { "branch": "master", "git_sha": "65ad3e0b9a4099592e1102e92e10455dc661cf53", - "installed_by": [ - "fastq_fastqc_umitools_trimgalore" - ] + "installed_by": ["fastq_fastqc_umitools_trimgalore"] }, "untar": { "branch": "master", "git_sha": "5c460c5a4736974abde2843294f35307ee2b0e5e", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "untarfiles": { "branch": "master", "git_sha": "5c460c5a4736974abde2843294f35307ee2b0e5e", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] } } }, @@ -269,57 +187,40 @@ "bam_markduplicates_picard": { "branch": "master", "git_sha": "0c38be7e652a0b2f3a37681ee4c0dbdf85677647", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "bam_sort_stats_samtools": { "branch": "master", "git_sha": "0c38be7e652a0b2f3a37681ee4c0dbdf85677647", - "installed_by": [ - "fastq_align_bowtie2", - "fastq_align_bwa", - "fastq_align_chromap" - ] + "installed_by": ["fastq_align_bowtie2", "fastq_align_bwa", "fastq_align_chromap"] }, "bam_stats_samtools": { "branch": "master", "git_sha": "0c38be7e652a0b2f3a37681ee4c0dbdf85677647", - "installed_by": [ - "bam_markduplicates_picard", - "bam_sort_stats_samtools" - ] + "installed_by": ["bam_markduplicates_picard", "bam_sort_stats_samtools"] }, "fastq_align_bowtie2": { "branch": "master", "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "fastq_align_bwa": { "branch": "master", "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "fastq_align_chromap": { "branch": "master", "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "fastq_fastqc_umitools_trimgalore": { "branch": "master", "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] } } } } } -} \ No newline at end of file +} From 6b1e458e1dcc96e96ea57995311eafe26d91d897 Mon Sep 17 00:00:00 2001 From: nf-core-bot Date: Tue, 20 Feb 2024 15:28:16 +0000 Subject: [PATCH 138/201] Template update for nf-core/tools version 2.13 --- .editorconfig | 9 +- .github/workflows/awsfulltest.yml | 4 +- .github/workflows/awstest.yml | 4 +- .github/workflows/branch.yml | 2 +- .github/workflows/ci.yml | 7 +- .github/workflows/clean-up.yml | 2 +- .github/workflows/download_pipeline.yml | 17 +- .github/workflows/linting.yml | 12 +- .github/workflows/linting_comment.yml | 4 +- .github/workflows/release-announcements.yml | 11 +- README.md | 5 +- assets/multiqc_config.yml | 2 + assets/schema_input.json | 21 +- bin/check_samplesheet.py | 259 ----------- conf/modules.config | 8 - lib/NfcoreTemplate.groovy | 356 -------------- lib/Utils.groovy | 47 -- lib/WorkflowChipseq.groovy | 122 ----- lib/WorkflowMain.groovy | 77 --- main.nf | 100 ++-- modules.json | 28 +- modules/local/samplesheet_check.nf | 31 -- .../dumpsoftwareversions/environment.yml | 7 - .../custom/dumpsoftwareversions/main.nf | 24 - .../custom/dumpsoftwareversions/meta.yml | 37 -- .../templates/dumpsoftwareversions.py | 102 ---- .../dumpsoftwareversions/tests/main.nf.test | 43 -- .../tests/main.nf.test.snap | 33 -- .../dumpsoftwareversions/tests/tags.yml | 2 - modules/nf-core/fastqc/tests/main.nf.test | 14 +- .../nf-core/fastqc/tests/main.nf.test.snap | 76 ++- modules/nf-core/multiqc/environment.yml | 2 +- modules/nf-core/multiqc/main.nf | 4 +- modules/nf-core/multiqc/tests/main.nf.test | 13 +- .../nf-core/multiqc/tests/main.nf.test.snap | 32 +- nextflow.config | 5 +- nextflow_schema.json | 1 + pyproject.toml | 8 +- subworkflows/local/input_check.nf | 44 -- .../utils_nfcore_chipseq_pipeline/main.nf | 247 ++++++++++ .../nf-core/utils_nextflow_pipeline/main.nf | 126 +++++ .../nf-core/utils_nextflow_pipeline/meta.yml | 38 ++ .../tests/main.function.nf.test | 54 +++ .../tests/main.function.nf.test.snap | 12 + .../tests/main.workflow.nf.test | 123 +++++ .../tests/nextflow.config | 9 + .../utils_nextflow_pipeline/tests/tags.yml | 2 + .../nf-core/utils_nfcore_pipeline/main.nf | 440 ++++++++++++++++++ .../nf-core/utils_nfcore_pipeline/meta.yml | 24 + .../tests/main.function.nf.test | 134 ++++++ .../tests/main.function.nf.test.snap | 138 ++++++ .../tests/main.workflow.nf.test | 29 ++ .../tests/main.workflow.nf.test.snap | 15 + .../tests/nextflow.config | 9 + .../utils_nfcore_pipeline/tests/tags.yml | 2 + .../nf-core/utils_nfvalidation_plugin/main.nf | 62 +++ .../utils_nfvalidation_plugin/meta.yml | 44 ++ .../tests/main.nf.test | 200 ++++++++ .../tests/nextflow_schema.json | 96 ++++ .../utils_nfvalidation_plugin/tests/tags.yml | 2 + workflows/chipseq.nf | 133 ++---- 61 files changed, 2108 insertions(+), 1406 deletions(-) delete mode 100755 bin/check_samplesheet.py delete mode 100755 lib/NfcoreTemplate.groovy delete mode 100644 lib/Utils.groovy delete mode 100755 lib/WorkflowChipseq.groovy delete mode 100755 lib/WorkflowMain.groovy delete mode 100644 modules/local/samplesheet_check.nf delete mode 100644 modules/nf-core/custom/dumpsoftwareversions/environment.yml delete mode 100644 modules/nf-core/custom/dumpsoftwareversions/main.nf delete mode 100644 modules/nf-core/custom/dumpsoftwareversions/meta.yml delete mode 100755 modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py delete mode 100644 modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test delete mode 100644 modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test.snap delete mode 100644 modules/nf-core/custom/dumpsoftwareversions/tests/tags.yml delete mode 100644 subworkflows/local/input_check.nf create mode 100644 subworkflows/local/utils_nfcore_chipseq_pipeline/main.nf create mode 100644 subworkflows/nf-core/utils_nextflow_pipeline/main.nf create mode 100644 subworkflows/nf-core/utils_nextflow_pipeline/meta.yml create mode 100644 subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test create mode 100644 subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap create mode 100644 subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test create mode 100644 subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config create mode 100644 subworkflows/nf-core/utils_nextflow_pipeline/tests/tags.yml create mode 100644 subworkflows/nf-core/utils_nfcore_pipeline/main.nf create mode 100644 subworkflows/nf-core/utils_nfcore_pipeline/meta.yml create mode 100644 subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test create mode 100644 subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap create mode 100644 subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test create mode 100644 subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap create mode 100644 subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config create mode 100644 subworkflows/nf-core/utils_nfcore_pipeline/tests/tags.yml create mode 100644 subworkflows/nf-core/utils_nfvalidation_plugin/main.nf create mode 100644 subworkflows/nf-core/utils_nfvalidation_plugin/meta.yml create mode 100644 subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test create mode 100644 subworkflows/nf-core/utils_nfvalidation_plugin/tests/nextflow_schema.json create mode 100644 subworkflows/nf-core/utils_nfvalidation_plugin/tests/tags.yml diff --git a/.editorconfig b/.editorconfig index 9b990088..dd9ffa53 100644 --- a/.editorconfig +++ b/.editorconfig @@ -18,7 +18,12 @@ end_of_line = unset insert_final_newline = unset trim_trailing_whitespace = unset indent_style = unset -indent_size = unset +[/subworkflows/nf-core/**] +charset = unset +end_of_line = unset +insert_final_newline = unset +trim_trailing_whitespace = unset +indent_style = unset [/assets/email*] indent_size = unset @@ -28,5 +33,5 @@ indent_size = unset indent_style = unset # ignore python -[*.{py}] +[*.{py,md}] indent_style = unset diff --git a/.github/workflows/awsfulltest.yml b/.github/workflows/awsfulltest.yml index 1aacf8b4..1ad5c4e1 100644 --- a/.github/workflows/awsfulltest.yml +++ b/.github/workflows/awsfulltest.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Launch workflow via tower - uses: seqeralabs/action-tower-launch@v2 + uses: seqeralabs/action-tower-launch@922e5c8d5ac4e918107ec311d2ebbd65e5982b3d # v2 # TODO nf-core: You can customise AWS full pipeline tests as required # Add full size test data (but still relatively small datasets for few samples) # on the `test_full.config` test runs with only one set of parameters @@ -31,7 +31,7 @@ jobs: } profiles: test_full - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4 with: name: Tower debug log file path: | diff --git a/.github/workflows/awstest.yml b/.github/workflows/awstest.yml index 13edafbc..a854fd23 100644 --- a/.github/workflows/awstest.yml +++ b/.github/workflows/awstest.yml @@ -12,7 +12,7 @@ jobs: steps: # Launch workflow using Tower CLI tool action - name: Launch workflow via tower - uses: seqeralabs/action-tower-launch@v2 + uses: seqeralabs/action-tower-launch@922e5c8d5ac4e918107ec311d2ebbd65e5982b3d # v2 with: workspace_id: ${{ secrets.TOWER_WORKSPACE_ID }} access_token: ${{ secrets.TOWER_ACCESS_TOKEN }} @@ -25,7 +25,7 @@ jobs: } profiles: test - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4 with: name: Tower debug log file path: | diff --git a/.github/workflows/branch.yml b/.github/workflows/branch.yml index d98ab5f1..68c8deab 100644 --- a/.github/workflows/branch.yml +++ b/.github/workflows/branch.yml @@ -19,7 +19,7 @@ jobs: # NOTE - this doesn't currently work if the PR is coming from a fork, due to limitations in GitHub actions secrets - name: Post PR comment if: failure() - uses: mshick/add-pr-comment@v2 + uses: mshick/add-pr-comment@b8f338c590a895d50bcbfa6c5859251edc8952fc # v2 with: message: | ## This PR is against the `master` branch :x: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c608a466..65c68a76 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,13 +28,16 @@ jobs: - "latest-everything" steps: - name: Check out pipeline code - uses: actions/checkout@v4 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - name: Install Nextflow - uses: nf-core/setup-nextflow@v1 + uses: nf-core/setup-nextflow@b9f764e8ba5c76b712ace14ecbfcef0e40ae2dd8 # v1 with: version: "${{ matrix.NXF_VER }}" + - name: Disk space cleanup + uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1 + - name: Run pipeline with test data # TODO nf-core: You can customise CI pipeline run tests as required # For example: adding multiple test runs with different parameters diff --git a/.github/workflows/clean-up.yml b/.github/workflows/clean-up.yml index e37cfda5..0b6b1f27 100644 --- a/.github/workflows/clean-up.yml +++ b/.github/workflows/clean-up.yml @@ -10,7 +10,7 @@ jobs: issues: write pull-requests: write steps: - - uses: actions/stale@v9 + - uses: actions/stale@28ca1036281a5e5922ead5184a1bbf96e5fc984e # v9 with: stale-issue-message: "This issue has been tagged as awaiting-changes or awaiting-feedback by an nf-core contributor. Remove stale label or add a comment otherwise this issue will be closed in 20 days." stale-pr-message: "This PR has been tagged as awaiting-changes or awaiting-feedback by an nf-core contributor. Remove stale label or add a comment if it is still useful." diff --git a/.github/workflows/download_pipeline.yml b/.github/workflows/download_pipeline.yml index 8611458a..f823210d 100644 --- a/.github/workflows/download_pipeline.yml +++ b/.github/workflows/download_pipeline.yml @@ -6,6 +6,11 @@ name: Test successful pipeline download with 'nf-core download' # - the head branch of the pull request is updated, i.e. if fixes for a release are pushed last minute to dev. on: workflow_dispatch: + inputs: + testbranch: + description: "The specific branch you wish to utilize for the test execution of nf-core download." + required: true + default: "dev" pull_request: types: - opened @@ -23,13 +28,13 @@ jobs: runs-on: ubuntu-latest steps: - name: Install Nextflow - uses: nf-core/setup-nextflow@v1 + uses: nf-core/setup-nextflow@b9f764e8ba5c76b712ace14ecbfcef0e40ae2dd8 # v1 - - uses: actions/setup-python@v5 + - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5 with: python-version: "3.11" architecture: "x64" - - uses: eWaterCycle/setup-singularity@v7 + - uses: eWaterCycle/setup-singularity@931d4e31109e875b13309ae1d07c70ca8fbc8537 # v7 with: singularity-version: 3.8.3 @@ -42,13 +47,13 @@ jobs: run: | echo "REPO_LOWERCASE=${GITHUB_REPOSITORY,,}" >> ${GITHUB_ENV} echo "REPOTITLE_LOWERCASE=$(basename ${GITHUB_REPOSITORY,,})" >> ${GITHUB_ENV} - echo "REPO_BRANCH=${GITHUB_REF#refs/heads/}" >> ${GITHUB_ENV} + echo "REPO_BRANCH=${{ github.event.inputs.testbranch || 'dev' }}" >> ${GITHUB_ENV} - name: Download the pipeline env: NXF_SINGULARITY_CACHEDIR: ./ run: | - nf-core download ${{ env.REPO_LOWERCASE }} \ + nf-core download ${{ env.REPO_LOWERCASE }} \ --revision ${{ env.REPO_BRANCH }} \ --outdir ./${{ env.REPOTITLE_LOWERCASE }} \ --compress "none" \ @@ -64,4 +69,4 @@ jobs: env: NXF_SINGULARITY_CACHEDIR: ./ NXF_SINGULARITY_HOME_MOUNT: true - run: nextflow run ./${{ env.REPOTITLE_LOWERCASE }}/$( sed 's/\W/_/g' <<< ${{ env.REPO_BRANCH }}) -stub -profile test,singularity --outdir ./results + run: nextflow run ./${{ env.REPOTITLE_LOWERCASE }}/$( sed 's/\W/_/g' <<< ${{ env.REPO_BRANCH }}) -stub -profile test,singularity --outdir ./results diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 81cd098e..748b4311 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -14,10 +14,10 @@ jobs: pre-commit: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - name: Set up Python 3.11 - uses: actions/setup-python@v5 + uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5 with: python-version: 3.11 cache: "pip" @@ -32,12 +32,12 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out pipeline code - uses: actions/checkout@v4 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - name: Install Nextflow - uses: nf-core/setup-nextflow@v1 + uses: nf-core/setup-nextflow@b9f764e8ba5c76b712ace14ecbfcef0e40ae2dd8 # v1 - - uses: actions/setup-python@v5 + - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5 with: python-version: "3.11" architecture: "x64" @@ -60,7 +60,7 @@ jobs: - name: Upload linting log file artifact if: ${{ always() }} - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4 with: name: linting-logs path: | diff --git a/.github/workflows/linting_comment.yml b/.github/workflows/linting_comment.yml index 147bcd10..b706875f 100644 --- a/.github/workflows/linting_comment.yml +++ b/.github/workflows/linting_comment.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Download lint results - uses: dawidd6/action-download-artifact@v3 + uses: dawidd6/action-download-artifact@f6b0bace624032e30a85a8fd9c1a7f8f611f5737 # v3 with: workflow: linting.yml workflow_conclusion: completed @@ -21,7 +21,7 @@ jobs: run: echo "pr_number=$(cat linting-logs/PR_number.txt)" >> $GITHUB_OUTPUT - name: Post PR comment - uses: marocchino/sticky-pull-request-comment@v2 + uses: marocchino/sticky-pull-request-comment@331f8f5b4215f0445d3c07b4967662a32a2d3e31 # v2 with: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} number: ${{ steps.pr_number.outputs.pr_number }} diff --git a/.github/workflows/release-announcements.yml b/.github/workflows/release-announcements.yml index 21ac3f06..c3674af2 100644 --- a/.github/workflows/release-announcements.yml +++ b/.github/workflows/release-announcements.yml @@ -9,6 +9,11 @@ jobs: toot: runs-on: ubuntu-latest steps: + - name: get topics and convert to hashtags + id: get_topics + run: | + curl -s https://nf-co.re/pipelines.json | jq -r '.remote_workflows[] | select(.name == "${{ github.repository }}") | .topics[]' | awk '{print "#"$0}' | tr '\n' ' ' > $GITHUB_OUTPUT + - uses: rzr/fediverse-action@master with: access-token: ${{ secrets.MASTODON_ACCESS_TOKEN }} @@ -20,11 +25,13 @@ jobs: Please see the changelog: ${{ github.event.release.html_url }} + ${{ steps.get_topics.outputs.GITHUB_OUTPUT }} #nfcore #openscience #nextflow #bioinformatics + send-tweet: runs-on: ubuntu-latest steps: - - uses: actions/setup-python@v5 + - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5 with: python-version: "3.10" - name: Install dependencies @@ -56,7 +63,7 @@ jobs: bsky-post: runs-on: ubuntu-latest steps: - - uses: zentered/bluesky-post-action@v0.1.0 + - uses: zentered/bluesky-post-action@80dbe0a7697de18c15ad22f4619919ceb5ccf597 # v0.1.0 with: post: | Pipeline release! ${{ github.repository }} v${{ github.event.release.tag_name }} - ${{ github.event.release.name }}! diff --git a/README.md b/README.md index bd964cef..e2d34527 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,9 @@ nf-core/chipseq -[![GitHub Actions CI Status](https://github.com/nf-core/chipseq/workflows/nf-core%20CI/badge.svg)](https://github.com/nf-core/chipseq/actions?query=workflow%3A%22nf-core+CI%22) -[![GitHub Actions Linting Status](https://github.com/nf-core/chipseq/workflows/nf-core%20linting/badge.svg)](https://github.com/nf-core/chipseq/actions?query=workflow%3A%22nf-core+linting%22)[![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?labelColor=000000&logo=Amazon%20AWS)](https://nf-co.re/chipseq/results)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.XXXXXXX) + +[![GitHub Actions CI Status](https://github.com/nf-core/chipseq/actions/workflows/ci.yml/badge.svg)](https://github.com/nf-core/chipseq/actions/workflows/ci.yml) +[![GitHub Actions Linting Status](https://github.com/nf-core/chipseq/actions/workflows/linting.yml/badge.svg)](https://github.com/nf-core/chipseq/actions/workflows/linting.yml)[![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?labelColor=000000&logo=Amazon%20AWS)](https://nf-co.re/chipseq/results)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.XXXXXXX) [![Nextflow](https://img.shields.io/badge/nextflow%20DSL2-%E2%89%A523.04.0-23aa62.svg)](https://www.nextflow.io/) [![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/) diff --git a/assets/multiqc_config.yml b/assets/multiqc_config.yml index f2146258..a7dc9ec4 100644 --- a/assets/multiqc_config.yml +++ b/assets/multiqc_config.yml @@ -11,3 +11,5 @@ report_section_order: order: -1002 export_plots: true + +disable_version_detection: true diff --git a/assets/schema_input.json b/assets/schema_input.json index 20b4e844..5e7c151d 100644 --- a/assets/schema_input.json +++ b/assets/schema_input.json @@ -10,25 +10,22 @@ "sample": { "type": "string", "pattern": "^\\S+$", - "errorMessage": "Sample name must be provided and cannot contain spaces" + "errorMessage": "Sample name must be provided and cannot contain spaces", + "meta": ["id"] }, "fastq_1": { "type": "string", + "format": "file-path", + "exists": true, "pattern": "^\\S+\\.f(ast)?q\\.gz$", "errorMessage": "FastQ file for reads 1 must be provided, cannot contain spaces and must have extension '.fq.gz' or '.fastq.gz'" }, "fastq_2": { - "errorMessage": "FastQ file for reads 2 cannot contain spaces and must have extension '.fq.gz' or '.fastq.gz'", - "anyOf": [ - { - "type": "string", - "pattern": "^\\S+\\.f(ast)?q\\.gz$" - }, - { - "type": "string", - "maxLength": 0 - } - ] + "type": "string", + "format": "file-path", + "exists": true, + "pattern": "^\\S+\\.f(ast)?q\\.gz$", + "errorMessage": "FastQ file for reads 2 cannot contain spaces and must have extension '.fq.gz' or '.fastq.gz'" } }, "required": ["sample", "fastq_1"] diff --git a/bin/check_samplesheet.py b/bin/check_samplesheet.py deleted file mode 100755 index 4a758fe0..00000000 --- a/bin/check_samplesheet.py +++ /dev/null @@ -1,259 +0,0 @@ -#!/usr/bin/env python - - -"""Provide a command line tool to validate and transform tabular samplesheets.""" - - -import argparse -import csv -import logging -import sys -from collections import Counter -from pathlib import Path - -logger = logging.getLogger() - - -class RowChecker: - """ - Define a service that can validate and transform each given row. - - Attributes: - modified (list): A list of dicts, where each dict corresponds to a previously - validated and transformed row. The order of rows is maintained. - - """ - - VALID_FORMATS = ( - ".fq.gz", - ".fastq.gz", - ) - - def __init__( - self, - sample_col="sample", - first_col="fastq_1", - second_col="fastq_2", - single_col="single_end", - **kwargs, - ): - """ - Initialize the row checker with the expected column names. - - Args: - sample_col (str): The name of the column that contains the sample name - (default "sample"). - first_col (str): The name of the column that contains the first (or only) - FASTQ file path (default "fastq_1"). - second_col (str): The name of the column that contains the second (if any) - FASTQ file path (default "fastq_2"). - single_col (str): The name of the new column that will be inserted and - records whether the sample contains single- or paired-end sequencing - reads (default "single_end"). - - """ - super().__init__(**kwargs) - self._sample_col = sample_col - self._first_col = first_col - self._second_col = second_col - self._single_col = single_col - self._seen = set() - self.modified = [] - - def validate_and_transform(self, row): - """ - Perform all validations on the given row and insert the read pairing status. - - Args: - row (dict): A mapping from column headers (keys) to elements of that row - (values). - - """ - self._validate_sample(row) - self._validate_first(row) - self._validate_second(row) - self._validate_pair(row) - self._seen.add((row[self._sample_col], row[self._first_col])) - self.modified.append(row) - - def _validate_sample(self, row): - """Assert that the sample name exists and convert spaces to underscores.""" - if len(row[self._sample_col]) <= 0: - raise AssertionError("Sample input is required.") - # Sanitize samples slightly. - row[self._sample_col] = row[self._sample_col].replace(" ", "_") - - def _validate_first(self, row): - """Assert that the first FASTQ entry is non-empty and has the right format.""" - if len(row[self._first_col]) <= 0: - raise AssertionError("At least the first FASTQ file is required.") - self._validate_fastq_format(row[self._first_col]) - - def _validate_second(self, row): - """Assert that the second FASTQ entry has the right format if it exists.""" - if len(row[self._second_col]) > 0: - self._validate_fastq_format(row[self._second_col]) - - def _validate_pair(self, row): - """Assert that read pairs have the same file extension. Report pair status.""" - if row[self._first_col] and row[self._second_col]: - row[self._single_col] = False - first_col_suffix = Path(row[self._first_col]).suffixes[-2:] - second_col_suffix = Path(row[self._second_col]).suffixes[-2:] - if first_col_suffix != second_col_suffix: - raise AssertionError("FASTQ pairs must have the same file extensions.") - else: - row[self._single_col] = True - - def _validate_fastq_format(self, filename): - """Assert that a given filename has one of the expected FASTQ extensions.""" - if not any(filename.endswith(extension) for extension in self.VALID_FORMATS): - raise AssertionError( - f"The FASTQ file has an unrecognized extension: {filename}\n" - f"It should be one of: {', '.join(self.VALID_FORMATS)}" - ) - - def validate_unique_samples(self): - """ - Assert that the combination of sample name and FASTQ filename is unique. - - In addition to the validation, also rename all samples to have a suffix of _T{n}, where n is the - number of times the same sample exist, but with different FASTQ files, e.g., multiple runs per experiment. - - """ - if len(self._seen) != len(self.modified): - raise AssertionError("The pair of sample name and FASTQ must be unique.") - seen = Counter() - for row in self.modified: - sample = row[self._sample_col] - seen[sample] += 1 - row[self._sample_col] = f"{sample}_T{seen[sample]}" - - -def read_head(handle, num_lines=10): - """Read the specified number of lines from the current position in the file.""" - lines = [] - for idx, line in enumerate(handle): - if idx == num_lines: - break - lines.append(line) - return "".join(lines) - - -def sniff_format(handle): - """ - Detect the tabular format. - - Args: - handle (text file): A handle to a `text file`_ object. The read position is - expected to be at the beginning (index 0). - - Returns: - csv.Dialect: The detected tabular format. - - .. _text file: - https://docs.python.org/3/glossary.html#term-text-file - - """ - peek = read_head(handle) - handle.seek(0) - sniffer = csv.Sniffer() - dialect = sniffer.sniff(peek) - return dialect - - -def check_samplesheet(file_in, file_out): - """ - Check that the tabular samplesheet has the structure expected by nf-core pipelines. - - Validate the general shape of the table, expected columns, and each row. Also add - an additional column which records whether one or two FASTQ reads were found. - - Args: - file_in (pathlib.Path): The given tabular samplesheet. The format can be either - CSV, TSV, or any other format automatically recognized by ``csv.Sniffer``. - file_out (pathlib.Path): Where the validated and transformed samplesheet should - be created; always in CSV format. - - Example: - This function checks that the samplesheet follows the following structure, - see also the `viral recon samplesheet`_:: - - sample,fastq_1,fastq_2 - SAMPLE_PE,SAMPLE_PE_RUN1_1.fastq.gz,SAMPLE_PE_RUN1_2.fastq.gz - SAMPLE_PE,SAMPLE_PE_RUN2_1.fastq.gz,SAMPLE_PE_RUN2_2.fastq.gz - SAMPLE_SE,SAMPLE_SE_RUN1_1.fastq.gz, - - .. _viral recon samplesheet: - https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/samplesheet/samplesheet_test_illumina_amplicon.csv - - """ - required_columns = {"sample", "fastq_1", "fastq_2"} - # See https://docs.python.org/3.9/library/csv.html#id3 to read up on `newline=""`. - with file_in.open(newline="") as in_handle: - reader = csv.DictReader(in_handle, dialect=sniff_format(in_handle)) - # Validate the existence of the expected header columns. - if not required_columns.issubset(reader.fieldnames): - req_cols = ", ".join(required_columns) - logger.critical(f"The sample sheet **must** contain these column headers: {req_cols}.") - sys.exit(1) - # Validate each row. - checker = RowChecker() - for i, row in enumerate(reader): - try: - checker.validate_and_transform(row) - except AssertionError as error: - logger.critical(f"{str(error)} On line {i + 2}.") - sys.exit(1) - checker.validate_unique_samples() - header = list(reader.fieldnames) - header.insert(1, "single_end") - # See https://docs.python.org/3.9/library/csv.html#id3 to read up on `newline=""`. - with file_out.open(mode="w", newline="") as out_handle: - writer = csv.DictWriter(out_handle, header, delimiter=",") - writer.writeheader() - for row in checker.modified: - writer.writerow(row) - - -def parse_args(argv=None): - """Define and immediately parse command line arguments.""" - parser = argparse.ArgumentParser( - description="Validate and transform a tabular samplesheet.", - epilog="Example: python check_samplesheet.py samplesheet.csv samplesheet.valid.csv", - ) - parser.add_argument( - "file_in", - metavar="FILE_IN", - type=Path, - help="Tabular input samplesheet in CSV or TSV format.", - ) - parser.add_argument( - "file_out", - metavar="FILE_OUT", - type=Path, - help="Transformed output samplesheet in CSV format.", - ) - parser.add_argument( - "-l", - "--log-level", - help="The desired log level (default WARNING).", - choices=("CRITICAL", "ERROR", "WARNING", "INFO", "DEBUG"), - default="WARNING", - ) - return parser.parse_args(argv) - - -def main(argv=None): - """Coordinate argument parsing and program execution.""" - args = parse_args(argv) - logging.basicConfig(level=args.log_level, format="[%(levelname)s] %(message)s") - if not args.file_in.is_file(): - logger.error(f"The given input file {args.file_in} was not found!") - sys.exit(2) - args.file_out.parent.mkdir(parents=True, exist_ok=True) - check_samplesheet(args.file_in, args.file_out) - - -if __name__ == "__main__": - sys.exit(main()) diff --git a/conf/modules.config b/conf/modules.config index d91c6aba..e3ea8fa6 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -18,14 +18,6 @@ process { saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] - withName: SAMPLESHEET_CHECK { - publishDir = [ - path: { "${params.outdir}/pipeline_info" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } - ] - } - withName: FASTQC { ext.args = '--quiet' } diff --git a/lib/NfcoreTemplate.groovy b/lib/NfcoreTemplate.groovy deleted file mode 100755 index e248e4c3..00000000 --- a/lib/NfcoreTemplate.groovy +++ /dev/null @@ -1,356 +0,0 @@ -// -// This file holds several functions used within the nf-core pipeline template. -// - -import org.yaml.snakeyaml.Yaml -import groovy.json.JsonOutput -import nextflow.extension.FilesEx - -class NfcoreTemplate { - - // - // Check AWS Batch related parameters have been specified correctly - // - public static void awsBatch(workflow, params) { - if (workflow.profile.contains('awsbatch')) { - // Check params.awsqueue and params.awsregion have been set if running on AWSBatch - assert (params.awsqueue && params.awsregion) : "Specify correct --awsqueue and --awsregion parameters on AWSBatch!" - // Check outdir paths to be S3 buckets if running on AWSBatch - assert params.outdir.startsWith('s3:') : "Outdir not on S3 - specify S3 Bucket to run on AWSBatch!" - } - } - - // - // Warn if a -profile or Nextflow config has not been provided to run the pipeline - // - public static void checkConfigProvided(workflow, log) { - if (workflow.profile == 'standard' && workflow.configFiles.size() <= 1) { - log.warn "[$workflow.manifest.name] You are attempting to run the pipeline without any custom configuration!\n\n" + - "This will be dependent on your local compute environment but can be achieved via one or more of the following:\n" + - " (1) Using an existing pipeline profile e.g. `-profile docker` or `-profile singularity`\n" + - " (2) Using an existing nf-core/configs for your Institution e.g. `-profile crick` or `-profile uppmax`\n" + - " (3) Using your own local custom config e.g. `-c /path/to/your/custom.config`\n\n" + - "Please refer to the quick start section and usage docs for the pipeline.\n " - } - } - - // - // Generate version string - // - public static String version(workflow) { - String version_string = "" - - if (workflow.manifest.version) { - def prefix_v = workflow.manifest.version[0] != 'v' ? 'v' : '' - version_string += "${prefix_v}${workflow.manifest.version}" - } - - if (workflow.commitId) { - def git_shortsha = workflow.commitId.substring(0, 7) - version_string += "-g${git_shortsha}" - } - - return version_string - } - - // - // Construct and send completion email - // - public static void email(workflow, params, summary_params, projectDir, log, multiqc_report=[]) { - - // Set up the e-mail variables - def subject = "[$workflow.manifest.name] Successful: $workflow.runName" - if (!workflow.success) { - subject = "[$workflow.manifest.name] FAILED: $workflow.runName" - } - - def summary = [:] - for (group in summary_params.keySet()) { - summary << summary_params[group] - } - - def misc_fields = [:] - misc_fields['Date Started'] = workflow.start - misc_fields['Date Completed'] = workflow.complete - misc_fields['Pipeline script file path'] = workflow.scriptFile - misc_fields['Pipeline script hash ID'] = workflow.scriptId - if (workflow.repository) misc_fields['Pipeline repository Git URL'] = workflow.repository - if (workflow.commitId) misc_fields['Pipeline repository Git Commit'] = workflow.commitId - if (workflow.revision) misc_fields['Pipeline Git branch/tag'] = workflow.revision - misc_fields['Nextflow Version'] = workflow.nextflow.version - misc_fields['Nextflow Build'] = workflow.nextflow.build - misc_fields['Nextflow Compile Timestamp'] = workflow.nextflow.timestamp - - def email_fields = [:] - email_fields['version'] = NfcoreTemplate.version(workflow) - email_fields['runName'] = workflow.runName - email_fields['success'] = workflow.success - email_fields['dateComplete'] = workflow.complete - email_fields['duration'] = workflow.duration - email_fields['exitStatus'] = workflow.exitStatus - email_fields['errorMessage'] = (workflow.errorMessage ?: 'None') - email_fields['errorReport'] = (workflow.errorReport ?: 'None') - email_fields['commandLine'] = workflow.commandLine - email_fields['projectDir'] = workflow.projectDir - email_fields['summary'] = summary << misc_fields - - // On success try attach the multiqc report - def mqc_report = null - try { - if (workflow.success) { - mqc_report = multiqc_report.getVal() - if (mqc_report.getClass() == ArrayList && mqc_report.size() >= 1) { - if (mqc_report.size() > 1) { - log.warn "[$workflow.manifest.name] Found multiple reports from process 'MULTIQC', will use only one" - } - mqc_report = mqc_report[0] - } - } - } catch (all) { - if (multiqc_report) { - log.warn "[$workflow.manifest.name] Could not attach MultiQC report to summary email" - } - } - - // Check if we are only sending emails on failure - def email_address = params.email - if (!params.email && params.email_on_fail && !workflow.success) { - email_address = params.email_on_fail - } - - // Render the TXT template - def engine = new groovy.text.GStringTemplateEngine() - def tf = new File("$projectDir/assets/email_template.txt") - def txt_template = engine.createTemplate(tf).make(email_fields) - def email_txt = txt_template.toString() - - // Render the HTML template - def hf = new File("$projectDir/assets/email_template.html") - def html_template = engine.createTemplate(hf).make(email_fields) - def email_html = html_template.toString() - - // Render the sendmail template - def max_multiqc_email_size = (params.containsKey('max_multiqc_email_size') ? params.max_multiqc_email_size : 0) as nextflow.util.MemoryUnit - def smail_fields = [ email: email_address, subject: subject, email_txt: email_txt, email_html: email_html, projectDir: "$projectDir", mqcFile: mqc_report, mqcMaxSize: max_multiqc_email_size.toBytes() ] - def sf = new File("$projectDir/assets/sendmail_template.txt") - def sendmail_template = engine.createTemplate(sf).make(smail_fields) - def sendmail_html = sendmail_template.toString() - - // Send the HTML e-mail - Map colors = logColours(params.monochrome_logs) - if (email_address) { - try { - if (params.plaintext_email) { throw GroovyException('Send plaintext e-mail, not HTML') } - // Try to send HTML e-mail using sendmail - def sendmail_tf = new File(workflow.launchDir.toString(), ".sendmail_tmp.html") - sendmail_tf.withWriter { w -> w << sendmail_html } - [ 'sendmail', '-t' ].execute() << sendmail_html - log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Sent summary e-mail to $email_address (sendmail)-" - } catch (all) { - // Catch failures and try with plaintext - def mail_cmd = [ 'mail', '-s', subject, '--content-type=text/html', email_address ] - if ( mqc_report != null && mqc_report.size() <= max_multiqc_email_size.toBytes() ) { - mail_cmd += [ '-A', mqc_report ] - } - mail_cmd.execute() << email_html - log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Sent summary e-mail to $email_address (mail)-" - } - } - - // Write summary e-mail HTML to a file - def output_hf = new File(workflow.launchDir.toString(), ".pipeline_report.html") - output_hf.withWriter { w -> w << email_html } - FilesEx.copyTo(output_hf.toPath(), "${params.outdir}/pipeline_info/pipeline_report.html"); - output_hf.delete() - - // Write summary e-mail TXT to a file - def output_tf = new File(workflow.launchDir.toString(), ".pipeline_report.txt") - output_tf.withWriter { w -> w << email_txt } - FilesEx.copyTo(output_tf.toPath(), "${params.outdir}/pipeline_info/pipeline_report.txt"); - output_tf.delete() - } - - // - // Construct and send a notification to a web server as JSON - // e.g. Microsoft Teams and Slack - // - public static void IM_notification(workflow, params, summary_params, projectDir, log) { - def hook_url = params.hook_url - - def summary = [:] - for (group in summary_params.keySet()) { - summary << summary_params[group] - } - - def misc_fields = [:] - misc_fields['start'] = workflow.start - misc_fields['complete'] = workflow.complete - misc_fields['scriptfile'] = workflow.scriptFile - misc_fields['scriptid'] = workflow.scriptId - if (workflow.repository) misc_fields['repository'] = workflow.repository - if (workflow.commitId) misc_fields['commitid'] = workflow.commitId - if (workflow.revision) misc_fields['revision'] = workflow.revision - misc_fields['nxf_version'] = workflow.nextflow.version - misc_fields['nxf_build'] = workflow.nextflow.build - misc_fields['nxf_timestamp'] = workflow.nextflow.timestamp - - def msg_fields = [:] - msg_fields['version'] = NfcoreTemplate.version(workflow) - msg_fields['runName'] = workflow.runName - msg_fields['success'] = workflow.success - msg_fields['dateComplete'] = workflow.complete - msg_fields['duration'] = workflow.duration - msg_fields['exitStatus'] = workflow.exitStatus - msg_fields['errorMessage'] = (workflow.errorMessage ?: 'None') - msg_fields['errorReport'] = (workflow.errorReport ?: 'None') - msg_fields['commandLine'] = workflow.commandLine.replaceFirst(/ +--hook_url +[^ ]+/, "") - msg_fields['projectDir'] = workflow.projectDir - msg_fields['summary'] = summary << misc_fields - - // Render the JSON template - def engine = new groovy.text.GStringTemplateEngine() - // Different JSON depending on the service provider - // Defaults to "Adaptive Cards" (https://adaptivecards.io), except Slack which has its own format - def json_path = hook_url.contains("hooks.slack.com") ? "slackreport.json" : "adaptivecard.json" - def hf = new File("$projectDir/assets/${json_path}") - def json_template = engine.createTemplate(hf).make(msg_fields) - def json_message = json_template.toString() - - // POST - def post = new URL(hook_url).openConnection(); - post.setRequestMethod("POST") - post.setDoOutput(true) - post.setRequestProperty("Content-Type", "application/json") - post.getOutputStream().write(json_message.getBytes("UTF-8")); - def postRC = post.getResponseCode(); - if (! postRC.equals(200)) { - log.warn(post.getErrorStream().getText()); - } - } - - // - // Dump pipeline parameters in a json file - // - public static void dump_parameters(workflow, params) { - def timestamp = new java.util.Date().format( 'yyyy-MM-dd_HH-mm-ss') - def filename = "params_${timestamp}.json" - def temp_pf = new File(workflow.launchDir.toString(), ".${filename}") - def jsonStr = JsonOutput.toJson(params) - temp_pf.text = JsonOutput.prettyPrint(jsonStr) - - FilesEx.copyTo(temp_pf.toPath(), "${params.outdir}/pipeline_info/params_${timestamp}.json") - temp_pf.delete() - } - - // - // Print pipeline summary on completion - // - public static void summary(workflow, params, log) { - Map colors = logColours(params.monochrome_logs) - if (workflow.success) { - if (workflow.stats.ignoredCount == 0) { - log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Pipeline completed successfully${colors.reset}-" - } else { - log.info "-${colors.purple}[$workflow.manifest.name]${colors.yellow} Pipeline completed successfully, but with errored process(es) ${colors.reset}-" - } - } else { - log.info "-${colors.purple}[$workflow.manifest.name]${colors.red} Pipeline completed with errors${colors.reset}-" - } - } - - // - // ANSII Colours used for terminal logging - // - public static Map logColours(Boolean monochrome_logs) { - Map colorcodes = [:] - - // Reset / Meta - colorcodes['reset'] = monochrome_logs ? '' : "\033[0m" - colorcodes['bold'] = monochrome_logs ? '' : "\033[1m" - colorcodes['dim'] = monochrome_logs ? '' : "\033[2m" - colorcodes['underlined'] = monochrome_logs ? '' : "\033[4m" - colorcodes['blink'] = monochrome_logs ? '' : "\033[5m" - colorcodes['reverse'] = monochrome_logs ? '' : "\033[7m" - colorcodes['hidden'] = monochrome_logs ? '' : "\033[8m" - - // Regular Colors - colorcodes['black'] = monochrome_logs ? '' : "\033[0;30m" - colorcodes['red'] = monochrome_logs ? '' : "\033[0;31m" - colorcodes['green'] = monochrome_logs ? '' : "\033[0;32m" - colorcodes['yellow'] = monochrome_logs ? '' : "\033[0;33m" - colorcodes['blue'] = monochrome_logs ? '' : "\033[0;34m" - colorcodes['purple'] = monochrome_logs ? '' : "\033[0;35m" - colorcodes['cyan'] = monochrome_logs ? '' : "\033[0;36m" - colorcodes['white'] = monochrome_logs ? '' : "\033[0;37m" - - // Bold - colorcodes['bblack'] = monochrome_logs ? '' : "\033[1;30m" - colorcodes['bred'] = monochrome_logs ? '' : "\033[1;31m" - colorcodes['bgreen'] = monochrome_logs ? '' : "\033[1;32m" - colorcodes['byellow'] = monochrome_logs ? '' : "\033[1;33m" - colorcodes['bblue'] = monochrome_logs ? '' : "\033[1;34m" - colorcodes['bpurple'] = monochrome_logs ? '' : "\033[1;35m" - colorcodes['bcyan'] = monochrome_logs ? '' : "\033[1;36m" - colorcodes['bwhite'] = monochrome_logs ? '' : "\033[1;37m" - - // Underline - colorcodes['ublack'] = monochrome_logs ? '' : "\033[4;30m" - colorcodes['ured'] = monochrome_logs ? '' : "\033[4;31m" - colorcodes['ugreen'] = monochrome_logs ? '' : "\033[4;32m" - colorcodes['uyellow'] = monochrome_logs ? '' : "\033[4;33m" - colorcodes['ublue'] = monochrome_logs ? '' : "\033[4;34m" - colorcodes['upurple'] = monochrome_logs ? '' : "\033[4;35m" - colorcodes['ucyan'] = monochrome_logs ? '' : "\033[4;36m" - colorcodes['uwhite'] = monochrome_logs ? '' : "\033[4;37m" - - // High Intensity - colorcodes['iblack'] = monochrome_logs ? '' : "\033[0;90m" - colorcodes['ired'] = monochrome_logs ? '' : "\033[0;91m" - colorcodes['igreen'] = monochrome_logs ? '' : "\033[0;92m" - colorcodes['iyellow'] = monochrome_logs ? '' : "\033[0;93m" - colorcodes['iblue'] = monochrome_logs ? '' : "\033[0;94m" - colorcodes['ipurple'] = monochrome_logs ? '' : "\033[0;95m" - colorcodes['icyan'] = monochrome_logs ? '' : "\033[0;96m" - colorcodes['iwhite'] = monochrome_logs ? '' : "\033[0;97m" - - // Bold High Intensity - colorcodes['biblack'] = monochrome_logs ? '' : "\033[1;90m" - colorcodes['bired'] = monochrome_logs ? '' : "\033[1;91m" - colorcodes['bigreen'] = monochrome_logs ? '' : "\033[1;92m" - colorcodes['biyellow'] = monochrome_logs ? '' : "\033[1;93m" - colorcodes['biblue'] = monochrome_logs ? '' : "\033[1;94m" - colorcodes['bipurple'] = monochrome_logs ? '' : "\033[1;95m" - colorcodes['bicyan'] = monochrome_logs ? '' : "\033[1;96m" - colorcodes['biwhite'] = monochrome_logs ? '' : "\033[1;97m" - - return colorcodes - } - - // - // Does what is says on the tin - // - public static String dashedLine(monochrome_logs) { - Map colors = logColours(monochrome_logs) - return "-${colors.dim}----------------------------------------------------${colors.reset}-" - } - - // - // nf-core logo - // - public static String logo(workflow, monochrome_logs) { - Map colors = logColours(monochrome_logs) - String workflow_version = NfcoreTemplate.version(workflow) - String.format( - """\n - ${dashedLine(monochrome_logs)} - ${colors.green},--.${colors.black}/${colors.green},-.${colors.reset} - ${colors.blue} ___ __ __ __ ___ ${colors.green}/,-._.--~\'${colors.reset} - ${colors.blue} |\\ | |__ __ / ` / \\ |__) |__ ${colors.yellow}} {${colors.reset} - ${colors.blue} | \\| | \\__, \\__/ | \\ |___ ${colors.green}\\`-._,-`-,${colors.reset} - ${colors.green}`._,._,\'${colors.reset} - ${colors.purple} ${workflow.manifest.name} ${workflow_version}${colors.reset} - ${dashedLine(monochrome_logs)} - """.stripIndent() - ) - } -} diff --git a/lib/Utils.groovy b/lib/Utils.groovy deleted file mode 100644 index 8d030f4e..00000000 --- a/lib/Utils.groovy +++ /dev/null @@ -1,47 +0,0 @@ -// -// This file holds several Groovy functions that could be useful for any Nextflow pipeline -// - -import org.yaml.snakeyaml.Yaml - -class Utils { - - // - // When running with -profile conda, warn if channels have not been set-up appropriately - // - public static void checkCondaChannels(log) { - Yaml parser = new Yaml() - def channels = [] - try { - def config = parser.load("conda config --show channels".execute().text) - channels = config.channels - } catch(NullPointerException | IOException e) { - log.warn "Could not verify conda channel configuration." - return - } - - // Check that all channels are present - // This channel list is ordered by required channel priority. - def required_channels_in_order = ['conda-forge', 'bioconda', 'defaults'] - def channels_missing = ((required_channels_in_order as Set) - (channels as Set)) as Boolean - - // Check that they are in the right order - def channel_priority_violation = false - def n = required_channels_in_order.size() - for (int i = 0; i < n - 1; i++) { - channel_priority_violation |= !(channels.indexOf(required_channels_in_order[i]) < channels.indexOf(required_channels_in_order[i+1])) - } - - if (channels_missing | channel_priority_violation) { - log.warn "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + - " There is a problem with your Conda configuration!\n\n" + - " You will need to set-up the conda-forge and bioconda channels correctly.\n" + - " Please refer to https://bioconda.github.io/\n" + - " The observed channel order is \n" + - " ${channels}\n" + - " but the following channel order is required:\n" + - " ${required_channels_in_order}\n" + - "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" - } - } -} diff --git a/lib/WorkflowChipseq.groovy b/lib/WorkflowChipseq.groovy deleted file mode 100755 index 7054c707..00000000 --- a/lib/WorkflowChipseq.groovy +++ /dev/null @@ -1,122 +0,0 @@ -// -// This file holds several functions specific to the workflow/chipseq.nf in the nf-core/chipseq pipeline -// - -import nextflow.Nextflow -import groovy.text.SimpleTemplateEngine - -class WorkflowChipseq { - - // - // Check and validate parameters - // - public static void initialise(params, log) { - - genomeExistsError(params, log) - - - if (!params.fasta) { - Nextflow.error "Genome fasta file not specified with e.g. '--fasta genome.fa' or via a detectable config file." - } - } - - // - // Get workflow summary for MultiQC - // - public static String paramsSummaryMultiqc(workflow, summary) { - String summary_section = '' - for (group in summary.keySet()) { - def group_params = summary.get(group) // This gets the parameters of that particular group - if (group_params) { - summary_section += "

    $group

    \n" - summary_section += "
    \n" - for (param in group_params.keySet()) { - summary_section += "
    $param
    ${group_params.get(param) ?: 'N/A'}
    \n" - } - summary_section += "
    \n" - } - } - - String yaml_file_text = "id: '${workflow.manifest.name.replace('/','-')}-summary'\n" - yaml_file_text += "description: ' - this information is collected when the pipeline is started.'\n" - yaml_file_text += "section_name: '${workflow.manifest.name} Workflow Summary'\n" - yaml_file_text += "section_href: 'https://github.com/${workflow.manifest.name}'\n" - yaml_file_text += "plot_type: 'html'\n" - yaml_file_text += "data: |\n" - yaml_file_text += "${summary_section}" - return yaml_file_text - } - - // - // Generate methods description for MultiQC - // - - public static String toolCitationText(params) { - - // TODO nf-core: Optionally add in-text citation tools to this list. - // Can use ternary operators to dynamically construct based conditions, e.g. params["run_xyz"] ? "Tool (Foo et al. 2023)" : "", - // Uncomment function in methodsDescriptionText to render in MultiQC report - def citation_text = [ - "Tools used in the workflow included:", - "FastQC (Andrews 2010),", - "MultiQC (Ewels et al. 2016)", - "." - ].join(' ').trim() - - return citation_text - } - - public static String toolBibliographyText(params) { - - // TODO Optionally add bibliographic entries to this list. - // Can use ternary operators to dynamically construct based conditions, e.g. params["run_xyz"] ? "
  • Author (2023) Pub name, Journal, DOI
  • " : "", - // Uncomment function in methodsDescriptionText to render in MultiQC report - def reference_text = [ - "
  • Andrews S, (2010) FastQC, URL: https://www.bioinformatics.babraham.ac.uk/projects/fastqc/).
  • ", - "
  • Ewels, P., Magnusson, M., Lundin, S., & Käller, M. (2016). MultiQC: summarize analysis results for multiple tools and samples in a single report. Bioinformatics , 32(19), 3047–3048. doi: /10.1093/bioinformatics/btw354
  • " - ].join(' ').trim() - - return reference_text - } - - public static String methodsDescriptionText(run_workflow, mqc_methods_yaml, params) { - // Convert to a named map so can be used as with familar NXF ${workflow} variable syntax in the MultiQC YML file - def meta = [:] - meta.workflow = run_workflow.toMap() - meta["manifest_map"] = run_workflow.manifest.toMap() - - // Pipeline DOI - meta["doi_text"] = meta.manifest_map.doi ? "(doi: ${meta.manifest_map.doi})" : "" - meta["nodoi_text"] = meta.manifest_map.doi ? "": "
  • If available, make sure to update the text to include the Zenodo DOI of version of the pipeline used.
  • " - - // Tool references - meta["tool_citations"] = "" - meta["tool_bibliography"] = "" - - // TODO Only uncomment below if logic in toolCitationText/toolBibliographyText has been filled! - //meta["tool_citations"] = toolCitationText(params).replaceAll(", \\.", ".").replaceAll("\\. \\.", ".").replaceAll(", \\.", ".") - //meta["tool_bibliography"] = toolBibliographyText(params) - - - def methods_text = mqc_methods_yaml.text - - def engine = new SimpleTemplateEngine() - def description_html = engine.createTemplate(methods_text).make(meta) - - return description_html - } - - // - // Exit pipeline if incorrect --genome key provided - // - private static void genomeExistsError(params, log) { - if (params.genomes && params.genome && !params.genomes.containsKey(params.genome)) { - def error_string = "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + - " Genome '${params.genome}' not found in any config files provided to the pipeline.\n" + - " Currently, the available genome keys are:\n" + - " ${params.genomes.keySet().join(", ")}\n" + - "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" - Nextflow.error(error_string) - } - } -} diff --git a/lib/WorkflowMain.groovy b/lib/WorkflowMain.groovy deleted file mode 100755 index 31bc8cc5..00000000 --- a/lib/WorkflowMain.groovy +++ /dev/null @@ -1,77 +0,0 @@ -// -// This file holds several functions specific to the main.nf workflow in the nf-core/chipseq pipeline -// - -import nextflow.Nextflow - -class WorkflowMain { - - // - // Citation string for pipeline - // - public static String citation(workflow) { - return "If you use ${workflow.manifest.name} for your analysis please cite:\n\n" + - // TODO nf-core: Add Zenodo DOI for pipeline after first release - //"* The pipeline\n" + - //" https://doi.org/10.5281/zenodo.XXXXXXX\n\n" + - "* The nf-core framework\n" + - " https://doi.org/10.1038/s41587-020-0439-x\n\n" + - "* Software dependencies\n" + - " https://github.com/${workflow.manifest.name}/blob/master/CITATIONS.md" - } - - - // - // Validate parameters and print summary to screen - // - public static void initialise(workflow, params, log, args) { - - // Print workflow version and exit on --version - if (params.version) { - String workflow_version = NfcoreTemplate.version(workflow) - log.info "${workflow.manifest.name} ${workflow_version}" - System.exit(0) - } - - // Check that a -profile or Nextflow config has been provided to run the pipeline - NfcoreTemplate.checkConfigProvided(workflow, log) - // Check that the profile doesn't contain spaces and doesn't end with a trailing comma - checkProfile(workflow.profile, args, log) - - // Check that conda channels are set-up correctly - if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { - Utils.checkCondaChannels(log) - } - - // Check AWS batch settings - NfcoreTemplate.awsBatch(workflow, params) - - // Check input has been provided - if (!params.input) { - Nextflow.error("Please provide an input samplesheet to the pipeline e.g. '--input samplesheet.csv'") - } - } - // - // Get attribute from genome config file e.g. fasta - // - public static Object getGenomeAttribute(params, attribute) { - if (params.genomes && params.genome && params.genomes.containsKey(params.genome)) { - if (params.genomes[ params.genome ].containsKey(attribute)) { - return params.genomes[ params.genome ][ attribute ] - } - } - return null - } - - // - // Exit pipeline if --profile contains spaces - // - private static void checkProfile(profile, args, log) { - if (profile.endsWith(',')) { - Nextflow.error "Profile cannot end with a trailing comma. Please remove the comma from the end of the profile string.\nHint: A common mistake is to provide multiple values to `-profile` separated by spaces. Please use commas to separate profiles instead,e.g., `-profile docker,test`." - } - if (args[0]) { - log.warn "nf-core pipelines do not accept positional arguments. The positional argument `${args[0]}` has been detected.\n Hint: A common mistake is to provide multiple values to `-profile` separated by spaces. Please use commas to separate profiles instead,e.g., `-profile docker,test`." - } - } -} diff --git a/main.nf b/main.nf index ac268f06..ef78c9e4 100644 --- a/main.nf +++ b/main.nf @@ -13,66 +13,96 @@ nextflow.enable.dsl = 2 /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - GENOME PARAMETER VALUES + IMPORT FUNCTIONS / MODULES / SUBWORKFLOWS / WORKFLOWS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -// TODO nf-core: Remove this line if you don't need a FASTA file -// This is an example of how to use getGenomeAttribute() to fetch parameters -// from igenomes.config using `--genome` -params.fasta = WorkflowMain.getGenomeAttribute(params, 'fasta') +include { CHIPSEQ } from './workflows/chipseq' +include { PIPELINE_INITIALISATION } from './subworkflows/local/utils_nfcore_chipseq_pipeline' +include { PIPELINE_COMPLETION } from './subworkflows/local/utils_nfcore_chipseq_pipeline' + +include { getGenomeAttribute } from './subworkflows/local/utils_nfcore_chipseq_pipeline' /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - VALIDATE & PRINT PARAMETER SUMMARY + GENOME PARAMETER VALUES ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -include { validateParameters; paramsHelp } from 'plugin/nf-validation' - -// Print help message if needed -if (params.help) { - def logo = NfcoreTemplate.logo(workflow, params.monochrome_logs) - def citation = '\n' + WorkflowMain.citation(workflow) + '\n' - def String command = "nextflow run ${workflow.manifest.name} --input samplesheet.csv --genome GRCh37 -profile docker" - log.info logo + paramsHelp(command) + citation + NfcoreTemplate.dashedLine(params.monochrome_logs) - System.exit(0) -} - -// Validate input parameters -if (params.validate_params) { - validateParameters() -} - -WorkflowMain.initialise(workflow, params, log, args) +// TODO nf-core: Remove this line if you don't need a FASTA file +// This is an example of how to use getGenomeAttribute() to fetch parameters +// from igenomes.config using `--genome` +params.fasta = getGenomeAttribute('fasta') /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - NAMED WORKFLOW FOR PIPELINE + NAMED WORKFLOWS FOR PIPELINE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -include { CHIPSEQ } from './workflows/chipseq' - // -// WORKFLOW: Run main nf-core/chipseq analysis pipeline +// WORKFLOW: Run main analysis pipeline depending on type of input // workflow NFCORE_CHIPSEQ { - CHIPSEQ () -} + take: + samplesheet // channel: samplesheet read in from --input + + main: + + // + // WORKFLOW: Run pipeline + // + CHIPSEQ ( + samplesheet + ) + + emit: + multiqc_report = CHIPSEQ.out.multiqc_report // channel: /path/to/multiqc_report.html + +} /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - RUN ALL WORKFLOWS + RUN MAIN WORKFLOW ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -// -// WORKFLOW: Execute a single named workflow for the pipeline -// See: https://github.com/nf-core/rnaseq/issues/619 -// workflow { - NFCORE_CHIPSEQ () + + main: + + // + // SUBWORKFLOW: Run initialisation tasks + // + PIPELINE_INITIALISATION ( + params.version, + params.help, + params.validate_params, + params.monochrome_logs, + args, + params.outdir, + params.input + ) + + // + // WORKFLOW: Run main workflow + // + NFCORE_CHIPSEQ ( + PIPELINE_INITIALISATION.out.samplesheet + ) + + // + // SUBWORKFLOW: Run completion tasks + // + PIPELINE_COMPLETION ( + params.email, + params.email_on_fail, + params.plaintext_email, + params.outdir, + params.monochrome_logs, + params.hook_url, + NFCORE_CHIPSEQ.out.multiqc_report + ) } /* diff --git a/modules.json b/modules.json index d4a463ff..a7082c3e 100644 --- a/modules.json +++ b/modules.json @@ -5,22 +5,36 @@ "https://github.com/nf-core/modules.git": { "modules": { "nf-core": { - "custom/dumpsoftwareversions": { - "branch": "master", - "git_sha": "8ec825f465b9c17f9d83000022995b4f7de6fe93", - "installed_by": ["modules"] - }, "fastqc": { "branch": "master", - "git_sha": "c9488585ce7bd35ccd2a30faa2371454c8112fb9", + "git_sha": "f4ae1d942bd50c5c0b9bd2de1393ce38315ba57c", "installed_by": ["modules"] }, "multiqc": { "branch": "master", - "git_sha": "8ec825f465b9c17f9d83000022995b4f7de6fe93", + "git_sha": "ccacf6f5de6df3bc6d73b665c1fd2933d8bbc290", "installed_by": ["modules"] } } + }, + "subworkflows": { + "nf-core": { + "utils_nextflow_pipeline": { + "branch": "master", + "git_sha": "cd08c91373cd00a73255081340e4914485846ba1", + "installed_by": ["subworkflows"] + }, + "utils_nfcore_pipeline": { + "branch": "master", + "git_sha": "262b17ed2aad591039f914951659177e6c39a8d8", + "installed_by": ["subworkflows"] + }, + "utils_nfvalidation_plugin": { + "branch": "master", + "git_sha": "cd08c91373cd00a73255081340e4914485846ba1", + "installed_by": ["subworkflows"] + } + } } } } diff --git a/modules/local/samplesheet_check.nf b/modules/local/samplesheet_check.nf deleted file mode 100644 index c28658f5..00000000 --- a/modules/local/samplesheet_check.nf +++ /dev/null @@ -1,31 +0,0 @@ -process SAMPLESHEET_CHECK { - tag "$samplesheet" - label 'process_single' - - conda "conda-forge::python=3.8.3" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/python:3.8.3' : - 'biocontainers/python:3.8.3' }" - - input: - path samplesheet - - output: - path '*.csv' , emit: csv - path "versions.yml", emit: versions - - when: - task.ext.when == null || task.ext.when - - script: // This script is bundled with the pipeline, in nf-core/chipseq/bin/ - """ - check_samplesheet.py \\ - $samplesheet \\ - samplesheet.valid.csv - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - python: \$(python --version | sed 's/Python //g') - END_VERSIONS - """ -} diff --git a/modules/nf-core/custom/dumpsoftwareversions/environment.yml b/modules/nf-core/custom/dumpsoftwareversions/environment.yml deleted file mode 100644 index 9b3272bc..00000000 --- a/modules/nf-core/custom/dumpsoftwareversions/environment.yml +++ /dev/null @@ -1,7 +0,0 @@ -name: custom_dumpsoftwareversions -channels: - - conda-forge - - bioconda - - defaults -dependencies: - - bioconda::multiqc=1.19 diff --git a/modules/nf-core/custom/dumpsoftwareversions/main.nf b/modules/nf-core/custom/dumpsoftwareversions/main.nf deleted file mode 100644 index f2187611..00000000 --- a/modules/nf-core/custom/dumpsoftwareversions/main.nf +++ /dev/null @@ -1,24 +0,0 @@ -process CUSTOM_DUMPSOFTWAREVERSIONS { - label 'process_single' - - // Requires `pyyaml` which does not have a dedicated container but is in the MultiQC container - conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/multiqc:1.19--pyhdfd78af_0' : - 'biocontainers/multiqc:1.19--pyhdfd78af_0' }" - - input: - path versions - - output: - path "software_versions.yml" , emit: yml - path "software_versions_mqc.yml", emit: mqc_yml - path "versions.yml" , emit: versions - - when: - task.ext.when == null || task.ext.when - - script: - def args = task.ext.args ?: '' - template 'dumpsoftwareversions.py' -} diff --git a/modules/nf-core/custom/dumpsoftwareversions/meta.yml b/modules/nf-core/custom/dumpsoftwareversions/meta.yml deleted file mode 100644 index 5f15a5fd..00000000 --- a/modules/nf-core/custom/dumpsoftwareversions/meta.yml +++ /dev/null @@ -1,37 +0,0 @@ -# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json -name: custom_dumpsoftwareversions -description: Custom module used to dump software versions within the nf-core pipeline template -keywords: - - custom - - dump - - version -tools: - - custom: - description: Custom module used to dump software versions within the nf-core pipeline template - homepage: https://github.com/nf-core/tools - documentation: https://github.com/nf-core/tools - licence: ["MIT"] -input: - - versions: - type: file - description: YML file containing software versions - pattern: "*.yml" -output: - - yml: - type: file - description: Standard YML file containing software versions - pattern: "software_versions.yml" - - mqc_yml: - type: file - description: MultiQC custom content YML file containing software versions - pattern: "software_versions_mqc.yml" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" -authors: - - "@drpatelh" - - "@grst" -maintainers: - - "@drpatelh" - - "@grst" diff --git a/modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py b/modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py deleted file mode 100755 index e55b8d43..00000000 --- a/modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py +++ /dev/null @@ -1,102 +0,0 @@ -#!/usr/bin/env python - - -"""Provide functions to merge multiple versions.yml files.""" - - -import platform -from textwrap import dedent - -import yaml - - -def _make_versions_html(versions): - """Generate a tabular HTML output of all versions for MultiQC.""" - html = [ - dedent( - """\\ - -
    Process Name \\", + " \\ Software Version
    CUSTOM_DUMPSOFTWAREVERSIONSpython3.11.7
    yaml5.4.1
    TOOL1tool10.11.9
    TOOL2tool21.9
    WorkflowNextflow
    File typeConventional base calls
    File typeConventional base calls
    File typeConventional base calls
    File typeConventional base calls
    File typeConventional base calls
    File typeConventional base calls
    File typeConventional base calls
    File typeConventional base calls
    File typeConventional base calls
    File typeConventional base calls
    File typeConventional base calls
    File typeConventional base calls
    File typeConventional base calls
    File typeConventional base calls
    File typeConventional base calls
    File typeConventional base calls
    File typeConventional base calls
    File typeConventional base calls
    File typeConventional base calls
    - - - - - - - - """ - ) - ] - for process, tmp_versions in sorted(versions.items()): - html.append("") - for i, (tool, version) in enumerate(sorted(tmp_versions.items())): - html.append( - dedent( - f"""\\ - - - - - - """ - ) - ) - html.append("") - html.append("
    Process Name Software Version
    {process if (i == 0) else ''}{tool}{version}
    ") - return "\\n".join(html) - - -def main(): - """Load all version files and generate merged output.""" - versions_this_module = {} - versions_this_module["${task.process}"] = { - "python": platform.python_version(), - "yaml": yaml.__version__, - } - - with open("$versions") as f: - versions_by_process = yaml.load(f, Loader=yaml.BaseLoader) | versions_this_module - - # aggregate versions by the module name (derived from fully-qualified process name) - versions_by_module = {} - for process, process_versions in versions_by_process.items(): - module = process.split(":")[-1] - try: - if versions_by_module[module] != process_versions: - raise AssertionError( - "We assume that software versions are the same between all modules. " - "If you see this error-message it means you discovered an edge-case " - "and should open an issue in nf-core/tools. " - ) - except KeyError: - versions_by_module[module] = process_versions - - versions_by_module["Workflow"] = { - "Nextflow": "$workflow.nextflow.version", - "$workflow.manifest.name": "$workflow.manifest.version", - } - - versions_mqc = { - "id": "software_versions", - "section_name": "${workflow.manifest.name} Software Versions", - "section_href": "https://github.com/${workflow.manifest.name}", - "plot_type": "html", - "description": "are collected at run time from the software output.", - "data": _make_versions_html(versions_by_module), - } - - with open("software_versions.yml", "w") as f: - yaml.dump(versions_by_module, f, default_flow_style=False) - with open("software_versions_mqc.yml", "w") as f: - yaml.dump(versions_mqc, f, default_flow_style=False) - - with open("versions.yml", "w") as f: - yaml.dump(versions_this_module, f, default_flow_style=False) - - -if __name__ == "__main__": - main() diff --git a/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test b/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test deleted file mode 100644 index b1e1630b..00000000 --- a/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test +++ /dev/null @@ -1,43 +0,0 @@ -nextflow_process { - - name "Test Process CUSTOM_DUMPSOFTWAREVERSIONS" - script "../main.nf" - process "CUSTOM_DUMPSOFTWAREVERSIONS" - tag "modules" - tag "modules_nfcore" - tag "custom" - tag "dumpsoftwareversions" - tag "custom/dumpsoftwareversions" - - test("Should run without failures") { - when { - process { - """ - def tool1_version = ''' - TOOL1: - tool1: 0.11.9 - '''.stripIndent() - - def tool2_version = ''' - TOOL2: - tool2: 1.9 - '''.stripIndent() - - input[0] = Channel.of(tool1_version, tool2_version).collectFile() - """ - } - } - - then { - assertAll( - { assert process.success }, - { assert snapshot( - process.out.versions, - file(process.out.mqc_yml[0]).readLines()[0..10], - file(process.out.yml[0]).readLines()[0..7] - ).match() - } - ) - } - } -} diff --git a/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test.snap b/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test.snap deleted file mode 100644 index 5f59a936..00000000 --- a/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test.snap +++ /dev/null @@ -1,33 +0,0 @@ -{ - "Should run without failures": { - "content": [ - [ - "versions.yml:md5,76d454d92244589d32455833f7c1ba6d" - ], - [ - "data: \"\\n\\n \\n \\n \\n \\n \\n \\n \\n\\", - " \\n\\n\\n \\n \\n\\", - " \\ \\n\\n\\n\\n \\n \\", - " \\ \\n \\n\\n\\n\\n\\", - " \\n\\n \\n \\n\\", - " \\ \\n\\n\\n\\n\\n\\n \\n\\", - " \\ \\n \\n\\n\\n\\n\\", - " \\n\\n \\n \\n\\" - ], - [ - "CUSTOM_DUMPSOFTWAREVERSIONS:", - " python: 3.11.7", - " yaml: 5.4.1", - "TOOL1:", - " tool1: 0.11.9", - "TOOL2:", - " tool2: '1.9'", - "Workflow:" - ] - ], - "timestamp": "2024-01-09T23:01:18.710682" - } -} \ No newline at end of file diff --git a/modules/nf-core/custom/dumpsoftwareversions/tests/tags.yml b/modules/nf-core/custom/dumpsoftwareversions/tests/tags.yml deleted file mode 100644 index 405aa24a..00000000 --- a/modules/nf-core/custom/dumpsoftwareversions/tests/tags.yml +++ /dev/null @@ -1,2 +0,0 @@ -custom/dumpsoftwareversions: - - modules/nf-core/custom/dumpsoftwareversions/** diff --git a/modules/nf-core/fastqc/tests/main.nf.test b/modules/nf-core/fastqc/tests/main.nf.test index 1f21c664..70edae4d 100644 --- a/modules/nf-core/fastqc/tests/main.nf.test +++ b/modules/nf-core/fastqc/tests/main.nf.test @@ -33,7 +33,7 @@ nextflow_process { { assert process.out.zip[0][1] ==~ ".*/test_fastqc.zip" }, { assert path(process.out.html[0][1]).text.contains("") }, - { assert snapshot(process.out.versions).match("versions") } + { assert snapshot(process.out.versions).match("fastqc_versions_single") } ) } } @@ -63,7 +63,7 @@ nextflow_process { { assert path(process.out.html[0][1][0]).text.contains("") }, { assert path(process.out.html[0][1][1]).text.contains("") }, - { assert snapshot(process.out.versions).match("versions") } + { assert snapshot(process.out.versions).match("fastqc_versions_paired") } ) } } @@ -89,7 +89,7 @@ nextflow_process { { assert process.out.zip[0][1] ==~ ".*/test_fastqc.zip" }, { assert path(process.out.html[0][1]).text.contains("") }, - { assert snapshot(process.out.versions).match("versions") } + { assert snapshot(process.out.versions).match("fastqc_versions_interleaved") } ) } } @@ -115,7 +115,7 @@ nextflow_process { { assert process.out.zip[0][1] ==~ ".*/test_fastqc.zip" }, { assert path(process.out.html[0][1]).text.contains("") }, - { assert snapshot(process.out.versions).match("versions") } + { assert snapshot(process.out.versions).match("fastqc_versions_bam") } ) } } @@ -153,7 +153,7 @@ nextflow_process { { assert path(process.out.html[0][1][2]).text.contains("") }, { assert path(process.out.html[0][1][3]).text.contains("") }, - { assert snapshot(process.out.versions).match("versions") } + { assert snapshot(process.out.versions).match("fastqc_versions_multiple") } ) } } @@ -179,7 +179,7 @@ nextflow_process { { assert process.out.zip[0][1] ==~ ".*/mysample_fastqc.zip" }, { assert path(process.out.html[0][1]).text.contains("") }, - { assert snapshot(process.out.versions).match("versions") } + { assert snapshot(process.out.versions).match("fastqc_versions_custom_prefix") } ) } } @@ -204,7 +204,7 @@ nextflow_process { { assert process.success }, { assert snapshot(process.out.html.collect { file(it[1]).getName() } + process.out.zip.collect { file(it[1]).getName() } + - process.out.versions ).match() } + process.out.versions ).match("fastqc_stub") } ) } } diff --git a/modules/nf-core/fastqc/tests/main.nf.test.snap b/modules/nf-core/fastqc/tests/main.nf.test.snap index 5d624bb8..86f7c311 100644 --- a/modules/nf-core/fastqc/tests/main.nf.test.snap +++ b/modules/nf-core/fastqc/tests/main.nf.test.snap @@ -1,5 +1,17 @@ { - "sarscov2 single-end [fastq] - stub": { + "fastqc_versions_interleaved": { + "content": [ + [ + "versions.yml:md5,e1cc25ca8af856014824abd842e93978" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-01-31T17:40:07.293713" + }, + "fastqc_stub": { "content": [ [ "test.html", @@ -7,14 +19,70 @@ "versions.yml:md5,e1cc25ca8af856014824abd842e93978" ] ], - "timestamp": "2024-01-17T18:40:57.254299" + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-01-31T17:31:01.425198" + }, + "fastqc_versions_multiple": { + "content": [ + [ + "versions.yml:md5,e1cc25ca8af856014824abd842e93978" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-01-31T17:40:55.797907" + }, + "fastqc_versions_bam": { + "content": [ + [ + "versions.yml:md5,e1cc25ca8af856014824abd842e93978" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-01-31T17:40:26.795862" + }, + "fastqc_versions_single": { + "content": [ + [ + "versions.yml:md5,e1cc25ca8af856014824abd842e93978" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-01-31T17:39:27.043675" + }, + "fastqc_versions_paired": { + "content": [ + [ + "versions.yml:md5,e1cc25ca8af856014824abd842e93978" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-01-31T17:39:47.584191" }, - "versions": { + "fastqc_versions_custom_prefix": { "content": [ [ "versions.yml:md5,e1cc25ca8af856014824abd842e93978" ] ], - "timestamp": "2024-01-17T18:36:50.033627" + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-01-31T17:41:14.576531" } } \ No newline at end of file diff --git a/modules/nf-core/multiqc/environment.yml b/modules/nf-core/multiqc/environment.yml index 7625b752..2212096a 100644 --- a/modules/nf-core/multiqc/environment.yml +++ b/modules/nf-core/multiqc/environment.yml @@ -4,4 +4,4 @@ channels: - bioconda - defaults dependencies: - - bioconda::multiqc=1.19 + - bioconda::multiqc=1.20 diff --git a/modules/nf-core/multiqc/main.nf b/modules/nf-core/multiqc/main.nf index 1b9f7c43..354f4430 100644 --- a/modules/nf-core/multiqc/main.nf +++ b/modules/nf-core/multiqc/main.nf @@ -3,8 +3,8 @@ process MULTIQC { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/multiqc:1.19--pyhdfd78af_0' : - 'biocontainers/multiqc:1.19--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/multiqc:1.20--pyhdfd78af_0' : + 'biocontainers/multiqc:1.20--pyhdfd78af_0' }" input: path multiqc_files, stageAs: "?/*" diff --git a/modules/nf-core/multiqc/tests/main.nf.test b/modules/nf-core/multiqc/tests/main.nf.test index d0438eda..f1c4242e 100644 --- a/modules/nf-core/multiqc/tests/main.nf.test +++ b/modules/nf-core/multiqc/tests/main.nf.test @@ -3,6 +3,7 @@ nextflow_process { name "Test Process MULTIQC" script "../main.nf" process "MULTIQC" + tag "modules" tag "modules_nfcore" tag "multiqc" @@ -12,7 +13,7 @@ nextflow_process { when { process { """ - input[0] = Channel.of([file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz_fastqc_zip'], checkIfExists: true)]) + input[0] = Channel.of(file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastqc/test_fastqc.zip', checkIfExists: true)) input[1] = [] input[2] = [] input[3] = [] @@ -25,7 +26,7 @@ nextflow_process { { assert process.success }, { assert process.out.report[0] ==~ ".*/multiqc_report.html" }, { assert process.out.data[0] ==~ ".*/multiqc_data" }, - { assert snapshot(process.out.versions).match("versions") } + { assert snapshot(process.out.versions).match("multiqc_versions_single") } ) } @@ -36,7 +37,7 @@ nextflow_process { when { process { """ - input[0] = Channel.of([file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz_fastqc_zip'], checkIfExists: true)]) + input[0] = Channel.of(file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastqc/test_fastqc.zip', checkIfExists: true)) input[1] = Channel.of(file("https://github.com/nf-core/tools/raw/dev/nf_core/pipeline-template/assets/multiqc_config.yml", checkIfExists: true)) input[2] = [] input[3] = [] @@ -49,7 +50,7 @@ nextflow_process { { assert process.success }, { assert process.out.report[0] ==~ ".*/multiqc_report.html" }, { assert process.out.data[0] ==~ ".*/multiqc_data" }, - { assert snapshot(process.out.versions).match("versions") } + { assert snapshot(process.out.versions).match("multiqc_versions_config") } ) } } @@ -61,7 +62,7 @@ nextflow_process { when { process { """ - input[0] = Channel.of([file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz_fastqc_zip'], checkIfExists: true)]) + input[0] = Channel.of(file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastqc/test_fastqc.zip', checkIfExists: true)) input[1] = [] input[2] = [] input[3] = [] @@ -75,7 +76,7 @@ nextflow_process { { assert snapshot(process.out.report.collect { file(it).getName() } + process.out.data.collect { file(it).getName() } + process.out.plots.collect { file(it).getName() } + - process.out.versions ).match() } + process.out.versions ).match("multiqc_stub") } ) } diff --git a/modules/nf-core/multiqc/tests/main.nf.test.snap b/modules/nf-core/multiqc/tests/main.nf.test.snap index d37e7304..c204b488 100644 --- a/modules/nf-core/multiqc/tests/main.nf.test.snap +++ b/modules/nf-core/multiqc/tests/main.nf.test.snap @@ -1,21 +1,41 @@ { - "versions": { + "multiqc_versions_single": { "content": [ [ - "versions.yml:md5,14e9a2661241abd828f4f06a7b5c222d" + "versions.yml:md5,d320d4c37e349c5588e07e7a31cd4186" ] ], - "timestamp": "2024-01-09T23:02:49.911994" + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-14T09:28:51.744211298" }, - "sarscov2 single-end [fastqc] - stub": { + "multiqc_stub": { "content": [ [ "multiqc_report.html", "multiqc_data", "multiqc_plots", - "versions.yml:md5,14e9a2661241abd828f4f06a7b5c222d" + "versions.yml:md5,d320d4c37e349c5588e07e7a31cd4186" ] ], - "timestamp": "2024-01-09T23:03:14.524346" + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-14T09:29:28.847433492" + }, + "multiqc_versions_config": { + "content": [ + [ + "versions.yml:md5,d320d4c37e349c5588e07e7a31cd4186" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-14T09:29:13.223621555" } } \ No newline at end of file diff --git a/nextflow.config b/nextflow.config index 59e48f09..f9c1e571 100644 --- a/nextflow.config +++ b/nextflow.config @@ -16,9 +16,7 @@ params { genome = null igenomes_base = 's3://ngi-igenomes/igenomes/' igenomes_ignore = false - - - // MultiQC options + fasta = null// MultiQC options multiqc_config = null multiqc_title = null multiqc_logo = null @@ -43,7 +41,6 @@ params { custom_config_base = "https://raw.githubusercontent.com/nf-core/configs/${params.custom_config_version}" config_profile_contact = null config_profile_url = null - // Max resource options // Defaults only, expecting to be overwritten diff --git a/nextflow_schema.json b/nextflow_schema.json index af1a8041..8d405bb0 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -16,6 +16,7 @@ "type": "string", "format": "file-path", "exists": true, + "schema": "assets/schema_input.json", "mimetype": "text/csv", "pattern": "^\\S+\\.csv$", "description": "Path to comma-separated file containing information about the samples in the experiment.", diff --git a/pyproject.toml b/pyproject.toml index 7d08e1c8..56110621 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,11 +3,13 @@ [tool.ruff] line-length = 120 target-version = "py38" -select = ["I", "E1", "E4", "E7", "E9", "F", "UP", "N"] cache-dir = "~/.cache/ruff" -[tool.ruff.isort] +[tool.ruff.lint] +select = ["I", "E1", "E4", "E7", "E9", "F", "UP", "N"] + +[tool.ruff.lint.isort] known-first-party = ["nf_core"] -[tool.ruff.per-file-ignores] +[tool.ruff.lint.per-file-ignores] "__init__.py" = ["E402", "F401"] diff --git a/subworkflows/local/input_check.nf b/subworkflows/local/input_check.nf deleted file mode 100644 index 0aecf87f..00000000 --- a/subworkflows/local/input_check.nf +++ /dev/null @@ -1,44 +0,0 @@ -// -// Check input samplesheet and get read channels -// - -include { SAMPLESHEET_CHECK } from '../../modules/local/samplesheet_check' - -workflow INPUT_CHECK { - take: - samplesheet // file: /path/to/samplesheet.csv - - main: - SAMPLESHEET_CHECK ( samplesheet ) - .csv - .splitCsv ( header:true, sep:',' ) - .map { create_fastq_channel(it) } - .set { reads } - - emit: - reads // channel: [ val(meta), [ reads ] ] - versions = SAMPLESHEET_CHECK.out.versions // channel: [ versions.yml ] -} - -// Function to get list of [ meta, [ fastq_1, fastq_2 ] ] -def create_fastq_channel(LinkedHashMap row) { - // create meta map - def meta = [:] - meta.id = row.sample - meta.single_end = row.single_end.toBoolean() - - // add path(s) of the fastq file(s) to the meta map - def fastq_meta = [] - if (!file(row.fastq_1).exists()) { - exit 1, "ERROR: Please check input samplesheet -> Read 1 FastQ file does not exist!\n${row.fastq_1}" - } - if (meta.single_end) { - fastq_meta = [ meta, [ file(row.fastq_1) ] ] - } else { - if (!file(row.fastq_2).exists()) { - exit 1, "ERROR: Please check input samplesheet -> Read 2 FastQ file does not exist!\n${row.fastq_2}" - } - fastq_meta = [ meta, [ file(row.fastq_1), file(row.fastq_2) ] ] - } - return fastq_meta -} diff --git a/subworkflows/local/utils_nfcore_chipseq_pipeline/main.nf b/subworkflows/local/utils_nfcore_chipseq_pipeline/main.nf new file mode 100644 index 00000000..dc90ad90 --- /dev/null +++ b/subworkflows/local/utils_nfcore_chipseq_pipeline/main.nf @@ -0,0 +1,247 @@ +// +// Subworkflow with functionality specific to the nf-core/pipeline pipeline +// + +/* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + IMPORT FUNCTIONS / MODULES / SUBWORKFLOWS +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +*/ + +include { UTILS_NFVALIDATION_PLUGIN } from '../../nf-core/utils_nfvalidation_plugin' +include { paramsSummaryMap } from 'plugin/nf-validation' +include { fromSamplesheet } from 'plugin/nf-validation' +include { UTILS_NEXTFLOW_PIPELINE } from '../../nf-core/utils_nextflow_pipeline' +include { completionEmail } from '../../nf-core/utils_nfcore_pipeline' +include { completionSummary } from '../../nf-core/utils_nfcore_pipeline' +include { dashedLine } from '../../nf-core/utils_nfcore_pipeline' +include { nfCoreLogo } from '../../nf-core/utils_nfcore_pipeline' +include { imNotification } from '../../nf-core/utils_nfcore_pipeline' +include { UTILS_NFCORE_PIPELINE } from '../../nf-core/utils_nfcore_pipeline' +include { workflowCitation } from '../../nf-core/utils_nfcore_pipeline' + +/* +======================================================================================== + SUBWORKFLOW TO INITIALISE PIPELINE +======================================================================================== +*/ + +workflow PIPELINE_INITIALISATION { + + take: + version // boolean: Display version and exit + help // boolean: Display help text + validate_params // boolean: Boolean whether to validate parameters against the schema at runtime + monochrome_logs // boolean: Do not use coloured log outputs + nextflow_cli_args // array: List of positional nextflow CLI args + outdir // string: The output directory where the results will be saved + input // string: Path to input samplesheet + + main: + + ch_versions = Channel.empty() + + // + // Print version and exit if required and dump pipeline parameters to JSON file + // + UTILS_NEXTFLOW_PIPELINE ( + version, + true, + outdir, + workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1 + ) + + // + // Validate parameters and generate parameter summary to stdout + // + pre_help_text = nfCoreLogo(monochrome_logs) + post_help_text = '\n' + workflowCitation() + '\n' + dashedLine(monochrome_logs) + def String workflow_command = "nextflow run ${workflow.manifest.name} -profile --input samplesheet.csv --outdir " + UTILS_NFVALIDATION_PLUGIN ( + help, + workflow_command, + pre_help_text, + post_help_text, + validate_params, + "nextflow_schema.json" + ) + + // + // Check config provided to the pipeline + // + UTILS_NFCORE_PIPELINE ( + nextflow_cli_args + ) + // + // Custom validation for pipeline parameters + // + validateInputParameters() + + // + // Create channel from input file provided through params.input + // + Channel + .fromSamplesheet("input") + .map { + meta, fastq_1, fastq_2 -> + if (!fastq_2) { + return [ meta.id, meta + [ single_end:true ], [ fastq_1 ] ] + } else { + return [ meta.id, meta + [ single_end:false ], [ fastq_1, fastq_2 ] ] + } + } + .groupTuple() + .map { + validateInputSamplesheet(it) + } + .map { + meta, fastqs -> + return [ meta, fastqs.flatten() ] + } + .set { ch_samplesheet } + + emit: + samplesheet = ch_samplesheet + versions = ch_versions +} + +/* +======================================================================================== + SUBWORKFLOW FOR PIPELINE COMPLETION +======================================================================================== +*/ + +workflow PIPELINE_COMPLETION { + + take: + email // string: email address + email_on_fail // string: email address sent on pipeline failure + plaintext_email // boolean: Send plain-text email instead of HTML + outdir // path: Path to output directory where results will be published + monochrome_logs // boolean: Disable ANSI colour codes in log output + hook_url // string: hook URL for notifications + multiqc_report // string: Path to MultiQC report + + main: + + summary_params = paramsSummaryMap(workflow, parameters_schema: "nextflow_schema.json") + + // + // Completion email and summary + // + workflow.onComplete { + if (email || email_on_fail) { + completionEmail(summary_params, email, email_on_fail, plaintext_email, outdir, monochrome_logs, multiqc_report.toList()) + } + + completionSummary(monochrome_logs) + + if (hook_url) { + imNotification(summary_params, hook_url) + } + } +} + +/* +======================================================================================== + FUNCTIONS +======================================================================================== +*/ +// +// Check and validate pipeline parameters +// +def validateInputParameters() { + genomeExistsError() +}// +// Validate channels from input samplesheet +// +def validateInputSamplesheet(input) { + def (metas, fastqs) = input[1..2] + + // Check that multiple runs of the same sample are of the same datatype i.e. single-end / paired-end + def endedness_ok = metas.collect{ it.single_end }.unique().size == 1 + if (!endedness_ok) { + error("Please check input samplesheet -> Multiple runs of a sample must be of the same datatype i.e. single-end or paired-end: ${metas[0].id}") + } + + return [ metas[0], fastqs ] +} +// +// Get attribute from genome config file e.g. fasta +// +def getGenomeAttribute(attribute) { + if (params.genomes && params.genome && params.genomes.containsKey(params.genome)) { + if (params.genomes[ params.genome ].containsKey(attribute)) { + return params.genomes[ params.genome ][ attribute ] + } + } + return null +} + +// +// Exit pipeline if incorrect --genome key provided +// +def genomeExistsError() { + if (params.genomes && params.genome && !params.genomes.containsKey(params.genome)) { + def error_string = "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + + " Genome '${params.genome}' not found in any config files provided to the pipeline.\n" + + " Currently, the available genome keys are:\n" + + " ${params.genomes.keySet().join(", ")}\n" + + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" + error(error_string) + } +}// +// Generate methods description for MultiQC +// +def toolCitationText() { + // TODO nf-core: Optionally add in-text citation tools to this list. + // Can use ternary operators to dynamically construct based conditions, e.g. params["run_xyz"] ? "Tool (Foo et al. 2023)" : "", + // Uncomment function in methodsDescriptionText to render in MultiQC report + def citation_text = [ + "Tools used in the workflow included:", + "FastQC (Andrews 2010),", + "MultiQC (Ewels et al. 2016)", + "." + ].join(' ').trim() + + return citation_text +} + +def toolBibliographyText() { + // TODO nf-core: Optionally add bibliographic entries to this list. + // Can use ternary operators to dynamically construct based conditions, e.g. params["run_xyz"] ? "
  • Author (2023) Pub name, Journal, DOI
  • " : "", + // Uncomment function in methodsDescriptionText to render in MultiQC report + def reference_text = [ + "
  • Andrews S, (2010) FastQC, URL: https://www.bioinformatics.babraham.ac.uk/projects/fastqc/).
  • ", + "
  • Ewels, P., Magnusson, M., Lundin, S., & Käller, M. (2016). MultiQC: summarize analysis results for multiple tools and samples in a single report. Bioinformatics , 32(19), 3047–3048. doi: /10.1093/bioinformatics/btw354
  • " + ].join(' ').trim() + + return reference_text +} + +def methodsDescriptionText(mqc_methods_yaml) { + // Convert to a named map so can be used as with familar NXF ${workflow} variable syntax in the MultiQC YML file + def meta = [:] + meta.workflow = workflow.toMap() + meta["manifest_map"] = workflow.manifest.toMap() + + // Pipeline DOI + meta["doi_text"] = meta.manifest_map.doi ? "(doi: ${meta.manifest_map.doi})" : "" + meta["nodoi_text"] = meta.manifest_map.doi ? "": "
  • If available, make sure to update the text to include the Zenodo DOI of version of the pipeline used.
  • " + + // Tool references + meta["tool_citations"] = "" + meta["tool_bibliography"] = "" + + // TODO nf-core: Only uncomment below if logic in toolCitationText/toolBibliographyText has been filled! + // meta["tool_citations"] = toolCitationText().replaceAll(", \\.", ".").replaceAll("\\. \\.", ".").replaceAll(", \\.", ".") + // meta["tool_bibliography"] = toolBibliographyText() + + + def methods_text = mqc_methods_yaml.text + + def engine = new groovy.text.SimpleTemplateEngine() + def description_html = engine.createTemplate(methods_text).make(meta) + + return description_html.toString() +} diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/main.nf b/subworkflows/nf-core/utils_nextflow_pipeline/main.nf new file mode 100644 index 00000000..ac31f28f --- /dev/null +++ b/subworkflows/nf-core/utils_nextflow_pipeline/main.nf @@ -0,0 +1,126 @@ +// +// Subworkflow with functionality that may be useful for any Nextflow pipeline +// + +import org.yaml.snakeyaml.Yaml +import groovy.json.JsonOutput +import nextflow.extension.FilesEx + +/* +======================================================================================== + SUBWORKFLOW DEFINITION +======================================================================================== +*/ + +workflow UTILS_NEXTFLOW_PIPELINE { + + take: + print_version // boolean: print version + dump_parameters // boolean: dump parameters + outdir // path: base directory used to publish pipeline results + check_conda_channels // boolean: check conda channels + + main: + + // + // Print workflow version and exit on --version + // + if (print_version) { + log.info "${workflow.manifest.name} ${getWorkflowVersion()}" + System.exit(0) + } + + // + // Dump pipeline parameters to a JSON file + // + if (dump_parameters && outdir) { + dumpParametersToJSON(outdir) + } + + // + // When running with Conda, warn if channels have not been set-up appropriately + // + if (check_conda_channels) { + checkCondaChannels() + } + + emit: + dummy_emit = true +} + +/* +======================================================================================== + FUNCTIONS +======================================================================================== +*/ + +// +// Generate version string +// +def getWorkflowVersion() { + String version_string = "" + if (workflow.manifest.version) { + def prefix_v = workflow.manifest.version[0] != 'v' ? 'v' : '' + version_string += "${prefix_v}${workflow.manifest.version}" + } + + if (workflow.commitId) { + def git_shortsha = workflow.commitId.substring(0, 7) + version_string += "-g${git_shortsha}" + } + + return version_string +} + +// +// Dump pipeline parameters to a JSON file +// +def dumpParametersToJSON(outdir) { + def timestamp = new java.util.Date().format( 'yyyy-MM-dd_HH-mm-ss') + def filename = "params_${timestamp}.json" + def temp_pf = new File(workflow.launchDir.toString(), ".${filename}") + def jsonStr = JsonOutput.toJson(params) + temp_pf.text = JsonOutput.prettyPrint(jsonStr) + + FilesEx.copyTo(temp_pf.toPath(), "${outdir}/pipeline_info/params_${timestamp}.json") + temp_pf.delete() +} + +// +// When running with -profile conda, warn if channels have not been set-up appropriately +// +def checkCondaChannels() { + Yaml parser = new Yaml() + def channels = [] + try { + def config = parser.load("conda config --show channels".execute().text) + channels = config.channels + } catch(NullPointerException | IOException e) { + log.warn "Could not verify conda channel configuration." + return + } + + // Check that all channels are present + // This channel list is ordered by required channel priority. + def required_channels_in_order = ['conda-forge', 'bioconda', 'defaults'] + def channels_missing = ((required_channels_in_order as Set) - (channels as Set)) as Boolean + + // Check that they are in the right order + def channel_priority_violation = false + def n = required_channels_in_order.size() + for (int i = 0; i < n - 1; i++) { + channel_priority_violation |= !(channels.indexOf(required_channels_in_order[i]) < channels.indexOf(required_channels_in_order[i+1])) + } + + if (channels_missing | channel_priority_violation) { + log.warn "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + + " There is a problem with your Conda configuration!\n\n" + + " You will need to set-up the conda-forge and bioconda channels correctly.\n" + + " Please refer to https://bioconda.github.io/\n" + + " The observed channel order is \n" + + " ${channels}\n" + + " but the following channel order is required:\n" + + " ${required_channels_in_order}\n" + + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" + } +} diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/meta.yml b/subworkflows/nf-core/utils_nextflow_pipeline/meta.yml new file mode 100644 index 00000000..e5c3a0a8 --- /dev/null +++ b/subworkflows/nf-core/utils_nextflow_pipeline/meta.yml @@ -0,0 +1,38 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/subworkflows/yaml-schema.json +name: "UTILS_NEXTFLOW_PIPELINE" +description: Subworkflow with functionality that may be useful for any Nextflow pipeline +keywords: + - utility + - pipeline + - initialise + - version +components: [] +input: + - print_version: + type: boolean + description: | + Print the version of the pipeline and exit + - dump_parameters: + type: boolean + description: | + Dump the parameters of the pipeline to a JSON file + - output_directory: + type: directory + description: Path to output dir to write JSON file to. + pattern: "results/" + - check_conda_channel: + type: boolean + description: | + Check if the conda channel priority is correct. +output: + - dummy_emit: + type: boolean + description: | + Dummy emit to make nf-core subworkflows lint happy +authors: + - "@adamrtalbot" + - "@drpatelh" +maintainers: + - "@adamrtalbot" + - "@drpatelh" + - "@maxulysse" diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test b/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test new file mode 100644 index 00000000..8ed4310c --- /dev/null +++ b/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test @@ -0,0 +1,54 @@ + +nextflow_function { + + name "Test Functions" + script "subworkflows/nf-core/utils_nextflow_pipeline/main.nf" + config "subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config" + tag 'subworkflows' + tag 'utils_nextflow_pipeline' + tag 'subworkflows/utils_nextflow_pipeline' + + test("Test Function getWorkflowVersion") { + + function "getWorkflowVersion" + + then { + assertAll( + { assert function.success }, + { assert snapshot(function.result).match() } + ) + } + } + + test("Test Function dumpParametersToJSON") { + + function "dumpParametersToJSON" + + when { + function { + """ + // define inputs of the function here. Example: + input[0] = "$outputDir" + """.stripIndent() + } + } + + then { + assertAll( + { assert function.success } + ) + } + } + + test("Test Function checkCondaChannels") { + + function "checkCondaChannels" + + then { + assertAll( + { assert function.success }, + { assert snapshot(function.result).match() } + ) + } + } +} \ No newline at end of file diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap b/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap new file mode 100644 index 00000000..db2030f8 --- /dev/null +++ b/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap @@ -0,0 +1,12 @@ +{ + "Test Function getWorkflowVersion": { + "content": [ + "v9.9.9" + ], + "timestamp": "2024-01-19T11:32:36.031083" + }, + "Test Function checkCondaChannels": { + "content": null, + "timestamp": "2024-01-19T11:32:50.456" + } +} \ No newline at end of file diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test b/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test new file mode 100644 index 00000000..f7c54bc6 --- /dev/null +++ b/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test @@ -0,0 +1,123 @@ +nextflow_workflow { + + name "Test Workflow UTILS_NEXTFLOW_PIPELINE" + script "../main.nf" + config "subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config" + workflow "UTILS_NEXTFLOW_PIPELINE" + tag 'subworkflows' + tag 'utils_nextflow_pipeline' + tag 'subworkflows/utils_nextflow_pipeline' + + test("Should run no inputs") { + + when { + params { + outdir = "tests/results" + } + workflow { + """ + print_version = false + dump_parameters = false + outdir = null + check_conda_channels = false + + input[0] = print_version + input[1] = dump_parameters + input[2] = outdir + input[3] = check_conda_channels + """ + } + } + + then { + assertAll( + { assert workflow.success } + ) + } + } + + test("Should print version") { + + when { + params { + outdir = "tests/results" + } + workflow { + """ + print_version = true + dump_parameters = false + outdir = null + check_conda_channels = false + + input[0] = print_version + input[1] = dump_parameters + input[2] = outdir + input[3] = check_conda_channels + """ + } + } + + then { + assertAll( + { assert workflow.success }, + { assert workflow.stdout.contains("nextflow_workflow v9.9.9") } + ) + } + } + + test("Should dump params") { + + when { + params { + outdir = "$outputDir" + } + workflow { + """ + print_version = false + dump_parameters = true + outdir = params.outdir + check_conda_channels = false + + input[0] = false + input[1] = true + input[2] = params.outdir + input[3] = false + """ + } + } + + then { + assertAll( + { assert workflow.success } + ) + } + } + + test("Should not create params JSON if no output directory") { + + when { + params { + outdir = "$outputDir" + } + workflow { + """ + print_version = false + dump_parameters = true + outdir = params.outdir + check_conda_channels = false + + input[0] = false + input[1] = true + input[2] = null + input[3] = false + """ + } + } + + then { + assertAll( + { assert workflow.success } + ) + } + } +} diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config b/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config new file mode 100644 index 00000000..53574ffe --- /dev/null +++ b/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config @@ -0,0 +1,9 @@ +manifest { + name = 'nextflow_workflow' + author = """nf-core""" + homePage = 'https://127.0.0.1' + description = """Dummy pipeline""" + nextflowVersion = '!>=23.04.0' + version = '9.9.9' + doi = 'https://doi.org/10.5281/zenodo.5070524' +} \ No newline at end of file diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/tests/tags.yml b/subworkflows/nf-core/utils_nextflow_pipeline/tests/tags.yml new file mode 100644 index 00000000..f8476112 --- /dev/null +++ b/subworkflows/nf-core/utils_nextflow_pipeline/tests/tags.yml @@ -0,0 +1,2 @@ +subworkflows/utils_nextflow_pipeline: + - subworkflows/nf-core/utils_nextflow_pipeline/** diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/main.nf b/subworkflows/nf-core/utils_nfcore_pipeline/main.nf new file mode 100644 index 00000000..a8b55d6f --- /dev/null +++ b/subworkflows/nf-core/utils_nfcore_pipeline/main.nf @@ -0,0 +1,440 @@ +// +// Subworkflow with utility functions specific to the nf-core pipeline template +// + +import org.yaml.snakeyaml.Yaml +import nextflow.extension.FilesEx + +/* +======================================================================================== + SUBWORKFLOW DEFINITION +======================================================================================== +*/ + +workflow UTILS_NFCORE_PIPELINE { + + take: + nextflow_cli_args + + main: + valid_config = checkConfigProvided() + checkProfileProvided(nextflow_cli_args) + + emit: + valid_config +} + +/* +======================================================================================== + FUNCTIONS +======================================================================================== +*/ + +// +// Warn if a -profile or Nextflow config has not been provided to run the pipeline +// +def checkConfigProvided() { + valid_config = true + if (workflow.profile == 'standard' && workflow.configFiles.size() <= 1) { + log.warn "[$workflow.manifest.name] You are attempting to run the pipeline without any custom configuration!\n\n" + + "This will be dependent on your local compute environment but can be achieved via one or more of the following:\n" + + " (1) Using an existing pipeline profile e.g. `-profile docker` or `-profile singularity`\n" + + " (2) Using an existing nf-core/configs for your Institution e.g. `-profile crick` or `-profile uppmax`\n" + + " (3) Using your own local custom config e.g. `-c /path/to/your/custom.config`\n\n" + + "Please refer to the quick start section and usage docs for the pipeline.\n " + valid_config = false + } + return valid_config +} + +// +// Exit pipeline if --profile contains spaces +// +def checkProfileProvided(nextflow_cli_args) { + if (workflow.profile.endsWith(',')) { + error "The `-profile` option cannot end with a trailing comma, please remove it and re-run the pipeline!\n" + + "HINT: A common mistake is to provide multiple values separated by spaces e.g. `-profile test, docker`.\n" + } + if (nextflow_cli_args[0]) { + log.warn "nf-core pipelines do not accept positional arguments. The positional argument `${nextflow_cli_args[0]}` has been detected.\n" + + "HINT: A common mistake is to provide multiple values separated by spaces e.g. `-profile test, docker`.\n" + } +} + +// +// Citation string for pipeline +// +def workflowCitation() { + return "If you use ${workflow.manifest.name} for your analysis please cite:\n\n" + + "* The pipeline\n" + + " ${workflow.manifest.doi}\n\n" + + "* The nf-core framework\n" + + " https://doi.org/10.1038/s41587-020-0439-x\n\n" + + "* Software dependencies\n" + + " https://github.com/${workflow.manifest.name}/blob/master/CITATIONS.md" +} + +// +// Generate workflow version string +// +def getWorkflowVersion() { + String version_string = "" + if (workflow.manifest.version) { + def prefix_v = workflow.manifest.version[0] != 'v' ? 'v' : '' + version_string += "${prefix_v}${workflow.manifest.version}" + } + + if (workflow.commitId) { + def git_shortsha = workflow.commitId.substring(0, 7) + version_string += "-g${git_shortsha}" + } + + return version_string +} + +// +// Get software versions for pipeline +// +def processVersionsFromYAML(yaml_file) { + Yaml yaml = new Yaml() + versions = yaml.load(yaml_file).collectEntries { k, v -> [ k.tokenize(':')[-1], v ] } + return yaml.dumpAsMap(versions).trim() +} + +// +// Get workflow version for pipeline +// +def workflowVersionToYAML() { + return """ + Workflow: + $workflow.manifest.name: ${getWorkflowVersion()} + Nextflow: $workflow.nextflow.version + """.stripIndent().trim() +} + +// +// Get channel of software versions used in pipeline in YAML format +// +def softwareVersionsToYAML(ch_versions) { + return ch_versions + .unique() + .map { processVersionsFromYAML(it) } + .unique() + .mix(Channel.of(workflowVersionToYAML())) +} + +// +// Get workflow summary for MultiQC +// +def paramsSummaryMultiqc(summary_params) { + def summary_section = '' + for (group in summary_params.keySet()) { + def group_params = summary_params.get(group) // This gets the parameters of that particular group + if (group_params) { + summary_section += "

    $group

    \n" + summary_section += "
    \n" + for (param in group_params.keySet()) { + summary_section += "
    $param
    ${group_params.get(param) ?: 'N/A'}
    \n" + } + summary_section += "
    \n" + } + } + + String yaml_file_text = "id: '${workflow.manifest.name.replace('/','-')}-summary'\n" + yaml_file_text += "description: ' - this information is collected when the pipeline is started.'\n" + yaml_file_text += "section_name: '${workflow.manifest.name} Workflow Summary'\n" + yaml_file_text += "section_href: 'https://github.com/${workflow.manifest.name}'\n" + yaml_file_text += "plot_type: 'html'\n" + yaml_file_text += "data: |\n" + yaml_file_text += "${summary_section}" + + return yaml_file_text +} + +// +// nf-core logo +// +def nfCoreLogo(monochrome_logs=true) { + Map colors = logColours(monochrome_logs) + String.format( + """\n + ${dashedLine(monochrome_logs)} + ${colors.green},--.${colors.black}/${colors.green},-.${colors.reset} + ${colors.blue} ___ __ __ __ ___ ${colors.green}/,-._.--~\'${colors.reset} + ${colors.blue} |\\ | |__ __ / ` / \\ |__) |__ ${colors.yellow}} {${colors.reset} + ${colors.blue} | \\| | \\__, \\__/ | \\ |___ ${colors.green}\\`-._,-`-,${colors.reset} + ${colors.green}`._,._,\'${colors.reset} + ${colors.purple} ${workflow.manifest.name} ${getWorkflowVersion()}${colors.reset} + ${dashedLine(monochrome_logs)} + """.stripIndent() + ) +} + +// +// Return dashed line +// +def dashedLine(monochrome_logs=true) { + Map colors = logColours(monochrome_logs) + return "-${colors.dim}----------------------------------------------------${colors.reset}-" +} + +// +// ANSII colours used for terminal logging +// +def logColours(monochrome_logs=true) { + Map colorcodes = [:] + + // Reset / Meta + colorcodes['reset'] = monochrome_logs ? '' : "\033[0m" + colorcodes['bold'] = monochrome_logs ? '' : "\033[1m" + colorcodes['dim'] = monochrome_logs ? '' : "\033[2m" + colorcodes['underlined'] = monochrome_logs ? '' : "\033[4m" + colorcodes['blink'] = monochrome_logs ? '' : "\033[5m" + colorcodes['reverse'] = monochrome_logs ? '' : "\033[7m" + colorcodes['hidden'] = monochrome_logs ? '' : "\033[8m" + + // Regular Colors + colorcodes['black'] = monochrome_logs ? '' : "\033[0;30m" + colorcodes['red'] = monochrome_logs ? '' : "\033[0;31m" + colorcodes['green'] = monochrome_logs ? '' : "\033[0;32m" + colorcodes['yellow'] = monochrome_logs ? '' : "\033[0;33m" + colorcodes['blue'] = monochrome_logs ? '' : "\033[0;34m" + colorcodes['purple'] = monochrome_logs ? '' : "\033[0;35m" + colorcodes['cyan'] = monochrome_logs ? '' : "\033[0;36m" + colorcodes['white'] = monochrome_logs ? '' : "\033[0;37m" + + // Bold + colorcodes['bblack'] = monochrome_logs ? '' : "\033[1;30m" + colorcodes['bred'] = monochrome_logs ? '' : "\033[1;31m" + colorcodes['bgreen'] = monochrome_logs ? '' : "\033[1;32m" + colorcodes['byellow'] = monochrome_logs ? '' : "\033[1;33m" + colorcodes['bblue'] = monochrome_logs ? '' : "\033[1;34m" + colorcodes['bpurple'] = monochrome_logs ? '' : "\033[1;35m" + colorcodes['bcyan'] = monochrome_logs ? '' : "\033[1;36m" + colorcodes['bwhite'] = monochrome_logs ? '' : "\033[1;37m" + + // Underline + colorcodes['ublack'] = monochrome_logs ? '' : "\033[4;30m" + colorcodes['ured'] = monochrome_logs ? '' : "\033[4;31m" + colorcodes['ugreen'] = monochrome_logs ? '' : "\033[4;32m" + colorcodes['uyellow'] = monochrome_logs ? '' : "\033[4;33m" + colorcodes['ublue'] = monochrome_logs ? '' : "\033[4;34m" + colorcodes['upurple'] = monochrome_logs ? '' : "\033[4;35m" + colorcodes['ucyan'] = monochrome_logs ? '' : "\033[4;36m" + colorcodes['uwhite'] = monochrome_logs ? '' : "\033[4;37m" + + // High Intensity + colorcodes['iblack'] = monochrome_logs ? '' : "\033[0;90m" + colorcodes['ired'] = monochrome_logs ? '' : "\033[0;91m" + colorcodes['igreen'] = monochrome_logs ? '' : "\033[0;92m" + colorcodes['iyellow'] = monochrome_logs ? '' : "\033[0;93m" + colorcodes['iblue'] = monochrome_logs ? '' : "\033[0;94m" + colorcodes['ipurple'] = monochrome_logs ? '' : "\033[0;95m" + colorcodes['icyan'] = monochrome_logs ? '' : "\033[0;96m" + colorcodes['iwhite'] = monochrome_logs ? '' : "\033[0;97m" + + // Bold High Intensity + colorcodes['biblack'] = monochrome_logs ? '' : "\033[1;90m" + colorcodes['bired'] = monochrome_logs ? '' : "\033[1;91m" + colorcodes['bigreen'] = monochrome_logs ? '' : "\033[1;92m" + colorcodes['biyellow'] = monochrome_logs ? '' : "\033[1;93m" + colorcodes['biblue'] = monochrome_logs ? '' : "\033[1;94m" + colorcodes['bipurple'] = monochrome_logs ? '' : "\033[1;95m" + colorcodes['bicyan'] = monochrome_logs ? '' : "\033[1;96m" + colorcodes['biwhite'] = monochrome_logs ? '' : "\033[1;97m" + + return colorcodes +} + +// +// Attach the multiqc report to email +// +def attachMultiqcReport(multiqc_report) { + def mqc_report = null + try { + if (workflow.success) { + mqc_report = multiqc_report.getVal() + if (mqc_report.getClass() == ArrayList && mqc_report.size() >= 1) { + if (mqc_report.size() > 1) { + log.warn "[$workflow.manifest.name] Found multiple reports from process 'MULTIQC', will use only one" + } + mqc_report = mqc_report[0] + } + } + } catch (all) { + if (multiqc_report) { + log.warn "[$workflow.manifest.name] Could not attach MultiQC report to summary email" + } + } + return mqc_report +} + +// +// Construct and send completion email +// +def completionEmail(summary_params, email, email_on_fail, plaintext_email, outdir, monochrome_logs=true, multiqc_report=null) { + + // Set up the e-mail variables + def subject = "[$workflow.manifest.name] Successful: $workflow.runName" + if (!workflow.success) { + subject = "[$workflow.manifest.name] FAILED: $workflow.runName" + } + + def summary = [:] + for (group in summary_params.keySet()) { + summary << summary_params[group] + } + + def misc_fields = [:] + misc_fields['Date Started'] = workflow.start + misc_fields['Date Completed'] = workflow.complete + misc_fields['Pipeline script file path'] = workflow.scriptFile + misc_fields['Pipeline script hash ID'] = workflow.scriptId + if (workflow.repository) misc_fields['Pipeline repository Git URL'] = workflow.repository + if (workflow.commitId) misc_fields['Pipeline repository Git Commit'] = workflow.commitId + if (workflow.revision) misc_fields['Pipeline Git branch/tag'] = workflow.revision + misc_fields['Nextflow Version'] = workflow.nextflow.version + misc_fields['Nextflow Build'] = workflow.nextflow.build + misc_fields['Nextflow Compile Timestamp'] = workflow.nextflow.timestamp + + def email_fields = [:] + email_fields['version'] = getWorkflowVersion() + email_fields['runName'] = workflow.runName + email_fields['success'] = workflow.success + email_fields['dateComplete'] = workflow.complete + email_fields['duration'] = workflow.duration + email_fields['exitStatus'] = workflow.exitStatus + email_fields['errorMessage'] = (workflow.errorMessage ?: 'None') + email_fields['errorReport'] = (workflow.errorReport ?: 'None') + email_fields['commandLine'] = workflow.commandLine + email_fields['projectDir'] = workflow.projectDir + email_fields['summary'] = summary << misc_fields + + // On success try attach the multiqc report + def mqc_report = attachMultiqcReport(multiqc_report) + + // Check if we are only sending emails on failure + def email_address = email + if (!email && email_on_fail && !workflow.success) { + email_address = email_on_fail + } + + // Render the TXT template + def engine = new groovy.text.GStringTemplateEngine() + def tf = new File("${workflow.projectDir}/assets/email_template.txt") + def txt_template = engine.createTemplate(tf).make(email_fields) + def email_txt = txt_template.toString() + + // Render the HTML template + def hf = new File("${workflow.projectDir}/assets/email_template.html") + def html_template = engine.createTemplate(hf).make(email_fields) + def email_html = html_template.toString() + + // Render the sendmail template + def max_multiqc_email_size = (params.containsKey('max_multiqc_email_size') ? params.max_multiqc_email_size : 0) as nextflow.util.MemoryUnit + def smail_fields = [ email: email_address, subject: subject, email_txt: email_txt, email_html: email_html, projectDir: "${workflow.projectDir}", mqcFile: mqc_report, mqcMaxSize: max_multiqc_email_size.toBytes() ] + def sf = new File("${workflow.projectDir}/assets/sendmail_template.txt") + def sendmail_template = engine.createTemplate(sf).make(smail_fields) + def sendmail_html = sendmail_template.toString() + + // Send the HTML e-mail + Map colors = logColours(monochrome_logs) + if (email_address) { + try { + if (plaintext_email) { throw GroovyException('Send plaintext e-mail, not HTML') } + // Try to send HTML e-mail using sendmail + def sendmail_tf = new File(workflow.launchDir.toString(), ".sendmail_tmp.html") + sendmail_tf.withWriter { w -> w << sendmail_html } + [ 'sendmail', '-t' ].execute() << sendmail_html + log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Sent summary e-mail to $email_address (sendmail)-" + } catch (all) { + // Catch failures and try with plaintext + def mail_cmd = [ 'mail', '-s', subject, '--content-type=text/html', email_address ] + mail_cmd.execute() << email_html + log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Sent summary e-mail to $email_address (mail)-" + } + } + + // Write summary e-mail HTML to a file + def output_hf = new File(workflow.launchDir.toString(), ".pipeline_report.html") + output_hf.withWriter { w -> w << email_html } + FilesEx.copyTo(output_hf.toPath(), "${outdir}/pipeline_info/pipeline_report.html"); + output_hf.delete() + + // Write summary e-mail TXT to a file + def output_tf = new File(workflow.launchDir.toString(), ".pipeline_report.txt") + output_tf.withWriter { w -> w << email_txt } + FilesEx.copyTo(output_tf.toPath(), "${outdir}/pipeline_info/pipeline_report.txt"); + output_tf.delete() +} + +// +// Print pipeline summary on completion +// +def completionSummary(monochrome_logs=true) { + Map colors = logColours(monochrome_logs) + if (workflow.success) { + if (workflow.stats.ignoredCount == 0) { + log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Pipeline completed successfully${colors.reset}-" + } else { + log.info "-${colors.purple}[$workflow.manifest.name]${colors.yellow} Pipeline completed successfully, but with errored process(es) ${colors.reset}-" + } + } else { + log.info "-${colors.purple}[$workflow.manifest.name]${colors.red} Pipeline completed with errors${colors.reset}-" + } +} + +// +// Construct and send a notification to a web server as JSON e.g. Microsoft Teams and Slack +// +def imNotification(summary_params, hook_url) { + def summary = [:] + for (group in summary_params.keySet()) { + summary << summary_params[group] + } + + def misc_fields = [:] + misc_fields['start'] = workflow.start + misc_fields['complete'] = workflow.complete + misc_fields['scriptfile'] = workflow.scriptFile + misc_fields['scriptid'] = workflow.scriptId + if (workflow.repository) misc_fields['repository'] = workflow.repository + if (workflow.commitId) misc_fields['commitid'] = workflow.commitId + if (workflow.revision) misc_fields['revision'] = workflow.revision + misc_fields['nxf_version'] = workflow.nextflow.version + misc_fields['nxf_build'] = workflow.nextflow.build + misc_fields['nxf_timestamp'] = workflow.nextflow.timestamp + + def msg_fields = [:] + msg_fields['version'] = getWorkflowVersion() + msg_fields['runName'] = workflow.runName + msg_fields['success'] = workflow.success + msg_fields['dateComplete'] = workflow.complete + msg_fields['duration'] = workflow.duration + msg_fields['exitStatus'] = workflow.exitStatus + msg_fields['errorMessage'] = (workflow.errorMessage ?: 'None') + msg_fields['errorReport'] = (workflow.errorReport ?: 'None') + msg_fields['commandLine'] = workflow.commandLine.replaceFirst(/ +--hook_url +[^ ]+/, "") + msg_fields['projectDir'] = workflow.projectDir + msg_fields['summary'] = summary << misc_fields + + // Render the JSON template + def engine = new groovy.text.GStringTemplateEngine() + // Different JSON depending on the service provider + // Defaults to "Adaptive Cards" (https://adaptivecards.io), except Slack which has its own format + def json_path = hook_url.contains("hooks.slack.com") ? "slackreport.json" : "adaptivecard.json" + def hf = new File("${workflow.projectDir}/assets/${json_path}") + def json_template = engine.createTemplate(hf).make(msg_fields) + def json_message = json_template.toString() + + // POST + def post = new URL(hook_url).openConnection(); + post.setRequestMethod("POST") + post.setDoOutput(true) + post.setRequestProperty("Content-Type", "application/json") + post.getOutputStream().write(json_message.getBytes("UTF-8")); + def postRC = post.getResponseCode(); + if (! postRC.equals(200)) { + log.warn(post.getErrorStream().getText()); + } +} diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/meta.yml b/subworkflows/nf-core/utils_nfcore_pipeline/meta.yml new file mode 100644 index 00000000..d08d2434 --- /dev/null +++ b/subworkflows/nf-core/utils_nfcore_pipeline/meta.yml @@ -0,0 +1,24 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/subworkflows/yaml-schema.json +name: "UTILS_NFCORE_PIPELINE" +description: Subworkflow with utility functions specific to the nf-core pipeline template +keywords: + - utility + - pipeline + - initialise + - version +components: [] +input: + - nextflow_cli_args: + type: list + description: | + Nextflow CLI positional arguments +output: + - success: + type: boolean + description: | + Dummy output to indicate success +authors: + - "@adamrtalbot" +maintainers: + - "@adamrtalbot" + - "@maxulysse" diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test new file mode 100644 index 00000000..1dc317f8 --- /dev/null +++ b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test @@ -0,0 +1,134 @@ + +nextflow_function { + + name "Test Functions" + script "../main.nf" + config "subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config" + tag "subworkflows" + tag "subworkflows_nfcore" + tag "utils_nfcore_pipeline" + tag "subworkflows/utils_nfcore_pipeline" + + test("Test Function checkConfigProvided") { + + function "checkConfigProvided" + + then { + assertAll( + { assert function.success }, + { assert snapshot(function.result).match() } + ) + } + } + + test("Test Function checkProfileProvided") { + + function "checkProfileProvided" + + when { + function { + """ + input[0] = [] + """ + } + } + + then { + assertAll( + { assert function.success }, + { assert snapshot(function.result).match() } + ) + } + } + + test("Test Function workflowCitation") { + + function "workflowCitation" + + then { + assertAll( + { assert function.success }, + { assert snapshot(function.result).match() } + ) + } + } + + test("Test Function nfCoreLogo") { + + function "nfCoreLogo" + + when { + function { + """ + input[0] = false + """ + } + } + + then { + assertAll( + { assert function.success }, + { assert snapshot(function.result).match() } + ) + } + } + + test("Test Function dashedLine") { + + function "dashedLine" + + when { + function { + """ + input[0] = false + """ + } + } + + then { + assertAll( + { assert function.success }, + { assert snapshot(function.result).match() } + ) + } + } + + test("Test Function without logColours") { + + function "logColours" + + when { + function { + """ + input[0] = true + """ + } + } + + then { + assertAll( + { assert function.success }, + { assert snapshot(function.result).match() } + ) + } + } + + test("Test Function with logColours") { + function "logColours" + + when { + function { + """ + input[0] = false + """ + } + } + + then { + assertAll( + { assert function.success }, + { assert snapshot(function.result).match() } + ) + } + } +} diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap new file mode 100644 index 00000000..10f948e6 --- /dev/null +++ b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap @@ -0,0 +1,138 @@ +{ + "Test Function checkProfileProvided": { + "content": null, + "timestamp": "2024-02-09T15:43:55.145717" + }, + "Test Function checkConfigProvided": { + "content": [ + true + ], + "timestamp": "2024-01-19T11:34:13.548431224" + }, + "Test Function nfCoreLogo": { + "content": [ + "\n\n-\u001b[2m----------------------------------------------------\u001b[0m-\n \u001b[0;32m,--.\u001b[0;30m/\u001b[0;32m,-.\u001b[0m\n\u001b[0;34m ___ __ __ __ ___ \u001b[0;32m/,-._.--~'\u001b[0m\n\u001b[0;34m |\\ | |__ __ / ` / \\ |__) |__ \u001b[0;33m} {\u001b[0m\n\u001b[0;34m | \\| | \\__, \\__/ | \\ |___ \u001b[0;32m\\`-._,-`-,\u001b[0m\n \u001b[0;32m`._,._,'\u001b[0m\n\u001b[0;35m nextflow_workflow v9.9.9\u001b[0m\n-\u001b[2m----------------------------------------------------\u001b[0m-\n" + ], + "timestamp": "2024-01-19T11:34:38.840454873" + }, + "Test Function workflowCitation": { + "content": [ + "If you use nextflow_workflow for your analysis please cite:\n\n* The pipeline\n https://doi.org/10.5281/zenodo.5070524\n\n* The nf-core framework\n https://doi.org/10.1038/s41587-020-0439-x\n\n* Software dependencies\n https://github.com/nextflow_workflow/blob/master/CITATIONS.md" + ], + "timestamp": "2024-01-19T11:34:22.24352016" + }, + "Test Function without logColours": { + "content": [ + { + "reset": "", + "bold": "", + "dim": "", + "underlined": "", + "blink": "", + "reverse": "", + "hidden": "", + "black": "", + "red": "", + "green": "", + "yellow": "", + "blue": "", + "purple": "", + "cyan": "", + "white": "", + "bblack": "", + "bred": "", + "bgreen": "", + "byellow": "", + "bblue": "", + "bpurple": "", + "bcyan": "", + "bwhite": "", + "ublack": "", + "ured": "", + "ugreen": "", + "uyellow": "", + "ublue": "", + "upurple": "", + "ucyan": "", + "uwhite": "", + "iblack": "", + "ired": "", + "igreen": "", + "iyellow": "", + "iblue": "", + "ipurple": "", + "icyan": "", + "iwhite": "", + "biblack": "", + "bired": "", + "bigreen": "", + "biyellow": "", + "biblue": "", + "bipurple": "", + "bicyan": "", + "biwhite": "" + } + ], + "timestamp": "2024-01-19T11:35:04.418416984" + }, + "Test Function dashedLine": { + "content": [ + "-\u001b[2m----------------------------------------------------\u001b[0m-" + ], + "timestamp": "2024-01-19T11:34:55.420000755" + }, + "Test Function with logColours": { + "content": [ + { + "reset": "\u001b[0m", + "bold": "\u001b[1m", + "dim": "\u001b[2m", + "underlined": "\u001b[4m", + "blink": "\u001b[5m", + "reverse": "\u001b[7m", + "hidden": "\u001b[8m", + "black": "\u001b[0;30m", + "red": "\u001b[0;31m", + "green": "\u001b[0;32m", + "yellow": "\u001b[0;33m", + "blue": "\u001b[0;34m", + "purple": "\u001b[0;35m", + "cyan": "\u001b[0;36m", + "white": "\u001b[0;37m", + "bblack": "\u001b[1;30m", + "bred": "\u001b[1;31m", + "bgreen": "\u001b[1;32m", + "byellow": "\u001b[1;33m", + "bblue": "\u001b[1;34m", + "bpurple": "\u001b[1;35m", + "bcyan": "\u001b[1;36m", + "bwhite": "\u001b[1;37m", + "ublack": "\u001b[4;30m", + "ured": "\u001b[4;31m", + "ugreen": "\u001b[4;32m", + "uyellow": "\u001b[4;33m", + "ublue": "\u001b[4;34m", + "upurple": "\u001b[4;35m", + "ucyan": "\u001b[4;36m", + "uwhite": "\u001b[4;37m", + "iblack": "\u001b[0;90m", + "ired": "\u001b[0;91m", + "igreen": "\u001b[0;92m", + "iyellow": "\u001b[0;93m", + "iblue": "\u001b[0;94m", + "ipurple": "\u001b[0;95m", + "icyan": "\u001b[0;96m", + "iwhite": "\u001b[0;97m", + "biblack": "\u001b[1;90m", + "bired": "\u001b[1;91m", + "bigreen": "\u001b[1;92m", + "biyellow": "\u001b[1;93m", + "biblue": "\u001b[1;94m", + "bipurple": "\u001b[1;95m", + "bicyan": "\u001b[1;96m", + "biwhite": "\u001b[1;97m" + } + ], + "timestamp": "2024-01-19T11:35:13.436366565" + } +} \ No newline at end of file diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test new file mode 100644 index 00000000..8940d32d --- /dev/null +++ b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test @@ -0,0 +1,29 @@ +nextflow_workflow { + + name "Test Workflow UTILS_NFCORE_PIPELINE" + script "../main.nf" + config "subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config" + workflow "UTILS_NFCORE_PIPELINE" + tag "subworkflows" + tag "subworkflows_nfcore" + tag "utils_nfcore_pipeline" + tag "subworkflows/utils_nfcore_pipeline" + + test("Should run without failures") { + + when { + workflow { + """ + input[0] = [] + """ + } + } + + then { + assertAll( + { assert workflow.success }, + { assert snapshot(workflow.out).match() } + ) + } + } +} diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap new file mode 100644 index 00000000..d07ce54c --- /dev/null +++ b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap @@ -0,0 +1,15 @@ +{ + "Should run without failures": { + "content": [ + { + "0": [ + true + ], + "valid_config": [ + true + ] + } + ], + "timestamp": "2024-01-19T11:35:22.538940073" + } +} \ No newline at end of file diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config b/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config new file mode 100644 index 00000000..d0a926bf --- /dev/null +++ b/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config @@ -0,0 +1,9 @@ +manifest { + name = 'nextflow_workflow' + author = """nf-core""" + homePage = 'https://127.0.0.1' + description = """Dummy pipeline""" + nextflowVersion = '!>=23.04.0' + version = '9.9.9' + doi = 'https://doi.org/10.5281/zenodo.5070524' +} diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/tests/tags.yml b/subworkflows/nf-core/utils_nfcore_pipeline/tests/tags.yml new file mode 100644 index 00000000..ac8523c9 --- /dev/null +++ b/subworkflows/nf-core/utils_nfcore_pipeline/tests/tags.yml @@ -0,0 +1,2 @@ +subworkflows/utils_nfcore_pipeline: + - subworkflows/nf-core/utils_nfcore_pipeline/** diff --git a/subworkflows/nf-core/utils_nfvalidation_plugin/main.nf b/subworkflows/nf-core/utils_nfvalidation_plugin/main.nf new file mode 100644 index 00000000..2585b65d --- /dev/null +++ b/subworkflows/nf-core/utils_nfvalidation_plugin/main.nf @@ -0,0 +1,62 @@ +// +// Subworkflow that uses the nf-validation plugin to render help text and parameter summary +// + +/* +======================================================================================== + IMPORT NF-VALIDATION PLUGIN +======================================================================================== +*/ + +include { paramsHelp } from 'plugin/nf-validation' +include { paramsSummaryLog } from 'plugin/nf-validation' +include { validateParameters } from 'plugin/nf-validation' + +/* +======================================================================================== + SUBWORKFLOW DEFINITION +======================================================================================== +*/ + +workflow UTILS_NFVALIDATION_PLUGIN { + + take: + print_help // boolean: print help + workflow_command // string: default commmand used to run pipeline + pre_help_text // string: string to be printed before help text and summary log + post_help_text // string: string to be printed after help text and summary log + validate_params // boolean: validate parameters + schema_filename // path: JSON schema file, null to use default value + + main: + + log.debug "Using schema file: ${schema_filename}" + + // Default values for strings + pre_help_text = pre_help_text ?: '' + post_help_text = post_help_text ?: '' + workflow_command = workflow_command ?: '' + + // + // Print help message if needed + // + if (print_help) { + log.info pre_help_text + paramsHelp(workflow_command, parameters_schema: schema_filename) + post_help_text + System.exit(0) + } + + // + // Print parameter summary to stdout + // + log.info pre_help_text + paramsSummaryLog(workflow, parameters_schema: schema_filename) + post_help_text + + // + // Validate parameters relative to the parameter JSON schema + // + if (validate_params){ + validateParameters(parameters_schema: schema_filename) + } + + emit: + dummy_emit = true +} diff --git a/subworkflows/nf-core/utils_nfvalidation_plugin/meta.yml b/subworkflows/nf-core/utils_nfvalidation_plugin/meta.yml new file mode 100644 index 00000000..3d4a6b04 --- /dev/null +++ b/subworkflows/nf-core/utils_nfvalidation_plugin/meta.yml @@ -0,0 +1,44 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/subworkflows/yaml-schema.json +name: "UTILS_NFVALIDATION_PLUGIN" +description: Use nf-validation to initiate and validate a pipeline +keywords: + - utility + - pipeline + - initialise + - validation +components: [] +input: + - print_help: + type: boolean + description: | + Print help message and exit + - workflow_command: + type: string + description: | + The command to run the workflow e.g. "nextflow run main.nf" + - pre_help_text: + type: string + description: | + Text to print before the help message + - post_help_text: + type: string + description: | + Text to print after the help message + - validate_params: + type: boolean + description: | + Validate the parameters and error if invalid. + - schema_filename: + type: string + description: | + The filename of the schema to validate against. +output: + - dummy_emit: + type: boolean + description: | + Dummy emit to make nf-core subworkflows lint happy +authors: + - "@adamrtalbot" +maintainers: + - "@adamrtalbot" + - "@maxulysse" diff --git a/subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test b/subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test new file mode 100644 index 00000000..517ee54e --- /dev/null +++ b/subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test @@ -0,0 +1,200 @@ +nextflow_workflow { + + name "Test Workflow UTILS_NFVALIDATION_PLUGIN" + script "../main.nf" + workflow "UTILS_NFVALIDATION_PLUGIN" + tag "subworkflows" + tag "subworkflows_nfcore" + tag "plugin/nf-validation" + tag "'plugin/nf-validation'" + tag "utils_nfvalidation_plugin" + tag "subworkflows/utils_nfvalidation_plugin" + + test("Should run nothing") { + + when { + + params { + monochrome_logs = true + test_data = '' + } + + workflow { + """ + help = false + workflow_command = null + pre_help_text = null + post_help_text = null + validate_params = false + schema_filename = "$moduleTestDir/nextflow_schema.json" + + input[0] = help + input[1] = workflow_command + input[2] = pre_help_text + input[3] = post_help_text + input[4] = validate_params + input[5] = schema_filename + """ + } + } + + then { + assertAll( + { assert workflow.success } + ) + } + } + + test("Should run help") { + + + when { + + params { + monochrome_logs = true + test_data = '' + } + workflow { + """ + help = true + workflow_command = null + pre_help_text = null + post_help_text = null + validate_params = false + schema_filename = "$moduleTestDir/nextflow_schema.json" + + input[0] = help + input[1] = workflow_command + input[2] = pre_help_text + input[3] = post_help_text + input[4] = validate_params + input[5] = schema_filename + """ + } + } + + then { + assertAll( + { assert workflow.success }, + { assert workflow.exitStatus == 0 }, + { assert workflow.stdout.any { it.contains('Input/output options') } }, + { assert workflow.stdout.any { it.contains('--outdir') } } + ) + } + } + + test("Should run help with command") { + + when { + + params { + monochrome_logs = true + test_data = '' + } + workflow { + """ + help = true + workflow_command = "nextflow run noorg/doesntexist" + pre_help_text = null + post_help_text = null + validate_params = false + schema_filename = "$moduleTestDir/nextflow_schema.json" + + input[0] = help + input[1] = workflow_command + input[2] = pre_help_text + input[3] = post_help_text + input[4] = validate_params + input[5] = schema_filename + """ + } + } + + then { + assertAll( + { assert workflow.success }, + { assert workflow.exitStatus == 0 }, + { assert workflow.stdout.any { it.contains('nextflow run noorg/doesntexist') } }, + { assert workflow.stdout.any { it.contains('Input/output options') } }, + { assert workflow.stdout.any { it.contains('--outdir') } } + ) + } + } + + test("Should run help with extra text") { + + + when { + + params { + monochrome_logs = true + test_data = '' + } + workflow { + """ + help = true + workflow_command = "nextflow run noorg/doesntexist" + pre_help_text = "pre-help-text" + post_help_text = "post-help-text" + validate_params = false + schema_filename = "$moduleTestDir/nextflow_schema.json" + + input[0] = help + input[1] = workflow_command + input[2] = pre_help_text + input[3] = post_help_text + input[4] = validate_params + input[5] = schema_filename + """ + } + } + + then { + assertAll( + { assert workflow.success }, + { assert workflow.exitStatus == 0 }, + { assert workflow.stdout.any { it.contains('pre-help-text') } }, + { assert workflow.stdout.any { it.contains('nextflow run noorg/doesntexist') } }, + { assert workflow.stdout.any { it.contains('Input/output options') } }, + { assert workflow.stdout.any { it.contains('--outdir') } }, + { assert workflow.stdout.any { it.contains('post-help-text') } } + ) + } + } + + test("Should validate params") { + + when { + + params { + monochrome_logs = true + test_data = '' + outdir = 1 + } + workflow { + """ + help = false + workflow_command = null + pre_help_text = null + post_help_text = null + validate_params = true + schema_filename = "$moduleTestDir/nextflow_schema.json" + + input[0] = help + input[1] = workflow_command + input[2] = pre_help_text + input[3] = post_help_text + input[4] = validate_params + input[5] = schema_filename + """ + } + } + + then { + assertAll( + { assert workflow.failed }, + { assert workflow.stdout.any { it.contains('ERROR ~ ERROR: Validation of pipeline parameters failed!') } } + ) + } + } +} \ No newline at end of file diff --git a/subworkflows/nf-core/utils_nfvalidation_plugin/tests/nextflow_schema.json b/subworkflows/nf-core/utils_nfvalidation_plugin/tests/nextflow_schema.json new file mode 100644 index 00000000..7626c1c9 --- /dev/null +++ b/subworkflows/nf-core/utils_nfvalidation_plugin/tests/nextflow_schema.json @@ -0,0 +1,96 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "https://raw.githubusercontent.com/./master/nextflow_schema.json", + "title": ". pipeline parameters", + "description": "", + "type": "object", + "definitions": { + "input_output_options": { + "title": "Input/output options", + "type": "object", + "fa_icon": "fas fa-terminal", + "description": "Define where the pipeline should find input data and save output data.", + "required": ["outdir"], + "properties": { + "validate_params": { + "type": "boolean", + "description": "Validate parameters?", + "default": true, + "hidden": true + }, + "outdir": { + "type": "string", + "format": "directory-path", + "description": "The output directory where the results will be saved. You have to use absolute paths to storage on Cloud infrastructure.", + "fa_icon": "fas fa-folder-open" + }, + "test_data_base": { + "type": "string", + "default": "https://raw.githubusercontent.com/nf-core/test-datasets/modules", + "description": "Base for test data directory", + "hidden": true + }, + "test_data": { + "type": "string", + "description": "Fake test data param", + "hidden": true + } + } + }, + "generic_options": { + "title": "Generic options", + "type": "object", + "fa_icon": "fas fa-file-import", + "description": "Less common options for the pipeline, typically set in a config file.", + "help_text": "These options are common to all nf-core pipelines and allow you to customise some of the core preferences for how the pipeline runs.\n\nTypically these options would be set in a Nextflow config file loaded for all pipeline runs, such as `~/.nextflow/config`.", + "properties": { + "help": { + "type": "boolean", + "description": "Display help text.", + "fa_icon": "fas fa-question-circle", + "hidden": true + }, + "version": { + "type": "boolean", + "description": "Display version and exit.", + "fa_icon": "fas fa-question-circle", + "hidden": true + }, + "logo": { + "type": "boolean", + "default": true, + "description": "Display nf-core logo in console output.", + "fa_icon": "fas fa-image", + "hidden": true + }, + "singularity_pull_docker_container": { + "type": "boolean", + "description": "Pull Singularity container from Docker?", + "hidden": true + }, + "publish_dir_mode": { + "type": "string", + "default": "copy", + "description": "Method used to save pipeline results to output directory.", + "help_text": "The Nextflow `publishDir` option specifies which intermediate files should be saved to the output directory. This option tells the pipeline what method should be used to move these files. See [Nextflow docs](https://www.nextflow.io/docs/latest/process.html#publishdir) for details.", + "fa_icon": "fas fa-copy", + "enum": ["symlink", "rellink", "link", "copy", "copyNoFollow", "move"], + "hidden": true + }, + "monochrome_logs": { + "type": "boolean", + "description": "Use monochrome_logs", + "hidden": true + } + } + } + }, + "allOf": [ + { + "$ref": "#/definitions/input_output_options" + }, + { + "$ref": "#/definitions/generic_options" + } + ] +} diff --git a/subworkflows/nf-core/utils_nfvalidation_plugin/tests/tags.yml b/subworkflows/nf-core/utils_nfvalidation_plugin/tests/tags.yml new file mode 100644 index 00000000..60b1cfff --- /dev/null +++ b/subworkflows/nf-core/utils_nfvalidation_plugin/tests/tags.yml @@ -0,0 +1,2 @@ +subworkflows/utils_nfvalidation_plugin: + - subworkflows/nf-core/utils_nfvalidation_plugin/** diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index 3bac800f..701d5f7d 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -1,54 +1,15 @@ /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - PRINT PARAMS SUMMARY + IMPORT MODULES / SUBWORKFLOWS / FUNCTIONS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -include { paramsSummaryLog; paramsSummaryMap } from 'plugin/nf-validation' - -def logo = NfcoreTemplate.logo(workflow, params.monochrome_logs) -def citation = '\n' + WorkflowMain.citation(workflow) + '\n' -def summary_params = paramsSummaryMap(workflow) - -// Print parameter summary log to screen -log.info logo + paramsSummaryLog(workflow) + citation - -WorkflowChipseq.initialise(params, log) - -/* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - CONFIG FILES -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -*/ - -ch_multiqc_config = Channel.fromPath("$projectDir/assets/multiqc_config.yml", checkIfExists: true) -ch_multiqc_custom_config = params.multiqc_config ? Channel.fromPath( params.multiqc_config, checkIfExists: true ) : Channel.empty() -ch_multiqc_logo = params.multiqc_logo ? Channel.fromPath( params.multiqc_logo, checkIfExists: true ) : Channel.empty() -ch_multiqc_custom_methods_description = params.multiqc_methods_description ? file(params.multiqc_methods_description, checkIfExists: true) : file("$projectDir/assets/methods_description_template.yml", checkIfExists: true) - -/* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - IMPORT LOCAL MODULES/SUBWORKFLOWS -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -*/ - -// -// SUBWORKFLOW: Consisting of a mix of local and nf-core/modules -// -include { INPUT_CHECK } from '../subworkflows/local/input_check' - -/* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - IMPORT NF-CORE MODULES/SUBWORKFLOWS -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -*/ - -// -// MODULE: Installed directly from nf-core/modules -// -include { FASTQC } from '../modules/nf-core/fastqc/main' -include { MULTIQC } from '../modules/nf-core/multiqc/main' -include { CUSTOM_DUMPSOFTWAREVERSIONS } from '../modules/nf-core/custom/dumpsoftwareversions/main' +include { FASTQC } from '../modules/nf-core/fastqc/main' +include { MULTIQC } from '../modules/nf-core/multiqc/main' +include { paramsSummaryMap } from 'plugin/nf-validation' +include { paramsSummaryMultiqc } from '../subworkflows/nf-core/utils_nfcore_pipeline' +include { softwareVersionsToYAML } from '../subworkflows/nf-core/utils_nfcore_pipeline' +include { methodsDescriptionText } from '../subworkflows/local/utils_nfcore_chipseq_pipeline' /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -56,50 +17,45 @@ include { CUSTOM_DUMPSOFTWAREVERSIONS } from '../modules/nf-core/custom/dumpsoft ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -// Info required for completion email and summary -def multiqc_report = [] - workflow CHIPSEQ { - ch_versions = Channel.empty() + take: + ch_samplesheet // channel: samplesheet read in from --input - // - // SUBWORKFLOW: Read in samplesheet, validate and stage input files - // - INPUT_CHECK ( - file(params.input) - ) - ch_versions = ch_versions.mix(INPUT_CHECK.out.versions) - // TODO: OPTIONAL, you can use nf-validation plugin to create an input channel from the samplesheet with Channel.fromSamplesheet("input") - // See the documentation https://nextflow-io.github.io/nf-validation/samplesheets/fromSamplesheet/ - // ! There is currently no tooling to help you write a sample sheet schema + main: + + ch_versions = Channel.empty() + ch_multiqc_files = Channel.empty() // // MODULE: Run FastQC // FASTQC ( - INPUT_CHECK.out.reads + ch_samplesheet ) + ch_multiqc_files = ch_multiqc_files.mix(FASTQC.out.zip.collect{it[1]}) ch_versions = ch_versions.mix(FASTQC.out.versions.first()) - CUSTOM_DUMPSOFTWAREVERSIONS ( - ch_versions.unique().collectFile(name: 'collated_versions.yml') - ) + // + // Collate and save software versions + // + softwareVersionsToYAML(ch_versions) + .collectFile(storeDir: "${params.outdir}/pipeline_info", name: 'nf_core_pipeline_software_mqc_versions.yml', sort: true, newLine: true) + .set { ch_collated_versions } // // MODULE: MultiQC // - workflow_summary = WorkflowChipseq.paramsSummaryMultiqc(workflow, summary_params) - ch_workflow_summary = Channel.value(workflow_summary) - - methods_description = WorkflowChipseq.methodsDescriptionText(workflow, ch_multiqc_custom_methods_description, params) - ch_methods_description = Channel.value(methods_description) - - ch_multiqc_files = Channel.empty() - ch_multiqc_files = ch_multiqc_files.mix(ch_workflow_summary.collectFile(name: 'workflow_summary_mqc.yaml')) - ch_multiqc_files = ch_multiqc_files.mix(ch_methods_description.collectFile(name: 'methods_description_mqc.yaml')) - ch_multiqc_files = ch_multiqc_files.mix(CUSTOM_DUMPSOFTWAREVERSIONS.out.mqc_yml.collect()) - ch_multiqc_files = ch_multiqc_files.mix(FASTQC.out.zip.collect{it[1]}.ifEmpty([])) + ch_multiqc_config = Channel.fromPath("$projectDir/assets/multiqc_config.yml", checkIfExists: true) + ch_multiqc_custom_config = params.multiqc_config ? Channel.fromPath(params.multiqc_config, checkIfExists: true) : Channel.empty() + ch_multiqc_logo = params.multiqc_logo ? Channel.fromPath(params.multiqc_logo, checkIfExists: true) : Channel.empty() + summary_params = paramsSummaryMap(workflow, parameters_schema: "nextflow_schema.json") + ch_workflow_summary = Channel.value(paramsSummaryMultiqc(summary_params)) + ch_multiqc_custom_methods_description = params.multiqc_methods_description ? file(params.multiqc_methods_description, checkIfExists: true) : file("$projectDir/assets/methods_description_template.yml", checkIfExists: true) + ch_methods_description = Channel.value(methodsDescriptionText(ch_multiqc_custom_methods_description)) + ch_multiqc_files = ch_multiqc_files.mix(ch_workflow_summary.collectFile(name: 'workflow_summary_mqc.yaml')) + ch_multiqc_files = ch_multiqc_files.mix(ch_collated_versions) + ch_multiqc_files = ch_multiqc_files.mix(ch_methods_description.collectFile(name: 'methods_description_mqc.yaml', sort: false)) MULTIQC ( ch_multiqc_files.collect(), @@ -107,31 +63,10 @@ workflow CHIPSEQ { ch_multiqc_custom_config.toList(), ch_multiqc_logo.toList() ) - multiqc_report = MULTIQC.out.report.toList() -} - -/* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - COMPLETION EMAIL AND SUMMARY -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -*/ - -workflow.onComplete { - if (params.email || params.email_on_fail) { - NfcoreTemplate.email(workflow, params, summary_params, projectDir, log, multiqc_report) - } - NfcoreTemplate.dump_parameters(workflow, params) - NfcoreTemplate.summary(workflow, params, log) - if (params.hook_url) { - NfcoreTemplate.IM_notification(workflow, params, summary_params, projectDir, log) - } -} -workflow.onError { - if (workflow.errorReport.contains("Process requirement exceeds available memory")) { - println("🛑 Default resources exceed availability 🛑 ") - println("💡 See here on how to configure pipeline: https://nf-co.re/docs/usage/configuration#tuning-workflow-resources 💡") - } + emit: + multiqc_report = MULTIQC.out.report.toList() // channel: /path/to/multiqc_report.html + versions = ch_versions // channel: [ path(versions.yml) ] } /* From e0e87f4a8203e81e2c763866d511d75c737892b4 Mon Sep 17 00:00:00 2001 From: nf-core-bot Date: Thu, 29 Feb 2024 16:09:49 +0000 Subject: [PATCH 139/201] Template update for nf-core/tools version 2.13.1 --- .devcontainer/devcontainer.json | 10 +---- .github/CONTRIBUTING.md | 14 ++++--- .github/PULL_REQUEST_TEMPLATE.md | 2 +- .github/workflows/awsfulltest.yml | 4 +- .github/workflows/awstest.yml | 4 +- .github/workflows/ci.yml | 2 +- .github/workflows/download_pipeline.yml | 2 +- .github/workflows/linting.yml | 2 +- .github/workflows/release-announcements.yml | 2 +- .gitpod.yml | 6 +-- README.md | 3 +- modules.json | 8 ++-- modules/nf-core/multiqc/environment.yml | 2 +- modules/nf-core/multiqc/main.nf | 4 +- .../nf-core/multiqc/tests/main.nf.test.snap | 12 +++--- .../utils_nfcore_chipseq_pipeline/main.nf | 10 +++-- .../tests/main.function.nf.test | 2 +- .../tests/main.function.nf.test.snap | 12 +++++- .../tests/main.workflow.nf.test | 20 ++------- .../tests/nextflow.config | 2 +- .../tests/main.function.nf.test.snap | 42 +++++++++++++++---- .../tests/main.workflow.nf.test.snap | 6 ++- .../tests/main.nf.test | 2 +- 23 files changed, 99 insertions(+), 74 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 4ecfbfe3..b290e090 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -10,15 +10,7 @@ "vscode": { // Set *default* container specific settings.json values on container create. "settings": { - "python.defaultInterpreterPath": "/opt/conda/bin/python", - "python.linting.enabled": true, - "python.linting.pylintEnabled": true, - "python.formatting.autopep8Path": "/opt/conda/bin/autopep8", - "python.formatting.yapfPath": "/opt/conda/bin/yapf", - "python.linting.flake8Path": "/opt/conda/bin/flake8", - "python.linting.pycodestylePath": "/opt/conda/bin/pycodestyle", - "python.linting.pydocstylePath": "/opt/conda/bin/pydocstyle", - "python.linting.pylintPath": "/opt/conda/bin/pylint" + "python.defaultInterpreterPath": "/opt/conda/bin/python" }, // Add the IDs of extensions you want installed when the container is created. diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 9eb44ff7..3b9272be 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -9,9 +9,8 @@ Please use the pre-filled template to save time. However, don't be put off by this template - other more general issues and suggestions are welcome! Contributions to the code are even more welcome ;) -:::info -If you need help using or modifying nf-core/chipseq then the best place to ask is on the nf-core Slack [#chipseq](https://nfcore.slack.com/channels/chipseq) channel ([join our Slack here](https://nf-co.re/join/slack)). -::: +> [!NOTE] +> If you need help using or modifying nf-core/chipseq then the best place to ask is on the nf-core Slack [#chipseq](https://nfcore.slack.com/channels/chipseq) channel ([join our Slack here](https://nf-co.re/join/slack)). ## Contribution workflow @@ -27,8 +26,11 @@ If you're not used to this workflow with git, you can start with some [docs from ## Tests -You can optionally test your changes by running the pipeline locally. Then it is recommended to use the `debug` profile to -receive warnings about process selectors and other debug info. Example: `nextflow run . -profile debug,test,docker --outdir `. +You have the option to test your changes locally by running the pipeline. For receiving warnings about process selectors and other `debug` information, it is recommended to use the debug profile. Execute all the tests with the following command: + +```bash +nf-test test --profile debug,test,docker --verbose +``` When you create a pull request with changes, [GitHub Actions](https://github.com/features/actions) will run automatic tests. Typically, pull-requests are only fully reviewed when these tests are passing, though of course we can help out before then. @@ -90,7 +92,7 @@ Once there, use `nf-core schema build` to add to `nextflow_schema.json`. Sensible defaults for process resource requirements (CPUs / memory / time) for a process should be defined in `conf/base.config`. These should generally be specified generic with `withLabel:` selectors so they can be shared across multiple processes/steps of the pipeline. A nf-core standard set of labels that should be followed where possible can be seen in the [nf-core pipeline template](https://github.com/nf-core/tools/blob/master/nf_core/pipeline-template/conf/base.config), which has the default process as a single core-process, and then different levels of multi-core configurations for increasingly large memory requirements defined with standardised labels. -The process resources can be passed on to the tool dynamically within the process with the `${task.cpu}` and `${task.memory}` variables in the `script:` block. +The process resources can be passed on to the tool dynamically within the process with the `${task.cpus}` and `${task.memory}` variables in the `script:` block. ### Naming schemes diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 4cd6ca4f..be71c340 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -18,7 +18,7 @@ Learn more about contributing: [CONTRIBUTING.md](https://github.com/nf-core/chip - [ ] If you've added a new tool - have you followed the pipeline conventions in the [contribution docs](https://github.com/nf-core/chipseq/tree/master/.github/CONTRIBUTING.md) - [ ] If necessary, also make a PR on the nf-core/chipseq _branch_ on the [nf-core/test-datasets](https://github.com/nf-core/test-datasets) repository. - [ ] Make sure your code lints (`nf-core lint`). -- [ ] Ensure the test suite passes (`nextflow run . -profile test,docker --outdir `). +- [ ] Ensure the test suite passes (`nf-test test main.nf.test -profile test,docker`). - [ ] Check for unexpected warnings in debug mode (`nextflow run . -profile debug,test,docker --outdir `). - [ ] Usage Documentation in `docs/usage.md` is updated. - [ ] Output Documentation in `docs/output.md` is updated. diff --git a/.github/workflows/awsfulltest.yml b/.github/workflows/awsfulltest.yml index 1ad5c4e1..1aacf8b4 100644 --- a/.github/workflows/awsfulltest.yml +++ b/.github/workflows/awsfulltest.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Launch workflow via tower - uses: seqeralabs/action-tower-launch@922e5c8d5ac4e918107ec311d2ebbd65e5982b3d # v2 + uses: seqeralabs/action-tower-launch@v2 # TODO nf-core: You can customise AWS full pipeline tests as required # Add full size test data (but still relatively small datasets for few samples) # on the `test_full.config` test runs with only one set of parameters @@ -31,7 +31,7 @@ jobs: } profiles: test_full - - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4 + - uses: actions/upload-artifact@v4 with: name: Tower debug log file path: | diff --git a/.github/workflows/awstest.yml b/.github/workflows/awstest.yml index a854fd23..13edafbc 100644 --- a/.github/workflows/awstest.yml +++ b/.github/workflows/awstest.yml @@ -12,7 +12,7 @@ jobs: steps: # Launch workflow using Tower CLI tool action - name: Launch workflow via tower - uses: seqeralabs/action-tower-launch@922e5c8d5ac4e918107ec311d2ebbd65e5982b3d # v2 + uses: seqeralabs/action-tower-launch@v2 with: workspace_id: ${{ secrets.TOWER_WORKSPACE_ID }} access_token: ${{ secrets.TOWER_ACCESS_TOKEN }} @@ -25,7 +25,7 @@ jobs: } profiles: test - - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4 + - uses: actions/upload-artifact@v4 with: name: Tower debug log file path: | diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 65c68a76..f1a02e20 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -31,7 +31,7 @@ jobs: uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - name: Install Nextflow - uses: nf-core/setup-nextflow@b9f764e8ba5c76b712ace14ecbfcef0e40ae2dd8 # v1 + uses: nf-core/setup-nextflow@v1 with: version: "${{ matrix.NXF_VER }}" diff --git a/.github/workflows/download_pipeline.yml b/.github/workflows/download_pipeline.yml index f823210d..08622fd5 100644 --- a/.github/workflows/download_pipeline.yml +++ b/.github/workflows/download_pipeline.yml @@ -28,7 +28,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Install Nextflow - uses: nf-core/setup-nextflow@b9f764e8ba5c76b712ace14ecbfcef0e40ae2dd8 # v1 + uses: nf-core/setup-nextflow@v1 - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5 with: diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 748b4311..073e1876 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -35,7 +35,7 @@ jobs: uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - name: Install Nextflow - uses: nf-core/setup-nextflow@b9f764e8ba5c76b712ace14ecbfcef0e40ae2dd8 # v1 + uses: nf-core/setup-nextflow@v1 - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5 with: diff --git a/.github/workflows/release-announcements.yml b/.github/workflows/release-announcements.yml index c3674af2..d468aeaa 100644 --- a/.github/workflows/release-announcements.yml +++ b/.github/workflows/release-announcements.yml @@ -12,7 +12,7 @@ jobs: - name: get topics and convert to hashtags id: get_topics run: | - curl -s https://nf-co.re/pipelines.json | jq -r '.remote_workflows[] | select(.name == "${{ github.repository }}") | .topics[]' | awk '{print "#"$0}' | tr '\n' ' ' > $GITHUB_OUTPUT + curl -s https://nf-co.re/pipelines.json | jq -r '.remote_workflows[] | select(.full_name == "${{ github.repository }}") | .topics[]' | awk '{print "#"$0}' | tr '\n' ' ' >> $GITHUB_OUTPUT - uses: rzr/fediverse-action@master with: diff --git a/.gitpod.yml b/.gitpod.yml index 363d5b1d..105a1821 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -10,13 +10,11 @@ tasks: vscode: extensions: # based on nf-core.nf-core-extensionpack - - codezombiech.gitignore # Language support for .gitignore files - # - cssho.vscode-svgviewer # SVG viewer - esbenp.prettier-vscode # Markdown/CommonMark linting and style checking for Visual Studio Code - - eamodio.gitlens # Quickly glimpse into whom, why, and when a line or code block was changed - EditorConfig.EditorConfig # override user/workspace settings with settings found in .editorconfig files - Gruntfuggly.todo-tree # Display TODO and FIXME in a tree view in the activity bar - mechatroner.rainbow-csv # Highlight columns in csv files in different colors - # - nextflow.nextflow # Nextflow syntax highlighting + # - nextflow.nextflow # Nextflow syntax highlighting - oderwat.indent-rainbow # Highlight indentation level - streetsidesoftware.code-spell-checker # Spelling checker for source code + - charliermarsh.ruff # Code linter Ruff diff --git a/README.md b/README.md index e2d34527..939480bd 100644 --- a/README.md +++ b/README.md @@ -7,12 +7,13 @@ [![GitHub Actions CI Status](https://github.com/nf-core/chipseq/actions/workflows/ci.yml/badge.svg)](https://github.com/nf-core/chipseq/actions/workflows/ci.yml) [![GitHub Actions Linting Status](https://github.com/nf-core/chipseq/actions/workflows/linting.yml/badge.svg)](https://github.com/nf-core/chipseq/actions/workflows/linting.yml)[![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?labelColor=000000&logo=Amazon%20AWS)](https://nf-co.re/chipseq/results)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.XXXXXXX) +[![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com) [![Nextflow](https://img.shields.io/badge/nextflow%20DSL2-%E2%89%A523.04.0-23aa62.svg)](https://www.nextflow.io/) [![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/) [![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/) [![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/) -[![Launch on Nextflow Tower](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Nextflow%20Tower-%234256e7)](https://tower.nf/launch?pipeline=https://github.com/nf-core/chipseq) +[![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://tower.nf/launch?pipeline=https://github.com/nf-core/chipseq) [![Get help on Slack](http://img.shields.io/badge/slack-nf--core%20%23chipseq-4A154B?labelColor=000000&logo=slack)](https://nfcore.slack.com/channels/chipseq)[![Follow on Twitter](http://img.shields.io/badge/twitter-%40nf__core-1DA1F2?labelColor=000000&logo=twitter)](https://twitter.com/nf_core)[![Follow on Mastodon](https://img.shields.io/badge/mastodon-nf__core-6364ff?labelColor=FFFFFF&logo=mastodon)](https://mstdn.science/@nf_core)[![Watch on YouTube](http://img.shields.io/badge/youtube-nf--core-FF0000?labelColor=000000&logo=youtube)](https://www.youtube.com/c/nf-core) diff --git a/modules.json b/modules.json index a7082c3e..f36b13b2 100644 --- a/modules.json +++ b/modules.json @@ -12,7 +12,7 @@ }, "multiqc": { "branch": "master", - "git_sha": "ccacf6f5de6df3bc6d73b665c1fd2933d8bbc290", + "git_sha": "b7ebe95761cd389603f9cc0e0dc384c0f663815a", "installed_by": ["modules"] } } @@ -21,17 +21,17 @@ "nf-core": { "utils_nextflow_pipeline": { "branch": "master", - "git_sha": "cd08c91373cd00a73255081340e4914485846ba1", + "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", "installed_by": ["subworkflows"] }, "utils_nfcore_pipeline": { "branch": "master", - "git_sha": "262b17ed2aad591039f914951659177e6c39a8d8", + "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", "installed_by": ["subworkflows"] }, "utils_nfvalidation_plugin": { "branch": "master", - "git_sha": "cd08c91373cd00a73255081340e4914485846ba1", + "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", "installed_by": ["subworkflows"] } } diff --git a/modules/nf-core/multiqc/environment.yml b/modules/nf-core/multiqc/environment.yml index 2212096a..ca39fb67 100644 --- a/modules/nf-core/multiqc/environment.yml +++ b/modules/nf-core/multiqc/environment.yml @@ -4,4 +4,4 @@ channels: - bioconda - defaults dependencies: - - bioconda::multiqc=1.20 + - bioconda::multiqc=1.21 diff --git a/modules/nf-core/multiqc/main.nf b/modules/nf-core/multiqc/main.nf index 354f4430..47ac352f 100644 --- a/modules/nf-core/multiqc/main.nf +++ b/modules/nf-core/multiqc/main.nf @@ -3,8 +3,8 @@ process MULTIQC { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/multiqc:1.20--pyhdfd78af_0' : - 'biocontainers/multiqc:1.20--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/multiqc:1.21--pyhdfd78af_0' : + 'biocontainers/multiqc:1.21--pyhdfd78af_0' }" input: path multiqc_files, stageAs: "?/*" diff --git a/modules/nf-core/multiqc/tests/main.nf.test.snap b/modules/nf-core/multiqc/tests/main.nf.test.snap index c204b488..bfebd802 100644 --- a/modules/nf-core/multiqc/tests/main.nf.test.snap +++ b/modules/nf-core/multiqc/tests/main.nf.test.snap @@ -2,14 +2,14 @@ "multiqc_versions_single": { "content": [ [ - "versions.yml:md5,d320d4c37e349c5588e07e7a31cd4186" + "versions.yml:md5,21f35ee29416b9b3073c28733efe4b7d" ] ], "meta": { "nf-test": "0.8.4", "nextflow": "23.10.1" }, - "timestamp": "2024-02-14T09:28:51.744211298" + "timestamp": "2024-02-29T08:48:55.657331" }, "multiqc_stub": { "content": [ @@ -17,25 +17,25 @@ "multiqc_report.html", "multiqc_data", "multiqc_plots", - "versions.yml:md5,d320d4c37e349c5588e07e7a31cd4186" + "versions.yml:md5,21f35ee29416b9b3073c28733efe4b7d" ] ], "meta": { "nf-test": "0.8.4", "nextflow": "23.10.1" }, - "timestamp": "2024-02-14T09:29:28.847433492" + "timestamp": "2024-02-29T08:49:49.071937" }, "multiqc_versions_config": { "content": [ [ - "versions.yml:md5,d320d4c37e349c5588e07e7a31cd4186" + "versions.yml:md5,21f35ee29416b9b3073c28733efe4b7d" ] ], "meta": { "nf-test": "0.8.4", "nextflow": "23.10.1" }, - "timestamp": "2024-02-14T09:29:13.223621555" + "timestamp": "2024-02-29T08:49:25.457567" } } \ No newline at end of file diff --git a/subworkflows/local/utils_nfcore_chipseq_pipeline/main.nf b/subworkflows/local/utils_nfcore_chipseq_pipeline/main.nf index dc90ad90..b5620604 100644 --- a/subworkflows/local/utils_nfcore_chipseq_pipeline/main.nf +++ b/subworkflows/local/utils_nfcore_chipseq_pipeline/main.nf @@ -1,5 +1,5 @@ // -// Subworkflow with functionality specific to the nf-core/pipeline pipeline +// Subworkflow with functionality specific to the nf-core/chipseq pipeline // /* @@ -152,7 +152,9 @@ workflow PIPELINE_COMPLETION { // def validateInputParameters() { genomeExistsError() -}// +} + +// // Validate channels from input samplesheet // def validateInputSamplesheet(input) { @@ -190,7 +192,9 @@ def genomeExistsError() { "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" error(error_string) } -}// +} + +// // Generate methods description for MultiQC // def toolCitationText() { diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test b/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test index 8ed4310c..68718e4f 100644 --- a/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test +++ b/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test @@ -51,4 +51,4 @@ nextflow_function { ) } } -} \ No newline at end of file +} diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap b/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap index db2030f8..e3f0baf4 100644 --- a/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap +++ b/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap @@ -3,10 +3,18 @@ "content": [ "v9.9.9" ], - "timestamp": "2024-01-19T11:32:36.031083" + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:02:05.308243" }, "Test Function checkCondaChannels": { "content": null, - "timestamp": "2024-01-19T11:32:50.456" + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:02:12.425833" } } \ No newline at end of file diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test b/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test index f7c54bc6..ca964ce8 100644 --- a/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test +++ b/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test @@ -11,9 +11,6 @@ nextflow_workflow { test("Should run no inputs") { when { - params { - outdir = "tests/results" - } workflow { """ print_version = false @@ -39,9 +36,6 @@ nextflow_workflow { test("Should print version") { when { - params { - outdir = "tests/results" - } workflow { """ print_version = true @@ -68,19 +62,16 @@ nextflow_workflow { test("Should dump params") { when { - params { - outdir = "$outputDir" - } workflow { """ print_version = false dump_parameters = true - outdir = params.outdir + outdir = 'results' check_conda_channels = false input[0] = false input[1] = true - input[2] = params.outdir + input[2] = outdir input[3] = false """ } @@ -96,19 +87,16 @@ nextflow_workflow { test("Should not create params JSON if no output directory") { when { - params { - outdir = "$outputDir" - } workflow { """ print_version = false dump_parameters = true - outdir = params.outdir + outdir = null check_conda_channels = false input[0] = false input[1] = true - input[2] = null + input[2] = outdir input[3] = false """ } diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config b/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config index 53574ffe..d0a926bf 100644 --- a/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config +++ b/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config @@ -6,4 +6,4 @@ manifest { nextflowVersion = '!>=23.04.0' version = '9.9.9' doi = 'https://doi.org/10.5281/zenodo.5070524' -} \ No newline at end of file +} diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap index 10f948e6..1037232c 100644 --- a/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap +++ b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap @@ -1,25 +1,41 @@ { "Test Function checkProfileProvided": { "content": null, - "timestamp": "2024-02-09T15:43:55.145717" + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:03:03.360873" }, "Test Function checkConfigProvided": { "content": [ true ], - "timestamp": "2024-01-19T11:34:13.548431224" + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:02:59.729647" }, "Test Function nfCoreLogo": { "content": [ "\n\n-\u001b[2m----------------------------------------------------\u001b[0m-\n \u001b[0;32m,--.\u001b[0;30m/\u001b[0;32m,-.\u001b[0m\n\u001b[0;34m ___ __ __ __ ___ \u001b[0;32m/,-._.--~'\u001b[0m\n\u001b[0;34m |\\ | |__ __ / ` / \\ |__) |__ \u001b[0;33m} {\u001b[0m\n\u001b[0;34m | \\| | \\__, \\__/ | \\ |___ \u001b[0;32m\\`-._,-`-,\u001b[0m\n \u001b[0;32m`._,._,'\u001b[0m\n\u001b[0;35m nextflow_workflow v9.9.9\u001b[0m\n-\u001b[2m----------------------------------------------------\u001b[0m-\n" ], - "timestamp": "2024-01-19T11:34:38.840454873" + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:03:10.562934" }, "Test Function workflowCitation": { "content": [ "If you use nextflow_workflow for your analysis please cite:\n\n* The pipeline\n https://doi.org/10.5281/zenodo.5070524\n\n* The nf-core framework\n https://doi.org/10.1038/s41587-020-0439-x\n\n* Software dependencies\n https://github.com/nextflow_workflow/blob/master/CITATIONS.md" ], - "timestamp": "2024-01-19T11:34:22.24352016" + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:03:07.019761" }, "Test Function without logColours": { "content": [ @@ -73,13 +89,21 @@ "biwhite": "" } ], - "timestamp": "2024-01-19T11:35:04.418416984" + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:03:17.969323" }, "Test Function dashedLine": { "content": [ "-\u001b[2m----------------------------------------------------\u001b[0m-" ], - "timestamp": "2024-01-19T11:34:55.420000755" + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:03:14.366181" }, "Test Function with logColours": { "content": [ @@ -133,6 +157,10 @@ "biwhite": "\u001b[1;97m" } ], - "timestamp": "2024-01-19T11:35:13.436366565" + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:03:21.714424" } } \ No newline at end of file diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap index d07ce54c..859d1030 100644 --- a/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap +++ b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap @@ -10,6 +10,10 @@ ] } ], - "timestamp": "2024-01-19T11:35:22.538940073" + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:03:25.726491" } } \ No newline at end of file diff --git a/subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test b/subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test index 517ee54e..5784a33f 100644 --- a/subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test +++ b/subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test @@ -197,4 +197,4 @@ nextflow_workflow { ) } } -} \ No newline at end of file +} From a81ee331e528280294f581d594c5c80bdb48d53e Mon Sep 17 00:00:00 2001 From: nf-core-bot Date: Wed, 8 May 2024 13:58:04 +0000 Subject: [PATCH 140/201] Template update for nf-core/tools version 2.14.0 --- .editorconfig | 6 +- .github/PULL_REQUEST_TEMPLATE.md | 2 +- .github/workflows/awsfulltest.yml | 10 +- .github/workflows/awstest.yml | 12 +- .github/workflows/ci.yml | 4 +- .github/workflows/download_pipeline.yml | 22 ++- .github/workflows/fix-linting.yml | 6 +- .github/workflows/linting.yml | 18 +- .github/workflows/linting_comment.yml | 2 +- .github/workflows/release-announcements.yml | 6 +- .nf-core.yml | 1 + .pre-commit-config.yaml | 3 + README.md | 2 +- conf/base.config | 3 - conf/modules.config | 8 - conf/test.config | 2 +- conf/test_full.config | 2 +- docs/usage.md | 2 + modules.json | 4 +- modules/nf-core/fastqc/main.nf | 6 + nextflow.config | 176 +++++++++--------- nextflow_schema.json | 7 + pyproject.toml | 15 -- .../utils_nfcore_chipseq_pipeline/main.nf | 16 +- .../nf-core/utils_nfcore_pipeline/main.nf | 8 +- workflows/chipseq.nf | 46 +++-- 26 files changed, 220 insertions(+), 169 deletions(-) delete mode 100644 pyproject.toml diff --git a/.editorconfig b/.editorconfig index dd9ffa53..72dda289 100644 --- a/.editorconfig +++ b/.editorconfig @@ -28,10 +28,6 @@ indent_style = unset [/assets/email*] indent_size = unset -# ignore Readme -[README.md] -indent_style = unset - -# ignore python +# ignore python and markdown [*.{py,md}] indent_style = unset diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index be71c340..4cd6ca4f 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -18,7 +18,7 @@ Learn more about contributing: [CONTRIBUTING.md](https://github.com/nf-core/chip - [ ] If you've added a new tool - have you followed the pipeline conventions in the [contribution docs](https://github.com/nf-core/chipseq/tree/master/.github/CONTRIBUTING.md) - [ ] If necessary, also make a PR on the nf-core/chipseq _branch_ on the [nf-core/test-datasets](https://github.com/nf-core/test-datasets) repository. - [ ] Make sure your code lints (`nf-core lint`). -- [ ] Ensure the test suite passes (`nf-test test main.nf.test -profile test,docker`). +- [ ] Ensure the test suite passes (`nextflow run . -profile test,docker --outdir `). - [ ] Check for unexpected warnings in debug mode (`nextflow run . -profile debug,test,docker --outdir `). - [ ] Usage Documentation in `docs/usage.md` is updated. - [ ] Output Documentation in `docs/output.md` is updated. diff --git a/.github/workflows/awsfulltest.yml b/.github/workflows/awsfulltest.yml index 1aacf8b4..077f31a6 100644 --- a/.github/workflows/awsfulltest.yml +++ b/.github/workflows/awsfulltest.yml @@ -8,12 +8,12 @@ on: types: [published] workflow_dispatch: jobs: - run-tower: + run-platform: name: Run AWS full tests if: github.repository == 'nf-core/chipseq' runs-on: ubuntu-latest steps: - - name: Launch workflow via tower + - name: Launch workflow via Seqera Platform uses: seqeralabs/action-tower-launch@v2 # TODO nf-core: You can customise AWS full pipeline tests as required # Add full size test data (but still relatively small datasets for few samples) @@ -33,7 +33,7 @@ jobs: - uses: actions/upload-artifact@v4 with: - name: Tower debug log file + name: Seqera Platform debug log file path: | - tower_action_*.log - tower_action_*.json + seqera_platform_action_*.log + seqera_platform_action_*.json diff --git a/.github/workflows/awstest.yml b/.github/workflows/awstest.yml index 13edafbc..bf518006 100644 --- a/.github/workflows/awstest.yml +++ b/.github/workflows/awstest.yml @@ -5,13 +5,13 @@ name: nf-core AWS test on: workflow_dispatch: jobs: - run-tower: + run-platform: name: Run AWS tests if: github.repository == 'nf-core/chipseq' runs-on: ubuntu-latest steps: - # Launch workflow using Tower CLI tool action - - name: Launch workflow via tower + # Launch workflow using Seqera Platform CLI tool action + - name: Launch workflow via Seqera Platform uses: seqeralabs/action-tower-launch@v2 with: workspace_id: ${{ secrets.TOWER_WORKSPACE_ID }} @@ -27,7 +27,7 @@ jobs: - uses: actions/upload-artifact@v4 with: - name: Tower debug log file + name: Seqera Platform debug log file path: | - tower_action_*.log - tower_action_*.json + seqera_platform_action_*.log + seqera_platform_action_*.json diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f1a02e20..ec824da3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,10 +28,10 @@ jobs: - "latest-everything" steps: - name: Check out pipeline code - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 - name: Install Nextflow - uses: nf-core/setup-nextflow@v1 + uses: nf-core/setup-nextflow@v2 with: version: "${{ matrix.NXF_VER }}" diff --git a/.github/workflows/download_pipeline.yml b/.github/workflows/download_pipeline.yml index 08622fd5..2d20d644 100644 --- a/.github/workflows/download_pipeline.yml +++ b/.github/workflows/download_pipeline.yml @@ -14,6 +14,8 @@ on: pull_request: types: - opened + - edited + - synchronize branches: - master pull_request_target: @@ -28,11 +30,14 @@ jobs: runs-on: ubuntu-latest steps: - name: Install Nextflow - uses: nf-core/setup-nextflow@v1 + uses: nf-core/setup-nextflow@v2 - - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5 + - name: Disk space cleanup + uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1 + + - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 with: - python-version: "3.11" + python-version: "3.12" architecture: "x64" - uses: eWaterCycle/setup-singularity@931d4e31109e875b13309ae1d07c70ca8fbc8537 # v7 with: @@ -65,8 +70,17 @@ jobs: - name: Inspect download run: tree ./${{ env.REPOTITLE_LOWERCASE }} - - name: Run the downloaded pipeline + - name: Run the downloaded pipeline (stub) + id: stub_run_pipeline + continue-on-error: true env: NXF_SINGULARITY_CACHEDIR: ./ NXF_SINGULARITY_HOME_MOUNT: true run: nextflow run ./${{ env.REPOTITLE_LOWERCASE }}/$( sed 's/\W/_/g' <<< ${{ env.REPO_BRANCH }}) -stub -profile test,singularity --outdir ./results + - name: Run the downloaded pipeline (stub run not supported) + id: run_pipeline + if: ${{ job.steps.stub_run_pipeline.status == failure() }} + env: + NXF_SINGULARITY_CACHEDIR: ./ + NXF_SINGULARITY_HOME_MOUNT: true + run: nextflow run ./${{ env.REPOTITLE_LOWERCASE }}/$( sed 's/\W/_/g' <<< ${{ env.REPO_BRANCH }}) -profile test,singularity --outdir ./results diff --git a/.github/workflows/fix-linting.yml b/.github/workflows/fix-linting.yml index d7e08c32..7b84c0be 100644 --- a/.github/workflows/fix-linting.yml +++ b/.github/workflows/fix-linting.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: # Use the @nf-core-bot token to check out so we can push later - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 + - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 with: token: ${{ secrets.nf_core_bot_auth_token }} @@ -32,9 +32,9 @@ jobs: GITHUB_TOKEN: ${{ secrets.nf_core_bot_auth_token }} # Install and run pre-commit - - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5 + - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 with: - python-version: 3.11 + python-version: "3.12" - name: Install pre-commit run: pip install pre-commit diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 073e1876..a3fb2541 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -14,12 +14,12 @@ jobs: pre-commit: runs-on: ubuntu-latest steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 + - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 - - name: Set up Python 3.11 - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5 + - name: Set up Python 3.12 + uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 with: - python-version: 3.11 + python-version: "3.12" cache: "pip" - name: Install pre-commit @@ -32,14 +32,14 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out pipeline code - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 - name: Install Nextflow - uses: nf-core/setup-nextflow@v1 + uses: nf-core/setup-nextflow@v2 - - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5 + - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 with: - python-version: "3.11" + python-version: "3.12" architecture: "x64" - name: Install dependencies @@ -60,7 +60,7 @@ jobs: - name: Upload linting log file artifact if: ${{ always() }} - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4 + uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4 with: name: linting-logs path: | diff --git a/.github/workflows/linting_comment.yml b/.github/workflows/linting_comment.yml index b706875f..40acc23f 100644 --- a/.github/workflows/linting_comment.yml +++ b/.github/workflows/linting_comment.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Download lint results - uses: dawidd6/action-download-artifact@f6b0bace624032e30a85a8fd9c1a7f8f611f5737 # v3 + uses: dawidd6/action-download-artifact@09f2f74827fd3a8607589e5ad7f9398816f540fe # v3 with: workflow: linting.yml workflow_conclusion: completed diff --git a/.github/workflows/release-announcements.yml b/.github/workflows/release-announcements.yml index d468aeaa..03ecfcf7 100644 --- a/.github/workflows/release-announcements.yml +++ b/.github/workflows/release-announcements.yml @@ -12,7 +12,7 @@ jobs: - name: get topics and convert to hashtags id: get_topics run: | - curl -s https://nf-co.re/pipelines.json | jq -r '.remote_workflows[] | select(.full_name == "${{ github.repository }}") | .topics[]' | awk '{print "#"$0}' | tr '\n' ' ' >> $GITHUB_OUTPUT + echo "topics=$(curl -s https://nf-co.re/pipelines.json | jq -r '.remote_workflows[] | select(.full_name == "${{ github.repository }}") | .topics[]' | awk '{print "#"$0}' | tr '\n' ' ')" >> $GITHUB_OUTPUT - uses: rzr/fediverse-action@master with: @@ -25,13 +25,13 @@ jobs: Please see the changelog: ${{ github.event.release.html_url }} - ${{ steps.get_topics.outputs.GITHUB_OUTPUT }} #nfcore #openscience #nextflow #bioinformatics + ${{ steps.get_topics.outputs.topics }} #nfcore #openscience #nextflow #bioinformatics send-tweet: runs-on: ubuntu-latest steps: - - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5 + - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 with: python-version: "3.10" - name: Install dependencies diff --git a/.nf-core.yml b/.nf-core.yml index 3805dc81..d6daa403 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -1 +1,2 @@ repository_type: pipeline +nf_core_version: "2.14.0" diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index af57081f..4dc0f1dc 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -3,6 +3,9 @@ repos: rev: "v3.1.0" hooks: - id: prettier + additional_dependencies: + - prettier@3.2.5 + - repo: https://github.com/editorconfig-checker/editorconfig-checker.python rev: "2.7.3" hooks: diff --git a/README.md b/README.md index 939480bd..b4d05fd0 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ [![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/) [![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/) [![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/) -[![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://tower.nf/launch?pipeline=https://github.com/nf-core/chipseq) +[![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://cloud.seqera.io/launch?pipeline=https://github.com/nf-core/chipseq) [![Get help on Slack](http://img.shields.io/badge/slack-nf--core%20%23chipseq-4A154B?labelColor=000000&logo=slack)](https://nfcore.slack.com/channels/chipseq)[![Follow on Twitter](http://img.shields.io/badge/twitter-%40nf__core-1DA1F2?labelColor=000000&logo=twitter)](https://twitter.com/nf_core)[![Follow on Mastodon](https://img.shields.io/badge/mastodon-nf__core-6364ff?labelColor=FFFFFF&logo=mastodon)](https://mstdn.science/@nf_core)[![Watch on YouTube](http://img.shields.io/badge/youtube-nf--core-FF0000?labelColor=000000&logo=youtube)](https://www.youtube.com/c/nf-core) diff --git a/conf/base.config b/conf/base.config index 6ff52bc0..dfa8a0da 100644 --- a/conf/base.config +++ b/conf/base.config @@ -59,7 +59,4 @@ process { errorStrategy = 'retry' maxRetries = 2 } - withName:CUSTOM_DUMPSOFTWAREVERSIONS { - cache = false - } } diff --git a/conf/modules.config b/conf/modules.config index e3ea8fa6..d203d2b6 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -22,14 +22,6 @@ process { ext.args = '--quiet' } - withName: CUSTOM_DUMPSOFTWAREVERSIONS { - publishDir = [ - path: { "${params.outdir}/pipeline_info" }, - mode: params.publish_dir_mode, - pattern: '*_versions.yml' - ] - } - withName: 'MULTIQC' { ext.args = { params.multiqc_title ? "--title \"$params.multiqc_title\"" : '' } publishDir = [ diff --git a/conf/test.config b/conf/test.config index 2bf8a1fa..0ca49358 100644 --- a/conf/test.config +++ b/conf/test.config @@ -22,7 +22,7 @@ params { // Input data // TODO nf-core: Specify the paths to your test data on nf-core/test-datasets // TODO nf-core: Give any required params for the test so that command line flags are not needed - input = 'https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/samplesheet/samplesheet_test_illumina_amplicon.csv' + input = params.pipelines_testdata_base_path + 'viralrecon/samplesheet/samplesheet_test_illumina_amplicon.csv' // Genome references genome = 'R64-1-1' diff --git a/conf/test_full.config b/conf/test_full.config index 5c3bc080..b9d9918e 100644 --- a/conf/test_full.config +++ b/conf/test_full.config @@ -17,7 +17,7 @@ params { // Input data for full size test // TODO nf-core: Specify the paths to your full test data ( on nf-core/test-datasets or directly in repositories, e.g. SRA) // TODO nf-core: Give any required params for the test so that command line flags are not needed - input = 'https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/samplesheet/samplesheet_full_illumina_amplicon.csv' + input = params.pipelines_testdata_base_path + 'viralrecon/samplesheet/samplesheet_full_illumina_amplicon.csv' // Genome references genome = 'R64-1-1' diff --git a/docs/usage.md b/docs/usage.md index 09080185..580dc4a2 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -156,6 +156,8 @@ If `-profile` is not specified, the pipeline will run locally and expect all sof - A generic configuration profile to be used with [Charliecloud](https://hpc.github.io/charliecloud/) - `apptainer` - A generic configuration profile to be used with [Apptainer](https://apptainer.org/) +- `wave` + - A generic configuration profile to enable [Wave](https://seqera.io/wave/) containers. Use together with one of the above (requires Nextflow ` 24.03.0-edge` or later). - `conda` - A generic configuration profile to be used with [Conda](https://conda.io/docs/). Please only use Conda as a last resort i.e. when it's not possible to run the pipeline with Docker, Singularity, Podman, Shifter, Charliecloud, or Apptainer. diff --git a/modules.json b/modules.json index f36b13b2..afe95daf 100644 --- a/modules.json +++ b/modules.json @@ -7,7 +7,7 @@ "nf-core": { "fastqc": { "branch": "master", - "git_sha": "f4ae1d942bd50c5c0b9bd2de1393ce38315ba57c", + "git_sha": "285a50500f9e02578d90b3ce6382ea3c30216acd", "installed_by": ["modules"] }, "multiqc": { @@ -26,7 +26,7 @@ }, "utils_nfcore_pipeline": { "branch": "master", - "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", + "git_sha": "92de218a329bfc9a9033116eb5f65fd270e72ba3", "installed_by": ["subworkflows"] }, "utils_nfvalidation_plugin": { diff --git a/modules/nf-core/fastqc/main.nf b/modules/nf-core/fastqc/main.nf index 9e19a74c..d79f1c86 100644 --- a/modules/nf-core/fastqc/main.nf +++ b/modules/nf-core/fastqc/main.nf @@ -25,6 +25,11 @@ process FASTQC { def old_new_pairs = reads instanceof Path || reads.size() == 1 ? [[ reads, "${prefix}.${reads.extension}" ]] : reads.withIndex().collect { entry, index -> [ entry, "${prefix}_${index + 1}.${entry.extension}" ] } def rename_to = old_new_pairs*.join(' ').join(' ') def renamed_files = old_new_pairs.collect{ old_name, new_name -> new_name }.join(' ') + + def memory_in_mb = MemoryUnit.of("${task.memory}").toUnit('MB') + // FastQC memory value allowed range (100 - 10000) + def fastqc_memory = memory_in_mb > 10000 ? 10000 : (memory_in_mb < 100 ? 100 : memory_in_mb) + """ printf "%s %s\\n" $rename_to | while read old_name new_name; do [ -f "\${new_name}" ] || ln -s \$old_name \$new_name @@ -33,6 +38,7 @@ process FASTQC { fastqc \\ $args \\ --threads $task.cpus \\ + --memory $fastqc_memory \\ $renamed_files cat <<-END_VERSIONS > versions.yml diff --git a/nextflow.config b/nextflow.config index f9c1e571..563221d5 100644 --- a/nextflow.config +++ b/nextflow.config @@ -16,7 +16,8 @@ params { genome = null igenomes_base = 's3://ngi-igenomes/igenomes/' igenomes_ignore = false - fasta = null// MultiQC options + + // MultiQC options multiqc_config = null multiqc_title = null multiqc_logo = null @@ -24,15 +25,16 @@ params { multiqc_methods_description = null // Boilerplate options - outdir = null - publish_dir_mode = 'copy' - email = null - email_on_fail = null - plaintext_email = false - monochrome_logs = false - hook_url = null - help = false - version = false + outdir = null + publish_dir_mode = 'copy' + email = null + email_on_fail = null + plaintext_email = false + monochrome_logs = false + hook_url = null + help = false + version = false + pipelines_testdata_base_path = 'https://raw.githubusercontent.com/nf-core/test-datasets/' // Config options config_profile_name = null @@ -68,103 +70,109 @@ try { } // Load nf-core/chipseq custom profiles from different institutions. -// Warning: Uncomment only if a pipeline-specific institutional config already exists on nf-core/configs! -// try { -// includeConfig "${params.custom_config_base}/pipeline/chipseq.config" -// } catch (Exception e) { -// System.err.println("WARNING: Could not load nf-core/config/chipseq profiles: ${params.custom_config_base}/pipeline/chipseq.config") -// } +try { + includeConfig "${params.custom_config_base}/pipeline/chipseq.config" +} catch (Exception e) { + System.err.println("WARNING: Could not load nf-core/config/chipseq profiles: ${params.custom_config_base}/pipeline/chipseq.config") +} profiles { debug { - dumpHashes = true - process.beforeScript = 'echo $HOSTNAME' - cleanup = false + dumpHashes = true + process.beforeScript = 'echo $HOSTNAME' + cleanup = false nextflow.enable.configProcessNamesValidation = true } conda { - conda.enabled = true - docker.enabled = false - singularity.enabled = false - podman.enabled = false - shifter.enabled = false - charliecloud.enabled = false - channels = ['conda-forge', 'bioconda', 'defaults'] - apptainer.enabled = false + conda.enabled = true + docker.enabled = false + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + conda.channels = ['conda-forge', 'bioconda', 'defaults'] + apptainer.enabled = false } mamba { - conda.enabled = true - conda.useMamba = true - docker.enabled = false - singularity.enabled = false - podman.enabled = false - shifter.enabled = false - charliecloud.enabled = false - apptainer.enabled = false + conda.enabled = true + conda.useMamba = true + docker.enabled = false + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + apptainer.enabled = false } docker { - docker.enabled = true - conda.enabled = false - singularity.enabled = false - podman.enabled = false - shifter.enabled = false - charliecloud.enabled = false - apptainer.enabled = false - docker.runOptions = '-u $(id -u):$(id -g)' + docker.enabled = true + conda.enabled = false + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + apptainer.enabled = false + docker.runOptions = '-u $(id -u):$(id -g)' } arm { - docker.runOptions = '-u $(id -u):$(id -g) --platform=linux/amd64' + docker.runOptions = '-u $(id -u):$(id -g) --platform=linux/amd64' } singularity { - singularity.enabled = true - singularity.autoMounts = true - conda.enabled = false - docker.enabled = false - podman.enabled = false - shifter.enabled = false - charliecloud.enabled = false - apptainer.enabled = false + singularity.enabled = true + singularity.autoMounts = true + conda.enabled = false + docker.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + apptainer.enabled = false } podman { - podman.enabled = true - conda.enabled = false - docker.enabled = false - singularity.enabled = false - shifter.enabled = false - charliecloud.enabled = false - apptainer.enabled = false + podman.enabled = true + conda.enabled = false + docker.enabled = false + singularity.enabled = false + shifter.enabled = false + charliecloud.enabled = false + apptainer.enabled = false } shifter { - shifter.enabled = true - conda.enabled = false - docker.enabled = false - singularity.enabled = false - podman.enabled = false - charliecloud.enabled = false - apptainer.enabled = false + shifter.enabled = true + conda.enabled = false + docker.enabled = false + singularity.enabled = false + podman.enabled = false + charliecloud.enabled = false + apptainer.enabled = false } charliecloud { - charliecloud.enabled = true - conda.enabled = false - docker.enabled = false - singularity.enabled = false - podman.enabled = false - shifter.enabled = false - apptainer.enabled = false + charliecloud.enabled = true + conda.enabled = false + docker.enabled = false + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + apptainer.enabled = false } apptainer { - apptainer.enabled = true - apptainer.autoMounts = true - conda.enabled = false - docker.enabled = false - singularity.enabled = false - podman.enabled = false - shifter.enabled = false - charliecloud.enabled = false + apptainer.enabled = true + apptainer.autoMounts = true + conda.enabled = false + docker.enabled = false + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + wave { + apptainer.ociAutoPull = true + singularity.ociAutoPull = true + wave.enabled = true + wave.freeze = true + wave.strategy = 'conda,container' } gitpod { - executor.name = 'local' - executor.cpus = 4 - executor.memory = 8.GB + executor.name = 'local' + executor.cpus = 4 + executor.memory = 8.GB } test { includeConfig 'conf/test.config' } test_full { includeConfig 'conf/test_full.config' } diff --git a/nextflow_schema.json b/nextflow_schema.json index 8d405bb0..9f702a2f 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -265,6 +265,13 @@ "description": "Validation of parameters in lenient more.", "hidden": true, "help_text": "Allows string values that are parseable as numbers or booleans. For further information see [JSONSchema docs](https://github.com/everit-org/json-schema#lenient-mode)." + }, + "pipelines_testdata_base_path": { + "type": "string", + "fa_icon": "far fa-check-circle", + "description": "Base URL or local path to location of pipeline test dataset files", + "default": "https://raw.githubusercontent.com/nf-core/test-datasets/", + "hidden": true } } } diff --git a/pyproject.toml b/pyproject.toml deleted file mode 100644 index 56110621..00000000 --- a/pyproject.toml +++ /dev/null @@ -1,15 +0,0 @@ -# Config file for Python. Mostly used to configure linting of bin/*.py with Ruff. -# Should be kept the same as nf-core/tools to avoid fighting with template synchronisation. -[tool.ruff] -line-length = 120 -target-version = "py38" -cache-dir = "~/.cache/ruff" - -[tool.ruff.lint] -select = ["I", "E1", "E4", "E7", "E9", "F", "UP", "N"] - -[tool.ruff.lint.isort] -known-first-party = ["nf_core"] - -[tool.ruff.lint.per-file-ignores] -"__init__.py" = ["E402", "F401"] diff --git a/subworkflows/local/utils_nfcore_chipseq_pipeline/main.nf b/subworkflows/local/utils_nfcore_chipseq_pipeline/main.nf index b5620604..ea75b693 100644 --- a/subworkflows/local/utils_nfcore_chipseq_pipeline/main.nf +++ b/subworkflows/local/utils_nfcore_chipseq_pipeline/main.nf @@ -140,6 +140,10 @@ workflow PIPELINE_COMPLETION { imNotification(summary_params, hook_url) } } + + workflow.onError { + log.error "Pipeline failed. Please refer to troubleshooting docs: https://nf-co.re/docs/usage/troubleshooting" + } } /* @@ -230,8 +234,16 @@ def methodsDescriptionText(mqc_methods_yaml) { meta["manifest_map"] = workflow.manifest.toMap() // Pipeline DOI - meta["doi_text"] = meta.manifest_map.doi ? "(doi: ${meta.manifest_map.doi})" : "" - meta["nodoi_text"] = meta.manifest_map.doi ? "": "
  • If available, make sure to update the text to include the Zenodo DOI of version of the pipeline used.
  • " + if (meta.manifest_map.doi) { + // Using a loop to handle multiple DOIs + // Removing `https://doi.org/` to handle pipelines using DOIs vs DOI resolvers + // Removing ` ` since the manifest.doi is a string and not a proper list + def temp_doi_ref = "" + String[] manifest_doi = meta.manifest_map.doi.tokenize(",") + for (String doi_ref: manifest_doi) temp_doi_ref += "(doi: ${doi_ref.replace("https://doi.org/", "").replace(" ", "")}), " + meta["doi_text"] = temp_doi_ref.substring(0, temp_doi_ref.length() - 2) + } else meta["doi_text"] = "" + meta["nodoi_text"] = meta.manifest_map.doi ? "" : "
  • If available, make sure to update the text to include the Zenodo DOI of version of the pipeline used.
  • " // Tool references meta["tool_citations"] = "" diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/main.nf b/subworkflows/nf-core/utils_nfcore_pipeline/main.nf index a8b55d6f..14558c39 100644 --- a/subworkflows/nf-core/utils_nfcore_pipeline/main.nf +++ b/subworkflows/nf-core/utils_nfcore_pipeline/main.nf @@ -65,9 +65,15 @@ def checkProfileProvided(nextflow_cli_args) { // Citation string for pipeline // def workflowCitation() { + def temp_doi_ref = "" + String[] manifest_doi = workflow.manifest.doi.tokenize(",") + // Using a loop to handle multiple DOIs + // Removing `https://doi.org/` to handle pipelines using DOIs vs DOI resolvers + // Removing ` ` since the manifest.doi is a string and not a proper list + for (String doi_ref: manifest_doi) temp_doi_ref += " https://doi.org/${doi_ref.replace('https://doi.org/', '').replace(' ', '')}\n" return "If you use ${workflow.manifest.name} for your analysis please cite:\n\n" + "* The pipeline\n" + - " ${workflow.manifest.doi}\n\n" + + temp_doi_ref + "\n" + "* The nf-core framework\n" + " https://doi.org/10.1038/s41587-020-0439-x\n\n" + "* Software dependencies\n" + diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index 701d5f7d..277a9dc0 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -40,22 +40,44 @@ workflow CHIPSEQ { // Collate and save software versions // softwareVersionsToYAML(ch_versions) - .collectFile(storeDir: "${params.outdir}/pipeline_info", name: 'nf_core_pipeline_software_mqc_versions.yml', sort: true, newLine: true) - .set { ch_collated_versions } + .collectFile( + storeDir: "${params.outdir}/pipeline_info", + name: 'nf_core_pipeline_software_mqc_versions.yml', + sort: true, + newLine: true + ).set { ch_collated_versions } // // MODULE: MultiQC // - ch_multiqc_config = Channel.fromPath("$projectDir/assets/multiqc_config.yml", checkIfExists: true) - ch_multiqc_custom_config = params.multiqc_config ? Channel.fromPath(params.multiqc_config, checkIfExists: true) : Channel.empty() - ch_multiqc_logo = params.multiqc_logo ? Channel.fromPath(params.multiqc_logo, checkIfExists: true) : Channel.empty() - summary_params = paramsSummaryMap(workflow, parameters_schema: "nextflow_schema.json") - ch_workflow_summary = Channel.value(paramsSummaryMultiqc(summary_params)) - ch_multiqc_custom_methods_description = params.multiqc_methods_description ? file(params.multiqc_methods_description, checkIfExists: true) : file("$projectDir/assets/methods_description_template.yml", checkIfExists: true) - ch_methods_description = Channel.value(methodsDescriptionText(ch_multiqc_custom_methods_description)) - ch_multiqc_files = ch_multiqc_files.mix(ch_workflow_summary.collectFile(name: 'workflow_summary_mqc.yaml')) - ch_multiqc_files = ch_multiqc_files.mix(ch_collated_versions) - ch_multiqc_files = ch_multiqc_files.mix(ch_methods_description.collectFile(name: 'methods_description_mqc.yaml', sort: false)) + ch_multiqc_config = Channel.fromPath( + "$projectDir/assets/multiqc_config.yml", checkIfExists: true) + ch_multiqc_custom_config = params.multiqc_config ? + Channel.fromPath(params.multiqc_config, checkIfExists: true) : + Channel.empty() + ch_multiqc_logo = params.multiqc_logo ? + Channel.fromPath(params.multiqc_logo, checkIfExists: true) : + Channel.empty() + + summary_params = paramsSummaryMap( + workflow, parameters_schema: "nextflow_schema.json") + ch_workflow_summary = Channel.value(paramsSummaryMultiqc(summary_params)) + + ch_multiqc_custom_methods_description = params.multiqc_methods_description ? + file(params.multiqc_methods_description, checkIfExists: true) : + file("$projectDir/assets/methods_description_template.yml", checkIfExists: true) + ch_methods_description = Channel.value( + methodsDescriptionText(ch_multiqc_custom_methods_description)) + + ch_multiqc_files = ch_multiqc_files.mix( + ch_workflow_summary.collectFile(name: 'workflow_summary_mqc.yaml')) + ch_multiqc_files = ch_multiqc_files.mix(ch_collated_versions) + ch_multiqc_files = ch_multiqc_files.mix( + ch_methods_description.collectFile( + name: 'methods_description_mqc.yaml', + sort: true + ) + ) MULTIQC ( ch_multiqc_files.collect(), From d4b1a539a92d0bb6a6156455e7a80a4a668559d1 Mon Sep 17 00:00:00 2001 From: nf-core-bot Date: Thu, 9 May 2024 11:39:05 +0000 Subject: [PATCH 141/201] Template update for nf-core/tools version 2.14.1 --- .github/workflows/linting.yml | 1 - .nf-core.yml | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index a3fb2541..1fcafe88 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -20,7 +20,6 @@ jobs: uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 with: python-version: "3.12" - cache: "pip" - name: Install pre-commit run: pip install pre-commit diff --git a/.nf-core.yml b/.nf-core.yml index d6daa403..e0b85a77 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -1,2 +1,2 @@ repository_type: pipeline -nf_core_version: "2.14.0" +nf_core_version: "2.14.1" From 5712425cce51bd9923ac4e3c373f36e9a18435e4 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 26 Jun 2024 14:47:15 +0200 Subject: [PATCH 142/201] Get rid of lib folder --- lib/NfcoreTemplate.groovy | 356 ------------------------------------- lib/Utils.groovy | 47 ----- lib/WorkflowChipseq.groovy | 156 ---------------- lib/WorkflowMain.groovy | 84 --------- 4 files changed, 643 deletions(-) delete mode 100755 lib/NfcoreTemplate.groovy delete mode 100644 lib/Utils.groovy delete mode 100755 lib/WorkflowChipseq.groovy delete mode 100755 lib/WorkflowMain.groovy diff --git a/lib/NfcoreTemplate.groovy b/lib/NfcoreTemplate.groovy deleted file mode 100755 index e248e4c3..00000000 --- a/lib/NfcoreTemplate.groovy +++ /dev/null @@ -1,356 +0,0 @@ -// -// This file holds several functions used within the nf-core pipeline template. -// - -import org.yaml.snakeyaml.Yaml -import groovy.json.JsonOutput -import nextflow.extension.FilesEx - -class NfcoreTemplate { - - // - // Check AWS Batch related parameters have been specified correctly - // - public static void awsBatch(workflow, params) { - if (workflow.profile.contains('awsbatch')) { - // Check params.awsqueue and params.awsregion have been set if running on AWSBatch - assert (params.awsqueue && params.awsregion) : "Specify correct --awsqueue and --awsregion parameters on AWSBatch!" - // Check outdir paths to be S3 buckets if running on AWSBatch - assert params.outdir.startsWith('s3:') : "Outdir not on S3 - specify S3 Bucket to run on AWSBatch!" - } - } - - // - // Warn if a -profile or Nextflow config has not been provided to run the pipeline - // - public static void checkConfigProvided(workflow, log) { - if (workflow.profile == 'standard' && workflow.configFiles.size() <= 1) { - log.warn "[$workflow.manifest.name] You are attempting to run the pipeline without any custom configuration!\n\n" + - "This will be dependent on your local compute environment but can be achieved via one or more of the following:\n" + - " (1) Using an existing pipeline profile e.g. `-profile docker` or `-profile singularity`\n" + - " (2) Using an existing nf-core/configs for your Institution e.g. `-profile crick` or `-profile uppmax`\n" + - " (3) Using your own local custom config e.g. `-c /path/to/your/custom.config`\n\n" + - "Please refer to the quick start section and usage docs for the pipeline.\n " - } - } - - // - // Generate version string - // - public static String version(workflow) { - String version_string = "" - - if (workflow.manifest.version) { - def prefix_v = workflow.manifest.version[0] != 'v' ? 'v' : '' - version_string += "${prefix_v}${workflow.manifest.version}" - } - - if (workflow.commitId) { - def git_shortsha = workflow.commitId.substring(0, 7) - version_string += "-g${git_shortsha}" - } - - return version_string - } - - // - // Construct and send completion email - // - public static void email(workflow, params, summary_params, projectDir, log, multiqc_report=[]) { - - // Set up the e-mail variables - def subject = "[$workflow.manifest.name] Successful: $workflow.runName" - if (!workflow.success) { - subject = "[$workflow.manifest.name] FAILED: $workflow.runName" - } - - def summary = [:] - for (group in summary_params.keySet()) { - summary << summary_params[group] - } - - def misc_fields = [:] - misc_fields['Date Started'] = workflow.start - misc_fields['Date Completed'] = workflow.complete - misc_fields['Pipeline script file path'] = workflow.scriptFile - misc_fields['Pipeline script hash ID'] = workflow.scriptId - if (workflow.repository) misc_fields['Pipeline repository Git URL'] = workflow.repository - if (workflow.commitId) misc_fields['Pipeline repository Git Commit'] = workflow.commitId - if (workflow.revision) misc_fields['Pipeline Git branch/tag'] = workflow.revision - misc_fields['Nextflow Version'] = workflow.nextflow.version - misc_fields['Nextflow Build'] = workflow.nextflow.build - misc_fields['Nextflow Compile Timestamp'] = workflow.nextflow.timestamp - - def email_fields = [:] - email_fields['version'] = NfcoreTemplate.version(workflow) - email_fields['runName'] = workflow.runName - email_fields['success'] = workflow.success - email_fields['dateComplete'] = workflow.complete - email_fields['duration'] = workflow.duration - email_fields['exitStatus'] = workflow.exitStatus - email_fields['errorMessage'] = (workflow.errorMessage ?: 'None') - email_fields['errorReport'] = (workflow.errorReport ?: 'None') - email_fields['commandLine'] = workflow.commandLine - email_fields['projectDir'] = workflow.projectDir - email_fields['summary'] = summary << misc_fields - - // On success try attach the multiqc report - def mqc_report = null - try { - if (workflow.success) { - mqc_report = multiqc_report.getVal() - if (mqc_report.getClass() == ArrayList && mqc_report.size() >= 1) { - if (mqc_report.size() > 1) { - log.warn "[$workflow.manifest.name] Found multiple reports from process 'MULTIQC', will use only one" - } - mqc_report = mqc_report[0] - } - } - } catch (all) { - if (multiqc_report) { - log.warn "[$workflow.manifest.name] Could not attach MultiQC report to summary email" - } - } - - // Check if we are only sending emails on failure - def email_address = params.email - if (!params.email && params.email_on_fail && !workflow.success) { - email_address = params.email_on_fail - } - - // Render the TXT template - def engine = new groovy.text.GStringTemplateEngine() - def tf = new File("$projectDir/assets/email_template.txt") - def txt_template = engine.createTemplate(tf).make(email_fields) - def email_txt = txt_template.toString() - - // Render the HTML template - def hf = new File("$projectDir/assets/email_template.html") - def html_template = engine.createTemplate(hf).make(email_fields) - def email_html = html_template.toString() - - // Render the sendmail template - def max_multiqc_email_size = (params.containsKey('max_multiqc_email_size') ? params.max_multiqc_email_size : 0) as nextflow.util.MemoryUnit - def smail_fields = [ email: email_address, subject: subject, email_txt: email_txt, email_html: email_html, projectDir: "$projectDir", mqcFile: mqc_report, mqcMaxSize: max_multiqc_email_size.toBytes() ] - def sf = new File("$projectDir/assets/sendmail_template.txt") - def sendmail_template = engine.createTemplate(sf).make(smail_fields) - def sendmail_html = sendmail_template.toString() - - // Send the HTML e-mail - Map colors = logColours(params.monochrome_logs) - if (email_address) { - try { - if (params.plaintext_email) { throw GroovyException('Send plaintext e-mail, not HTML') } - // Try to send HTML e-mail using sendmail - def sendmail_tf = new File(workflow.launchDir.toString(), ".sendmail_tmp.html") - sendmail_tf.withWriter { w -> w << sendmail_html } - [ 'sendmail', '-t' ].execute() << sendmail_html - log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Sent summary e-mail to $email_address (sendmail)-" - } catch (all) { - // Catch failures and try with plaintext - def mail_cmd = [ 'mail', '-s', subject, '--content-type=text/html', email_address ] - if ( mqc_report != null && mqc_report.size() <= max_multiqc_email_size.toBytes() ) { - mail_cmd += [ '-A', mqc_report ] - } - mail_cmd.execute() << email_html - log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Sent summary e-mail to $email_address (mail)-" - } - } - - // Write summary e-mail HTML to a file - def output_hf = new File(workflow.launchDir.toString(), ".pipeline_report.html") - output_hf.withWriter { w -> w << email_html } - FilesEx.copyTo(output_hf.toPath(), "${params.outdir}/pipeline_info/pipeline_report.html"); - output_hf.delete() - - // Write summary e-mail TXT to a file - def output_tf = new File(workflow.launchDir.toString(), ".pipeline_report.txt") - output_tf.withWriter { w -> w << email_txt } - FilesEx.copyTo(output_tf.toPath(), "${params.outdir}/pipeline_info/pipeline_report.txt"); - output_tf.delete() - } - - // - // Construct and send a notification to a web server as JSON - // e.g. Microsoft Teams and Slack - // - public static void IM_notification(workflow, params, summary_params, projectDir, log) { - def hook_url = params.hook_url - - def summary = [:] - for (group in summary_params.keySet()) { - summary << summary_params[group] - } - - def misc_fields = [:] - misc_fields['start'] = workflow.start - misc_fields['complete'] = workflow.complete - misc_fields['scriptfile'] = workflow.scriptFile - misc_fields['scriptid'] = workflow.scriptId - if (workflow.repository) misc_fields['repository'] = workflow.repository - if (workflow.commitId) misc_fields['commitid'] = workflow.commitId - if (workflow.revision) misc_fields['revision'] = workflow.revision - misc_fields['nxf_version'] = workflow.nextflow.version - misc_fields['nxf_build'] = workflow.nextflow.build - misc_fields['nxf_timestamp'] = workflow.nextflow.timestamp - - def msg_fields = [:] - msg_fields['version'] = NfcoreTemplate.version(workflow) - msg_fields['runName'] = workflow.runName - msg_fields['success'] = workflow.success - msg_fields['dateComplete'] = workflow.complete - msg_fields['duration'] = workflow.duration - msg_fields['exitStatus'] = workflow.exitStatus - msg_fields['errorMessage'] = (workflow.errorMessage ?: 'None') - msg_fields['errorReport'] = (workflow.errorReport ?: 'None') - msg_fields['commandLine'] = workflow.commandLine.replaceFirst(/ +--hook_url +[^ ]+/, "") - msg_fields['projectDir'] = workflow.projectDir - msg_fields['summary'] = summary << misc_fields - - // Render the JSON template - def engine = new groovy.text.GStringTemplateEngine() - // Different JSON depending on the service provider - // Defaults to "Adaptive Cards" (https://adaptivecards.io), except Slack which has its own format - def json_path = hook_url.contains("hooks.slack.com") ? "slackreport.json" : "adaptivecard.json" - def hf = new File("$projectDir/assets/${json_path}") - def json_template = engine.createTemplate(hf).make(msg_fields) - def json_message = json_template.toString() - - // POST - def post = new URL(hook_url).openConnection(); - post.setRequestMethod("POST") - post.setDoOutput(true) - post.setRequestProperty("Content-Type", "application/json") - post.getOutputStream().write(json_message.getBytes("UTF-8")); - def postRC = post.getResponseCode(); - if (! postRC.equals(200)) { - log.warn(post.getErrorStream().getText()); - } - } - - // - // Dump pipeline parameters in a json file - // - public static void dump_parameters(workflow, params) { - def timestamp = new java.util.Date().format( 'yyyy-MM-dd_HH-mm-ss') - def filename = "params_${timestamp}.json" - def temp_pf = new File(workflow.launchDir.toString(), ".${filename}") - def jsonStr = JsonOutput.toJson(params) - temp_pf.text = JsonOutput.prettyPrint(jsonStr) - - FilesEx.copyTo(temp_pf.toPath(), "${params.outdir}/pipeline_info/params_${timestamp}.json") - temp_pf.delete() - } - - // - // Print pipeline summary on completion - // - public static void summary(workflow, params, log) { - Map colors = logColours(params.monochrome_logs) - if (workflow.success) { - if (workflow.stats.ignoredCount == 0) { - log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Pipeline completed successfully${colors.reset}-" - } else { - log.info "-${colors.purple}[$workflow.manifest.name]${colors.yellow} Pipeline completed successfully, but with errored process(es) ${colors.reset}-" - } - } else { - log.info "-${colors.purple}[$workflow.manifest.name]${colors.red} Pipeline completed with errors${colors.reset}-" - } - } - - // - // ANSII Colours used for terminal logging - // - public static Map logColours(Boolean monochrome_logs) { - Map colorcodes = [:] - - // Reset / Meta - colorcodes['reset'] = monochrome_logs ? '' : "\033[0m" - colorcodes['bold'] = monochrome_logs ? '' : "\033[1m" - colorcodes['dim'] = monochrome_logs ? '' : "\033[2m" - colorcodes['underlined'] = monochrome_logs ? '' : "\033[4m" - colorcodes['blink'] = monochrome_logs ? '' : "\033[5m" - colorcodes['reverse'] = monochrome_logs ? '' : "\033[7m" - colorcodes['hidden'] = monochrome_logs ? '' : "\033[8m" - - // Regular Colors - colorcodes['black'] = monochrome_logs ? '' : "\033[0;30m" - colorcodes['red'] = monochrome_logs ? '' : "\033[0;31m" - colorcodes['green'] = monochrome_logs ? '' : "\033[0;32m" - colorcodes['yellow'] = monochrome_logs ? '' : "\033[0;33m" - colorcodes['blue'] = monochrome_logs ? '' : "\033[0;34m" - colorcodes['purple'] = monochrome_logs ? '' : "\033[0;35m" - colorcodes['cyan'] = monochrome_logs ? '' : "\033[0;36m" - colorcodes['white'] = monochrome_logs ? '' : "\033[0;37m" - - // Bold - colorcodes['bblack'] = monochrome_logs ? '' : "\033[1;30m" - colorcodes['bred'] = monochrome_logs ? '' : "\033[1;31m" - colorcodes['bgreen'] = monochrome_logs ? '' : "\033[1;32m" - colorcodes['byellow'] = monochrome_logs ? '' : "\033[1;33m" - colorcodes['bblue'] = monochrome_logs ? '' : "\033[1;34m" - colorcodes['bpurple'] = monochrome_logs ? '' : "\033[1;35m" - colorcodes['bcyan'] = monochrome_logs ? '' : "\033[1;36m" - colorcodes['bwhite'] = monochrome_logs ? '' : "\033[1;37m" - - // Underline - colorcodes['ublack'] = monochrome_logs ? '' : "\033[4;30m" - colorcodes['ured'] = monochrome_logs ? '' : "\033[4;31m" - colorcodes['ugreen'] = monochrome_logs ? '' : "\033[4;32m" - colorcodes['uyellow'] = monochrome_logs ? '' : "\033[4;33m" - colorcodes['ublue'] = monochrome_logs ? '' : "\033[4;34m" - colorcodes['upurple'] = monochrome_logs ? '' : "\033[4;35m" - colorcodes['ucyan'] = monochrome_logs ? '' : "\033[4;36m" - colorcodes['uwhite'] = monochrome_logs ? '' : "\033[4;37m" - - // High Intensity - colorcodes['iblack'] = monochrome_logs ? '' : "\033[0;90m" - colorcodes['ired'] = monochrome_logs ? '' : "\033[0;91m" - colorcodes['igreen'] = monochrome_logs ? '' : "\033[0;92m" - colorcodes['iyellow'] = monochrome_logs ? '' : "\033[0;93m" - colorcodes['iblue'] = monochrome_logs ? '' : "\033[0;94m" - colorcodes['ipurple'] = monochrome_logs ? '' : "\033[0;95m" - colorcodes['icyan'] = monochrome_logs ? '' : "\033[0;96m" - colorcodes['iwhite'] = monochrome_logs ? '' : "\033[0;97m" - - // Bold High Intensity - colorcodes['biblack'] = monochrome_logs ? '' : "\033[1;90m" - colorcodes['bired'] = monochrome_logs ? '' : "\033[1;91m" - colorcodes['bigreen'] = monochrome_logs ? '' : "\033[1;92m" - colorcodes['biyellow'] = monochrome_logs ? '' : "\033[1;93m" - colorcodes['biblue'] = monochrome_logs ? '' : "\033[1;94m" - colorcodes['bipurple'] = monochrome_logs ? '' : "\033[1;95m" - colorcodes['bicyan'] = monochrome_logs ? '' : "\033[1;96m" - colorcodes['biwhite'] = monochrome_logs ? '' : "\033[1;97m" - - return colorcodes - } - - // - // Does what is says on the tin - // - public static String dashedLine(monochrome_logs) { - Map colors = logColours(monochrome_logs) - return "-${colors.dim}----------------------------------------------------${colors.reset}-" - } - - // - // nf-core logo - // - public static String logo(workflow, monochrome_logs) { - Map colors = logColours(monochrome_logs) - String workflow_version = NfcoreTemplate.version(workflow) - String.format( - """\n - ${dashedLine(monochrome_logs)} - ${colors.green},--.${colors.black}/${colors.green},-.${colors.reset} - ${colors.blue} ___ __ __ __ ___ ${colors.green}/,-._.--~\'${colors.reset} - ${colors.blue} |\\ | |__ __ / ` / \\ |__) |__ ${colors.yellow}} {${colors.reset} - ${colors.blue} | \\| | \\__, \\__/ | \\ |___ ${colors.green}\\`-._,-`-,${colors.reset} - ${colors.green}`._,._,\'${colors.reset} - ${colors.purple} ${workflow.manifest.name} ${workflow_version}${colors.reset} - ${dashedLine(monochrome_logs)} - """.stripIndent() - ) - } -} diff --git a/lib/Utils.groovy b/lib/Utils.groovy deleted file mode 100644 index 8d030f4e..00000000 --- a/lib/Utils.groovy +++ /dev/null @@ -1,47 +0,0 @@ -// -// This file holds several Groovy functions that could be useful for any Nextflow pipeline -// - -import org.yaml.snakeyaml.Yaml - -class Utils { - - // - // When running with -profile conda, warn if channels have not been set-up appropriately - // - public static void checkCondaChannels(log) { - Yaml parser = new Yaml() - def channels = [] - try { - def config = parser.load("conda config --show channels".execute().text) - channels = config.channels - } catch(NullPointerException | IOException e) { - log.warn "Could not verify conda channel configuration." - return - } - - // Check that all channels are present - // This channel list is ordered by required channel priority. - def required_channels_in_order = ['conda-forge', 'bioconda', 'defaults'] - def channels_missing = ((required_channels_in_order as Set) - (channels as Set)) as Boolean - - // Check that they are in the right order - def channel_priority_violation = false - def n = required_channels_in_order.size() - for (int i = 0; i < n - 1; i++) { - channel_priority_violation |= !(channels.indexOf(required_channels_in_order[i]) < channels.indexOf(required_channels_in_order[i+1])) - } - - if (channels_missing | channel_priority_violation) { - log.warn "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + - " There is a problem with your Conda configuration!\n\n" + - " You will need to set-up the conda-forge and bioconda channels correctly.\n" + - " Please refer to https://bioconda.github.io/\n" + - " The observed channel order is \n" + - " ${channels}\n" + - " but the following channel order is required:\n" + - " ${required_channels_in_order}\n" + - "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" - } - } -} diff --git a/lib/WorkflowChipseq.groovy b/lib/WorkflowChipseq.groovy deleted file mode 100755 index 1dbd7ffc..00000000 --- a/lib/WorkflowChipseq.groovy +++ /dev/null @@ -1,156 +0,0 @@ -// -// This file holds several functions specific to the workflow/chipseq.nf in the nf-core/chipseq pipeline -// - -import nextflow.Nextflow -import groovy.text.SimpleTemplateEngine - -class WorkflowChipseq { - - // - // Check and validate parameters - // - public static void initialise(params, log) { - genomeExistsError(params, log) - - if (!params.gtf && !params.gff) { - def error_string = "No GTF or GFF3 annotation specified! The pipeline requires at least one of these files." - Nextflow.error(error_string) - } - - if (params.gtf && params.gff) { - gtfGffWarn(log) - } - - if (!params.macs_gsize) { - macsGsizeWarn(log) - } - - if (!params.read_length && !params.macs_gsize) { - def error_string = "Both '--read_length' and '--macs_gsize' not specified! Please specify either to infer MACS2 genome size for peak calling." - Nextflow.error(error_string) - } - } - - // - // Get workflow summary for MultiQC - // - public static String paramsSummaryMultiqc(workflow, summary) { - String summary_section = '' - for (group in summary.keySet()) { - def group_params = summary.get(group) // This gets the parameters of that particular group - if (group_params) { - summary_section += "

    $group

    \n" - summary_section += "
    \n" - for (param in group_params.keySet()) { - summary_section += "
    $param
    ${group_params.get(param) ?: 'N/A'}
    \n" - } - summary_section += "
    \n" - } - } - - String yaml_file_text = "id: '${workflow.manifest.name.replace('/','-')}-summary'\n" - yaml_file_text += "description: ' - this information is collected when the pipeline is started.'\n" - yaml_file_text += "section_name: '${workflow.manifest.name} Workflow Summary'\n" - yaml_file_text += "section_href: 'https://github.com/${workflow.manifest.name}'\n" - yaml_file_text += "plot_type: 'html'\n" - yaml_file_text += "data: |\n" - yaml_file_text += "${summary_section}" - return yaml_file_text - } - - // - // Generate methods description for MultiQC - // - - public static String toolCitationText(params) { - - // TODO nf-core: Optionally add in-text citation tools to this list. - // Can use ternary operators to dynamically construct based conditions, e.g. params["run_xyz"] ? "Tool (Foo et al. 2023)" : "", - // Uncomment function in methodsDescriptionText to render in MultiQC report - def citation_text = [ - "Tools used in the workflow included:", - "FastQC (Andrews 2010),", - "MultiQC (Ewels et al. 2016)", - "." - ].join(' ').trim() - - return citation_text - } - - public static String toolBibliographyText(params) { - - // TODO Optionally add bibliographic entries to this list. - // Can use ternary operators to dynamically construct based conditions, e.g. params["run_xyz"] ? "
  • Author (2023) Pub name, Journal, DOI
  • " : "", - // Uncomment function in methodsDescriptionText to render in MultiQC report - def reference_text = [ - "
  • Andrews S, (2010) FastQC, URL: https://www.bioinformatics.babraham.ac.uk/projects/fastqc/).
  • ", - "
  • Ewels, P., Magnusson, M., Lundin, S., & Käller, M. (2016). MultiQC: summarize analysis results for multiple tools and samples in a single report. Bioinformatics , 32(19), 3047–3048. doi: /10.1093/bioinformatics/btw354
  • " - ].join(' ').trim() - - return reference_text - } - - public static String methodsDescriptionText(run_workflow, mqc_methods_yaml, params) { - // Convert to a named map so can be used as with familar NXF ${workflow} variable syntax in the MultiQC YML file - def meta = [:] - meta.workflow = run_workflow.toMap() - meta["manifest_map"] = run_workflow.manifest.toMap() - - // Pipeline DOI - meta["doi_text"] = meta.manifest_map.doi ? "(doi: ${meta.manifest_map.doi})" : "" - meta["nodoi_text"] = meta.manifest_map.doi ? "": "
  • If available, make sure to update the text to include the Zenodo DOI of version of the pipeline used.
  • " - - // Tool references - meta["tool_citations"] = "" - meta["tool_bibliography"] = "" - - // TODO Only uncomment below if logic in toolCitationText/toolBibliographyText has been filled! - //meta["tool_citations"] = toolCitationText(params).replaceAll(", \\.", ".").replaceAll("\\. \\.", ".").replaceAll(", \\.", ".") - //meta["tool_bibliography"] = toolBibliographyText(params) - - - def methods_text = mqc_methods_yaml.text - - def engine = new SimpleTemplateEngine() - def description_html = engine.createTemplate(methods_text).make(meta) - - return description_html - } - - // - // Exit pipeline if incorrect --genome key provided - // - private static void genomeExistsError(params, log) { - if (params.genomes && params.genome && !params.genomes.containsKey(params.genome)) { - def error_string = "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + - " Genome '${params.genome}' not found in any config files provided to the pipeline.\n" + - " Currently, the available genome keys are:\n" + - " ${params.genomes.keySet().join(", ")}\n" + - "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" - Nextflow.error(error_string) - } - } - - // - // Print a warning if both GTF and GFF have been provided - // - private static void gtfGffWarn(log) { - log.warn "=============================================================================\n" + - " Both '--gtf' and '--gff' parameters have been provided.\n" + - " Using GTF file as priority.\n" + - "===================================================================================" - } - - // - // Print a warning if macs_gsize parameter has not been provided - // - private static void macsGsizeWarn(log) { - log.warn "=============================================================================\n" + - " --macs_gsize parameter has not been provided.\n" + - " It will be auto-calculated by 'khmer unique-kmers.py' using the '--read_length' parameter.\n" + - " Explicitly provide '--macs_gsize' to change this behaviour.\n" + - "===================================================================================" - } - -} diff --git a/lib/WorkflowMain.groovy b/lib/WorkflowMain.groovy deleted file mode 100755 index 56cacad8..00000000 --- a/lib/WorkflowMain.groovy +++ /dev/null @@ -1,84 +0,0 @@ -// -// This file holds several functions specific to the main.nf workflow in the nf-core/chipseq pipeline -// - -import nextflow.Nextflow - -class WorkflowMain { - - // - // Citation string for pipeline - // - public static String citation(workflow) { - return "If you use ${workflow.manifest.name} for your analysis please cite:\n\n" + - "* The pipeline\n" + - " https://doi.org/10.5281/zenodo.3240506\n\n" + - "* The nf-core framework\n" + - " https://doi.org/10.1038/s41587-020-0439-x\n\n" + - "* Software dependencies\n" + - " https://github.com/${workflow.manifest.name}/blob/master/CITATIONS.md" - } - - // - // Validate parameters and print summary to screen - // - public static void initialise(workflow, params, log, args) { - - // Print workflow version and exit on --version - if (params.version) { - String workflow_version = NfcoreTemplate.version(workflow) - log.info "${workflow.manifest.name} ${workflow_version}" - System.exit(0) - } - - // Check that a -profile or Nextflow config has been provided to run the pipeline - NfcoreTemplate.checkConfigProvided(workflow, log) - // Check that the profile doesn't contain spaces and doesn't end with a trailing comma - checkProfile(workflow.profile, args, log) - - // Check that conda channels are set-up correctly - if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { - Utils.checkCondaChannels(log) - } - - // Check AWS batch settings - NfcoreTemplate.awsBatch(workflow, params) - } - // - // Get attribute from genome config file e.g. fasta - // - public static Object getGenomeAttribute(params, attribute) { - if (params.genomes && params.genome && params.genomes.containsKey(params.genome)) { - if (params.genomes[ params.genome ].containsKey(attribute)) { - return params.genomes[ params.genome ][ attribute ] - } - } - return null - } - - // - // Get macs genome size (macs_gsize) - // - public static Long getMacsGsize(params) { - def val = null - if (params.genomes && params.genome && params.genomes.containsKey(params.genome)) { - if (params.genomes[ params.genome ].containsKey('macs_gsize')) { - if (params.genomes[ params.genome ][ 'macs_gsize' ].containsKey(params.read_length.toString())) { - val = params.genomes[ params.genome ][ 'macs_gsize' ][ params.read_length.toString() ] - } - } - } - return val - } - - // Exit pipeline if --profile contains spaces - // - private static void checkProfile(profile, args, log) { - if (profile.endsWith(',')) { - Nextflow.error "Profile cannot end with a trailing comma. Please remove the comma from the end of the profile string.\nHint: A common mistake is to provide multiple values to `-profile` separated by spaces. Please use commas to separate profiles instead,e.g., `-profile docker,test`." - } - if (args[0]) { - log.warn "nf-core pipelines do not accept positional arguments. The positional argument `${args[0]}` has been detected.\n Hint: A common mistake is to provide multiple values to `-profile` separated by spaces. Please use commas to separate profiles instead,e.g., `-profile docker,test`." - } - } -} From 198d114f77d1f1867e553b87a86177f96cfeb9d5 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 26 Jun 2024 14:48:47 +0200 Subject: [PATCH 143/201] Get rid of deprecated modules --- .../dumpsoftwareversions/environment.yml | 7 -- .../custom/dumpsoftwareversions/main.nf | 24 ----- .../custom/dumpsoftwareversions/meta.yml | 37 ------- .../templates/dumpsoftwareversions.py | 101 ------------------ .../dumpsoftwareversions/tests/main.nf.test | 43 -------- .../tests/main.nf.test.snap | 33 ------ .../dumpsoftwareversions/tests/tags.yml | 2 - 7 files changed, 247 deletions(-) delete mode 100644 modules/nf-core/custom/dumpsoftwareversions/environment.yml delete mode 100644 modules/nf-core/custom/dumpsoftwareversions/main.nf delete mode 100644 modules/nf-core/custom/dumpsoftwareversions/meta.yml delete mode 100755 modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py delete mode 100644 modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test delete mode 100644 modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test.snap delete mode 100644 modules/nf-core/custom/dumpsoftwareversions/tests/tags.yml diff --git a/modules/nf-core/custom/dumpsoftwareversions/environment.yml b/modules/nf-core/custom/dumpsoftwareversions/environment.yml deleted file mode 100644 index 9b3272bc..00000000 --- a/modules/nf-core/custom/dumpsoftwareversions/environment.yml +++ /dev/null @@ -1,7 +0,0 @@ -name: custom_dumpsoftwareversions -channels: - - conda-forge - - bioconda - - defaults -dependencies: - - bioconda::multiqc=1.19 diff --git a/modules/nf-core/custom/dumpsoftwareversions/main.nf b/modules/nf-core/custom/dumpsoftwareversions/main.nf deleted file mode 100644 index f2187611..00000000 --- a/modules/nf-core/custom/dumpsoftwareversions/main.nf +++ /dev/null @@ -1,24 +0,0 @@ -process CUSTOM_DUMPSOFTWAREVERSIONS { - label 'process_single' - - // Requires `pyyaml` which does not have a dedicated container but is in the MultiQC container - conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/multiqc:1.19--pyhdfd78af_0' : - 'biocontainers/multiqc:1.19--pyhdfd78af_0' }" - - input: - path versions - - output: - path "software_versions.yml" , emit: yml - path "software_versions_mqc.yml", emit: mqc_yml - path "versions.yml" , emit: versions - - when: - task.ext.when == null || task.ext.when - - script: - def args = task.ext.args ?: '' - template 'dumpsoftwareversions.py' -} diff --git a/modules/nf-core/custom/dumpsoftwareversions/meta.yml b/modules/nf-core/custom/dumpsoftwareversions/meta.yml deleted file mode 100644 index 5f15a5fd..00000000 --- a/modules/nf-core/custom/dumpsoftwareversions/meta.yml +++ /dev/null @@ -1,37 +0,0 @@ -# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json -name: custom_dumpsoftwareversions -description: Custom module used to dump software versions within the nf-core pipeline template -keywords: - - custom - - dump - - version -tools: - - custom: - description: Custom module used to dump software versions within the nf-core pipeline template - homepage: https://github.com/nf-core/tools - documentation: https://github.com/nf-core/tools - licence: ["MIT"] -input: - - versions: - type: file - description: YML file containing software versions - pattern: "*.yml" -output: - - yml: - type: file - description: Standard YML file containing software versions - pattern: "software_versions.yml" - - mqc_yml: - type: file - description: MultiQC custom content YML file containing software versions - pattern: "software_versions_mqc.yml" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" -authors: - - "@drpatelh" - - "@grst" -maintainers: - - "@drpatelh" - - "@grst" diff --git a/modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py b/modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py deleted file mode 100755 index da033408..00000000 --- a/modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py +++ /dev/null @@ -1,101 +0,0 @@ -#!/usr/bin/env python - - -"""Provide functions to merge multiple versions.yml files.""" - - -import yaml -import platform -from textwrap import dedent - - -def _make_versions_html(versions): - """Generate a tabular HTML output of all versions for MultiQC.""" - html = [ - dedent( - """\\ - -
    Process Name \\", - " \\ Software Version
    CUSTOM_DUMPSOFTWAREVERSIONSpython3.11.7
    yaml5.4.1
    TOOL1tool10.11.9
    TOOL2tool21.9
    WorkflowNextflow
    File typeConventional base calls
    File typeConventional base calls
    File typeConventional base calls
    File typeConventional base calls
    File typeConventional base calls
    File typeConventional base calls
    File typeConventional base calls
    File typeConventional base calls
    - - - - - - - - """ - ) - ] - for process, tmp_versions in sorted(versions.items()): - html.append("") - for i, (tool, version) in enumerate(sorted(tmp_versions.items())): - html.append( - dedent( - f"""\\ - - - - - - """ - ) - ) - html.append("") - html.append("
    Process Name Software Version
    {process if (i == 0) else ''}{tool}{version}
    ") - return "\\n".join(html) - - -def main(): - """Load all version files and generate merged output.""" - versions_this_module = {} - versions_this_module["${task.process}"] = { - "python": platform.python_version(), - "yaml": yaml.__version__, - } - - with open("$versions") as f: - versions_by_process = yaml.load(f, Loader=yaml.BaseLoader) | versions_this_module - - # aggregate versions by the module name (derived from fully-qualified process name) - versions_by_module = {} - for process, process_versions in versions_by_process.items(): - module = process.split(":")[-1] - try: - if versions_by_module[module] != process_versions: - raise AssertionError( - "We assume that software versions are the same between all modules. " - "If you see this error-message it means you discovered an edge-case " - "and should open an issue in nf-core/tools. " - ) - except KeyError: - versions_by_module[module] = process_versions - - versions_by_module["Workflow"] = { - "Nextflow": "$workflow.nextflow.version", - "$workflow.manifest.name": "$workflow.manifest.version", - } - - versions_mqc = { - "id": "software_versions", - "section_name": "${workflow.manifest.name} Software Versions", - "section_href": "https://github.com/${workflow.manifest.name}", - "plot_type": "html", - "description": "are collected at run time from the software output.", - "data": _make_versions_html(versions_by_module), - } - - with open("software_versions.yml", "w") as f: - yaml.dump(versions_by_module, f, default_flow_style=False) - with open("software_versions_mqc.yml", "w") as f: - yaml.dump(versions_mqc, f, default_flow_style=False) - - with open("versions.yml", "w") as f: - yaml.dump(versions_this_module, f, default_flow_style=False) - - -if __name__ == "__main__": - main() diff --git a/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test b/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test deleted file mode 100644 index b1e1630b..00000000 --- a/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test +++ /dev/null @@ -1,43 +0,0 @@ -nextflow_process { - - name "Test Process CUSTOM_DUMPSOFTWAREVERSIONS" - script "../main.nf" - process "CUSTOM_DUMPSOFTWAREVERSIONS" - tag "modules" - tag "modules_nfcore" - tag "custom" - tag "dumpsoftwareversions" - tag "custom/dumpsoftwareversions" - - test("Should run without failures") { - when { - process { - """ - def tool1_version = ''' - TOOL1: - tool1: 0.11.9 - '''.stripIndent() - - def tool2_version = ''' - TOOL2: - tool2: 1.9 - '''.stripIndent() - - input[0] = Channel.of(tool1_version, tool2_version).collectFile() - """ - } - } - - then { - assertAll( - { assert process.success }, - { assert snapshot( - process.out.versions, - file(process.out.mqc_yml[0]).readLines()[0..10], - file(process.out.yml[0]).readLines()[0..7] - ).match() - } - ) - } - } -} diff --git a/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test.snap b/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test.snap deleted file mode 100644 index 5f59a936..00000000 --- a/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test.snap +++ /dev/null @@ -1,33 +0,0 @@ -{ - "Should run without failures": { - "content": [ - [ - "versions.yml:md5,76d454d92244589d32455833f7c1ba6d" - ], - [ - "data: \"\\n\\n \\n \\n \\n \\n \\n \\n \\n\\", - " \\n\\n\\n \\n \\n\\", - " \\ \\n\\n\\n\\n \\n \\", - " \\ \\n \\n\\n\\n\\n\\", - " \\n\\n \\n \\n\\", - " \\ \\n\\n\\n\\n\\n\\n \\n\\", - " \\ \\n \\n\\n\\n\\n\\", - " \\n\\n \\n \\n\\" - ], - [ - "CUSTOM_DUMPSOFTWAREVERSIONS:", - " python: 3.11.7", - " yaml: 5.4.1", - "TOOL1:", - " tool1: 0.11.9", - "TOOL2:", - " tool2: '1.9'", - "Workflow:" - ] - ], - "timestamp": "2024-01-09T23:01:18.710682" - } -} \ No newline at end of file diff --git a/modules/nf-core/custom/dumpsoftwareversions/tests/tags.yml b/modules/nf-core/custom/dumpsoftwareversions/tests/tags.yml deleted file mode 100644 index 405aa24a..00000000 --- a/modules/nf-core/custom/dumpsoftwareversions/tests/tags.yml +++ /dev/null @@ -1,2 +0,0 @@ -custom/dumpsoftwareversions: - - modules/nf-core/custom/dumpsoftwareversions/** From 39e10831960909f2f77caac367dd15189feaa33c Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 26 Jun 2024 14:50:13 +0200 Subject: [PATCH 144/201] Add pipeline functions subworkflow --- .../utils_nfcore_chipseq_pipeline/main.nf | 268 ++++++++++++++++++ 1 file changed, 268 insertions(+) create mode 100644 subworkflows/local/utils_nfcore_chipseq_pipeline/main.nf diff --git a/subworkflows/local/utils_nfcore_chipseq_pipeline/main.nf b/subworkflows/local/utils_nfcore_chipseq_pipeline/main.nf new file mode 100644 index 00000000..92daace0 --- /dev/null +++ b/subworkflows/local/utils_nfcore_chipseq_pipeline/main.nf @@ -0,0 +1,268 @@ +// +// Subworkflow with functionality specific to the nf-core/chipseq pipeline +// + +/* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + IMPORT FUNCTIONS / MODULES / SUBWORKFLOWS +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +*/ + +include { UTILS_NFVALIDATION_PLUGIN } from '../../nf-core/utils_nfvalidation_plugin' +include { paramsSummaryMap } from 'plugin/nf-validation' +include { UTILS_NEXTFLOW_PIPELINE } from '../../nf-core/utils_nextflow_pipeline' +include { completionEmail } from '../../nf-core/utils_nfcore_pipeline' +include { completionSummary } from '../../nf-core/utils_nfcore_pipeline' +include { dashedLine } from '../../nf-core/utils_nfcore_pipeline' +include { nfCoreLogo } from '../../nf-core/utils_nfcore_pipeline' +include { imNotification } from '../../nf-core/utils_nfcore_pipeline' +include { UTILS_NFCORE_PIPELINE } from '../../nf-core/utils_nfcore_pipeline' +include { workflowCitation } from '../../nf-core/utils_nfcore_pipeline' + +/* +======================================================================================== + SUBWORKFLOW TO INITIALISE PIPELINE +======================================================================================== +*/ + +workflow PIPELINE_INITIALISATION { + + take: + version // boolean: Display version and exit + help // boolean: Display help text + validate_params // boolean: Boolean whether to validate parameters against the schema at runtime + monochrome_logs // boolean: Do not use coloured log outputs + nextflow_cli_args // array: List of positional nextflow CLI args + outdir // string: The output directory where the results will be saved + + main: + + // + // Print version and exit if required and dump pipeline parameters to JSON file + // + UTILS_NEXTFLOW_PIPELINE ( + version, + true, + outdir, + workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1 + ) + + // + // Validate parameters and generate parameter summary to stdout + // + pre_help_text = nfCoreLogo(monochrome_logs) + post_help_text = '\n' + workflowCitation() + '\n' + dashedLine(monochrome_logs) + def String workflow_command = "nextflow run ${workflow.manifest.name} -profile --input samplesheet.csv --genome GRCh37 --outdir " + UTILS_NFVALIDATION_PLUGIN ( + help, + workflow_command, + pre_help_text, + post_help_text, + validate_params, + "nextflow_schema.json" + ) + + // + // Check config provided to the pipeline + // + UTILS_NFCORE_PIPELINE ( + nextflow_cli_args + ) + + // + // Custom validation for pipeline parameters + // + validateInputParameters() + +} + +/* +======================================================================================== + SUBWORKFLOW FOR PIPELINE COMPLETION +======================================================================================== +*/ + +workflow PIPELINE_COMPLETION { + + take: + email // string: email address + email_on_fail // string: email address sent on pipeline failure + plaintext_email // boolean: Send plain-text email instead of HTML + outdir // path: Path to output directory where results will be published + monochrome_logs // boolean: Disable ANSI colour codes in log output + hook_url // string: hook URL for notifications + multiqc_report // string: Path to MultiQC report + + main: + + summary_params = paramsSummaryMap(workflow, parameters_schema: "nextflow_schema.json") + + // + // Completion email and summary + // + workflow.onComplete { + if (email || email_on_fail) { + completionEmail(summary_params, email, email_on_fail, plaintext_email, outdir, monochrome_logs, multiqc_report.toList()) + } + + completionSummary(monochrome_logs) + + if (hook_url) { + imNotification(summary_params, hook_url) + } + } + + workflow.onError { + log.error "Pipeline failed. Please refer to troubleshooting docs: https://nf-co.re/docs/usage/troubleshooting" + } +} + +/* +======================================================================================== + FUNCTIONS +======================================================================================== +*/ + +// +// Check and validate pipeline parameters +// +def validateInputParameters() { + + genomeExistsError() + + if (!params.fasta) { + error("Genome fasta file not specified with e.g. '--fasta genome.fa' or via a detectable config file.") + } + + if (!params.gtf && !params.gff) { + error("No GTF or GFF3 annotation specified! The pipeline requires at least one of these files.") + } + + if (params.gtf && params.gff) { + gtfGffWarn(log) + } + + if (!params.macs_gsize) { + macsGsizeWarn(log) + } + + if (!params.read_length && !params.macs_gsize) { + error ("Both '--read_length' and '--macs_gsize' not specified! Please specify either to infer MACS2 genome size for peak calling.") + } +} + +// +// Get attribute from genome config file e.g. fasta +// +def getGenomeAttribute(attribute) { + if (params.genomes && params.genome && params.genomes.containsKey(params.genome)) { + if (params.genomes[ params.genome ].containsKey(attribute)) { + return params.genomes[ params.genome ][ attribute ] + } + } + return null +} + +// +// Exit pipeline if incorrect --genome key provided +// +def genomeExistsError() { + if (params.genomes && params.genome && !params.genomes.containsKey(params.genome)) { + def error_string = "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + + " Genome '${params.genome}' not found in any config files provided to the pipeline.\n" + + " Currently, the available genome keys are:\n" + + " ${params.genomes.keySet().join(", ")}\n" + + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" + error(error_string) + } +} + +// +// Get macs genome size (macs_gsize) +// +def getMacsGsize(params) { + def val = null + if (params.genomes && params.genome && params.genomes.containsKey(params.genome)) { + if (params.genomes[ params.genome ].containsKey('macs_gsize')) { + if (params.genomes[ params.genome ][ 'macs_gsize' ].containsKey(params.read_length.toString())) { + val = params.genomes[ params.genome ][ 'macs_gsize' ][ params.read_length.toString() ] + } + } + } + return val +} + +// +// Generate methods description for MultiQC +// +def toolCitationText() { + // TODO nf-core: Optionally add in-text citation tools to this list. + // Can use ternary operators to dynamically construct based conditions, e.g. params["run_xyz"] ? "Tool (Foo et al. 2023)" : "", + // Uncomment function in methodsDescriptionText to render in MultiQC report + def citation_text = [ + "Tools used in the workflow included:", + "FastQC (Andrews 2010),", + "MultiQC (Ewels et al. 2016)", + "." + ].join(' ').trim() + + return citation_text +} + +def toolBibliographyText() { + // TODO nf-core: Optionally add bibliographic entries to this list. + // Can use ternary operators to dynamically construct based conditions, e.g. params["run_xyz"] ? "
  • Author (2023) Pub name, Journal, DOI
  • " : "", + // Uncomment function in methodsDescriptionText to render in MultiQC report + def reference_text = [ + "
  • Andrews S, (2010) FastQC, URL: https://www.bioinformatics.babraham.ac.uk/projects/fastqc/).
  • ", + "
  • Ewels, P., Magnusson, M., Lundin, S., & Käller, M. (2016). MultiQC: summarize analysis results for multiple tools and samples in a single report. Bioinformatics , 32(19), 3047–3048. doi: /10.1093/bioinformatics/btw354
  • " + ].join(' ').trim() + + return reference_text +} + +def methodsDescriptionText(mqc_methods_yaml) { + // Convert to a named map so can be used as with familar NXF ${workflow} variable syntax in the MultiQC YML file + def meta = [:] + meta.workflow = workflow.toMap() + meta["manifest_map"] = workflow.manifest.toMap() + + // Pipeline DOI + meta["doi_text"] = meta.manifest_map.doi ? "(doi: ${meta.manifest_map.doi})" : "" + meta["nodoi_text"] = meta.manifest_map.doi ? "": "
  • If available, make sure to update the text to include the Zenodo DOI of version of the pipeline used.
  • " + + // Tool references + meta["tool_citations"] = "" + meta["tool_bibliography"] = "" + + // TODO nf-core: Only uncomment below if logic in toolCitationText/toolBibliographyText has been filled! + // meta["tool_citations"] = toolCitationText().replaceAll(", \\.", ".").replaceAll("\\. \\.", ".").replaceAll(", \\.", ".") + // meta["tool_bibliography"] = toolBibliographyText() + def methods_text = mqc_methods_yaml.text + + def engine = new groovy.text.SimpleTemplateEngine() + def description_html = engine.createTemplate(methods_text).make(meta) + + return description_html.toString() +} + +// +// Print a warning if both GTF and GFF have been provided +// +def gtfGffWarn(log) { + log.warn "=============================================================================\n" + + " Both '--gtf' and '--gff' parameters have been provided.\n" + + " Using GTF file as priority.\n" + + "===================================================================================" +} + +// +// Print a warning if macs_gsize parameter has not been provided +// +def macsGsizeWarn(log) { + log.warn "=============================================================================\n" + + " --macs_gsize parameter has not been provided.\n" + + " It will be auto-calculated by 'khmer unique-kmers.py' using the '--read_length' parameter.\n" + + " Explicitly provide '--macs_gsize macs2_genome_size' to change this behaviour.\n" + + "===================================================================================" +} \ No newline at end of file From bda31b26bc469e012622d241f2d35886bf94574f Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 26 Jun 2024 14:51:36 +0200 Subject: [PATCH 145/201] Install utils subworkflows --- modules.json | 207 ++++++-- .../nf-core/utils_nextflow_pipeline/main.nf | 126 +++++ .../nf-core/utils_nextflow_pipeline/meta.yml | 38 ++ .../tests/main.function.nf.test | 54 +++ .../tests/main.function.nf.test.snap | 20 + .../tests/main.workflow.nf.test | 111 +++++ .../tests/nextflow.config | 9 + .../utils_nextflow_pipeline/tests/tags.yml | 2 + .../nf-core/utils_nfcore_pipeline/main.nf | 446 ++++++++++++++++++ .../nf-core/utils_nfcore_pipeline/meta.yml | 24 + .../tests/main.function.nf.test | 134 ++++++ .../tests/main.function.nf.test.snap | 166 +++++++ .../tests/main.workflow.nf.test | 29 ++ .../tests/main.workflow.nf.test.snap | 19 + .../tests/nextflow.config | 9 + .../utils_nfcore_pipeline/tests/tags.yml | 2 + .../nf-core/utils_nfvalidation_plugin/main.nf | 62 +++ .../utils_nfvalidation_plugin/meta.yml | 44 ++ .../tests/main.nf.test | 200 ++++++++ .../tests/nextflow_schema.json | 96 ++++ .../utils_nfvalidation_plugin/tests/tags.yml | 2 + 21 files changed, 1753 insertions(+), 47 deletions(-) create mode 100644 subworkflows/nf-core/utils_nextflow_pipeline/main.nf create mode 100644 subworkflows/nf-core/utils_nextflow_pipeline/meta.yml create mode 100644 subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test create mode 100644 subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap create mode 100644 subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test create mode 100644 subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config create mode 100644 subworkflows/nf-core/utils_nextflow_pipeline/tests/tags.yml create mode 100644 subworkflows/nf-core/utils_nfcore_pipeline/main.nf create mode 100644 subworkflows/nf-core/utils_nfcore_pipeline/meta.yml create mode 100644 subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test create mode 100644 subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap create mode 100644 subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test create mode 100644 subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap create mode 100644 subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config create mode 100644 subworkflows/nf-core/utils_nfcore_pipeline/tests/tags.yml create mode 100644 subworkflows/nf-core/utils_nfvalidation_plugin/main.nf create mode 100644 subworkflows/nf-core/utils_nfvalidation_plugin/meta.yml create mode 100644 subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test create mode 100644 subworkflows/nf-core/utils_nfvalidation_plugin/tests/nextflow_schema.json create mode 100644 subworkflows/nf-core/utils_nfvalidation_plugin/tests/tags.yml diff --git a/modules.json b/modules.json index 0ae8b30f..285d38b9 100644 --- a/modules.json +++ b/modules.json @@ -8,177 +8,252 @@ "bowtie2/align": { "branch": "master", "git_sha": "3c77ca9aac783e76c3614a06db3bfe4fef619bde", - "installed_by": ["fastq_align_bowtie2", "modules"] + "installed_by": [ + "fastq_align_bowtie2", + "modules" + ] }, "bowtie2/build": { "branch": "master", "git_sha": "6a24fbe314bb2e6fe6306c29a63076ea87e8eb3c", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "bwa/index": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "bwa/mem": { "branch": "master", "git_sha": "a64788f5ad388f1d2ac5bd5f1f3f8fc81476148c", - "installed_by": ["fastq_align_bwa", "modules"] + "installed_by": [ + "fastq_align_bwa", + "modules" + ] }, "chromap/chromap": { "branch": "master", "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5", - "installed_by": ["fastq_align_chromap", "modules"] + "installed_by": [ + "fastq_align_chromap", + "modules" + ] }, "chromap/index": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] - }, - "custom/dumpsoftwareversions": { - "branch": "master", - "git_sha": "8ec825f465b9c17f9d83000022995b4f7de6fe93", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "custom/getchromsizes": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "deeptools/computematrix": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "deeptools/plotfingerprint": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "deeptools/plotheatmap": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "deeptools/plotprofile": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "fastqc": { "branch": "master", "git_sha": "f4ae1d942bd50c5c0b9bd2de1393ce38315ba57c", - "installed_by": ["fastq_fastqc_umitools_trimgalore", "modules"] + "installed_by": [ + "fastq_fastqc_umitools_trimgalore", + "modules" + ] }, "gffread": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "gunzip": { "branch": "master", "git_sha": "5c460c5a4736974abde2843294f35307ee2b0e5e", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "homer/annotatepeaks": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "khmer/uniquekmers": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "macs2/callpeak": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "multiqc": { "branch": "master", "git_sha": "8ec825f465b9c17f9d83000022995b4f7de6fe93", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "phantompeakqualtools": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "picard/collectmultiplemetrics": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "picard/markduplicates": { "branch": "master", "git_sha": "ec833ac4c29db6005d18baccf3306f557c46b006", - "installed_by": ["bam_markduplicates_picard", "modules"] + "installed_by": [ + "bam_markduplicates_picard", + "modules" + ] }, "picard/mergesamfiles": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "preseq/lcextrap": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "samtools/flagstat": { "branch": "master", "git_sha": "ce0b1aed7d504883061e748f492a31bf44c5777c", - "installed_by": ["bam_stats_samtools", "modules"] + "installed_by": [ + "bam_stats_samtools", + "modules" + ] }, "samtools/idxstats": { "branch": "master", "git_sha": "ce0b1aed7d504883061e748f492a31bf44c5777c", - "installed_by": ["bam_stats_samtools", "modules"] + "installed_by": [ + "bam_stats_samtools", + "modules" + ] }, "samtools/index": { "branch": "master", "git_sha": "ce0b1aed7d504883061e748f492a31bf44c5777c", - "installed_by": ["bam_markduplicates_picard", "bam_sort_stats_samtools", "modules"] + "installed_by": [ + "bam_markduplicates_picard", + "bam_sort_stats_samtools", + "modules" + ] }, "samtools/sort": { "branch": "master", "git_sha": "ce0b1aed7d504883061e748f492a31bf44c5777c", - "installed_by": ["bam_sort_stats_samtools", "modules"] + "installed_by": [ + "bam_sort_stats_samtools", + "modules" + ] }, "samtools/stats": { "branch": "master", "git_sha": "ec833ac4c29db6005d18baccf3306f557c46b006", - "installed_by": ["bam_stats_samtools", "modules"] + "installed_by": [ + "bam_stats_samtools", + "modules" + ] }, "subread/featurecounts": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "trimgalore": { "branch": "master", "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5", - "installed_by": ["fastq_fastqc_umitools_trimgalore", "modules"] + "installed_by": [ + "fastq_fastqc_umitools_trimgalore", + "modules" + ] }, "ucsc/bedgraphtobigwig": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "umitools/extract": { "branch": "master", "git_sha": "65ad3e0b9a4099592e1102e92e10455dc661cf53", - "installed_by": ["fastq_fastqc_umitools_trimgalore"] + "installed_by": [ + "fastq_fastqc_umitools_trimgalore" + ] }, "untar": { "branch": "master", "git_sha": "5c460c5a4736974abde2843294f35307ee2b0e5e", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "untarfiles": { "branch": "master", "git_sha": "5c460c5a4736974abde2843294f35307ee2b0e5e", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] } } }, @@ -187,40 +262,78 @@ "bam_markduplicates_picard": { "branch": "master", "git_sha": "0c38be7e652a0b2f3a37681ee4c0dbdf85677647", - "installed_by": ["subworkflows"] + "installed_by": [ + "subworkflows" + ] }, "bam_sort_stats_samtools": { "branch": "master", "git_sha": "0c38be7e652a0b2f3a37681ee4c0dbdf85677647", - "installed_by": ["fastq_align_bowtie2", "fastq_align_bwa", "fastq_align_chromap"] + "installed_by": [ + "fastq_align_bowtie2", + "fastq_align_bwa", + "fastq_align_chromap" + ] }, "bam_stats_samtools": { "branch": "master", "git_sha": "0c38be7e652a0b2f3a37681ee4c0dbdf85677647", - "installed_by": ["bam_markduplicates_picard", "bam_sort_stats_samtools"] + "installed_by": [ + "bam_markduplicates_picard", + "bam_sort_stats_samtools" + ] }, "fastq_align_bowtie2": { "branch": "master", "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", - "installed_by": ["subworkflows"] + "installed_by": [ + "subworkflows" + ] }, "fastq_align_bwa": { "branch": "master", "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", - "installed_by": ["subworkflows"] + "installed_by": [ + "subworkflows" + ] }, "fastq_align_chromap": { "branch": "master", "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", - "installed_by": ["subworkflows"] + "installed_by": [ + "subworkflows" + ] }, "fastq_fastqc_umitools_trimgalore": { "branch": "master", "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", - "installed_by": ["subworkflows"] + "installed_by": [ + "subworkflows" + ] + }, + "utils_nextflow_pipeline": { + "branch": "master", + "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", + "installed_by": [ + "subworkflows" + ] + }, + "utils_nfcore_pipeline": { + "branch": "master", + "git_sha": "92de218a329bfc9a9033116eb5f65fd270e72ba3", + "installed_by": [ + "subworkflows" + ] + }, + "utils_nfvalidation_plugin": { + "branch": "master", + "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", + "installed_by": [ + "subworkflows" + ] } } } } } -} +} \ No newline at end of file diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/main.nf b/subworkflows/nf-core/utils_nextflow_pipeline/main.nf new file mode 100644 index 00000000..ac31f28f --- /dev/null +++ b/subworkflows/nf-core/utils_nextflow_pipeline/main.nf @@ -0,0 +1,126 @@ +// +// Subworkflow with functionality that may be useful for any Nextflow pipeline +// + +import org.yaml.snakeyaml.Yaml +import groovy.json.JsonOutput +import nextflow.extension.FilesEx + +/* +======================================================================================== + SUBWORKFLOW DEFINITION +======================================================================================== +*/ + +workflow UTILS_NEXTFLOW_PIPELINE { + + take: + print_version // boolean: print version + dump_parameters // boolean: dump parameters + outdir // path: base directory used to publish pipeline results + check_conda_channels // boolean: check conda channels + + main: + + // + // Print workflow version and exit on --version + // + if (print_version) { + log.info "${workflow.manifest.name} ${getWorkflowVersion()}" + System.exit(0) + } + + // + // Dump pipeline parameters to a JSON file + // + if (dump_parameters && outdir) { + dumpParametersToJSON(outdir) + } + + // + // When running with Conda, warn if channels have not been set-up appropriately + // + if (check_conda_channels) { + checkCondaChannels() + } + + emit: + dummy_emit = true +} + +/* +======================================================================================== + FUNCTIONS +======================================================================================== +*/ + +// +// Generate version string +// +def getWorkflowVersion() { + String version_string = "" + if (workflow.manifest.version) { + def prefix_v = workflow.manifest.version[0] != 'v' ? 'v' : '' + version_string += "${prefix_v}${workflow.manifest.version}" + } + + if (workflow.commitId) { + def git_shortsha = workflow.commitId.substring(0, 7) + version_string += "-g${git_shortsha}" + } + + return version_string +} + +// +// Dump pipeline parameters to a JSON file +// +def dumpParametersToJSON(outdir) { + def timestamp = new java.util.Date().format( 'yyyy-MM-dd_HH-mm-ss') + def filename = "params_${timestamp}.json" + def temp_pf = new File(workflow.launchDir.toString(), ".${filename}") + def jsonStr = JsonOutput.toJson(params) + temp_pf.text = JsonOutput.prettyPrint(jsonStr) + + FilesEx.copyTo(temp_pf.toPath(), "${outdir}/pipeline_info/params_${timestamp}.json") + temp_pf.delete() +} + +// +// When running with -profile conda, warn if channels have not been set-up appropriately +// +def checkCondaChannels() { + Yaml parser = new Yaml() + def channels = [] + try { + def config = parser.load("conda config --show channels".execute().text) + channels = config.channels + } catch(NullPointerException | IOException e) { + log.warn "Could not verify conda channel configuration." + return + } + + // Check that all channels are present + // This channel list is ordered by required channel priority. + def required_channels_in_order = ['conda-forge', 'bioconda', 'defaults'] + def channels_missing = ((required_channels_in_order as Set) - (channels as Set)) as Boolean + + // Check that they are in the right order + def channel_priority_violation = false + def n = required_channels_in_order.size() + for (int i = 0; i < n - 1; i++) { + channel_priority_violation |= !(channels.indexOf(required_channels_in_order[i]) < channels.indexOf(required_channels_in_order[i+1])) + } + + if (channels_missing | channel_priority_violation) { + log.warn "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + + " There is a problem with your Conda configuration!\n\n" + + " You will need to set-up the conda-forge and bioconda channels correctly.\n" + + " Please refer to https://bioconda.github.io/\n" + + " The observed channel order is \n" + + " ${channels}\n" + + " but the following channel order is required:\n" + + " ${required_channels_in_order}\n" + + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" + } +} diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/meta.yml b/subworkflows/nf-core/utils_nextflow_pipeline/meta.yml new file mode 100644 index 00000000..e5c3a0a8 --- /dev/null +++ b/subworkflows/nf-core/utils_nextflow_pipeline/meta.yml @@ -0,0 +1,38 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/subworkflows/yaml-schema.json +name: "UTILS_NEXTFLOW_PIPELINE" +description: Subworkflow with functionality that may be useful for any Nextflow pipeline +keywords: + - utility + - pipeline + - initialise + - version +components: [] +input: + - print_version: + type: boolean + description: | + Print the version of the pipeline and exit + - dump_parameters: + type: boolean + description: | + Dump the parameters of the pipeline to a JSON file + - output_directory: + type: directory + description: Path to output dir to write JSON file to. + pattern: "results/" + - check_conda_channel: + type: boolean + description: | + Check if the conda channel priority is correct. +output: + - dummy_emit: + type: boolean + description: | + Dummy emit to make nf-core subworkflows lint happy +authors: + - "@adamrtalbot" + - "@drpatelh" +maintainers: + - "@adamrtalbot" + - "@drpatelh" + - "@maxulysse" diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test b/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test new file mode 100644 index 00000000..68718e4f --- /dev/null +++ b/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test @@ -0,0 +1,54 @@ + +nextflow_function { + + name "Test Functions" + script "subworkflows/nf-core/utils_nextflow_pipeline/main.nf" + config "subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config" + tag 'subworkflows' + tag 'utils_nextflow_pipeline' + tag 'subworkflows/utils_nextflow_pipeline' + + test("Test Function getWorkflowVersion") { + + function "getWorkflowVersion" + + then { + assertAll( + { assert function.success }, + { assert snapshot(function.result).match() } + ) + } + } + + test("Test Function dumpParametersToJSON") { + + function "dumpParametersToJSON" + + when { + function { + """ + // define inputs of the function here. Example: + input[0] = "$outputDir" + """.stripIndent() + } + } + + then { + assertAll( + { assert function.success } + ) + } + } + + test("Test Function checkCondaChannels") { + + function "checkCondaChannels" + + then { + assertAll( + { assert function.success }, + { assert snapshot(function.result).match() } + ) + } + } +} diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap b/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap new file mode 100644 index 00000000..e3f0baf4 --- /dev/null +++ b/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap @@ -0,0 +1,20 @@ +{ + "Test Function getWorkflowVersion": { + "content": [ + "v9.9.9" + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:02:05.308243" + }, + "Test Function checkCondaChannels": { + "content": null, + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:02:12.425833" + } +} \ No newline at end of file diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test b/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test new file mode 100644 index 00000000..ca964ce8 --- /dev/null +++ b/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test @@ -0,0 +1,111 @@ +nextflow_workflow { + + name "Test Workflow UTILS_NEXTFLOW_PIPELINE" + script "../main.nf" + config "subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config" + workflow "UTILS_NEXTFLOW_PIPELINE" + tag 'subworkflows' + tag 'utils_nextflow_pipeline' + tag 'subworkflows/utils_nextflow_pipeline' + + test("Should run no inputs") { + + when { + workflow { + """ + print_version = false + dump_parameters = false + outdir = null + check_conda_channels = false + + input[0] = print_version + input[1] = dump_parameters + input[2] = outdir + input[3] = check_conda_channels + """ + } + } + + then { + assertAll( + { assert workflow.success } + ) + } + } + + test("Should print version") { + + when { + workflow { + """ + print_version = true + dump_parameters = false + outdir = null + check_conda_channels = false + + input[0] = print_version + input[1] = dump_parameters + input[2] = outdir + input[3] = check_conda_channels + """ + } + } + + then { + assertAll( + { assert workflow.success }, + { assert workflow.stdout.contains("nextflow_workflow v9.9.9") } + ) + } + } + + test("Should dump params") { + + when { + workflow { + """ + print_version = false + dump_parameters = true + outdir = 'results' + check_conda_channels = false + + input[0] = false + input[1] = true + input[2] = outdir + input[3] = false + """ + } + } + + then { + assertAll( + { assert workflow.success } + ) + } + } + + test("Should not create params JSON if no output directory") { + + when { + workflow { + """ + print_version = false + dump_parameters = true + outdir = null + check_conda_channels = false + + input[0] = false + input[1] = true + input[2] = outdir + input[3] = false + """ + } + } + + then { + assertAll( + { assert workflow.success } + ) + } + } +} diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config b/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config new file mode 100644 index 00000000..d0a926bf --- /dev/null +++ b/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config @@ -0,0 +1,9 @@ +manifest { + name = 'nextflow_workflow' + author = """nf-core""" + homePage = 'https://127.0.0.1' + description = """Dummy pipeline""" + nextflowVersion = '!>=23.04.0' + version = '9.9.9' + doi = 'https://doi.org/10.5281/zenodo.5070524' +} diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/tests/tags.yml b/subworkflows/nf-core/utils_nextflow_pipeline/tests/tags.yml new file mode 100644 index 00000000..f8476112 --- /dev/null +++ b/subworkflows/nf-core/utils_nextflow_pipeline/tests/tags.yml @@ -0,0 +1,2 @@ +subworkflows/utils_nextflow_pipeline: + - subworkflows/nf-core/utils_nextflow_pipeline/** diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/main.nf b/subworkflows/nf-core/utils_nfcore_pipeline/main.nf new file mode 100644 index 00000000..14558c39 --- /dev/null +++ b/subworkflows/nf-core/utils_nfcore_pipeline/main.nf @@ -0,0 +1,446 @@ +// +// Subworkflow with utility functions specific to the nf-core pipeline template +// + +import org.yaml.snakeyaml.Yaml +import nextflow.extension.FilesEx + +/* +======================================================================================== + SUBWORKFLOW DEFINITION +======================================================================================== +*/ + +workflow UTILS_NFCORE_PIPELINE { + + take: + nextflow_cli_args + + main: + valid_config = checkConfigProvided() + checkProfileProvided(nextflow_cli_args) + + emit: + valid_config +} + +/* +======================================================================================== + FUNCTIONS +======================================================================================== +*/ + +// +// Warn if a -profile or Nextflow config has not been provided to run the pipeline +// +def checkConfigProvided() { + valid_config = true + if (workflow.profile == 'standard' && workflow.configFiles.size() <= 1) { + log.warn "[$workflow.manifest.name] You are attempting to run the pipeline without any custom configuration!\n\n" + + "This will be dependent on your local compute environment but can be achieved via one or more of the following:\n" + + " (1) Using an existing pipeline profile e.g. `-profile docker` or `-profile singularity`\n" + + " (2) Using an existing nf-core/configs for your Institution e.g. `-profile crick` or `-profile uppmax`\n" + + " (3) Using your own local custom config e.g. `-c /path/to/your/custom.config`\n\n" + + "Please refer to the quick start section and usage docs for the pipeline.\n " + valid_config = false + } + return valid_config +} + +// +// Exit pipeline if --profile contains spaces +// +def checkProfileProvided(nextflow_cli_args) { + if (workflow.profile.endsWith(',')) { + error "The `-profile` option cannot end with a trailing comma, please remove it and re-run the pipeline!\n" + + "HINT: A common mistake is to provide multiple values separated by spaces e.g. `-profile test, docker`.\n" + } + if (nextflow_cli_args[0]) { + log.warn "nf-core pipelines do not accept positional arguments. The positional argument `${nextflow_cli_args[0]}` has been detected.\n" + + "HINT: A common mistake is to provide multiple values separated by spaces e.g. `-profile test, docker`.\n" + } +} + +// +// Citation string for pipeline +// +def workflowCitation() { + def temp_doi_ref = "" + String[] manifest_doi = workflow.manifest.doi.tokenize(",") + // Using a loop to handle multiple DOIs + // Removing `https://doi.org/` to handle pipelines using DOIs vs DOI resolvers + // Removing ` ` since the manifest.doi is a string and not a proper list + for (String doi_ref: manifest_doi) temp_doi_ref += " https://doi.org/${doi_ref.replace('https://doi.org/', '').replace(' ', '')}\n" + return "If you use ${workflow.manifest.name} for your analysis please cite:\n\n" + + "* The pipeline\n" + + temp_doi_ref + "\n" + + "* The nf-core framework\n" + + " https://doi.org/10.1038/s41587-020-0439-x\n\n" + + "* Software dependencies\n" + + " https://github.com/${workflow.manifest.name}/blob/master/CITATIONS.md" +} + +// +// Generate workflow version string +// +def getWorkflowVersion() { + String version_string = "" + if (workflow.manifest.version) { + def prefix_v = workflow.manifest.version[0] != 'v' ? 'v' : '' + version_string += "${prefix_v}${workflow.manifest.version}" + } + + if (workflow.commitId) { + def git_shortsha = workflow.commitId.substring(0, 7) + version_string += "-g${git_shortsha}" + } + + return version_string +} + +// +// Get software versions for pipeline +// +def processVersionsFromYAML(yaml_file) { + Yaml yaml = new Yaml() + versions = yaml.load(yaml_file).collectEntries { k, v -> [ k.tokenize(':')[-1], v ] } + return yaml.dumpAsMap(versions).trim() +} + +// +// Get workflow version for pipeline +// +def workflowVersionToYAML() { + return """ + Workflow: + $workflow.manifest.name: ${getWorkflowVersion()} + Nextflow: $workflow.nextflow.version + """.stripIndent().trim() +} + +// +// Get channel of software versions used in pipeline in YAML format +// +def softwareVersionsToYAML(ch_versions) { + return ch_versions + .unique() + .map { processVersionsFromYAML(it) } + .unique() + .mix(Channel.of(workflowVersionToYAML())) +} + +// +// Get workflow summary for MultiQC +// +def paramsSummaryMultiqc(summary_params) { + def summary_section = '' + for (group in summary_params.keySet()) { + def group_params = summary_params.get(group) // This gets the parameters of that particular group + if (group_params) { + summary_section += "

    $group

    \n" + summary_section += "
    \n" + for (param in group_params.keySet()) { + summary_section += "
    $param
    ${group_params.get(param) ?: 'N/A'}
    \n" + } + summary_section += "
    \n" + } + } + + String yaml_file_text = "id: '${workflow.manifest.name.replace('/','-')}-summary'\n" + yaml_file_text += "description: ' - this information is collected when the pipeline is started.'\n" + yaml_file_text += "section_name: '${workflow.manifest.name} Workflow Summary'\n" + yaml_file_text += "section_href: 'https://github.com/${workflow.manifest.name}'\n" + yaml_file_text += "plot_type: 'html'\n" + yaml_file_text += "data: |\n" + yaml_file_text += "${summary_section}" + + return yaml_file_text +} + +// +// nf-core logo +// +def nfCoreLogo(monochrome_logs=true) { + Map colors = logColours(monochrome_logs) + String.format( + """\n + ${dashedLine(monochrome_logs)} + ${colors.green},--.${colors.black}/${colors.green},-.${colors.reset} + ${colors.blue} ___ __ __ __ ___ ${colors.green}/,-._.--~\'${colors.reset} + ${colors.blue} |\\ | |__ __ / ` / \\ |__) |__ ${colors.yellow}} {${colors.reset} + ${colors.blue} | \\| | \\__, \\__/ | \\ |___ ${colors.green}\\`-._,-`-,${colors.reset} + ${colors.green}`._,._,\'${colors.reset} + ${colors.purple} ${workflow.manifest.name} ${getWorkflowVersion()}${colors.reset} + ${dashedLine(monochrome_logs)} + """.stripIndent() + ) +} + +// +// Return dashed line +// +def dashedLine(monochrome_logs=true) { + Map colors = logColours(monochrome_logs) + return "-${colors.dim}----------------------------------------------------${colors.reset}-" +} + +// +// ANSII colours used for terminal logging +// +def logColours(monochrome_logs=true) { + Map colorcodes = [:] + + // Reset / Meta + colorcodes['reset'] = monochrome_logs ? '' : "\033[0m" + colorcodes['bold'] = monochrome_logs ? '' : "\033[1m" + colorcodes['dim'] = monochrome_logs ? '' : "\033[2m" + colorcodes['underlined'] = monochrome_logs ? '' : "\033[4m" + colorcodes['blink'] = monochrome_logs ? '' : "\033[5m" + colorcodes['reverse'] = monochrome_logs ? '' : "\033[7m" + colorcodes['hidden'] = monochrome_logs ? '' : "\033[8m" + + // Regular Colors + colorcodes['black'] = monochrome_logs ? '' : "\033[0;30m" + colorcodes['red'] = monochrome_logs ? '' : "\033[0;31m" + colorcodes['green'] = monochrome_logs ? '' : "\033[0;32m" + colorcodes['yellow'] = monochrome_logs ? '' : "\033[0;33m" + colorcodes['blue'] = monochrome_logs ? '' : "\033[0;34m" + colorcodes['purple'] = monochrome_logs ? '' : "\033[0;35m" + colorcodes['cyan'] = monochrome_logs ? '' : "\033[0;36m" + colorcodes['white'] = monochrome_logs ? '' : "\033[0;37m" + + // Bold + colorcodes['bblack'] = monochrome_logs ? '' : "\033[1;30m" + colorcodes['bred'] = monochrome_logs ? '' : "\033[1;31m" + colorcodes['bgreen'] = monochrome_logs ? '' : "\033[1;32m" + colorcodes['byellow'] = monochrome_logs ? '' : "\033[1;33m" + colorcodes['bblue'] = monochrome_logs ? '' : "\033[1;34m" + colorcodes['bpurple'] = monochrome_logs ? '' : "\033[1;35m" + colorcodes['bcyan'] = monochrome_logs ? '' : "\033[1;36m" + colorcodes['bwhite'] = monochrome_logs ? '' : "\033[1;37m" + + // Underline + colorcodes['ublack'] = monochrome_logs ? '' : "\033[4;30m" + colorcodes['ured'] = monochrome_logs ? '' : "\033[4;31m" + colorcodes['ugreen'] = monochrome_logs ? '' : "\033[4;32m" + colorcodes['uyellow'] = monochrome_logs ? '' : "\033[4;33m" + colorcodes['ublue'] = monochrome_logs ? '' : "\033[4;34m" + colorcodes['upurple'] = monochrome_logs ? '' : "\033[4;35m" + colorcodes['ucyan'] = monochrome_logs ? '' : "\033[4;36m" + colorcodes['uwhite'] = monochrome_logs ? '' : "\033[4;37m" + + // High Intensity + colorcodes['iblack'] = monochrome_logs ? '' : "\033[0;90m" + colorcodes['ired'] = monochrome_logs ? '' : "\033[0;91m" + colorcodes['igreen'] = monochrome_logs ? '' : "\033[0;92m" + colorcodes['iyellow'] = monochrome_logs ? '' : "\033[0;93m" + colorcodes['iblue'] = monochrome_logs ? '' : "\033[0;94m" + colorcodes['ipurple'] = monochrome_logs ? '' : "\033[0;95m" + colorcodes['icyan'] = monochrome_logs ? '' : "\033[0;96m" + colorcodes['iwhite'] = monochrome_logs ? '' : "\033[0;97m" + + // Bold High Intensity + colorcodes['biblack'] = monochrome_logs ? '' : "\033[1;90m" + colorcodes['bired'] = monochrome_logs ? '' : "\033[1;91m" + colorcodes['bigreen'] = monochrome_logs ? '' : "\033[1;92m" + colorcodes['biyellow'] = monochrome_logs ? '' : "\033[1;93m" + colorcodes['biblue'] = monochrome_logs ? '' : "\033[1;94m" + colorcodes['bipurple'] = monochrome_logs ? '' : "\033[1;95m" + colorcodes['bicyan'] = monochrome_logs ? '' : "\033[1;96m" + colorcodes['biwhite'] = monochrome_logs ? '' : "\033[1;97m" + + return colorcodes +} + +// +// Attach the multiqc report to email +// +def attachMultiqcReport(multiqc_report) { + def mqc_report = null + try { + if (workflow.success) { + mqc_report = multiqc_report.getVal() + if (mqc_report.getClass() == ArrayList && mqc_report.size() >= 1) { + if (mqc_report.size() > 1) { + log.warn "[$workflow.manifest.name] Found multiple reports from process 'MULTIQC', will use only one" + } + mqc_report = mqc_report[0] + } + } + } catch (all) { + if (multiqc_report) { + log.warn "[$workflow.manifest.name] Could not attach MultiQC report to summary email" + } + } + return mqc_report +} + +// +// Construct and send completion email +// +def completionEmail(summary_params, email, email_on_fail, plaintext_email, outdir, monochrome_logs=true, multiqc_report=null) { + + // Set up the e-mail variables + def subject = "[$workflow.manifest.name] Successful: $workflow.runName" + if (!workflow.success) { + subject = "[$workflow.manifest.name] FAILED: $workflow.runName" + } + + def summary = [:] + for (group in summary_params.keySet()) { + summary << summary_params[group] + } + + def misc_fields = [:] + misc_fields['Date Started'] = workflow.start + misc_fields['Date Completed'] = workflow.complete + misc_fields['Pipeline script file path'] = workflow.scriptFile + misc_fields['Pipeline script hash ID'] = workflow.scriptId + if (workflow.repository) misc_fields['Pipeline repository Git URL'] = workflow.repository + if (workflow.commitId) misc_fields['Pipeline repository Git Commit'] = workflow.commitId + if (workflow.revision) misc_fields['Pipeline Git branch/tag'] = workflow.revision + misc_fields['Nextflow Version'] = workflow.nextflow.version + misc_fields['Nextflow Build'] = workflow.nextflow.build + misc_fields['Nextflow Compile Timestamp'] = workflow.nextflow.timestamp + + def email_fields = [:] + email_fields['version'] = getWorkflowVersion() + email_fields['runName'] = workflow.runName + email_fields['success'] = workflow.success + email_fields['dateComplete'] = workflow.complete + email_fields['duration'] = workflow.duration + email_fields['exitStatus'] = workflow.exitStatus + email_fields['errorMessage'] = (workflow.errorMessage ?: 'None') + email_fields['errorReport'] = (workflow.errorReport ?: 'None') + email_fields['commandLine'] = workflow.commandLine + email_fields['projectDir'] = workflow.projectDir + email_fields['summary'] = summary << misc_fields + + // On success try attach the multiqc report + def mqc_report = attachMultiqcReport(multiqc_report) + + // Check if we are only sending emails on failure + def email_address = email + if (!email && email_on_fail && !workflow.success) { + email_address = email_on_fail + } + + // Render the TXT template + def engine = new groovy.text.GStringTemplateEngine() + def tf = new File("${workflow.projectDir}/assets/email_template.txt") + def txt_template = engine.createTemplate(tf).make(email_fields) + def email_txt = txt_template.toString() + + // Render the HTML template + def hf = new File("${workflow.projectDir}/assets/email_template.html") + def html_template = engine.createTemplate(hf).make(email_fields) + def email_html = html_template.toString() + + // Render the sendmail template + def max_multiqc_email_size = (params.containsKey('max_multiqc_email_size') ? params.max_multiqc_email_size : 0) as nextflow.util.MemoryUnit + def smail_fields = [ email: email_address, subject: subject, email_txt: email_txt, email_html: email_html, projectDir: "${workflow.projectDir}", mqcFile: mqc_report, mqcMaxSize: max_multiqc_email_size.toBytes() ] + def sf = new File("${workflow.projectDir}/assets/sendmail_template.txt") + def sendmail_template = engine.createTemplate(sf).make(smail_fields) + def sendmail_html = sendmail_template.toString() + + // Send the HTML e-mail + Map colors = logColours(monochrome_logs) + if (email_address) { + try { + if (plaintext_email) { throw GroovyException('Send plaintext e-mail, not HTML') } + // Try to send HTML e-mail using sendmail + def sendmail_tf = new File(workflow.launchDir.toString(), ".sendmail_tmp.html") + sendmail_tf.withWriter { w -> w << sendmail_html } + [ 'sendmail', '-t' ].execute() << sendmail_html + log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Sent summary e-mail to $email_address (sendmail)-" + } catch (all) { + // Catch failures and try with plaintext + def mail_cmd = [ 'mail', '-s', subject, '--content-type=text/html', email_address ] + mail_cmd.execute() << email_html + log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Sent summary e-mail to $email_address (mail)-" + } + } + + // Write summary e-mail HTML to a file + def output_hf = new File(workflow.launchDir.toString(), ".pipeline_report.html") + output_hf.withWriter { w -> w << email_html } + FilesEx.copyTo(output_hf.toPath(), "${outdir}/pipeline_info/pipeline_report.html"); + output_hf.delete() + + // Write summary e-mail TXT to a file + def output_tf = new File(workflow.launchDir.toString(), ".pipeline_report.txt") + output_tf.withWriter { w -> w << email_txt } + FilesEx.copyTo(output_tf.toPath(), "${outdir}/pipeline_info/pipeline_report.txt"); + output_tf.delete() +} + +// +// Print pipeline summary on completion +// +def completionSummary(monochrome_logs=true) { + Map colors = logColours(monochrome_logs) + if (workflow.success) { + if (workflow.stats.ignoredCount == 0) { + log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Pipeline completed successfully${colors.reset}-" + } else { + log.info "-${colors.purple}[$workflow.manifest.name]${colors.yellow} Pipeline completed successfully, but with errored process(es) ${colors.reset}-" + } + } else { + log.info "-${colors.purple}[$workflow.manifest.name]${colors.red} Pipeline completed with errors${colors.reset}-" + } +} + +// +// Construct and send a notification to a web server as JSON e.g. Microsoft Teams and Slack +// +def imNotification(summary_params, hook_url) { + def summary = [:] + for (group in summary_params.keySet()) { + summary << summary_params[group] + } + + def misc_fields = [:] + misc_fields['start'] = workflow.start + misc_fields['complete'] = workflow.complete + misc_fields['scriptfile'] = workflow.scriptFile + misc_fields['scriptid'] = workflow.scriptId + if (workflow.repository) misc_fields['repository'] = workflow.repository + if (workflow.commitId) misc_fields['commitid'] = workflow.commitId + if (workflow.revision) misc_fields['revision'] = workflow.revision + misc_fields['nxf_version'] = workflow.nextflow.version + misc_fields['nxf_build'] = workflow.nextflow.build + misc_fields['nxf_timestamp'] = workflow.nextflow.timestamp + + def msg_fields = [:] + msg_fields['version'] = getWorkflowVersion() + msg_fields['runName'] = workflow.runName + msg_fields['success'] = workflow.success + msg_fields['dateComplete'] = workflow.complete + msg_fields['duration'] = workflow.duration + msg_fields['exitStatus'] = workflow.exitStatus + msg_fields['errorMessage'] = (workflow.errorMessage ?: 'None') + msg_fields['errorReport'] = (workflow.errorReport ?: 'None') + msg_fields['commandLine'] = workflow.commandLine.replaceFirst(/ +--hook_url +[^ ]+/, "") + msg_fields['projectDir'] = workflow.projectDir + msg_fields['summary'] = summary << misc_fields + + // Render the JSON template + def engine = new groovy.text.GStringTemplateEngine() + // Different JSON depending on the service provider + // Defaults to "Adaptive Cards" (https://adaptivecards.io), except Slack which has its own format + def json_path = hook_url.contains("hooks.slack.com") ? "slackreport.json" : "adaptivecard.json" + def hf = new File("${workflow.projectDir}/assets/${json_path}") + def json_template = engine.createTemplate(hf).make(msg_fields) + def json_message = json_template.toString() + + // POST + def post = new URL(hook_url).openConnection(); + post.setRequestMethod("POST") + post.setDoOutput(true) + post.setRequestProperty("Content-Type", "application/json") + post.getOutputStream().write(json_message.getBytes("UTF-8")); + def postRC = post.getResponseCode(); + if (! postRC.equals(200)) { + log.warn(post.getErrorStream().getText()); + } +} diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/meta.yml b/subworkflows/nf-core/utils_nfcore_pipeline/meta.yml new file mode 100644 index 00000000..d08d2434 --- /dev/null +++ b/subworkflows/nf-core/utils_nfcore_pipeline/meta.yml @@ -0,0 +1,24 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/subworkflows/yaml-schema.json +name: "UTILS_NFCORE_PIPELINE" +description: Subworkflow with utility functions specific to the nf-core pipeline template +keywords: + - utility + - pipeline + - initialise + - version +components: [] +input: + - nextflow_cli_args: + type: list + description: | + Nextflow CLI positional arguments +output: + - success: + type: boolean + description: | + Dummy output to indicate success +authors: + - "@adamrtalbot" +maintainers: + - "@adamrtalbot" + - "@maxulysse" diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test new file mode 100644 index 00000000..1dc317f8 --- /dev/null +++ b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test @@ -0,0 +1,134 @@ + +nextflow_function { + + name "Test Functions" + script "../main.nf" + config "subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config" + tag "subworkflows" + tag "subworkflows_nfcore" + tag "utils_nfcore_pipeline" + tag "subworkflows/utils_nfcore_pipeline" + + test("Test Function checkConfigProvided") { + + function "checkConfigProvided" + + then { + assertAll( + { assert function.success }, + { assert snapshot(function.result).match() } + ) + } + } + + test("Test Function checkProfileProvided") { + + function "checkProfileProvided" + + when { + function { + """ + input[0] = [] + """ + } + } + + then { + assertAll( + { assert function.success }, + { assert snapshot(function.result).match() } + ) + } + } + + test("Test Function workflowCitation") { + + function "workflowCitation" + + then { + assertAll( + { assert function.success }, + { assert snapshot(function.result).match() } + ) + } + } + + test("Test Function nfCoreLogo") { + + function "nfCoreLogo" + + when { + function { + """ + input[0] = false + """ + } + } + + then { + assertAll( + { assert function.success }, + { assert snapshot(function.result).match() } + ) + } + } + + test("Test Function dashedLine") { + + function "dashedLine" + + when { + function { + """ + input[0] = false + """ + } + } + + then { + assertAll( + { assert function.success }, + { assert snapshot(function.result).match() } + ) + } + } + + test("Test Function without logColours") { + + function "logColours" + + when { + function { + """ + input[0] = true + """ + } + } + + then { + assertAll( + { assert function.success }, + { assert snapshot(function.result).match() } + ) + } + } + + test("Test Function with logColours") { + function "logColours" + + when { + function { + """ + input[0] = false + """ + } + } + + then { + assertAll( + { assert function.success }, + { assert snapshot(function.result).match() } + ) + } + } +} diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap new file mode 100644 index 00000000..1037232c --- /dev/null +++ b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap @@ -0,0 +1,166 @@ +{ + "Test Function checkProfileProvided": { + "content": null, + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:03:03.360873" + }, + "Test Function checkConfigProvided": { + "content": [ + true + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:02:59.729647" + }, + "Test Function nfCoreLogo": { + "content": [ + "\n\n-\u001b[2m----------------------------------------------------\u001b[0m-\n \u001b[0;32m,--.\u001b[0;30m/\u001b[0;32m,-.\u001b[0m\n\u001b[0;34m ___ __ __ __ ___ \u001b[0;32m/,-._.--~'\u001b[0m\n\u001b[0;34m |\\ | |__ __ / ` / \\ |__) |__ \u001b[0;33m} {\u001b[0m\n\u001b[0;34m | \\| | \\__, \\__/ | \\ |___ \u001b[0;32m\\`-._,-`-,\u001b[0m\n \u001b[0;32m`._,._,'\u001b[0m\n\u001b[0;35m nextflow_workflow v9.9.9\u001b[0m\n-\u001b[2m----------------------------------------------------\u001b[0m-\n" + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:03:10.562934" + }, + "Test Function workflowCitation": { + "content": [ + "If you use nextflow_workflow for your analysis please cite:\n\n* The pipeline\n https://doi.org/10.5281/zenodo.5070524\n\n* The nf-core framework\n https://doi.org/10.1038/s41587-020-0439-x\n\n* Software dependencies\n https://github.com/nextflow_workflow/blob/master/CITATIONS.md" + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:03:07.019761" + }, + "Test Function without logColours": { + "content": [ + { + "reset": "", + "bold": "", + "dim": "", + "underlined": "", + "blink": "", + "reverse": "", + "hidden": "", + "black": "", + "red": "", + "green": "", + "yellow": "", + "blue": "", + "purple": "", + "cyan": "", + "white": "", + "bblack": "", + "bred": "", + "bgreen": "", + "byellow": "", + "bblue": "", + "bpurple": "", + "bcyan": "", + "bwhite": "", + "ublack": "", + "ured": "", + "ugreen": "", + "uyellow": "", + "ublue": "", + "upurple": "", + "ucyan": "", + "uwhite": "", + "iblack": "", + "ired": "", + "igreen": "", + "iyellow": "", + "iblue": "", + "ipurple": "", + "icyan": "", + "iwhite": "", + "biblack": "", + "bired": "", + "bigreen": "", + "biyellow": "", + "biblue": "", + "bipurple": "", + "bicyan": "", + "biwhite": "" + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:03:17.969323" + }, + "Test Function dashedLine": { + "content": [ + "-\u001b[2m----------------------------------------------------\u001b[0m-" + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:03:14.366181" + }, + "Test Function with logColours": { + "content": [ + { + "reset": "\u001b[0m", + "bold": "\u001b[1m", + "dim": "\u001b[2m", + "underlined": "\u001b[4m", + "blink": "\u001b[5m", + "reverse": "\u001b[7m", + "hidden": "\u001b[8m", + "black": "\u001b[0;30m", + "red": "\u001b[0;31m", + "green": "\u001b[0;32m", + "yellow": "\u001b[0;33m", + "blue": "\u001b[0;34m", + "purple": "\u001b[0;35m", + "cyan": "\u001b[0;36m", + "white": "\u001b[0;37m", + "bblack": "\u001b[1;30m", + "bred": "\u001b[1;31m", + "bgreen": "\u001b[1;32m", + "byellow": "\u001b[1;33m", + "bblue": "\u001b[1;34m", + "bpurple": "\u001b[1;35m", + "bcyan": "\u001b[1;36m", + "bwhite": "\u001b[1;37m", + "ublack": "\u001b[4;30m", + "ured": "\u001b[4;31m", + "ugreen": "\u001b[4;32m", + "uyellow": "\u001b[4;33m", + "ublue": "\u001b[4;34m", + "upurple": "\u001b[4;35m", + "ucyan": "\u001b[4;36m", + "uwhite": "\u001b[4;37m", + "iblack": "\u001b[0;90m", + "ired": "\u001b[0;91m", + "igreen": "\u001b[0;92m", + "iyellow": "\u001b[0;93m", + "iblue": "\u001b[0;94m", + "ipurple": "\u001b[0;95m", + "icyan": "\u001b[0;96m", + "iwhite": "\u001b[0;97m", + "biblack": "\u001b[1;90m", + "bired": "\u001b[1;91m", + "bigreen": "\u001b[1;92m", + "biyellow": "\u001b[1;93m", + "biblue": "\u001b[1;94m", + "bipurple": "\u001b[1;95m", + "bicyan": "\u001b[1;96m", + "biwhite": "\u001b[1;97m" + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:03:21.714424" + } +} \ No newline at end of file diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test new file mode 100644 index 00000000..8940d32d --- /dev/null +++ b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test @@ -0,0 +1,29 @@ +nextflow_workflow { + + name "Test Workflow UTILS_NFCORE_PIPELINE" + script "../main.nf" + config "subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config" + workflow "UTILS_NFCORE_PIPELINE" + tag "subworkflows" + tag "subworkflows_nfcore" + tag "utils_nfcore_pipeline" + tag "subworkflows/utils_nfcore_pipeline" + + test("Should run without failures") { + + when { + workflow { + """ + input[0] = [] + """ + } + } + + then { + assertAll( + { assert workflow.success }, + { assert snapshot(workflow.out).match() } + ) + } + } +} diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap new file mode 100644 index 00000000..859d1030 --- /dev/null +++ b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap @@ -0,0 +1,19 @@ +{ + "Should run without failures": { + "content": [ + { + "0": [ + true + ], + "valid_config": [ + true + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:03:25.726491" + } +} \ No newline at end of file diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config b/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config new file mode 100644 index 00000000..d0a926bf --- /dev/null +++ b/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config @@ -0,0 +1,9 @@ +manifest { + name = 'nextflow_workflow' + author = """nf-core""" + homePage = 'https://127.0.0.1' + description = """Dummy pipeline""" + nextflowVersion = '!>=23.04.0' + version = '9.9.9' + doi = 'https://doi.org/10.5281/zenodo.5070524' +} diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/tests/tags.yml b/subworkflows/nf-core/utils_nfcore_pipeline/tests/tags.yml new file mode 100644 index 00000000..ac8523c9 --- /dev/null +++ b/subworkflows/nf-core/utils_nfcore_pipeline/tests/tags.yml @@ -0,0 +1,2 @@ +subworkflows/utils_nfcore_pipeline: + - subworkflows/nf-core/utils_nfcore_pipeline/** diff --git a/subworkflows/nf-core/utils_nfvalidation_plugin/main.nf b/subworkflows/nf-core/utils_nfvalidation_plugin/main.nf new file mode 100644 index 00000000..2585b65d --- /dev/null +++ b/subworkflows/nf-core/utils_nfvalidation_plugin/main.nf @@ -0,0 +1,62 @@ +// +// Subworkflow that uses the nf-validation plugin to render help text and parameter summary +// + +/* +======================================================================================== + IMPORT NF-VALIDATION PLUGIN +======================================================================================== +*/ + +include { paramsHelp } from 'plugin/nf-validation' +include { paramsSummaryLog } from 'plugin/nf-validation' +include { validateParameters } from 'plugin/nf-validation' + +/* +======================================================================================== + SUBWORKFLOW DEFINITION +======================================================================================== +*/ + +workflow UTILS_NFVALIDATION_PLUGIN { + + take: + print_help // boolean: print help + workflow_command // string: default commmand used to run pipeline + pre_help_text // string: string to be printed before help text and summary log + post_help_text // string: string to be printed after help text and summary log + validate_params // boolean: validate parameters + schema_filename // path: JSON schema file, null to use default value + + main: + + log.debug "Using schema file: ${schema_filename}" + + // Default values for strings + pre_help_text = pre_help_text ?: '' + post_help_text = post_help_text ?: '' + workflow_command = workflow_command ?: '' + + // + // Print help message if needed + // + if (print_help) { + log.info pre_help_text + paramsHelp(workflow_command, parameters_schema: schema_filename) + post_help_text + System.exit(0) + } + + // + // Print parameter summary to stdout + // + log.info pre_help_text + paramsSummaryLog(workflow, parameters_schema: schema_filename) + post_help_text + + // + // Validate parameters relative to the parameter JSON schema + // + if (validate_params){ + validateParameters(parameters_schema: schema_filename) + } + + emit: + dummy_emit = true +} diff --git a/subworkflows/nf-core/utils_nfvalidation_plugin/meta.yml b/subworkflows/nf-core/utils_nfvalidation_plugin/meta.yml new file mode 100644 index 00000000..3d4a6b04 --- /dev/null +++ b/subworkflows/nf-core/utils_nfvalidation_plugin/meta.yml @@ -0,0 +1,44 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/subworkflows/yaml-schema.json +name: "UTILS_NFVALIDATION_PLUGIN" +description: Use nf-validation to initiate and validate a pipeline +keywords: + - utility + - pipeline + - initialise + - validation +components: [] +input: + - print_help: + type: boolean + description: | + Print help message and exit + - workflow_command: + type: string + description: | + The command to run the workflow e.g. "nextflow run main.nf" + - pre_help_text: + type: string + description: | + Text to print before the help message + - post_help_text: + type: string + description: | + Text to print after the help message + - validate_params: + type: boolean + description: | + Validate the parameters and error if invalid. + - schema_filename: + type: string + description: | + The filename of the schema to validate against. +output: + - dummy_emit: + type: boolean + description: | + Dummy emit to make nf-core subworkflows lint happy +authors: + - "@adamrtalbot" +maintainers: + - "@adamrtalbot" + - "@maxulysse" diff --git a/subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test b/subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test new file mode 100644 index 00000000..5784a33f --- /dev/null +++ b/subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test @@ -0,0 +1,200 @@ +nextflow_workflow { + + name "Test Workflow UTILS_NFVALIDATION_PLUGIN" + script "../main.nf" + workflow "UTILS_NFVALIDATION_PLUGIN" + tag "subworkflows" + tag "subworkflows_nfcore" + tag "plugin/nf-validation" + tag "'plugin/nf-validation'" + tag "utils_nfvalidation_plugin" + tag "subworkflows/utils_nfvalidation_plugin" + + test("Should run nothing") { + + when { + + params { + monochrome_logs = true + test_data = '' + } + + workflow { + """ + help = false + workflow_command = null + pre_help_text = null + post_help_text = null + validate_params = false + schema_filename = "$moduleTestDir/nextflow_schema.json" + + input[0] = help + input[1] = workflow_command + input[2] = pre_help_text + input[3] = post_help_text + input[4] = validate_params + input[5] = schema_filename + """ + } + } + + then { + assertAll( + { assert workflow.success } + ) + } + } + + test("Should run help") { + + + when { + + params { + monochrome_logs = true + test_data = '' + } + workflow { + """ + help = true + workflow_command = null + pre_help_text = null + post_help_text = null + validate_params = false + schema_filename = "$moduleTestDir/nextflow_schema.json" + + input[0] = help + input[1] = workflow_command + input[2] = pre_help_text + input[3] = post_help_text + input[4] = validate_params + input[5] = schema_filename + """ + } + } + + then { + assertAll( + { assert workflow.success }, + { assert workflow.exitStatus == 0 }, + { assert workflow.stdout.any { it.contains('Input/output options') } }, + { assert workflow.stdout.any { it.contains('--outdir') } } + ) + } + } + + test("Should run help with command") { + + when { + + params { + monochrome_logs = true + test_data = '' + } + workflow { + """ + help = true + workflow_command = "nextflow run noorg/doesntexist" + pre_help_text = null + post_help_text = null + validate_params = false + schema_filename = "$moduleTestDir/nextflow_schema.json" + + input[0] = help + input[1] = workflow_command + input[2] = pre_help_text + input[3] = post_help_text + input[4] = validate_params + input[5] = schema_filename + """ + } + } + + then { + assertAll( + { assert workflow.success }, + { assert workflow.exitStatus == 0 }, + { assert workflow.stdout.any { it.contains('nextflow run noorg/doesntexist') } }, + { assert workflow.stdout.any { it.contains('Input/output options') } }, + { assert workflow.stdout.any { it.contains('--outdir') } } + ) + } + } + + test("Should run help with extra text") { + + + when { + + params { + monochrome_logs = true + test_data = '' + } + workflow { + """ + help = true + workflow_command = "nextflow run noorg/doesntexist" + pre_help_text = "pre-help-text" + post_help_text = "post-help-text" + validate_params = false + schema_filename = "$moduleTestDir/nextflow_schema.json" + + input[0] = help + input[1] = workflow_command + input[2] = pre_help_text + input[3] = post_help_text + input[4] = validate_params + input[5] = schema_filename + """ + } + } + + then { + assertAll( + { assert workflow.success }, + { assert workflow.exitStatus == 0 }, + { assert workflow.stdout.any { it.contains('pre-help-text') } }, + { assert workflow.stdout.any { it.contains('nextflow run noorg/doesntexist') } }, + { assert workflow.stdout.any { it.contains('Input/output options') } }, + { assert workflow.stdout.any { it.contains('--outdir') } }, + { assert workflow.stdout.any { it.contains('post-help-text') } } + ) + } + } + + test("Should validate params") { + + when { + + params { + monochrome_logs = true + test_data = '' + outdir = 1 + } + workflow { + """ + help = false + workflow_command = null + pre_help_text = null + post_help_text = null + validate_params = true + schema_filename = "$moduleTestDir/nextflow_schema.json" + + input[0] = help + input[1] = workflow_command + input[2] = pre_help_text + input[3] = post_help_text + input[4] = validate_params + input[5] = schema_filename + """ + } + } + + then { + assertAll( + { assert workflow.failed }, + { assert workflow.stdout.any { it.contains('ERROR ~ ERROR: Validation of pipeline parameters failed!') } } + ) + } + } +} diff --git a/subworkflows/nf-core/utils_nfvalidation_plugin/tests/nextflow_schema.json b/subworkflows/nf-core/utils_nfvalidation_plugin/tests/nextflow_schema.json new file mode 100644 index 00000000..7626c1c9 --- /dev/null +++ b/subworkflows/nf-core/utils_nfvalidation_plugin/tests/nextflow_schema.json @@ -0,0 +1,96 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "https://raw.githubusercontent.com/./master/nextflow_schema.json", + "title": ". pipeline parameters", + "description": "", + "type": "object", + "definitions": { + "input_output_options": { + "title": "Input/output options", + "type": "object", + "fa_icon": "fas fa-terminal", + "description": "Define where the pipeline should find input data and save output data.", + "required": ["outdir"], + "properties": { + "validate_params": { + "type": "boolean", + "description": "Validate parameters?", + "default": true, + "hidden": true + }, + "outdir": { + "type": "string", + "format": "directory-path", + "description": "The output directory where the results will be saved. You have to use absolute paths to storage on Cloud infrastructure.", + "fa_icon": "fas fa-folder-open" + }, + "test_data_base": { + "type": "string", + "default": "https://raw.githubusercontent.com/nf-core/test-datasets/modules", + "description": "Base for test data directory", + "hidden": true + }, + "test_data": { + "type": "string", + "description": "Fake test data param", + "hidden": true + } + } + }, + "generic_options": { + "title": "Generic options", + "type": "object", + "fa_icon": "fas fa-file-import", + "description": "Less common options for the pipeline, typically set in a config file.", + "help_text": "These options are common to all nf-core pipelines and allow you to customise some of the core preferences for how the pipeline runs.\n\nTypically these options would be set in a Nextflow config file loaded for all pipeline runs, such as `~/.nextflow/config`.", + "properties": { + "help": { + "type": "boolean", + "description": "Display help text.", + "fa_icon": "fas fa-question-circle", + "hidden": true + }, + "version": { + "type": "boolean", + "description": "Display version and exit.", + "fa_icon": "fas fa-question-circle", + "hidden": true + }, + "logo": { + "type": "boolean", + "default": true, + "description": "Display nf-core logo in console output.", + "fa_icon": "fas fa-image", + "hidden": true + }, + "singularity_pull_docker_container": { + "type": "boolean", + "description": "Pull Singularity container from Docker?", + "hidden": true + }, + "publish_dir_mode": { + "type": "string", + "default": "copy", + "description": "Method used to save pipeline results to output directory.", + "help_text": "The Nextflow `publishDir` option specifies which intermediate files should be saved to the output directory. This option tells the pipeline what method should be used to move these files. See [Nextflow docs](https://www.nextflow.io/docs/latest/process.html#publishdir) for details.", + "fa_icon": "fas fa-copy", + "enum": ["symlink", "rellink", "link", "copy", "copyNoFollow", "move"], + "hidden": true + }, + "monochrome_logs": { + "type": "boolean", + "description": "Use monochrome_logs", + "hidden": true + } + } + } + }, + "allOf": [ + { + "$ref": "#/definitions/input_output_options" + }, + { + "$ref": "#/definitions/generic_options" + } + ] +} diff --git a/subworkflows/nf-core/utils_nfvalidation_plugin/tests/tags.yml b/subworkflows/nf-core/utils_nfvalidation_plugin/tests/tags.yml new file mode 100644 index 00000000..60b1cfff --- /dev/null +++ b/subworkflows/nf-core/utils_nfvalidation_plugin/tests/tags.yml @@ -0,0 +1,2 @@ +subworkflows/utils_nfvalidation_plugin: + - subworkflows/nf-core/utils_nfvalidation_plugin/** From 1b3dd1b39dcfb4e7677f0a4e9ba8318c016614c9 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 26 Jun 2024 14:52:20 +0200 Subject: [PATCH 146/201] Update modules config --- conf/modules.config | 8 -------- 1 file changed, 8 deletions(-) diff --git a/conf/modules.config b/conf/modules.config index 7f923394..59af9e66 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -30,14 +30,6 @@ process { ] } - withName: CUSTOM_DUMPSOFTWAREVERSIONS { - publishDir = [ - path: { "${params.outdir}/pipeline_info" }, - mode: params.publish_dir_mode, - pattern: '*_versions.yml' - ] - } - withName: 'KHMER_UNIQUEKMERS' { publishDir = [ enabled: false ] } From 4cf206c1f55ff2d35182d9da982dc27bdacc0864 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 26 Jun 2024 14:52:55 +0200 Subject: [PATCH 147/201] Update multiqc --- modules/local/multiqc.nf | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/modules/local/multiqc.nf b/modules/local/multiqc.nf index f5b6092e..31da0b07 100644 --- a/modules/local/multiqc.nf +++ b/modules/local/multiqc.nf @@ -7,11 +7,9 @@ process MULTIQC { 'biocontainers/multiqc:1.13a--pyhdfd78af_1' }" input: + path workflow_summary path multiqc_config path mqc_custom_config - path software_versions - path workflow_summary - path methods_description path logo path ('fastqc/*') From 933dede70004a452d09e5bf3e1f8b56e6a9b2fd0 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 26 Jun 2024 14:53:09 +0200 Subject: [PATCH 148/201] Update prepare_genome --- subworkflows/local/prepare_genome.nf | 95 +++++++++++++++------------- 1 file changed, 52 insertions(+), 43 deletions(-) diff --git a/subworkflows/local/prepare_genome.nf b/subworkflows/local/prepare_genome.nf index bd7033cb..f3bc02eb 100644 --- a/subworkflows/local/prepare_genome.nf +++ b/subworkflows/local/prepare_genome.nf @@ -27,39 +27,50 @@ include { STAR_GENOMEGENERATE } from '../../modules/local/star_genomegenera workflow PREPARE_GENOME { take: + genome // string: genome name + genomes // map: genome attributes prepare_tool_index // string : tool to prepare index for - + fasta // path: path to genome fasta file + gtf // file: /path/to/genome.gtf + gff // file: /path/to/genome.gff + blacklist // file: /path/to/blacklist.bed + gene_bed // file: /path/to/gene.bed + bwa_index // file: /path/to/bwa/index/ + bowtie2_index // file: /path/to/bowtie2/index/ + chromap_index // file: /path/to/chromap/index/ + star_index // file: /path/to/star/index/ + main: ch_versions = Channel.empty() - + // // Uncompress genome fasta file if required // ch_fasta = Channel.empty() - if (params.fasta.endsWith('.gz')) { - ch_fasta = GUNZIP_FASTA ( [ [:], params.fasta ] ).gunzip.map{ it[1] } + if (fasta.endsWith('.gz')) { + ch_fasta = GUNZIP_FASTA ( [ [:], fasta ] ).gunzip.map{ it[1] } ch_versions = ch_versions.mix(GUNZIP_FASTA.out.versions) } else { - ch_fasta = Channel.value(file(params.fasta)) + ch_fasta = Channel.value(file(fasta)) } // // Uncompress GTF annotation file or create from GFF3 if required // - if (params.gtf) { - if (params.gtf.endsWith('.gz')) { - ch_gtf = GUNZIP_GTF ( [ [:], params.gtf ] ).gunzip.map{ it[1] } + if (gtf) { + if (gtf.endsWith('.gz')) { + ch_gtf = GUNZIP_GTF ( [ [:], gtf ] ).gunzip.map{ it[1] } ch_versions = ch_versions.mix(GUNZIP_GTF.out.versions) } else { - ch_gtf = file(params.gtf) + ch_gtf = Channel.value(file(gtf)) } - } else if (params.gff) { - if (params.gff.endsWith('.gz')) { - ch_gff = GUNZIP_GFF ( [ [:], params.gff ] ).gunzip.map{ it[1] } + } else if (gff) { + if (gff.endsWith('.gz')) { + ch_gff = GUNZIP_GFF ( [ [:], gff ] ).gunzip.map{ it[1] } ch_versions = ch_versions.mix(GUNZIP_GFF.out.versions) } else { - ch_gff = file(params.gff) + ch_gff = Channel.value(file(gff)) } ch_gtf = GFFREAD ( ch_gff ).gtf ch_versions = ch_versions.mix(GFFREAD.out.versions) @@ -69,12 +80,12 @@ workflow PREPARE_GENOME { // Uncompress blacklist file if required // ch_blacklist = Channel.empty() - if (params.blacklist) { - if (params.blacklist.endsWith('.gz')) { - ch_blacklist = GUNZIP_BLACKLIST ( [ [:], params.blacklist ] ).gunzip.map{ it[1] } + if (blacklist) { + if (blacklist.endsWith('.gz')) { + ch_blacklist = GUNZIP_BLACKLIST ( [ [:], blacklist ] ).gunzip.map{ it[1] } ch_versions = ch_versions.mix(GUNZIP_BLACKLIST.out.versions) } else { - ch_blacklist = Channel.fromPath(file(params.blacklist)) + ch_blacklist = Channel.value(file(blacklist)) } } @@ -85,10 +96,10 @@ workflow PREPARE_GENOME { // If --gtf is supplied along with --genome // Make gene bed from supplied --gtf instead of using iGenomes one automatically def make_bed = false - if (!params.gene_bed) { + if (!gene_bed) { make_bed = true - } else if (params.genome && params.gtf) { - if (params.genomes[ params.genome ].gtf != params.gtf) { + } else if (genome && gtf) { + if (genomes[ genome ].gtf != gtf) { make_bed = true } } @@ -97,11 +108,11 @@ workflow PREPARE_GENOME { ch_gene_bed = GTF2BED ( ch_gtf ).bed ch_versions = ch_versions.mix(GTF2BED.out.versions) } else { - if (params.gene_bed.endsWith('.gz')) { - ch_gene_bed = GUNZIP_GENE_BED ( [ [:], params.gene_bed ] ).gunzip.map{ it[1] } + if (gene_bed.endsWith('.gz')) { + ch_gene_bed = GUNZIP_GENE_BED ( [ [:], gene_bed ] ).gunzip.map{ it[1] } ch_versions = ch_versions.mix(GUNZIP_GENE_BED.out.versions) } else { - ch_gene_bed = Channel.value(file(params.gene_bed)) + ch_gene_bed = Channel.value(file(gene_bed)) } } @@ -119,24 +130,23 @@ workflow PREPARE_GENOME { ch_genome_filtered_bed = Channel.empty() GENOME_BLACKLIST_REGIONS ( - CUSTOM_GETCHROMSIZES.out.sizes.map{ it[1] }, + ch_chrom_sizes, ch_blacklist.ifEmpty([]) ) ch_genome_filtered_bed = GENOME_BLACKLIST_REGIONS.out.bed ch_versions = ch_versions.mix(GENOME_BLACKLIST_REGIONS.out.versions) - // // Uncompress BWA index or generate from scratch if required // ch_bwa_index = Channel.empty() if (prepare_tool_index == 'bwa') { - if (params.bwa_index) { - if (params.bwa_index.endsWith('.tar.gz')) { - ch_bwa_index = UNTAR_BWA_INDEX ( [ [:], params.bwa_index ] ).untar + if (bwa_index) { + if (bwa_index.endsWith('.tar.gz')) { + ch_bwa_index = UNTAR_BWA_INDEX ( [ [:], bwa_index ] ).untar ch_versions = ch_versions.mix(UNTAR_BWA_INDEX.out.versions) } else { - ch_bwa_index = file(params.bwa_index) + ch_bwa_index = file(bwa_index) } } else { ch_bwa_index = BWA_INDEX ( ch_fasta.map { [ [:], it ] } ).index @@ -149,12 +159,12 @@ workflow PREPARE_GENOME { // ch_bowtie2_index = Channel.empty() if (prepare_tool_index == 'bowtie2') { - if (params.bowtie2_index) { - if (params.bowtie2_index.endsWith('.tar.gz')) { - ch_bowtie2_index = UNTAR_BOWTIE2_INDEX ( [ [:], params.bowtie2_index ] ).untar + if (bowtie2_index) { + if (bowtie2_index.endsWith('.tar.gz')) { + ch_bowtie2_index = UNTAR_BOWTIE2_INDEX ( [ [:], bowtie2_index ] ).untar ch_versions = ch_versions.mix(UNTAR_BOWTIE2_INDEX.out.versions) } else { - ch_bowtie2_index = [ [:], file(params.bowtie2_index) ] + ch_bowtie2_index = [ [:], file(bowtie2_index) ] } } else { ch_bowtie2_index = BOWTIE2_BUILD ( ch_fasta.map { [ [:], it ] } ).index @@ -167,12 +177,12 @@ workflow PREPARE_GENOME { // ch_chromap_index = Channel.empty() if (prepare_tool_index == 'chromap') { - if (params.chromap_index) { - if (params.chromap_index.endsWith('.tar.gz')) { - ch_chromap_index = UNTARFILES ( [ [:], params.chromap_index ] ).files + if (chromap_index) { + if (chromap_index.endsWith('.tar.gz')) { + ch_chromap_index = UNTARFILES ( [ [:], chromap_index ] ).files ch_versions = ch_versions.mix(UNTARFILES.out.versions) } else { - ch_chromap_index = [ [:], file(params.chromap_index) ] + ch_chromap_index = [ [:], file(chromap_index) ] } } else { ch_chromap_index = CHROMAP_INDEX ( ch_fasta.map { [ [:], it ] } ).index @@ -185,12 +195,12 @@ workflow PREPARE_GENOME { // ch_star_index = Channel.empty() if (prepare_tool_index == 'star') { - if (params.star_index) { - if (params.star_index.endsWith('.tar.gz')) { - ch_star_index = UNTAR_STAR_INDEX ( [ [:], params.star_index ] ).untar.map{ it[1] } + if (star_index) { + if (star_index.endsWith('.tar.gz')) { + ch_star_index = UNTAR_STAR_INDEX ( [ [:], star_index ] ).untar.map{ it[1] } ch_versions = ch_versions.mix(UNTAR_STAR_INDEX.out.versions) } else { - ch_star_index = Channel.value(file(params.star_index)) + ch_star_index = Channel.value(file(star_index)) } } else { ch_star_index = STAR_GENOMEGENERATE ( ch_fasta, ch_gtf ).index @@ -209,6 +219,5 @@ workflow PREPARE_GENOME { bowtie2_index = ch_bowtie2_index // path: bowtie2/index/ chromap_index = ch_chromap_index // path: genome.index star_index = ch_star_index // path: star/index/ - - versions = ch_versions.ifEmpty(null) // channel: [ versions.yml ] + versions = ch_versions.ifEmpty(null) // channel: [ versions.yml ] } From 2397708deb0082671378ae433119907028900090 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 26 Jun 2024 14:53:32 +0200 Subject: [PATCH 149/201] Update main workflows --- main.nf | 134 ++++++++++++++++------- workflows/chipseq.nf | 248 ++++++++++++++++--------------------------- 2 files changed, 189 insertions(+), 193 deletions(-) diff --git a/main.nf b/main.nf index e9c7a38e..8ed7934d 100755 --- a/main.nf +++ b/main.nf @@ -13,72 +13,128 @@ nextflow.enable.dsl = 2 /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - GENOME PARAMETER VALUES + IMPORT FUNCTIONS / MODULES / SUBWORKFLOWS / WORKFLOWS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ - -params.fasta = WorkflowMain.getGenomeAttribute(params, 'fasta') -params.bwa_index = WorkflowMain.getGenomeAttribute(params, 'bwa') -params.bowtie2_index = WorkflowMain.getGenomeAttribute(params, 'bowtie2') -params.chromap_index = WorkflowMain.getGenomeAttribute(params, 'chromap') -params.star_index = WorkflowMain.getGenomeAttribute(params, 'star') -params.gtf = WorkflowMain.getGenomeAttribute(params, 'gtf') -params.gff = WorkflowMain.getGenomeAttribute(params, 'gff') -params.gene_bed = WorkflowMain.getGenomeAttribute(params, 'gene_bed') -params.blacklist = WorkflowMain.getGenomeAttribute(params, 'blacklist') -params.macs_gsize = WorkflowMain.getMacsGsize(params) +include { CHIPSEQ } from './workflows/chipseq' +include { PREPARE_GENOME } from './subworkflows/local/prepare_genome' +include { PIPELINE_INITIALISATION } from './subworkflows/local/utils_nfcore_chipseq_pipeline' +include { PIPELINE_COMPLETION } from './subworkflows/local/utils_nfcore_chipseq_pipeline' +include { getGenomeAttribute } from './subworkflows/local/utils_nfcore_chipseq_pipeline' +include { getMacsGsize } from './subworkflows/local/utils_nfcore_chipseq_pipeline' /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - VALIDATE & PRINT PARAMETER SUMMARY + GENOME PARAMETER VALUES ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -include { validateParameters; paramsHelp } from 'plugin/nf-validation' - -// Print help message if needed -if (params.help) { - def logo = NfcoreTemplate.logo(workflow, params.monochrome_logs) - def citation = '\n' + WorkflowMain.citation(workflow) + '\n' - def String command = "nextflow run ${workflow.manifest.name} --input samplesheet.csv --genome GRCh37 -profile docker" - log.info logo + paramsHelp(command) + citation + NfcoreTemplate.dashedLine(params.monochrome_logs) - System.exit(0) -} - -// Validate input parameters -if (params.validate_params) { - validateParameters() -} - -WorkflowMain.initialise(workflow, params, log, args) +params.fasta = getGenomeAttribute('fasta') +params.bwa_index = getGenomeAttribute('bwa') +params.bowtie2_index = getGenomeAttribute('bowtie2') +params.chromap_index = getGenomeAttribute('chromap') +params.star_index = getGenomeAttribute('star') +params.gtf = getGenomeAttribute('gtf') +params.gff = getGenomeAttribute('gff') +params.gene_bed = getGenomeAttribute('gene_bed') +params.blacklist = getGenomeAttribute('blacklist') +params.macs_gsize = getMacsGsize(params) /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - NAMED WORKFLOW FOR PIPELINE + NAMED WORKFLOWS FOR PIPELINE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -include { CHIPSEQ } from './workflows/chipseq' - // // WORKFLOW: Run main nf-core/chipseq analysis pipeline // workflow NFCORE_CHIPSEQ { - CHIPSEQ () + + main: + ch_versions = Channel.empty() + + // SUBWORKFLOW: Prepare genome files + PREPARE_GENOME ( + params.genome, + params.genomes, + params.aligner, + params.fasta, + params.gtf, + params.gff, + params.blacklist, + params.gene_bed, + params.bwa_index, + params.bowtie2_index, + params.chromap_index, + params.star_index, + ) + ch_versions = ch_versions.mix(PREPARE_GENOME.out.versions) + + // + // WORKFLOW: Run nf-core/chipseq workflow + // + ch_samplesheet = Channel.value(file(params.input, checkIfExists: true)) + + CHIPSEQ( + params.input, + ch_versions, + PREPARE_GENOME.out.fasta, + PREPARE_GENOME.out.fai, + PREPARE_GENOME.out.gtf, + PREPARE_GENOME.out.gene_bed, + PREPARE_GENOME.out.chrom_sizes, + PREPARE_GENOME.out.filtered_bed, + PREPARE_GENOME.out.bwa_index, + PREPARE_GENOME.out.bowtie2_index, + PREPARE_GENOME.out.chromap_index, + PREPARE_GENOME.out.star_index + ) + + emit: + multiqc_report = CHIPSEQSEQ.out.multiqc_report // channel: /path/to/multiqc_report.html + versions = ch_versions // channel: [version1, version2, ...] } /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - RUN ALL WORKFLOWS + RUN MAIN WORKFLOWS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -// -// WORKFLOW: Execute a single named workflow for the pipeline -// See: https://github.com/nf-core/rnaseq/issues/619 -// workflow { + + main: + + // + // SUBWORKFLOW: Run initialisation tasks + // + PIPELINE_INITIALISATION ( + params.version, + params.help, + params.validate_params, + params.monochrome_logs, + args, + params.outdir + ) + + // + // WORKFLOW: Run main workflow + // NFCORE_CHIPSEQ () + + // + // SUBWORKFLOW: Run completion tasks + // + PIPELINE_COMPLETION ( + params.email, + params.email_on_fail, + params.plaintext_email, + params.outdir, + params.monochrome_logs, + params.hook_url, + NFCORE_CHIPSEQ.out.multiqc_report + ) } /* diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index f3f8e517..75a47387 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -1,61 +1,12 @@ -/* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - PRINT PARAMS SUMMARY -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -*/ - -include { paramsSummaryLog; paramsSummaryMap } from 'plugin/nf-validation' - -def logo = NfcoreTemplate.logo(workflow, params.monochrome_logs) -def citation = '\n' + WorkflowMain.citation(workflow) + '\n' -def summary_params = paramsSummaryMap(workflow) - -// Print parameter summary log to screen -log.info logo + paramsSummaryLog(workflow) + citation - -// Validate input parameters -WorkflowChipseq.initialise(params, log) - -ch_input = file(params.input) - -// Save AWS IGenomes file containing annotation version -def anno_readme = params.genomes[ params.genome ]?.readme -if (anno_readme && file(anno_readme).exists()) { - file("${params.outdir}/genome/").mkdirs() - file(anno_readme).copyTo("${params.outdir}/genome/") -} - -/* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - CONFIG FILES -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -*/ - -ch_multiqc_config = Channel.fromPath("$projectDir/assets/multiqc_config.yml", checkIfExists: true) -ch_multiqc_custom_config = params.multiqc_config ? Channel.fromPath( params.multiqc_config ): Channel.empty() -ch_multiqc_logo = params.multiqc_logo ? Channel.fromPath( params.multiqc_logo ) : Channel.empty() -ch_multiqc_custom_methods_description = params.multiqc_methods_description ? file(params.multiqc_methods_description) : file("$projectDir/assets/methods_description_template.yml", checkIfExists: true) - -// JSON files required by BAMTools for alignment filtering -ch_bamtools_filter_se_config = file(params.bamtools_filter_se_config) -ch_bamtools_filter_pe_config = file(params.bamtools_filter_pe_config) - -// Header files for MultiQC -ch_spp_nsc_header = file("$projectDir/assets/multiqc/spp_nsc_header.txt", checkIfExists: true) -ch_spp_rsc_header = file("$projectDir/assets/multiqc/spp_rsc_header.txt", checkIfExists: true) -ch_spp_correlation_header = file("$projectDir/assets/multiqc/spp_correlation_header.txt", checkIfExists: true) -ch_peak_count_header = file("$projectDir/assets/multiqc/peak_count_header.txt", checkIfExists: true) -ch_frip_score_header = file("$projectDir/assets/multiqc/frip_score_header.txt", checkIfExists: true) -ch_peak_annotation_header = file("$projectDir/assets/multiqc/peak_annotation_header.txt", checkIfExists: true) -ch_deseq2_pca_header = file("$projectDir/assets/multiqc/deseq2_pca_header.txt", checkIfExists: true) -ch_deseq2_clustering_header = file("$projectDir/assets/multiqc/deseq2_clustering_header.txt", checkIfExists: true) - /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ IMPORT LOCAL MODULES/SUBWORKFLOWS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ +// +// MODULE: Loaded from modules/local/ +// include { BEDTOOLS_GENOMECOV } from '../modules/local/bedtools_genomecov' include { FRIP_SCORE } from '../modules/local/frip_score' include { PLOT_MACS2_QC } from '../modules/local/plot_macs2_qc' @@ -71,10 +22,13 @@ include { MULTIQC_CUSTOM_PEAKS } from '../modules/local/multiqc_c // // SUBWORKFLOW: Consisting of a mix of local and nf-core/modules // -include { INPUT_CHECK } from '../subworkflows/local/input_check' -include { PREPARE_GENOME } from '../subworkflows/local/prepare_genome' -include { ALIGN_STAR } from '../subworkflows/local/align_star' -include { BAM_FILTER_BAMTOOLS } from '../subworkflows/local/bam_filter_bamtools' +include { paramsSummaryMap } from 'plugin/nf-validation' +include { paramsSummaryMultiqc } from '../subworkflows/nf-core/utils_nfcore_pipeline' +include { softwareVersionsToYAML } from '../subworkflows/nf-core/utils_nfcore_pipeline' +include { methodsDescriptionText } from '../subworkflows/local/utils_nfcore_chipseq_pipeline' +include { INPUT_CHECK } from '../subworkflows/local/input_check' +include { ALIGN_STAR } from '../subworkflows/local/align_star' +include { BAM_FILTER_BAMTOOLS } from '../subworkflows/local/bam_filter_bamtools' /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -98,7 +52,6 @@ include { DEEPTOOLS_PLOTFINGERPRINT } from '../modules/nf-core/deeptools/plo include { KHMER_UNIQUEKMERS } from '../modules/nf-core/khmer/uniquekmers/main' include { MACS2_CALLPEAK } from '../modules/nf-core/macs2/callpeak/main' include { SUBREAD_FEATURECOUNTS } from '../modules/nf-core/subread/featurecounts/main' -include { CUSTOM_DUMPSOFTWAREVERSIONS } from '../modules/nf-core/custom/dumpsoftwareversions/main' include { HOMER_ANNOTATEPEAKS as HOMER_ANNOTATEPEAKS_MACS2 } from '../modules/nf-core/homer/annotatepeaks/main' include { HOMER_ANNOTATEPEAKS as HOMER_ANNOTATEPEAKS_CONSENSUS } from '../modules/nf-core/homer/annotatepeaks/main' @@ -119,26 +72,56 @@ include { BAM_MARKDUPLICATES_PICARD } from '../subworkflows/nf-core/bam_m ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -// Info required for completion email and summary -def multiqc_report = [] +// JSON files required by BAMTools for alignment filtering +ch_bamtools_filter_se_config = file(params.bamtools_filter_se_config) +ch_bamtools_filter_pe_config = file(params.bamtools_filter_pe_config) -workflow CHIPSEQ { +// Header files for MultiQC +ch_spp_nsc_header = file("$projectDir/assets/multiqc/spp_nsc_header.txt", checkIfExists: true) +ch_spp_rsc_header = file("$projectDir/assets/multiqc/spp_rsc_header.txt", checkIfExists: true) +ch_spp_correlation_header = file("$projectDir/assets/multiqc/spp_correlation_header.txt", checkIfExists: true) +ch_peak_count_header = file("$projectDir/assets/multiqc/peak_count_header.txt", checkIfExists: true) +ch_frip_score_header = file("$projectDir/assets/multiqc/frip_score_header.txt", checkIfExists: true) +ch_peak_annotation_header = file("$projectDir/assets/multiqc/peak_annotation_header.txt", checkIfExists: true) +ch_deseq2_pca_header = file("$projectDir/assets/multiqc/deseq2_pca_header.txt", checkIfExists: true) +ch_deseq2_clustering_header = file("$projectDir/assets/multiqc/deseq2_clustering_header.txt", checkIfExists: true) - ch_versions = Channel.empty() +// Save AWS IGenomes file containing annotation version +def anno_readme = params.genomes[ params.genome ]?.readme +if (anno_readme && file(anno_readme).exists()) { + file("${params.outdir}/genome/").mkdirs() + file(anno_readme).copyTo("${params.outdir}/genome/") +} - // - // SUBWORKFLOW: Uncompress and prepare reference genome files - // - PREPARE_GENOME ( - params.aligner - ) - ch_versions = ch_versions.mix(PREPARE_GENOME.out.versions) + +// // Info required for completion email and summary +// def multiqc_report = [] + +workflow CHIPSEQ { + + take: + ch_samplesheet // channel: path(sample_sheet.csv) + ch_versions // channel: [ path(versions.yml) ] + ch_fasta // channel: path(genome.fa) + ch_fai // channel: path(genome.fai) + ch_gtf // channel: path(genome.gtf) + ch_gene_bed // channel: path(gene.beds) + ch_chrom_sizes // channel: path(chrom.sizes) + ch_filtered_bed // channel: path(filtered.bed) + ch_bwa_index // channel: path(bwa/index/) + ch_bowtie2_index // channel: path(bowtie2/index) + ch_chromap_index // channel: path(chromap.index) + ch_star_index // channel: path(star/index/) + + main: + ch_multiqc_files = Channel.empty() // // SUBWORKFLOW: Read in samplesheet, validate and stage input files // + ch_input = file(ch_samplesheet) INPUT_CHECK ( - file(params.input), + ch_input, params.seq_center ) ch_versions = ch_versions.mix(INPUT_CHECK.out.versions) @@ -171,13 +154,11 @@ workflow CHIPSEQ { if (params.aligner == 'bwa') { FASTQ_ALIGN_BWA ( FASTQ_FASTQC_UMITOOLS_TRIMGALORE.out.reads, - PREPARE_GENOME.out.bwa_index, + ch_bwa_index, false, - PREPARE_GENOME - .out - .fasta + ch_fasta .map { - [ [:], it ] + [ [:], it ] } ) ch_genome_bam = FASTQ_ALIGN_BWA.out.bam @@ -194,12 +175,12 @@ workflow CHIPSEQ { if (params.aligner == 'bowtie2') { FASTQ_ALIGN_BOWTIE2 ( FASTQ_FASTQC_UMITOOLS_TRIMGALORE.out.reads, - PREPARE_GENOME.out.bowtie2_index, + ch_bowtie2_index, params.save_unaligned, false, - PREPARE_GENOME.out.fasta + ch_fasta .map { - [ [:], it ] + [ [:], it ] } ) ch_genome_bam = FASTQ_ALIGN_BOWTIE2.out.bam @@ -216,10 +197,8 @@ workflow CHIPSEQ { if (params.aligner == 'chromap') { FASTQ_ALIGN_CHROMAP ( FASTQ_FASTQC_UMITOOLS_TRIMGALORE.out.reads, - PREPARE_GENOME.out.chromap_index, - PREPARE_GENOME - .out - .fasta + ch_chromap_index, + ch_fasta .map { [ [:], it ] }, @@ -242,10 +221,8 @@ workflow CHIPSEQ { if (params.aligner == 'star') { ALIGN_STAR ( FASTQ_FASTQC_UMITOOLS_TRIMGALORE.out.reads, - PREPARE_GENOME.out.star_index, - PREPARE_GENOME - .out - .fasta + ch_star_index, + ch_fasta .map { [ [:], it ] }, @@ -290,13 +267,11 @@ workflow CHIPSEQ { // BAM_MARKDUPLICATES_PICARD ( PICARD_MERGESAMFILES.out.bam, - PREPARE_GENOME - .out - .fasta + ch_fasta .map { - [ [:], it ] + [ [:], it ] }, - PREPARE_GENOME.out.fai + ch_fai .map { [ [:], it ] } @@ -308,10 +283,8 @@ workflow CHIPSEQ { // BAM_FILTER_BAMTOOLS ( BAM_MARKDUPLICATES_PICARD.out.bam.join(BAM_MARKDUPLICATES_PICARD.out.bai, by: [0]), - PREPARE_GENOME.out.filtered_bed.first(), - PREPARE_GENOME - .out - .fasta + ch_filtered_bed.first(), + ch_fasta .map { [ [:], it ] }, @@ -344,15 +317,11 @@ workflow CHIPSEQ { .map { [ it[0], it[1], [] ] }, - PREPARE_GENOME - .out - .fasta + ch_fasta .map { [ [:], it ] }, - PREPARE_GENOME - .out - .fai + ch_fai .map { [ [:], it ] } @@ -402,7 +371,7 @@ workflow CHIPSEQ { // UCSC_BEDGRAPHTOBIGWIG ( BEDTOOLS_GENOMECOV.out.bedgraph, - PREPARE_GENOME.out.chrom_sizes + ch_chrom_sizes ) ch_versions = ch_versions.mix(UCSC_BEDGRAPHTOBIGWIG.out.versions.first()) @@ -413,7 +382,7 @@ workflow CHIPSEQ { // DEEPTOOLS_COMPUTEMATRIX ( UCSC_BEDGRAPHTOBIGWIG.out.bigwig, - PREPARE_GENOME.out.gene_bed + ch_gene_bed ) ch_versions = ch_versions.mix(DEEPTOOLS_COMPUTEMATRIX.out.versions.first()) @@ -475,6 +444,7 @@ workflow CHIPSEQ { // // MODULE: Calculute genome size with khmer // + // TODO move to prepare genome ch_macs_gsize = Channel.empty() ch_custompeaks_frip_multiqc = Channel.empty() ch_custompeaks_count_multiqc = Channel.empty() @@ -483,7 +453,7 @@ workflow CHIPSEQ { ch_macs_gsize = params.macs_gsize if (!params.macs_gsize) { KHMER_UNIQUEKMERS ( - PREPARE_GENOME.out.fasta, + ch_fasta, params.read_length ) ch_macs_gsize = KHMER_UNIQUEKMERS.out.kmers.map { it.text.trim() } @@ -561,8 +531,8 @@ workflow CHIPSEQ { // HOMER_ANNOTATEPEAKS_MACS2 ( ch_macs2_peaks, - PREPARE_GENOME.out.fasta, - PREPARE_GENOME.out.gtf + ch_fasta, + ch_gtf ) ch_versions = ch_versions.mix(HOMER_ANNOTATEPEAKS_MACS2.out.versions.first()) @@ -640,8 +610,8 @@ workflow CHIPSEQ { // HOMER_ANNOTATEPEAKS_CONSENSUS ( MACS2_CONSENSUS.out.bed, - PREPARE_GENOME.out.fasta, - PREPARE_GENOME.out.gtf + ch_fasta, + ch_gtf ) ch_versions = ch_versions.mix(HOMER_ANNOTATEPEAKS_CONSENSUS.out.versions) @@ -708,7 +678,7 @@ workflow CHIPSEQ { IGV ( params.aligner, params.narrow_peak ? 'narrow_peak' : 'broad_peak', - PREPARE_GENOME.out.fasta, + ch_fasta, UCSC_BEDGRAPHTOBIGWIG.out.bigwig.collect{it[1]}.ifEmpty([]), ch_macs2_peaks.collect{it[1]}.ifEmpty([]), ch_macs2_consensus_bed_lib.collect{it[1]}.ifEmpty([]), @@ -718,29 +688,29 @@ workflow CHIPSEQ { } // - // MODULE: Pipeline reporting + // Collate and save software versions // - CUSTOM_DUMPSOFTWAREVERSIONS ( - ch_versions.unique().collectFile(name: 'collated_versions.yml') - ) + softwareVersionsToYAML(ch_versions) + .collectFile(storeDir: "${params.outdir}/pipeline_info", name: 'nf_core_atacseq_software_mqc_versions.yml', sort: true, newLine: true) + .set { ch_collated_versions } // // MODULE: MultiQC // if (!params.skip_multiqc) { - workflow_summary = WorkflowChipseq.paramsSummaryMultiqc(workflow, summary_params) - ch_workflow_summary = Channel.value(workflow_summary) - - methods_description = WorkflowChipseq.methodsDescriptionText(workflow, ch_multiqc_custom_methods_description, params) - ch_methods_description = Channel.value(methods_description) + ch_multiqc_config = Channel.fromPath("$projectDir/assets/multiqc_config.yml", checkIfExists: true) + ch_multiqc_custom_config = params.multiqc_config ? Channel.fromPath( params.multiqc_config ): Channel.empty() + ch_multiqc_logo = params.multiqc_logo ? Channel.fromPath( params.multiqc_logo ) : Channel.empty() + summary_params = paramsSummaryMap(workflow, parameters_schema: "nextflow_schema.json") + ch_workflow_summary = Channel.value(paramsSummaryMultiqc(summary_params)) + ch_multiqc_files = ch_multiqc_files.mix(ch_workflow_summary.collectFile(name: 'workflow_summary_mqc.yaml')) + ch_multiqc_files = ch_multiqc_files.mix(ch_collated_versions) MULTIQC ( - ch_multiqc_config, - ch_multiqc_custom_config.collect().ifEmpty([]), - CUSTOM_DUMPSOFTWAREVERSIONS.out.mqc_yml.collect(), - ch_workflow_summary.collectFile(name: 'workflow_summary_mqc.yaml'), - ch_methods_description.collectFile(name: 'methods_description_mqc.yaml'), - ch_multiqc_logo.collect().ifEmpty([]), + ch_multiqc_files.collect(), + ch_multiqc_config.toList(), + ch_multiqc_custom_config.toList(), + ch_multiqc_logo.toList(), FASTQ_FASTQC_UMITOOLS_TRIMGALORE.out.fastqc_zip.collect{it[1]}.ifEmpty([]), FASTQ_FASTQC_UMITOOLS_TRIMGALORE.out.trim_zip.collect{it[1]}.ifEmpty([]), @@ -778,36 +748,6 @@ workflow CHIPSEQ { ch_deseq2_pca_multiqc.collect().ifEmpty([]), ch_deseq2_clustering_multiqc.collect().ifEmpty([]) ) - multiqc_report = MULTIQC.out.report.toList() - } -} - -/* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - COMPLETION EMAIL AND SUMMARY -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -*/ - -workflow.onComplete { - if (params.email || params.email_on_fail) { - NfcoreTemplate.email(workflow, params, summary_params, projectDir, log, multiqc_report) - } - NfcoreTemplate.dump_parameters(workflow, params) - NfcoreTemplate.summary(workflow, params, log) - if (params.hook_url) { - NfcoreTemplate.IM_notification(workflow, params, summary_params, projectDir, log) - } -} - -workflow.onError { - if (workflow.errorReport.contains("Process requirement exceeds available memory")) { - println("🛑 Default resources exceed availability 🛑 ") - println("💡 See here on how to configure pipeline: https://nf-co.re/docs/usage/configuration#tuning-workflow-resources 💡") + ch_multiqc_report = MULTIQC.out.report } } - -/* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - THE END -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -*/ From 9d926f74375335af3e7a29bb87991bb6cdc20d96 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 26 Jun 2024 15:27:18 +0200 Subject: [PATCH 150/201] Add emit --- main.nf | 2 +- workflows/chipseq.nf | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/main.nf b/main.nf index 8ed7934d..1eaaca40 100755 --- a/main.nf +++ b/main.nf @@ -92,7 +92,7 @@ workflow NFCORE_CHIPSEQ { ) emit: - multiqc_report = CHIPSEQSEQ.out.multiqc_report // channel: /path/to/multiqc_report.html + multiqc_report = CHIPSEQ.out.multiqc_report // channel: /path/to/multiqc_report.html versions = ch_versions // channel: [version1, version2, ...] } diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index 75a47387..91295716 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -750,4 +750,14 @@ workflow CHIPSEQ { ) ch_multiqc_report = MULTIQC.out.report } + + emit: + multiqc_report = ch_multiqc_report // channel: /path/to/multiqc_report.html + versions = ch_versions // channel: [ path(versions.yml) ] } + +/* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + THE END +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +*/ \ No newline at end of file From 4c2cce86af085deebb41c131d666d2218da6e2a6 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 26 Jun 2024 15:31:21 +0200 Subject: [PATCH 151/201] Align comment --- main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.nf b/main.nf index 1eaaca40..cb61186e 100755 --- a/main.nf +++ b/main.nf @@ -93,7 +93,7 @@ workflow NFCORE_CHIPSEQ { emit: multiqc_report = CHIPSEQ.out.multiqc_report // channel: /path/to/multiqc_report.html - versions = ch_versions // channel: [version1, version2, ...] + versions = ch_versions // channel: [version1, version2, ...] } /* From 69ed785cbfa04be9ead80151dff334f7bd68c511 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 26 Jun 2024 15:36:50 +0200 Subject: [PATCH 152/201] Update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b936b306..1d0102de 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Updated pipeline template to [nf-core/tools 2.10](https://github.com/nf-core/tools/releases/tag/2.10). - [[#367](https://github.com/nf-core/chipseq/issues/367)] - Get rid of `CheckIfExists` for params paths. - [[#370](https://github.com/nf-core/chipseq/issues/370)] - Fix stack overflow exceptions in phantompeakqualtools ([see here](https://github.com/kundajelab/phantompeakqualtools/issues/3)). +- [[PR #391](https://github.com/nf-core/chipseq/pull/391)] - Get rid of the `lib` folder and rearrange the pipeline accordingly. ### Software dependencies From a1b8e00f775d9d550302d5fbb8abd7b803afc8fe Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 26 Jun 2024 15:49:22 +0200 Subject: [PATCH 153/201] Make lint happy --- conf/base.config | 3 --- main.nf | 2 +- subworkflows/local/prepare_genome.nf | 4 ++-- subworkflows/local/utils_nfcore_chipseq_pipeline/main.nf | 2 +- workflows/chipseq.nf | 2 +- 5 files changed, 5 insertions(+), 8 deletions(-) diff --git a/conf/base.config b/conf/base.config index b5fcc4af..42ba5a89 100644 --- a/conf/base.config +++ b/conf/base.config @@ -57,7 +57,4 @@ process { errorStrategy = 'retry' maxRetries = 2 } - withName:CUSTOM_DUMPSOFTWAREVERSIONS { - cache = false - } } diff --git a/main.nf b/main.nf index cb61186e..c0623ffd 100755 --- a/main.nf +++ b/main.nf @@ -70,7 +70,7 @@ workflow NFCORE_CHIPSEQ { params.star_index, ) ch_versions = ch_versions.mix(PREPARE_GENOME.out.versions) - + // // WORKFLOW: Run nf-core/chipseq workflow // diff --git a/subworkflows/local/prepare_genome.nf b/subworkflows/local/prepare_genome.nf index f3bc02eb..b7878aaf 100644 --- a/subworkflows/local/prepare_genome.nf +++ b/subworkflows/local/prepare_genome.nf @@ -39,11 +39,11 @@ workflow PREPARE_GENOME { bowtie2_index // file: /path/to/bowtie2/index/ chromap_index // file: /path/to/chromap/index/ star_index // file: /path/to/star/index/ - + main: ch_versions = Channel.empty() - + // // Uncompress genome fasta file if required // diff --git a/subworkflows/local/utils_nfcore_chipseq_pipeline/main.nf b/subworkflows/local/utils_nfcore_chipseq_pipeline/main.nf index 92daace0..a1433174 100644 --- a/subworkflows/local/utils_nfcore_chipseq_pipeline/main.nf +++ b/subworkflows/local/utils_nfcore_chipseq_pipeline/main.nf @@ -265,4 +265,4 @@ def macsGsizeWarn(log) { " It will be auto-calculated by 'khmer unique-kmers.py' using the '--read_length' parameter.\n" + " Explicitly provide '--macs_gsize macs2_genome_size' to change this behaviour.\n" + "===================================================================================" -} \ No newline at end of file +} diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index 91295716..1677ad3a 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -112,7 +112,7 @@ workflow CHIPSEQ { ch_bowtie2_index // channel: path(bowtie2/index) ch_chromap_index // channel: path(chromap.index) ch_star_index // channel: path(star/index/) - + main: ch_multiqc_files = Channel.empty() From 5bf333dd4553962bf2b641f400681182b4a8708c Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Thu, 27 Jun 2024 22:22:26 +0200 Subject: [PATCH 154/201] Make lint happy --- workflows/chipseq.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index 1677ad3a..cae508d6 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -760,4 +760,4 @@ workflow CHIPSEQ { ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ THE END ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -*/ \ No newline at end of file +*/ From 688c319dde63dfd9d26acb0ed40b31ce88021391 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Thu, 27 Jun 2024 22:22:49 +0200 Subject: [PATCH 155/201] Update phantompeakqualtools --- modules.json | 195 +++++------------- .../phantompeakqualtools/environment.yml | 9 + modules/nf-core/phantompeakqualtools/main.nf | 20 +- modules/nf-core/phantompeakqualtools/meta.yml | 13 +- .../phantompeakqualtools/tests/main.nf.test | 90 ++++++++ .../tests/main.nf.test.snap | 119 +++++++++++ .../phantompeakqualtools/tests/tags.yml | 2 + 7 files changed, 289 insertions(+), 159 deletions(-) create mode 100644 modules/nf-core/phantompeakqualtools/environment.yml create mode 100644 modules/nf-core/phantompeakqualtools/tests/main.nf.test create mode 100644 modules/nf-core/phantompeakqualtools/tests/main.nf.test.snap create mode 100644 modules/nf-core/phantompeakqualtools/tests/tags.yml diff --git a/modules.json b/modules.json index 285d38b9..14d352e9 100644 --- a/modules.json +++ b/modules.json @@ -8,252 +8,172 @@ "bowtie2/align": { "branch": "master", "git_sha": "3c77ca9aac783e76c3614a06db3bfe4fef619bde", - "installed_by": [ - "fastq_align_bowtie2", - "modules" - ] + "installed_by": ["fastq_align_bowtie2", "modules"] }, "bowtie2/build": { "branch": "master", "git_sha": "6a24fbe314bb2e6fe6306c29a63076ea87e8eb3c", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "bwa/index": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "bwa/mem": { "branch": "master", "git_sha": "a64788f5ad388f1d2ac5bd5f1f3f8fc81476148c", - "installed_by": [ - "fastq_align_bwa", - "modules" - ] + "installed_by": ["fastq_align_bwa", "modules"] }, "chromap/chromap": { "branch": "master", "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5", - "installed_by": [ - "fastq_align_chromap", - "modules" - ] + "installed_by": ["fastq_align_chromap", "modules"] }, "chromap/index": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "custom/getchromsizes": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "deeptools/computematrix": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "deeptools/plotfingerprint": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "deeptools/plotheatmap": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "deeptools/plotprofile": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "fastqc": { "branch": "master", "git_sha": "f4ae1d942bd50c5c0b9bd2de1393ce38315ba57c", - "installed_by": [ - "fastq_fastqc_umitools_trimgalore", - "modules" - ] + "installed_by": ["fastq_fastqc_umitools_trimgalore", "modules"] }, "gffread": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "gunzip": { "branch": "master", "git_sha": "5c460c5a4736974abde2843294f35307ee2b0e5e", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "homer/annotatepeaks": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "khmer/uniquekmers": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "macs2/callpeak": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "multiqc": { "branch": "master", "git_sha": "8ec825f465b9c17f9d83000022995b4f7de6fe93", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "phantompeakqualtools": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "git_sha": "2dfe9afa90fefc70e320140e5f41287f01f324b0", + "installed_by": ["modules"] }, "picard/collectmultiplemetrics": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "picard/markduplicates": { "branch": "master", "git_sha": "ec833ac4c29db6005d18baccf3306f557c46b006", - "installed_by": [ - "bam_markduplicates_picard", - "modules" - ] + "installed_by": ["bam_markduplicates_picard", "modules"] }, "picard/mergesamfiles": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "preseq/lcextrap": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "samtools/flagstat": { "branch": "master", "git_sha": "ce0b1aed7d504883061e748f492a31bf44c5777c", - "installed_by": [ - "bam_stats_samtools", - "modules" - ] + "installed_by": ["bam_stats_samtools", "modules"] }, "samtools/idxstats": { "branch": "master", "git_sha": "ce0b1aed7d504883061e748f492a31bf44c5777c", - "installed_by": [ - "bam_stats_samtools", - "modules" - ] + "installed_by": ["bam_stats_samtools", "modules"] }, "samtools/index": { "branch": "master", "git_sha": "ce0b1aed7d504883061e748f492a31bf44c5777c", - "installed_by": [ - "bam_markduplicates_picard", - "bam_sort_stats_samtools", - "modules" - ] + "installed_by": ["bam_markduplicates_picard", "bam_sort_stats_samtools", "modules"] }, "samtools/sort": { "branch": "master", "git_sha": "ce0b1aed7d504883061e748f492a31bf44c5777c", - "installed_by": [ - "bam_sort_stats_samtools", - "modules" - ] + "installed_by": ["bam_sort_stats_samtools", "modules"] }, "samtools/stats": { "branch": "master", "git_sha": "ec833ac4c29db6005d18baccf3306f557c46b006", - "installed_by": [ - "bam_stats_samtools", - "modules" - ] + "installed_by": ["bam_stats_samtools", "modules"] }, "subread/featurecounts": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "trimgalore": { "branch": "master", "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5", - "installed_by": [ - "fastq_fastqc_umitools_trimgalore", - "modules" - ] + "installed_by": ["fastq_fastqc_umitools_trimgalore", "modules"] }, "ucsc/bedgraphtobigwig": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "umitools/extract": { "branch": "master", "git_sha": "65ad3e0b9a4099592e1102e92e10455dc661cf53", - "installed_by": [ - "fastq_fastqc_umitools_trimgalore" - ] + "installed_by": ["fastq_fastqc_umitools_trimgalore"] }, "untar": { "branch": "master", "git_sha": "5c460c5a4736974abde2843294f35307ee2b0e5e", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "untarfiles": { "branch": "master", "git_sha": "5c460c5a4736974abde2843294f35307ee2b0e5e", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] } } }, @@ -262,78 +182,55 @@ "bam_markduplicates_picard": { "branch": "master", "git_sha": "0c38be7e652a0b2f3a37681ee4c0dbdf85677647", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "bam_sort_stats_samtools": { "branch": "master", "git_sha": "0c38be7e652a0b2f3a37681ee4c0dbdf85677647", - "installed_by": [ - "fastq_align_bowtie2", - "fastq_align_bwa", - "fastq_align_chromap" - ] + "installed_by": ["fastq_align_bowtie2", "fastq_align_bwa", "fastq_align_chromap"] }, "bam_stats_samtools": { "branch": "master", "git_sha": "0c38be7e652a0b2f3a37681ee4c0dbdf85677647", - "installed_by": [ - "bam_markduplicates_picard", - "bam_sort_stats_samtools" - ] + "installed_by": ["bam_markduplicates_picard", "bam_sort_stats_samtools"] }, "fastq_align_bowtie2": { "branch": "master", "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "fastq_align_bwa": { "branch": "master", "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "fastq_align_chromap": { "branch": "master", "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "fastq_fastqc_umitools_trimgalore": { "branch": "master", "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "utils_nextflow_pipeline": { "branch": "master", "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "utils_nfcore_pipeline": { "branch": "master", "git_sha": "92de218a329bfc9a9033116eb5f65fd270e72ba3", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "utils_nfvalidation_plugin": { "branch": "master", "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] } } } } } -} \ No newline at end of file +} diff --git a/modules/nf-core/phantompeakqualtools/environment.yml b/modules/nf-core/phantompeakqualtools/environment.yml new file mode 100644 index 00000000..095b7b4b --- /dev/null +++ b/modules/nf-core/phantompeakqualtools/environment.yml @@ -0,0 +1,9 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json +name: "phantompeakqualtools" +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - "bioconda::phantompeakqualtools=1.2.2" diff --git a/modules/nf-core/phantompeakqualtools/main.nf b/modules/nf-core/phantompeakqualtools/main.nf index edcdf2ce..f0f7dc63 100644 --- a/modules/nf-core/phantompeakqualtools/main.nf +++ b/modules/nf-core/phantompeakqualtools/main.nf @@ -3,10 +3,10 @@ process PHANTOMPEAKQUALTOOLS { label 'process_medium' // WARN: Version information not provided by tool on CLI. Please update version string below when bumping container versions. - conda "bioconda::phantompeakqualtools=1.2.2" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/phantompeakqualtools:1.2.2--0' : - 'biocontainers/phantompeakqualtools:1.2.2--0' }" + 'oras://community.wave.seqera.io/library/phantompeakqualtools:1.2.2--50be7727b2a72700' : + 'community.wave.seqera.io/library/phantompeakqualtools:1.2.2--f8026fe2526a5e18' }" input: tuple val(meta), path(bam) @@ -34,4 +34,18 @@ process PHANTOMPEAKQUALTOOLS { phantompeakqualtools: $VERSION END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + def VERSION = '1.2.2' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. + """ + touch ${prefix}.spp.pdf + touch ${prefix}.spp.Rdata + touch ${prefix}.spp.out + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + phantompeakqualtools: $VERSION + END_VERSIONS + """ } diff --git a/modules/nf-core/phantompeakqualtools/meta.yml b/modules/nf-core/phantompeakqualtools/meta.yml index c8290fbd..276f6fdd 100644 --- a/modules/nf-core/phantompeakqualtools/meta.yml +++ b/modules/nf-core/phantompeakqualtools/meta.yml @@ -1,5 +1,4 @@ name: "phantompeakqualtools" - description: | "This package computes informative enrichment and quality measures for ChIP-seq/DNase-seq/FAIRE-seq/MNase-seq data. It can also be used @@ -16,12 +15,10 @@ tools: for ChIP-seq/DNase-seq/FAIRE-seq/MNase-seq data. It can also be used to obtain robust estimates of the predominant fragment length or characteristic tag shift values in these assays." - documentation: "https://github.com/kundajelab/phantompeakqualtools" tool_dev_url: "https://github.com/kundajelab/phantompeakqualtools" doi: "10.1101/gr.136184.111" - licence: "['BSD-3-clause']" - + licence: ["BSD-3-clause"] input: - meta: type: map @@ -32,7 +29,6 @@ input: type: file description: BAM/CRAM/SAM file pattern: "*.{bam,cram,sam}" - output: - meta: type: map @@ -57,8 +53,11 @@ output: type: file description: Rdata file containing the R session pattern: "*.{Rdata}" - authors: - "@drpatelh" - - "@Emiller88" + - "@edmundmiller" + - "@JoseEspinosa" +maintainers: + - "@drpatelh" + - "@edmundmiller" - "@JoseEspinosa" diff --git a/modules/nf-core/phantompeakqualtools/tests/main.nf.test b/modules/nf-core/phantompeakqualtools/tests/main.nf.test new file mode 100644 index 00000000..ea096bcf --- /dev/null +++ b/modules/nf-core/phantompeakqualtools/tests/main.nf.test @@ -0,0 +1,90 @@ +// nf-core modules test phantompeakqualtools +nextflow_process { + + name "Test Process PHANTOMPEAKQUALTOOLS" + script "../main.nf" + process "PHANTOMPEAKQUALTOOLS" + + tag "modules" + tag "modules_nfcore" + tag "phantompeakqualtools" + + test("sarscov2 - bam - single_end") { + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:true ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.single_end.bam', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out.spp, + file(process.out.pdf.get(0).get(1)).name, + file(process.out.rdata.get(0).get(1)).name, + process.out.versions) + .match() + } + ) + } + + } + + test("sarscov2 - bam - paired_end") { + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:true ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.bam', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out.spp, + file(process.out.pdf.get(0).get(1)).name, + file(process.out.rdata.get(0).get(1)).name, + process.out.versions) + .match() + } + ) + } + + } + + test("sarscov2 - bam - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.bam', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + +} \ No newline at end of file diff --git a/modules/nf-core/phantompeakqualtools/tests/main.nf.test.snap b/modules/nf-core/phantompeakqualtools/tests/main.nf.test.snap new file mode 100644 index 00000000..1021aeb8 --- /dev/null +++ b/modules/nf-core/phantompeakqualtools/tests/main.nf.test.snap @@ -0,0 +1,119 @@ +{ + "sarscov2 - bam - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.spp.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "test", + "single_end": false + }, + "test.spp.pdf:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + [ + { + "id": "test", + "single_end": false + }, + "test.spp.Rdata:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + "versions.yml:md5,e0a48a40af2cf7d5de72c4c3cb47a4fc" + ], + "pdf": [ + [ + { + "id": "test", + "single_end": false + }, + "test.spp.pdf:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "rdata": [ + [ + { + "id": "test", + "single_end": false + }, + "test.spp.Rdata:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "spp": [ + [ + { + "id": "test", + "single_end": false + }, + "test.spp.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,e0a48a40af2cf7d5de72c4c3cb47a4fc" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-27T10:46:22.786363" + }, + "sarscov2 - bam - single_end": { + "content": [ + [ + [ + { + "id": "test", + "single_end": true + }, + "test.spp.out:md5,b01d976506b6fe45b66c821b1e8a1d15" + ] + ], + "test.spp.pdf", + "test.spp.Rdata", + [ + "versions.yml:md5,e0a48a40af2cf7d5de72c4c3cb47a4fc" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-27T16:21:12.000709154" + }, + "sarscov2 - bam - paired_end": { + "content": [ + [ + [ + { + "id": "test", + "single_end": true + }, + "test.spp.out:md5,eed46e75eab119224f397a7a8b5924e6" + ] + ], + "test.spp.pdf", + "test.spp.Rdata", + [ + "versions.yml:md5,e0a48a40af2cf7d5de72c4c3cb47a4fc" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-27T16:21:22.432426907" + } +} \ No newline at end of file diff --git a/modules/nf-core/phantompeakqualtools/tests/tags.yml b/modules/nf-core/phantompeakqualtools/tests/tags.yml new file mode 100644 index 00000000..9031749e --- /dev/null +++ b/modules/nf-core/phantompeakqualtools/tests/tags.yml @@ -0,0 +1,2 @@ +phantompeakqualtools: + - "modules/nf-core/phantompeakqualtools/**" From f85bcd7e5a05060c85e6617392c8a4a3ee2a03ad Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Thu, 27 Jun 2024 23:00:31 +0200 Subject: [PATCH 156/201] Use wave container to avoid docker format version error --- modules/local/multiqc_custom_phantompeakqualtools.nf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/local/multiqc_custom_phantompeakqualtools.nf b/modules/local/multiqc_custom_phantompeakqualtools.nf index c9239bde..7fc74a2e 100644 --- a/modules/local/multiqc_custom_phantompeakqualtools.nf +++ b/modules/local/multiqc_custom_phantompeakqualtools.nf @@ -1,9 +1,9 @@ process MULTIQC_CUSTOM_PHANTOMPEAKQUALTOOLS { tag "$meta.id" - conda "conda-forge::r-base=3.5.1" + conda "conda-forge::r-base=4.3.3" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/r-base:3.5.1': - 'biocontainers/r-base:3.5.1' }" + 'oras://community.wave.seqera.io/library/r-base:4.3.3--452dec8277637366': + 'community.wave.seqera.io/library/r-base:4.3.3--14bb33ac537aea22' }" input: tuple val(meta), path(spp), path(rdata) From 386217063fe4cd348d80dfd1ff1a00e83778e9e1 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Fri, 28 Jun 2024 10:21:14 +0200 Subject: [PATCH 157/201] fix nf-core lint --- .nf-core.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.nf-core.yml b/.nf-core.yml index 2e90e7d0..3f08fd2d 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -5,3 +5,8 @@ lint: - config_defaults: - params.bamtools_filter_se_config - params.bamtools_filter_pe_config + files_unchanged: + - .github/CONTRIBUTING.md + - .github/workflows/branch.yml + - .github/workflows/linting_comment.yml + - .github/workflows/linting.yml From 259485dec273c39ade0b56e61879b00fcdca5e66 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 2 Jul 2024 09:38:55 +0200 Subject: [PATCH 158/201] Fix lint --- modules.json | 56 +--------------------------------------------------- 1 file changed, 1 insertion(+), 55 deletions(-) diff --git a/modules.json b/modules.json index 9aef55a4..812c7ed8 100644 --- a/modules.json +++ b/modules.json @@ -62,7 +62,7 @@ }, "fastqc": { "branch": "master", - "git_sha": "f4ae1d942bd50c5c0b9bd2de1393ce38315ba57c", + "git_sha": "285a50500f9e02578d90b3ce6382ea3c30216acd", "installed_by": ["fastq_fastqc_umitools_trimgalore", "modules"] }, "gffread": { @@ -177,60 +177,6 @@ } } }, - "subworkflows": { - "nf-core": { - "bam_markduplicates_picard": { - "branch": "master", - "git_sha": "0c38be7e652a0b2f3a37681ee4c0dbdf85677647", - "installed_by": ["subworkflows"] - }, - "bam_sort_stats_samtools": { - "branch": "master", - "git_sha": "0c38be7e652a0b2f3a37681ee4c0dbdf85677647", - "installed_by": ["fastq_align_bowtie2", "fastq_align_bwa", "fastq_align_chromap"] - }, - "bam_stats_samtools": { - "branch": "master", - "git_sha": "0c38be7e652a0b2f3a37681ee4c0dbdf85677647", - "installed_by": ["bam_markduplicates_picard", "bam_sort_stats_samtools"] - }, - "fastq_align_bowtie2": { - "branch": "master", - "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", - "installed_by": ["subworkflows"] - }, - "fastq_align_bwa": { - "branch": "master", - "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", - "installed_by": ["subworkflows"] - }, - "fastq_align_chromap": { - "branch": "master", - "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", - "installed_by": ["subworkflows"] - }, - "fastq_fastqc_umitools_trimgalore": { - "branch": "master", - "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", - "installed_by": ["subworkflows"] - }, - "utils_nextflow_pipeline": { - "branch": "master", - "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", - "installed_by": ["subworkflows"] - }, - "utils_nfcore_pipeline": { - "branch": "master", - "git_sha": "92de218a329bfc9a9033116eb5f65fd270e72ba3", - "installed_by": ["subworkflows"] - }, - "utils_nfvalidation_plugin": { - "branch": "master", - "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", - "installed_by": ["subworkflows"] - } - } - }, "subworkflows": { "nf-core": { "utils_nextflow_pipeline": { From 9b646fecff06c6cb0e1ea9d61d1ea5ab98bfce15 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 2 Jul 2024 10:30:53 +0200 Subject: [PATCH 159/201] Remove files_unchanged after template update --- .github/PULL_REQUEST_TEMPLATE.md | 2 +- .nf-core.yml | 5 ----- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 4cd6ca4f..2f34f87d 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -17,7 +17,7 @@ Learn more about contributing: [CONTRIBUTING.md](https://github.com/nf-core/chip - [ ] If you've fixed a bug or added code that should be tested, add tests! - [ ] If you've added a new tool - have you followed the pipeline conventions in the [contribution docs](https://github.com/nf-core/chipseq/tree/master/.github/CONTRIBUTING.md) - [ ] If necessary, also make a PR on the nf-core/chipseq _branch_ on the [nf-core/test-datasets](https://github.com/nf-core/test-datasets) repository. -- [ ] Make sure your code lints (`nf-core lint`). +- [ ] Make sure your code lints (`nf-core pipelines lint`). - [ ] Ensure the test suite passes (`nextflow run . -profile test,docker --outdir `). - [ ] Check for unexpected warnings in debug mode (`nextflow run . -profile debug,test,docker --outdir `). - [ ] Usage Documentation in `docs/usage.md` is updated. diff --git a/.nf-core.yml b/.nf-core.yml index e2500bf9..add014ed 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -5,8 +5,3 @@ lint: - config_defaults: - params.bamtools_filter_se_config - params.bamtools_filter_pe_config - files_unchanged: - - .github/CONTRIBUTING.md - - .github/workflows/branch.yml - - .github/workflows/linting_comment.yml - - .github/workflows/linting.yml From 8ebded6006640e6d7de82aacfdfbad1d3918ed69 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 2 Jul 2024 10:39:21 +0200 Subject: [PATCH 160/201] Roll back file to template version v2.14.1 and not dev --- .github/PULL_REQUEST_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 2f34f87d..4cd6ca4f 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -17,7 +17,7 @@ Learn more about contributing: [CONTRIBUTING.md](https://github.com/nf-core/chip - [ ] If you've fixed a bug or added code that should be tested, add tests! - [ ] If you've added a new tool - have you followed the pipeline conventions in the [contribution docs](https://github.com/nf-core/chipseq/tree/master/.github/CONTRIBUTING.md) - [ ] If necessary, also make a PR on the nf-core/chipseq _branch_ on the [nf-core/test-datasets](https://github.com/nf-core/test-datasets) repository. -- [ ] Make sure your code lints (`nf-core pipelines lint`). +- [ ] Make sure your code lints (`nf-core lint`). - [ ] Ensure the test suite passes (`nextflow run . -profile test,docker --outdir `). - [ ] Check for unexpected warnings in debug mode (`nextflow run . -profile debug,test,docker --outdir `). - [ ] Usage Documentation in `docs/usage.md` is updated. From db32e8bceecbccf30fa0c127d02849dfc9c46011 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 2 Jul 2024 10:59:46 +0200 Subject: [PATCH 161/201] Bring back subworkflows in modules.json deleted while resolving merge conflicts --- modules.json | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/modules.json b/modules.json index 812c7ed8..f4d4950b 100644 --- a/modules.json +++ b/modules.json @@ -179,6 +179,41 @@ }, "subworkflows": { "nf-core": { + "bam_markduplicates_picard": { + "branch": "master", + "git_sha": "0c38be7e652a0b2f3a37681ee4c0dbdf85677647", + "installed_by": ["subworkflows"] + }, + "bam_sort_stats_samtools": { + "branch": "master", + "git_sha": "0c38be7e652a0b2f3a37681ee4c0dbdf85677647", + "installed_by": ["fastq_align_bowtie2", "fastq_align_bwa", "fastq_align_chromap"] + }, + "bam_stats_samtools": { + "branch": "master", + "git_sha": "0c38be7e652a0b2f3a37681ee4c0dbdf85677647", + "installed_by": ["bam_markduplicates_picard", "bam_sort_stats_samtools"] + }, + "fastq_align_bowtie2": { + "branch": "master", + "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", + "installed_by": ["subworkflows"] + }, + "fastq_align_bwa": { + "branch": "master", + "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", + "installed_by": ["subworkflows"] + }, + "fastq_align_chromap": { + "branch": "master", + "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", + "installed_by": ["subworkflows"] + }, + "fastq_fastqc_umitools_trimgalore": { + "branch": "master", + "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", + "installed_by": ["subworkflows"] + }, "utils_nextflow_pipeline": { "branch": "master", "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", From c0c63478ef4628f6abfb85c294dcd533044eca6b Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 3 Jul 2024 10:43:03 +0200 Subject: [PATCH 162/201] Fix changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1d0102de..b5630f67 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,7 +23,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Updated pipeline template to [nf-core/tools 2.10](https://github.com/nf-core/tools/releases/tag/2.10). - [[#367](https://github.com/nf-core/chipseq/issues/367)] - Get rid of `CheckIfExists` for params paths. - [[#370](https://github.com/nf-core/chipseq/issues/370)] - Fix stack overflow exceptions in phantompeakqualtools ([see here](https://github.com/kundajelab/phantompeakqualtools/issues/3)). -- [[PR #391](https://github.com/nf-core/chipseq/pull/391)] - Get rid of the `lib` folder and rearrange the pipeline accordingly. +- [[#387](https://github.com/nf-core/chipseq/issues/387)] - Get rid of the `lib` folder and rearrange the pipeline accordingly. ### Software dependencies From a628cc467441419aeabb56514c2505b5e8d723a3 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 3 Jul 2024 10:43:40 +0200 Subject: [PATCH 163/201] Fix save_unaligned parameter description in schema --- CHANGELOG.md | 1 + nextflow_schema.json | 12 +++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b5630f67..5677e847 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [[#367](https://github.com/nf-core/chipseq/issues/367)] - Get rid of `CheckIfExists` for params paths. - [[#370](https://github.com/nf-core/chipseq/issues/370)] - Fix stack overflow exceptions in phantompeakqualtools ([see here](https://github.com/kundajelab/phantompeakqualtools/issues/3)). - [[#387](https://github.com/nf-core/chipseq/issues/387)] - Get rid of the `lib` folder and rearrange the pipeline accordingly. +- [[#385](https://github.com/nf-core/chipseq/issues/385)] - Fix `--save_unaligned` description in schema. ### Software dependencies diff --git a/nextflow_schema.json b/nextflow_schema.json index 668e4c4d..b0e6317c 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -261,7 +261,7 @@ "save_unaligned": { "type": "boolean", "fa_icon": "fas fa-save", - "description": "Where possible, save unaligned reads from either STAR, HISAT2 or Salmon to the results directory.", + "description": "Save unaligned sequences to the output directory (only available for Bowtie 2 And STAR.", "help_text": "This may either be in the form of FastQ or BAM files depending on the options available for that particular tool." }, "bamtools_filter_pe_config": { @@ -399,6 +399,16 @@ "description": "Skip MultiQC.", "fa_icon": "fas fa-fast-forward" }, + "skip_peak_calling": { + "type": "boolean", + "description": "Skip MACS2 peak calling.", + "fa_icon": "fas fa-fast-forward" + }, + "skip_reporting": { + "type": "boolean", + "description": "Skip reporting.", + "fa_icon": "fas fa-fast-forward" + }, "skip_qc": { "type": "boolean", "fa_icon": "fas fa-fast-forward", From f6b9c2707ba4b4ac677034e862c078fa20674d9e Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 3 Jul 2024 11:16:17 +0200 Subject: [PATCH 164/201] Remove code leak --- nextflow_schema.json | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/nextflow_schema.json b/nextflow_schema.json index b0e6317c..b7c4e106 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -399,16 +399,6 @@ "description": "Skip MultiQC.", "fa_icon": "fas fa-fast-forward" }, - "skip_peak_calling": { - "type": "boolean", - "description": "Skip MACS2 peak calling.", - "fa_icon": "fas fa-fast-forward" - }, - "skip_reporting": { - "type": "boolean", - "description": "Skip reporting.", - "fa_icon": "fas fa-fast-forward" - }, "skip_qc": { "type": "boolean", "fa_icon": "fas fa-fast-forward", From ac7feeec2c4fd02fc3c830019808486c1cbe2da8 Mon Sep 17 00:00:00 2001 From: Jose Espinosa-Carrasco Date: Wed, 3 Jul 2024 11:28:38 +0200 Subject: [PATCH 165/201] Update nextflow_schema.json MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Matthias Hörtenhuber --- nextflow_schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nextflow_schema.json b/nextflow_schema.json index b7c4e106..f51e0940 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -261,7 +261,7 @@ "save_unaligned": { "type": "boolean", "fa_icon": "fas fa-save", - "description": "Save unaligned sequences to the output directory (only available for Bowtie 2 And STAR.", + "description": "Save unaligned sequences to the output directory (only available for Bowtie 2 and STAR.", "help_text": "This may either be in the form of FastQ or BAM files depending on the options available for that particular tool." }, "bamtools_filter_pe_config": { From 80a12ace5266de5529f0e84d633991a9550e7389 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20M=C3=B6ller?= Date: Mon, 1 Jul 2024 14:35:49 +0200 Subject: [PATCH 166/201] check: Adding line number to error messages. Co-authored-by: Jose Espinosa-Carrasco --- CHANGELOG.md | 1 + bin/check_samplesheet.py | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5677e847..777d00b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [[#370](https://github.com/nf-core/chipseq/issues/370)] - Fix stack overflow exceptions in phantompeakqualtools ([see here](https://github.com/kundajelab/phantompeakqualtools/issues/3)). - [[#387](https://github.com/nf-core/chipseq/issues/387)] - Get rid of the `lib` folder and rearrange the pipeline accordingly. - [[#385](https://github.com/nf-core/chipseq/issues/385)] - Fix `--save_unaligned` description in schema. +- [[PR #392](https://github.com/nf-core/chipseq/pull/392)] - Adding line numbers to warnings/errors messages in `bin/check_samplesheet.py` ### Software dependencies diff --git a/bin/check_samplesheet.py b/bin/check_samplesheet.py index 7005bb9e..36351a71 100755 --- a/bin/check_samplesheet.py +++ b/bin/check_samplesheet.py @@ -58,22 +58,22 @@ def check_samplesheet(file_in, file_out): sys.exit(1) ## Check sample entries - for line in fin: + for line_number, line in enumerate(fin, start=1): if line.strip(): lspl = [x.strip().strip('"') for x in line.strip().split(",")] # Check valid number of columns per row if len(lspl) < len(HEADER): print_error( - "Invalid number of columns (minimum = {})!".format(len(HEADER)), - "Line", + "Invalid number of columns (found = {}, minimum = {})!".format(len(lspl),len(HEADER)), + "Line {}".format(line_number), line, ) num_cols = len([x for x in lspl[: len(HEADER)] if x]) if num_cols < MIN_COLS: print_error( - "Invalid number of populated columns (minimum = {})!".format(MIN_COLS), - "Line", + "Invalid number of populated columns (found = {}, minimum = {})!".format(num_cols,MIN_COLS), + "Line {}".format(line_number), line, ) @@ -83,23 +83,23 @@ def check_samplesheet(file_in, file_out): print(f"WARNING: Spaces have been replaced by underscores for sample: {sample}") sample = sample.replace(" ", "_") if not sample: - print_error("Sample entry has not been specified!", "Line", line) + print_error("Sample entry has not been specified!", "Line {}".format(line_number), line) ## Check FastQ file extension for fastq in [fastq_1, fastq_2]: if fastq: if fastq.find(" ") != -1: - print_error("FastQ file contains spaces!", "Line", line) + print_error("FastQ file contains spaces!", "Line {}".format(lineNo), line) if not fastq.endswith(".fastq.gz") and not fastq.endswith(".fq.gz"): print_error( "FastQ file does not have extension '.fastq.gz' or '.fq.gz'!", - "Line", + "Line {}".format(lineNo), line, ) ## Check replicate column is integer if not replicate.isdecimal(): - print_error("Replicate id not an integer!", "Line", line) + print_error("Replicate id not an integer!", "Line {}".format(lineNo), line) sys.exit(1) ## Check antibody and control columns have valid values @@ -110,7 +110,7 @@ def check_samplesheet(file_in, file_out): if not control: print_error( "Both antibody and control columns must be specified!", - "Line", + "Line {}".format(line_number), line, ) @@ -119,13 +119,13 @@ def check_samplesheet(file_in, file_out): print(f"WARNING: Spaces have been replaced by underscores for control: {control}") control = control.replace(" ", "_") if not control_replicate.isdecimal(): - print_error("Control replicate id not an integer!", "Line", line) + print_error("Control replicate id not an integer!", "Line {}".format(line_number), line) sys.exit(1) control = "{}_REP{}".format(control, control_replicate) if not antibody: print_error( "Both antibody and control columns must be specified!", - "Line", + "Line {}".format(line_number), line, ) @@ -138,7 +138,7 @@ def check_samplesheet(file_in, file_out): elif sample and fastq_1 and not fastq_2: sample_info = ["1", fastq_1, fastq_2, replicate, antibody, control] else: - print_error("Invalid combination of columns provided!", "Line", line) + print_error("Invalid combination of columns provided!", "Line {}".format(line_number), line) ## Create sample mapping dictionary = {sample: [[ single_end, fastq_1, fastq_2, replicate, antibody, control ]]} replicate = int(replicate) @@ -149,7 +149,7 @@ def check_samplesheet(file_in, file_out): sample_mapping_dict[sample][replicate] = [sample_info] else: if sample_info in sample_mapping_dict[sample][replicate]: - print_error("Samplesheet contains duplicate rows!", "Line", line) + print_error("Samplesheet contains duplicate rows!", "Line {}".format(line_number), line) else: sample_mapping_dict[sample][replicate].append(sample_info) From e7fba4870cde9b676a6f4446fdb5a411dade8185 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Thu, 4 Jul 2024 14:12:20 +0200 Subject: [PATCH 167/201] Check for sample IDs allowed characters --- CHANGELOG.md | 3 ++- bin/check_samplesheet.py | 13 ++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 777d00b5..be4590e9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,7 +25,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [[#370](https://github.com/nf-core/chipseq/issues/370)] - Fix stack overflow exceptions in phantompeakqualtools ([see here](https://github.com/kundajelab/phantompeakqualtools/issues/3)). - [[#387](https://github.com/nf-core/chipseq/issues/387)] - Get rid of the `lib` folder and rearrange the pipeline accordingly. - [[#385](https://github.com/nf-core/chipseq/issues/385)] - Fix `--save_unaligned` description in schema. -- [[PR #392](https://github.com/nf-core/chipseq/pull/392)] - Adding line numbers to warnings/errors messages in `bin/check_samplesheet.py` +- [[PR #392](https://github.com/nf-core/chipseq/pull/392)] - Adding line numbers to warnings/errors messages in `bin/check_samplesheet.py`. +- [[#396](https://github.com/nf-core/chipseq/issues/396)] - Check that samplesheet samples IDs do only have alphanumeric characters, dots, dashes or underscores. ### Software dependencies diff --git a/bin/check_samplesheet.py b/bin/check_samplesheet.py index 36351a71..c7d8add7 100755 --- a/bin/check_samplesheet.py +++ b/bin/check_samplesheet.py @@ -4,6 +4,7 @@ import sys import errno import argparse +import re def parse_args(args=None): @@ -84,22 +85,28 @@ def check_samplesheet(file_in, file_out): sample = sample.replace(" ", "_") if not sample: print_error("Sample entry has not been specified!", "Line {}".format(line_number), line) + if not re.match(r"^[a-zA-Z0-9_.-]+$", sample): + print_error( + "Sample name contains invalid characters! Only alphanumeric characters, underscores, dots and dashes are allowed.", + "Line {}".format(line_number), + line, + ) ## Check FastQ file extension for fastq in [fastq_1, fastq_2]: if fastq: if fastq.find(" ") != -1: - print_error("FastQ file contains spaces!", "Line {}".format(lineNo), line) + print_error("FastQ file contains spaces!", "Line {}".format(line_number), line) if not fastq.endswith(".fastq.gz") and not fastq.endswith(".fq.gz"): print_error( "FastQ file does not have extension '.fastq.gz' or '.fq.gz'!", - "Line {}".format(lineNo), + "Line {}".format(line_number), line, ) ## Check replicate column is integer if not replicate.isdecimal(): - print_error("Replicate id not an integer!", "Line {}".format(lineNo), line) + print_error("Replicate id not an integer!", "Line {}".format(line_number), line) sys.exit(1) ## Check antibody and control columns have valid values From f170418ff3d3ce11cb446cc405eb26e526357014 Mon Sep 17 00:00:00 2001 From: Bjorn Langer Date: Thu, 4 Jul 2024 18:44:54 +0200 Subject: [PATCH 168/201] use subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc from nf-core/atacseq --- .../bam_bedgraph_bigwig_bedtools_ucsc.nf | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc.nf diff --git a/subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc.nf b/subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc.nf new file mode 100644 index 00000000..0947571c --- /dev/null +++ b/subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc.nf @@ -0,0 +1,42 @@ + +// +// Convert BAM to normalised bigWig via bedGraph using BEDTools and UCSC +// + +include { BEDTOOLS_GENOMECOV } from '../../modules/local/bedtools_genomecov' +include { UCSC_BEDGRAPHTOBIGWIG } from '../../modules/nf-core/ucsc/bedgraphtobigwig/main' + +workflow BAM_BEDGRAPH_BIGWIG_BEDTOOLS_UCSC { + take: + ch_bam_flagstat // channel: [ val(meta), [bam], [flagstat] ] + ch_chrom_sizes // channel: [ bed ] + + main: + + ch_versions = Channel.empty() + + // + // Create bedGraph coverage track + // + BEDTOOLS_GENOMECOV ( + ch_bam_flagstat + ) + ch_versions = ch_versions.mix(BEDTOOLS_GENOMECOV.out.versions.first()) + + // + // Create bigWig coverage tracks + // + UCSC_BEDGRAPHTOBIGWIG ( + BEDTOOLS_GENOMECOV.out.bedgraph, + ch_chrom_sizes + ) + ch_versions = ch_versions.mix(UCSC_BEDGRAPHTOBIGWIG.out.versions.first()) + + emit: + bedgraph = BEDTOOLS_GENOMECOV.out.bedgraph // channel: [ val(meta), [ bedgraph ] ] + scale_factor = BEDTOOLS_GENOMECOV.out.scale_factor // channel: [ val(meta), [ txt ] ] + + bigwig = UCSC_BEDGRAPHTOBIGWIG.out.bigwig // channel: [ val(meta), [ bigwig ] ] + + versions = ch_versions // channel: [ versions.yml ] +} From dbbfc239e82129ea13dead9ca5267eda3ecab9eb Mon Sep 17 00:00:00 2001 From: Bjorn Langer Date: Fri, 5 Jul 2024 10:19:54 +0200 Subject: [PATCH 169/201] actually use subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc from nf-core/atacseq --- .../bam_bedgraph_bigwig_bedtools_ucsc.nf | 2 +- workflows/chipseq.nf | 38 ++++++++----------- 2 files changed, 17 insertions(+), 23 deletions(-) diff --git a/subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc.nf b/subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc.nf index 0947571c..5796f407 100644 --- a/subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc.nf +++ b/subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc.nf @@ -10,7 +10,7 @@ workflow BAM_BEDGRAPH_BIGWIG_BEDTOOLS_UCSC { take: ch_bam_flagstat // channel: [ val(meta), [bam], [flagstat] ] ch_chrom_sizes // channel: [ bed ] - + main: ch_versions = Channel.empty() diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index 8f4a9e63..abdb57d7 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -7,7 +7,6 @@ // // MODULE: Loaded from modules/local/ // -include { BEDTOOLS_GENOMECOV } from '../modules/local/bedtools_genomecov' include { FRIP_SCORE } from '../modules/local/frip_score' include { PLOT_MACS2_QC } from '../modules/local/plot_macs2_qc' include { PLOT_HOMER_ANNOTATEPEAKS } from '../modules/local/plot_homer_annotatepeaks' @@ -22,13 +21,15 @@ include { MULTIQC_CUSTOM_PEAKS } from '../modules/local/multiqc_c // // SUBWORKFLOW: Consisting of a mix of local and nf-core/modules // -include { paramsSummaryMap } from 'plugin/nf-validation' -include { paramsSummaryMultiqc } from '../subworkflows/nf-core/utils_nfcore_pipeline' -include { softwareVersionsToYAML } from '../subworkflows/nf-core/utils_nfcore_pipeline' -include { methodsDescriptionText } from '../subworkflows/local/utils_nfcore_chipseq_pipeline' -include { INPUT_CHECK } from '../subworkflows/local/input_check' -include { ALIGN_STAR } from '../subworkflows/local/align_star' -include { BAM_FILTER_BAMTOOLS } from '../subworkflows/local/bam_filter_bamtools' +include { paramsSummaryMap } from 'plugin/nf-validation' +include { paramsSummaryMultiqc } from '../subworkflows/nf-core/utils_nfcore_pipeline' +include { softwareVersionsToYAML } from '../subworkflows/nf-core/utils_nfcore_pipeline' +include { methodsDescriptionText } from '../subworkflows/local/utils_nfcore_chipseq_pipeline' +include { INPUT_CHECK } from '../subworkflows/local/input_check' +include { ALIGN_STAR } from '../subworkflows/local/align_star' +include { BAM_FILTER_BAMTOOLS } from '../subworkflows/local/bam_filter_bamtools' +include { BAM_BEDGRAPH_BIGWIG_BEDTOOLS_UCSC } from '../subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc' +include { BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER } from '../subworkflows/local/bam_peaks_call_qc_annotate_macs2_homer.nf' /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -358,21 +359,14 @@ workflow CHIPSEQ { } // - // MODULE: BedGraph coverage tracks + // SUBWORKFLOW: Normalised bigWig coverage tracks // - BEDTOOLS_GENOMECOV ( - BAM_FILTER_BAMTOOLS.out.bam.join(BAM_FILTER_BAMTOOLS.out.flagstat, by: [0]) + BAM_BEDGRAPH_BIGWIG_BEDTOOLS_UCSC ( + BAM_FILTER_BAMTOOLS.out.bam.join(BAM_FILTER_BAMTOOLS.out.flagstat, by: [0]), + PREPARE_GENOME.out.chrom_sizes ) - ch_versions = ch_versions.mix(BEDTOOLS_GENOMECOV.out.versions.first()) + ch_versions = ch_versions.mix(BAM_BEDGRAPH_BIGWIG_BEDTOOLS_UCSC.out.versions) - // - // MODULE: BigWig coverage tracks - // - UCSC_BEDGRAPHTOBIGWIG ( - BEDTOOLS_GENOMECOV.out.bedgraph, - ch_chrom_sizes - ) - ch_versions = ch_versions.mix(UCSC_BEDGRAPHTOBIGWIG.out.versions.first()) ch_deeptoolsplotprofile_multiqc = Channel.empty() if (!params.skip_plot_profile) { @@ -380,7 +374,7 @@ workflow CHIPSEQ { // MODULE: deepTools matrix generation for plotting // DEEPTOOLS_COMPUTEMATRIX ( - UCSC_BEDGRAPHTOBIGWIG.out.bigwig, + BAM_BEDGRAPH_BIGWIG_BEDTOOLS_UCSC.out.bigwig, ch_gene_bed ) ch_versions = ch_versions.mix(DEEPTOOLS_COMPUTEMATRIX.out.versions.first()) @@ -678,7 +672,7 @@ workflow CHIPSEQ { params.aligner, params.narrow_peak ? 'narrow_peak' : 'broad_peak', ch_fasta, - UCSC_BEDGRAPHTOBIGWIG.out.bigwig.collect{it[1]}.ifEmpty([]), + BAM_BEDGRAPH_BIGWIG_BEDTOOLS_UCSC.out.bigwig.collect{it[1]}.ifEmpty([]), ch_macs2_peaks.collect{it[1]}.ifEmpty([]), ch_macs2_consensus_bed_lib.collect{it[1]}.ifEmpty([]), ch_macs2_consensus_txt_lib.collect{it[1]}.ifEmpty([]) From d314ec33aa3b7a97650568461a2ca546367cb622 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Langer?= <61791748+bjlang@users.noreply.github.com> Date: Fri, 5 Jul 2024 10:26:17 +0200 Subject: [PATCH 170/201] clean imports --- workflows/chipseq.nf | 2 -- 1 file changed, 2 deletions(-) diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index abdb57d7..d1cb3b66 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -29,7 +29,6 @@ include { INPUT_CHECK } from '../subworkflows/local/i include { ALIGN_STAR } from '../subworkflows/local/align_star' include { BAM_FILTER_BAMTOOLS } from '../subworkflows/local/bam_filter_bamtools' include { BAM_BEDGRAPH_BIGWIG_BEDTOOLS_UCSC } from '../subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc' -include { BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER } from '../subworkflows/local/bam_peaks_call_qc_annotate_macs2_homer.nf' /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -45,7 +44,6 @@ include { PICARD_MERGESAMFILES } from '../modules/nf-core/picard/merges include { PICARD_COLLECTMULTIPLEMETRICS } from '../modules/nf-core/picard/collectmultiplemetrics/main' include { PRESEQ_LCEXTRAP } from '../modules/nf-core/preseq/lcextrap/main' include { PHANTOMPEAKQUALTOOLS } from '../modules/nf-core/phantompeakqualtools/main' -include { UCSC_BEDGRAPHTOBIGWIG } from '../modules/nf-core/ucsc/bedgraphtobigwig/main' include { DEEPTOOLS_COMPUTEMATRIX } from '../modules/nf-core/deeptools/computematrix/main' include { DEEPTOOLS_PLOTPROFILE } from '../modules/nf-core/deeptools/plotprofile/main' include { DEEPTOOLS_PLOTHEATMAP } from '../modules/nf-core/deeptools/plotheatmap/main' From 8aaccc2a9102bdec64771c1fbf1a48446c12df5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Langer?= <61791748+bjlang@users.noreply.github.com> Date: Fri, 5 Jul 2024 10:30:22 +0200 Subject: [PATCH 171/201] Update chipseq.nf --- workflows/chipseq.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index d1cb3b66..c855693b 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -361,7 +361,7 @@ workflow CHIPSEQ { // BAM_BEDGRAPH_BIGWIG_BEDTOOLS_UCSC ( BAM_FILTER_BAMTOOLS.out.bam.join(BAM_FILTER_BAMTOOLS.out.flagstat, by: [0]), - PREPARE_GENOME.out.chrom_sizes + ch_chrom_sizes ) ch_versions = ch_versions.mix(BAM_BEDGRAPH_BIGWIG_BEDTOOLS_UCSC.out.versions) From 53c152c76341dab3cc9e9d64ec00d6827e4a1ab4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Langer?= <61791748+bjlang@users.noreply.github.com> Date: Fri, 5 Jul 2024 10:40:56 +0200 Subject: [PATCH 172/201] Update subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc.nf Co-authored-by: Jose Espinosa-Carrasco --- subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc.nf | 1 - 1 file changed, 1 deletion(-) diff --git a/subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc.nf b/subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc.nf index 5796f407..271c3aa3 100644 --- a/subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc.nf +++ b/subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc.nf @@ -1,4 +1,3 @@ - // // Convert BAM to normalised bigWig via bedGraph using BEDTools and UCSC // From a7a9f83514695336a1230c2d18e1709099766673 Mon Sep 17 00:00:00 2001 From: Bjorn Langer Date: Fri, 5 Jul 2024 11:36:06 +0200 Subject: [PATCH 173/201] use subworkflows/local/bam_peaks_call_qc_annotate_macs2_homer from nf-core/atacsec --- .../bam_peaks_call_qc_annotate_macs2_homer.nf | 155 ++++++++++++++++++ workflows/chipseq.nf | 118 ++----------- 2 files changed, 173 insertions(+), 100 deletions(-) create mode 100644 subworkflows/local/bam_peaks_call_qc_annotate_macs2_homer.nf diff --git a/subworkflows/local/bam_peaks_call_qc_annotate_macs2_homer.nf b/subworkflows/local/bam_peaks_call_qc_annotate_macs2_homer.nf new file mode 100644 index 00000000..4c2a8710 --- /dev/null +++ b/subworkflows/local/bam_peaks_call_qc_annotate_macs2_homer.nf @@ -0,0 +1,155 @@ +// +// Call peaks with MACS2, annotate with HOMER and perform downstream QC +// + +include { MACS2_CALLPEAK } from '../../modules/nf-core/macs2/callpeak/main' +include { HOMER_ANNOTATEPEAKS } from '../../modules/nf-core/homer/annotatepeaks/main' + +include { FRIP_SCORE } from '../../modules/local/frip_score' +include { MULTIQC_CUSTOM_PEAKS } from '../../modules/local/multiqc_custom_peaks' +include { PLOT_MACS2_QC } from '../../modules/local/plot_macs2_qc' +include { PLOT_HOMER_ANNOTATEPEAKS } from '../../modules/local/plot_homer_annotatepeaks' + +workflow BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER { + take: + ch_bam // channel: [ val(meta), [ ip_bam ], [ control_bam ] ] + ch_fasta // channel: [ fasta ] + ch_gtf // channel: [ gtf ] + macs_gsize // integer: value for --macs_gsize parameter + annotate_peaks_suffix // string: suffix for input HOMER annotate peaks files to be trimmed off + ch_peak_count_header_multiqc // channel: [ header_file ] + ch_frip_score_multiqc // channel: [ header_file ] + ch_peak_annotation_header_multiqc // channel: [ header_file ] + is_narrow_peak // boolean: true/false + skip_peak_annotation // boolean: true/false + skip_peak_qc // boolean: true/false + + main: + + ch_versions = Channel.empty() + + // + // Call peaks with MACS2 + // + MACS2_CALLPEAK ( + ch_bam, + macs_gsize + ) + ch_versions = ch_versions.mix(MACS2_CALLPEAK.out.versions.first()) + + // + // Filter out samples with 0 MACS2 peaks called + // + MACS2_CALLPEAK + .out + .peak + .filter { + meta, peaks -> + peaks.size() > 0 + } + .set { ch_macs2_peaks } + + // Create channels: [ meta, ip_bam, peaks ] + ch_bam + .join(ch_macs2_peaks, by: [0]) + .map { + meta, ip_bam, control_bam, peaks -> + [ meta, ip_bam, peaks ] + } + .set { ch_bam_peaks } + + // + // Calculate FRiP score + // + FRIP_SCORE ( + ch_bam_peaks + ) + ch_versions = ch_versions.mix(FRIP_SCORE.out.versions.first()) + + // Create channels: [ meta, peaks, frip ] + ch_bam_peaks + .join(FRIP_SCORE.out.txt, by: [0]) + .map { + meta, ip_bam, peaks, frip -> + [ meta, peaks, frip ] + } + .set { ch_bam_peak_frip } + + // + // FRiP score custom content for MultiQC + // + MULTIQC_CUSTOM_PEAKS ( + ch_bam_peak_frip, + ch_peak_count_header_multiqc, + ch_frip_score_multiqc + ) + ch_versions = ch_versions.mix(MULTIQC_CUSTOM_PEAKS.out.versions.first()) + + ch_homer_annotatepeaks = Channel.empty() + ch_plot_macs2_qc_txt = Channel.empty() + ch_plot_macs2_qc_pdf = Channel.empty() + ch_plot_homer_annotatepeaks_txt = Channel.empty() + ch_plot_homer_annotatepeaks_pdf = Channel.empty() + ch_plot_homer_annotatepeaks_tsv = Channel.empty() + if (!skip_peak_annotation) { + // + // Annotate peaks with HOMER + // + HOMER_ANNOTATEPEAKS ( + ch_macs2_peaks, + ch_fasta, + ch_gtf + ) + ch_homer_annotatepeaks = HOMER_ANNOTATEPEAKS.out.txt + ch_versions = ch_versions.mix(HOMER_ANNOTATEPEAKS.out.versions.first()) + + if (!skip_peak_qc) { + // + // MACS2 QC plots with R + // + PLOT_MACS2_QC ( + ch_macs2_peaks.collect{it[1]}, + is_narrow_peak + ) + ch_plot_macs2_qc_txt = PLOT_MACS2_QC.out.txt + ch_plot_macs2_qc_pdf = PLOT_MACS2_QC.out.pdf + ch_versions = ch_versions.mix(PLOT_MACS2_QC.out.versions) + + // + // Peak annotation QC plots with R + // + PLOT_HOMER_ANNOTATEPEAKS ( + HOMER_ANNOTATEPEAKS.out.txt.collect{it[1]}, + ch_peak_annotation_header_multiqc, + annotate_peaks_suffix + ) + ch_plot_homer_annotatepeaks_txt = PLOT_HOMER_ANNOTATEPEAKS.out.txt + ch_plot_homer_annotatepeaks_pdf = PLOT_HOMER_ANNOTATEPEAKS.out.pdf + ch_plot_homer_annotatepeaks_tsv = PLOT_HOMER_ANNOTATEPEAKS.out.tsv + ch_versions = ch_versions.mix(PLOT_HOMER_ANNOTATEPEAKS.out.versions) + } + } + + emit: + peaks = ch_macs2_peaks // channel: [ val(meta), [ peaks ] ] + xls = MACS2_CALLPEAK.out.xls // channel: [ val(meta), [ xls ] ] + gapped_peaks = MACS2_CALLPEAK.out.gapped // channel: [ val(meta), [ gapped_peak ] ] + bed = MACS2_CALLPEAK.out.bed // channel: [ val(meta), [ bed ] ] + bedgraph = MACS2_CALLPEAK.out.bdg // channel: [ val(meta), [ bedgraph ] ] + + frip_txt = FRIP_SCORE.out.txt // channel: [ val(meta), [ txt ] ] + + frip_multiqc = MULTIQC_CUSTOM_PEAKS.out.frip // channel: [ val(meta), [ frip ] ] + peak_count_multiqc = MULTIQC_CUSTOM_PEAKS.out.count // channel: [ val(meta), [ counts ] ] + + homer_annotatepeaks = ch_homer_annotatepeaks // channel: [ val(meta), [ txt ] ] + + plot_macs2_qc_txt = ch_plot_macs2_qc_txt // channel: [ txt ] + plot_macs2_qc_pdf = ch_plot_macs2_qc_pdf // channel: [ pdf ] + + plot_homer_annotatepeaks_txt = ch_plot_homer_annotatepeaks_txt // channel: [ txt ] + plot_homer_annotatepeaks_pdf = ch_plot_homer_annotatepeaks_pdf // channel: [ pdf ] + plot_homer_annotatepeaks_tsv = ch_plot_homer_annotatepeaks_tsv // channel: [ tsv ] + + versions = ch_versions // channel: [ versions.yml ] +} diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index c855693b..f7a19072 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -7,16 +7,12 @@ // // MODULE: Loaded from modules/local/ // -include { FRIP_SCORE } from '../modules/local/frip_score' -include { PLOT_MACS2_QC } from '../modules/local/plot_macs2_qc' -include { PLOT_HOMER_ANNOTATEPEAKS } from '../modules/local/plot_homer_annotatepeaks' include { MACS2_CONSENSUS } from '../modules/local/macs2_consensus' include { ANNOTATE_BOOLEAN_PEAKS } from '../modules/local/annotate_boolean_peaks' include { DESEQ2_QC } from '../modules/local/deseq2_qc' include { IGV } from '../modules/local/igv' include { MULTIQC } from '../modules/local/multiqc' include { MULTIQC_CUSTOM_PHANTOMPEAKQUALTOOLS } from '../modules/local/multiqc_custom_phantompeakqualtools' -include { MULTIQC_CUSTOM_PEAKS } from '../modules/local/multiqc_custom_peaks' // // SUBWORKFLOW: Consisting of a mix of local and nf-core/modules @@ -29,6 +25,7 @@ include { INPUT_CHECK } from '../subworkflows/local/i include { ALIGN_STAR } from '../subworkflows/local/align_star' include { BAM_FILTER_BAMTOOLS } from '../subworkflows/local/bam_filter_bamtools' include { BAM_BEDGRAPH_BIGWIG_BEDTOOLS_UCSC } from '../subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc' +include { BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER } from '../subworkflows/local/bam_peaks_call_qc_annotate_macs2_homer.nf' /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -49,10 +46,8 @@ include { DEEPTOOLS_PLOTPROFILE } from '../modules/nf-core/deeptools/plo include { DEEPTOOLS_PLOTHEATMAP } from '../modules/nf-core/deeptools/plotheatmap/main' include { DEEPTOOLS_PLOTFINGERPRINT } from '../modules/nf-core/deeptools/plotfingerprint/main' include { KHMER_UNIQUEKMERS } from '../modules/nf-core/khmer/uniquekmers/main' -include { MACS2_CALLPEAK } from '../modules/nf-core/macs2/callpeak/main' include { SUBREAD_FEATURECOUNTS } from '../modules/nf-core/subread/featurecounts/main' -include { HOMER_ANNOTATEPEAKS as HOMER_ANNOTATEPEAKS_MACS2 } from '../modules/nf-core/homer/annotatepeaks/main' include { HOMER_ANNOTATEPEAKS as HOMER_ANNOTATEPEAKS_CONSENSUS } from '../modules/nf-core/homer/annotatepeaks/main' // @@ -437,9 +432,6 @@ workflow CHIPSEQ { // // TODO move to prepare genome ch_macs_gsize = Channel.empty() - ch_custompeaks_frip_multiqc = Channel.empty() - ch_custompeaks_count_multiqc = Channel.empty() - ch_plothomerannotatepeaks_multiqc = Channel.empty() ch_subreadfeaturecounts_multiqc = Channel.empty() ch_macs_gsize = params.macs_gsize if (!params.macs_gsize) { @@ -459,96 +451,22 @@ workflow CHIPSEQ { .set { ch_ip_control_bam } // - // MODULE: Call peaks with MACS2 + // SUBWORKFLOW: Call peaks with MACS2, annotate with HOMER and perform downstream QC // - MACS2_CALLPEAK ( + BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER ( ch_ip_control_bam, - ch_macs_gsize - ) - ch_versions = ch_versions.mix(MACS2_CALLPEAK.out.versions.first()) - - // - // Filter out samples with 0 MACS2 peaks called - // - MACS2_CALLPEAK - .out - .peak - .filter { - meta, peaks -> - peaks.size() > 0 - } - .set { ch_macs2_peaks } - - // Create channels: [ meta, ip_bam, peaks ] - ch_ip_control_bam - .join(ch_macs2_peaks, by: [0]) - .map { - it -> - [ it[0], it[1], it[3] ] - } - .set { ch_ip_bam_peaks } - - // - // MODULE: Calculate FRiP score - // - FRIP_SCORE ( - ch_ip_bam_peaks - ) - ch_versions = ch_versions.mix(FRIP_SCORE.out.versions.first()) - - // Create channels: [ meta, peaks, frip ] - ch_ip_bam_peaks - .join(FRIP_SCORE.out.txt, by: [0]) - .map { - it -> - [ it[0], it[2], it[3] ] - } - .set { ch_ip_peaks_frip } - - // - // MODULE: FRiP score custom content for MultiQC - // - MULTIQC_CUSTOM_PEAKS ( - ch_ip_peaks_frip, + ch_fasta, + ch_gtf, + ch_macs_gsize, + "_peaks.annotatePeaks.txt", ch_peak_count_header, - ch_frip_score_header + ch_frip_score_header, + ch_peak_annotation_header, + params.narrow_peak, + params.skip_peak_annotation, + params.skip_peak_qc ) - ch_custompeaks_frip_multiqc = MULTIQC_CUSTOM_PEAKS.out.frip - ch_custompeaks_count_multiqc = MULTIQC_CUSTOM_PEAKS.out.count - - if (!params.skip_peak_annotation) { - // - // MODULE: Annotate peaks with MACS2 - // - HOMER_ANNOTATEPEAKS_MACS2 ( - ch_macs2_peaks, - ch_fasta, - ch_gtf - ) - ch_versions = ch_versions.mix(HOMER_ANNOTATEPEAKS_MACS2.out.versions.first()) - - if (!params.skip_peak_qc) { - // - // MODULE: MACS2 QC plots with R - // - PLOT_MACS2_QC ( - ch_macs2_peaks.collect{it[1]}, - params.narrow_peak - ) - ch_versions = ch_versions.mix(PLOT_MACS2_QC.out.versions) - - // - // MODULE: Peak annotation QC plots with R - // - PLOT_HOMER_ANNOTATEPEAKS ( - HOMER_ANNOTATEPEAKS_MACS2.out.txt.collect{it[1]}, - ch_peak_annotation_header, - "_peaks.annotatePeaks.txt" - ) - ch_plothomerannotatepeaks_multiqc = PLOT_HOMER_ANNOTATEPEAKS.out.tsv - ch_versions = ch_versions.mix(PLOT_HOMER_ANNOTATEPEAKS.out.versions) - } - } + ch_versions = ch_versions.mix(MERGED_LIBRARY_CALL_ANNOTATE_PEAKS.out.versions) // // Consensus peaks analysis @@ -560,7 +478,7 @@ workflow CHIPSEQ { if (!params.skip_consensus_peaks) { // Create channels: [ meta , [ peaks ] ] // Where meta = [ id:antibody, multiple_groups:true/false, replicates_exist:true/false ] - ch_macs2_peaks + BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER.out.peaks .map { meta, peak -> [ meta.antibody, meta.id.split('_')[0..-2].join('_'), peak ] @@ -671,7 +589,7 @@ workflow CHIPSEQ { params.narrow_peak ? 'narrow_peak' : 'broad_peak', ch_fasta, BAM_BEDGRAPH_BIGWIG_BEDTOOLS_UCSC.out.bigwig.collect{it[1]}.ifEmpty([]), - ch_macs2_peaks.collect{it[1]}.ifEmpty([]), + BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER.out.peaks.collect{it[1]}.ifEmpty([]), ch_macs2_consensus_bed_lib.collect{it[1]}.ifEmpty([]), ch_macs2_consensus_txt_lib.collect{it[1]}.ifEmpty([]) ) @@ -731,9 +649,9 @@ workflow CHIPSEQ { ch_multiqc_phantompeakqualtools_rsc_multiqc.collect{it[1]}.ifEmpty([]), ch_multiqc_phantompeakqualtools_correlation_multiqc.collect{it[1]}.ifEmpty([]), - ch_custompeaks_frip_multiqc.collect{it[1]}.ifEmpty([]), - ch_custompeaks_count_multiqc.collect{it[1]}.ifEmpty([]), - ch_plothomerannotatepeaks_multiqc.collect().ifEmpty([]), + BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER.out.frip_multiqc.collect{it[1]}.ifEmpty([]), + BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER.out.peak_count_multiqc.collect{it[1]}.ifEmpty([]), + BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER.out.plot_homer_annotatepeaks_tsv.collect().ifEmpty([]), ch_subreadfeaturecounts_multiqc.collect{it[1]}.ifEmpty([]), ch_deseq2_pca_multiqc.collect().ifEmpty([]), From 561b73b8eee95b2d8e872e66a5b2aad1883de63b Mon Sep 17 00:00:00 2001 From: bjlang <> Date: Fri, 5 Jul 2024 13:22:51 +0200 Subject: [PATCH 174/201] Update modules.config and other minor corrections --- conf/modules.config | 50 +++++++++---------- .../bam_peaks_call_qc_annotate_macs2_homer.nf | 8 +-- workflows/chipseq.nf | 2 +- 3 files changed, 30 insertions(+), 30 deletions(-) diff --git a/conf/modules.config b/conf/modules.config index 59af9e66..1fc095e3 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -369,14 +369,21 @@ process { ] } - withName: 'BAM_REMOVE_ORPHANS' { - ext.args = '--only_fr_pairs' - ext.prefix = { "${meta.id}.mLb.clN" } + withName: 'NFCORE_CHIPSEQ:CHIPSEQ:BAM_FILTER_BAMTOOLS:SAMTOOLS_INDEX' { + ext.prefix = { "${meta.id}.mLb.clN.sorted" } publishDir = [ path: { "${params.outdir}/${params.aligner}/merged_library" }, mode: params.publish_dir_mode, - pattern: '*.bam', - enabled: params.save_align_intermeds + pattern: '*.{bai,csi}' + ] + } + + withName: 'NFCORE_CHIPSEQ:CHIPSEQ:BAM_FILTER_BAMTOOLS:BAM_STATS_SAMTOOLS:.*' { + ext.prefix = { "${meta.id}.mLb.clN.sorted.bam" } + publishDir = [ + path: { "${params.outdir}/${params.aligner}/merged_library/samtools_stats" }, + mode: params.publish_dir_mode, + pattern: "*.{stats,flagstat,idxstats}" ] } @@ -391,21 +398,14 @@ process { ] } - withName: 'NFCORE_CHIPSEQ:CHIPSEQ:BAM_FILTER_BAMTOOLS:SAMTOOLS_INDEX' { - ext.prefix = { "${meta.id}.mLb.clN.sorted" } + withName: 'BAM_REMOVE_ORPHANS' { + ext.args = '--only_fr_pairs' + ext.prefix = { "${meta.id}.mLb.clN" } publishDir = [ path: { "${params.outdir}/${params.aligner}/merged_library" }, mode: params.publish_dir_mode, - pattern: '*.{bai,csi}' - ] - } - - withName: 'NFCORE_CHIPSEQ:CHIPSEQ:BAM_FILTER_BAMTOOLS:BAM_STATS_SAMTOOLS:.*' { - ext.prefix = { "${meta.id}.mLb.clN.sorted.bam" } - publishDir = [ - path: { "${params.outdir}/${params.aligner}/merged_library/samtools_stats" }, - mode: params.publish_dir_mode, - pattern: "*.{stats,flagstat,idxstats}" + pattern: '*.bam', + enabled: params.save_align_intermeds ] } @@ -427,7 +427,7 @@ process { ] } - withName: 'BEDTOOLS_GENOMECOV' { + withName: '.*:BAM_BEDGRAPH_BIGWIG_BEDTOOLS_UCSC:BEDTOOLS_GENOMECOV' { ext.args = { (meta.single_end && params.fragment_size > 0) ? "-fs ${params.fragment_size}" : '' } ext.prefix = { "${meta.id}.mLB.clN" } publishDir = [ @@ -444,7 +444,7 @@ process { ] } - withName: 'UCSC_BEDGRAPHTOBIGWIG' { + withName: '.*:BAM_BEDGRAPH_BIGWIG_BEDTOOLS_UCSC:UCSC_BEDGRAPHTOBIGWIG' { ext.prefix = { "${meta.id}.mLb.clN" } publishDir = [ path: { "${params.outdir}/${params.aligner}/merged_library/bigwig" }, @@ -540,7 +540,7 @@ if (!params.skip_plot_fingerprint) { } process { - withName: 'MACS2_CALLPEAK' { + withName: '.*:BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER:MACS2_CALLPEAK' { ext.args = [ '--keep-dup all', params.narrow_peak ? '' : "--broad --broad-cutoff ${params.broad_cutoff}", @@ -559,7 +559,7 @@ process { ] } - withName: 'FRIP_SCORE' { + withName: '.*:BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER:FRIP_SCORE' { ext.args = '-bed -c -f 0.20' publishDir = [ path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/qc" }, @@ -567,7 +567,7 @@ process { ] } - withName: 'MULTIQC_CUSTOM_PEAKS' { + withName: '.*:BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER:MULTIQC_CUSTOM_PEAKS' { publishDir = [ path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/qc" }, mode: params.publish_dir_mode, @@ -578,7 +578,7 @@ process { if (!params.skip_peak_annotation) { process { - withName: 'HOMER_ANNOTATEPEAKS_MACS2' { + withName: '.*:BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER:HOMER_ANNOTATEPEAKS' { ext.args = '-gid' ext.prefix = { "${meta.id}_peaks" } publishDir = [ @@ -591,7 +591,7 @@ if (!params.skip_peak_annotation) { if (!params.skip_peak_qc) { process { - withName: 'PLOT_MACS2_QC' { + withName: '.*:BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER:PLOT_MACS2_QC' { ext.args = '-o ./ -p macs2_peak' publishDir = [ path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/qc" }, @@ -600,7 +600,7 @@ if (!params.skip_peak_annotation) { ] } - withName: 'PLOT_HOMER_ANNOTATEPEAKS' { + withName: '.*:BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER:PLOT_HOMER_ANNOTATEPEAKS' { ext.args = '-o ./' ext.prefix = 'macs2_annotatePeaks' publishDir = [ diff --git a/subworkflows/local/bam_peaks_call_qc_annotate_macs2_homer.nf b/subworkflows/local/bam_peaks_call_qc_annotate_macs2_homer.nf index 4c2a8710..5b7b9b85 100644 --- a/subworkflows/local/bam_peaks_call_qc_annotate_macs2_homer.nf +++ b/subworkflows/local/bam_peaks_call_qc_annotate_macs2_homer.nf @@ -23,7 +23,7 @@ workflow BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER { is_narrow_peak // boolean: true/false skip_peak_annotation // boolean: true/false skip_peak_qc // boolean: true/false - + main: ch_versions = Channel.empty() @@ -43,7 +43,7 @@ workflow BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER { MACS2_CALLPEAK .out .peak - .filter { + .filter { meta, peaks -> peaks.size() > 0 } @@ -102,7 +102,7 @@ workflow BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER { ) ch_homer_annotatepeaks = HOMER_ANNOTATEPEAKS.out.txt ch_versions = ch_versions.mix(HOMER_ANNOTATEPEAKS.out.versions.first()) - + if (!skip_peak_qc) { // // MACS2 QC plots with R @@ -138,7 +138,7 @@ workflow BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER { bedgraph = MACS2_CALLPEAK.out.bdg // channel: [ val(meta), [ bedgraph ] ] frip_txt = FRIP_SCORE.out.txt // channel: [ val(meta), [ txt ] ] - + frip_multiqc = MULTIQC_CUSTOM_PEAKS.out.frip // channel: [ val(meta), [ frip ] ] peak_count_multiqc = MULTIQC_CUSTOM_PEAKS.out.count // channel: [ val(meta), [ counts ] ] diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index f7a19072..c7ba425d 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -466,7 +466,7 @@ workflow CHIPSEQ { params.skip_peak_annotation, params.skip_peak_qc ) - ch_versions = ch_versions.mix(MERGED_LIBRARY_CALL_ANNOTATE_PEAKS.out.versions) + ch_versions = ch_versions.mix(BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER.out.versions) // // Consensus peaks analysis From bb76db77da3c7c676741e28c7e9a30ee64461144 Mon Sep 17 00:00:00 2001 From: bjlang <> Date: Mon, 8 Jul 2024 14:11:12 +0200 Subject: [PATCH 175/201] create subworkflows/local/bam_peaks_call_qc_annotate_macs2_homer similar to nf-core/atacseq --- conf/modules.config | 10 +- ...antify_qc_bedtools_featurecounts_deseq2.nf | 156 ++++++++++++++++++ workflows/chipseq.nf | 127 +++----------- 3 files changed, 187 insertions(+), 106 deletions(-) create mode 100644 subworkflows/local/bed_consensus_quantify_qc_bedtools_featurecounts_deseq2.nf diff --git a/conf/modules.config b/conf/modules.config index 1fc095e3..a18fa85c 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -615,7 +615,7 @@ if (!params.skip_peak_annotation) { if (!params.skip_consensus_peaks) { process { - withName: 'MACS2_CONSENSUS' { + withName: '.*:BED_CONSENSUS_QUANTIFY_QC_BEDTOOLS_FEATURECOUNTS_DESEQ2:MACS2_CONSENSUS' { ext.when = { meta.multiple_groups || meta.replicates_exist } ext.prefix = { "${meta.id}.consensus_peaks" } publishDir = [ @@ -625,7 +625,7 @@ if (!params.skip_consensus_peaks) { ] } - withName: 'SUBREAD_FEATURECOUNTS' { + withName: '.*:BED_CONSENSUS_QUANTIFY_QC_BEDTOOLS_FEATURECOUNTS_DESEQ2:SUBREAD_FEATURECOUNTS' { ext.args = '-F SAF -O --fracOverlap 0.2' ext.prefix = { "${meta.id}.consensus_peaks" } publishDir = [ @@ -638,7 +638,7 @@ if (!params.skip_consensus_peaks) { if (!params.skip_peak_annotation) { process { - withName: 'HOMER_ANNOTATEPEAKS_CONSENSUS' { + withName: '.*:BED_CONSENSUS_QUANTIFY_QC_BEDTOOLS_FEATURECOUNTS_DESEQ2:HOMER_ANNOTATEPEAKS' { ext.args = '-gid' ext.prefix = { "${meta.id}.consensus_peaks" } publishDir = [ @@ -648,7 +648,7 @@ if (!params.skip_consensus_peaks) { ] } - withName: 'ANNOTATE_BOOLEAN_PEAKS' { + withName: '.*:BED_CONSENSUS_QUANTIFY_QC_BEDTOOLS_FEATURECOUNTS_DESEQ2:ANNOTATE_BOOLEAN_PEAKS' { ext.prefix = { "${meta.id}.consensus_peaks" } publishDir = [ path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/consensus/${meta.id}" }, @@ -661,7 +661,7 @@ if (!params.skip_consensus_peaks) { if (!params.skip_deseq2_qc) { process { - withName: DESEQ2_QC { + withName: '.*:BED_CONSENSUS_QUANTIFY_QC_BEDTOOLS_FEATURECOUNTS_DESEQ2:DESEQ2_QC' { ext.when = { meta.multiple_groups && meta.replicates_exist } ext.args = [ '--id_col 1', diff --git a/subworkflows/local/bed_consensus_quantify_qc_bedtools_featurecounts_deseq2.nf b/subworkflows/local/bed_consensus_quantify_qc_bedtools_featurecounts_deseq2.nf new file mode 100644 index 00000000..98e4bc80 --- /dev/null +++ b/subworkflows/local/bed_consensus_quantify_qc_bedtools_featurecounts_deseq2.nf @@ -0,0 +1,156 @@ +// +// Call consensus peaks with BEDTools and custom scripts, annotate with HOMER, quantify with featureCounts and QC with DESeq2 +// + +include { HOMER_ANNOTATEPEAKS } from '../../modules/nf-core/homer/annotatepeaks/main' +include { SUBREAD_FEATURECOUNTS } from '../../modules/nf-core/subread/featurecounts/main' + +include { MACS2_CONSENSUS } from '../../modules/local/macs2_consensus' +include { DESEQ2_QC } from '../../modules/local/deseq2_qc' + +workflow BED_CONSENSUS_QUANTIFY_QC_BEDTOOLS_FEATURECOUNTS_DESEQ2 { + take: + ch_peaks // channel: [ val(meta), [ peaks ] ] + ch_bams // channel: [ val(meta), [ ip_bams ] ] + ch_fasta // channel: [ fasta ] + ch_gtf // channel: [ gtf ] + ch_deseq2_pca_header_multiqc // channel: [ header_file ] + ch_deseq2_clustering_header_multiqc // channel: [ header_file ] + is_narrow_peak // boolean: true/false + skip_peak_annotation // boolean: true/false + skip_deseq2_qc // boolean: true/false + + main: + + ch_versions = Channel.empty() + + // Create channels: [ meta , [ peaks ] ] + // Where meta = [ id:antibody, multiple_groups:true/false, replicates_exist:true/false ] + ch_peaks + .map { + meta, peak -> + [ meta.antibody, meta.id.split('_')[0..-2].join('_'), peak ] + } + .groupTuple() + .map { + antibody, groups, peaks -> + [ + antibody, + groups.groupBy().collectEntries { [(it.key) : it.value.size()] }, + peaks + ] + } + .map { + antibody, groups, peaks -> + def meta_new = [:] + meta_new.id = antibody + meta_new.multiple_groups = groups.size() > 1 + meta_new.replicates_exist = groups.max { groups.value }.value > 1 + [ meta_new, peaks ] + } + .set { ch_antibody_peaks } + + // + // Generate consensus peaks across samples + // + MACS2_CONSENSUS ( + ch_antibody_peaks, + is_narrow_peak + ) + ch_versions = ch_versions.mix(MACS2_CONSENSUS.out.versions) + + // + // Annotate consensus peaks + // + if (!skip_peak_annotation) { + HOMER_ANNOTATEPEAKS ( + MACS2_CONSENSUS.out.bed, + ch_fasta, + ch_gtf + ) + + // + // MODULE: Add boolean fields to annotated consensus peaks to aid filtering + // + ANNOTATE_BOOLEAN_PEAKS ( + MACS2_CONSENSUS.out.boolean_txt.join(HOMER_ANNOTATEPEAKS.out.txt, by: [0]), + ) + ch_versions = ch_versions.mix(HOMER_ANNOTATEPEAKS.out.versions) + } + + // Create channels: [ meta, [ ip_bams ], saf ] + MACS2_CONSENSUS + .out + .saf + .map { + meta, saf -> + [ meta.id, meta, saf ] + } + .join(ch_bams) + .map { + antibody, meta, saf, bams -> + [ meta, bams.flatten().sort(), saf ] + } + .set { ch_bam_saf } + + // + // Quantify peaks across samples with featureCounts + // + SUBREAD_FEATURECOUNTS ( + ch_bam_saf + ) + ch_versions = ch_versions.mix(SUBREAD_FEATURECOUNTS.out.versions) + + // + // Generate QC plots with DESeq2 + // + ch_deseq2_qc_pdf = Channel.empty() + ch_deseq2_qc_rdata = Channel.empty() + ch_deseq2_qc_rds = Channel.empty() + ch_deseq2_qc_pca_txt = Channel.empty() + ch_deseq2_qc_pca_multiqc = Channel.empty() + ch_deseq2_qc_dists_txt = Channel.empty() + ch_deseq2_qc_dists_multiqc = Channel.empty() + ch_deseq2_qc_log = Channel.empty() + ch_deseq2_qc_size_factors = Channel.empty() + if (!skip_deseq2_qc) { + DESEQ2_QC ( + SUBREAD_FEATURECOUNTS.out.counts, + ch_deseq2_pca_header_multiqc, + ch_deseq2_clustering_header_multiqc + ) + ch_deseq2_qc_pdf = DESEQ2_QC.out.pdf + ch_deseq2_qc_rdata = DESEQ2_QC.out.rdata + ch_deseq2_qc_rds = DESEQ2_QC.out.rds + ch_deseq2_qc_pca_txt = DESEQ2_QC.out.pca_txt + ch_deseq2_qc_pca_multiqc = DESEQ2_QC.out.pca_multiqc + ch_deseq2_qc_dists_txt = DESEQ2_QC.out.dists_txt + ch_deseq2_qc_dists_multiqc = DESEQ2_QC.out.dists_multiqc + ch_deseq2_qc_log = DESEQ2_QC.out.log + ch_deseq2_qc_size_factors = DESEQ2_QC.out.size_factors + ch_versions = ch_versions.mix(DESEQ2_QC.out.versions) + } + + emit: + consensus_bed = MACS2_CONSENSUS.out.bed // channel: [ bed ] + consensus_saf = MACS2_CONSENSUS.out.saf // channel: [ saf ] + consensus_pdf = MACS2_CONSENSUS.out.pdf // channel: [ pdf ] + consensus_txt = MACS2_CONSENSUS.out.txt // channel: [ pdf ] + consensus_boolean_txt = MACS2_CONSENSUS.out.boolean_txt // channel: [ txt ] + consensus_intersect_txt = MACS2_CONSENSUS.out.intersect_txt // channel: [ txt ] + + featurecounts_txt = SUBREAD_FEATURECOUNTS.out.counts // channel: [ txt ] + featurecounts_summary = SUBREAD_FEATURECOUNTS.out.summary // channel: [ txt ] + + deseq2_qc_pdf = ch_deseq2_qc_pdf // channel: [ pdf ] + deseq2_qc_rdata = ch_deseq2_qc_rdata // channel: [ rdata ] + deseq2_qc_rds = ch_deseq2_qc_rds // channel: [ rds ] + deseq2_qc_pca_txt = ch_deseq2_qc_pca_txt // channel: [ txt ] + deseq2_qc_pca_multiqc = ch_deseq2_qc_pca_multiqc // channel: [ txt ] + deseq2_qc_dists_txt = ch_deseq2_qc_dists_txt // channel: [ txt ] + deseq2_qc_dists_multiqc = ch_deseq2_qc_dists_multiqc // channel: [ txt ] + deseq2_qc_log = ch_deseq2_qc_log // channel: [ txt ] + deseq2_qc_size_factors = ch_deseq2_qc_size_factors // channel: [ txt ] + + versions = ch_versions // channel: [ versions.yml ] +} diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index c7ba425d..3b8ab88a 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -17,15 +17,16 @@ include { MULTIQC_CUSTOM_PHANTOMPEAKQUALTOOLS } from '../modules/local/multiqc_c // // SUBWORKFLOW: Consisting of a mix of local and nf-core/modules // -include { paramsSummaryMap } from 'plugin/nf-validation' -include { paramsSummaryMultiqc } from '../subworkflows/nf-core/utils_nfcore_pipeline' -include { softwareVersionsToYAML } from '../subworkflows/nf-core/utils_nfcore_pipeline' -include { methodsDescriptionText } from '../subworkflows/local/utils_nfcore_chipseq_pipeline' -include { INPUT_CHECK } from '../subworkflows/local/input_check' -include { ALIGN_STAR } from '../subworkflows/local/align_star' -include { BAM_FILTER_BAMTOOLS } from '../subworkflows/local/bam_filter_bamtools' -include { BAM_BEDGRAPH_BIGWIG_BEDTOOLS_UCSC } from '../subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc' -include { BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER } from '../subworkflows/local/bam_peaks_call_qc_annotate_macs2_homer.nf' +include { paramsSummaryMap } from 'plugin/nf-validation' +include { paramsSummaryMultiqc } from '../subworkflows/nf-core/utils_nfcore_pipeline' +include { softwareVersionsToYAML } from '../subworkflows/nf-core/utils_nfcore_pipeline' +include { methodsDescriptionText } from '../subworkflows/local/utils_nfcore_chipseq_pipeline' +include { INPUT_CHECK } from '../subworkflows/local/input_check' +include { ALIGN_STAR } from '../subworkflows/local/align_star' +include { BAM_FILTER_BAMTOOLS } from '../subworkflows/local/bam_filter_bamtools' +include { BAM_BEDGRAPH_BIGWIG_BEDTOOLS_UCSC } from '../subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc' +include { BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER } from '../subworkflows/local/bam_peaks_call_qc_annotate_macs2_homer.nf' +include { BED_CONSENSUS_QUANTIFY_QC_BEDTOOLS_FEATURECOUNTS_DESEQ2 } from '../subworkflows/local/bed_consensus_quantify_qc_bedtools_featurecounts_deseq2.nf' /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -476,63 +477,6 @@ workflow CHIPSEQ { ch_deseq2_pca_multiqc = Channel.empty() ch_deseq2_clustering_multiqc = Channel.empty() if (!params.skip_consensus_peaks) { - // Create channels: [ meta , [ peaks ] ] - // Where meta = [ id:antibody, multiple_groups:true/false, replicates_exist:true/false ] - BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER.out.peaks - .map { - meta, peak -> - [ meta.antibody, meta.id.split('_')[0..-2].join('_'), peak ] - } - .groupTuple() - .map { - antibody, groups, peaks -> - [ - antibody, - groups.groupBy().collectEntries { [(it.key) : it.value.size()] }, - peaks - ] - } - .map { - antibody, groups, peaks -> - def meta_new = [:] - meta_new.id = antibody - meta_new.multiple_groups = groups.size() > 1 - meta_new.replicates_exist = groups.max { groups.value }.value > 1 - [ meta_new, peaks ] - } - .set { ch_antibody_peaks } - - // - // MODULE: Generate consensus peaks across samples - // - MACS2_CONSENSUS ( - ch_antibody_peaks, - params.narrow_peak - ) - ch_macs2_consensus_bed_lib = MACS2_CONSENSUS.out.bed - ch_macs2_consensus_txt_lib = MACS2_CONSENSUS.out.txt - ch_versions = ch_versions.mix(MACS2_CONSENSUS.out.versions) - - if (!params.skip_peak_annotation) { - // - // MODULE: Annotate consensus peaks - // - HOMER_ANNOTATEPEAKS_CONSENSUS ( - MACS2_CONSENSUS.out.bed, - ch_fasta, - ch_gtf - ) - ch_versions = ch_versions.mix(HOMER_ANNOTATEPEAKS_CONSENSUS.out.versions) - - // - // MODULE: Add boolean fields to annotated consensus peaks to aid filtering - // - ANNOTATE_BOOLEAN_PEAKS ( - MACS2_CONSENSUS.out.boolean_txt.join(HOMER_ANNOTATEPEAKS_CONSENSUS.out.txt, by: [0]), - ) - ch_versions = ch_versions.mix(ANNOTATE_BOOLEAN_PEAKS.out.versions) - } - // Create channels: [ antibody, [ ip_bams ] ] ch_ip_control_bam .map { @@ -542,42 +486,23 @@ workflow CHIPSEQ { .groupTuple() .set { ch_antibody_bams } - // Create channels: [ meta, [ ip_bams ], saf ] - MACS2_CONSENSUS - .out - .saf - .map { - meta, saf -> - [ meta.id, meta, saf ] - } - .join(ch_antibody_bams) - .map { - antibody, meta, saf, bams -> - [ meta, bams.flatten().sort(), saf ] - } - .set { ch_saf_bams } - - // - // MODULE: Quantify peaks across samples with featureCounts - // - SUBREAD_FEATURECOUNTS ( - ch_saf_bams + BED_CONSENSUS_QUANTIFY_QC_BEDTOOLS_FEATURECOUNTS_DESEQ2 ( + BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER.out.peaks, + ch_antibody_bams, + ch_fasta, + ch_gtf, + ch_deseq2_pca_header, + ch_deseq2_clustering_header, + params.narrow_peak, + params.skip_peak_annotation, + params.skip_deseq2_qc ) - ch_subreadfeaturecounts_multiqc = SUBREAD_FEATURECOUNTS.out.summary - ch_versions = ch_versions.mix(SUBREAD_FEATURECOUNTS.out.versions.first()) - - if (!params.skip_deseq2_qc) { - // - // MODULE: Generate QC plots with DESeq2 - // - DESEQ2_QC ( - SUBREAD_FEATURECOUNTS.out.counts, - ch_deseq2_pca_header, - ch_deseq2_clustering_header - ) - ch_deseq2_pca_multiqc = DESEQ2_QC.out.pca_multiqc - ch_deseq2_clustering_multiqc = DESEQ2_QC.out.dists_multiqc - } + ch_macs2_consensus_bed_lib = BED_CONSENSUS_QUANTIFY_QC_BEDTOOLS_FEATURECOUNTS_DESEQ2.out.consensus_bed + ch_macs2_consensus_txt_lib = BED_CONSENSUS_QUANTIFY_QC_BEDTOOLS_FEATURECOUNTS_DESEQ2.out.consensus_txt + ch_subreadfeaturecounts_multiqc = BED_CONSENSUS_QUANTIFY_QC_BEDTOOLS_FEATURECOUNTS_DESEQ2.out.featurecounts_summary + ch_deseq2_pca_multiqc = BED_CONSENSUS_QUANTIFY_QC_BEDTOOLS_FEATURECOUNTS_DESEQ2.out.deseq2_qc_pca_multiqc + ch_deseq2_clustering_multiqc = BED_CONSENSUS_QUANTIFY_QC_BEDTOOLS_FEATURECOUNTS_DESEQ2.out.deseq2_qc_dists_multiqc + ch_versions = ch_versions.mix(BED_CONSENSUS_QUANTIFY_QC_BEDTOOLS_FEATURECOUNTS_DESEQ2.out.versions) } // From 132892e796b6de36949fd1e19692d632ee57c7a7 Mon Sep 17 00:00:00 2001 From: bjlang <> Date: Mon, 8 Jul 2024 14:17:49 +0200 Subject: [PATCH 176/201] fix includes --- .../bed_consensus_quantify_qc_bedtools_featurecounts_deseq2.nf | 1 + workflows/chipseq.nf | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/subworkflows/local/bed_consensus_quantify_qc_bedtools_featurecounts_deseq2.nf b/subworkflows/local/bed_consensus_quantify_qc_bedtools_featurecounts_deseq2.nf index 98e4bc80..d4d3860d 100644 --- a/subworkflows/local/bed_consensus_quantify_qc_bedtools_featurecounts_deseq2.nf +++ b/subworkflows/local/bed_consensus_quantify_qc_bedtools_featurecounts_deseq2.nf @@ -6,6 +6,7 @@ include { HOMER_ANNOTATEPEAKS } from '../../modules/nf-core/homer/annotatepea include { SUBREAD_FEATURECOUNTS } from '../../modules/nf-core/subread/featurecounts/main' include { MACS2_CONSENSUS } from '../../modules/local/macs2_consensus' +include { ANNOTATE_BOOLEAN_PEAKS } from '../../modules/local/annotate_boolean_peaks' include { DESEQ2_QC } from '../../modules/local/deseq2_qc' workflow BED_CONSENSUS_QUANTIFY_QC_BEDTOOLS_FEATURECOUNTS_DESEQ2 { diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index 3b8ab88a..6f722b6f 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -8,7 +8,6 @@ // MODULE: Loaded from modules/local/ // include { MACS2_CONSENSUS } from '../modules/local/macs2_consensus' -include { ANNOTATE_BOOLEAN_PEAKS } from '../modules/local/annotate_boolean_peaks' include { DESEQ2_QC } from '../modules/local/deseq2_qc' include { IGV } from '../modules/local/igv' include { MULTIQC } from '../modules/local/multiqc' From f4f8b689d29a947d8498fac389388b288f2375c5 Mon Sep 17 00:00:00 2001 From: bjlang <> Date: Tue, 9 Jul 2024 09:49:35 +0200 Subject: [PATCH 177/201] suggestions from code review --- conf/modules.config | 18 +++++++++--------- ...uantify_qc_bedtools_featurecounts_deseq2.nf | 3 ++- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/conf/modules.config b/conf/modules.config index a18fa85c..e374f867 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -540,7 +540,7 @@ if (!params.skip_plot_fingerprint) { } process { - withName: '.*:BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER:MACS2_CALLPEAK' { + withName: 'MACS2_CALLPEAK' { ext.args = [ '--keep-dup all', params.narrow_peak ? '' : "--broad --broad-cutoff ${params.broad_cutoff}", @@ -559,7 +559,7 @@ process { ] } - withName: '.*:BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER:FRIP_SCORE' { + withName: 'FRIP_SCORE' { ext.args = '-bed -c -f 0.20' publishDir = [ path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/qc" }, @@ -567,7 +567,7 @@ process { ] } - withName: '.*:BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER:MULTIQC_CUSTOM_PEAKS' { + withName: 'MULTIQC_CUSTOM_PEAKS' { publishDir = [ path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/qc" }, mode: params.publish_dir_mode, @@ -591,7 +591,7 @@ if (!params.skip_peak_annotation) { if (!params.skip_peak_qc) { process { - withName: '.*:BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER:PLOT_MACS2_QC' { + withName: 'PLOT_MACS2_QC' { ext.args = '-o ./ -p macs2_peak' publishDir = [ path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/qc" }, @@ -600,7 +600,7 @@ if (!params.skip_peak_annotation) { ] } - withName: '.*:BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER:PLOT_HOMER_ANNOTATEPEAKS' { + withName: 'PLOT_HOMER_ANNOTATEPEAKS' { ext.args = '-o ./' ext.prefix = 'macs2_annotatePeaks' publishDir = [ @@ -615,7 +615,7 @@ if (!params.skip_peak_annotation) { if (!params.skip_consensus_peaks) { process { - withName: '.*:BED_CONSENSUS_QUANTIFY_QC_BEDTOOLS_FEATURECOUNTS_DESEQ2:MACS2_CONSENSUS' { + withName: 'MACS2_CONSENSUS' { ext.when = { meta.multiple_groups || meta.replicates_exist } ext.prefix = { "${meta.id}.consensus_peaks" } publishDir = [ @@ -625,7 +625,7 @@ if (!params.skip_consensus_peaks) { ] } - withName: '.*:BED_CONSENSUS_QUANTIFY_QC_BEDTOOLS_FEATURECOUNTS_DESEQ2:SUBREAD_FEATURECOUNTS' { + withName: 'SUBREAD_FEATURECOUNTS' { ext.args = '-F SAF -O --fracOverlap 0.2' ext.prefix = { "${meta.id}.consensus_peaks" } publishDir = [ @@ -648,7 +648,7 @@ if (!params.skip_consensus_peaks) { ] } - withName: '.*:BED_CONSENSUS_QUANTIFY_QC_BEDTOOLS_FEATURECOUNTS_DESEQ2:ANNOTATE_BOOLEAN_PEAKS' { + withName: 'ANNOTATE_BOOLEAN_PEAKS' { ext.prefix = { "${meta.id}.consensus_peaks" } publishDir = [ path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/consensus/${meta.id}" }, @@ -661,7 +661,7 @@ if (!params.skip_consensus_peaks) { if (!params.skip_deseq2_qc) { process { - withName: '.*:BED_CONSENSUS_QUANTIFY_QC_BEDTOOLS_FEATURECOUNTS_DESEQ2:DESEQ2_QC' { + withName: 'DESEQ2_QC' { ext.when = { meta.multiple_groups && meta.replicates_exist } ext.args = [ '--id_col 1', diff --git a/subworkflows/local/bed_consensus_quantify_qc_bedtools_featurecounts_deseq2.nf b/subworkflows/local/bed_consensus_quantify_qc_bedtools_featurecounts_deseq2.nf index d4d3860d..e3a38432 100644 --- a/subworkflows/local/bed_consensus_quantify_qc_bedtools_featurecounts_deseq2.nf +++ b/subworkflows/local/bed_consensus_quantify_qc_bedtools_featurecounts_deseq2.nf @@ -69,6 +69,7 @@ workflow BED_CONSENSUS_QUANTIFY_QC_BEDTOOLS_FEATURECOUNTS_DESEQ2 { ch_fasta, ch_gtf ) + ch_versions = ch_versions.mix(HOMER_ANNOTATEPEAKS.out.versions) // // MODULE: Add boolean fields to annotated consensus peaks to aid filtering @@ -76,7 +77,7 @@ workflow BED_CONSENSUS_QUANTIFY_QC_BEDTOOLS_FEATURECOUNTS_DESEQ2 { ANNOTATE_BOOLEAN_PEAKS ( MACS2_CONSENSUS.out.boolean_txt.join(HOMER_ANNOTATEPEAKS.out.txt, by: [0]), ) - ch_versions = ch_versions.mix(HOMER_ANNOTATEPEAKS.out.versions) + ch_versions = ch_versions.mix(ANNOTATE_BOOLEAN_PEAKS.out.versions) } // Create channels: [ meta, [ ip_bams ], saf ] From 1bd1b1583a00b0bcc34d3959d02d2a03a0282ea6 Mon Sep 17 00:00:00 2001 From: bjlang <> Date: Tue, 9 Jul 2024 17:41:27 +0200 Subject: [PATCH 178/201] Clean up and removal of double slashes --- README.md | 2 +- conf/modules.config | 29 +++++++++---------- ...antify_qc_bedtools_featurecounts_deseq2.nf | 2 +- workflows/chipseq.nf | 11 ++----- 4 files changed, 18 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 2dcb70e1..ad2e4ea9 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ ## Introduction -**nfcore/chipseq** is a bioinformatics analysis pipeline used for Chromatin ImmunopreciPitation sequencing (ChIP-seq) data. +**nfcore/chipseq** is a bioinformatics analysis pipeline used for Chromatin ImmunoPrecipitation sequencing (ChIP-seq) data. On release, automated continuous integration tests run the pipeline on a [full-sized dataset](https://github.com/nf-core/test-datasets/tree/chipseq#full-test-dataset-origin) on the AWS cloud infrastructure. The dataset consists of FoxA1 (transcription factor) and EZH2 (histone,mark) IP experiments from _Franco et al. 2015_ ([GEO: GSE59530](https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE59530), [PMID: 25752574](https://pubmed.ncbi.nlm.nih.gov/25752574/)) and _Popovic et al. 2014_ ([GEO: GSE57632](https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE57632), [PMID: 25188243](https://pubmed.ncbi.nlm.nih.gov/25188243/)), respectively. This ensures that the pipeline runs on AWS, has sensible resource allocation defaults set to run on real-world datasets, and permits the persistent storage of results to benchmark between pipeline releases and other analysis sources. The results obtained from running the full-sized tests can be viewed on the [nf-core website](https://nf-co.re/chipseq/results). diff --git a/conf/modules.config b/conf/modules.config index e374f867..f5f8394c 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -550,10 +550,7 @@ process { params.aligner == "chromap" ? "--format BAM" : '' //TODO check if not needed anymore with new chromap versions ].join(' ').trim() publishDir = [ - path: { [ - "${params.outdir}/${params.aligner}/merged_library/macs2", - params.narrow_peak? '/narrow_peak' : '/broad_peak' - ].join('') }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? 'narrow_peak' : 'broad_peak'}" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -562,14 +559,14 @@ process { withName: 'FRIP_SCORE' { ext.args = '-bed -c -f 0.20' publishDir = [ - path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/qc" }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? 'narrow_peak' : 'broad_peak'}/qc" }, enabled: false ] } withName: 'MULTIQC_CUSTOM_PEAKS' { publishDir = [ - path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/qc" }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? 'narrow_peak' : 'broad_peak'}/qc" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -582,7 +579,7 @@ if (!params.skip_peak_annotation) { ext.args = '-gid' ext.prefix = { "${meta.id}_peaks" } publishDir = [ - path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}" }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? 'narrow_peak' : 'broad_peak'}" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -594,7 +591,7 @@ if (!params.skip_peak_annotation) { withName: 'PLOT_MACS2_QC' { ext.args = '-o ./ -p macs2_peak' publishDir = [ - path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/qc" }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? 'narrow_peak' : 'broad_peak'}/qc" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -604,7 +601,7 @@ if (!params.skip_peak_annotation) { ext.args = '-o ./' ext.prefix = 'macs2_annotatePeaks' publishDir = [ - path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/qc" }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? 'narrow_peak' : 'broad_peak'}/qc" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -619,7 +616,7 @@ if (!params.skip_consensus_peaks) { ext.when = { meta.multiple_groups || meta.replicates_exist } ext.prefix = { "${meta.id}.consensus_peaks" } publishDir = [ - path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/consensus/${meta.id}" }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? 'narrow_peak' : 'broad_peak'}/consensus/${meta.id}" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -629,7 +626,7 @@ if (!params.skip_consensus_peaks) { ext.args = '-F SAF -O --fracOverlap 0.2' ext.prefix = { "${meta.id}.consensus_peaks" } publishDir = [ - path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/consensus/${meta.id}" }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? 'narrow_peak' : 'broad_peak'}/consensus/${meta.id}" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -642,7 +639,7 @@ if (!params.skip_consensus_peaks) { ext.args = '-gid' ext.prefix = { "${meta.id}.consensus_peaks" } publishDir = [ - path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/consensus/${meta.id}" }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? 'narrow_peak' : 'broad_peak'}/consensus/${meta.id}" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -651,7 +648,7 @@ if (!params.skip_consensus_peaks) { withName: 'ANNOTATE_BOOLEAN_PEAKS' { ext.prefix = { "${meta.id}.consensus_peaks" } publishDir = [ - path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/consensus/${meta.id}" }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? 'narrow_peak' : 'broad_peak'}/consensus/${meta.id}" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -671,7 +668,7 @@ if (!params.skip_consensus_peaks) { ].join(' ').trim() ext.prefix = { "${meta.id}.consensus_peaks" } publishDir = [ - path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/consensus/${meta.id}/deseq2" }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? 'narrow_peak' : 'broad_peak'}/consensus/${meta.id}/deseq2" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -685,7 +682,7 @@ if (!params.skip_igv) { withName: 'IGV' { publishDir = [ [ - path: { "${params.outdir}/igv/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}" }, + path: { "${params.outdir}/igv/${params.narrow_peak ? 'narrow_peak' : 'broad_peak'}" }, mode: params.publish_dir_mode, pattern: '*.{txt,xml}' ], @@ -704,7 +701,7 @@ if (!params.skip_multiqc) { withName: 'MULTIQC' { ext.args = params.multiqc_title ? "--title \"$params.multiqc_title\"" : '' publishDir = [ - path: { "${params.outdir}/multiqc/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}" }, + path: { "${params.outdir}/multiqc/${params.narrow_peak ? 'narrow_peak' : 'broad_peak'}" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] diff --git a/subworkflows/local/bed_consensus_quantify_qc_bedtools_featurecounts_deseq2.nf b/subworkflows/local/bed_consensus_quantify_qc_bedtools_featurecounts_deseq2.nf index e3a38432..6b9b8efe 100644 --- a/subworkflows/local/bed_consensus_quantify_qc_bedtools_featurecounts_deseq2.nf +++ b/subworkflows/local/bed_consensus_quantify_qc_bedtools_featurecounts_deseq2.nf @@ -30,7 +30,7 @@ workflow BED_CONSENSUS_QUANTIFY_QC_BEDTOOLS_FEATURECOUNTS_DESEQ2 { ch_peaks .map { meta, peak -> - [ meta.antibody, meta.id.split('_')[0..-2].join('_'), peak ] + [ meta.antibody, meta.id - ~/_T\d+$/, peak ] } .groupTuple() .map { diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index 6f722b6f..54343de6 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -7,8 +7,6 @@ // // MODULE: Loaded from modules/local/ // -include { MACS2_CONSENSUS } from '../modules/local/macs2_consensus' -include { DESEQ2_QC } from '../modules/local/deseq2_qc' include { IGV } from '../modules/local/igv' include { MULTIQC } from '../modules/local/multiqc' include { MULTIQC_CUSTOM_PHANTOMPEAKQUALTOOLS } from '../modules/local/multiqc_custom_phantompeakqualtools' @@ -46,9 +44,6 @@ include { DEEPTOOLS_PLOTPROFILE } from '../modules/nf-core/deeptools/plo include { DEEPTOOLS_PLOTHEATMAP } from '../modules/nf-core/deeptools/plotheatmap/main' include { DEEPTOOLS_PLOTFINGERPRINT } from '../modules/nf-core/deeptools/plotfingerprint/main' include { KHMER_UNIQUEKMERS } from '../modules/nf-core/khmer/uniquekmers/main' -include { SUBREAD_FEATURECOUNTS } from '../modules/nf-core/subread/featurecounts/main' - -include { HOMER_ANNOTATEPEAKS as HOMER_ANNOTATEPEAKS_CONSENSUS } from '../modules/nf-core/homer/annotatepeaks/main' // // SUBWORKFLOW: Consisting entirely of nf-core/modules @@ -240,13 +235,13 @@ workflow CHIPSEQ { meta, bam -> def meta_clone = meta.clone() meta_clone.remove('read_group') - meta_clone.id = meta_clone.id.split('_')[0..-2].join('_') + meta_clone.id = meta_clone.id - ~/_T\d+$/ [ meta_clone, bam ] } .groupTuple(by: [0]) .map { - it -> - [ it[0], it[1].flatten() ] + meta, bam -> + [ meta, bam.flatten() ] } .set { ch_sort_bam } From 2936122cc1522c6fa52d777bfc140cee38d784d7 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Mon, 22 Jul 2024 22:17:00 +0200 Subject: [PATCH 179/201] Install macs3 module --- modules.json | 5 + .../nf-core/macs3/callpeak/environment.yml | 9 + modules/nf-core/macs3/callpeak/main.nf | 70 ++++ modules/nf-core/macs3/callpeak/meta.yml | 73 ++++ .../nf-core/macs3/callpeak/tests/bam.config | 5 + .../nf-core/macs3/callpeak/tests/bed.config | 5 + .../nf-core/macs3/callpeak/tests/main.nf.test | 113 ++++++ .../macs3/callpeak/tests/main.nf.test.snap | 358 ++++++++++++++++++ 8 files changed, 638 insertions(+) create mode 100644 modules/nf-core/macs3/callpeak/environment.yml create mode 100644 modules/nf-core/macs3/callpeak/main.nf create mode 100644 modules/nf-core/macs3/callpeak/meta.yml create mode 100644 modules/nf-core/macs3/callpeak/tests/bam.config create mode 100644 modules/nf-core/macs3/callpeak/tests/bed.config create mode 100644 modules/nf-core/macs3/callpeak/tests/main.nf.test create mode 100644 modules/nf-core/macs3/callpeak/tests/main.nf.test.snap diff --git a/modules.json b/modules.json index f4d4950b..33567a0b 100644 --- a/modules.json +++ b/modules.json @@ -90,6 +90,11 @@ "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", "installed_by": ["modules"] }, + "macs3/callpeak": { + "branch": "master", + "git_sha": "6046db922ee6c425a4dff26eeda122dffc3df9c0", + "installed_by": ["modules"] + }, "multiqc": { "branch": "master", "git_sha": "b7ebe95761cd389603f9cc0e0dc384c0f663815a", diff --git a/modules/nf-core/macs3/callpeak/environment.yml b/modules/nf-core/macs3/callpeak/environment.yml new file mode 100644 index 00000000..d9caa561 --- /dev/null +++ b/modules/nf-core/macs3/callpeak/environment.yml @@ -0,0 +1,9 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json +name: "macs3_callpeak" +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - "bioconda::macs3=3.0.1" diff --git a/modules/nf-core/macs3/callpeak/main.nf b/modules/nf-core/macs3/callpeak/main.nf new file mode 100644 index 00000000..53a1a200 --- /dev/null +++ b/modules/nf-core/macs3/callpeak/main.nf @@ -0,0 +1,70 @@ + +process MACS3_CALLPEAK { + tag "$meta.id" + label 'process_medium' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/macs3:3.0.1--py311h0152c62_3': + 'biocontainers/macs3:3.0.1--py311h0152c62_3' }" + + input: + tuple val(meta), path(ipbam), path(controlbam) + val macs3_gsize + + output: + tuple val(meta), path("*.{narrowPeak,broadPeak}"), emit: peak + tuple val(meta), path("*.xls") , emit: xls + path "versions.yml" , emit: versions + + tuple val(meta), path("*.gappedPeak"), optional:true, emit: gapped + tuple val(meta), path("*.bed") , optional:true, emit: bed + tuple val(meta), path("*.bdg") , optional:true, emit: bdg + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def args_list = args.tokenize() + def format = meta.single_end ? 'BAM' : 'BAMPE' + def control = controlbam ? "--control $controlbam" : '' + if(args_list.contains('--format')){ + def id = args_list.findIndexOf{it=='--format'} + format = args_list[id+1] + args_list.remove(id+1) + args_list.remove(id) + } + """ + macs3 \\ + callpeak \\ + ${args_list.join(' ')} \\ + --gsize $macs3_gsize \\ + --format $format \\ + --name $prefix \\ + --treatment $ipbam \\ + $control + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + macs3: \$(macs3 --version | sed -e "s/macs3 //g") + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.gappedPeak + touch ${prefix}.bed + touch ${prefix}.bdg + touch ${prefix}.narrowPeak + touch ${prefix}.xls + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + macs3: \$(macs3 --version | sed -e "s/macs3 //g") + END_VERSIONS + """ +} diff --git a/modules/nf-core/macs3/callpeak/meta.yml b/modules/nf-core/macs3/callpeak/meta.yml new file mode 100644 index 00000000..b1c7cade --- /dev/null +++ b/modules/nf-core/macs3/callpeak/meta.yml @@ -0,0 +1,73 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json +name: "macs3_callpeak" +description: Peak calling of enriched genomic regions of ChIP-seq and ATAC-seq experiments +keywords: + - alignment + - atac-seq + - chip-seq + - peak-calling +tools: + - macs3: + description: "Model Based Analysis for ChIP-Seq data" + homepage: "https://macs3-project.github.io/MACS/" + documentation: "https://macs3-project.github.io/MACS/" + tool_dev_url: "https://github.com/macs3-project/MACS/" + doi: "10.1101/496521" + licence: ["BSD-3-clause"] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample_1', single_end:false ]` + - ipbam: + type: file + description: The ChIP-seq treatment file + - controlbam: + type: file + description: The control file + - macs2_gsize: + type: string + description: | + Effective genome size. It can be 1.0e+9 or 1000000000, + or shortcuts:'hs' for human (2,913,022,398), 'mm' for mouse + (2,652,783,500), 'ce' for C. elegans (100,286,401) + and 'dm' for fruitfly (142,573,017), Default:hs. + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1', single_end:false ]` + - versions: + type: file + description: File containing software version + pattern: "versions.yml" + - peak: + type: file + description: BED file containing annotated peaks + pattern: "*.gappedPeak,*.narrowPeak}" + - xls: + type: file + description: xls file containing annotated peaks + pattern: "*.xls" + - gapped: + type: file + description: Optional BED file containing gapped peak + pattern: "*.gappedPeak" + - bed: + type: file + description: Optional BED file containing peak summits locations for every peak + pattern: "*.bed" + - bdg: + type: file + description: Optional bedGraph files for input and treatment input samples + pattern: "*.bdg" + +authors: + - "@JoseEspinosa" +maintainers: + - "@JoseEspinosa" diff --git a/modules/nf-core/macs3/callpeak/tests/bam.config b/modules/nf-core/macs3/callpeak/tests/bam.config new file mode 100644 index 00000000..217e3107 --- /dev/null +++ b/modules/nf-core/macs3/callpeak/tests/bam.config @@ -0,0 +1,5 @@ +process { + withName: 'MACS3_CALLPEAK' { + ext.args = '--qval 0.1' + } +} \ No newline at end of file diff --git a/modules/nf-core/macs3/callpeak/tests/bed.config b/modules/nf-core/macs3/callpeak/tests/bed.config new file mode 100644 index 00000000..19444006 --- /dev/null +++ b/modules/nf-core/macs3/callpeak/tests/bed.config @@ -0,0 +1,5 @@ +process { + withName: 'MACS3_CALLPEAK' { + ext.args = '--format BED --qval 10 --nomodel --extsize 200' + } +} \ No newline at end of file diff --git a/modules/nf-core/macs3/callpeak/tests/main.nf.test b/modules/nf-core/macs3/callpeak/tests/main.nf.test new file mode 100644 index 00000000..4338c96b --- /dev/null +++ b/modules/nf-core/macs3/callpeak/tests/main.nf.test @@ -0,0 +1,113 @@ +nextflow_process { + + name "Test Process MACS3_CALLPEAK" + script "../main.nf" + process "MACS3_CALLPEAK" + + tag "modules" + tag "modules_nfcore" + tag "macs3" + tag "macs3/callpeak" + + test("homo_sapiens - callpeak - bed") { + + when { + config "./bed.config" + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/pacbio/bed/alz.ccs.fl.NEB_5p--NEB_Clontech_3p.flnc.clustered.singletons.merged.aligned_tc.bed', checkIfExists: true) ], + [] + ] + input[1] = 4000 + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("homo_sapiens - callpeak - bam") { + + when { + config "./bam.config" + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.paired_end.name.sorted.bam', checkIfExists: true) ], + [] + ] + input[1] = 40000 + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("homo_sapiens - callpeak - control - bam") { + + when { + config "./bam.config" + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.paired_end.name.sorted.bam', checkIfExists: true) ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test2.paired_end.name.sorted.bam', checkIfExists: true) ] + ] + input[1] = 40000 + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("sarscov2 - bam - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true) ], + [] + ] + input[1] = 40000 + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + +} diff --git a/modules/nf-core/macs3/callpeak/tests/main.nf.test.snap b/modules/nf-core/macs3/callpeak/tests/main.nf.test.snap new file mode 100644 index 00000000..d6d98292 --- /dev/null +++ b/modules/nf-core/macs3/callpeak/tests/main.nf.test.snap @@ -0,0 +1,358 @@ +{ + "homo_sapiens - callpeak - bam": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test_peaks.narrowPeak:md5,2e4da1c1704595e12aaf99cc715ad70c" + ] + ], + "1": [ + [ + { + "id": "test", + "single_end": false + }, + "test_peaks.xls:md5,221852e4639574d2f53cf1917efa4922" + ] + ], + "2": [ + "versions.yml:md5,cb33970f9aaa0730733abe2fd9cb2b74" + ], + "3": [ + + ], + "4": [ + [ + { + "id": "test", + "single_end": false + }, + "test_summits.bed:md5,26f0f97b6c14dbca129e947a58067c82" + ] + ], + "5": [ + + ], + "bdg": [ + + ], + "bed": [ + [ + { + "id": "test", + "single_end": false + }, + "test_summits.bed:md5,26f0f97b6c14dbca129e947a58067c82" + ] + ], + "gapped": [ + + ], + "peak": [ + [ + { + "id": "test", + "single_end": false + }, + "test_peaks.narrowPeak:md5,2e4da1c1704595e12aaf99cc715ad70c" + ] + ], + "versions": [ + "versions.yml:md5,cb33970f9aaa0730733abe2fd9cb2b74" + ], + "xls": [ + [ + { + "id": "test", + "single_end": false + }, + "test_peaks.xls:md5,221852e4639574d2f53cf1917efa4922" + ] + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-07-22T17:04:31.629715" + }, + "sarscov2 - bam - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.narrowPeak:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "test", + "single_end": false + }, + "test.xls:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + "versions.yml:md5,cb33970f9aaa0730733abe2fd9cb2b74" + ], + "3": [ + [ + { + "id": "test", + "single_end": false + }, + "test.gappedPeak:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "4": [ + [ + { + "id": "test", + "single_end": false + }, + "test.bed:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "5": [ + [ + { + "id": "test", + "single_end": false + }, + "test.bdg:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bdg": [ + [ + { + "id": "test", + "single_end": false + }, + "test.bdg:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bed": [ + [ + { + "id": "test", + "single_end": false + }, + "test.bed:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "gapped": [ + [ + { + "id": "test", + "single_end": false + }, + "test.gappedPeak:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "peak": [ + [ + { + "id": "test", + "single_end": false + }, + "test.narrowPeak:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,cb33970f9aaa0730733abe2fd9cb2b74" + ], + "xls": [ + [ + { + "id": "test", + "single_end": false + }, + "test.xls:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-07-22T17:04:58.589844" + }, + "homo_sapiens - callpeak - control - bam": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test_peaks.narrowPeak:md5,653e1108cc57ca07d0f60fc0f4fb8ba3" + ] + ], + "1": [ + [ + { + "id": "test", + "single_end": false + }, + "test_peaks.xls:md5,9fce04613bdc9c8372a9f884aa0d5aa6" + ] + ], + "2": [ + "versions.yml:md5,cb33970f9aaa0730733abe2fd9cb2b74" + ], + "3": [ + + ], + "4": [ + [ + { + "id": "test", + "single_end": false + }, + "test_summits.bed:md5,4f3c7c53a1d730d90d1b3dd9d3197af4" + ] + ], + "5": [ + + ], + "bdg": [ + + ], + "bed": [ + [ + { + "id": "test", + "single_end": false + }, + "test_summits.bed:md5,4f3c7c53a1d730d90d1b3dd9d3197af4" + ] + ], + "gapped": [ + + ], + "peak": [ + [ + { + "id": "test", + "single_end": false + }, + "test_peaks.narrowPeak:md5,653e1108cc57ca07d0f60fc0f4fb8ba3" + ] + ], + "versions": [ + "versions.yml:md5,cb33970f9aaa0730733abe2fd9cb2b74" + ], + "xls": [ + [ + { + "id": "test", + "single_end": false + }, + "test_peaks.xls:md5,9fce04613bdc9c8372a9f884aa0d5aa6" + ] + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-07-22T17:04:44.063426" + }, + "homo_sapiens - callpeak - bed": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test_peaks.narrowPeak:md5,10e7d4747f8a2513e5ebb04856a51673" + ] + ], + "1": [ + [ + { + "id": "test", + "single_end": false + }, + "test_peaks.xls:md5,14efbf7137623df5aaf282b506ac9601" + ] + ], + "2": [ + "versions.yml:md5,cb33970f9aaa0730733abe2fd9cb2b74" + ], + "3": [ + + ], + "4": [ + [ + { + "id": "test", + "single_end": false + }, + "test_summits.bed:md5,28833eeb7816688f0d698f51670be946" + ] + ], + "5": [ + + ], + "bdg": [ + + ], + "bed": [ + [ + { + "id": "test", + "single_end": false + }, + "test_summits.bed:md5,28833eeb7816688f0d698f51670be946" + ] + ], + "gapped": [ + + ], + "peak": [ + [ + { + "id": "test", + "single_end": false + }, + "test_peaks.narrowPeak:md5,10e7d4747f8a2513e5ebb04856a51673" + ] + ], + "versions": [ + "versions.yml:md5,cb33970f9aaa0730733abe2fd9cb2b74" + ], + "xls": [ + [ + { + "id": "test", + "single_end": false + }, + "test_peaks.xls:md5,14efbf7137623df5aaf282b506ac9601" + ] + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-07-22T17:04:16.697163" + } +} \ No newline at end of file From dabbe8cf77c6a0a06358f14c23d53f40481cffe5 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Mon, 22 Jul 2024 22:31:48 +0200 Subject: [PATCH 180/201] Remove macs2/callpeak module --- modules.json | 198 ++++++++++++++++++------ modules/nf-core/macs2/callpeak/main.nf | 53 ------- modules/nf-core/macs2/callpeak/meta.yml | 63 -------- 3 files changed, 148 insertions(+), 166 deletions(-) delete mode 100644 modules/nf-core/macs2/callpeak/main.nf delete mode 100644 modules/nf-core/macs2/callpeak/meta.yml diff --git a/modules.json b/modules.json index 33567a0b..a1bfa4c7 100644 --- a/modules.json +++ b/modules.json @@ -8,177 +8,252 @@ "bowtie2/align": { "branch": "master", "git_sha": "3c77ca9aac783e76c3614a06db3bfe4fef619bde", - "installed_by": ["fastq_align_bowtie2", "modules"] + "installed_by": [ + "fastq_align_bowtie2", + "modules" + ] }, "bowtie2/build": { "branch": "master", "git_sha": "6a24fbe314bb2e6fe6306c29a63076ea87e8eb3c", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "bwa/index": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "bwa/mem": { "branch": "master", "git_sha": "a64788f5ad388f1d2ac5bd5f1f3f8fc81476148c", - "installed_by": ["fastq_align_bwa", "modules"] + "installed_by": [ + "fastq_align_bwa", + "modules" + ] }, "chromap/chromap": { "branch": "master", "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5", - "installed_by": ["fastq_align_chromap", "modules"] + "installed_by": [ + "fastq_align_chromap", + "modules" + ] }, "chromap/index": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "custom/getchromsizes": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "deeptools/computematrix": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "deeptools/plotfingerprint": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "deeptools/plotheatmap": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "deeptools/plotprofile": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "fastqc": { "branch": "master", "git_sha": "285a50500f9e02578d90b3ce6382ea3c30216acd", - "installed_by": ["fastq_fastqc_umitools_trimgalore", "modules"] + "installed_by": [ + "fastq_fastqc_umitools_trimgalore", + "modules" + ] }, "gffread": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "gunzip": { "branch": "master", "git_sha": "5c460c5a4736974abde2843294f35307ee2b0e5e", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "homer/annotatepeaks": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "khmer/uniquekmers": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] - }, - "macs2/callpeak": { - "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "macs3/callpeak": { "branch": "master", "git_sha": "6046db922ee6c425a4dff26eeda122dffc3df9c0", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "multiqc": { "branch": "master", "git_sha": "b7ebe95761cd389603f9cc0e0dc384c0f663815a", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "phantompeakqualtools": { "branch": "master", "git_sha": "2dfe9afa90fefc70e320140e5f41287f01f324b0", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "picard/collectmultiplemetrics": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "picard/markduplicates": { "branch": "master", "git_sha": "ec833ac4c29db6005d18baccf3306f557c46b006", - "installed_by": ["bam_markduplicates_picard", "modules"] + "installed_by": [ + "bam_markduplicates_picard", + "modules" + ] }, "picard/mergesamfiles": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "preseq/lcextrap": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "samtools/flagstat": { "branch": "master", "git_sha": "ce0b1aed7d504883061e748f492a31bf44c5777c", - "installed_by": ["bam_stats_samtools", "modules"] + "installed_by": [ + "bam_stats_samtools", + "modules" + ] }, "samtools/idxstats": { "branch": "master", "git_sha": "ce0b1aed7d504883061e748f492a31bf44c5777c", - "installed_by": ["bam_stats_samtools", "modules"] + "installed_by": [ + "bam_stats_samtools", + "modules" + ] }, "samtools/index": { "branch": "master", "git_sha": "ce0b1aed7d504883061e748f492a31bf44c5777c", - "installed_by": ["bam_markduplicates_picard", "bam_sort_stats_samtools", "modules"] + "installed_by": [ + "bam_markduplicates_picard", + "bam_sort_stats_samtools", + "modules" + ] }, "samtools/sort": { "branch": "master", "git_sha": "ce0b1aed7d504883061e748f492a31bf44c5777c", - "installed_by": ["bam_sort_stats_samtools", "modules"] + "installed_by": [ + "bam_sort_stats_samtools", + "modules" + ] }, "samtools/stats": { "branch": "master", "git_sha": "ec833ac4c29db6005d18baccf3306f557c46b006", - "installed_by": ["bam_stats_samtools", "modules"] + "installed_by": [ + "bam_stats_samtools", + "modules" + ] }, "subread/featurecounts": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "trimgalore": { "branch": "master", "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5", - "installed_by": ["fastq_fastqc_umitools_trimgalore", "modules"] + "installed_by": [ + "fastq_fastqc_umitools_trimgalore", + "modules" + ] }, "ucsc/bedgraphtobigwig": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "umitools/extract": { "branch": "master", "git_sha": "65ad3e0b9a4099592e1102e92e10455dc661cf53", - "installed_by": ["fastq_fastqc_umitools_trimgalore"] + "installed_by": [ + "fastq_fastqc_umitools_trimgalore" + ] }, "untar": { "branch": "master", "git_sha": "5c460c5a4736974abde2843294f35307ee2b0e5e", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "untarfiles": { "branch": "master", "git_sha": "5c460c5a4736974abde2843294f35307ee2b0e5e", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] } } }, @@ -187,55 +262,78 @@ "bam_markduplicates_picard": { "branch": "master", "git_sha": "0c38be7e652a0b2f3a37681ee4c0dbdf85677647", - "installed_by": ["subworkflows"] + "installed_by": [ + "subworkflows" + ] }, "bam_sort_stats_samtools": { "branch": "master", "git_sha": "0c38be7e652a0b2f3a37681ee4c0dbdf85677647", - "installed_by": ["fastq_align_bowtie2", "fastq_align_bwa", "fastq_align_chromap"] + "installed_by": [ + "fastq_align_bowtie2", + "fastq_align_bwa", + "fastq_align_chromap" + ] }, "bam_stats_samtools": { "branch": "master", "git_sha": "0c38be7e652a0b2f3a37681ee4c0dbdf85677647", - "installed_by": ["bam_markduplicates_picard", "bam_sort_stats_samtools"] + "installed_by": [ + "bam_markduplicates_picard", + "bam_sort_stats_samtools" + ] }, "fastq_align_bowtie2": { "branch": "master", "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", - "installed_by": ["subworkflows"] + "installed_by": [ + "subworkflows" + ] }, "fastq_align_bwa": { "branch": "master", "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", - "installed_by": ["subworkflows"] + "installed_by": [ + "subworkflows" + ] }, "fastq_align_chromap": { "branch": "master", "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", - "installed_by": ["subworkflows"] + "installed_by": [ + "subworkflows" + ] }, "fastq_fastqc_umitools_trimgalore": { "branch": "master", "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", - "installed_by": ["subworkflows"] + "installed_by": [ + "subworkflows" + ] }, "utils_nextflow_pipeline": { "branch": "master", "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", - "installed_by": ["subworkflows"] + "installed_by": [ + "subworkflows" + ] }, "utils_nfcore_pipeline": { "branch": "master", "git_sha": "92de218a329bfc9a9033116eb5f65fd270e72ba3", - "installed_by": ["subworkflows"] + "installed_by": [ + "subworkflows" + ] }, "utils_nfvalidation_plugin": { "branch": "master", "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", - "installed_by": ["subworkflows"] + "installed_by": [ + "subworkflows" + ] } } } } } -} +} \ No newline at end of file diff --git a/modules/nf-core/macs2/callpeak/main.nf b/modules/nf-core/macs2/callpeak/main.nf deleted file mode 100644 index cbef7838..00000000 --- a/modules/nf-core/macs2/callpeak/main.nf +++ /dev/null @@ -1,53 +0,0 @@ -process MACS2_CALLPEAK { - tag "$meta.id" - label 'process_medium' - - conda "bioconda::macs2=2.2.7.1" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/macs2:2.2.7.1--py38h4a8c8d9_3' : - 'biocontainers/macs2:2.2.7.1--py38h4a8c8d9_3' }" - - input: - tuple val(meta), path(ipbam), path(controlbam) - val macs2_gsize - - output: - tuple val(meta), path("*.{narrowPeak,broadPeak}"), emit: peak - tuple val(meta), path("*.xls") , emit: xls - path "versions.yml" , emit: versions - - tuple val(meta), path("*.gappedPeak"), optional:true, emit: gapped - tuple val(meta), path("*.bed") , optional:true, emit: bed - tuple val(meta), path("*.bdg") , optional:true, emit: bdg - - when: - task.ext.when == null || task.ext.when - - script: - def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "${meta.id}" - def args_list = args.tokenize() - def format = meta.single_end ? 'BAM' : 'BAMPE' - def control = controlbam ? "--control $controlbam" : '' - if(args_list.contains('--format')){ - def id = args_list.findIndexOf{it=='--format'} - format = args_list[id+1] - args_list.remove(id+1) - args_list.remove(id) - } - """ - macs2 \\ - callpeak \\ - ${args_list.join(' ')} \\ - --gsize $macs2_gsize \\ - --format $format \\ - --name $prefix \\ - --treatment $ipbam \\ - $control - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - macs2: \$(macs2 --version | sed -e "s/macs2 //g") - END_VERSIONS - """ -} diff --git a/modules/nf-core/macs2/callpeak/meta.yml b/modules/nf-core/macs2/callpeak/meta.yml deleted file mode 100644 index 6e2bc1db..00000000 --- a/modules/nf-core/macs2/callpeak/meta.yml +++ /dev/null @@ -1,63 +0,0 @@ -name: macs2_callpeak -description: Peak calling of enriched genomic regions of ChIP-seq and ATAC-seq experiments -keywords: - - alignment - - atac-seq - - chip-seq - - peak-calling -tools: - - macs2: - description: Model Based Analysis for ChIP-Seq data - - documentation: https://docs.csc.fi/apps/macs2/ - tool_dev_url: https://github.com/macs3-project/MACS - doi: "10.1101/496521" - licence: ["BSD"] - -input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - ipbam: - type: file - description: The ChIP-seq treatment file - - controlbam: - type: file - description: The control file - - macs2_gsize: - type: string - description: Effective genome size. It can be 1.0e+9 or 1000000000, or shortcuts:'hs' for human (2.7e9), - 'mm' for mouse (1.87e9), 'ce' for C. elegans (9e7) and 'dm' for fruitfly (1.2e8) - -output: - - versions: - type: file - description: File containing software version - pattern: "versions.yml" - - peak: - type: file - description: BED file containing annotated peaks - pattern: "*.gappedPeak,*.narrowPeak}" - - xls: - type: file - description: xls file containing annotated peaks - pattern: "*.xls" - - gapped: - type: file - description: Optional BED file containing gapped peak - pattern: "*.gappedPeak" - - bed: - type: file - description: Optional BED file containing peak summits locations for every peak - pattern: "*.bed" - - bdg: - type: file - description: Optional bedGraph files for input and treatment input samples - pattern: "*.bdg" - -authors: - - "@ntoda03" - - "@JoseEspinosa" - - "@jianhong" From 01623d6f403ee03d188dd79bddd04f217b1215a8 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 23 Jul 2024 11:13:34 +0200 Subject: [PATCH 181/201] Update all code using macs2 to use macs3, also docs --- CITATIONS.md | 2 +- README.md | 2 +- assets/multiqc/frip_score_header.txt | 4 +- assets/multiqc/peak_count_header.txt | 4 +- assets/multiqc_config.yml | 2 +- assets/schema_input.json | 19 +++++- ...erged_expand.py => macs3_merged_expand.py} | 10 +-- bin/{plot_macs2_qc.r => plot_macs3_qc.r} | 2 +- conf/modules.config | 34 +++++----- docs/output.md | 24 +++---- modules/local/igv.nf | 6 +- ...{macs2_consensus.nf => macs3_consensus.nf} | 4 +- modules/local/multiqc.nf | 8 +-- .../{plot_macs2_qc.nf => plot_macs3_qc.nf} | 4 +- nextflow_schema.json | 20 +++--- .../utils_nfcore_chipseq_pipeline/main.nf | 4 +- test.csv | 7 ++ tower.yml | 10 +-- workflows/chipseq.nf | 66 +++++++++---------- 19 files changed, 127 insertions(+), 105 deletions(-) rename bin/{macs2_merged_expand.py => macs3_merged_expand.py} (96%) rename bin/{plot_macs2_qc.r => plot_macs3_qc.r} (99%) rename modules/local/{macs2_consensus.nf => macs3_consensus.nf} (98%) rename modules/local/{plot_macs2_qc.nf => plot_macs3_qc.nf} (96%) create mode 100644 test.csv diff --git a/CITATIONS.md b/CITATIONS.md index f8160c8f..d75a5154 100644 --- a/CITATIONS.md +++ b/CITATIONS.md @@ -46,7 +46,7 @@ > Heinz S, Benner C, Spann N, Bertolino E, Lin YC, Laslo P, Cheng JX, Murre C, Singh H, Glass CK. Simple combinations of lineage-determining transcription factors prime cis-regulatory elements required for macrophage and B cell identities. Mol Cell. 2010 May 28;38(4):576-89. doi: 10.1016/j.molcel.2010.05.004. PubMed PMID: 20513432; PubMed Central PMCID: PMC2898526. -- [MACS2](https://www.ncbi.nlm.nih.gov/pubmed/18798982/) +- [MACS3](https://www.ncbi.nlm.nih.gov/pubmed/18798982/) > Zhang Y, Liu T, Meyer CA, Eeckhoute J, Johnson DS, Bernstein BE, Nusbaum C, Myers RM, Brown M, Li W, Liu XS. Model-based analysis of ChIP-Seq (MACS). Genome Biol. 2008;9(9):R137. doi: 10.1186/gb-2008-9-9-r137. Epub 2008 Sep 17. PubMed PMID: 18798982; PubMed Central PMCID: PMC2592715. diff --git a/README.md b/README.md index 2dcb70e1..01a8a10c 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ You can find numerous talks on the [nf-core events page](https://nf-co.re/events 5. Generate gene-body meta-profile from bigWig files ([`deepTools`](https://deeptools.readthedocs.io/en/develop/content/tools/plotProfile.html)) 6. Calculate genome-wide IP enrichment relative to control ([`deepTools`](https://deeptools.readthedocs.io/en/develop/content/tools/plotFingerprint.html)) 7. Calculate strand cross-correlation peak and ChIP-seq quality measures including NSC and RSC ([`phantompeakqualtools`](https://github.com/kundajelab/phantompeakqualtools)) - 8. Call broad/narrow peaks ([`MACS2`](https://github.com/macs3-project/MACS)) + 8. Call broad/narrow peaks ([`MACS3`](https://github.com/macs3-project/MACS)) 9. Annotate peaks relative to gene features ([`HOMER`](http://homer.ucsd.edu/homer/download.html)) 10. Create consensus peakset across all samples and create tabular file to aid in the filtering of the data ([`BEDTools`](https://github.com/arq5x/bedtools2/)) 11. Count reads in consensus peaks ([`featureCounts`](http://bioinf.wehi.edu.au/featureCounts/)) diff --git a/assets/multiqc/frip_score_header.txt b/assets/multiqc/frip_score_header.txt index 82902115..b8c35cd7 100644 --- a/assets/multiqc/frip_score_header.txt +++ b/assets/multiqc/frip_score_header.txt @@ -1,7 +1,7 @@ #id: 'frip_score' -#section_name: 'MERGED LIB: MACS2 FRiP score' +#section_name: 'MERGED LIB: MACS3 FRiP score' #description: "is generated by calculating the fraction of all mapped reads that fall -# into the MACS2 called peak regions. A read must overlap a peak by at least 20% to be counted. +# into the MACS3 called peak regions. A read must overlap a peak by at least 20% to be counted. # See FRiP score." #plot_type: 'bargraph' #anchor: 'frip_score' diff --git a/assets/multiqc/peak_count_header.txt b/assets/multiqc/peak_count_header.txt index aa4dd346..66f6d2d9 100644 --- a/assets/multiqc/peak_count_header.txt +++ b/assets/multiqc/peak_count_header.txt @@ -1,7 +1,7 @@ #id: 'peak_count' -#section_name: 'MERGED LIB: MACS2 peak count' +#section_name: 'MERGED LIB: MACS3 peak count' #description: "is calculated from total number of peaks called by -# MACS2" +# MACS3" #plot_type: 'bargraph' #anchor: 'peak_count' #pconfig: diff --git a/assets/multiqc_config.yml b/assets/multiqc_config.yml index 14a9f451..4f32837d 100644 --- a/assets/multiqc_config.yml +++ b/assets/multiqc_config.yml @@ -72,7 +72,7 @@ module_order: anchor: "mlib_featurecounts" info: "This section of the report shows featureCounts results for the number of reads assigned to merged library consensus peaks." path_filters: - - "./macs2/featurecounts/*.summary" + - "./macs3/featurecounts/*.summary" report_section_order: peak_count: diff --git a/assets/schema_input.json b/assets/schema_input.json index bc2fa467..fb41210f 100644 --- a/assets/schema_input.json +++ b/assets/schema_input.json @@ -33,15 +33,30 @@ } ] }, + "replicate": { + "type": "integer", + "errorMessage": "Replicate id not an integer!", + "meta": ["replicate"] + }, "antibody": { "type": "string", "pattern": "^\\S+$", - "errorMessage": "Antibody entry cannot contain spaces" + "errorMessage": "Antibody entry cannot contain spaces", + "dependentRequired": ["control"], + "meta": ["antibody"] }, "control": { "type": "string", "pattern": "^\\S+$", - "errorMessage": "Control entry cannot contain spaces" + "errorMessage": "Control entry cannot contain spaces", + "dependentRequired": ["antibody", "control_replicate"], + "meta": ["control"] + }, + "control_replicate": { + "type": "string", + "pattern": "^\\S+$", + "errorMessage": "Control entry cannot contain spaces", + "meta": ["control_replicate"] } }, "required": ["sample", "fastq_1"] diff --git a/bin/macs2_merged_expand.py b/bin/macs3_merged_expand.py similarity index 96% rename from bin/macs2_merged_expand.py rename to bin/macs3_merged_expand.py index 28ffb087..64dc7770 100755 --- a/bin/macs2_merged_expand.py +++ b/bin/macs3_merged_expand.py @@ -17,15 +17,15 @@ ############################################ Description = "Add sample boolean files and aggregate columns from merged MACS narrow or broad peak file." -Epilog = """Example usage: python macs2_merged_expand.py --is_narrow_peak --min_replicates 1""" +Epilog = """Example usage: python macs3_merged_expand.py --is_narrow_peak --min_replicates 1""" argParser = argparse.ArgumentParser(description=Description, epilog=Epilog) ## REQUIRED PARAMETERS -argParser.add_argument("MERGED_INTERVAL_FILE", help="Merged MACS2 interval file created using linux sort and mergeBed.") +argParser.add_argument("MERGED_INTERVAL_FILE", help="Merged MACS3 interval file created using linux sort and mergeBed.") argParser.add_argument( "SAMPLE_NAME_LIST", - help="Comma-separated list of sample names as named in individual MACS2 broadPeak/narrowPeak output file e.g. SAMPLE_R1 for SAMPLE_R1_peak_1.", + help="Comma-separated list of sample names as named in individual MACS3 broadPeak/narrowPeak output file e.g. SAMPLE_R1 for SAMPLE_R1_peak_1.", ) argParser.add_argument("OUTFILE", help="Full path to output directory.") @@ -76,7 +76,7 @@ def makedir(path): ## sort -k1,1 -k2,2n | mergeBed -c 2,3,4,5,6,7,8,9,10 -o collapse,collapse,collapse,collapse,collapse,collapse,collapse,collapse,collapse > merged_peaks.txt -def macs2_merged_expand(MergedIntervalTxtFile, SampleNameList, OutFile, isNarrow=False, minReplicates=1): +def macs3_merged_expand(MergedIntervalTxtFile, SampleNameList, OutFile, isNarrow=False, minReplicates=1): makedir(os.path.dirname(OutFile)) combFreqDict = {} @@ -208,7 +208,7 @@ def macs2_merged_expand(MergedIntervalTxtFile, SampleNameList, OutFile, isNarrow ############################################ ############################################ -macs2_merged_expand( +macs3_merged_expand( MergedIntervalTxtFile=args.MERGED_INTERVAL_FILE, SampleNameList=args.SAMPLE_NAME_LIST.split(","), OutFile=args.OUTFILE, diff --git a/bin/plot_macs2_qc.r b/bin/plot_macs3_qc.r similarity index 99% rename from bin/plot_macs2_qc.r rename to bin/plot_macs3_qc.r index 5cf074de..e40a6837 100755 --- a/bin/plot_macs2_qc.r +++ b/bin/plot_macs3_qc.r @@ -20,7 +20,7 @@ library(scales) option_list <- list(make_option(c("-i", "--peak_files"), type="character", default=NULL, help="Comma-separated list of peak files.", metavar="path"), make_option(c("-s", "--sample_ids"), type="character", default=NULL, help="Comma-separated list of sample ids associated with peak files. Must be unique and in same order as peaks files input.", metavar="string"), make_option(c("-o", "--outdir"), type="character", default='./', help="Output directory", metavar="path"), - make_option(c("-p", "--outprefix"), type="character", default='macs2_peakqc', help="Output prefix", metavar="string")) + make_option(c("-p", "--outprefix"), type="character", default='macs3_peakqc', help="Output prefix", metavar="string")) opt_parser <- OptionParser(option_list=option_list) opt <- parse_args(opt_parser) diff --git a/conf/modules.config b/conf/modules.config index 59af9e66..8828f48f 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -540,7 +540,7 @@ if (!params.skip_plot_fingerprint) { } process { - withName: 'MACS2_CALLPEAK' { + withName: 'MACS3_CALLPEAK' { ext.args = [ '--keep-dup all', params.narrow_peak ? '' : "--broad --broad-cutoff ${params.broad_cutoff}", @@ -551,7 +551,7 @@ process { ].join(' ').trim() publishDir = [ path: { [ - "${params.outdir}/${params.aligner}/merged_library/macs2", + "${params.outdir}/${params.aligner}/merged_library/macs3", params.narrow_peak? '/narrow_peak' : '/broad_peak' ].join('') }, mode: params.publish_dir_mode, @@ -562,14 +562,14 @@ process { withName: 'FRIP_SCORE' { ext.args = '-bed -c -f 0.20' publishDir = [ - path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/qc" }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs3/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/qc" }, enabled: false ] } withName: 'MULTIQC_CUSTOM_PEAKS' { publishDir = [ - path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/qc" }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs3/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/qc" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -578,11 +578,11 @@ process { if (!params.skip_peak_annotation) { process { - withName: 'HOMER_ANNOTATEPEAKS_MACS2' { + withName: 'HOMER_ANNOTATEPEAKS_MACS3' { ext.args = '-gid' ext.prefix = { "${meta.id}_peaks" } publishDir = [ - path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}" }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs3/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -591,10 +591,10 @@ if (!params.skip_peak_annotation) { if (!params.skip_peak_qc) { process { - withName: 'PLOT_MACS2_QC' { - ext.args = '-o ./ -p macs2_peak' + withName: 'PLOT_MACS3_QC' { + ext.args = '-o ./ -p macs3_peak' publishDir = [ - path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/qc" }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs3/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/qc" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -602,9 +602,9 @@ if (!params.skip_peak_annotation) { withName: 'PLOT_HOMER_ANNOTATEPEAKS' { ext.args = '-o ./' - ext.prefix = 'macs2_annotatePeaks' + ext.prefix = 'macs3_annotatePeaks' publishDir = [ - path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/qc" }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs3/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/qc" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -615,11 +615,11 @@ if (!params.skip_peak_annotation) { if (!params.skip_consensus_peaks) { process { - withName: 'MACS2_CONSENSUS' { + withName: 'MACS3_CONSENSUS' { ext.when = { meta.multiple_groups || meta.replicates_exist } ext.prefix = { "${meta.id}.consensus_peaks" } publishDir = [ - path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/consensus/${meta.id}" }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs3/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/consensus/${meta.id}" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -629,7 +629,7 @@ if (!params.skip_consensus_peaks) { ext.args = '-F SAF -O --fracOverlap 0.2' ext.prefix = { "${meta.id}.consensus_peaks" } publishDir = [ - path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/consensus/${meta.id}" }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs3/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/consensus/${meta.id}" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -642,7 +642,7 @@ if (!params.skip_consensus_peaks) { ext.args = '-gid' ext.prefix = { "${meta.id}.consensus_peaks" } publishDir = [ - path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/consensus/${meta.id}" }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs3/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/consensus/${meta.id}" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -651,7 +651,7 @@ if (!params.skip_consensus_peaks) { withName: 'ANNOTATE_BOOLEAN_PEAKS' { ext.prefix = { "${meta.id}.consensus_peaks" } publishDir = [ - path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/consensus/${meta.id}" }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs3/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/consensus/${meta.id}" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] @@ -671,7 +671,7 @@ if (!params.skip_consensus_peaks) { ].join(' ').trim() ext.prefix = { "${meta.id}.consensus_peaks" } publishDir = [ - path: { "${params.outdir}/${params.aligner}/merged_library/macs2/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/consensus/${meta.id}/deseq2" }, + path: { "${params.outdir}/${params.aligner}/merged_library/macs3/${params.narrow_peak ? '/narrow_peak' : '/broad_peak'}/consensus/${meta.id}/deseq2" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] diff --git a/docs/output.md b/docs/output.md index d8131c61..2f0ee320 100644 --- a/docs/output.md +++ b/docs/output.md @@ -188,21 +188,21 @@ The results from deepTools plotProfile gives you a quick visualisation for the g
    Output files -- `/merged_library/macs2//` - - `*.xls`, `*.broadPeak` or `*.narrowPeak`, `*.gappedPeak`, `*summits.bed`: MACS2 output files - the files generated will depend on whether MACS2 has been run in _narrowPeak_ or _broadPeak_ mode. +- `/merged_library/macs3//` + - `*.xls`, `*.broadPeak` or `*.narrowPeak`, `*.gappedPeak`, `*summits.bed`: MACS3 output files - the files generated will depend on whether MACS3 has been run in _narrowPeak_ or _broadPeak_ mode. - `*.annotatePeaks.txt`: HOMER peak-to-gene annotation file. -- `/merged_library/macs2//qc/` - - `macs2_peak.plots.pdf`: QC plots for MACS2 peaks. - - `macs2_annotatePeaks.plots.pdf`: QC plots for peak-to-gene feature annotation. +- `/merged_library/macs3//qc/` + - `macs3_peak.plots.pdf`: QC plots for MACS3 peaks. + - `macs3_annotatePeaks.plots.pdf`: QC plots for peak-to-gene feature annotation. - `*.FRiP_mqc.tsv`, `*.peak_count_mqc.tsv`, `annotatepeaks.summary_mqc.tsv`: MultiQC custom-content files for FRiP score, peak count and peak-to-gene ratios. -> **NB:** `` in the directory structure above corresponds to the type of peak that you have specified to call with MACS2 i.e. `broadPeak` or `narrowPeak`. If you so wish, you can call both narrow and broad peaks without redoing the preceding steps in the pipeline such as the alignment and filtering. For example, if you already have broad peaks then just add `--narrow_peak -resume` to the command you used to run the pipeline, and these will be called too! However, resuming the pipeline will only be possible if you have not deleted the `work/` directory generated by the pipeline. +> **NB:** `` in the directory structure above corresponds to the type of peak that you have specified to call with MACS3 i.e. `broadPeak` or `narrowPeak`. If you so wish, you can call both narrow and broad peaks without redoing the preceding steps in the pipeline such as the alignment and filtering. For example, if you already have broad peaks then just add `--narrow_peak -resume` to the command you used to run the pipeline, and these will be called too! However, resuming the pipeline will only be possible if you have not deleted the `work/` directory generated by the pipeline.
    -[MACS2](https://github.com/macs3-project/MACS) is one of the most popular peak-calling algorithms for ChIP-seq data. By default, the peaks are called with the MACS2 `--broad` parameter. If, however, you would like to call narrow peaks then please provide the `--narrow_peak` parameter when running the pipeline. See [MACS2 outputs](https://github.com/macs3-project/MACS/blob/master/docs/callpeak.md#output-files) for a description of the output files generated by MACS2. +[MACS3](https://github.com/macs3-project/MACS) is one of the most popular peak-calling algorithms for ChIP-seq data. By default, the peaks are called with the MACS3 `--broad` parameter. If, however, you would like to call narrow peaks then please provide the `--narrow_peak` parameter when running the pipeline. See [MACS3 outputs](https://github.com/macs3-project/MACS/blob/master/docs/callpeak.md#output-files) for a description of the output files generated by MACS3. -![MultiQC - MACS2 total peak count plot](images/mqc_macs2_peak_count_plot.png) +![MultiQC - MACS3 total peak count plot](images/mqc_macs2_peak_count_plot.png) [HOMER annotatePeaks.pl](http://homer.ucsd.edu/homer/ngs/annotation.html) is used to annotate the peaks relative to known genomic features. HOMER is able to use the `--gtf` annotation file which is provided to the pipeline. Please note that some of the output columns will be blank because the annotation is not provided using HOMER's in-built database format. However, the more important fields required for downstream analysis will be populated i.e. _Annotation_, _Distance to TSS_ and _Nearest Promoter ID_. @@ -210,14 +210,14 @@ The results from deepTools plotProfile gives you a quick visualisation for the g Various QC plots per sample including number of peaks, fold-change distribution, [FRiP score](https://genome.cshlp.org/content/22/9/1813.full.pdf+html) and peak-to-gene feature annotation are also generated by the pipeline. Where possible these have been integrated into the MultiQC report. -![MultiQC - MACS2 peaks FRiP score plot](images/mqc_frip_score_plot.png) +![MultiQC - MACS3 peaks FRiP score plot](images/mqc_frip_score_plot.png) ### Create and quantify consensus set of peaks
    Output files -- `/merged_library/macs2//consensus//` +- `/merged_library/macs3//consensus//` - `*.bed`: Consensus peak-set across all samples in BED format. - `*.saf`: Consensus peak-set across all samples in SAF format. Required by featureCounts for read quantification. - `*.featureCounts.txt`: Read counts across all samples relative to consensus peak-set. @@ -245,7 +245,7 @@ The [featureCounts](http://bioinf.wehi.edu.au/featureCounts/) tool is used to co
    Output files -- `/merged_library/macs2//consensus//deseq2/` +- `/merged_library/macs3//consensus//deseq2/` - `*.sample.dists.txt`: Spreadsheet containing sample-to-sample distance across each consensus peak. - `*.plots.pdf`: File containing PCA and hierarchical clustering plots. - `*.dds.RData`: File containing R `DESeqDataSet` object generated by DESeq2, with either @@ -254,7 +254,7 @@ The [featureCounts](http://bioinf.wehi.edu.au/featureCounts/) tool is used to co `readRDS` to give user control of the eventual object name. - `*pca.vals.txt`: Matrix of values for the first 2 principal components. - `R_sessionInfo.log`: File containing information about R, the OS and attached or loaded packages. - - `/merged_library/macs2//consensus//sizeFactors/` + - `/merged_library/macs3//consensus//sizeFactors/` - `*.txt`, `*.RData`: Files containing DESeq2 sizeFactors per sample.
    diff --git a/modules/local/igv.nf b/modules/local/igv.nf index 4352edae..182a339e 100644 --- a/modules/local/igv.nf +++ b/modules/local/igv.nf @@ -13,8 +13,8 @@ process IGV { val peak_dir path fasta path ("${aligner_dir}/merged_library/bigwig/*") - path ("${aligner_dir}/merged_library/macs2/${peak_dir}/*") - path ("${aligner_dir}/merged_library/macs2/${peak_dir}/consensus/*") + path ("${aligner_dir}/merged_library/macs3/${peak_dir}/*") + path ("${aligner_dir}/merged_library/macs3/${peak_dir}/consensus/*") path ("mappings/*") output: @@ -27,7 +27,7 @@ process IGV { task.ext.when == null || task.ext.when script: // scripts are bundled with the pipeline in nf-core/chipseq/bin/ - def consensus_dir = "${aligner_dir}/merged_library/macs2/${peak_dir}/consensus/*" + def consensus_dir = "${aligner_dir}/merged_library/macs3/${peak_dir}/consensus/*" """ find * -type l -name "*.bigWig" -exec echo -e ""{}"\\t0,0,178" \\; > bigwig.igv.txt find * -type l -name "*Peak" -exec echo -e ""{}"\\t0,0,178" \\; > peaks.igv.txt diff --git a/modules/local/macs2_consensus.nf b/modules/local/macs3_consensus.nf similarity index 98% rename from modules/local/macs2_consensus.nf rename to modules/local/macs3_consensus.nf index 6b2006e4..520727a8 100644 --- a/modules/local/macs2_consensus.nf +++ b/modules/local/macs3_consensus.nf @@ -1,7 +1,7 @@ /* * Consensus peaks across samples, create boolean filtering file, SAF file for featureCounts */ -process MACS2_CONSENSUS { +process MACS3_CONSENSUS { tag "$meta.id" label 'process_long' @@ -37,7 +37,7 @@ process MACS2_CONSENSUS { sort -T '.' -k1,1 -k2,2n ${peaks.collect{it.toString()}.sort().join(' ')} \\ | mergeBed -c $mergecols -o $collapsecols > ${prefix}.txt - macs2_merged_expand.py \\ + macs3_merged_expand.py \\ ${prefix}.txt \\ ${peaks.collect{it.toString()}.sort().join(',').replaceAll("_peaks.${peak_type}","")} \\ ${prefix}.boolean.txt \\ diff --git a/modules/local/multiqc.nf b/modules/local/multiqc.nf index 31da0b07..db64f9d7 100644 --- a/modules/local/multiqc.nf +++ b/modules/local/multiqc.nf @@ -40,10 +40,10 @@ process MULTIQC { path ('phantompeakqualtools/*') path ('phantompeakqualtools/*') - path ('macs2/peaks/*') - path ('macs2/peaks/*') - path ('macs2/annotation/*') - path ('macs2/featurecounts/*') + path ('macs3/peaks/*') + path ('macs3/peaks/*') + path ('macs3/annotation/*') + path ('macs3/featurecounts/*') path ('deseq2/*') path ('deseq2/*') diff --git a/modules/local/plot_macs2_qc.nf b/modules/local/plot_macs3_qc.nf similarity index 96% rename from modules/local/plot_macs2_qc.nf rename to modules/local/plot_macs3_qc.nf index d514db46..1722cadd 100644 --- a/modules/local/plot_macs2_qc.nf +++ b/modules/local/plot_macs3_qc.nf @@ -1,4 +1,4 @@ -process PLOT_MACS2_QC { +process PLOT_MACS3_QC { label 'process_medium' conda "conda-forge::r-base=4.0.3 conda-forge::r-reshape2=1.4.4 conda-forge::r-optparse=1.6.6 conda-forge::r-ggplot2=3.3.3 conda-forge::r-scales=1.1.1 conda-forge::r-viridis=0.5.1 conda-forge::r-tidyverse=1.3.0 bioconda::bioconductor-biostrings=2.58.0 bioconda::bioconductor-complexheatmap=2.6.2" @@ -22,7 +22,7 @@ process PLOT_MACS2_QC { def args = task.ext.args ?: '' def peak_type = is_narrow_peak ? 'narrowPeak' : 'broadPeak' """ - plot_macs2_qc.r \\ + plot_macs3_qc.r \\ -i ${peaks.join(',')} \\ -s ${peaks.join(',').replaceAll("_peaks.${peak_type}","")} \\ $args diff --git a/nextflow_schema.json b/nextflow_schema.json index f51e0940..7189751b 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -36,9 +36,9 @@ }, "read_length": { "type": "integer", - "description": "Read length used to calculate MACS2 genome size for peak calling if `--macs_gsize` isn't provided.", + "description": "Read length used to calculate MACS3 genome size for peak calling if `--macs_gsize` isn't provided.", "fa_icon": "fas fa-chart-area", - "help_text": "Read length together with the genome fasta are used to calculate MACS2 genome size using the `khmer` program as explained [here](https://deeptools.readthedocs.io/en/develop/content/feature/effectiveGenomeSize.html#effective-genome-size). For all the genomes present in the `igenomes.config` the genome size has been already precomputed and the read length is then used to retrieve the corresponding value", + "help_text": "Read length together with the genome fasta are used to calculate MACS3 genome size using the `khmer` program as explained [here](https://deeptools.readthedocs.io/en/develop/content/feature/effectiveGenomeSize.html#effective-genome-size). For all the genomes present in the `igenomes.config` the genome size has been already precomputed and the read length is then used to retrieve the corresponding value", "enum": [50, 75, 100, 150, 200] }, "outdir": { @@ -142,8 +142,8 @@ }, "macs_gsize": { "type": "number", - "description": "Effective genome size parameter required by MACS2.", - "help_text": "[Effective genome size](https://github.com/taoliu/MACS#-g--gsize) parameter required by MACS2. If using an iGenomes reference these have been provided for any of the genomes available in the igenomes.config, and for the following read lengths (50,75,100,150,200) that should be set using the `--read_length` parameter. For other genomes, if this parameter is not specified it will be inferred using the provided `--read_length` or otherwise the pipeline execution will stop with an error.", + "description": "Effective genome size parameter required by MACS3.", + "help_text": "[Effective genome size](https://github.com/taoliu/MACS#-g--gsize) parameter required by MACS3. If using an iGenomes reference these have been provided for any of the genomes available in the igenomes.config, and for the following read lengths (50,75,100,150,200) that should be set using the `--read_length` parameter. For other genomes, if this parameter is not specified it will be inferred using the provided `--read_length` or otherwise the pipeline execution will stop with an error.", "fa_icon": "fas fa-arrows-alt-h" }, "blacklist": { @@ -292,14 +292,14 @@ "properties": { "narrow_peak": { "type": "boolean", - "description": "Run MACS2 in narrowPeak mode.", - "help_text": "MACS2 is run by default with the [`--broad`](https://github.com/taoliu/MACS#--broad) flag. Specify this flag to call peaks in narrowPeak mode.", + "description": "Run MACS3 in narrowPeak mode.", + "help_text": "MACS3 is run by default with the [`--broad`](https://github.com/taoliu/MACS#--broad) flag. Specify this flag to call peaks in narrowPeak mode.", "fa_icon": "fas fa-arrows-alt-h" }, "broad_cutoff": { "type": "number", "default": 0.1, - "description": "Specifies broad cutoff value for MACS2. Only used when --narrow_peak isnt specified.", + "description": "Specifies broad cutoff value for MACS3. Only used when --narrow_peak isnt specified.", "fa_icon": "fas fa-hand-scissors" }, "macs_fdr": { @@ -321,18 +321,18 @@ }, "save_macs_pileup": { "type": "boolean", - "description": "Instruct MACS2 to create bedGraph files normalised to signal per million reads.", + "description": "Instruct MACS3 to create bedGraph files normalised to signal per million reads.", "fa_icon": "fas fa-save" }, "skip_peak_qc": { "type": "boolean", "fa_icon": "fas fa-fast-forward", - "description": "Skip MACS2 peak QC plot generation." + "description": "Skip MACS3 peak QC plot generation." }, "skip_peak_annotation": { "type": "boolean", "fa_icon": "fas fa-fast-forward", - "description": "Skip annotation of MACS2 and consensus peaks with HOMER." + "description": "Skip annotation of MACS3 and consensus peaks with HOMER." }, "skip_consensus_peaks": { "type": "boolean", diff --git a/subworkflows/local/utils_nfcore_chipseq_pipeline/main.nf b/subworkflows/local/utils_nfcore_chipseq_pipeline/main.nf index 14bac09f..37070807 100644 --- a/subworkflows/local/utils_nfcore_chipseq_pipeline/main.nf +++ b/subworkflows/local/utils_nfcore_chipseq_pipeline/main.nf @@ -145,7 +145,7 @@ def validateInputParameters() { } if (!params.read_length && !params.macs_gsize) { - error ("Both '--read_length' and '--macs_gsize' not specified! Please specify either to infer MACS2 genome size for peak calling.") + error ("Both '--read_length' and '--macs_gsize' not specified! Please specify either to infer MACS3 genome size for peak calling.") } } @@ -269,6 +269,6 @@ def macsGsizeWarn(log) { log.warn "=============================================================================\n" + " --macs_gsize parameter has not been provided.\n" + " It will be auto-calculated by 'khmer unique-kmers.py' using the '--read_length' parameter.\n" + - " Explicitly provide '--macs_gsize macs2_genome_size' to change this behaviour.\n" + + " Explicitly provide '--macs_gsize macs3_genome_size' to change this behaviour.\n" + "===================================================================================" } diff --git a/test.csv b/test.csv new file mode 100644 index 00000000..c871931f --- /dev/null +++ b/test.csv @@ -0,0 +1,7 @@ +sample,fastq_1,fastq_2,replicate,antibody,control,control_replicate +SPT5_T0,https://raw.githubusercontent.com/nf-core/test-datasets/atacseq/testdata/SRR1822153_1.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/atacseq/testdata/SRR1822153_2.fastq.gz,1,SPT5,SPT5_INPUT,1 +SPT5_T0,https://raw.githubusercontent.com/nf-core/test-datasets/atacseq/testdata/SRR1822154_1.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/atacseq/testdata/SRR1822154_2.fastq.gz,2,SPT5,SPT5_INPUT,2 +SPT5_T15,https://raw.githubusercontent.com/nf-core/test-datasets/atacseq/testdata/SRR1822157_1.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/atacseq/testdata/SRR1822157_2.fastq.gz,1,SPT5,SPT5_INPUT,1 +SPT5_T15,https://raw.githubusercontent.com/nf-core/test-datasets/atacseq/testdata/SRR1822158_1.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/atacseq/testdata/SRR1822158_2.fastq.gz,2,SPT5,SPT5_INPUT,2 +SPT5_INPUT,https://raw.githubusercontent.com/nf-core/test-datasets/chipseq/testdata/SRR5204809_Spt5-ChIP_Input1_SacCer_ChIP-Seq_ss100k_R1.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/chipseq/testdata/SRR5204809_Spt5-ChIP_Input1_SacCer_ChIP-Seq_ss100k_R2.fastq.gz,1,,, +SPT5_INPUT,https://raw.githubusercontent.com/nf-core/test-datasets/chipseq/testdata/SRR5204810_Spt5-ChIP_Input2_SacCer_ChIP-Seq_ss100k_R1.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/chipseq/testdata/SRR5204810_Spt5-ChIP_Input2_SacCer_ChIP-Seq_ss100k_R2.fastq.gz,2,,, diff --git a/tower.yml b/tower.yml index 5b1f5f90..5b981d67 100644 --- a/tower.yml +++ b/tower.yml @@ -1,9 +1,9 @@ reports: multiqc_report.html: display: "MultiQC HTML report" - macs2_peak.plots.pdf: - display: "All samples MACS2 peak QC PDF plots" - macs2_annotatePeaks.plots.pdf: + macs3_peak.plots.pdf: + display: "All samples MACS3 peak QC PDF plots" + macs3_annotatePeaks.plots.pdf: display: "All samples HOMER annotatePeaks.pl QC PDF plots" "*.consensus_peaks.plots.pdf": display: "Consensus peaks DESeq2 QC PDF plots" @@ -14,6 +14,6 @@ reports: "*.plotHeatmap.pdf": display: "Per-sample deepTools plotHeatmap PDF plots" "*_peaks.broadPeak": - display: "Per-sample MACS2 broadPeak file" + display: "Per-sample MACS3 broadPeak file" "*_peaks.narrowPeak": - display: "Per-sample MACS2 narrowPeak file" + display: "Per-sample MACS3 narrowPeak file" diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index 8f4a9e63..a5a255c8 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -9,9 +9,9 @@ // include { BEDTOOLS_GENOMECOV } from '../modules/local/bedtools_genomecov' include { FRIP_SCORE } from '../modules/local/frip_score' -include { PLOT_MACS2_QC } from '../modules/local/plot_macs2_qc' +include { PLOT_MACS3_QC } from '../modules/local/plot_macs3_qc' include { PLOT_HOMER_ANNOTATEPEAKS } from '../modules/local/plot_homer_annotatepeaks' -include { MACS2_CONSENSUS } from '../modules/local/macs2_consensus' +include { MACS3_CONSENSUS } from '../modules/local/macs3_consensus' include { ANNOTATE_BOOLEAN_PEAKS } from '../modules/local/annotate_boolean_peaks' include { DESEQ2_QC } from '../modules/local/deseq2_qc' include { IGV } from '../modules/local/igv' @@ -50,10 +50,10 @@ include { DEEPTOOLS_PLOTPROFILE } from '../modules/nf-core/deeptools/plo include { DEEPTOOLS_PLOTHEATMAP } from '../modules/nf-core/deeptools/plotheatmap/main' include { DEEPTOOLS_PLOTFINGERPRINT } from '../modules/nf-core/deeptools/plotfingerprint/main' include { KHMER_UNIQUEKMERS } from '../modules/nf-core/khmer/uniquekmers/main' -include { MACS2_CALLPEAK } from '../modules/nf-core/macs2/callpeak/main' +include { MACS3_CALLPEAK } from '../modules/nf-core/macs3/callpeak/main' include { SUBREAD_FEATURECOUNTS } from '../modules/nf-core/subread/featurecounts/main' -include { HOMER_ANNOTATEPEAKS as HOMER_ANNOTATEPEAKS_MACS2 } from '../modules/nf-core/homer/annotatepeaks/main' +include { HOMER_ANNOTATEPEAKS as HOMER_ANNOTATEPEAKS_MACS3 } from '../modules/nf-core/homer/annotatepeaks/main' include { HOMER_ANNOTATEPEAKS as HOMER_ANNOTATEPEAKS_CONSENSUS } from '../modules/nf-core/homer/annotatepeaks/main' // @@ -467,29 +467,29 @@ workflow CHIPSEQ { .set { ch_ip_control_bam } // - // MODULE: Call peaks with MACS2 + // MODULE: Call peaks with MACS3 // - MACS2_CALLPEAK ( + MACS3_CALLPEAK ( ch_ip_control_bam, ch_macs_gsize ) - ch_versions = ch_versions.mix(MACS2_CALLPEAK.out.versions.first()) + ch_versions = ch_versions.mix(MACS3_CALLPEAK.out.versions.first()) // - // Filter out samples with 0 MACS2 peaks called + // Filter out samples with 0 MACS3 peaks called // - MACS2_CALLPEAK + MACS3_CALLPEAK .out .peak .filter { meta, peaks -> peaks.size() > 0 } - .set { ch_macs2_peaks } + .set { ch_macs3_peaks } // Create channels: [ meta, ip_bam, peaks ] ch_ip_control_bam - .join(ch_macs2_peaks, by: [0]) + .join(ch_macs3_peaks, by: [0]) .map { it -> [ it[0], it[1], it[3] ] @@ -526,30 +526,30 @@ workflow CHIPSEQ { if (!params.skip_peak_annotation) { // - // MODULE: Annotate peaks with MACS2 + // MODULE: Annotate peaks with MACS3 // - HOMER_ANNOTATEPEAKS_MACS2 ( - ch_macs2_peaks, + HOMER_ANNOTATEPEAKS_MACS3 ( + ch_macs3_peaks, ch_fasta, ch_gtf ) - ch_versions = ch_versions.mix(HOMER_ANNOTATEPEAKS_MACS2.out.versions.first()) + ch_versions = ch_versions.mix(HOMER_ANNOTATEPEAKS_MACS3.out.versions.first()) if (!params.skip_peak_qc) { // - // MODULE: MACS2 QC plots with R + // MODULE: MACS3 QC plots with R // - PLOT_MACS2_QC ( - ch_macs2_peaks.collect{it[1]}, + PLOT_MACS3_QC ( + ch_macs3_peaks.collect{it[1]}, params.narrow_peak ) - ch_versions = ch_versions.mix(PLOT_MACS2_QC.out.versions) + ch_versions = ch_versions.mix(PLOT_MACS3_QC.out.versions) // // MODULE: Peak annotation QC plots with R // PLOT_HOMER_ANNOTATEPEAKS ( - HOMER_ANNOTATEPEAKS_MACS2.out.txt.collect{it[1]}, + HOMER_ANNOTATEPEAKS_MACS3.out.txt.collect{it[1]}, ch_peak_annotation_header, "_peaks.annotatePeaks.txt" ) @@ -561,14 +561,14 @@ workflow CHIPSEQ { // // Consensus peaks analysis // - ch_macs2_consensus_bed_lib = Channel.empty() - ch_macs2_consensus_txt_lib = Channel.empty() + ch_macs3_consensus_bed_lib = Channel.empty() + ch_macs3_consensus_txt_lib = Channel.empty() ch_deseq2_pca_multiqc = Channel.empty() ch_deseq2_clustering_multiqc = Channel.empty() if (!params.skip_consensus_peaks) { // Create channels: [ meta , [ peaks ] ] // Where meta = [ id:antibody, multiple_groups:true/false, replicates_exist:true/false ] - ch_macs2_peaks + ch_macs3_peaks .map { meta, peak -> [ meta.antibody, meta.id.split('_')[0..-2].join('_'), peak ] @@ -595,20 +595,20 @@ workflow CHIPSEQ { // // MODULE: Generate consensus peaks across samples // - MACS2_CONSENSUS ( + MACS3_CONSENSUS ( ch_antibody_peaks, params.narrow_peak ) - ch_macs2_consensus_bed_lib = MACS2_CONSENSUS.out.bed - ch_macs2_consensus_txt_lib = MACS2_CONSENSUS.out.txt - ch_versions = ch_versions.mix(MACS2_CONSENSUS.out.versions) + ch_macs3_consensus_bed_lib = MACS3_CONSENSUS.out.bed + ch_macs3_consensus_txt_lib = MACS3_CONSENSUS.out.txt + ch_versions = ch_versions.mix(MACS3_CONSENSUS.out.versions) if (!params.skip_peak_annotation) { // // MODULE: Annotate consensus peaks // HOMER_ANNOTATEPEAKS_CONSENSUS ( - MACS2_CONSENSUS.out.bed, + MACS3_CONSENSUS.out.bed, ch_fasta, ch_gtf ) @@ -618,7 +618,7 @@ workflow CHIPSEQ { // MODULE: Add boolean fields to annotated consensus peaks to aid filtering // ANNOTATE_BOOLEAN_PEAKS ( - MACS2_CONSENSUS.out.boolean_txt.join(HOMER_ANNOTATEPEAKS_CONSENSUS.out.txt, by: [0]), + MACS3_CONSENSUS.out.boolean_txt.join(HOMER_ANNOTATEPEAKS_CONSENSUS.out.txt, by: [0]), ) ch_versions = ch_versions.mix(ANNOTATE_BOOLEAN_PEAKS.out.versions) } @@ -633,7 +633,7 @@ workflow CHIPSEQ { .set { ch_antibody_bams } // Create channels: [ meta, [ ip_bams ], saf ] - MACS2_CONSENSUS + MACS3_CONSENSUS .out .saf .map { @@ -679,9 +679,9 @@ workflow CHIPSEQ { params.narrow_peak ? 'narrow_peak' : 'broad_peak', ch_fasta, UCSC_BEDGRAPHTOBIGWIG.out.bigwig.collect{it[1]}.ifEmpty([]), - ch_macs2_peaks.collect{it[1]}.ifEmpty([]), - ch_macs2_consensus_bed_lib.collect{it[1]}.ifEmpty([]), - ch_macs2_consensus_txt_lib.collect{it[1]}.ifEmpty([]) + ch_macs3_peaks.collect{it[1]}.ifEmpty([]), + ch_macs3_consensus_bed_lib.collect{it[1]}.ifEmpty([]), + ch_macs3_consensus_txt_lib.collect{it[1]}.ifEmpty([]) ) ch_versions = ch_versions.mix(IGV.out.versions) } From f8514362914b0c488a5c0574280785549e8d3cc0 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 23 Jul 2024 11:13:43 +0200 Subject: [PATCH 182/201] Update changelog --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index be4590e9..adf84b3d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [[#385](https://github.com/nf-core/chipseq/issues/385)] - Fix `--save_unaligned` description in schema. - [[PR #392](https://github.com/nf-core/chipseq/pull/392)] - Adding line numbers to warnings/errors messages in `bin/check_samplesheet.py`. - [[#396](https://github.com/nf-core/chipseq/issues/396)] - Check that samplesheet samples IDs do only have alphanumeric characters, dots, dashes or underscores. +- [[#378](https://github.com/nf-core/chipseq/issues/378)] - Switch from macs2 to macs3. ### Software dependencies @@ -35,6 +36,8 @@ Note, since the pipeline is now using Nextflow DSL2, each process will be run wi | Dependency | Old version | New version | | ---------- | ----------- | ----------- | | `chromap` | 0.2.1 | 0.2.4 | +| `macs2` | 2.2.7.1 | | +| `macs3` | | 3.0.1 | | `multiqc` | 1.13 | 1.14 | | `picard` | 2.27.4 | 3.0.0 | | `samtools` | 1.15.1 | 1.17 | From 0191a6fa4d1c3089dd4d79bb7c97379e696db68f Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 23 Jul 2024 11:26:31 +0200 Subject: [PATCH 183/201] Update macs3/callpeak module --- modules.json | 195 ++++++------------------ modules/nf-core/macs3/callpeak/meta.yml | 2 +- 2 files changed, 47 insertions(+), 150 deletions(-) diff --git a/modules.json b/modules.json index a1bfa4c7..e8c2f7aa 100644 --- a/modules.json +++ b/modules.json @@ -8,252 +8,172 @@ "bowtie2/align": { "branch": "master", "git_sha": "3c77ca9aac783e76c3614a06db3bfe4fef619bde", - "installed_by": [ - "fastq_align_bowtie2", - "modules" - ] + "installed_by": ["fastq_align_bowtie2", "modules"] }, "bowtie2/build": { "branch": "master", "git_sha": "6a24fbe314bb2e6fe6306c29a63076ea87e8eb3c", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "bwa/index": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "bwa/mem": { "branch": "master", "git_sha": "a64788f5ad388f1d2ac5bd5f1f3f8fc81476148c", - "installed_by": [ - "fastq_align_bwa", - "modules" - ] + "installed_by": ["fastq_align_bwa", "modules"] }, "chromap/chromap": { "branch": "master", "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5", - "installed_by": [ - "fastq_align_chromap", - "modules" - ] + "installed_by": ["fastq_align_chromap", "modules"] }, "chromap/index": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "custom/getchromsizes": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "deeptools/computematrix": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "deeptools/plotfingerprint": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "deeptools/plotheatmap": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "deeptools/plotprofile": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "fastqc": { "branch": "master", "git_sha": "285a50500f9e02578d90b3ce6382ea3c30216acd", - "installed_by": [ - "fastq_fastqc_umitools_trimgalore", - "modules" - ] + "installed_by": ["fastq_fastqc_umitools_trimgalore", "modules"] }, "gffread": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "gunzip": { "branch": "master", "git_sha": "5c460c5a4736974abde2843294f35307ee2b0e5e", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "homer/annotatepeaks": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "khmer/uniquekmers": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "macs3/callpeak": { "branch": "master", - "git_sha": "6046db922ee6c425a4dff26eeda122dffc3df9c0", - "installed_by": [ - "modules" - ] + "git_sha": "3a3f471ed42f640115b2661edee5b258e6a254c1", + "installed_by": ["modules"] }, "multiqc": { "branch": "master", "git_sha": "b7ebe95761cd389603f9cc0e0dc384c0f663815a", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "phantompeakqualtools": { "branch": "master", "git_sha": "2dfe9afa90fefc70e320140e5f41287f01f324b0", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "picard/collectmultiplemetrics": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "picard/markduplicates": { "branch": "master", "git_sha": "ec833ac4c29db6005d18baccf3306f557c46b006", - "installed_by": [ - "bam_markduplicates_picard", - "modules" - ] + "installed_by": ["bam_markduplicates_picard", "modules"] }, "picard/mergesamfiles": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "preseq/lcextrap": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "samtools/flagstat": { "branch": "master", "git_sha": "ce0b1aed7d504883061e748f492a31bf44c5777c", - "installed_by": [ - "bam_stats_samtools", - "modules" - ] + "installed_by": ["bam_stats_samtools", "modules"] }, "samtools/idxstats": { "branch": "master", "git_sha": "ce0b1aed7d504883061e748f492a31bf44c5777c", - "installed_by": [ - "bam_stats_samtools", - "modules" - ] + "installed_by": ["bam_stats_samtools", "modules"] }, "samtools/index": { "branch": "master", "git_sha": "ce0b1aed7d504883061e748f492a31bf44c5777c", - "installed_by": [ - "bam_markduplicates_picard", - "bam_sort_stats_samtools", - "modules" - ] + "installed_by": ["bam_markduplicates_picard", "bam_sort_stats_samtools", "modules"] }, "samtools/sort": { "branch": "master", "git_sha": "ce0b1aed7d504883061e748f492a31bf44c5777c", - "installed_by": [ - "bam_sort_stats_samtools", - "modules" - ] + "installed_by": ["bam_sort_stats_samtools", "modules"] }, "samtools/stats": { "branch": "master", "git_sha": "ec833ac4c29db6005d18baccf3306f557c46b006", - "installed_by": [ - "bam_stats_samtools", - "modules" - ] + "installed_by": ["bam_stats_samtools", "modules"] }, "subread/featurecounts": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "trimgalore": { "branch": "master", "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5", - "installed_by": [ - "fastq_fastqc_umitools_trimgalore", - "modules" - ] + "installed_by": ["fastq_fastqc_umitools_trimgalore", "modules"] }, "ucsc/bedgraphtobigwig": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "umitools/extract": { "branch": "master", "git_sha": "65ad3e0b9a4099592e1102e92e10455dc661cf53", - "installed_by": [ - "fastq_fastqc_umitools_trimgalore" - ] + "installed_by": ["fastq_fastqc_umitools_trimgalore"] }, "untar": { "branch": "master", "git_sha": "5c460c5a4736974abde2843294f35307ee2b0e5e", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "untarfiles": { "branch": "master", "git_sha": "5c460c5a4736974abde2843294f35307ee2b0e5e", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] } } }, @@ -262,78 +182,55 @@ "bam_markduplicates_picard": { "branch": "master", "git_sha": "0c38be7e652a0b2f3a37681ee4c0dbdf85677647", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "bam_sort_stats_samtools": { "branch": "master", "git_sha": "0c38be7e652a0b2f3a37681ee4c0dbdf85677647", - "installed_by": [ - "fastq_align_bowtie2", - "fastq_align_bwa", - "fastq_align_chromap" - ] + "installed_by": ["fastq_align_bowtie2", "fastq_align_bwa", "fastq_align_chromap"] }, "bam_stats_samtools": { "branch": "master", "git_sha": "0c38be7e652a0b2f3a37681ee4c0dbdf85677647", - "installed_by": [ - "bam_markduplicates_picard", - "bam_sort_stats_samtools" - ] + "installed_by": ["bam_markduplicates_picard", "bam_sort_stats_samtools"] }, "fastq_align_bowtie2": { "branch": "master", "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "fastq_align_bwa": { "branch": "master", "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "fastq_align_chromap": { "branch": "master", "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "fastq_fastqc_umitools_trimgalore": { "branch": "master", "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "utils_nextflow_pipeline": { "branch": "master", "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "utils_nfcore_pipeline": { "branch": "master", "git_sha": "92de218a329bfc9a9033116eb5f65fd270e72ba3", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "utils_nfvalidation_plugin": { "branch": "master", "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] } } } } } -} \ No newline at end of file +} diff --git a/modules/nf-core/macs3/callpeak/meta.yml b/modules/nf-core/macs3/callpeak/meta.yml index b1c7cade..1603b8e2 100644 --- a/modules/nf-core/macs3/callpeak/meta.yml +++ b/modules/nf-core/macs3/callpeak/meta.yml @@ -28,7 +28,7 @@ input: - controlbam: type: file description: The control file - - macs2_gsize: + - macs3_gsize: type: string description: | Effective genome size. It can be 1.0e+9 or 1000000000, From b0d81e68c41df260005d880360d07206c7d4972d Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 23 Jul 2024 12:02:22 +0200 Subject: [PATCH 184/201] Update subworkflows using macs2 to macs3 after merge --- ...bam_peaks_call_qc_annotate_macs3_homer.nf} | 54 +++++++++---------- ...antify_qc_bedtools_featurecounts_deseq2.nf | 24 ++++----- workflows/chipseq.nf | 26 ++++----- 3 files changed, 52 insertions(+), 52 deletions(-) rename subworkflows/local/{bam_peaks_call_qc_annotate_macs2_homer.nf => bam_peaks_call_qc_annotate_macs3_homer.nf} (76%) diff --git a/subworkflows/local/bam_peaks_call_qc_annotate_macs2_homer.nf b/subworkflows/local/bam_peaks_call_qc_annotate_macs3_homer.nf similarity index 76% rename from subworkflows/local/bam_peaks_call_qc_annotate_macs2_homer.nf rename to subworkflows/local/bam_peaks_call_qc_annotate_macs3_homer.nf index 5b7b9b85..69ecb99f 100644 --- a/subworkflows/local/bam_peaks_call_qc_annotate_macs2_homer.nf +++ b/subworkflows/local/bam_peaks_call_qc_annotate_macs3_homer.nf @@ -1,16 +1,16 @@ // -// Call peaks with MACS2, annotate with HOMER and perform downstream QC +// Call peaks with MACS3, annotate with HOMER and perform downstream QC // -include { MACS2_CALLPEAK } from '../../modules/nf-core/macs2/callpeak/main' +include { MACS3_CALLPEAK } from '../../modules/nf-core/macs3/callpeak/main' include { HOMER_ANNOTATEPEAKS } from '../../modules/nf-core/homer/annotatepeaks/main' include { FRIP_SCORE } from '../../modules/local/frip_score' include { MULTIQC_CUSTOM_PEAKS } from '../../modules/local/multiqc_custom_peaks' -include { PLOT_MACS2_QC } from '../../modules/local/plot_macs2_qc' +include { PLOT_MACS3_QC } from '../../modules/local/plot_macs3_qc' include { PLOT_HOMER_ANNOTATEPEAKS } from '../../modules/local/plot_homer_annotatepeaks' -workflow BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER { +workflow BAM_PEAKS_CALL_QC_ANNOTATE_MACS3_HOMER { take: ch_bam // channel: [ val(meta), [ ip_bam ], [ control_bam ] ] ch_fasta // channel: [ fasta ] @@ -29,29 +29,29 @@ workflow BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER { ch_versions = Channel.empty() // - // Call peaks with MACS2 + // Call peaks with MACS3 // - MACS2_CALLPEAK ( + MACS3_CALLPEAK ( ch_bam, macs_gsize ) - ch_versions = ch_versions.mix(MACS2_CALLPEAK.out.versions.first()) + ch_versions = ch_versions.mix(MACS3_CALLPEAK.out.versions.first()) // - // Filter out samples with 0 MACS2 peaks called + // Filter out samples with 0 MACS3 peaks called // - MACS2_CALLPEAK + MACS3_CALLPEAK .out .peak .filter { meta, peaks -> peaks.size() > 0 } - .set { ch_macs2_peaks } + .set { ch_macs3_peaks } // Create channels: [ meta, ip_bam, peaks ] ch_bam - .join(ch_macs2_peaks, by: [0]) + .join(ch_macs3_peaks, by: [0]) .map { meta, ip_bam, control_bam, peaks -> [ meta, ip_bam, peaks ] @@ -86,8 +86,8 @@ workflow BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER { ch_versions = ch_versions.mix(MULTIQC_CUSTOM_PEAKS.out.versions.first()) ch_homer_annotatepeaks = Channel.empty() - ch_plot_macs2_qc_txt = Channel.empty() - ch_plot_macs2_qc_pdf = Channel.empty() + ch_plot_macs3_qc_txt = Channel.empty() + ch_plot_macs3_qc_pdf = Channel.empty() ch_plot_homer_annotatepeaks_txt = Channel.empty() ch_plot_homer_annotatepeaks_pdf = Channel.empty() ch_plot_homer_annotatepeaks_tsv = Channel.empty() @@ -96,7 +96,7 @@ workflow BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER { // Annotate peaks with HOMER // HOMER_ANNOTATEPEAKS ( - ch_macs2_peaks, + ch_macs3_peaks, ch_fasta, ch_gtf ) @@ -105,15 +105,15 @@ workflow BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER { if (!skip_peak_qc) { // - // MACS2 QC plots with R + // MACS3 QC plots with R // - PLOT_MACS2_QC ( - ch_macs2_peaks.collect{it[1]}, + PLOT_MACS3_QC ( + ch_macs3_peaks.collect{it[1]}, is_narrow_peak ) - ch_plot_macs2_qc_txt = PLOT_MACS2_QC.out.txt - ch_plot_macs2_qc_pdf = PLOT_MACS2_QC.out.pdf - ch_versions = ch_versions.mix(PLOT_MACS2_QC.out.versions) + ch_plot_macs3_qc_txt = PLOT_MACS3_QC.out.txt + ch_plot_macs3_qc_pdf = PLOT_MACS3_QC.out.pdf + ch_versions = ch_versions.mix(PLOT_MACS3_QC.out.versions) // // Peak annotation QC plots with R @@ -131,11 +131,11 @@ workflow BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER { } emit: - peaks = ch_macs2_peaks // channel: [ val(meta), [ peaks ] ] - xls = MACS2_CALLPEAK.out.xls // channel: [ val(meta), [ xls ] ] - gapped_peaks = MACS2_CALLPEAK.out.gapped // channel: [ val(meta), [ gapped_peak ] ] - bed = MACS2_CALLPEAK.out.bed // channel: [ val(meta), [ bed ] ] - bedgraph = MACS2_CALLPEAK.out.bdg // channel: [ val(meta), [ bedgraph ] ] + peaks = ch_macs3_peaks // channel: [ val(meta), [ peaks ] ] + xls = MACS3_CALLPEAK.out.xls // channel: [ val(meta), [ xls ] ] + gapped_peaks = MACS3_CALLPEAK.out.gapped // channel: [ val(meta), [ gapped_peak ] ] + bed = MACS3_CALLPEAK.out.bed // channel: [ val(meta), [ bed ] ] + bedgraph = MACS3_CALLPEAK.out.bdg // channel: [ val(meta), [ bedgraph ] ] frip_txt = FRIP_SCORE.out.txt // channel: [ val(meta), [ txt ] ] @@ -144,8 +144,8 @@ workflow BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER { homer_annotatepeaks = ch_homer_annotatepeaks // channel: [ val(meta), [ txt ] ] - plot_macs2_qc_txt = ch_plot_macs2_qc_txt // channel: [ txt ] - plot_macs2_qc_pdf = ch_plot_macs2_qc_pdf // channel: [ pdf ] + plot_macs3_qc_txt = ch_plot_macs3_qc_txt // channel: [ txt ] + plot_macs3_qc_pdf = ch_plot_macs3_qc_pdf // channel: [ pdf ] plot_homer_annotatepeaks_txt = ch_plot_homer_annotatepeaks_txt // channel: [ txt ] plot_homer_annotatepeaks_pdf = ch_plot_homer_annotatepeaks_pdf // channel: [ pdf ] diff --git a/subworkflows/local/bed_consensus_quantify_qc_bedtools_featurecounts_deseq2.nf b/subworkflows/local/bed_consensus_quantify_qc_bedtools_featurecounts_deseq2.nf index 6b9b8efe..294a0eec 100644 --- a/subworkflows/local/bed_consensus_quantify_qc_bedtools_featurecounts_deseq2.nf +++ b/subworkflows/local/bed_consensus_quantify_qc_bedtools_featurecounts_deseq2.nf @@ -5,7 +5,7 @@ include { HOMER_ANNOTATEPEAKS } from '../../modules/nf-core/homer/annotatepeaks/main' include { SUBREAD_FEATURECOUNTS } from '../../modules/nf-core/subread/featurecounts/main' -include { MACS2_CONSENSUS } from '../../modules/local/macs2_consensus' +include { MACS3_CONSENSUS } from '../../modules/local/macs3_consensus' include { ANNOTATE_BOOLEAN_PEAKS } from '../../modules/local/annotate_boolean_peaks' include { DESEQ2_QC } from '../../modules/local/deseq2_qc' @@ -54,18 +54,18 @@ workflow BED_CONSENSUS_QUANTIFY_QC_BEDTOOLS_FEATURECOUNTS_DESEQ2 { // // Generate consensus peaks across samples // - MACS2_CONSENSUS ( + MACS3_CONSENSUS ( ch_antibody_peaks, is_narrow_peak ) - ch_versions = ch_versions.mix(MACS2_CONSENSUS.out.versions) + ch_versions = ch_versions.mix(MACS3_CONSENSUS.out.versions) // // Annotate consensus peaks // if (!skip_peak_annotation) { HOMER_ANNOTATEPEAKS ( - MACS2_CONSENSUS.out.bed, + MACS3_CONSENSUS.out.bed, ch_fasta, ch_gtf ) @@ -75,13 +75,13 @@ workflow BED_CONSENSUS_QUANTIFY_QC_BEDTOOLS_FEATURECOUNTS_DESEQ2 { // MODULE: Add boolean fields to annotated consensus peaks to aid filtering // ANNOTATE_BOOLEAN_PEAKS ( - MACS2_CONSENSUS.out.boolean_txt.join(HOMER_ANNOTATEPEAKS.out.txt, by: [0]), + MACS3_CONSENSUS.out.boolean_txt.join(HOMER_ANNOTATEPEAKS.out.txt, by: [0]), ) ch_versions = ch_versions.mix(ANNOTATE_BOOLEAN_PEAKS.out.versions) } // Create channels: [ meta, [ ip_bams ], saf ] - MACS2_CONSENSUS + MACS3_CONSENSUS .out .saf .map { @@ -134,12 +134,12 @@ workflow BED_CONSENSUS_QUANTIFY_QC_BEDTOOLS_FEATURECOUNTS_DESEQ2 { } emit: - consensus_bed = MACS2_CONSENSUS.out.bed // channel: [ bed ] - consensus_saf = MACS2_CONSENSUS.out.saf // channel: [ saf ] - consensus_pdf = MACS2_CONSENSUS.out.pdf // channel: [ pdf ] - consensus_txt = MACS2_CONSENSUS.out.txt // channel: [ pdf ] - consensus_boolean_txt = MACS2_CONSENSUS.out.boolean_txt // channel: [ txt ] - consensus_intersect_txt = MACS2_CONSENSUS.out.intersect_txt // channel: [ txt ] + consensus_bed = MACS3_CONSENSUS.out.bed // channel: [ bed ] + consensus_saf = MACS3_CONSENSUS.out.saf // channel: [ saf ] + consensus_pdf = MACS3_CONSENSUS.out.pdf // channel: [ pdf ] + consensus_txt = MACS3_CONSENSUS.out.txt // channel: [ pdf ] + consensus_boolean_txt = MACS3_CONSENSUS.out.boolean_txt // channel: [ txt ] + consensus_intersect_txt = MACS3_CONSENSUS.out.intersect_txt // channel: [ txt ] featurecounts_txt = SUBREAD_FEATURECOUNTS.out.counts // channel: [ txt ] featurecounts_summary = SUBREAD_FEATURECOUNTS.out.summary // channel: [ txt ] diff --git a/workflows/chipseq.nf b/workflows/chipseq.nf index 4b7fb453..491d5f53 100644 --- a/workflows/chipseq.nf +++ b/workflows/chipseq.nf @@ -22,7 +22,7 @@ include { INPUT_CHECK } from '../subworkflows/local/input_check' include { ALIGN_STAR } from '../subworkflows/local/align_star' include { BAM_FILTER_BAMTOOLS } from '../subworkflows/local/bam_filter_bamtools' include { BAM_BEDGRAPH_BIGWIG_BEDTOOLS_UCSC } from '../subworkflows/local/bam_bedgraph_bigwig_bedtools_ucsc' -include { BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER } from '../subworkflows/local/bam_peaks_call_qc_annotate_macs2_homer.nf' +include { BAM_PEAKS_CALL_QC_ANNOTATE_MACS3_HOMER } from '../subworkflows/local/bam_peaks_call_qc_annotate_macs3_homer.nf' include { BED_CONSENSUS_QUANTIFY_QC_BEDTOOLS_FEATURECOUNTS_DESEQ2 } from '../subworkflows/local/bed_consensus_quantify_qc_bedtools_featurecounts_deseq2.nf' /* @@ -446,9 +446,9 @@ workflow CHIPSEQ { .set { ch_ip_control_bam } // - // SUBWORKFLOW: Call peaks with MACS2, annotate with HOMER and perform downstream QC + // SUBWORKFLOW: Call peaks with MACS3, annotate with HOMER and perform downstream QC // - BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER ( + BAM_PEAKS_CALL_QC_ANNOTATE_MACS3_HOMER ( ch_ip_control_bam, ch_fasta, ch_gtf, @@ -461,7 +461,7 @@ workflow CHIPSEQ { params.skip_peak_annotation, params.skip_peak_qc ) - ch_versions = ch_versions.mix(BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER.out.versions) + ch_versions = ch_versions.mix(BAM_PEAKS_CALL_QC_ANNOTATE_MACS3_HOMER.out.versions) // // Consensus peaks analysis @@ -481,7 +481,7 @@ workflow CHIPSEQ { .set { ch_antibody_bams } BED_CONSENSUS_QUANTIFY_QC_BEDTOOLS_FEATURECOUNTS_DESEQ2 ( - BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER.out.peaks, + BAM_PEAKS_CALL_QC_ANNOTATE_MACS3_HOMER.out.peaks, ch_antibody_bams, ch_fasta, ch_gtf, @@ -491,8 +491,8 @@ workflow CHIPSEQ { params.skip_peak_annotation, params.skip_deseq2_qc ) - ch_macs2_consensus_bed_lib = BED_CONSENSUS_QUANTIFY_QC_BEDTOOLS_FEATURECOUNTS_DESEQ2.out.consensus_bed - ch_macs2_consensus_txt_lib = BED_CONSENSUS_QUANTIFY_QC_BEDTOOLS_FEATURECOUNTS_DESEQ2.out.consensus_txt + ch_macs3_consensus_bed_lib = BED_CONSENSUS_QUANTIFY_QC_BEDTOOLS_FEATURECOUNTS_DESEQ2.out.consensus_bed + ch_macs3_consensus_txt_lib = BED_CONSENSUS_QUANTIFY_QC_BEDTOOLS_FEATURECOUNTS_DESEQ2.out.consensus_txt ch_subreadfeaturecounts_multiqc = BED_CONSENSUS_QUANTIFY_QC_BEDTOOLS_FEATURECOUNTS_DESEQ2.out.featurecounts_summary ch_deseq2_pca_multiqc = BED_CONSENSUS_QUANTIFY_QC_BEDTOOLS_FEATURECOUNTS_DESEQ2.out.deseq2_qc_pca_multiqc ch_deseq2_clustering_multiqc = BED_CONSENSUS_QUANTIFY_QC_BEDTOOLS_FEATURECOUNTS_DESEQ2.out.deseq2_qc_dists_multiqc @@ -508,9 +508,9 @@ workflow CHIPSEQ { params.narrow_peak ? 'narrow_peak' : 'broad_peak', ch_fasta, BAM_BEDGRAPH_BIGWIG_BEDTOOLS_UCSC.out.bigwig.collect{it[1]}.ifEmpty([]), - BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER.out.peaks.collect{it[1]}.ifEmpty([]), - ch_macs2_consensus_bed_lib.collect{it[1]}.ifEmpty([]), - ch_macs2_consensus_txt_lib.collect{it[1]}.ifEmpty([]) + BAM_PEAKS_CALL_QC_ANNOTATE_MACS3_HOMER.out.peaks.collect{it[1]}.ifEmpty([]), + ch_macs3_consensus_bed_lib.collect{it[1]}.ifEmpty([]), + ch_macs3_consensus_txt_lib.collect{it[1]}.ifEmpty([]) ) ch_versions = ch_versions.mix(IGV.out.versions) } @@ -568,9 +568,9 @@ workflow CHIPSEQ { ch_multiqc_phantompeakqualtools_rsc_multiqc.collect{it[1]}.ifEmpty([]), ch_multiqc_phantompeakqualtools_correlation_multiqc.collect{it[1]}.ifEmpty([]), - BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER.out.frip_multiqc.collect{it[1]}.ifEmpty([]), - BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER.out.peak_count_multiqc.collect{it[1]}.ifEmpty([]), - BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER.out.plot_homer_annotatepeaks_tsv.collect().ifEmpty([]), + BAM_PEAKS_CALL_QC_ANNOTATE_MACS3_HOMER.out.frip_multiqc.collect{it[1]}.ifEmpty([]), + BAM_PEAKS_CALL_QC_ANNOTATE_MACS3_HOMER.out.peak_count_multiqc.collect{it[1]}.ifEmpty([]), + BAM_PEAKS_CALL_QC_ANNOTATE_MACS3_HOMER.out.plot_homer_annotatepeaks_tsv.collect().ifEmpty([]), ch_subreadfeaturecounts_multiqc.collect{it[1]}.ifEmpty([]), ch_deseq2_pca_multiqc.collect().ifEmpty([]), From 7238956cb94112d1fcfb9151278eee330f51c203 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 23 Jul 2024 12:58:15 +0200 Subject: [PATCH 185/201] Address review comments --- conf/modules.config | 2 +- test.csv | 7 ------- 2 files changed, 1 insertion(+), 8 deletions(-) delete mode 100644 test.csv diff --git a/conf/modules.config b/conf/modules.config index eb028a67..2251e0ff 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -575,7 +575,7 @@ process { if (!params.skip_peak_annotation) { process { - withName: '.*:BAM_PEAKS_CALL_QC_ANNOTATE_MACS2_HOMER:HOMER_ANNOTATEPEAKS' { + withName: '.*:BAM_PEAKS_CALL_QC_ANNOTATE_MACS3_HOMER:HOMER_ANNOTATEPEAKS' { ext.args = '-gid' ext.prefix = { "${meta.id}_peaks" } publishDir = [ diff --git a/test.csv b/test.csv deleted file mode 100644 index c871931f..00000000 --- a/test.csv +++ /dev/null @@ -1,7 +0,0 @@ -sample,fastq_1,fastq_2,replicate,antibody,control,control_replicate -SPT5_T0,https://raw.githubusercontent.com/nf-core/test-datasets/atacseq/testdata/SRR1822153_1.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/atacseq/testdata/SRR1822153_2.fastq.gz,1,SPT5,SPT5_INPUT,1 -SPT5_T0,https://raw.githubusercontent.com/nf-core/test-datasets/atacseq/testdata/SRR1822154_1.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/atacseq/testdata/SRR1822154_2.fastq.gz,2,SPT5,SPT5_INPUT,2 -SPT5_T15,https://raw.githubusercontent.com/nf-core/test-datasets/atacseq/testdata/SRR1822157_1.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/atacseq/testdata/SRR1822157_2.fastq.gz,1,SPT5,SPT5_INPUT,1 -SPT5_T15,https://raw.githubusercontent.com/nf-core/test-datasets/atacseq/testdata/SRR1822158_1.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/atacseq/testdata/SRR1822158_2.fastq.gz,2,SPT5,SPT5_INPUT,2 -SPT5_INPUT,https://raw.githubusercontent.com/nf-core/test-datasets/chipseq/testdata/SRR5204809_Spt5-ChIP_Input1_SacCer_ChIP-Seq_ss100k_R1.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/chipseq/testdata/SRR5204809_Spt5-ChIP_Input1_SacCer_ChIP-Seq_ss100k_R2.fastq.gz,1,,, -SPT5_INPUT,https://raw.githubusercontent.com/nf-core/test-datasets/chipseq/testdata/SRR5204810_Spt5-ChIP_Input2_SacCer_ChIP-Seq_ss100k_R1.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/chipseq/testdata/SRR5204810_Spt5-ChIP_Input2_SacCer_ChIP-Seq_ss100k_R2.fastq.gz,2,,, From 2b631730a27f1395d192aada2f2d36863e17011d Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Tue, 23 Jul 2024 16:10:33 +0200 Subject: [PATCH 186/201] Pass read group fields to bowtie2 --- CHANGELOG.md | 1 + conf/modules.config | 7 ++++++- subworkflows/local/input_check.nf | 4 ++-- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index adf84b3d..c33bd644 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [[PR #392](https://github.com/nf-core/chipseq/pull/392)] - Adding line numbers to warnings/errors messages in `bin/check_samplesheet.py`. - [[#396](https://github.com/nf-core/chipseq/issues/396)] - Check that samplesheet samples IDs do only have alphanumeric characters, dots, dashes or underscores. - [[#378](https://github.com/nf-core/chipseq/issues/378)] - Switch from macs2 to macs3. +- [[#347](https://github.com/nf-core/chipseq/issues/347)] - Add read group tag to bam files processed by bowtie2. ### Software dependencies diff --git a/conf/modules.config b/conf/modules.config index 2251e0ff..22ae4ec0 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -225,7 +225,12 @@ if (params.aligner == 'bwa') { if (params.aligner == 'bowtie2') { process { withName: 'BOWTIE2_ALIGN' { - ext.args = '' + ext.args = { + [ + meta.read_group ? "--rg-id ${meta.id} --rg SM:${meta.id - ~/_T\d+$/} --rg PL:ILLUMINA --rg LB:${meta.id} --rg PU:1" : '', + params.seq_center ? "--rg CN:${params.seq_center}" : '' + ].join(' ').trim() + } ext.prefix = { "${meta.id}.Lb" } publishDir = [ [ diff --git a/subworkflows/local/input_check.nf b/subworkflows/local/input_check.nf index 648a2971..40e20bd1 100644 --- a/subworkflows/local/input_check.nf +++ b/subworkflows/local/input_check.nf @@ -29,9 +29,9 @@ def create_fastq_channel(LinkedHashMap row, String seq_center) { meta.antibody = row.antibody meta.control = row.control - def read_group = "\'@RG\\tID:${meta.id}\\tSM:${meta.id.split('_')[0..-2].join('_')}\\tPL:ILLUMINA\\tLB:${meta.id}\\tPU:1\'" + def read_group = "\'@RG\\tID:${meta.id}\\tSM:${meta.id - ~/_T\d+$/}\\tPL:ILLUMINA\\tLB:${meta.id}\\tPU:1\'" if (seq_center) { - read_group = "\'@RG\\tID:${meta.id}\\tSM:${meta.id.split('_')[0..-2].join('_')}\\tPL:ILLUMINA\\tLB:${meta.id}\\tPU:1\\tCN:${seq_center}\'" + read_group = "\'@RG\\tID:${meta.id}\\tSM:${meta.id - ~/_T\d+$/}\\tPL:ILLUMINA\\tLB:${meta.id}\\tPU:1\\tCN:${seq_center}\'" } meta.read_group = read_group From 5682c831e2ea3bd8f74bf40eedf9a7f26255a488 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 24 Jul 2024 16:29:36 +0200 Subject: [PATCH 187/201] Update svg metro map with macs3 --- docs/images/nf-core-chipseq_metro_map_grey.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/images/nf-core-chipseq_metro_map_grey.svg b/docs/images/nf-core-chipseq_metro_map_grey.svg index 7c81c00c..d9db58b2 100644 --- a/docs/images/nf-core-chipseq_metro_map_grey.svg +++ b/docs/images/nf-core-chipseq_metro_map_grey.svg @@ -2446,7 +2446,7 @@ style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:6.3499999px;font-family:'Maven Pro';-inkscape-font-specification:'Maven Pro Semi-Bold';text-align:center;text-anchor:middle;stroke-width:0.26458299" x="375.62692" y="35.110294" - id="tspan2289-4-4">MACS2 + id="tspan2289-4-4">MACS3 Date: Wed, 24 Jul 2024 17:05:54 +0200 Subject: [PATCH 188/201] Update png metro map to change to macs3 --- .../images/nf-core-chipseq_metro_map_grey.png | Bin 203855 -> 214493 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/nf-core-chipseq_metro_map_grey.png b/docs/images/nf-core-chipseq_metro_map_grey.png index 03b254fc9be1698c4f53cf84ef996dbdd956d2e4..c9ff4b0bd4be69f9366426a0b2ad2a8f6ac6d0d1 100644 GIT binary patch literal 214493 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 z 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 z zUCqoDF^EiMGL%VZcVy~x841{l!%ijjGD!Sj(mClO*3ih2dJ5UQbVcDCEAXVr{q`D` zbr$}uF!moimIbrvxqEjqX*I*LTdJzw6SXcqpTKyAkui4dD*;lV2L~A)TJhx4j_GzT zJEZ2wb9UlENsIc;K2bNe8i%~%$dZv(go@A?h{b&$BS)Z_?lARuQ65vb=dEf6f07}E z0HQ<%^iWnmoSmP6H6NwMECVg=lZlkk9RLW)M19$(^Esx-VgzaiJ?u5<*h^wYF^}>z zfIVeMPgRx?B&lCq>+0&N6*!WJegJ2U3mQ}G^H<=<334!xQ#fN{$MPvp6;RzcUu;y3 zAhJ)9J%^)^%WQ9YHIoZFF)pBY;y-len=@1-Kzpv?fyx3xKn5#LevaI}r|L8Kl}f^S zqoz%J_U_%touWyE3m^s4KUJvr>vujcyM&BhmXcWHn7mgnUoc#BY6E}C;#sI`vUOCi zUgLB}Jbn8=T7dVhGzKRn0_+lowroA9SG>%IftfhBmgN&zFfY=0`{2ehAcgynQ9#kL ztyT6c;Q|G8Sw^2IaGu?i7*wfZs>6M?QdK>#7tnwEeh9-|4aZwp?05RdG7l&y^MU!R zU%&W?aUnVXB0O{m*z+GEyv~+q%YrOoXT&rsO5l_ph!O?vpbleo=76su4ap_Cc3%de zG~<$eBL%!F1;>>ct8gR-e0)OosQ3HCLIQ;O52AwcurMA-`ATlp3H7QO5p4I;5g;hM zC5pK@WLqYM9h477_k8HNnK}|gzk$#IkQWiQvHRHg$GZ-&v%*&^^x$(*f&t4H##iL` zS#^{|tMuN8675Czdq5t$Z#_8Zk=~zgxkC0qYSq(dm(-b%k0`j^;HCce?;YE2jvp5a zAC}TU;)0YQG%f>#2!RRyaqW&iv0}xIuMLRX(~OhQfdvBx3OjDM`Olir&zzA$gCb5E zOdG9TKb}^x@AG7sGjkG^rObOWY4+&`D!`p&stadH#*VQTYJ8 z%?BXMxWqxPgS_vwS-@7-fW@Z76|_*BGT$of(*~9>Y~&FDlzgXWX{sCc2s{lOGMUJt zfa9e7clE$0sE5aaKmz;p0Q)LrTTgEAArdze(o3hIn%z{JNrCaz0Ipce=896=wuifa z6pVyF*2L_vUz!`Yl)v#YFXK-kzGFAJanD`5Ueb1`0Gz2$1n!i2oYx}7dwBHyyCK(5e#w~x^PyleED(`u+b51>e;gUJT|}9P=S_2I z-S*vL03~rL@1DI*@AReg4xsmIHfO+A%o@t6ZIeH&!V%;c{l?_3V?hIOmd}Xc<;4!| za|k9#+D6>Bw(Nr-x*=He;j6R2uf^=bV&#~5WMSafK8FuaKeal8cTd84H7-tOKPfPm z+mtBA$txmQs7QzH6{L!xowCVWeN*CG>?`~Jc+Du7yzilLb@Tz002FqM9-KY!aC^KpoAzKmBt#~ghdhhl5Sv=^F96!a zC&hH6)AJ#D288`R@;{LdV3O0uO*&mcD(lpr@RNvy8u8@wD}Xgt%bU$g+%&6quW1L# zUUC^3OWMYs7UD=kZlPEII`u=|#4dYg%rYQd?s;gB=3b$aB3CS66Z-2_jlU3tToA9*|J^6se#WWnD zbZR={`qs_2i?f5X0aEia! zRf%GwiB^z7M+&e@#~+OApQYC!&tB&%n(wyOn@JbDXJ(~uzMSk6n}6&C)(h4y(Vn)t~O<8p>EN|UhrIRyIq&4~{s$bf)yyzKF{P*<4 zj(F5e0rk0mb=ZLA)v8z{Yes)o#9YXI>(O?kG^qV;K4(995_jiP^4o{Mtq&cdMItF_ zbezk)$n2vpJ{-%RxMP&_lFhx6%BtokEONSh(72}Y*Ruy|E6wTbTLGks+~|0~l=V($B$aaDYgbUF8+Mtn|YYZ<1fWUJ4Oi# z+Gc~QGx&V_6QM_2J%EQ6Uk9-=6u_C91N)C8*0PvbdAS`dT+rSZ~0# z*-M=ghpzkOyFdD~sg0v<2UJ}bTrZ!{&2VjXQoB4QyL9sqqvcjVtIF@2_8)*!(Svzfa#OoA#J8geh4^5iw|DfP+E&YfC zu6Iw}FJoO@ul4x3;ufG@I!BbL*1$3zo$$E|rDR=YbXCx%1oSV%-d{<|L?r6@39GdAjI03_}o_?6A$ORDjz=ew#2pAgF2!sejooK(ynWC=S1Z{8!9OxqaISmCUigK+`n?)%5j)AbXr? zd8Wa?sfyY0S=i`@e-57(ZVX?6)l#9f=um2qv-;pk2WT!$BP<5X;(jd(C-)LW-)$Kf z0DYNLT)H43p}{~wWu|yOW(vQaF}|L2Sdi_=^9z=ps-~z~zU1I#;hTxKzIl#>h1frL zBLCL8-orO+sOrAv)rv=ez3Bb!GEh(C{yN>xNax1#xGr>cKuTqe>*6LPwfK+#nUV}^ z_FR~iI5L0z>!yS{iQ*8GIH=TbjtkYk-4QN~8k!h^&BUvJ>bI8+| ztdve8)@Btp+Bu^4Wakk86zgGy*CQ*BgV2!{(!P%hK3u+1EJ{8a0>Ol2h9hY;9iB>P ziRW+@G5e__l|0^Zmgh-E2SX@F%-okAL2)jRqSG*^?NllE=9M{8F3?PK*XhM<7gySz zW}uKD!vUYUj2W|6((2gz93G?}L#%Dk8C~z!!-o$y5s4;&ewU>yP4?RDnou4*{_soE6M!9smn9`pS~ZaP zrsRQ7=#~Q?hWimx(fYDF-Mk7nb91LWi772nyiARnL!Jr}LsR4_&?^#@UA%!g3l^Mt zFt`HI2bmXLjC)z#KKu8Je-D9@r)T3^Cmy5S@)?ZS6a!tl10bKNgUlf3jmoaGqJ>1) zTEZL$o#8V>aulRzn_nDC&lgWzbU{J|;<%)Mu!Y#JR6M`G-mf^WA!GbH=inU`^Ako} zz;lMbJul4bMXk%d{*rrm~QWR-UJ!?RXX+HA1@1_3En+ZQtW12Q=W_9T3 zij5T2rT9tIcDW&urT+pQJ(_E6Y6&2Bk%)^sA-!-gKKB#cHWaOoxVUzc*N8MncE9La zc@x!fA)Otxq}3naRM4EUpyGZN_}ae;J#43W{~m&Ih9KI` z%&T~x>w#vhB_B&z@h#%()b;c_xwA~alJIDLlzANhMGE5m#_uaCt5*-0eM<2L02(N6 ztXUfB>V*U5J`ViF=0Z<1KJL4Wf>c^HWEvf%Sil_b8uv@Xe4l?%(D@#=Cti9^bGB}8 zO9|b5(4g-@B^4Z}5worzBCAfB=K{eh2%Q|)$5}lfT{;L&6`nFKma@5yz&q*L*|9U$ zo&oz5ZidSx$&)Fm7|xhLpLgrlO?+L9V$$#4owmuA#yoexFh5hR&^1_3Fn(q<(GHh~ zp8ERLH5bGe*j-9KP4woZ>N|C%bbFf?pw=sLb2A#s$`z)PpbbST{vl$I9A6U=|2a;aokxhj2l z(*Z2ylxGcR(3TEcD;X$>UI+f7Omk68x#o zOA=Vg<%e_*(XgYM>(pjbn{~|sfJn|B!Y)hBP6Dh#S(~rYchh*;QRHSEGIyve{oIJu zmX1B&R4A?lcq{sTu%~IK23_$QJ8?sQ!;c6jyXugumCQ5w{O^KAcRu~ie!7{YEgjs) z$BDB}`BUcXZH>F4Bk@W#q;k#t{7c%}FiEKYqwVxfsmo*geDw=`Gr@&Mrg;=tI6bG& zO|*$DCdHC+0E>vm1``zUJ8JXvF{pLK#{4Jnw$ON!_XUpH90XkJVe_T%2g%Ecjm>A* zw4b3gIbO8&ll!Kor1&n{Ui0*+-{Wf_s|Ws2+MKy_Nl$vv*hxE7W#ov%0K3|Rt()cn zw9;UK4VIs`a$D4-z0P*h@q_;UyK)waWFGmEe?!&v3h{Qc-wi{FW3ut_A-gaw)_XAt zaW8OG;1~Ejas5EjgUOgLwL{Z8eTvHY7Vt~Ivc85>>v7;Q{Gs{KLzVv+`i_#+=r8`% z;-t;x8CoWl`zaTso6h6);G=s1Y=HecoVSZNp=Jj;U+25SkykAz6jZ(t{4820=oRU3 zf_=?qGRgAxZdDy4naa4A|H_0uXh#~rp*yGeeu2ilsVA1m_?_v;MsW1NCoA6 z!`)j_ZMV^yaTBfxqV2V3uON%X>0|PJ+H=4-ATOPXi!G|OBf5){p(M~)%)VIBqGQKQ zc}{eJvs2f*y57ICXo~9Q->Zb-Wk*W;B_tgLY#nig#KQ}S$0{R5Rd9{!pLJ!n%Ed*w z>Y_*V@MuVo5&v~LQfc$|IdEVLzkyQV&?T!B)PS_p@ESYlmEBR3k^=eZ6hLM%xd4K& z`s4;!C*9+M(m^B`0+6D-9mG&GjVt+^^yBTKe4n;7oT~NzFGYcP4JJIDor%DX1XSZ0 zZehq^Wro4u7M1@nV3cK4iuLC}jqzORdfScNeOj6a-Nit>lIH_(%;O%2Sp0=wJM=n! zPU@9QG{qQ)i}R>&3xJ#j;zFt*=pqv%oXDOT+->IQsGhA?-UQvLMYG8^VJTe(9X>!RY0MCKOMKsKAA$D3EhQ|~btzal7j!X%;L;lwRC{8dZXHqb^;74NI_hJWSuuN*OIa za-@&}eDy7s3{Aljy4Y>g-^Cg3$_P3CLE*nh2d}i;m_;FdOzfgi4rc>9w`$VfVOK6c z`;2~BoHtP|?zM}O%pC0R&|jyNMsy*N{mRrbc%8{FT_LF{5@|2K*}c^!?#~-M54Jrl zPHbw{Bhk z&D~?!=3g+`45A#lwDgG%dxn@P#kNuYV+tJi8*84hGR5AGrwet7^YDkn)d~sB&x8+Z$`$kb!5!JPZ&<$G7B)Y`uEmAY*B0z3Z}GwPPbZyf#F;c5)(ri z7W+)dLv>wiVjlb0h=;cnjoSAl*i?DKMwUSh82oN`pg ztP!^D${ZgjaQ6oJ-Op2Jy!k&&T?bf?Z`;l$dsHf!m6rC<5+X{Zt)aaal}c#{2_;HH zT0}IowU?y5lv1grEe-8GzVqgNzwdjG<6Zvb_j{guT-Uj-{Dl#WeTZTElw(L#Z>%%~ zie-|8w2bScp4Mn77vy#1q~eu&rwkDle7^yb}atn0s&)hjby!RevW6He1+rW z57}8j9~3Lj+ljC&EG*t%VU@ohEB^W@05aR6ToW9?7x#t}Nctcb>klya5UQ4=oGwS= zCt}?mORd4|75VVvEZ%_75b98ou9e93!39P1O~B%-fQ0V_uDX8NF)`s{3Uqz_74Y>w zZZxyIDf825PWm_Sy#02I+cAeOvM47?;w=EaNHEq;5Zr^Y8I z4WPTAAW~|KIilc(rI=jZxZFyhpIiOXzY-ek2%BY`{bVQK_RHj|7N^La?eZetXTZ;7 zL?+1->{-ecLO~12)COw@%?gC6sx^pyW#_&*2_Y-7n2cl(a+14)0y-y>P`C=&+UOfOZ&UW_oG`Ys<@Z!LDIr?%1>EUZD=bIdF0ipC{4z7c5UD zo?fUuaNO43z69dnmOldnn|j3KkxQ@E>9tEcXEdqZYQwVh9pc!D@}^+Ybs4^8orm*; z@Q2U*{K(ObBZur_a@8)*6s$x66(HGTE`8Qbk=+t2C3O9-$Q&r!Ioe`>tIXZ_v6&cQ1ndU&tOZIn+Ys=n*)ki#qd4yb7tGv5#W8*Cb=mw@%k|okwn{v1O^;xETabUrt81l+d)Ni><=i3Jn{74fkz=h+WiUy zXNeRc!!QZsr0i*}!4p!Q3ynQcRu!Z2z|%;e!QlyuMKGC-a#F481LK^uMNa!A^q}BM zNLeJrporIvfY*Z%Cg7-fhWG@0Vf-M7*HRI)Kx8SXVc?h|<2u_wCy{)02yvj4@(Kyj z@Re>wvvN}UMlHm}#F$G>{kB0H?AprK0H9p={i zoqinx-|(c-tQV}IKKf2lOb-oNfP^Xnlj=XUI$;Kg)vK=qqzKJ%``zmcMAzzgF}|}&l*Q2uSdK$M|B961_dhCs0f-1jvqgM5VbI_ zx9;KLYLbbf%d`2A%(=hshtGBKru3-lZM>#>;197x!iO`7%$~In)W9oh1%{x9Jqky} z`&h}C9c%%y4SYTq5MIcG+!!iDjdx$i;C>PDA7rh7i<9I#VVe`K`J`4$P>3=t#MmXp zXtAU(UhIWP?#A(OiR=2QEzQ|>?5J_xVZYiR#lvNpptd4uujf7cTh2b;6eE#Iz*3jhGcVT(iVawOhso6!Wte<>*LGF z(NjAA{`7+s`Id>zZ#Eq|Bb=%pPwpxZHOh7@8C&zTF5Fo zuFZ_pl^P(j6wGr(h};>v2MY2vz!&QahNwXY@HA-O2y9stfQ|}{QtQxs!v87^j{r_c z#BP#qG^!ToebkLw=;JnP@}aDO`FYJ3+}Y%UMBlabBWMFz6mNLp3ZAic5B{qKm=>S> zBDqc`1UAP#04j*fh3L#Au>VNL2JT=YJA!TNEaox{K<^L#>A@pM?xM~G@qYCbtd~;s|mp1j;8Kj*tcOdl26h z02!1OupN>a;RxB-5ifWxJQj{=JWAyJqHZiY@mH|XD?AqOn>XS`5PE%~SxX8)` zLPWxOo@r974C^cM+}?IDb$BOpdg-9?EhXo|&1_E`>1*RW!z@ z73(FlXg@<`SE}o4BA0r%8xT1Bp(#V5ESC8=j?243H*QteE|2A@?W*; z#?F`c7J&2L#1>^9yBH=CK;~oq5{T6xK$7eD?nQh`T^ta~3_j5({eBkMNpKIgb zV2sF`+=Y=GOy@XDJ0`Su%Qm|ez{N^K-S0ATa9t5Qi(xC^Vyxpejso0Ei;KiR1qX8M z={ivNCuGmzoL zU{@_7*LNe7PBFi)|NRiLTM54Sj|hrXCnX-vXk~``TI-9!~%Z4!)A^m%9h{hf#Z?`gD+gWEvquJ7LCstau%ne_#=ba6U4cHMiH z(~!hPx;u!c41HAp78_z^TgZ#=V(y_!-BjTGh%e}Mrdb73sll0eg|E>nmM@xOkDnxe!b1a}3O|%oB_?Sr&d!ivFpw6x*+P&4@A^FGKz|}-Lz))3MxZb`1;F&L zDb5w2iHxT}?WEz`)C8yFusz9+hcy7t8$)~iP%lS*9iV`Hh~rAqZ7lnsnc=@Mr~moC zuD>(1Ey>9vA4LK!zRR=?Y`*fxRxY=A^C>JTLT&`c|ND%Y}cEex;WXk&>x6#e=A(+Kf5W4->vC1_2MY|^mAGMX}9Utm7q@57D|cQ-|r(8 z6FI34yd)cg0-W8i8zO|N2Kop1rUw+sJ1|7shC{=`yoUR6BcRw{y)bMq3MZlU`Oypr zeVy<8rP5i}{M)!uqrKUG=3J%~_)U$5=w2p>+O-P2HjOjFU9f8>t>ovDgZ#`nMUE;C zTP+U^R%UQrihJ=9TA~M{4}ix*TBHZZ5@hGwg@iKnTKk*+Z~<+T^)2Pp&L2v;ibB19 z0~^`!@|XTSAb*{)@ZR^qd3!8h&|cVjZ1}*RTA}VAky`O?zo(7*-trz^HdMG%^D6y& zvPhh@mAWSnm$%+{5tpj&B);(HFvOKj0KY}aS+Kek;K9Z%TRtOH2LL(y!UdVpey%qf z&jGH{Z&&%d3qt?K(A;B@QaXKHVmaxjTe%Cvksr=Ja#DH9FT*^|EdyNzy)vj>B~`vF zub&+6?%fbkSd?Z&b%yB9+Z<7TiF)?9!n8={7~@*TC9acvWfpfNj$M_wwB{2oFdm70 zL%xY8#%(mvdux)vx2xoDkk37q5_;Qr`d+d{3CeYrJuV*1GZT$*?GKb!W+a)U2#eK5 zn-F2@wp8UrC;)HT?xbtDCt+AF)71vU@@RO*2}STnkfIo)wYn5E)nJkfz!SZNzhN8E z8wm}pw3+Di0#vnPesjlqJ0E->e!6Cu$!LYO!T!40NVU-J<-}M?^7}{5!wCaC*02?+ z^PM*VzcNr)34~N*-@HF50Tks%GiQuc0kY}v!$`-zZQ)N=|9+qbeMx{lT#7r$i^SbP z;!PrDfJq8lXrsP{$RX=dWQ=RV$``iSlB!1b%TaVm13Dj*ZpHL=DmEV4geT(g226-E z;=LVi0u;tkT#p+BXpEGKN}%K|WD60)5}fN4(CY!NYI-HM{bcnErl9%-kc1S^kyQr? z3o0gmrVD{D6=M8}s#FK5LPAcry4HiLASgBvegxT&d9?BAqkGPQR9EmRFD{PyXuOkT zNB5=y#v^yaO(4kjISgg=d)a=gQ<m|}+<_W3rNe-i2cA17cM1F_aY}ohxX8R4Ql!i2?_`6!E|0UKbutcj zlxiU}Hpr;kzX{j|ymgqHrggK^V?3{A5H|n4IqfyT_x_a$ly=G+4&KYObphe0%y2qw z63qatHXVQqd@_2IB>H-CopQo24%WT2pJ4MjkENbzYuS<#Ri;1Z)t-;YzipeeZ=>#c z(jR{7lJp4Im86e{cK+$_SN&x%;*1m7jwR~K6`K_l1_sa{M&<0ZRs_g|5Gu%{EeiFL zNwrRpD^Sz8d35o9*M;|Cer{sX&?1WVXJKJihwOkQ4kS@bpl5qzK@SZ-`c%}qnT0uI zja&JUK0+xNay*iYPV}NUi8LEKm4tyd!tnGNnWAwbdsfYQ?mPX=ym%Y`pXQXh*%piQUw{ME)*!P^{{P0 z$tQmqM3xD8!YD2ZA+vU1iTjV*F@eR6$o*i;VmV&946a#bQ;2!*_HEcmQ2668 zC-ODOUOto!lD-xF(b#Aa(Mx;;U`hEQSv?+@%PHE84}5(3fH+X-pv?z6ubtY!|z%b86rdMyV2k6bu!lM*-*u zsskKR`>tA~A6pNS@-I^6@m`)g_&okl524)x6vU=XehZCLoJFn665GyKG#`yrr(0I_ zc0Z8u_@-7m1IbQ?QC{rf&y=QNW1!DSSQX~`hK04}3Kzu>!x z>?#-qi24M@DmSjHPv{vICe%2n4PDlkUHF3cOLrSc3e97wBE)`6o;-P5as^c*k^F*% zz7W$b0Sz_mU_D=~(4~>w41i@cSt|Fcjk*C*8KW~?=YzzeU;vUdPRL1nfGl$qlggMm z{uL!Aa0ku)o0F&PtJN;3+o&fGn>EErrXJY*?L%Hbu%%SW?!?tPP0^;UN%Bb>spLj$?nVapddpQg0&R=IFrJjG~4DpIQiB%`-7EQBo970PTQ} z)az9*Au1wLKJstuJN7m5xNmZ&zGW^}O>IIkI&wH1i6Se*^KabJo~M4arCGzC4AigKy*=NB z|2eVz(l0VrY*Wm`=BU}fnVNrC1_+2WY?3;UE3 zw(Cq@uXc1H_&e^RuVK5ph8(mYfO07udz~B11mN7FfGaP%%9@#xk>WC_n1_wSM5m)VvIKcuCq(l-_`*s*HsIlB zNU+w~hMcc@)Fr#<=)-umPwx_)YP?j6rP2EyrvA{n$fjSTb=hAlioEtug?!DoqWNI< zZkH3BX%F8nIxwqt`(3c;Z;hc9SD%c#_kgV_n4PEjm}7y2GTY@CLorfbv0MU77AJDA zRb|=xny=7>Jb)<;vC3XMk4O>g(~!NW#L6NcQS-UG?dor;`62=D6#Omrzu2LJ!!-mA z!n@T?(0A{|F-h_WVQqW_Bm)*2Up@UC*QAe-FQH=av|B>~AU>eGX&Kioj%fc?4;Bm8 zp^FBYGx-9L+Iu871MDZlP6#uB;}Fvrh{RA769;H$f}>%3%@CCy?f7IP8*Cx5LPMVr zdbG`7)=zl%>-e6tGRmfGznK{fAF7viWVs|9kOv~r{dcaIKKgt1!K3p`c4v(fg!U3uw}&8dy94e z#zn+_z4}0?Se&bPI=gQZQx?L8dr2{bvv?gbmUuAFt|HUoaVKBcmkU{bkqJM9;U3jS zMHYguzYajmumOm}VT3OOGbbhih~G|uTE4AthXf&mW6=S;iJS&tnTL6Je6h$W2R z#|_{xw8_vU6l36uXS-EDL4k2r;1}_TnFuQ2K!FE!heMFh?VeR%M&(gq;|HY%>>6F= zK4JU3d_NtK+H<;Xz;)4fXUtA(rt}Fjt)Pe7pTuB|Xxpf-H)~ySy`XOS*_g3@7q{9L zgBJ>AJcfG7YTW8J$!p94=#D<-yF_QKX*bevW9(FXpqn0gm^NWj5I}aRsFR+ODGYN` zBrbGi1}P7qX=r<+d|XVCyTpeR9^LHKpUpT4i9{DjJ>$`S@y8-qZA6pnX}%uWnKU%` zI-;`$D+>ju6T9KVjD2?$pwAhg)R3e???>@(kizrh)`#IYxs)J;23qMc53X}apbYWdf9vw~|6=9KlITEQ%m zxe4eEi6ajMO+VU5oO$<9l0yfKw90Ov>ndjbIayg_$mt=aH#!4J1XMfa?MK)-v+VPe zpkn>a5o4g6(MoC*3LsmDuo-ZlL9yx$WfX2NA`$~U7x-KJZy}}F;-#)Er6kH@O7nbQ zieFJnUGp`Y@w1!GC}9!=zrTqrhnIXlGtS;?>y= zFMpTl@$C+>cKB)g`M;JCpM&Uq2o2<$M%Z^04Gm8tuz#Rn5~&rdM+8*0tlh*(g7StG*Ka7{T+sp|PgBqzkrWOOI~ghN z#bM5wMQvMt_sx`hkmyf8^LI5=^wmccA6Dhd*2G+QPJQ9`BiU%IU;9XtS(k;CSpSwW zi>)VWM_u=|JoGL0RisP+f zqe2^oRw7`S6a~QIC?K%92&M!GT|(?Asi~~JeAliV>zY`@emqoBtK22&wcjrB(;GMV zZqhw7A}lSv-M%qe?QUX6xTdsxKv=n+PUV~>#}na;(TBqK#f{xx;LVJEVENYF=trjU zx6gAXVywPFqmwp=a$H-Cq?(6!n9J&)(%a}c{dvMJlV}F7s^_b zk%LzmFLCH|{I%b;9X0|dqCVT_Uk&MQGCGOM$i7qh=N%dln3sJmJ^(KczU-bhvU;OqrGN>+zsE_ zZ%FvwXZ*2!>DgR@fXVRJtbK=(5KX=dL2};C8=Bm^`{2#)eL`1bp5_afUG$h_zn3{B zt1T4q;lda>;2mkY58O=Ib(k&Wn6c1Aoku%WcpKL>nyu2#*KhE(l*B3j3sd;}1FcT^ z{Y>mjzbba>1?$Ay`7f~onP#Ea70l(AuKmadgU?!bd?2rZW;k zdsL6s$~=01V_WI^vBu&&#*Usp6|pw_LNA2ReN(a9``?dyFLRyr!*H{alOQ1DGy_dr7`e?t4)e{JZ!=yce^kj}`G)PYHD zD5C3O9dG#U#+-s6r2vdsI=ld1!ajH+P-CP0i5`ME4FQJ`1Gqph()H!&Nd!fLeO*uL zRls;1L-ACmxPSkKR}lLaN*$HvG_s~%FcxY*rmYIrKEBrW9!v!S{ylNs~0Qc z9b#YXU*eZUvD{8bR`RaTg0?ioL3(ySAS7{O=72_lf|wyuh*7n;g04p&NIak@$0;rU z$`sMGgK~--B92Y`u60B&1cqlp%8G>Yve4j7m+VT3luiwBv2JIsv760qie6p5xqtua-g{lyH*9hqyEzqTE| znDH$#yEw~0_Rwtoq5Wp!(LE)9pSMFM&~3tPQ;@KquoeVS`tu4g5egXWB*jmVpt3Lc zH{nx47VL;Ng~T%g_)z$caTTR7I()%uBSj#}=mNy`gMDWb6jXUgfXQ4)B%roo?S~~j z2s=y%nC zwgF`s!XWb07THTR5^~=$$V&$my$dlBLGJuFv=Ck{M6*^P{DRoIAiTlSB>EO~{&(B0 zknQb-0+u+;p>!{V1cUrobO9bEX%GgIuqz5;76(-dEov94WpX2tePHeByVgx0P_K+L z*+NRUEiL6{!j4FTi1&-ZADSa+7%KbQ=Q+c3W**8sh@L#G_~`-vJDfeeoK-g$#C#8u z<4xX|*i4`ycy9rn7zvAb_Ds<|9mPD#E8(GAVCOE#j;?_nP{om9_wFJ{upmoOHXDW1 zLouc>A~?7l^akZgu$5|=*AD?2fe3dLWe!@Nov;NFt1UEt@_q{ds9?ZN1!qF0m>{GC zip==&d!MGpH}GS{l5|lmEk~yPnErELh23;NAi%F>*OtvVgqyBQ_75m!+xVQ>Xr05O zX45>^D&;Mum^>UBdSeTN#4h8oTTEwFL{8Pcdh^^%d+)4@zfopuXqfAVBG(4uoVRijBVXW_Awo+}7fdx`YqWdcBsLuTm1;#z6h?w) ztbhIt!iUE;HF*FWIn$UM6l?^cLuwNRc(Gqoj&hwK`IhiXEd=S2$;34-f(~}WxY-{G z(ER+cCqqEP12h!~0 zqW6r;=3v(rW4*|%J+`!|h4&5#U0Yg{K{t|_oq0JiTxgh{|J8+}KK|IRd*t%uqDsxu zX*cEE@GGcc=)Q7g?^vC+0kd|oe}Gr}bnVyuYyoufsoRd`v0J5yjV26A&ZJv9zSMX4 zF7V4+{i?Xz*e<%Ug}fild=AC$$eYJC2cHLmv9`h57`=5yoK${uh7fp4aakGE?2%26c=&m zd9|&5pzXuCG?$1~%L`35ezm0m%?b8v4*Z}OPbT;FYt`=L_WK2cyziwHQWE}=F*_pH z;!sfe{kzpd5ayp#5R2o)=!anf!d^wwI3(wGKNhn3C4y?(Cez4z%YC;KML9Vue5d-p zXD_V3yXtk_m0vvZDqf(nP54D7?ea*VA?D8$@n(w!L=6yM)Zi3^nojN}0-G*4*y3ok z+T19#ptQ|9&?55dCt=?m#dZFbpI@Y$PwshYRm)Ul^jSwhKUu@;edl`x_h&MmaZ>1P zg0s!Gt7m_E^Ta`aUSQZKsP$^^4t;80RvPY>_s=<`QZ6#T7u-EiqIp=BiOX5-`R6tc z!LXJ)ahJTdZDk8sFJyc)RG=nWnXWA??E1IN%cXg%E~y8Fd| zfug)$pXZICevN>hfJTyfJQ~l0V?J*bV!oL1o7_+jol3}TxPDH%X?H~W#b4jz==B#) z$mZM+laCYV-G42C=b69;p%lF$6;6iZ7yAPEZR%5b=r3O32;5b9ytj1uUFzsXxEZcc&rnD)pM+r8;Ne>lqA8B>t;Il9_Nx7Al-&Z=%#C|?M5TCk*6xQw3NNphB_{q1 z%%0bFHsg=R&0Om9_)2$m?T@DDhS}pyFCV_8PHPa^VlPT_%=9ze*QDmSx9J6SX3T;| zg8KqQ!#T*QXng_E))iHbFFzNwUMMn3O$Oo*_{}}nX&$}&>hbW6WyXRb0ZnsW6RUBS z$U8F7(hhuq)Mhil@Ga}_O6H*XW14fb)NaDu8tBA>u!{a;uqE->RvA!YagpmLv#3pF zlj~h!uP^s@4?W)0Z(<}C6d%l}ky^&zub1Z@9BwbVci6~VkWaPzkPp94pVY)Tb(XD> zcLoORY4kN_UMenW3GJJh=WCtg6`^QdG1AsZ)=h2UZjBe(!}sw{&)sN62zZ5uRAZD( zlpWn3WSZQt7@ncrD&`g8eqEGDZL4#J^$B*jrLfP6H03hoA5GZu#mdt-s5kF@Y+!6C z>C7AIIqLH6c=`<*cJtaOsnqNn`L#%s3_I^x5_V1GM?=-kx14i<9|c6E#SdJNQeU4= zf8`laK>hS9+!`DP#{EwNpUVuDdxff}dR_~uiJalPJ7=~S#~+F;+#RYzO+uWh~Hrg2+)@Q0yK zrAdv^e758J@Ql!&FDAV8e3iND@8cdd;n$UwVLHYd(EPe{E!U6J6B}}P7M4tJn6<@M zSu5XL(#?4&ek1?0y}<8=u1dE&txY=vsvFzZDh#y_L>J^J@=0U zdzzY4FQ>|zb5G5(vresjEc5v5N_ZD`=#>jRCOXL)(gJ%VMoIkK#zVxb0qjo?aY}%p zSy>&;X#v`Mp;!?9kk(=$1`Wo#d5{4y3Q|W2m_U&UTQKC8Cx2Kh0-lhO9=dgFg^ykz z!A1r~eM?I)334M{`XfpK5}QxP4%UC8&Q0BqZ~lRMZ~Abho?OF zCv^cphga?l(KC^%0!HMne>O{qB*17!Ib%k|1JTlB5kKW>9_c#t=uR_A+0^)-&J_-m z_1ejD>+pvU9QN$;B?gh+;>+vkK0VdSZ;&3W&OjBK-8a{A+q%lwUJ z?Z)5J|Ng4SH_%PS> z$6pN_vrg8{Xem#Q+f*xPdsyh%`3r2DN^V$qEQ%VYX_RLhQU51dm*%9d|C;30wJ9s0_p;>2MYfIJk;D+ zA7qXLp&>~clE7d@?L7z+QH!ao?Qnp>10*jdNJKXDd*cpu)c{V``p?H;!%eZnpH zebo?e?IW(uqEDattN)%>iSv-|D5(4<9C!Zlh1jG_4i$FQPx@EpI^{xz9RnqdstV(z z8mrzvlzw>7x#`e*CNZ8@iLd&ro3vx!L|61Fn2EJe>z8j$1g_}#@czq5=khe>kHi6JndFNlogCfKqzlI0kT1tFAonMY+dJI3J9=AOVs5c&SNq1Wm)Gs zn(a<~uQJciaQV0GwKqL7jyxUrH!EqGw=4%ZkM|jCZhOoTMCWa&D-h_iekA7k5wV3X z_A^5g0jjQV{S1x!cVzcc)M~vbbL(?0e6atBRW6sl$bn@+ulR{?e%DW|f1Nz;s&XvK z`Oo7%&HF1Io9}TfL-g53>BA;>Nk#BnkfrhU-+R+JXSZIf4bd)r{r-gd4a$q;6 zO%IMPw9U?(Jo~7&=Hrd(KW+~3d|U0(VqV!Ze>GyP@IO6bw{jxWJj^jx<>-lAV-Asc zb_%w%Z8R<#q3s%eI}0}Hr|Y*wp3|$U4Yx*m00^T?Ev+IB8#4kp;p{D=DshIOcem`lY-9BjLhT!aDmPeb z0p$|_+0z9+U-HKX@<;`;klnj$(M#WF=L>q(M%_KXQ+NWl7o|^x7+&q#Ij6Af273t$>w4U)x?! z{oTI}Z9jdvEvXhn8R`&p;h5I@cK=R0-rJ}B7T5&lzb{$GDbI==6Sz7!>Kd_W%fqdG zgI~n&^+@R^tMMq;tu7!4i(!`2RBX}VsK0PUS4p|Ha_>;&p@+3ktO~V~R=e(uOSYN zggjHZ3&kzg^$Foi<6AE!%;nVM_f;8fenr2UR&*&$CT}D(-b*_FI$+YY7qjCdWxv(J zH+=kB9(>fyPS3QdZgKqMN?l^hnqOfP)C#tB1CE(fI^Wu61YetXTr|#DUu7oh9h5Du zXksIQ;yCJltfd-w=x)J$>TZAAhfBV`6!TpVmrBZPZTq143=fiIe9=oHu z@-X2MjmNQPyMD~qHn~cElpAEn{NNM}@77)Ubn(6G=!x*`{*rKimd&DqDzK(^ee{A7 zyHbBmbgz6yv%RvZX3)FKaRSBZ)(+zaCAU?%HEh0^w#zgoN~zMTKJn=>I=;r|0=;*2)^WzBL>!_?bY#jd97h7)m<)K<0N0?pV9p9sjIB=gfLHfv1)ghK&ImroYw^DPMuK!( zRdz}1Gh@FOSFG>b*y#_awI5g#-4L`gpE23VAHtL{Bwik}5~i;xkvA~1X9K6#ICXWG zA{4@Hy(WBVhUr-$25sm2pS5h}ejZz}{^Rts)-1<)Gml}h!8z{!j%Tsr;T4yCGqv}a z7cZR-t=Q44z3r(h$&IR(+RdDrRbT9c$zcQlZ9w%kGEg8%>shD63;+R_V>G&R-+m6{j9s_;L3Plvh_JSNfd~G)!P9 zC@T%2p6D!i+sY6mP^F#i-5PAzT7D9#D6={m-`6|De!H?H^ypEimqRLy>^-5ox}B!{xy3a2V`U+6zaIJ zNTjvR$yZ7*zeHbVIm!FNmx)$Ce^uU(%lS90ifg>PgSPK-8_jJm_E9zyII(D>t7OvUhmT!nLaxjpiTCEzV5I#hY>IuZXkc zPRpe23XpoN@LFoDpm>+ZX?KpwGTt)g-F|AHEco>WgMk@8uU_|u_Hp*4g!#hj8Jp!M z$>&2irS>r}Y&2JKMTar*54by4`u8*P1!&!<%4ugJAU^p|}zYUNMo z6!omG6dGUdR5P z?2F3dFWTK>!me6<>TxL~wy^PG`dQm8hDRqaAIWl@V8)~@3NqY~u(#!zBn=dr9tyF= z(IQB#RLV2YLi$Y{ktYjRH$m~I*=xH8vm)718gIM}qErD%S!Q9iBpsg&gQI{7d%3mo zD9P~v-F@@ctqF(^)!S=zxRcP!dwW>0!Py401_ic&VxcKeoP+iQKS6bxEB`c>9 zV>)PgB76FkF~}FQS}JzSiJd|&QNeaJKGdzpKrPR>F}?Ri*G!CZ#|jcLK#s&hxpu%L zN5V#XXOL;I6@ii@@fXr8_tl565^JU-bk=DWxQ3y4TZOVLjBV#^;?Hqrj zip(Gj*q_Q@Wt7S^4f;kU=i`ChyY+(;L1eqpyRV=k56oP@ZQpFh?pX{vKM55J*w_r| zpAOfre}vXJ<@VsvP!$-3SawdDmtbd_iEBgj3P}z(Tx7+V|uL`yO=+9 z{`()#`vu&3_T-aL%98z-IirQex@&vc(uc0wPQFznce z!I}7&eUDmd(~|Zwiqhz7wriT!Ct}ivfICn7{kC_w2~b zv3pjOz4K$6O|BW}anqer&i@#3t?H1OT;^43kstY5TWzW&B$D##Zsy_*5;;oS|#7G*?|2Ki{a;|NGB7 zo)Al~>bg4j8o4bxwUO}g53`(c_uF1teexRrL_2+iZ(L=X(|*ghfl+Zy%3dE68>6h9 zCL*X#n8SPH?K(C_S(_^O(wZ_QCo%Qh0-N`lzpDU;^&YjrESH=&!#zm61)kCgFa&{} z`S(WiP=xC(At6Nl^iLtoj{Z)VL5Mv%c>f?(N@-~7lfg%*TG45(g_Y=h8s%bRA?!YN z12@PRJp9IjwiiYLr=k?psMUb~#u;ua%p)d`P*DdTBzugLe0>mFu+NOxU0Ho9{-w&s zMK%w=>8bC{jGB&F4c!y2yT^`ahDPun=9Wp{oSfxX*LNb|Y}Dn>p({DL5&iLt;qO1l z=FHE}Hg)U?btSzM?X>cJjR*Zh>gatHc6+_Y1>k+XZERH;|=?AuKN!$ zwx*UdFzm}*@pz@;wQx3g?3clZY|X$+;ZH`=Ej_N=wTJ{-Ef=%7YnSAEP)DhIe1F8S zdU{m(mz+V1{NTZtE{cL~*$r!9$bOtWEck?WbBaM3k{_RHhmn<+j{vGUx z0oNda5RtJ8>LHLq?98JV{0x%QIgOx$KYo01%7sHzGz7t46y&#H>=+^vj;3&Y zg~m;ub1CZ)g;h?4K=%a;Xyfg|2oqx*nA5e*;8T0ben49$a}GgXj{m2O}mOUP40?!&rI zWe?una-Q;w*7=gB>Y6(gO&VTaKFE41MumDYLH^YZg(IS7*KHh54g9{ndfg>TsuOfH z)YGo(Hl%qeC(~B1=REKrNtloRV@^2NHIC;cqOaezv}N$0UM)J_{>F#fbbm`$@8-L4 z+eeNZtrYZSc&Syn{=HK_-z`al>Di1~{eIUP3lW`XOa3hueO<5k>}$=p%0#7nPbr;Q z&JJqRY<;wnot-(_5K^mtRWox(ltOWI|AC`p=lMnGQ)X=w-q~``A6(PAJ;gMCoLhQ* zdVHH^XI5OJS+|2tXcYQvYTX0@Em14n4T< z>G|x%3(AkA_C!1jN94+8uH4JNGciyNay)>)AI%fbD_Clh$C!ZE%3l3+f#bnfvLmK^lQa(%?qS& zYFx`BBTi*@B z(T_hzEv|p_iNmL%)3UVpQn1BnzK}ZL~wZCcmb}oBo zWX6!OqVTM&XSq^Fg3Tz1;FK`6)Wq$OHLK}C*+oWKno`}X`@TC5^0gLm?(4CS z96m7(&}h4>jfFa~%+ucqP-HFc96)Ti|)2s4mJ{;LKrCm!Ujkd5k#)$SVIt z7B}80+Av09><-+m zJKvCe{<%q$f7JMJ%7Lsf<>dv*7^V6*Zs)*O#$`WTS;f*Q=yaCNKYE`<>+qrfEaIdH zcrNvV>--p#|0Q!-mPIdgsP9otFcnN+{wJ3?6GCo96iMWspUe|xa zazS)Kc=dRfM^PN*=88eX2Ju)_Ym`=jYy0>FY6%!rdvGxSL?L?Y>$dgK);tST(a~4; zJ-Up`l+oy$)fX0S@BL%I>La?E%5 z2YxHe=*5Vh@MYYD&I}rTNn{Yh2}VZiAUzY_8;!%nWA+@a(_!gdWamK)3|;oBbu*D) zKK1#Y+n?NE3s{kLY#-I5pNPFD;fsTVl~Bj+m2h=_*uK`|d9{((6d}ffk0<~1GJv^? zaH06z80Cx_CSPv}AK)Aot}o+5c!W^79ODVPkC~ffvJ;LVf)rr*9m@#SSG^>n! zWdwpMLAF%x(>}OEX)CF2B3T>+vJba~iCRHv>#Jk>BAHIAJ&^2iYHcXAV*crT8f(>oV^1iRCsgEo!~Ha_geOpN@y0N{X2S zO6WZzRTiJI{aenX884x>gT0;#-O|mm!*FDf=x#Er6?f}vB{q@>H8;1eV;xL>a7A*_ zRcl8~K#C?G`!Vq{3mM5u#;75L=D3ImnYA0R!>AG>VtQ(Ne;6IE_y}Pd$6tsEQ+c+k z1s+>{4eELhtv?X(A$4Xq4UMW5^&}K^EeOXmN)1LotZ`-xN8A_|Z@@rec)*nEE~Qr< zJ_38HzvTk~0)<7i;yBQEg3e{QxDB!t5TasMq&h#|8bRQKGpyk!o|UNSzHo*UCg|T?u7I44(Exj zP~4LU7M5r=5>$pN+~f6Y{f8&8Aba|#uY96*$%pC#sVaxyLD%fe=QfI0F@KoFfm*y6 zG#c?$BKZ-O3?grP4a>iA$>ce?F;!5x)BvHFl4oytaHk+^db8&xwsWCFSxNy7Y{TDI zy`(rx^=BW8IX@OqeL_i#K*%)=;%GQF_hirQdsD9Sw8=~>zVRD{4#+V}%yWe-C{x9# z34Ix~*d4m6ZOvd;pGA)4dDD9zEX!G|PlQ<9@n+t=DLG(*pM!=r$IMXa%w*QyNvFZH z_7rJS)jnYh$8FeF%W-WF)eMuTprj4e480uF5P0SB`XlS}_P?&XC(WzRySJ>d*DuiD zY@*|K+lN+zANlSX=UR&M-}l}%?09vtIy&iU-ogu>H(!6s)XvCB>gtPcjEc0U5~BHc z-DfsIdaALu6CsupxYl=|e?sshfHu5%jUh)0q#Rx=|G;H{XjtTC#XtY0T?P>>@t#07 z2}{FTBz=W+v40R)#o@KZLxP5~9vwf+9!eC*?>AW*7MuMiS-71SaBmCLwjm z%5AY=#)vq%6LTaNJ)yxBe=;z_lJ&d>OSYu@a2+BVuH@e2xvVoa0kn_=5#kIfD^JcF z(L8ka>@W@>b&DsDcJ0}tH1wj~acQInpP%E95e@YrP7dy&U%$$b5qN>|VRoj!_R*xI zS&KtR4hf8?toX#$gK{7eCFi~S_sMW#*!Z!k5tBfIbP#nK{8V`|m?c|L(vPvyj^$6* zs)}PDHA&T47cGATty&AxJpTIQ_6et4(d|3^=!D$a2tJ@0E)CntR6g@eE7!<^W7Cm$b^|RF>7llPBg{^sl#SW*j=K~JCRg)1++~kx z@|{ed`?IFOyzXU%-mgYr=*LCAGmciK$bL%;QKl{mQ!)y==xFfyUGt(=u8U|0kib_8 zftuGdCnTS8RGwEDyLyy&od)wCF|D2Rp_*Nai7M(p<#NK#^!Oa1GSbV;%o=Z~lzSP? z(0e5|$m~k!u78VQhyO)fHRyyPFClu;0QPlLpCIZ)NMH*3s6S<*P-y!X@Y? z;l+pdnFKQJ>V{M*$)xTuKv-p?RSGPek<@9Gh`{`amKB8!$z?@WKmIk;no(Q-_REGm zwAI98jO1N-jA154U|SeVbvsBt9-dHQ{p-Mjkyt4QvxKb~J0c zS6nFlB@Shznxm3C$i`M-^Pc}!xTt=D;<@JMlxrRCsvjDqF-U9W$~RH+VHw_W;E($n ziFG#4%9}41*S61{UO%8}k7IYUS!8d1C{AAK+(VPH$`4#dsV$oG zo(l9{M_TX5U+ZZ|W4~cGeKM*fIIpw7fLUqrP~N2p3g)eB!JCdysHIpodG459_pd)5 z;lz!cI{S$x@-oZKiE1ItJk|kl6nG|r#F)VGejx|O$n04Pv)!hclEvsVp z$Ta+}kH0n2qjE{a=*5F|1(cCYFgzMm_n4Q_lEO{GP=QgZAu5gpM2m|v zpx(uVgpdBLiX1H~BohcQ35oQ_@kb(yG2HrBdydex{5fX0Gy}6nyvLCDz>I`5h()2* z!hr3AICgMr@nYJoO`5_^hv`C9q(zYK?vw^;>F#c+-#qtT zKi~H+c+VKha17*Z_E~$aIiL9igdY8ZkXumKyr|gnK2BQM3IuzXf6i74=zNJ_zl71; zTYLNOpwPHYfT+!qLfFJat38^pLi;dAD%5xXra}Fp$OQQy$kZJZg(yW?npjxi#V0+13+1e)}%- z2L);xx=o$Tr!UcY@Rl}q=N-%cs7;K@F}6RMKe}6Py{Z!#s2wlxis$p`3W;sy*pM^^`WVCL<lW}%4G03?Lm`9+!3YqG#rm34A85@6kfulkZ5jC7&si_6n}{j(6< zJn~naqrCfHNkNK9WS_~p2>Z94Q?S3wi)t2>4TFc65o!&@2@Z#L6zaO|fYaBC!|T8P{e!4vN|QQrr=+QEHRzWggOA z9r-EG;q7W*1nSfRRwSYJ4{;4vr8hi3SyANzDV875ln-9Xm#ed>-wF7dD3dJpLuuxR zeXE4UBrQV?7j1jcAxm1Mw^1gxSHH|Uo_LzZteQ7%1l6GZZ-sX5+wFdp6W6}kyM4*< zx&A8r8#*QIWK1TqnQFIKJ+3$|Lcf~pRamG2XW921(VUy$m%uU$GtSP^&5nP`2tY95 zfPF*m?qg?Wh$?TC_9)C(C$ooa4xo5~O-KL&HGraud(%HV`9X_oQscU*MZeY?r8~sx z^jlsQBP~;cIj*%Eiy&3{r^g;vOw(HjGCBZ07>IbikL8^B6Vhhh^?BLf^2%!5HX}(+ zHVM|UQWaLCFPLwh-z!{e%f+FHbPdkawyLVvj}#c&#VciRC$nH5)uFi^-oJD$Un!rd z^u2W*_nmwf>m;16F!BnlJY75Rb!qP{nO0e89%5jm4)~Fuk^e}~O7zRUhAk&El(6q-2)E%V^#Ujm%D$+S(u9QL;U$f?+hE3%FN_x~a-{WX z1VClTW}pYlWk5!_U7d%@@t_o4&mg&0=h@-p!lwLN{k&+;>ENjO8MUG!1*6sl<}h){E3-@yupeS+FBR^20@?qG7Jh$>(92Pw7oe z1x##DkB7P^1EURGTXO}?uuWc)78>ayTeUy4^%wkmi~qUPC(BAj5u8;&stqU zoD&`o_CFwEvcoL$h#h|r*MipLLBe65 zz_`AYOkx_tnhxVJZ-L_D9QLPce^Tv>yW8}mjDNjQ&1CoadE$t}r*jE=j_}30+61n5 ze3oj|RhG(E*A3mDuSI4=`D)9u{ZoI?9JD?=%K81NLCNi?E;W_GE74_e?cs0 z3r`UjQCg-O$s>mU*1^ADl=yfRX39Dv_0haj3N59M>%FF@%$IcN_s*P8=2u=MzA{g967eJjtJub%VS3 zTE@Y{XRjT3cZw>4A+GS(?n)-!_gJk8_q$~rOzNXO>CZ)`sM-A2H9oRT|9f$P;r}bM zVSj3<2TRugYSkZVCnqO;U_b`Nz_zl{P%p$}2|)B4OrH=@oiP8-&{=ZYC}@MC8VIbO zoV6z@I!kvJK;ik1(igGsAe6rA?}ri5+6d24B!p2IC?(y38CZK@(pV1#CX7lKA^t7D zGLgL##JFDIJdbdggj`uLgB-e8glCKZbqQpl|D>tbda7*-azdZ{674!wW%g^jn zBc9{+A@3qhi?x^Bu>v)l_@}BiZ*AUYegE0e0)g1%+QtGFAF733Z$W16lG7C%Z` z8ll{OEb7$1v^>z?{sH}geRh8QB>B0zVVXL{-3K4v%3V;(gj+}}srE9zWVWds=xNt za>q0OU`81zB0|8b*!N5(*}K(>|6z4$gHIEScG+ z?1Qb*`ER0?R@Tk=U~T9Us1g$w=bE8SkD!|Jk2{FGQoZl!u&b#~qo_{gwt8gBQZW1a?*YVvpm~VcdkWPez+*5#K!eg~_KOXm^Jm1kX%?O+q)^L}bLG12yKc06kzIB!lHRZdLo9 zY^xX6oP~3n24NW@>wLYq*ABn}x;j_h^oI1V@k~OnZ=_F5Mz}B1vA1D7!dvf7*|1|{s@d=z`-=DFX}ePk^r8B&KkU7 zUKETV+G41o|4E4eNjn0RgHjG0ds+|!hdAAa+(W=v3&1c9j4l9!ZveX@m~-p^LCmzR@0)jAiy4BpV*%w4gCOw;5I`9BeXEg3=Al+ zV8Dc}4GzU023MTeo$&1JLi=kC+yjV5LUf^<-&J>NPQbRD5w04XgJzeOWWXBM@o3C+ zb+XFv*bc1h4P4bjvUx#-4!-<7FdX(_ltqvuKqfW6wx+W|VFl@R&`N+ybH_vtf^-4z zSz)t?1z01ZT!hiz9>kUo0PlqRWi4Pdpv<6##{OZ}5U>VC5H^S~XogTNRKQjIK}z+5jlCIy5v4>U-K3(^JP&z-dmB| z3F!tg&Aro{snX)(te+lPby!YQEQ$BkqXBc$ArnZ z@AuvRr1Rimm>5?1W(k*;M__;XneKGqpA#%MFQaiS`Y0h|$F0((Vt=?7az zWlC0KMfhXMq=tg!4!|HU2~H4c@rZ#IfPP?=2A{n3{?b!KB0H>})#02tc zmr)1Gn&_ja)EJC7x}Pe zN~`JyXzOGh{S;p+bvbXLyKzCAS6%7s)`EOdEpV&M%j~)22{m!Q8aK}?<{t!; zMEcKnbYlzej!_o7BvBgF9^7)z{{2CgbsR5Gvoitp5XGF4pFcQoU!(BsSw^>O6Q}p? z>Ud&UOw@B*1AaWsR*^q`>J}s(=Gz)^W`DwYjy^rIwk^w>YCH`1RDF=AdHTMs?B{6d zJr#;*ReC4DOIHQXk)1_$@Y#;GOI@mK#+L?Zj}(kiumc^ zJ@znm<+%xw`2*yCx)GC3NXnoKzR^D7C_99NN-IVacc{&)YQ~y zgI64!><9}(rq(g=Z7XD-UtMhn{1)LN2j`m!FbcrcEyAfAhR+`%daI$~10tOdJTwt@ z7oCUNHO_XQL=g_DKrIBt=T8;IIVeDldl1gnaFXH?vr9b=gP}B>XXqXvotpz=v~0!Y z9@MI;ZlE6aCUV-E!(MwogO~igqXWy=9y{ttH9*6FwPj=EHkWfJfu){eNkv|}5&h+Y zw5a16wcAEfPXtI@5_{7d*e&phL669Mz7~v7QS{CROGRDetRZ6S9EiFIr@Wc442)tCLvsz zRGY%gI$)S5I{HMSO9~e5Bk|L7q}IepxYg2tW6U8Xzj+WQ-E>IPhoNM$z{PQ4K_Q|2 zle#vYinA2^mp^NCLOvK^KKY|Ih&#+V)&AH#cb%kpd1j&!1sG z`31T22`*cLo#kMQ2^EVMINFAVgcuTZBNzV;vyTC921MZAKbFX_OU@uRoi4|fWZ%&` zcQJ7=X_pFP1mkTaf9=T#8QAO~8mA5F4*>4-p{@ZsDd3X8-XDNSCU_hWbCq()gMe9W z)OMaX`6&q^s|gNxlT*DYX?Sw7I;2k%0^G2#!t zGy7U^m3OYGjpyc)Q7swlN_bV1&rlit&T1;)JIXeLZMPL)z@pMlGUL9+ZS6Qbo87YT z_Zr(o6JBd`Bf=OCR*KJ_#UuBv@3;4kggf1h{QQw}VQMfe+$~O6&k|GUcDuPuuK1nz z7Uy+-T2;|qJmXll9feO+)TjnppU(R#>&Bd(W50WIh}46d+wz;d`;_Xl=ugw>yoK{9 zuW!@k#?clL;i(LhwC#4@Pvts0iC`bQVDiVTjQ8O~bb>!Qsy_a}Zr5ru{nJ(mo-@s7e2-St-M1OqT-L=r5x zt&2j+5fUPD)zFYmiEam%lJ7HsA75bZWIfx63Zna`kiP>}8@R~W&bQvMJhvLzgp%mAgmb=gm=A)`wWm;BMDEasi+XV zc}NTer#6i|eZ7tMOtSPsLX_y}=$#I0Kts1_V}JIZC9rXlCX8_x(wqp0)!r|=%J^8= z7fU+?s}V;-X9bjO6tl!?ykq{& z_N0;4{L@sD1*37xCKb|BzdzEU-~6|0t}$6DIC+-^8RU1~q^&pN3%6qn$kx@iKg`20 zHDyM-bRj+zrqr2yv|Go-8yA}8kRDj(B0`h6$0$F2QZ1K2pdHmdvM!OA*Gy)}H(q;U zBVZ=R4+s?BG477>6n6LqW=`u{o?WE6W|>``Gf|$rfvGL)J*z~?DAvS^7r&ydNKB%- zvjxjy(q!9Ye_fThFn51zVkB2$%jsPDOKnhl0(!Cx)pT4K6&8+$AS{}rMj*tu9tsb{ zj24nwlVGN0WMZPz{1zhTET^iqvupD5tUl3a49UXjf|w58x|KX(kBFg%aC*4ka9W}f zkD{QWquZYD8OSO?C~1k`U@6vI8W%XfLiHsJ-bGOFy#yb2IBE%LX?uZfh45@dIFrIV z&H#L}FtTT5qWr_F``9&`_VFup^02*Bk+hASen`f-@ik0K=sZ?``PtN?t?5dm31 zzZs*?#Utl#{{BXZ254R{fK3L|MMxV!&~N729aIjSuyAp63(2luYp6*^!#Y2fsV!}L z@U1YEbu&{*mPZxHJzMdUoEXf&VYocPY-QP=GyPvR)mdEsBayzo4Fb@|t z;TyECz)-a-zalSwOJ%5bV5w<$K(L(iv)>K(bCKLKc80M6{F5zD)QKMUX=cDRe-*nk zQw-lI;IE{Rc&KqZu4GxjNjPTtyl2-uy-hhw&ez$wS#@3;xEU?(?jK zPY=x2No^QyIh-ersr2Ha9XDGyuZxOQMCy&*Z0Eg6%ZZ0VUcquwpcXd;ZIx@tKSji z=Rqw5+y(a?gi_7;_Ze8om3?t=g#`l+CdtO1!R`U7r+RP=L_`h&{Y^SYBQ;N|k+2>> zpvSVZ&*8X&B`~d`n}i=JhguKyh0|iBCLB4CN>5s^f-|av==Pvu>;0Duj9?(Q=x;+q z{d67}aR`bw42r#h4AJ6G0u3@q3)E69{sX6==xzxDF8^03v!Vps05B;B;vm@FE+Iq# z@Ta7j4}wt9@Mz3cyB7O__X+ikrFI`V&nqQN-IRw|*gM0J8U{6^x;75fdKzVhHMV|C+m_ zy}JX(^elOr^p&v^QCxW1QL;blTGC}7o!k}qfcdoQSC%ZTnubZ!^28sM_H0SC+=Z%w z`%mXSiUwYH6+SgVsj{sm+nNelzP9)F+nnj`485MRB_gHEa41t9BCiqNF0d%&ERMmVeinGdfC3;MWfU0Lke)XP>68c&;eph4EPnl80La#S8ko0QZ+V2HUX?1CrFV+IN>4+oir7o z5hL~pcKvf$-A0J8Hy@vCs2Z{eMG`xESLV9XfinV=gAyM!8otol0SO&Z^MWP?36jfS zRMcAhK3At*hjjBK_p8em|Fa{gilO-q1+M%JV4WjiGq5+9typy0p;#q1;sYe2SAS2L> zl?p1cz+5~X5E!u7kN%Pe1v}}7x)saF6k<_%C8cNOe7}XUuV3*H?@h}p7kd&^iOoE* zRB5>p&^KCui|*5%HBnt9I`bsKVxP|@yQx90OKA5P)qF%|Y_P4jA)dO%plv$!fOV_n z!+q|M8Gz)HU2fT)b9er+ z_}1(82d(aXd37T-#x1X{<*p-1-oi`2yYF3I@b2ecXm5PU`W?y_bcvHW@VPedH_^h_ zbyK@`yt>=AqOz}<1wx6N3dSp*^_dcycF?tb(M-u9M1A`8!f}GlBh=0=gAM-=Z_kal z2b;aMY|N)Dr&P;(VLzik8f zV+C|#cR$OCh2-kA*B#@=4Ma*gFn<9Dz^n(jkDY!CS}eqwwq^Xq)8#X$YhjrJ1rM=n z!LA3380ay3U?n-XwbcWYtGm77NlQe8gevC9@=7il*5v2BY?3uL4ZqnshmJ}{f&!}w zpKsbEyx$_3Q+(EJRE@5|j>ROGc4(ECPD3Sse$E(Gd&u;edJ;GiS_)AKL zSE>|1tGSN=|B$w;_k-|{Q9a!;U@lpw*-Cr-qAl!KkSul-u~}6!9yO(%@phB}Ill#A zs4gxDaci>n*@jr-0*q^goLPG)m}@WVILobhS949H*dpc5W3S(PJ*D5SSr@? zTai(cPrSbO#_ed%Tl0I!+XL`5pG{~^R?>x7?2XG$UF8vg$ypHm?8Fn%j>$K}QIJ!Q z$&)RViWQCHDa(ZvN|$9*m1Y+V zbvKdzEx@lyoGvUbazQ>xQhiYRcL6COymHk|iA}@-9JQRx zW92Rz2E-}Es06HYclsppCO7dx#lou$CzH!}z47D{4UL47p}49fygM7*+gHm3Gm|0H z(H3(xwfoxq?o6*W^QI#kGr^y$?)wM(!+5?q-bx<4*+c#-Nfk$&%Btdfvuj&&^HbC( z?|az)l#na^C>WFrj7MeM5Y2SOE=m<&9v5TUq!;;h1(Y1&z@3JA(^~^TQ){w zWX0aJ-`}NknU&zviRXHZR~1qT{ahFN5F~gDn(iNnfTUhW2R^oiQ3`zGRfx>1CGWnrXuSR z6zUn;6@w*T9Pl-}{_%Q}TiX)Z#NA(MfB zjrrDgQalIQE>I!_dDNJB4=aHB?Zbz&y}aVTcg1Fr~wq#86)ialvd zFeszD_;usUz}>f%PB%UE)4ihW@G^O^AC*#~;Tg7>W3J2lxnaR}wLoQ?Dx}ZBL+S6xB-N)16cXAhRUQ-NA9z`+F z@^p4~cU*I2dw@g#?<@1g^@{2<JG3m%t{ zO1~OnVtqh7^qE3LG-n!HQfJ3r8$O6kG7xHmm&-qk zxgr^cviB(1N*%*kWg_Kwh$2zR3B&G=ycJ=>U4D^AFCuij;H2Gi!Q4D@^U$*ie`P)x zziw@ZtI{BC8`stzE4TI0{IhfQul`m3Uq;_NmgR1Uvhb$E*xA|r7#w^v)7v{m_AvI9 zK{_VA8IMnNf8N9S+{}$0s%M|Xf-j;K=MN6ap4HO$el=%fOvk~faF7POk|ddKiVPyM zkEF?m_=LotDI^Z%jERg-n0uceMkLO>eGouB^1_gr>YTS@^Dr~kwDd_E+J1~bu4GA6 zLP$XZ9VIKbSh253eLVTd(9BF_u{NdIKO6CLgaM;_ z9W~jh26rY@&R8*>i!Q|kTWZi;dFzetCi!U1JKIm~uCxYL)!dfmg3{_02RJ#t7E$~8 z?JadOk)dV7exbZN+!cz5-49-wYBiGfpZqSRmvSy}S2YRcsc!x%#`UpxE~cW-eE)}U zEy&p?1TK?H8Gkp#ib!~PZ~CV4r z2`s*Tta)4(G!nYKuzUH)3-dVR;F^Dm(M$B!U)S!Rg|Q;yrA*R#U5r4P>2T>$;;p8y z${S=kGG2Va6L{`bemntXkLjHbi{W$`jow+)x8)2YFA9$bQD})qOgPBM6=m# zcXAQoot{4CKJIEs?-m%>QOA67Fk~72W>8=9l{lL4!tS%g7p*I|1B+jIKe?8Pf@gj2 zyT4EzwqqRa`f0O7KuPhS{J-Q?WcQGM$Lp zI3A?vYg8hlE#B~28XB*7H+kKb9am56!#fu=sT=r9s{ygKw=i}yk==vckDV}JWvkiA zhJ6I%6JR0LTb4D=zJ=-c?F;y*F#}~#;HC_j!F`#Xokf^o_di!geF;yV-&W6F zfw%Ki3h7MrLkWTA=_n04ipAJJKDY%s*Q;*p_CJTL+kajxjj;Uw_fjTd)Od&V&r|j9 zU*D*R&i_CERLB4S>z^T|DJUoWf;Oj|)t9HlM&EU3iiJS^L5G4HS5q$_fuGdBT+54Q zg;%}1hwWH=;o*-F^Y6oe_?wmG_DQGmU`3NaArF>zj5Y_r=EVYob?7t}20kAmuVsl~ zFXtslRSVw06$qeSPe1ldS3rkz%biwi5c9Q)g7V+HLqISo_+^IkkwQDJgoc1D8vFMH z?oa7F7Qz*%y*J+D22qV~;&n)it>*I)2ozYmlgr5b?`FL-ec@S0B^Yu082Kj>_uX90 zbIpii_WOmu?&j;*5_e;F{p3jfzbp3JG8Z-~qZ*@XDa&Q?Z(6;x_*gD+tV2rV|2`V0 ze}3Mk{lf498y!-ZBx|^%oT^DsVTbE~Pbqw{!6Q0f{F(gS(*TW8R@y4jCMq&K)p6VN z|K4cuC0vzk*xvOzoO%}ZODwmTvH$!3z`MTgE*NHvS-6KQ5~6mr#i@uEFUqg=e{aBg z^T|#$gT&L&Dt1X54fyY=GOGQz{@csoS}(HhH5jxnmahD`Msn^fDeVib{(rB7yp)_3 zq|2vNg|Tw)$rVf&6?e|a0{dLZ=rBA}n(U?Tih2J1Rw*g7dsR9?Mrk)rkbiP#N(Cf5 z8W+ZBBgB*?C4%E>;S!Jg>(8Fz#@Pt02@ZOH?(>>zWoGv5l!v$fccq!X5T9FN(mAn? zb}j|Uxm$t+*|@8bw6Dbf-sB*!f#!Viu|-NPs~Y0u`tPND3OD-MkF1&K%=%kZ|NCw! zwc62?bhveua_@cPF)x2HN^Y3H%e|}TD?TN zzU3ZCE^E^m7VmTLnOJ~{`9KE+sXpWQV_r1vfle=0P{`kpCu8qSlj+3xae34`8p@#U zri6KBeA}aIPxw_r!xNC(XFm>bNTd#krw%-XkVW4*eor$E$#9dv{?%O4SDJO0X1-G5 zY-{Q{dDU)W(F0p|4vtr2+E4Z;^s^@lsQXP*p3BO4F$ke6WZh6mzaA*_vGtXQX$WWL z5VqvHiNoxtExZ(EEw;!|wYwTFXbJ`*{=B}&vpb>T09CHb0(je1#WERQ2%*C6xmn}-f!uN8(za%FA@i*b8kPZFJMcz<~T*; zXlbPvx=(~#MNOgnvEh}tk|9!~R}(%BvA>^L34wkM!8-~`?`BrXhff;G&kJ4H>^CL? z0aXl%`GWgM1NSQ*I-{&7qb$A@flfSHias`;0q4memPGe=yIrkqea8$v+7mJqHpa`w zFGZ?5ng_Sc1>Pg|M{_VR@ez=-++Hv;YIXXx6rB)%uk^U-75?w8MXgrXD;m;TKJ>9M4e8!w z&=icG?aLsEd#kSoLZku07#8;t&bd4ttDbEvJKWC0OxFavrhp zTa}4B>+m3n+LFZlFwx2p^q)e{(ZJ@URYbgJQSI^UzNvxa!0)>q_tsKc()1d$#oQW( zr}-F8&v}iQ<3htj*0ah*XZA+_&Us$SFR z#B7{s6I{>qo=v$?edke)$-7BL>@l+J?#EB_zIN2Q*IkI9u3Avh+EeVC3GZm3t)c9F zN!G=(&ZZ{6KcP9hXAWX18cME1Bi4`Y2j38WXzt`E?q0uWG|Y}E(K@VT&ZTJ`b(m^c z+-wU;2+OUMGhmUxpP^j{_Hh+5oQ=@V(9Mzfp>N>xF{aMl+v@v!uM<^G!)}&~8?ab7 zKl0^xaphg1a~`{sI_I1@sF(|v(&T-P^H}%gtT$o1%q1*=v@Wxi zKGgWkHLp!BhE1R&1qh<>-NbE-+`meDqGC?}2Y1g_e@3^N?k;{38?AdRJ$}aeZ znYRM?wmaduV(rJxu{(Qiy(?!h>fzHt7EIWJO&3-@rf(>{`42`2m!l9T3(g8u$?-7lbKEL zaQV$x2#i}f{H4_8ZgHECqfLF(l#RK~=l=R}YOi1NJ=1R*k8%F)xN4`91eljk-aM!b zb|yY^*9y-5++|}hJv66Ja=LB9(9WH^Ar#m)O_^?1E2%OPJ@H&qzoBk%6pj6INB0}E zdQfvZI~cuuYH=W1Hk|rxrEc&jEPiEw?(J9YBJ>#Tu{5$|wn2A+tNWXF=3kC%D<-*Y ziw+ie*kcdG&huT9$45GT%1Umh`@XyiUI)5@I#z#0+w41f=Qb|k^Wgy!YOKF?g1U;j zXv21h`O5w|k-*_u0=MA#FQ#0R6E>%`x~AFs0+R89(}mlMwoFx-e7EJ;z8ODuwEdO- z_>;U!wT8BQIcYHY_WMtg(RdlLSA)g;Z_Qd1T127C4Z1#ECD@uRYc?MzT9_D2mbKOTG zHixL!z1v~svBSB|sOP7@h*Y?odNlo)1>^bD6_xB+<#(*aDlq|c;uvu|lWR68_bK44 z!R9eU!mSSl4EsuqeU|GS8U*qi#BXznAb~S zko3$>!Fs0Rcuzvk*?*4LpTVF0x`YQE#@h&$LwgewQjIQMPduL>U*D;+=G}hGbo`o& zjLa%R_#P_{&i7_$P3g|~!sj(f_t$3MJ$}0|`aDQp%A^`I>f6DK-gJEFz!W?8(MpWy zGFnZNqC5UO*qGvPQ+0N5u|Gy9G8cPd1h5b-eN_9V|5@^Ppi#?a+%H1a-G=D<{ieHK z{!29vPG2$_$gA!y@sH%)Zn#fXAd`|%sy~Rwy-``(=u2Dk3E6_yQ%3b*-bf6V!=^jC6VlO)qJm}?~7d*+vE|704fKo)Sgk^D+l4r)qqjq zm!DDsNmXC4ipE~uh;m=h@x1b~s`V6P8CqPQ?%=GyN#MHGI?gE^$njK&zOU?$#mhnq zQmX2=NVXd1{ucqm46A0IdpA(EAC^+OZ~xuoR(jN!Tz1?`o+GPpWUN2R={Hl(YtlQh zKXl(6$y0VLna0N0$L8d&z(aD*A$aX)jcZwhMZ=bC!-Hebqsvvyx)3Se5<-$28SYR#jlVglm^IY z-x{$Bjfii`c>Wq`PNpZIp`!S>P5Rzj(Wh4Xg$*szxiI3^6^)iz5hG zzS5vKB$NF6hZwD~obFQlzE$E`>TX5yCWV**$Cez{Ul}A%XLBh6(E=Oauq8yND|atx z@j8j(ZcKlABu3@sv#DFo)4TNZVb@l;KU*Kl8y~~V2o?^eecP7voVHK4+5SVN*cr|Kre}Q^ed~7q%g7b7OSEEVgbj90 z#Jwdtw)w{ExrA+FIUT(uAzu|X#N1SNt989khZ-9BmtXY973opbUGA6|O(@yxd)&cz zHMmT}gJWw!G;7lI;D(G6it+RayDA##)~M24dCQv-dR>X&E8$w?+AsGm^d=lMAGO#b zC&{N)B@MBiD|C8v_mGPG{ixNHVCZmV{f?4bHKGI^*&}4DSX$W%u+n>}ox5jMdx2{AteN=qy=R?bB8# zao%u0ceaavaID$o%5Ex8~*k$IQdx6x_hdGB25i+v-8x zJ}+H@BLud78KloDl|N_nr>8hD_cC=3*5KJTL5n9y(KvN@(3ZUAq5r>K)>ggZ`qi3+ za=r=6o7X8rX8q^0J+DY|tDnlhCPcO4EbB2;sxjF#BiO;xNSKNKS}5<@wVz?$fTyi; z6np0rOJb#KX;w~%W{Ai&rvZu{c(((cDnHY!h^t-NV0$73w$_x%rWR9UAZdrq zL_BkkA1Yn>ke%;2oohmHeE&Q?_T5LtoJKr;jvx^>^n!NH0P58JBPEjX0hZad{(zGg z8|bh4)2L;@5%wryI_)GEL$f`^u<~n?V}kqSJ;#-RX{v(X_btzu?=w^X(6)Yca|+4X z8}o95n27MHH1jFvgaCS$plUxaa($iU9p}=GG{>oKo(DG~+-@6-&r`7N)*j*ILhbN^-2g9sRz1XKBCgZzr9edWAL!JpWQv^*1HWL1X;^#Ff zl=CJ@>%|=>>3ym(K>^22c8X!v%B%N}YbeUgFEZ9fx$i@^{fS)$Bpd|G;w|D8?I-(b@28t?juj||(A8|l?0g&#$?#WbdN)Gfhy z4;+}}wQqS0%u1QWYWK$qlCr%Zp4=Yvl!ZfPKpO#v`q{g>Qm`gL(J?Jb;{a10VpwjiofwZgI`c+ ziNn`w)9~Z;I1U5ajrtH5^!m0YgTq5B#z_y6@l3~rmI&kk7Rkd(v(X$rs_OU1$2@B~ zEA!DrL^Js;@;mFrI>noP!<(bmC7e**IsTco{d4)s66&lCiRQ8%lFx_kBApB?P3fdP zc{QlEgF;cpcB0OBVk|EEOW$Hm*;=C3bHSMgd2K79T>b51CCfM_RIX7Ad#%lu<2KrX z5?WIAGc3W8h_X5s|AEzyEZx^tV=)VuU%uUlwmA8=#QbVB_3qSp@2dmzeoD_qT)kz& z7tec@FE6q%;21LHFyPqR1(}{SB`;Fa{S|A?_}`W?N5{{{<-~#tV;Qo+5aOQ~s~98( zf}9Ze`Iuli24h}e&ShxiPymeqDJQN%nU_(vu_fSUD0s%fkAoacwLE=lP^rA?OG3u6 z{2HV4J5$Y5jNv}Eg134Z(#-6lHd_B3X1^4F#`vU6-^=bnbNru$g$q^eol4DPK=IXIkqSrBXXFEE`4q{*&?%VS7_<3fS zHOY?s-{TS)4J{yOQvE@q`y3RvF!l8g!p6W52M!?@SmGee^d9hfcX5OnlfN0xZU9Xs zBDa!}iDZg(3Zf~&;YbQtyzkx=iO4Gg5kyVb~r@cL%&!oe;6w>eWe=@lK=DYf?6RzhS`qA;W$v!$P zdbunM;=c&FdJ&koKt3577=g5bud4qO08GH`Dhl*RAOT7Or}C4dajVXSiN3qKr8B^= zYz4I)LPAUuGlA{_6D_cQqX2=aG+4lJ0Y{}w*QzR2PJJh?kXxOJY*R3Z+fN3SWSoT? zDQEaXQiLS$?D$rCuA)+P^Yr?ixC|4b0qc)-v07CQ^fhFAx)wFfr8L}aR9x>?o0*g@W`ze;>jmf=+r zkE|wz$jQ)TdUCO6-FplYhgObkzO1=#_mD6=-&oa0Fi%TQ1WIL}+7NI*A#GXD2#xyc zV;o-hDC-Xa8OfJy%txm}ARK*%{l;`4TYxLpD8WZX{ zq1IK>9GVgCm&rX=)O=5^%+T1h@~3q$*s8nL)}YpBCU!_Jr$k9MY@U$oG?3+)=7Ki#dhTbQ|a{nJ9U&zEDU#x-fiV7jr3$5^qK-~5An)0<9Jr?0kpT z842WRR1lCrKuep)dfT_@!y{T(9r|tqF54ov_Fk`wE#aH%O`vhJ3YlmNw|y zPMn-1248=e>&2-JOpi9bl;}^87v z|Nq;+td>>D%qpVDmc3F)G9xoHo6FvEp_I(X%52zWW^c0hjO;zK$rktX{rT4KIBtJ* z9NFI2YdqKaIHj)e=zVcjd<=f2V}0c?R3 zU?@T4^vSXkF!V#<34?+Gw=){xaDdFgFAjl{7VZh4+>h;Qz=;C#ZK5DrQ7RbP_xowp z2n!Dp;DR3!i&uz+Y6dRmt=`Q7>B?!h_ve=$ZP88UDY$n|Jp63{Ka%Sv`a^M#J$OjZD4kp(0l%Vl$ZVyQhWImsNqg+38!1rvFr zh_m>AQ!(7nTNJm^t)dMWEL<3}o%Q6EcCzEqP>UJ+8$;SR0l5I+%Wpu589+3rhoJuJ z02_yzW%>?lEEL3#1B3Vk1og1jcg35)y)e7K1H*yn&OgQ;Lm3H2r|O+<*=I5nhx7BT*5N4KTG}U}GbUY!WErV*l>d%n-pcYFWO24B$H;eF&u-bt{>oh>4VNq;J1 z9+-IHkz=Y(hOn&J4BG(wCUi1N>Gui%gxbLd|>}nqa_j?G0 z-5{w*JdKh5Tni^+59kYZ${f$jMcu9i*~XkoIh~7I25vR#l9+){%~D&yys@c?(TQ&g zY0@OQD&sFaEZ?}-E165R9BtmoH_vD63Y_(O-W`dz($4A|12rG@Sb(0_g!kfDlYUuLP!KQv3Yr#W+0oqC`dm2R(Z=Ap zY7b0R6=wz)b(hei{h+eb}L& zKrBGPsgJ5R9JU9s-bIkEAzm!{oD@nhCd>=y>aegdsiH4o#+1P0A1bk903HB6q>Q{~ z-ZHdqxNP93V$TLQ5quFgs-m(Iq$R{;g1aWbD!XrJh^7Srhn*Sd=H#|@E`fysC}yUE z`Nt)mJRt*(jW6)`qXcYfeesa97o`u1uEn3<7OagLLGqw&e`*2&D+OphLZ}6?D^HTB z!vK4RzzxBa4{q;AvApNMsOP++sN4QG3-DxfB_ac^Z86x%2Jq~(~AS1(Dpa$|01W?Oz6vAZ>I5f+Mn@ltoL zP^)z#qDaWaOBoJg!W6~2IjAg9=dsOU2YJP^%DLGhInCPqem zfLa{H;TCW0?KOd7kIR0x8M`_ZY<2-nh}OnOi5+j;LwJ)h5FT4EV|kCEyFyDL*kotk z#~d!D9mkA=VaNz=@lPuNP`=X5kpY_O2iD{cCl!^;0Bi+29%t>H(?E_Ye~=1a2c;(5 z5DoBy0>`eD3Nj@qL}OfPJAfjQXFFAQd4)poJ_8aO@>0e*I4k7LABqv4s{*v3B2b4W}wTy?c{xDyjLXsN?J)H>HL zeoP$*LAeP3_P1E0R*Lbt(!blNt`VlEOnN-QrgKKFY^&Z)sWSKSX>Q5AD|gH^*U_HB zYxvY-`B!-`aj(l(uipD?-_f5uO`MD#+|e~t9aX;UA#$dxBO#e3HD8Ip01FEBq+L8| zaa?Zm@!bCDu8&s#Ha;Q~7-T|b_Z*4w@xQ~7h5%~yVUJSqnq7oOG?-Gqjg5^JH-$uH z5iC5A0XHOW129xQu)}g8o<#ybn5Uya>^^ez^k&PDmmNS3-N02raC)xGS;gJ(yihfu zY=#w6fjyI;z>I{uaI9XteVc&Ja{~*6MX$iB%>W3zW)WcxV7SXp8P0<9T3> z-;$J+>;~KfocJFAlC;0_tqW%LPzdN}alBF(?#fs2^FM*?d$B)*L?M1Z?RkEWSv>?A zShHwcY6061Loq6kALju>10?~J8>O7_)z#!^HtjPD6Kn~0s0gDt^gSBQ4?S9hyObbtAsbgRIOgTvwqAbS=VRb99yh{r|=$cP)W>{X_ z4JCW}u*&G!$fo=QPSU4>>nsUoHSZE$8>|N0ICsAK4;iQW(6>PG`aSVVT3;LQt@@G< zlkZWQavQ5f2bt6Me&Oqd$_s%XqzfZ*uC(IPR>UQ!sTI)$@U2-&p z^DbB8w%K4djY5)GFvJb|pqWN^*T~-vIlCcIa^@emFg7|9tj}qBm3NC$)Mk&;J`}s*yOU9 z#vz{8&g#oB;^4Z$Wel5Lh=PhsYxd&&NHTYIjw9(@Ac{rncZ3ZdCSQ<f<3s55<-{+xv>z6<|~>U7E10)qO)@_+`CD#?-YJ)^Zln=$l_ z6y?p2m+-Kz-3b)8*75c~o9LO|eM(Vs9fsj}lHz>PT_V1#raDK&by?Xrp4MCy_w@aN zBQ$k#bf|yA+Gpo=q^u*BwPNK>ekhK;F5!fcxy;ct zxxKyp^f?HZv1Z5bZv6TJdI!<56b)ldY2a$X^xK8tJEEeZnC(xw8hCdl;PaHLy`J~O zR;|C|GkRYPWmY(hUAYZ32EuYtehzNu6%EknqG}M0G~6)Pu3yK7@DSw<`lm?{CZ0iT z(+uD{!~JFDQ=uv$A#rkN>&NZZj+T9hU9Si+2_7Wz2;94O55@z>-Iv)=HIQz>qD;b` z2`roW=)N;btu5)h6`!o4w)XZZ$~9MBufJ-YJ?6*i<2w^3#WSrv`1_lMn)|DPc;~Ei z@Lim&f}hA!eKyXrb-fz=AkXAl8(PX!OGx3Vf8$Svv`ZKfs;Hr7&$RNlY!*q? zzFpH?!^M^4q}c5Ir($Z!RM~?BDwfcszcrXohWBL_$O!l>f3(jD0=N)`0<1B)sY>Uh_0-c0Y- zfa}4#rlv+EwD6`|95INx@rH*-D{k3s`!x79*e*NV3IaLJ_Vx?Jk!UxLu4}}zG_u2_ z?Nsy2fFaQ0k(wAlS-IS{X0c77I;Nm7wVJ(6^n)#H@SA`dcWn--lk4dp_03VeE(SJP zx8(>C7yy0NRDVs3iD-e3u1+g~OsJAbtCD?>6HoKi*t|DeQxv8|(%>1&x%_i;)AqTy zYHCvfT6+pV*}n7W+I-BHSES^aaum2oM-x~db5)?sQCLLMbBbJ-@Z+UIgWp>(Z_73p zJiGqK{W>=~x$bftwnJvd&|U?j&(ud(%>Fiea3l?$jT~oMoWZy&Drrs3@AOC9i^IL* zM*Q!uCQs(~u62Lgzi_mi(L-_AD!`cjpvvRW!$7}0d|dzr2wof|{R)kwdw%vce$r7L zgf+>H%nUoB&*I1S$)9+foJ&Zf{qzJsO9AKZ6?$P~fmH>8uY$S8Bl_RwYn0nPuHSmJ z5%`I$@|Bpkt1uz~=O$TL zJBidKByWU3Hy82_pq>M+fgExVJQOIFMfOG=_JPK~^<{Y5FiY(V8C0jME)RAJ&kjCy zQ#*nvuKU(TLDEKE%H~>HT3-06Aose)$T(Z%`&d!2OLFkx z!-r+o9r-FZNRCk(w&gOMHX9s6M`LuE?}GRpgc59p5^}Wy#h(>$=EukR-?oc~_69wQ zDyy8*-Dx|rU{`tI%sD0Hw>e^cw`4CrGG~hEedI5WA%umc@;qxAK%t{N75sI_ze>oW zzio8cm`F2mE8b_=RV5(e7{*=iM#1c~q}gX%+}D2e0yT8BXBfEix!=a38wYrzFS^WP zhqE_*Us5_r*vL{N%vvsVFkgvZU^bj+wJver_iT9~H<>H^)*v5+Mw>lUn0vFmN9Tc6 zjj6oyUWOxGS3SyD;}K zVEghxIO8>dkBh$t@S-Wul4}g}^r3vZI9kd>#g7g`!dReb?1Pc`1`<2MW&S{3zC+w~ z510-V00aZ8iCovs>EqzYh=_>eC~@dVu{YqN^78WhnD#CE)59>)cgL9?Lfw0#SB?V< z1$BS-k$vr!{P>C3G{`4zRBNC!^C8LC*lKy?C}>a1bu_T^fa6X+L5trG-p!o)Xe@u0 zc~T8^)x<06hwhp38>~rB4nl*^S(1g=G-4*V_QP4aZpivJJo9OIRvWynZg=h1O{go$I*;~Y-|%qpGMO* zh32$Nm`Iznkmw|vyhvfZJ^i0&m(7wNvmb683>{hu$Oe2H~Fsx@2r@c|d>?kn*Bt&pqZ_5R_fqjYWCd5@@ zxbP@#sNanDlW|*A2^c)V12v=;_o9ZBxd~+O+f5L6lRs!*7^_4bZ|jy_ehd{|aC3AW zi2?V{Y4{A(iFpnWL~qB!7r{m-UYw7Yx1gI(5~!pyPo6}{aYeprO=4q{&b5*EE+h-&x_ioXr|2cTG9_iE*Kv_HD%S>9Q#WRN8FJjZA*02-uz-7G+v3>>z%j8 zsNw2?M&-{ZmM7wCjC)x0C1?thP!H{%_&ibR&utDk2Am~Dx0L2_osw!f5?!zElodKJ z3F~}xZD#-9!K0k943;1$q~8M+JWSY3yn?A$imR^ndxYN!r$U47#FTBxz?nl6%7y}p z-L0)UAo*j>J}F$-319C^BgVZe0ZdA8dTF{mSWr#6{~ApH>J7#I~^(9_d<`SPVcG-8G-J@|oqivXX%Dw72AVj)Cnw@FrKy@6&jcj~!}RZ<)f6x42$0U)$r*PBMaLXLK@4)7{&@B|4v)qo{&p%NkQ zZezTlgAov%!K=Cz^rVH>V*BFwAB)SG1Ls-YY$;yy6hWpGBP z_eFTdSQ%UqFMJq3$xrcnargMUYwD4iG0B)GW^8V5?#*jG$`FgH?7}N$KRMPr?tZBq zyAZFdtK44|q@^6Xo~kI5mAcbk9Lqw?a_aR@5ZQCMyBY|q0vna+xg`sDtWmysFs)sL zy6TA$WQG#1t^zC0!nE#-A4iCEI}rav=)znAm_W+qWu)Q+NOVb~c5UM3EXl5A?THdQ zBVheepf-ShXaq~!uT%8-AulcF*bZ@sEEWY)Ez(>83<^FFlI(B&fS_@9ZyPF8qMb<` zL-VBoj6#Z(5YYkx7wO9ZQJL>_v*O_?l#i|fE*a?14X`M-lgQtWOo->KDnW5XPUI#G zA>u%x3Kw+@l`eSU_Nep7?9m~Q=j(uY<7-3x;t#Fc7eNU<$ zzTEFGq-IKRb4>Oki}@?Pw7!o6Mq{~V(^d@*tlSw8=5?d*D?Y*u??g%R^ZcsJTU$=* z?i0F_Hn_s(7+qYEZY~v>CSO_PifLr5I9omdDx-ie}0o7$t0w3AArXO-BzS14;89hXzKWX@`uy> zO3WTuc22^fA>j1u3et#!;tOJ$2n`GgL&NL4D?eXAZy5_k>#>rj61e9_u3H10CWGP; zF7Tp-l(nKin-B$TEH|&ZKXA@D3#KCO$Ec0@I2)w0fM@RjCOiP)zCQkZ?YAmC6qi7gRg!fq|I`6o#mt5 zM_)~bbn{*uv(cr*N^@4?V?tV`mcTFJ;yzr8vN@rPp(|BeR!teZ(|MmIibJ;ngpEPt&NhL91ge* zo=m>|0SzCd5aSA-xp`o3Wi?(QSnVsO7)*5ssoVppr+hysfE*f70M3VpOM~nPfNJYb zZo&;{0E-!__7Xl5XK``$VZ;G>ct}BpTF@RBctE!}!Jz#r7&ABLlyMNkE~|q&4PvwO z6-*tX}&S+dKf9{qZd6)9h6dch&gN=Tj|!>uzaxNnm@A&UY1jHXsok(P$0p@*`VN3bbY zCC*&YNQmrB+510A+)`X`84pOCL-9w;G5S{Y!IZ5jaN2MEK;^Rqs3x7;t zHF$#CDgaFKV96^O0lP)g&W;PLD91X(Vq;sOqR1{g%*MhpUAmBnGyKlyTYmoWA1$m> z1MFjzOVA+~#>0U*l>KSVlz5e#lhnYTct6f@U;gDk+f`a^+OxRuGx12cGeIb@X=cf1;4qunVzKL}Wu{)H>Fu3$%}y_^N0!6` z&3{Y6VTlO7j)+ERcF@%uw(-07?`5HjT|9#rW&$Q#0KCMY6T1LRDd?>N9KROo|Kk}} zZN=f?;jo>~8XFr|?2UUwL`L@X_DVv^f9uw*AUg4raMuR-u<(ylYtj8|D97}1&6lqy z@S0zSmp8SbAi~!d8)9EG3ybSOzK)2vf-YYzYUAr6#K$*+{&&Sj9X@1kq0`fbR8&;9 z0@TpRjRk+-w(KT!vCG${B;BAVUn0R|cdh!=t3sCpj#4H7Z$lsFP(;QB%9ir(?m`_M z9VpODJ02aC#skV3irWDrtB83QnA$>BLg-}7FfZ3`MjC-v!P#+NS@{yWI1Zfa5I{MY z@%Cn@UM$!XeIO_IIW_eRQt;x2R>YUX#47HJ=N$5dG8G3sL{XyE;k|pID%wv+Sbvsu zUStltcg9}bgvu?{^b)1}Tw`V_=HyNrH<>f_Oc`#?bD_lmzY;RYR8i06h$C+{D>0jG^%(*ptmymz&+0f=2; zBFbu$PH?gw8yhY?ynE!jyuogdsSN8|e=ce5b|;vS5bNwR!FT$hDSAdBg258TR8f&g zz42&S4ciFCu92)K@ly&~W7aw<=hZ>zjb<^mF^uqdm{#T`vncmh_yA?PbnIdk9UY zvatxL#KYaTxeqjdeUC9&kHkA%xK^BNI+o8*8sOXiD~*f zC3VJ4aS8>kL&X@U1)O>rrr*uSsPBd(Kab+XH%COZHOoy%Qv90I|CGfR71f|`P`tWp zW_AuIeEMLjdaOa%O*`W#b-YU!+a27y{(Eb7Dg-BSfOt1T0+pVV!wdk@8*)(_fFlR5 zh50_};NW0rdk3tntc1|Mbs2YKhO#TMnLPNzc>-$|@#dVLH-T=rynzAm+yucLq&rOz zQdua*;~;2-xlfHDG;J_a;NIbTWQ$|E;iC2!6LKs%;ykff^g^1xoK%)qgGKDPLEbqbil(c4??HlffZpb2~GJMx+1O> ztF?8%8qa*FRP{>!{D&pTJcc5M;0;CdY~H)`L|cDiWz{i9h8*kUg)ZAfc|Y^?M)k=) zZ%gAB{XAcE#z2EWlA36ZN*M2pdG)iZHbKW})Lfz7)TVoed1hM1&)~u3lqzRo+Pj%K(yY6fhA%H z^Kf#_e2;T4oA*^CM))<%K_llk*WyIfMV(7~5%;@cn~!%J$f;iz#YpCDx;3{i;9qkG;Nh zv?@l6-#zg(-U$5PVta7fH$2?xi-+%eFc&Q>78o3C3{7-!-$;P?9i1c$0XLGWz>r+> z*RNk^wqXJgSjh|OEg!Ps42RVP&dvo4MI^Meoly0E4<;Ru3NG!IZf)6*yUq{-Wc6o{ z68Z4e^(q(uy1%c~TFLxp40pe}E%3ENp`LxkEN&BPn}E8uUz6o@WlSgfTkQQa!ghW# zT(=vgbe@UWDc|ENIi#AfcVZG3i>zbAY%agwPmU9?*B8GuaqFY%gla<%hj_||68{Pudi^bZX*nofVl6k6dIcZTU{w5aXJj8}>e#SHhFPTNcy z($aHmYQ|<$OFy3H(53Fw_hldNrJ$hc*biHMOkaRP;d0B~zpMH=CW80X%b_s!vFeX$ z19#Nyzpn5&(}>lOr*$c*{~=`SV52$RL;3o?I3Ie>Sl{tVc8pmgq5SOpwU+u<#A_rI z3syU_A<>Dm9IuJD)EWj$w6*Mti+UYD`h0k+|CQ`r?#8)B#uEmT*TIH5h8KuNPLrgQ zzV5%&#@H6?iAsLuV;tK-ypN4UAnZCQ{9HD{;l_JK_SKV8wTqnF8sB9N$y))I=NeKey2WO5WnFx zI;NWN<@ltQT+{jqt=Fb3--#ra*Wb%#X@Z57wWXuO7`T~Y(T+twtq}12GgDI%I=YD& z%S<@iI5`$oeF_SA!QPUca>2edhR>P`o>4?pR6gY9y64yK z9d&rav>DWsz5^GurMbCg&fckf7y66Qz<^OwQK^H|Hrvvc4n4_KZvWx}eY1It{!&9~ z{`C`1E*#;sUSrn3e^sduJU7Id7E)G}85*7X=@T}@cEQ07=)FpQGey8p8^DL#!H?6- zCRtlq`L4G1RrcuROpB8}GQ9m1z4Pfok>-Y41p_HIoCG8`sQ-IjVOKT5bOeT!s>a(E z>rK9K!Q}LEWe}^%8`>p3Z2ustS3Uzu-g<{;0?ljBG5U$WU1t4n$`SstzxNnE5G|py zFOSowihK?Z&N=#;oc*f5w~D{xM|de&eIj~^Z)$2KM^jK>SwC#p`wv71IY%<6&CJ3DS4zAK$I}JNF?BSKor}@8RSB@8d^FwK*l}zi*wv z8d%!Qlnnjdf4^7cf4`UY69NoF!iAuRbcR$>yY$sb z6%VJ#{{=kk{duZ~k!P7FY7YdBb<(qOJ~XUWJqv1B^h8H`w#8WH^Ig&#x_uWbWhPE2 z{ht&&jQz@Fw3qSWOUG2j2i4_XvEh6UyJJ%t~w%*Y`GvB?t&CmuCGp eULAHaeTr%%VkOvVC-y_Zo2-<={cK5n-~R^-;@IE- literal 203855 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 From ce528a0e814b9a320d2a1f14ca878d5ce2775ae6 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 24 Jul 2024 17:10:01 +0200 Subject: [PATCH 189/201] Update macs peak count plot --- ...count_plot.png => mqc_macs3_peak_count_plot.png} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/images/{mqc_macs2_peak_count_plot.png => mqc_macs3_peak_count_plot.png} (100%) diff --git a/docs/images/mqc_macs2_peak_count_plot.png b/docs/images/mqc_macs3_peak_count_plot.png similarity index 100% rename from docs/images/mqc_macs2_peak_count_plot.png rename to docs/images/mqc_macs3_peak_count_plot.png From 50a2416689b7a03f3a64d7cbad3a6cf15fb46623 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 24 Jul 2024 17:15:29 +0200 Subject: [PATCH 190/201] Update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c33bd644..7cc0d258 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,6 +29,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [[#396](https://github.com/nf-core/chipseq/issues/396)] - Check that samplesheet samples IDs do only have alphanumeric characters, dots, dashes or underscores. - [[#378](https://github.com/nf-core/chipseq/issues/378)] - Switch from macs2 to macs3. - [[#347](https://github.com/nf-core/chipseq/issues/347)] - Add read group tag to bam files processed by bowtie2. +- [[PR #406](https://github.com/nf-core/chipseq/pull/406)] - Update metro map to show macs3 instead of macs2. ### Software dependencies From dcd850f3157e276b49425f01a3967cc29362ba86 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 24 Jul 2024 17:35:32 +0200 Subject: [PATCH 191/201] Update svg metro map to show margins --- .../images/nf-core-chipseq_metro_map_grey.svg | 565 +++++++++--------- 1 file changed, 283 insertions(+), 282 deletions(-) diff --git a/docs/images/nf-core-chipseq_metro_map_grey.svg b/docs/images/nf-core-chipseq_metro_map_grey.svg index d9db58b2..4bf901ee 100644 --- a/docs/images/nf-core-chipseq_metro_map_grey.svg +++ b/docs/images/nf-core-chipseq_metro_map_grey.svg @@ -2,12 +2,12 @@ @@ -48,7 +48,7 @@ @@ -63,7 +63,7 @@ @@ -370,16 +370,16 @@ inkscape:pageopacity="1" inkscape:pageshadow="2" inkscape:zoom="1" - inkscape:cx="929.5" - inkscape:cy="458" + inkscape:cx="1487" + inkscape:cy="322" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="false" - inkscape:window-width="1920" - inkscape:window-height="1043" + inkscape:window-width="1312" + inkscape:window-height="429" inkscape:window-x="0" - inkscape:window-y="0" - inkscape:window-maximized="1" + inkscape:window-y="23" + inkscape:window-maximized="0" inkscape:snap-others="true" inkscape:snap-nodes="false" showguides="true" @@ -389,7 +389,9 @@ fit-margin-left="0" fit-margin-right="0" fit-margin-bottom="0" - inkscape:pagecheckerboard="false" /> + inkscape:pagecheckerboard="false" + inkscape:showpageshadow="2" + inkscape:deskcolor="#d1d1d1" /> @@ -398,7 +400,6 @@ image/svg+xml - @@ -414,29 +415,29 @@ sodipodi:nodetypes="cc" id="path2500-5-22-5-4-7-4-07-3-0-0" d="m 429.05093,-28.043088 v -43.73272" - style="fill:none;stroke:#ff1465;stroke-width:2.64583325;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + style="fill:none;stroke:#ff1465;stroke-width:2.64583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" inkscape:connector-curvature="0" /> + style="stroke-width:0.352778" /> @@ -656,7 +657,7 @@ inkscape:connector-curvature="0" id="path6678-47-2" d="m -114.80092,2075.3845 c -31.42015,-2e-4 -56.99494,25.5745 -56.99487,56.9949 -7e-5,31.42 25.57472,56.9949 56.99487,56.9947 31.420155,2e-4 56.99492,-25.5747 56.994778,-56.9947 1.42e-4,-31.4204 -25.574623,-56.9951 -56.994778,-56.9949 z" - style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.53707004;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.53707;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" inkscape:export-xdpi="90" inkscape:export-ydpi="90" /> + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.53707;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> Sarek  + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.53707;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />  Somatic Sarek  + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.53707;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> Sarek    Exome + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:41.4543px;line-height:1.25;font-family:'Eurostile Extended';-inkscape-font-specification:'Eurostile Extended';text-align:start;text-anchor:start">Exome + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.53707;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> Sarek  + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.53707;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />  Somatic Sarek  + style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.53707;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /> Sarek    Exome + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:41.4543px;line-height:1.25;font-family:'Eurostile Extended';-inkscape-font-specification:'Eurostile Extended';text-align:start;text-anchor:start">Exome + y="117.92941" + style="stroke-width:0.264583" /> + y="27.057777" + style="stroke-width:0.264583" /> Pre-processing + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'Maven Pro';-inkscape-font-specification:'Maven Pro';stroke:#000000;stroke-width:0.264583;stroke-opacity:1">Pre-processing Genome alignment + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'Maven Pro';-inkscape-font-specification:'Maven Pro';stroke:#000000;stroke-width:0.264583;stroke-opacity:1">Genome alignment @@ -1481,86 +1482,86 @@ sodipodi:nodetypes="cc" id="path2500-5-22-5-4-7-4-07" d="m 132.06682,-28.534285 h 94.59215" - style="fill:none;stroke:#ff1465;stroke-width:2.64583325;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:none;stroke:#ff1465;stroke-width:2.64583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" inkscape:connector-curvature="0" /> Cutadapt + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono Bold';text-align:center;text-anchor:middle;stroke-width:0.264583" /> FastQC FastQC IGV + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:'Maven Pro';-inkscape-font-specification:'Maven Pro';stroke:#000000;stroke-width:0.264583;stroke-opacity:1">IGV phantompeakqualtools MultiQC @@ -1609,29 +1610,29 @@ id="flowPara5862" /> STAR BWA Peak calling & ChIP QC + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'Maven Pro';-inkscape-font-specification:'Maven Pro';stroke:#000000;stroke-width:0.264583;stroke-opacity:1">Peak calling & ChIP QC @@ -1728,10 +1729,10 @@ bigWig + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:26.231px;line-height:1.25;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold'">bigWig + style="fill:#ffffff;stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;paint-order:stroke markers fill" /> + style="fill:#ffffff;stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;paint-order:stroke markers fill" /> + style="fill:#ffffff;stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;paint-order:stroke markers fill" /> + style="fill:#ffffff;stroke:#000000;stroke-width:2.64583;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;paint-order:stroke markers fill" /> Bowtie2 Chromap @@ -1840,59 +1841,59 @@ id="g1967" transform="matrix(0.2434307,0,0,0.2434307,103.90138,113.36827)"> Picard¹ + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono Bold';text-align:center;text-anchor:middle;stroke-width:0.264583" /> Filtering² Picard + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono Bold';text-align:center;text-anchor:middle;stroke-width:0.264583" /> Preseq + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono Bold';text-align:center;text-anchor:middle;stroke-width:0.264583" /> Alignment QC Deeptools BedgraphtoBigWig + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:6.35px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono Bold';text-align:center;text-anchor:middle;stroke-width:0.264583" /> IP enrichment analysis + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'Maven Pro';-inkscape-font-specification:'Maven Pro';stroke:#000000;stroke-width:0.264583;stroke-opacity:1">IP enrichment analysis @@ -2353,25 +2354,25 @@ sodipodi:nodetypes="cc" id="path2500-5-22-5-4-7-4-07-7-0-9-2" d="m 132.06682,-28.534285 h 94.59215" - style="fill:none;stroke:#ff1465;stroke-width:2.64583325;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="fill:none;stroke:#ff1465;stroke-width:2.64583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" inkscape:connector-curvature="0" /> MACS3 Homer Bedtools FeatureCounts R+DESeq2 XML + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:26.231px;line-height:1.25;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;direction:rtl;text-anchor:middle">XML @@ -2625,17 +2626,17 @@ + y="69.957184" + style="font-size:5.64444px;stroke:#000000;stroke-width:0.264583;stroke-opacity:1" /> 1. @@ -2669,9 +2670,9 @@ transform="matrix(0.26458333,0,0,0.26458333,-0.15701478,-103.37633)" xml:space="preserve" id="flowRoot2974-6" - style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:26.66666794px;line-height:1.25;font-family:'Maven Pro';-inkscape-font-specification:'Maven Pro Semi-Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none">Picard Mark duplicatesMerge alignments from multiple libraries of the same sample + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:16px;line-height:0.8;font-family:'Maven Pro';-inkscape-font-specification:'Maven Pro, Semi-Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:diagonal-fractions;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start" /> Pysam (paired-ends only) @@ -2735,17 +2736,17 @@ id="text76489" y="133.17679" x="482.20358" - style="font-size:4.23332977px;line-height:1.54999995;font-family:Commissioner;-inkscape-font-specification:Commissioner;letter-spacing:0px;stroke-width:0.26458299" + style="font-size:4.23333px;line-height:1.55;font-family:Commissioner;-inkscape-font-specification:Commissioner;letter-spacing:0px;stroke-width:0.264583" xml:space="preserve"> License: From fec708eb3b6ae4c24e03b9ab8142914efc5180e5 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 24 Jul 2024 18:22:29 +0200 Subject: [PATCH 192/201] Always upload logs after megatests --- .github/workflows/awsfulltest.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/awsfulltest.yml b/.github/workflows/awsfulltest.yml index 9c93179c..b40d8bfb 100644 --- a/.github/workflows/awsfulltest.yml +++ b/.github/workflows/awsfulltest.yml @@ -33,6 +33,7 @@ jobs: profiles: test_full - uses: actions/upload-artifact@v4 + if: success() || failure() with: name: Seqera Platform debug log file path: | From 9d6919a9d12dfec567cdb1c95285716e66774d40 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 24 Jul 2024 18:30:00 +0200 Subject: [PATCH 193/201] Revert always upload logs after megatests --- .github/workflows/awsfulltest.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/awsfulltest.yml b/.github/workflows/awsfulltest.yml index b40d8bfb..9c93179c 100644 --- a/.github/workflows/awsfulltest.yml +++ b/.github/workflows/awsfulltest.yml @@ -33,7 +33,6 @@ jobs: profiles: test_full - uses: actions/upload-artifact@v4 - if: success() || failure() with: name: Seqera Platform debug log file path: | From cee6b4708c3044918ddc195c36eb1f1f8dcd42e1 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 24 Jul 2024 18:31:29 +0200 Subject: [PATCH 194/201] Always upload logs when running aws full tests --- .github/workflows/awsfulltest.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/awsfulltest.yml b/.github/workflows/awsfulltest.yml index 9c93179c..b40d8bfb 100644 --- a/.github/workflows/awsfulltest.yml +++ b/.github/workflows/awsfulltest.yml @@ -33,6 +33,7 @@ jobs: profiles: test_full - uses: actions/upload-artifact@v4 + if: success() || failure() with: name: Seqera Platform debug log file path: | From fd28fe456b1b888fe28068b2b7bbac05113e3331 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 24 Jul 2024 23:42:07 +0200 Subject: [PATCH 195/201] Read params before including anything --- main.nf | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/main.nf b/main.nf index 32dd637c..63146cd4 100755 --- a/main.nf +++ b/main.nf @@ -11,18 +11,6 @@ nextflow.enable.dsl = 2 -/* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - IMPORT FUNCTIONS / MODULES / SUBWORKFLOWS / WORKFLOWS -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -*/ -include { CHIPSEQ } from './workflows/chipseq' -include { PREPARE_GENOME } from './subworkflows/local/prepare_genome' -include { PIPELINE_INITIALISATION } from './subworkflows/local/utils_nfcore_chipseq_pipeline' -include { PIPELINE_COMPLETION } from './subworkflows/local/utils_nfcore_chipseq_pipeline' -include { getGenomeAttribute } from './subworkflows/local/utils_nfcore_chipseq_pipeline' -include { getMacsGsize } from './subworkflows/local/utils_nfcore_chipseq_pipeline' - /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ GENOME PARAMETER VALUES @@ -40,6 +28,18 @@ params.gene_bed = getGenomeAttribute('gene_bed') params.blacklist = getGenomeAttribute('blacklist') params.macs_gsize = getMacsGsize(params) +/* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + IMPORT FUNCTIONS / MODULES / SUBWORKFLOWS / WORKFLOWS +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +*/ +include { CHIPSEQ } from './workflows/chipseq' +include { PREPARE_GENOME } from './subworkflows/local/prepare_genome' +include { PIPELINE_INITIALISATION } from './subworkflows/local/utils_nfcore_chipseq_pipeline' +include { PIPELINE_COMPLETION } from './subworkflows/local/utils_nfcore_chipseq_pipeline' +include { getGenomeAttribute } from './subworkflows/local/utils_nfcore_chipseq_pipeline' +include { getMacsGsize } from './subworkflows/local/utils_nfcore_chipseq_pipeline' + /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ NAMED WORKFLOWS FOR PIPELINE From b1f7d313b7c638e71aacfc9122673058ee9d9730 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 24 Jul 2024 23:48:45 +0200 Subject: [PATCH 196/201] Move getGenomeAttribute function to main --- main.nf | 19 +++++++++++++++++++ .../utils_nfcore_chipseq_pipeline/main.nf | 16 ++++++++-------- 2 files changed, 27 insertions(+), 8 deletions(-) diff --git a/main.nf b/main.nf index 63146cd4..cdf4f045 100755 --- a/main.nf +++ b/main.nf @@ -137,6 +137,25 @@ workflow { ) } +/* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + FUNCTIONS +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +*/ + +// +// Get attribute from genome config file e.g. fasta +// + +def getGenomeAttribute(attribute) { + if (params.genomes && params.genome && params.genomes.containsKey(params.genome)) { + if (params.genomes[ params.genome ].containsKey(attribute)) { + return params.genomes[ params.genome ][ attribute ] + } + } + return null +} + /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ THE END diff --git a/subworkflows/local/utils_nfcore_chipseq_pipeline/main.nf b/subworkflows/local/utils_nfcore_chipseq_pipeline/main.nf index 37070807..c9f8bb3d 100644 --- a/subworkflows/local/utils_nfcore_chipseq_pipeline/main.nf +++ b/subworkflows/local/utils_nfcore_chipseq_pipeline/main.nf @@ -152,14 +152,14 @@ def validateInputParameters() { // // Get attribute from genome config file e.g. fasta // -def getGenomeAttribute(attribute) { - if (params.genomes && params.genome && params.genomes.containsKey(params.genome)) { - if (params.genomes[ params.genome ].containsKey(attribute)) { - return params.genomes[ params.genome ][ attribute ] - } - } - return null -} +// def getGenomeAttribute(attribute) { +// if (params.genomes && params.genome && params.genomes.containsKey(params.genome)) { +// if (params.genomes[ params.genome ].containsKey(attribute)) { +// return params.genomes[ params.genome ][ attribute ] +// } +// } +// return null +// } // // Exit pipeline if incorrect --genome key provided From a20c464dae7648e49e2e12cc329955e8f6dc4c1e Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 24 Jul 2024 23:59:04 +0200 Subject: [PATCH 197/201] Also move getMacsGsize declaration --- main.nf | 16 +++++++++++++- .../utils_nfcore_chipseq_pipeline/main.nf | 22 +++++++++---------- 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/main.nf b/main.nf index cdf4f045..0079ec55 100755 --- a/main.nf +++ b/main.nf @@ -146,7 +146,6 @@ workflow { // // Get attribute from genome config file e.g. fasta // - def getGenomeAttribute(attribute) { if (params.genomes && params.genome && params.genomes.containsKey(params.genome)) { if (params.genomes[ params.genome ].containsKey(attribute)) { @@ -156,6 +155,21 @@ def getGenomeAttribute(attribute) { return null } +// +// Get macs genome size (macs_gsize) +// +def getMacsGsize(params) { + def val = null + if (params.genomes && params.genome && params.genomes.containsKey(params.genome)) { + if (params.genomes[ params.genome ].containsKey('macs_gsize')) { + if (params.genomes[ params.genome ][ 'macs_gsize' ].containsKey(params.read_length.toString())) { + val = params.genomes[ params.genome ][ 'macs_gsize' ][ params.read_length.toString() ] + } + } + } + return val +} + /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ THE END diff --git a/subworkflows/local/utils_nfcore_chipseq_pipeline/main.nf b/subworkflows/local/utils_nfcore_chipseq_pipeline/main.nf index c9f8bb3d..dcdaba6c 100644 --- a/subworkflows/local/utils_nfcore_chipseq_pipeline/main.nf +++ b/subworkflows/local/utils_nfcore_chipseq_pipeline/main.nf @@ -178,17 +178,17 @@ def genomeExistsError() { // // Get macs genome size (macs_gsize) // -def getMacsGsize(params) { - def val = null - if (params.genomes && params.genome && params.genomes.containsKey(params.genome)) { - if (params.genomes[ params.genome ].containsKey('macs_gsize')) { - if (params.genomes[ params.genome ][ 'macs_gsize' ].containsKey(params.read_length.toString())) { - val = params.genomes[ params.genome ][ 'macs_gsize' ][ params.read_length.toString() ] - } - } - } - return val -} +// def getMacsGsize(params) { +// def val = null +// if (params.genomes && params.genome && params.genomes.containsKey(params.genome)) { +// if (params.genomes[ params.genome ].containsKey('macs_gsize')) { +// if (params.genomes[ params.genome ][ 'macs_gsize' ].containsKey(params.read_length.toString())) { +// val = params.genomes[ params.genome ][ 'macs_gsize' ][ params.read_length.toString() ] +// } +// } +// } +// return val +// } // // Generate methods description for MultiQC From 50caeb9945ef4c41334961dbe1ff981848b0cfbc Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Thu, 25 Jul 2024 00:02:35 +0200 Subject: [PATCH 198/201] Remove includes --- main.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main.nf b/main.nf index 0079ec55..af328320 100755 --- a/main.nf +++ b/main.nf @@ -37,8 +37,8 @@ include { CHIPSEQ } from './workflows/chipseq' include { PREPARE_GENOME } from './subworkflows/local/prepare_genome' include { PIPELINE_INITIALISATION } from './subworkflows/local/utils_nfcore_chipseq_pipeline' include { PIPELINE_COMPLETION } from './subworkflows/local/utils_nfcore_chipseq_pipeline' -include { getGenomeAttribute } from './subworkflows/local/utils_nfcore_chipseq_pipeline' -include { getMacsGsize } from './subworkflows/local/utils_nfcore_chipseq_pipeline' +// include { getGenomeAttribute } from './subworkflows/local/utils_nfcore_chipseq_pipeline' +// include { getMacsGsize } from './subworkflows/local/utils_nfcore_chipseq_pipeline' /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ From cd28cd0c92c32da5541e324eab8df8229f1a2e97 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Thu, 25 Jul 2024 10:10:54 +0200 Subject: [PATCH 199/201] Fix output of bwa index when provided as not compressed input --- subworkflows/local/prepare_genome.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/subworkflows/local/prepare_genome.nf b/subworkflows/local/prepare_genome.nf index b7878aaf..64350b6a 100644 --- a/subworkflows/local/prepare_genome.nf +++ b/subworkflows/local/prepare_genome.nf @@ -146,7 +146,7 @@ workflow PREPARE_GENOME { ch_bwa_index = UNTAR_BWA_INDEX ( [ [:], bwa_index ] ).untar ch_versions = ch_versions.mix(UNTAR_BWA_INDEX.out.versions) } else { - ch_bwa_index = file(bwa_index) + ch_bwa_index = [ [:], file(bwa_index) ] } } else { ch_bwa_index = BWA_INDEX ( ch_fasta.map { [ [:], it ] } ).index From 588a28af88107d4e74e41384a9c0e340dac8fde6 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 31 Jul 2024 10:00:40 +0200 Subject: [PATCH 200/201] Make lint happy --- subworkflows/local/prepare_genome.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/subworkflows/local/prepare_genome.nf b/subworkflows/local/prepare_genome.nf index 64350b6a..0d91f377 100644 --- a/subworkflows/local/prepare_genome.nf +++ b/subworkflows/local/prepare_genome.nf @@ -146,7 +146,7 @@ workflow PREPARE_GENOME { ch_bwa_index = UNTAR_BWA_INDEX ( [ [:], bwa_index ] ).untar ch_versions = ch_versions.mix(UNTAR_BWA_INDEX.out.versions) } else { - ch_bwa_index = [ [:], file(bwa_index) ] + ch_bwa_index = [ [:], file(bwa_index) ] } } else { ch_bwa_index = BWA_INDEX ( ch_fasta.map { [ [:], it ] } ).index From 49c405c71356110f32cb33ce9aacc9fa2fd61295 Mon Sep 17 00:00:00 2001 From: JoseEspinosa Date: Wed, 31 Jul 2024 10:59:17 +0200 Subject: [PATCH 201/201] Get rid of the functions in pipeline utils --- .../utils_nfcore_chipseq_pipeline/main.nf | 27 ------------------- 1 file changed, 27 deletions(-) diff --git a/subworkflows/local/utils_nfcore_chipseq_pipeline/main.nf b/subworkflows/local/utils_nfcore_chipseq_pipeline/main.nf index dcdaba6c..4ba55198 100644 --- a/subworkflows/local/utils_nfcore_chipseq_pipeline/main.nf +++ b/subworkflows/local/utils_nfcore_chipseq_pipeline/main.nf @@ -149,18 +149,6 @@ def validateInputParameters() { } } -// -// Get attribute from genome config file e.g. fasta -// -// def getGenomeAttribute(attribute) { -// if (params.genomes && params.genome && params.genomes.containsKey(params.genome)) { -// if (params.genomes[ params.genome ].containsKey(attribute)) { -// return params.genomes[ params.genome ][ attribute ] -// } -// } -// return null -// } - // // Exit pipeline if incorrect --genome key provided // @@ -175,21 +163,6 @@ def genomeExistsError() { } } -// -// Get macs genome size (macs_gsize) -// -// def getMacsGsize(params) { -// def val = null -// if (params.genomes && params.genome && params.genomes.containsKey(params.genome)) { -// if (params.genomes[ params.genome ].containsKey('macs_gsize')) { -// if (params.genomes[ params.genome ][ 'macs_gsize' ].containsKey(params.read_length.toString())) { -// val = params.genomes[ params.genome ][ 'macs_gsize' ][ params.read_length.toString() ] -// } -// } -// } -// return val -// } - // // Generate methods description for MultiQC //
    Process Name \\", - " \\ Software Version
    CUSTOM_DUMPSOFTWAREVERSIONSpython3.11.7
    yaml5.4.1
    TOOL1tool10.11.9
    TOOL2tool21.9
    WorkflowNextflow

    S{-JpC|L%5Sko&30;F2@9 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%0D6Aha9ZZvy3Owj0R@{kHIA1_W(q z4cub$!_rc(sJ~F)B3e6iLcjrRvPV}76Ez;B(jxHQ$MuxJO9R0Jd3uw8A1n~*9o_jj zu;x=$PXC=GOJ&ALTCbu%0`*%r{5T~HsSemFF;Z^ys5+rBkV0wxr)fKo1AVz27Fw&8 z3>s>9w=Q65-IagvI70e14JomP*P16TVrML25M!p?NCYo)AlI6azR#Lz6Ai-IzRR?( z4+agr(5xfTKs3peZ)u(gG`169WT^In|8Lr19pT}kL>j}s9dTEo6RwyHaHvC1OYW2# z%*U}0mMYktxyYpzJK?o1WDm5dST8Xb7-TZ*Fozk!zyOgU^EXcjhbS$xX8R-oOK`l`(pIO-}*r1to^ zyoS-;qLpAVg-A06KDKWvRf+zz>Etb}FEkQp z&?Y-#gxOsu4=7RV0hlPJlHrA+N4ipRxEG7x^<#oju*?AKN`CLM5^zU0)YNWpAHD~x8*;i6hn7?O762%8|>0#8?9E6Zt>!AKdA zGYia($+%%IWyVaiW^zK8+03y7#BpphZPSFYRU!>SV|ANol+nKd#!}=Uzy=fDz?4N^ zEC+mc_VGiM3avQpCWMv-RE8u9JFPOr?X-Se-xpeuI*jk@O}>l_rzk*F%*P4d?F(uykl(@_0BwS z6pW!{!@xhsi-R0_&0HD5rUE{y&g#GO<4W$CNT$Kd|J=h?1315cZK6>Oz>u&9k`S`b zyMeMcABH>fV*dW){AUNYJRp_6LMoX#IgcYICch6Y_Fnl18f;Yx zZ!8)drgi4?f$MfP`Ja>9*+b#Us!~SVDVGxhw#nwrtndJg9Q4!0$bY85{+05E$_zP+ zRbWx}UFa^pqcL(rA9oRSQsoC5?po8V&nXf_(+C))8b_%Cu!@zX(+04`BA|{~c8(`< zWN$wZZ1Sgp;{8opoA{5c{&%EK+rhGE*?TVz+jdDQ0mQ>tfRZ>wVdqG#qxJFCTq4sH z(ru@Dd5r*BZ3{amio+5zkg%vu%2Hy|_Z;Gm441DJu2 zGyTqdaGf-WVKaTz=%m}(X&Xr%K`NC)^N<+VGtb_6n*~dM&!CO!r$Nq|K+FTN zkm}6tCe5@y2{6P`6w8g>V`s79xJiTg7yTn!!#0Ou278Dc zTz3&N&k{RHnv6!M^ zvX$722lC#wnVH{0a)SLw)Dt(tvS3EvgR3n5PucK&S5JcAMD`00tRTBO{zU= zGD@cO=DpEAluw7n#RteL?Vb9*8&gTg5dxO^0(y6)iS|(NuZ2v%Awe}A8(Opq#Hh>E zjX3Lqbn#o_&`icn)4d(GR3kR4t{weB#H)`l8D{h;V=0%*nUnOZt=8uF3_OyPqa&6*S$#_aDav))vWx_L{XZo4t&A?M)M{HCA{jL4V#eKVT>y!);0mq3p$g(rU zYaG91{)Vs>BR5)u>(*BXHW~&P6hq4F*@aIn9f@yve3lbgCPf@rl$?1yTKWo7U>R8^ z)HfQtaQAhur)$TI{|Ke?<_5NMl_C!CXlN7PUM#Lb-_^!e@Rl6p?i7O@*AzSgW4|5c z*bGb;_LJ{{-~s3&#x#IbQ>MonJw4YImVEL&A}!o3r;u@={^l;1yOrhyY0QGlk25@} zyuzG}IItHYYg+y}jI~u_A?MV}q`+*SfYhlRlZrN1flxg!8*GjB+#FpS&zN=|!repv zS)k;&OP%yN56kjUW&y#}(9JnFP!Y^+65ISzbbT*eTWo`QYB5W3Ej`JuhHf@kH>hHtQR0qEVF9#DPEwf{yE)^XDor9t|be-j5 zR}k$hRA3}H>Xj~ly4dVBu&P}4!}Hw3g>TQ!oQ|6&g`O)9eI`n)nN?`i3koSPe&snM zBO*1eguip{%!isPU!|{(zwVGSNf!+O^iN&aM&BVrv92!$^Ov491V9d2Vy$qLiZ+RL zwuPGQ!Xn|mZIe#qTKxEt#?4z;^-J@wp!D7Qj6GMaEH{Ex^|<|I?Se*b-W1xptEU@i zuNb+24jCBs++5o8W&lrNZrv)}~WAi?GMJxqw4 zFwx!C^G<)h9tjPluh^Q|KFmWcHzoYz)?l_E-}3F6l4oCy>?{kfV>R3YI>K?M-fZ}t z{v0OP9;j-AogQ8Tntjot)-vi)gp`_gQCLYKg{b$@e;0s_q+tgi!n9ghT}%gMaFP%A zZCpPpQUC7yHrKucN-!Gbq@P4QJ+@qJEFB4w{1(bdWb2Cr?2Rw4{&R zsCjizvWlqIK&nSsPb+2IdOPT=9pK0SFByPfcTf5aHK8*j(AJ?U*d}Y`;ioRer<4I& zw-*hkh<%`~r7Hs*U(}rH8@=y5gbZuHg2;N?f9@y#;=C}rS%TkjAHUvw3lg$mTqs>p znyaeycM)0?P@*`V5ejczVJYe`Vc>}6xatics7*S)rs!9uypo}^G`g8?m>&ayx6z$1 z2MstI0|4@cocQ>8OK_#&5;xO~0r1fvS4w)6&dPm1^o z^>H~q4}`8rdGoybVhMYf6-lCebov`kMd$wiyzS}8?D5?XuLPRKeWFPl3xD}?H~PAiQ6%hn@v@V8KAY(HV!$9_J!iunqAQSDHPvJudfRO zm{f48*xPy!llb%Wg5E;b#scpKj&J2^3Dzr!{&QkV_0k>>HN|EJ;0rzaVx|+NN+4L!I;HFE3-Q~t zN1bpM=+^~polMa~OG-kJ`jV%Oa08d_R*anZGDh8o_uQXbc?Yj-kFFKn=ekaiyUudw zYx>2QlR_8X>^rfg)e@6stb5^mkwwuni<kp<7fK8 zz!ltfsQ z&^SfLEdev9yni1b-IB3V;$7HpqxA(T}lT@Sl zJ?aH~C#ew^NxjOC3L6d1R((~BnlwLL`l6ERY0ssl@?;@0R`!t?#utlc`!Sr;;>F|c z!KJlg!5lN_A%e$Y7BHUQS;MlfGtVZTJ8;cj;LV;^B#NmtA}EV=Ja_J(wl4!8L&@7! z;kr1{xx-<3mZM`IO~{Q$Ba6+Mxx11x%U%p)LW`OWy$x2X1n}lXL(I+`N@KFwZ0g;` z!^^Ce+bhrT9}0J8v&qP$wBMFps-=rTwPwHk6e+%{8Xk0)^th1~6>fPG`%1B{st*NG z{%DfwAMe7?%^forD>^qwP{H^zWZ!9Pq~G^Brx5eaX|Ij8^;Vg-Sk5v&Fm0)fpdFU_ zWVkU*iB(ZtZ)hTnli66B#fr2vUsaD66)W*wt-@cs^2{m5JZp7!bb8f9G3#^8NYm{tF zva2;UHP;(*Ppu2s?l-&6uf0qfBn0;LY&z}b6R(l)u0JH;TF|aUXlOLu)wJrzGrKPP zsD?4<6icdhE(1FB4Z4!WPtKn>%1gO$G3JZMjn)C7?SrYjneASOW=ov*hVCjo&XStj z5#~^th7Q`hmPIsdVS4wT<5&S_b`FD4`>~YH>N_KCGk#kIpEC?&8otJi=9c~bnJTzJ z*xpi~aP65J$j(_X>S_ye8{N&UcSq5uMqpHz2#kPvcSEi`6kEoSt=tC_V|qv0ME zRSR<;sump4-Tl}%cluwfMo&fZZMttn2~S52$4<3a4W$;92nDCtMzi()=>2+VUTm^i zRLXyBTjhi^BJV{)V%ee9i`gx`wuiMfH66Ul{;IPKi%yLd8>aY?afCFdy#t!4B}e_M zp+2PCZU0?sn`F%%S(&rPW+llku+>AQvMi|*^)DRMOE)Ho6!D6F`cr4vkp-Mid+|(G zXjG9!)(k!QtL!6E+Xume?+p{D&+y%EQJ&xu+K|2>@bYi{1Qx*x>S$DVLF0;kNwW-| zQ#EN80Y#NUl#ed556zbNLE{A3Lcvtw5N(c0ToY_GZ+oHf8*3jr- zcU4l)mL?W8KNi|x8S=q}d7y8;Fm-#n#y6_g$X;)id;AQq)SH>~UpLRso3o#p;k36V5~xWZ^(2qW?@8c7WTDZOgiqOFQnod`K`efz37_H-_&v49Pd6i3pNh`yDHpGheV}_%N^fX{5?$1PJNZID@!vt+qzugC zd(z!@N!s<1mNP4&z@6p2%9uv_9DuW2O*w_k9J2jFJWj);tAS)5CsEQ z{CVt+=-!g0N9+nzN{va7TSI6bI$MeEB2S3s`lSbg+TZZrSD zE&9B~ghcDP!E@n(+P`9q@jD|t#Isi)I^kYvbL$m~vgx3##m zEDld4d2 z1Y-gxyn@1cNuM;0__;VMg7P1Cd=O~4tCCLIawGOeSF8F~S*&G0)h$N!=<@&u&)!?pAt4_o|Sx(@D9E zjlU*83X%7aiy(6a@3$~bob?8-KSaJqxge;QJa`kcyYu<#HP^WTJp>pTCtrYd?p;u?6^%gp67f|dYyfOYcozXpEHPY zbvvi9@vWT5IVz1c+69U%Ph57W7&M$?Kx;TP3 zSLNN$%#KkOCy(S!7ME7CuS(ZR-0SPOEgO0xqJigNpnY5Vvn|MJ^YdGjUjGA8n>=(K zh;3=8;a{MJ=XoFC=H_OF2-8tdFy%Gw&BV$+GGMOe;I~V@pjCT?oK2W$MQ(jN8Y!#f zg#pd+qH=8E(8MXBjXGYP8m7vx%8%K;ohGP*6r4XAIbFyhEIjI^l|6|=;7g#qorUst zz>>MLvi%n7XY^rD9*irUYZo9Le>5~?yfmbD`8U@%lrJXg%LZ&f&^9K$gAt9MdPJ5+vaH}}Nz~x*qUd@M~AQk8a zv~LKG_f3QerlW&$yq|jDL{EcDUWm@EgoSF}5IkrI-)W*UHE!V7mFQPhOyBd3e}2$G z7vOb`ODozuoXh-WYA(Zpay~!1nlGpYJ$+I?gDU5$hHbQS?fTSW#*u*aKu*hmmG@Dd zoTMkUPi$rTPhq>3GcK;(oH_7p$8IGZ! zV}sUx>L8NN*)2)CLO4px-4spl%$wn*$tSw|2evyKaxFrC+v)0OD39v8AyU+p)Hc3A+*FwTUz((r zy=uRe!bzp~r_<9s>H6%*Qyo00i6nV|qYK#vtBP2xQ3W&xCfp_c^ z?uS*vr^gs|hL9fR$C0rY2>1+i4j=d8aVRgKs}dpc_$O3_m}_H$-!XdcA?E4ZMb=d|O-!W9v2ho*so2kFFm;5A1U(<41cEwqu zE$lh)FGrHWmamLEO>266Zey~r=n`xTt63stL{|>qBdHFpeqS)L9Q8OtAL0)#G3`59 z{K`o#VTD18x&Kl~4R_4nSzlOW^5=ZvksRMUA;UsIGxa+PKmmOt*vr#k!(eR>F|tVb z6wVMzmvl4vLOqr<2&FfaN)tf^%~ze?1+4@UJ{yf1zZ2T{rWakY_wt;hZkmWHlWh{AB{YzV$u%)6=Sg3)dA{hoY{1FO(<0%S>xeM zf$SqeXf{ND>wvJIkuRf;A{Eua3`Dg7jc@S8?9}>^ESTW>Mrt zhOdPxDq#vGhrS(Va_><~geaDc59(U8QYGALF`RrMUQ015)6|mC(MNX(+TD+Z8A3PW zJNW$v<{yn2NwXDX7ZKK6`z%C09QyW+um&5l5eemYvHr0)Ml#oZZ;YX@>?|MrG$1xJ zA|f&enzLP7+_Ax$7jb^OXXD>a3fC=|kV(C}RXtjfqIyFEbX!MagB>oFZmiLWc7Hu{ zb&BZRBiPgxYbJhsf!EAEVN$@3U7Q=1t7Y7N+_RNXa=wM-G~Sj=Kxem5Z-UI^o(+15 zPh=`aNWIhP%8&+1;q?=lZG0K+?M@b0X~{6?M~w|nMz1Jc`0rf+qAmw&?3LRlHS0-} z*z2n~GL!X!bfoMnT^TumKYA+t+Tt2#%O>lhn0t*waRThtE_re8D;Un6S;*&FtrS7-Ivw^yPPd zPY1~s99g+oIB+BLLBL#FT#DBh%@20p8(z$4;KKX-#}kB2nT}*X44zc`Nk{z+rJNax zfUjA2S0XSlIjo!3hetsNZ7UVr8#nAaP= zsqSZ`MtMj4y(&SL14Gw8^XhExQ|ts>z7fXM=-~V^y}9y7L<_5Hm9?WKOE``e;P8p)u7u9F`S?rr#=fpotmm%zCwWxfq%4b|wLUV3V)Zd_PlS3g%2 zBmb{JmF=MQMwR~A$U6O9Sp{;}d1l3-PRAxJe~^M@R0s&ZI3U7#}Ly{HD4m?Y} zSzvDP;395SfFhP6t8@;zQbDN5(YQEu4Fr`EnEhr(lDYr7z}QXXR}4k^3L8b=+*r)y8T`efi$l($KF%Sl0_WHgoFyDoc1bUq%20cGWVFiUwz}v!9AJ{ngDFnTnDYl+L&STi2toA z!t~ary;>T&GP1>Tx8DnIM9k)gl5tdG*Z^Zle*3M2SR_0n3UI>hj$*Z(TVf}VK$1_` z;+9Adb`$cD9sfjwW1zj1e6_wOfz7vh^ z{SvjQV)i?;7NEv`P=;o1Z>2pjm)A~Z3B-!d9VB$N*n4mztn!DlJCrna_R|gM$3Ep&J01k_LQ%0MnwU z4kNIR$Xf9A81MZt{-R+s>FAu;k3zyH^@ex}CEtf7$7{sfkf>Va`)mfF0#ZwwCqRMb zoQassTYG>Pd}^@h?+a6mJKVS2z~>5Kg<%2}Yl|CT`32(>$Cqy34Jc-}l6_{ccVCR8 zdV{F8SzcumQTs$;oBD%+gjytLRh^}Bli2~w_NGBl_ngCQ7~l1^d2fm6FPlX1#B9EV z$z)`zJ%$q)j+^_0F3yjA_L}V@u=b?;gmm>K>m07k*K!1W1ujTP=6owM1+m3{`Gf}3 zpgVcNV#-)NkIuwAeC*?X@*xNq^ULGZJ9Pc*l`q?GE$6bxuz>4tl1B*gzJ}*f?W0$H zGS}^)2%F45l4bDy_$5PPu8N^1xrD!bwK_XGd7h7XYmPa@Ik-r`Z;G;bXXJ0^&DPtp zB@8v^ssr36b@YUc--zXEI#>nU!erB}BIJUm=EM4`T56tQ{<$}k^yC{fQX6C=mq1t2 zSX;KYel+ZAWNM?I^UHQ?Z<%NC5|x)RmsU@%Mg%`bj*?d72yl>!{Nj}a5mlKLBHtvZ zxqfaby~Qznlm~$7CRn`qj-l+y04iv_Z^p*^lgCrzIi*q?d{Ro)fbyr8MThhtCdLHT zFzOwN_;-1bJ^Ko;Zh8|O9o`}khOpP#lDE{%<&14OSFiAZca9Oy`-wy~$ z#s1BfU=rAV7NCMKwq!0;a3Sl^d^nZ>=2%0}Zwb6H1qY@8JJXt+MDI9MqAf9Opkpr4=mWIQn|}}GpnI-VvsCpK34Rq-FnIWl{e-{ zAJ_es0GegBxs2F7@Ps}(E0sw5T}QG*eear+u7;rIXnjvJcX+an94UB!jT+|7!n#xT zZnyAokH?P?${<9VZ#qzWl5Pr|e{;QgS91Yq*VMMK6^n4L7&U<3=~*$O z1>QcH>JQz{k-$OxeviGQjyV0D9>MnIaz_AN<#a?{l=bgG;`w)n{boO>ri5&~z=fN5 zAF@2`w+-}jF(>`-eUsEKSGfduo0P%FY?S+;0t~GiOE<_rdLy@TdAMU<>Ec$|$Sb*? z5k`+J13eyibHr?VIVF5@rUB^p2-B(wa^@uK(()q)X0)$8-qeZkYx13mu3r?of9jTd+_IE0(% zR=d zOW^$dpxmTLx)q@)!$7*h*mDP*ZvPd*_5)ViPfn~;?mvjr#d{i&-NbE{BMAdrxsG~j zvp*iqQtU>48dzdQPgr}$BVU3F}LH=gUUkdJYeHIs;IkBZGuxhzIX?}HrgME|d zVeB9xsF(MRrY4il13~W0#|mc5TyROpfh% z`#V40h}e+JaM30b-hi6;OS&7jt9g4^o*ZK*FiEN7P@D5NT>bfoXVBheb1m};Gjsp( z%ICKjX3fEmS2$^BEZ34iWfVeR1RAy|TE-%ep7&s!=XWo`gX+g-?cg#wU&&b+_;;aF zNN?zBu14dQr?ZN-%Y}szXl34@pg*O1cerD&;FRTjmwi-sYf#6J*NqDuY!ju-V|BD4 z1a0$ba5^RA-TI#6sF2Vw;Ljd2P}qFzid@39u>JI3vX4x`eVM7UkN6nyADT~VbrZB~ zaT{hFk?GXP;uUF&Q9W1A+A(XI(JG;GU++oGSJ@x4l>cgf1jCG>Wz)sr`(Tac!!h<- z_#$X~>qW-$iyEh8F~h*ZY!L>ik&5>$jtKA`D0`axtPGPF~`6RK~}Y!+h23d9noJ#FO~eCb0uRU6-p zq)41QAX3%)T;-g#BqA4KeRgZrY&&_`#_-ODH_eap`m%kF21gJmy54>FTk6jVAX!qE zDA_09(Ya5s59p!%(YxAuPY}d0;EBfC(t#<-g65V~@xRBdgoK#3_V9-Ms<_e?tm*KR zCeq9O=>Ull7q=@@sKg*{{{r&~gz!yfcb-`nG6(rpi2g2?+FL4X+3cP1l3RPAkTo@K zO9Y-+<0%&3@F55I=_Y&kZ;4UUW`~e6K_4owwK; z&&o=SI(Ol&%Wb}^`o%j4KBhOcn|x)0zu>V1CAx4rZKKqgVGSoKqY2UBOmaxJXGBs& z@B@exh-w~_otHP4R3|9$K40vJuaU^Rh{a=mll{|{I%9;;U zwX9G2n{a7$S{SUurmu2o6;jl7w=h)yeC0szgipYCjek9XT+hBIowX5sNt2D%XJ~Cv zA5-4Z`rA8@{=c>1$YR;xupdh)zVhor9z`s^xV%Jyungj~Q_KQJ4@W~kx5?OM2CDB) zI*WSr3n`mkKA@kHkO=b_5bfMCEi3xAMcxsI{1{6gQ}a7QWAc=`hx)$=y7l#-B^9_~ zMi8Vhga6epcy4QTV)kQ@c+vdf4!V=B%Kr96W3>BlaMc}-kr+amlI#*2BROG|i?3I55TtQ) zW%s}Bn$UU3d&UVaUMRf??#zsstqV2|7dsey+a#7%5wxL*?~yU~idLfhiiwY~*Pe6Y zL<7}Lp*61rT;t<&1)*_t4G2yP=C1IH{I!{&lS>I(%PecS#Z-q>SPmc+PcK;1eEMNA zZkw%=b(NX??r7xt{ERi6P&XPhyZ-E1YDGSz=GSHtSc#qd0tQtfs3UMVA3TqZQ0?-W zCo19DcFyHD_TF#NCyT=|utxRoi8?}lappOU_BY|K@vtM9*W zcs*_wQCj=;uI;WhPj+!ks!ph+q@_cwhoIz9lBusH#s<#%O(u@g)=ZauWV0veh+nw( z5n(r=3C`RMDI%(hqyD@T|Ngk5%p@Z-qa-9`U9&PPWJIht~eS3T%`U+?oe=XsvzdCu!~0ZzFw<|LdY zG}^=-nwp*VLs21bZ~s=EY%V9MAPJ!MrS)vGX9<^aTt$zwVL(?QU13>^YPU%wW%c9J zUHz&B)#UJaC8S}6a{*H}roJU0Cv`w32}c`VIrg5DgIjnDU+WW4zoD*Ip)z}Q%Uv9T z_hu8PLhMb&-Q{{4;j4UB9@9RUTPIcK3!eUM!3q}vV`9ZD6LDr%Jtw+3o%yvhXGrmY zJL%Pgug++k`9O6A)}>+KTXU;IBXK>EY-26E+;*%_n>aY)hb0bTvop`Mv(kDlP=39j z9^*;2&4d%3GsrO0kpG>tcC4VvMfgu8hTt2YAd1IFl>IdeG^bCytLhFYeGdm(y(6%_ zL{djNLV}0FLVvT*+p*-QWRR0)dwV{ye+)ieC&kUEl8I;l@D+k&vW0UQw*PBCNdSq7 z0)1~P^I$JFBs``5{b(n`*B|Q7lIx^OR`@=LXL-jbGyisyr4HI( zIkeSlmA8fxzy^45s;^6XaC0_eb80~`0i`pWHQc=-A(fWUc`7)=>Xso%Ot#8b(?8RO z=xD#noI);3?J4BU{;^#m;pIT)9j)g{K}@fV2eVH;)0R1&sTFnTScXMvJ+J9Ykv$zH zuO72~cMX+@LLr<-bK?Cdt}^cj;*UK{tVk>AHPWq{WQF`PV>dWOcw;#&{(vtLCW%j#t zJhLj+#9iQcCOfPS3b-O-tz-VwZxKJn8Fts98-B(41uBA~G88}g$l<*sq(b4HFdB)w zHn}0|geEhkq{w_hzjXM*S#!$IeMq(X&m=uwiYc0}*;Q-#?%dH#{N5;LbPg-woCV}1 zY6r+>MNE-wQKpk2@MG=Ys#dqas01mC8`psOB`4iWe#9iSAPvyebRkurV@dJ8CshKj zToT~hp1X-65*tk!%)NXSA1Ei~CG{an2Dg+1x$T){5Afdc!z8|o!;2_;AI@vR`{C$fmI z8sP~kYb<|4DaQZ!*O}C_;SU0Bh?aSTUxmZO(RG~LJll)%==f241w*mpnbl1L1AV4g zN@s5JHjNhhyVIAQg)=3+CKXLc9)Tjj+xT7`^6xXE6`HjtOF5OSm93Bvn#@KXvSR}K zy5rmhHH+;T)f6L}^BP(>h5y$^6e$rgkO% z^c4O03;FCFt?k!41}9YjK|glfTd=k}Wo&cu49dx>RI_QTRT*Uz$?~j=5qEK(?K+xY z;fIO#zF)tzx7%kk3odR3gT}9&$pi<6{DyWs2=ujnHiIq*3Hhti<5yLVaH9D-lYuO{ z#1eZp9Bcs1u2Cws6Ky2(k938aZbDnO3L*DnG-V4Bc{liS=_#on;29wwCeY)?*u)Q2 zpToN@A~{10z$rV3_3r|y%*04S;SsXX4pruPi>Igvt|}Yo{nZl0T*38EX4Ro2CS&r;CG>Ak ze9duSN83ZaM}tS+o~}=dhmSsU$8oVMw_lp7*G1IzqzY@`!va^T<}-Gu2D~obXMh4d zUDcr9ZZ19~ycDUi(}fhK%cTOxw13}cdmclc@2ZD6byVMqngwx4Uaweitwz1Bf=^<9 z)};YhNqvj>um`D|AY+FLMbYr2(GVDSNFET0OSn()skOZ@nsfYv<-Mgp5GtiK_hxkF ziLRF%m->cOG9?UhWo}fW$Ty6<__#9*G@qxj61?;@Gzz#yeZd_Hp*fY5vo*S+429gB z#hmb{KLyXO)q|fy_`mE5gWlhRMkAKJcF0pz|6C0u=djw55#90{TdxY(Jo}Ajr7Ep4 z)79&7Qo`P8Gk?QBLFQG0uFLBl*rMhUlpL*Sr$_vBymbTWW@CpeEoT#6R_!r1-IdDL z$6v(to6>-+rXIXF$(<*PawnBjA40Ue3qxfp;K*;Px#c=OQ5s4!ZD&0&8>~t0EA3^UlOy@KrXO0dI z1jz>88ET%~B3j+$uUhO{QXzMx5S8DNN<}4yzghyY8kBGsW8oSj@1Coe@VFRy-!kM?1WEBcjU4cZqMs?BZIrI2m2WIJjb@DRgfyq zt2C@6s#SNg-B&?)`}8?(kGAsZi9HUx$G)AJ*c~IzH%iM~=1yV~-MpJ!$RY{n@)r3L zCY0$k3WQ76g6n$Fsb_`8BGn4lydc>d5I2)cr@Wx}T!@iC(hty>Or0+fBUK9-USe`wP&@J zQqi@mHu!~da@v}OiFScK9P0f-PU!U5fhIQ@#45~343>gtAXwTO%ht}}bRgvJA%+bOSmg_@eV zTD(Jxb=v(`2K@;c6TitF&*`s%5X@1pSJyn?;kE65PUsR@|GF-%NeL_@$j_g=1B51NH@_-xy>}5rN$4$J z`fr#nL@iR{+E&>U%LQ_RfYL(n&0kZ%Yvl756{X%n4+cZidw;mOgCGX0sY4ca*(tQxz#d!ayH1V--}sjN&-QDA2GX zI~0^w#3WEhKDK;1;)mzg&JPeg-lS6IAIPjYp{ll+eArK{@{=jIF{XY!1==yEpgQ6C zlLa2MFb}ompJDhLx==v7pytHeQkt%(s)5UQA+%;2K*3L1Oi9VX7tab9;YdoS2=wNc~m?1lG-xI$f{`D1SHw{V3eHxqt%2-G9#17}85{9%b} zE)VNgs$zVR^WSPrIY}QBe(y8`ceB-gmtNwNc`tM{+`O;3G-o{Q?)y2pAm=rf}{A%R1aKg2;}hEsP& z%9pPX`yHtF_=SFB>~Tk?32Pj@Gg%30+wu@%juU10@E!S~W@JnE7JrLuTJN&vd5Tby z?rrH|WMEVQAU2nkRqx}kofY|r@Q=$xN%_~AJqroJty6(A3wXeuo-rr-YL|DONL<9e z$FFWY)Cr0NTUd1>SUWBgI#h~&+4z|;#VD4W0c&C$%Ql0J3}$O3;mZ{AX4$xyE}`Mu z7kk>O-*v~PF69-ByY3KiNk%osJx9{}`PRG2r5i7-Vz$;v=u%o`@ih;6n+G;!Ytr|; zI@giMcsl+3-i&<|U~g}gd;lInnrxTytx5IC<-Ca#UbEWJliLu$m*!3z<<&XIL=~2G z+)H=dqK`tXg5Y@lJ<6=wBL)@7JZ$E!lLz>e@(}oaBiMPjyza-(HF3c&xI%YKm zeFIDr`1?lg2|n@Ljk)Jgf*<}4r(oRYPhKyNtvSob?Xv~#fa{y6c_Idb;ORU~7kYYY zBG_4yns2Zqe8DwWJb{Y z7XpuH0aw0E5qsES4f!jYd=b z-Eq?!Qf8l@O?dF_m0|}-C$l)~^=K~YdlR32m6kz7YL>ll-7YkesS*QGv6JA9we-cdlN$=Kj1?!@<^Cf9{x%-!wj!4eB zb%WKr`y|?QpLAK)R%IhgW2lGf$m_=1C%sB#=%2gqn-M)(HJV4so-_((E@6dI!U9G} z;P?oab25}Gd#v+B6F`Jf;afRd*j(eQnrJ?8{O2{qJkcE>e~fdhpT+@6E$6sl(r5R{ z`-0G>x6A_pt?r_uJz+{#&j<2TU0V_S<_kpwlzbCq{wg)>n#*Y5aY+?Q19Zb`LqWz7p6L=Z>7OB@$kd zIhI)-A0WSBs@}YXMPVJhu#)w9&TF;!@=ux~cKICo{j2I*MTX?Bqdu_!CW%-*1XCxF z=Od^FiyfaNhb)YW^v+MWC>WA6)1lt3xn>wEobv<1Q9McSucAz1LTJIFIYDU{4!4=L zN!c4!Qo5*Ge=9`oDwL{L`RKzPPqWRPwGCu|QR*s$1Q%M~l3h;|HH4!^f;yf?kiaS^tcd{C;d_38;F;m{B3Rp!~p??b|49-GXUbsz&nno;5jefTa>pdN*^>M)5E@+SrZIrm@zKz+*iZfKs&b~{p zZ`FUVoQvHph6p7rGpOMV&UD{@W1wT2fGIIL}dEV=FI(g6xJ!dMSm;n4+i0-^C7G+ z0g{r{^!+c*b=yox{kExv0zOLa1ki6aYg@uV$@4F9fJj`Kd()b$lQmDL2L9dlFTc?^_g`7K9-%+mg*Cb?Y`vzlQ}P|| zp9_tJ|2RsnoJBQ$i3>zpb8hY6e~77=5~di~pyb(P>L<41?JHQxM49ayG{#_2)ng%l zGc+UXfn(cdqeAGkgHI@=f7Mc`ed=r9ol^;#ST#Wd_&X@2xxM2-z$2dw0v-`sUQzLm z{>hDp4-~D_GA>UXnB3Z$y|uX-c1^?MmHw8>numX`cx?Qm5j~Ez;T4$%u6nVQY?-WV z<{){eU%0A- zyem&6;(Y#fszHx@M3b8L3vd~qpGXXIp5^bOK2g5rbIyWwqe}87^UTZg^$rW8rNA+8 zW;Ltwgc6~R;5bfIx0--tDEVK|m-y7^o>Wy93b{`Q|e zPs9Gf$-V?ZJ$v%3I^zlD;!(;ik(95|%hk<_>*tvkMID-0tEWdJ;bwoUf91|K6&-9S zr9uhKWk-On86B}%^p#Uyjkwq7>4IbYtwQjQQ5|CSDTw^ zYSidY$GFN0r;Yb`nfummq0il&dMV#z3s}c5!JPA z8Vl+&^L1-lR!f_rw9XG}O76RK)kJIID3qsOTVBDETVxSJSfI^1pwB@(3Rut&xS6P* z>qU;^7HiaVmMr?e`_9om^!zz1J)BI2n;m8H3`M)-lvLZG#(!u<$pxe%H^}wEj#({??(XydRl1rjK*XuKCd_tZy6V ztx~t=`lq_=-jW2;IwK=|LbM|6j#-^*wcg1V*%e>T72E2_u<=t%&=fi)DBu?mBtUws z;i9lpJ_LLOY=G4v%zmio!**Q6Q>kG4z5DE*yi^l*8+%=4oN^xVR?nCRhX06Qq&bsZ zCXg@-5kl1@#pqwkbzSM=L%e1e*j>$mDsQ2uIQWiPN-N&w%ms75JGVAxZ;h;0zhduP zE}XpBZ*y$2VlZJ`H}TKY#=;LZc>LG&(gT3aKk+WxOChP`{;vbLosXrv6lX7@27*z1 zd)qsSA|6y@!Y#LUip8oLvP1;;0?$K%u9rfgzzT?TpZ)%={SRRN4?X)TXgF`Gh7}@v zV;s!}IGf^1 zPW+(mn{6^N{2{>PYO;F%+c(NJ;o~civnW!?Z5&;+M5Y=&8s51OXNw(cGA*hW73BP) z%T_ODm-BXL!l%^qpnTcGNFl*k`wg)f&Z9*!Xj$LuSRH&!eBw3BY|zUjoQr@M$w8xp zs1+!4)cZZE4kKWo<=5!hl-zH^*vMULb_>0uQKlFeWioXn5Vt@;8@e;x1OZyfY7&f$ zaMQQ-Y6xK)nM~Cz`Y}&6(i}Q3<8Q;QRlM8kr;*D>zukaZA6@|K=P$1z(;78M*JcZM zTip4#Kh95OH7ibSVVjk_R>?y}bve!pyr=sdt@URw%d)cmwa%d3Exx_eb9&o`tk0rU zPPHE7497-S#p%4rbrh&&MBD^4)cY9)Dd-|}mjmfGFR9E=t_fXb?pqXj9n#x+VLz$n zHi$6*@n@EM#0kew+>zF4e7okG{Q9O0$5N<@jQeNvw_K)}4LVkRg@v0ucd9X z`S5EdF7Exhl_Rx*_TSZgo#w{%m8bWuZg ztgc019ba>K(j%Mbs@W#Lqs+SOlMJ`s9nVMb4!Sqz^sH{byt-+SvcyM3K$#yL$I1yr zsR|pQ#CQ#ufZq0?@RCQR2OJ(gI!B;H28RUcqPXCUHkevPMRuk{OWW-W&pKYSBI_+W zCQjcAb$+fgS30FA`|YT16~|6svb#uM_JvKi8!}jRg*x+#y`FGw^HuGZ1P|ZNt*T?Z zRdQUytx#Lm+>eWI#Z~v2rbwJ>xKZS?+UPo8UDLsGxu!U6Nw*?K1EkcZraa?&zeRww zT|CZ{GghyR+B4)SIay^Mf&o0I+fY%NFP^=QX+Oe_MTo&cQW) zIMhLZ{lebq=Lz|xW*=%?1cbY+Qo@KyB7O5Bs|(s3FfBLCdusWeMi<>#f2AByV{?(7 z92{oT4oX}jswr|aNOdIdJYmfGzPrioEO0;6Eu9UlPV4b ziu|+$=Jy%J{GW4bY|%yCAWUTeI};u)N#S!em3dvFrCMCl8fOt|rtzm!VCM9I(D_l^ z`9oZbguiz0JF!)AkLtQ=`JV|(6HFDxW^s2e?zu%O+a%JOd9*-naV;U~RP5&y%BiiX zJN|sG+MCTc8Zz2iTjdi5gn;PnP2StDYI~k<{5#uGR~#L{XbjY5v7h*d3HHE0-Ux^c z90t2?@fl|EC~p7G_Q)pTGlEQ`|4$u3NJI!b|AOqKWaUH%NmzYY#iQw$%SGpW?q9Aq zjx%`7FyXg$pL+fL!KAM1+Hc9ikO@?nxLGb$?vw{sufb9ZndpLvMC&vl0g0RF6EmN4OVa zQO8iGLiWq%)i-|l?u)|p#%;|CgDKlRhEaD?e@)1@A*a$ErGL0Ci&Z>r&6Fu_q{VA$ zH*VEBHa7~(3A!4F^2^sHk;Zy))QzQF(sO%^Y@BDSsBWPYHlK>~$|{N6Ga2@Cnj+D` zO_y=kzrFa(05ZYzOaf>3o+lD5nbW_UGfbLz@5AuRB0>aiD$my_x!mmLEi}&ct_R3F zCDn*jr5(aB5d8av1skP;(d;?yIQ_I9Ndk`OxI211;j24zx||L^qP_5C!^^kmO5cxp z-?~aiZK5@~$c)DmK8{&$22vJcqO^XlhRt^v4^MdvA+t)fY=oFdNAV=5s{Q?n{qyxU z`6E)^K*d5IwkB@oV6e#_;P<$;ZT&b&kBF*+@fgsCf={6d*HNg zAaWklq8n1v@$B9Gwc9GW+Y=ty$59-MJ6SIk8)Dzxuc9S*icfpwY!9^&>rGI#2WkFi zXk#wxUvryV#uZ;8DP%ikikgW}hi{jHw$ zF5{Q(t)(y62aosDEB%}XM793J-IQ_^)gp5+Aj`Nra3}GW-f3S5%^AjE-^jLtQvW zD3&vgUn7C0sAUlVRQfAOAt+9kT@U z(>AiAH986JWv#QX6ldQ}Dr>b)xl*0KK!L3IG;hT@^QVbO_ySYN8m+F!C*|U7*W(70 z{6!Q3T2d6gXPfHdG1(o~oH+w0_zKpe5!%^%H%>i^GHaK-ixSZ5n>`>T5v>rn+?7vG z!o(4uKzTosm%x^Ai3d3EKMZbbfW7A<1JG|#PU_ARDl*w6uCNd5X!+nmd_ka~uciL| z-XEVGCO7%zLfuEl*RhL=vzA+*UEl`mA>~5B`CD9T{PC!f#w95`ZT*WbJMs<{X8Ayj z;zJe8qyy|)wEi&sw!aB!m+`$O@LqkD;@cJV6IBJ@=?CMH`?u%@evokvXbjRvhb$;T07BT@Lo7B9CYdbH>_BY3NBb3as9>thHxO_39gNd`Im z=4Pj#h>oyaD$ykVA*}IZ)#OCuR@jD_nN74N4ti*wsY%R}iAq`BQCbyE6CS$~*smI& z0Z#bVrZu*jNA$Ryr#Lx9g@q5TvhG-#;d(CVhyCsk-oZ|IP-y97$9%ka&>ED}^XwFZ zKbh8Z&M5C5f~N}9ZY~|2>XJX6*?7d^yL5i67h@;k*kISXE#!xz0xIOC)jSPH{nQwl z*(NbE>n&B0SQL3Dk3hVc#lUzZ)N}Gn-tacxYT`^&NFo%R?%)3WePX$UjH>h7H}-nH z;}^9~Toi3LpXzg`fAJ^&Mb)`vOA4#H>4Wek~NvKFASd6^{u(Tf2U$W_Y!2{z>#NX$6CW=BeeR3h*6jRB02Y# z?k1$gKMv)NTyBxYj%!x@ygn=1De(U9lwC{`uw8G2L?d!|V#?8*$V2KJpHc zzHx8ki#90aR%FNg%y$N!WzAkqXl1J$UTtdC@OyoEh|gi(y~GaY*zTQFd5JoCMjf>) zr?VCH<-`B%uU*k-!R-TsdyZ)J1;p~FjxHVoS3?qb@%O+~Teu`7D#)&OvvodbLu>c@ z!_N*g_mnmZBlwcukR-u$x!Mrqm5{m8xz3ggwMO-vb8d%ph9O9KGWtP!27mYEJ`8l5 z*#iVq`9m}=oMQ3gIaE#&KM1pO!K9E-R!SVC={L=0K@>nQ@Z#*BJzvUrc%%L zG>m|G5<1{=zi51$2{ZFimOxT|O2sEAS$+TSF(fk3+Wh&9bI=@h5#RfGci~oP&#S#AevWICIxCN_hI29A7eF)k2F5yB9dXNR#5NI%o-W!na34b-Q-rjSy9os65X89V#sUFRn+g%>S8Tq$6)qWWB z1fd}I!J)q1f%R>SdjqvX_x^);WjOv+D7cmxWSJpD_K|V>uG=%-W2_t03bLCZhLlQU>Bhz5{~)TYvc&tR78nKRh99XE3tXQ?n?~d851Sx3YSH_-9``3c;64 z%p~OgynWFK1$YUaEC;4!nwK=UEz2A%?wPq^LLLqq{Vn&yt5tWGH=1`BmU`o|1=o}@ z>#&T=$C5eOxzxYVyk|GBXWNd_yZJv$m^vfTf@>18T$!^2`c5N$@%yhblR#;L+u@=6!EAKlovC}?-v zLz$e)a9H9e)$rGuKrUl;_OpGrhB*S%tGkD$=UchcC~MAFSt?GekgMrXvvIIr=A}J) zj@_cvJwCg{+ zB8p?}qKno;M82Y7jy~5#99=5sa6onq9yHV~*F{V`RN`*f^TC1jhOds(pVC#=+r#qy z@KzHT6tO4iYj<><@K2#IHeB0G1aV3{+R*JO@AE{Hy3@FsnFy}c&&29wlbA?e^=Li2 ziDTKSD&#p)OA$28B@#4QRIPMf#Mj|V1V3qX(do38uC5N8$K6)oRHJp4ZTB{DmR!jN zL*)fMwe5E=uYHUI|8r%M|GV(2iz~V`OTX^EB4LdY5@ycGi%7-x7_{Nl>KFbr{9z+Z zt!?4u)a>5L@udY49JAuIoKMw_9}c;vZAq8%sVn-F?~P2qo*_~nO8n0YULh37-ze8f zA+NpaeQ)_vC(l60ewQ6AYvr(88RdR6`hjk#>&*1C8KT@vE!+wxnZuTtG3Rkl2Q0DGId zr9M_}ih<>RBWl$j3J?l>fGA%y$!H=Xm@yRTOb~(MYrkd!iPi%V89cmp{{`VzH9zuf zQ&Ff6F^gF?|a~Sn5cEm3t6J~fM3XY7+V)=nB&sKZ&}$ztRx|{#Rq-_aRwSFldD}#EXPh~z=h1}I#b&- zfr`QK)9yF$Jn**N-J;9&(p5Z7H(R(P9dCasb>Qh2%S5O&QDz`Wq*izqM`$w;PvAxn ze`mL6S8iEHEmPK9Avg;>SEpT;3wic6E5Kpszl}wdIfVR{4<=GoR?X2K+AMZ?WH`B} zs(QurP^zeSCW2_}70qk=!UDtqkq!L+>zno#W{@Q=-R#bP)i`*gyCeA|`^hGP6OSJ` z@n1#4=KlQwui3Jdi6AL`eA~Jzg;X#k;yCUFr``0BH<}3}u*a%}jxu2MqDZF0ikz+3 zQ|o3tA1`dGR2^)#nPyT~`f9A_Mjrpa*aBqlj~0?E5?s5U!PCp^fWPad4`%c92aln~ zuoG~kfJj0`l{A4enUS4~x|!Kok&wrZ9p$k^X?bKi*^ulCZ|;MC=Htj|SG_@$%+8+v zqmueU2G5IyXK;1g%Lv;%h_3DqA$7^~b`szleTIjY=yqfOju}p`3$Loc!enla(GMUW z>Pc#a)8r5na>|Q;Mr4e>VoaGIx^(>Scu5nJs%p+b^p# zT3z&tQ=s!DjqOJXj_G47wSY@pbqwq$7pSeHR3+8Ka_xrwL3wE!br zA4J=KIZE_)#si3l89YzqSUmmQp4k@_41bjEf9RYIkoCD^LJ=KQ>et%ok5QE!x|s=i zSQ;}A+1ky_Es(db9g+qSpOQzf5(V37h)3L!UzWb&ZGRsqkRfA_bFhvQj)=JJch1gT za&g3L%|!C@LS0EyQ zw{mZBN3#^w7t9@H&ZMKv+1It&MJzsHDXw1j-%9<=&;@L?$*k<}jP~r^6kjU{hxv}p zgj5NH;iZPEH~miC1veL04`>~??qV0e%(QKFc!4*!IU*Bzv66p@ME(dbH@?pVCQ4sH zDn?`e8MHe3N)l;d8v6GZbph z+Fjea&!E!>Cz7 zboZ(JGWi=sfF`O}HKlapZjoQ0hpK9?cEHKGnwba-14tzrvFJf$-s0mtU%={^3?8)H z3NjJ3|9kx4je&Z1xn=}S&O5)reMl|2>a>-RqR{Vdbi-*QRxodg@X7{+DJOe3Be=~H z?Jk~K3LH4Ol*a&e*W1o;vQT2Ie@8D(Y{=d)`T=~j8ugzy4SVf~Iz7gn^^EI(6#;+^ z7Txq~s`$fvIaU&ZIhFa{HjH-v!w9T2l6X%B~588?4m93 zew^t;Gp;OsFS3x;#CJK_>1GhtQ3DS1I&Vvww1_odEgg6FatrKrHV05jIKAy=IGL>+ zTxx1K`Kgs#Ay;s%6V9|QlhT~%$jfBXb&$6W{Sb2nQs=ekIa`;VZofdwOd0!@MxyAi z|69Ry;Hxe=ak2P0&zJEk!QqJ|O|*hxzRC7Kr^R~%ev$|Bwo~BpW+D{H5l*ina-PDE zN#t3u+6eOqn%9Z>_13HXGZ8G_0fv(S0P$|B^RV;a6ZM%xRoe`>!7G!Ghdyo``lm8r zMbce?u;l*G#LPF#xY&Xbc1{=(7~V@>nA50*r`!mNe4~8O1)!?bcm>P&R9=C^OhZig zte-gY>@Rc3?sEka`<=%QuU1E{k-Q}>42yWJ5@_sSzFdIuvX0uTS)vjMlNAcX$Cfl5 zBDPQTE$@%x^3O}1xO)m9hyjyD2x&`>=`u@=U2i@+rJYyrAi2+6Bx7U5>L57hoob^?J>&z;4csS% zbI6M1G+oI4M(XEc_!mZ@7vBP5#_(W0+IVVtpRcnrKoHpt z6r#PSvdfnharF>DNldBk1%PeVQ3}xGoH|@lB;E=2jmZ&1Haw8j|+zX_>HG-(<~sV6I|htqA$I3j5zGcCl;u0uG{uM z|Gj~Eeq?~)iGgn^($3%w((v!0_J4@Mw421z@oFjO^B`u7q_veh0A)D&iqj%N(>h9* zaYx%as-AY6f5l5>y>FcJB~4BcBJfZ!tcF1=bW?J#hI3n?OGx~&L-d0RB~>+^$u#il zB}E)1CLWwpsxs>_a9C5uoeB6CXJyRX>Y(};Lk$lVH%#EA1O*xgnFxDFiJw)C z7Aa<1Xw4!Y3%6i&OOD)UK`>Q&EM*YjG4;pe%;f&JA<%Ze5f$8F+{u7_X4!^YH*lRn zewH5|=+UlZsH5`xB;j)|Ag#`Cknh2b7_ebH6J5mJ7u35Kym1hWWKs!p#RJ2zCMI@W z8)K@Snn?Sm>3Ph2(Ek0_M4%qWFwoN>bMq%8m=WC!1dD~b8|I^%w<)rA$(-2y3zuE4 zgwg(FHNkrTX^m;|58YIsvXS_*Y-<`$7D4#>>X>yj($;#`xi z6I|QUbuhvs`%b!lh`_NuF(A?KZVRvjV*~!^m}*=yM{-JCs>&obTJ_b+9!R-f*0)pF z_$QLOEvod`KQe&zkpIY!%(xdpDo=$k6_5(~s3pZ!(I{=+X(mKj;<%-@mzTI!{qTdf#V+vp^O5V=d=79&`&sawRPYJ!v z=w-yXbHX|*AP{W%P>*$XWKs;VYb@6pzQp`mRpMrM2fLQ|?feuUPdCi1`M*_^L5Gt; zN%)ADxlyHM67oBQeO`>>ZC@g}6tQHRvxE5%bod_WGVTO>nU|~Tzd`Q%2I6q8q)CC| z7SR}bH^AhiG1C$&ffI_0a&CJXP9F9v%w-hs1}q=at_bA`nR%ZD3ibdhBV9~&rVPsr zDUMR_`oJ<|)){TKs!^SQrs?lOFMJQ^J*jDSsJ`**4O1t<6@+;NP9+_=J|xFe`#Za5 zo`c3W*r7s>y?++Py3ZDT6x^^+?kLUGE|Il>Mbv?&KMK+q>B5 zfF&I{$<-DJ|!X zrt@b4iBkpw+AgXO6+;-Y-2azC#WH&4Q?G4&g(Ji6vi2d;(e7t~+{3yPdDTA|w{q9N zwvP$h9IeBw?@G3Cn_or!#-GRe?C%Zl6)kZl9-Mz;8K{uy&Ct_@8M!BMWuyUPoXKNv zE3#sZgA~!J*}X6{lWsaoJ6;=S|FNBkdhu5!6HQh^40`Yf{5X?^xj$9r+1%C&@GociCCZHLy$~R^{#>$ z_HY$x(bI8Be)*Fd>`4Z0SVxT=7ev$z*Vms@|HOR} z^sCspkZ_(L1+s{l!(S7h=ce0WFZ?b;oD-1NwKIao_U*awCJZ4eX?;mtn$>N!W8IZ!i3X{K%0 zk*|_euD>=gC~d|azi$f0w1}(XrE*09N!1PeeyZl%)4zO+-tAU*pH92k{pb$pgixzV z6`9uIZqPd0x?u>*<3ps8Zl1x#FKVIOc3RH7j4n0)SF>yqbP?EA@@;3gFg;cEMEH!P zpdzJ;D@~7Z-w&u^U4_RA$^CDLo46Pp9ynSoE;;I72=k@sd+ZfVM2?6gjUcBv(6_x80ZXi8Pwbz5 z#S1y^>D113Xi)S#WN^Of_N@1s6BkCN(V5Z$bZYsT7Ri3>m`)$awJl+RhdCF zsZbz{J*SoP(Qs>8B6te1xyABf4QoJhLa$q0l@@{EQK~0mNt4;JTz$W$^o;${+AcDE zZzR=4WB|Po#4nUp{m5@kRY;^g0J+l0-h~=H$9B?o`GE^9=qrL zqMF4gIpNC1|Mqv(C-4Jo3-U%c6$BA`_Z1)4=m*O18v6T1LfHt`C%Wizq!_%!^7?#v zFH2a^XABb|i@SScXHtIvEproDf%C6qJ}z#U!v8Y7uEV`io5ayaJdt8CDlh+`j@gaw zM--lCK1x(6=jFBr5?sN~MXb-APCW<+z=>pfELWL^;bd6gw2B9n1<%SCNFvuiRR$=q zdP=TDX%@}XEmTjx^2B;NB};)$?e>iZ<&8atu?g}Jtqtg)l&M|%YUk?{O*YBrNZ^Jn z!22jxvMjsZ|4NGB{oI1DXml*ldfy1$5|+Ask$QMO@Cx!i5ff-!XV|&yY#E(4I)$^5 z;}7ct-yFRZ*UB8=sPQe03M@E;Wze#iE26p#fB0tTpFD4u$ZNML4G_n!!w!|PG_VgE zJK_C@(GNI&U+7Z`*e;}$dd5e6)o{`^sOP_88~q#hfd8Yd%;D@^oD9&kCN4hl<^(;} zcXrFkZ0sMiG>ekJtcR3%reT_I8rkQ>w#&~g{#Q2tMI!Fffy~l-#`AAV;yeuwB;jZd zU_`7z9?BkSLaWy-pz0+yi9-*z!%tp3pp&Uv@*-LpOEIfZS3O130A(RLaR5{i+?oW< zh;d*PY<3^_5M%sy$1Cu<&GzEWp_fL!-2}}{MLGJxd|*6Ipgqfh*Up{ES>G+VG}!D7 zdTR zKqe2GxHkLnv#AdCIlFRVPY2k=ae$LZ2;4=CHQ_DoJt76YFKH(BZCSF#7$Pu*el-GY@IZ;GROP949E|>oHec z=kt0mkyEX>(vsEz$r&4)MNN0!)+!(n%QXAy&hWQS;tUSQM<1phetSu+b=aj9vER09 z&S~aYcrdKhlItbByE@lc@6%u^sqrN*!Txv&vy{WH<!rYPQ~4)b$t1 z|CPP%A-wGp#KK?Sk=d~V+7NX_EWLLBcDhg7%>Pn+BHT0xf`wggtg`>fm2jw?^AVTA zBVJ!|tFIuh|8phJL4i-h;})VO?#m0byXxxt*yKR1&A5%E{N^7S#`=33otyza+Do4@ z)9^2SB-upVTSNT}9&NYhIOy*09VqsN1Ga<#1WX47kTX(G_&GK{%Hu++6aNF02Wmj8 zNwml%lq=N4|C-^dU?ohWap;5qt*jR_v?dB+_G0nqS=Xc51hqg>A^w>i+WkPg>b;W zK+sFgqH5TmB^mass4Jjgf5E6`|JHCw9?>&7Jc#oU_QAJ%2qG=}u#t!GZ3wGB8_AbH zZ{+ip$p{01;^5`vKY*IxZrkF}M;19X+^zXjfd1>Qi_#G{2E z1S$J|M(Rll1ZDHtm5U&ix^dB0;2H+_s;L`2zo&Yq?~gBS-#>H>L~kZUblzDHtbfOX z_ZrTjK7d{Vl6G6x=fJ0Ib-KQ}sCv7@+{B|rNZ@@cUO^!8;HTU?=l(o)4F#DTYwzdw+2{Y+t*=tj02Yuk!gh$G8!s#mdf_0{?$iZ zkk)lE4>M)ZRZu0~$FW0rF!mE`K~B``Z@yUoq_GThGeZV_Uf};*9+2!$KR^c4Pa^_u zif^y?gGoED)GeOepU4`eWfQ>(V^=+;(C z*DQ)y^PM+G@zUX8Jrn!cvbcXa^yE3a%|a;Infe48c!|{$HGukZ$d0!C3Kk86O|>^Ld62e#x_av+Ajw5%%X(J52!2M?mzPVMpf5o zCkFm27P#)d=_(;Mzm(>PZ(lS|Fp2lyP4$VydtqL8{vUhq8P-(VwG9UlQ9;nLAkr)W zL{LGbHysN`ngUUJktT$W5IU$M*Z>I%N>xFSO$S47f`Xxnn$QDCq(dmu+q;4@_dUN3+@B7T*F-A@HzOHqxa<21SVN>dxrYg*+zQ0&;^q*LEf!j3=oceOklj8;<7x5E! zSnfCj9lhKLAZDecXNeVD`dDAjclvM^|McZkq7QyAek%U_oK@>s()r|)%MkVkG;Owu zo#Wg+N!NXR2{zn7X~vjt!b@D*$@hGMMn|R93}_)tA`Ce2$KnM@6IZ2j`)zUV?_|EI zu(W>}@u=M9_eYT*?Bd%l>P8gv}K(PrzeP&KM;>GZnHvB)mPodE%Z+f zO;aCyCzVHQ#wLHhWgk4{J9m$}`DJV)HQh3gd7RD99~hk*C;WyxxSi=Dzhsx=ww3Lc zvwPt94M_HXcJXxXlu|rq&g#2UrfyW{Ax!>rppDoU56&q?nkJ3uR`r69#P9(5I~wS} zQ^SyV*?7Srh}{*Ri(Dg)@j9lcGDS%O%C z|B$Q!SDN;yRG1kkTz$l?a*L{&?f*GIcQ&#^^Wd{3-o6}dGyFVHpnn_9JuU2u!*ZhL ziQw*Jncq2k2O-%2`VaPZTX})U-CTS4+^IA1yghFs@H|r+#kY$;t53M`_Rux-pc z^XGcc4lcEtDCYJg-y7%KIODKAE%r0xV7s%Rzmn8DubQ-I zFKA~Dby8>l(zkbEX49Cfnj!gj@V`P%2od!H`{?6&pQBj>s~p|F`u|RbAQsvurNKbX zVb$19r3Gaig?}wUdJH8eu1QhqKR4^N5y@JaKi${+vb4onBtIJEK0oN+7$c3V$!6Sc%3U{{hnARhV~sri%7EF0L%*@3G#ntvqZ>~~AC7%{-6y@I3b$ zx!E)3OsYnJg?l`@Z^(Df{;1tvKpu{P2PV_2s)y&YPPzRv3m_ofEZnz*iJ4<;K|3(# zmupq@Ey}e^UvK||h?9bnR~#O2Ud?ytF7uvWn7LU=|M@9k)!y>9*0;=uoKHLJu|zmb z9ZhJSc28B_d7dkzqYQUDIwjXvFuY&7{z~6=&XvoZFVRg-%mVD)2YQZN1X>}m?>pdG zhb`TmB6jM~IQ&?Z18Gd`HwHNf^ajt=0pK6^r*Q&43LUll@uqLDbd7D0>L%T`3o{49 zMfQE#chr-Nl2NJOGWIa3L?yrM+Jbf@L5^>J1Tt~v-_`&+2-8QZicK>m9VZ$>KNNY! zmvxHSPv=HgA(Iy?S<)1jWQk@>Cyd=m)%E9`o((Ys!A!o&4u%^PPAQz#nOH1;z1Q|4 zh)vgj`^C^;+C5C?6VAnx`P9%iS5Sr-Rpg5?UHzyyN$1 z0%IBeEQ@=P0pZCV&8;py8pID5{MUBs+p=g^hldoDuzTqcY@DI3*S-BDxfNDnUG=)E z@B&(Mo@Z#5QxJP_4Ab@UVTu7`*(H<5tOc_BL)vZ~V$3%xGQvd_w$Sz8h~ zlul!$*a8ZUV)DiAs4>%7ANBF=th>}VQB|`X2-5*afg?yv?s!>cnHKE)_F8MvgbKhP zAUlw^9#GlTGarCUHEyQZwEku8SIt`mIF0}4NwUMDxLLwMp2R?shyVpyHxq9DGP#4N z>S)lZOAEIy`9A@nE)Lz~C!L-A8f@&-cdbfZ&LQ)PWq1xaoTSA59?2jNJ+loVJKssT zi=jQ^Ky7{>=uxPa`!F%eY+lSRy0^pU>wWqX@2JA@T zb2C(UJ+nQQ1CdoR!<=c>lfHiFfAG&XIPc?_e02zhgHvi%s?3oe3_5dTgQBlG{_?&7 zvGC^JCCtV^|DLLvp!~G3dsp2vwwkgjz1i?SQKCjzPeeC?jiF~%=9k-Bv@3l1pmZCH ztRZ&bnxW5rEzw}Pi9pj9V2M7-_z_a88AiVlZoB-$T72w8%{w4v>{8(1=FW>GZ zL5_;V-HW_kDHbHc6bRhzCrpg@9ha?OVo6Ls{;I!t+5Yf~^wRXSuqz`#*<@p4_I*$$ zyw`=3iAnBA58|BSta>ci~fzCEXSe_BgN4pP#2RGh; z11b33pxHwqk^w{xzX`A@{ZWL{7mOocY6x-Y9(EFRrg@N)f_EP?l)jz2rfhuFb+7Us1_p|vezG} zM9J;&IzF|x@0Q=4Dr)=Lx#RGBWSD|-&~yp+JdDXNy;BGRf4H6?TdHpPat}S$w%G>> zkK{r*l@QM4EyvcY0L~M6S5Z***C?*3`b&0pAGNNugroZJ-z9!KC%h=(E3m)W~|iiz*(^pBt8%2h(wSs7^XLPd!V z%!P4xIuG}*L(cYpck;6G%h9`4Os*cGxmy>Hke{|dSUYk|wh9cJJzG06^$GL>77-@x z)DnqOGpnu#`WNR`R#^K+!2?(qZmnb`ne+;-A5l0v@g=a#L&(J%rU~v?2H7&h&k|!z z3C%Nl7j}2~R9_6bshh^O*$yxZp1ORnYC_M*)1N8w%xnc8|Do+Rj?^;wl5>o*82bDo zXU<>tQ$wOv19oje!_65eACRls=0h%?xx3756aMDlx;(4g>4JCHoL(KAD&AYvs;NSF zpUD_5NH`~r`sG!2wOC{ak}bdBI8{tJ@tEto;ArKZ7u-F0u{)3?ieGC&at}~dm5+O~ zF*Q?t0Nu%;)^z>u5bO?tCi%8x*PInHArjIW_E=}^-N_>+Tz=^r16a;e?{y7mY*!uE zycNj7Tf?o3drkBNMa-B_YJP1LK?&KR)?Pn}ObZUw+B*O61d<7pK;3~#ZF6AH2bxGB zz@k6A@VDzwP{-582B|GLKW5Gk{^>NS$~o0lb(+l& zZMVz-&~*$q&hU_P**0;YAb3?2TG_^thiov8|^D1}f%2 zRS0#pJGc*erk1rD)$rGbVwEojO_NP_c7I%}QIEV(}a_`Cc!2) zc&bv=F==CTc`Yrtf3j5BDm_pIbvYzX21D$y$8M~P7_H6PpDMbdQ$81NV)7?(`)~xv zVDE!g1l4xp4&B;AKGYI?VzTYpP9taeFYas-BU8hTpbL-b)y>F!atEw|hCC$&6umZc z>LvW;qoYKqCxXC2>ha9)c>pd>fDAa6c5?l4=2zAIP97VcYx4nGfyZtgCP$dN-|;r; zab6ne?HEl=eRmRZ+7dvn?9KVK7M!`>V`%=|C=;Eww4B)BJl+duUm+LH#)&%7J}M)) z*s~r!)Xpoa)w&Q{x!=HLu zHgN-nV4oZq@oREjlaOrJ+WW@6_i3|9uJpk?DaI&cMJ%h(#M_1>mgL=Y6!3!7?q=M2GTjq_MAB##gq;#`tGYJTdgOdYWT~YoSRU2bHxV_TSu_O z{WDe+8V0)(?K{t)wY|Q9Ldj4O3jQ$-eBe@pWYslB4cb?9MB&e`pO;V)F!m|k{& z3bP<%$$3;DyrjQB7Ot(OhlM?T@BXhhE10U~C#-CM=nL`@Iy58w4zRV!!QLydTr4ct zGZVwL{GS8igm~cg(u7N=1kJ)Zhh{y@bq%V7fH_EW>tk%sGyGqR4(4WAxdgU@X_@O_ z*Mr{5eIRzEF=a6)NK49?UI@9|sr=uye0O0OkLT~1tk8<}s6?2>OO9FDI`s<-$(X?R zO#JWFrF*wm^@H*Bw;IC$c^W_LF8fWV=@G`@rgrQB-rimON9-j2b$LG+ALbbDMmN3T zMH3r%@4%pcnvK(z1SMc8PBQr4-x-o|kZB(_Wp|+xOB9|d5!%M@C&BX?f*7)pwA+cP zWLOUo)-(U)U+d|5*~-M?69}0AEJ^$td#4L5d9VoORSmYZy8R$oSr#`t*aYLdo4x|L zlMDPCRkY`YAe0apCN2OilfV;AfG!cvvMyF~en;MRIe$ps)$q5zEj$0?l+tYtcFj3l zRU&-z5qs_64ZKypU@27k9aWEZwS)Zs+BD4mwQOyEFbSk3^yyp5wiih%{CV&VE=UbJ z6Ei_D(eiI8mJvicQp)=_iP<)^-5{$crXOr7i)vw}KnHSuN}%r{7{RGM@={|)Q>-kE z{QkX>WF{a@v3(z*jZ_lDW_bXNv8(1 zlmkr%=M9+rU`d36GmPKEd8)KJ)J(*>#!#ZOAzl(D%Ic#7@`UQ&F(!efQR@wX)e=_@;LB z>6ue+2Zz2h3c@odf@FT`jV1cizw%-5vB#^iRk@H487=4yh}N%%mhT-4)RfkLJps?d zy#-$Ob;QdOZlW@!)5mAtdb_M?x4ZI`Oy5_Ad4>;Q=6+8PZ<>E6OvGKQDrA63_9;-- z-YBB&!hy%MW!c!;80wVv(kO_LKDAd|8EogtDW5(E^WKqwm7TX)bM_Yb+;mVXxv10h zFVAEF0@Ahb6Jvca(Z{HI$>pGUhBK?M^BsuO;cf^Lf$L?*lki_hJh)NLsP#Wys7BJ$ zgRe6sGOMV7Z!ucx<$vus22_*4K9RErA^0dL2tJ4Nw;!M|yc-9@xN`rN=`D=m|lfnF`oq z>k}6CBqL^HE+y|5H7Z7oX#|w>R#PqaU^Bcmi_7*YOy46g;E^IVotl5`7tpFow0)_z z?nw!4rg+Go7eg+8y$yQN%C((q;5pV0vQj(8^G_-y!!X#kvWNCvI(uZ-_f}c!#rmBD z41?d3kgPno*~n}ji1hXSOAU9zf%EK>f|g7bBF;u9wGANpi)^9R6H?;}NRvwc?*%>% zl4VY1a=+*9`O~KFI6P2U+GC~s*>~grrWHL)7)5?9-{p^T(q=Sv+b}V945xcK^c|ZNTsL5D*^MLa%E;p zXJ@`-ir)Vyn^3~qLKBhjrL_UH*XFcCQ`eLtn~x0t&@~X78{=T5fBeT7mMs z>%X}Ls^3=FE}!{!7xdJ-^|gp972lPhBmW_h;>+W3VV^TWM z?wsDGWWJMZ-V$@dsh2g2*~#;>8sXC8|5nM(GIOsH=CuD_*=DkSzw+;MfPXpoo7?|8 zlf#n!CRG3Pq5pluZ&UpLYlmMO`FQ%ZXcOy~!-7)wlw)Jb?)J&wBvULEY7el~x;#E` zl%M&?p(FUiTP|#&rFb!I*f(rBcwgPL;3}jPW-Rt-hD)5l*Hj3|Chdw^| zQ#zY#*2+=(Tv(z!DUC;^P>av3S2;lWFiDa}B|VJCEM!g|i&cy?PNW4-d-xO5BUcxu z$HU!qf6xvm!cT&jW#ue_~&PGEIXIl$l8Q#-kRmWbn?qJ9(g zRF0$01uX}2&~tH-t1TQ{DfknsX8BJ7F9orrA$th$e7v^_^p1fx5!*%i_A#&C%z?4R zdy6>dGz2I0EHLZx%yV?K(2^S=J7)iu98<*Jh|nb>FGgChT@+VTuCZ-9tx_msyP#Zi zr&|Ym!)j5fM2XaEyXd#9gPRx(4c(Uh76~IwCCIDPNDodAjP+XSZzw3#EVs4#mK9hn zD6}VxS&&>*E5;K1+OqMP4=0v7^Dk74%>~*nD0C!@S+*59Z9$c4l#bUN`Mf&~89P1sRM5<2w*XfDIsr63x=?!(v$^5Eq;$OX#-RwO##=B;R`Xu?2PJF%AvDP;iSH9le zj4ay|)Zv*2BwK>9{SRhc>59~aIK;!D!XuB8z{@fpaG)gpRheaWwyaR`2VvCpR<9F* zP6S1fV%^|3Eomm_`OA_{ce}?$(E@x|r}?pSOX$S=OD{EHpJ$}!&Tmau~CjO%Nte;%k6XQt83sVQ9l&df10ho#c$QO z8yKEawAJ@3J0Bb$Y-^+MmsnzSTHMK4rlLYFfM~gX2ul_tDCOeAgna(QO>p_H)(#vQ zFyIl`v8o@;R;lZK=qU#m^`z!Z2U<|u4TGELtcVCoJ0KF>1E)j^N6RbLu)z0#w;8Z0 zN<9--eMvhdwVF|$>x@3|gg)>sZ{^O&f|b`*A2(0I?80k%G@P0xUQg9>=yGN8n3aZo z?V3GMJ|=UFMd}7tO{7?zP%0#Us>Zg1Pv(tD0<8w4@~q!|B&FHgys}m_!d7IdfBYmN zF~Qr|o%*zYtpqpF{FA4icEuNks;bvnyi=}6cIDZBIM89$r>@b`!ctpNO5DLul+ z%6Z!g(Mx{8iA2FGGm>pm;x%4nqz)cxWvM`nz{r+r>tfNGYj4dOByvSp;OCm44xum? z&go6j>$0O`_kMhhAi9KZS<;%+Grz%g15bBCxR5uFpn4-GDRnwwrF(j=h7tbb2koUz z5-nz%v(gB{c&O-N=lerCc=4SHku;IWZm=#fw9`P*TJf}o@RA-u8@;55n~151Sk_%M z$e6xU$2Wv7VHsy#ycd3$np^l1-{z3y>dCFleJMVa7X{ZT9 z{c2eH+FgLsEl@YybE0N2CO_#fd{I_&j{M{Rj||^Y6LD}ZxaGu@g^6gML@T4@;NPG zdNw;G9&@sJGLfjLIArl>ZAi*OV~$|RuJ$|DPYF*TyVBZ7W zKk3ml3m)MmeVTrTiJFaZoW-31UHA5h^eJ~QWVDfki{+$-+t=NxhR$v1r6hE=eWnRn zk;7%N_Go~>Q(8aI4rWii>@Z%!syCsHNLeqzAGrQa|5lMRfz77-+4eJu{EacFHvQD$gF0h7<@b5z&=#Rz^c|?rxTZXzOF^V(U|yP*ZCL z3q;Vx>O*qfC9#oZiZ!kN+zXs=>KSbJ1u6AKNh5X`0e<$`bbDV<`Y->D@Azf-@l9Qe z5`C^bk5p0}ZolL4^(73wr<|noTbbyQ2O`VzATyQ#FqkbrpYhn0&=Glhbye}TJKz4H zL3Ci$>qA3B69;+2dwg#Pk41l5Nio3P5cYN?sM=@xC%NzEtS)*zXom?9B}v8)Gs8VnaD))Fw-I6E8ukzjuR;z~6(`FThEL0JD z9Cj^)Bhk4fEKl3H&SsHkjte{YifW->fhc4n)M%O*CILPsswhpO3oi{JKGQ|6P;2_0 zimpo7VLgVB<*S5B(o|p9!msxZ>NDv)`^7ijAOaEsOrJhJVGj?CpwT0hRIcC~-iy|( z3|C^w_seS}czGt8C+ob7N7$!Yh2!V#me{d#C5S>A{t&p;FK=s4 z=Yv-hOtLh2sJekztXT%a-ou^|hWO|OFVxNsl;_%Osm~N3%V)9i-HIH%&c?x1253p+B4w;ml6hi*}%prpKczE)Wh0h$)yA++seK}{SWw`(*!Wo2#Zv@^Y!P| zpSL`@m>6!O?^UKoSCYd2Ns!eeD~kV7UCWcouOv-slX}vxn&gg-qQ66jUzvH1lzje+ zI08v`{@AjT3Td!8;&StqnP9Y8He!Y#C(2ox$a2aH?ikbPj~^eBJ?R|Zh60N5yJRk5 zm2ZhhR~{wB`wm&0cO>OR42=!Uy_J>(yS_TMDj_=XV|6Uj?=Wf22mU?o8I5%swsKj74}s1o24oOE@s z|MhPqOn_>Qa8T;;b@3McTmE)XPKqt*N__8=AnXto6KpCZ&zn!`KCL?jCw<8bZEVOI zQ{UsqgbKR%W~v6QM;=6ct_PbGg+HO24F6Qy>o442gofwp-BrA~E$k{*8BJ0}d)oys zaF35HqMZ+hUzdN2KQNz(OupQ@Ka>^b2=d7A1r~(>P6Pa_xzEs4^7$EF=?t}`Ax8=ND@uUlW-B8X7w3- z*d!#8`MUE0*C|DE8_Q_=;}8c_$XFaY&Tqmog zk0w(s2A#swR307qhQAVgq-F>iU2Qg?RC_rt-baUz#oxd0s}Vf5q3grePYJcI-H5Wt z4<5-FZ=i6fE%?7fGaE zk?;Ai-N8yv=B(cgCh5B*7YKRJdcCh7gst8bpIFl*h`{4`Yke*g0^cFM&QUl_nK|cg2&i?A6g|!~JgXhvCvoDJ5 zRWY4${r&k#n(d#6<`v$5wLO*^&rwOi3s9OZPiq*se{9>z8$PvcOz2u@uGVqToViOq zobm?Ix;!&2_ru9aM#S46tDKJCML-k^5bAT<9M7W)GJjkZ~g7q zx$hixwsD<|8+JXTd0;&%spri1>5(aDy86s7s)0TZuxH%S12S4z<)b7v0$-ORdq#|_ zd(#l1yBNQ}#M=UE@?G&`9F{E4BaA8Gvb>gX4Vyi|4~b@2y+0%i868G^vH37>N8=}myZtGMYY|4o*s2~HXlgtN_``i%Iv zGOk@U(=>CK%O4BH7UDCvJRkK`DzdBuzfC_1=_I^HyIiM>H&XYck2Zyw%iSJWSyaYM zw!#6tnO=N#<6{ih%ECCZ{F8c^g2nbo)?654I75a~Ig-$=2<>2w@%})41X*rEXFs`C zi%O^6WjNce9CWspn-hJPgwHKPo7fs(83HEa$4pWg7k15Sq0cveK$j&WC&&43_UMuQ zrTBP#Z^Amhsw4H~oG4V|gZtJ|DM)}SiQQ)iWu9oNgB4leWa3Rj0;C_Z8D+$mMdT}b_zn4@}FDE+}NZfORJ2)mkWN1>!F4nNo_Jz4FqOJMi0W$L>guR6&Q zLOdX5+Bb)vcFo0+N(%O57q z!WJ*`gunB$q4T*s4ZAY4j3|`ipJF8i>K1~F@b{f{v0a3+QxDln#H*8PEz{&K0|?@X z^!K}z`>5ce#X(>N5_olFE?~=*E={s%kWYmQZKw3|WwDyQu)@)Ixoj)2ku$WO=bB2l z#}Nu^eGgPLdHKzE5#qqla6f-yJ>2NKbgyDrMCu>)+>bjZnJ4`Jq!@n8aKAC(p_? zETr+X!GUHu^{^vIU664@2eu~MM-Vn4?`w2E6kl##dr!kbFGGT6`S~h~5^bz95&ysx z8GS7&xpzJdnT(|Il)L8?OcH1YfKCzcVT1tl`9T#jw-C_9)_%_}^r+bHciA{v!XE&41tPP+nP+thla~p8AUzTP=a;io z-HnT&6_=kESI5Rjzs_OvE4BS-wL5C44Dq>5-<5td&MSG#Cq2h2GmD#M`=q;QvD@?o ztqlIuzN@lb5yc0_*xx3c5pAnScJvKtzcp~_ZZxMLhQn^0>&A&_wO* z$0HFMU6#HKW^liDf5=fC?1CobeR)*7L@JhS0*810_5w$#zJ-Z{*32l7_%KE8)T_89 zBL*z~+CidlU~QOQgg!OQf0I>7IRz)_FLHw%?;FCn9_0TTnS`~~l0_9}eY|R$B8u0> zM71XH4Ib5w8qyWWRtV78u13m0-9Uy-8q)k=#4sZ~1f&HNN}N)n zLbH%JeQq_M6whSS_Zmxl3lX-(Gb=C4G^bWIT<|#!o1Cc$5|4gRBw6l2Dd|=WItU4D-W+^!e@!a@L6v z93b?A-j>ki7hRPx7N=+FLORU5X#?t{Ku%IrfM>bjT_>$D1>eS>F)-H$y@O z>32^&ne0@A>*UA*vukdMj8ZX^U`v!b-k9J{@XN#RD%vLk7F3@qLVV5vdqq7LriYD> z16Pr!RL!H?L^>j@YzeV-Z7FE@ABBTgR^wc3u!x8}MB2lS1R8?A5ta>YzUqKrZ$c0K z9-Xf;;YEK*KW(}#Hk#k-ZbB>#O0$e1Ha>wC4N!p^ zzh`-cYE7=at<^ErMdz>Au>A2f`EqxSDr?NT0!f76hY;t9HEX<~WBj(l@`|K*LLAH^ zPB!$UkH%3tQ+?Pv%(*WzJ(=^kgmrYxbfoh`L6mdbq009tRam|p1gesyY4k=eep}JL z4Fr$UCx~1p1C7Az%O?M)YL{Zwqt2JKqrk$^2$asZkC%B1DW1Z`o__uTbXC&3pyLqC1&gGV0um8wSq^fn4h?#nOCJ%b-vTuwr#A>U4G$gRKRh&;)oBumns zRqf_gfKclJsd*;dvGtZ zyFx7sK#8T4#?;M107kN;$A&odSQ+{KkJi-*8>iRHmY<`!KN4&Gkx}>&&OgiVIXoS* zRnCsE&`!O`kj*G}dG$Fd?vZ>w047WvH!*{Y*x>pur=)Izl`mn8!Rn`DfYDLs*|8&0 z+s!-pXmA$qMyHX_miU*cPwKvCknj1j=^swK;?_p#cV&hXK_FqE^g8FGjIk3-FdII(&@2@fp_f}tt;G7XZ%&ETGCGobKFBPvJa1lGTEaCJDz z1}KYpKK)uJdwSevI9xf0bMy_yC7hzK4b_ej+@)6iRAfo=u1(%@3D36g52(FaV=VZLK0`ut z;WABn6hHUF{RuSaMMP^{)xsaM<*EH3xn{$OJcN|bFw^af;}?x330Ag zuC^n8{Wij4Sm080;7I(Peb=$6HbwF`I2BJTN-3GIJVtYiEHz$IF;>(Y2psAXDK-lJ z^P}U6@D)OL8gYJ!de})5G-c0zfec)vF@ctZQTb}PGMdNoq%I+j!ATpxu&Cb>G6;gw z!mrIxp62nywS3af>TF&*`g3Teuvmtq7+H3dR9DN~d<8)qF#-fyKc+dHf1YhD3a$FZ zF!uZO6|6@unm!Vrl!UiEwlY4e-ep1)zyU#8P5ep&nF!e8~V z1SN|rd$I}6>q@@vgR<8aW+2m64VypBeH03bpl?f*y_1p&O{~>)^c@q>EZO4DF4l4 zs~I5;k!8xHQbSzg2)~Up)*~E<*nYXaxRaD`>hf|(&sdyN0b)hBiRt8R3@ct13$+z=-V0O?xoO#RWw)k`vq zixtwxSCteAd{_@B;3NX}#H{<{CbE4)?>&<%I_a(RA&Z91gCJiC+wT zH=fn2V1UgpAkN!n66?a)QH7Y9IJB5qm4%RTBu!PM_&ja`lFv}a%?=TaAx_XKQ(3%b zX)YVui$O|!haxJ+j9aAG1UDgKgcFSW{ie3}lyzKiVoT)&L-U+p zNLY+OS+jK_+Ag!F+i+!o(#d62B)hCb*Vr>9R?c$!wny-f&*%oml2)t;r8e!0QX-7X zbJzHQb>ck_EFslOe|9;I(wUf{v$-BKfwsfzCInyWB9%cS{+`X+e?Zr0uT62nAA3%5 zQh;KOrIpsPh8Mo4c+PVYk7W`YjBu4bhNZd$Iw|MCS}w<)E#}ec1SJVlrDNvW^0WQp zMz|Y=6oJ^+-Sf>u0INGq;!uKzTaL1X1Asr7!oI&ZM-TKQOpx}hXK+j(K?i>pHO zcjdSEpzVu>ggW7+3QA`~%8UU_iWCt&v(c)17nXfHzy99O4%Km8tmDH03C>z+On@?J z;dh}hp`Yb-6u-1;ikry7REX77w_nk6wh(n9<=pZNp>*~b;^=XsXC8vB{WFR4RU8AA zBDp~wB(8bRs_LTs##|t|%CAOI&&kvad`c8-bn)BLJK0~(!k2+4D3d5ud4b(Op5fJ0eIhQ23y9nLc_yOq$j^$aXT+vECD;&SwMRRSJ9O01bJ4u31+;Udto+c_&Xwx1Td^LREX>bJj(> zOcUA3@#P3~Zz4_ArhV>{5@ehZBOF)U*E5OtS`B?IgG1^C$KtIo#rZjsmyR~`v z==&V9oL&?;t+8T|HgNQM)jh;sm%fW_B!kMN;O$D^9Br6%bsJ_Gc$cjQDe~lSe9}E5 zf>If=!1HJJ^yPYa%|DiksZ3#CzRx-*t76<@DV@BjWx2N6nM8F$w#Md2dw-N`wVl{Mj0fu< zC54N4ThhhFhQCvpf}DLW;3gPtgJazMtR;_Uyi|J>O{M%iUvk$R=a&z2n3I$IH=jS* z6X+D(zb(1JcW7id;^olC^j@dTa_G-?{z`7Ny*XT-Zf`{2rPfzXWxD`esB}G(5St$Gf-vvYv2FScO1p#aZy|UOa4ioT(I6p<{B$n4?Z`gs#PDc^d!6+d6%txQ$zlCRBE%E1TK zoT;nsxl<-d3eO(UOI+i5toeH~rq9Lub4}qpq>14~miNam&#*(*ETD`p$}z zIg@E?Ooc4T*=jBPLd-xpL%WkN7lgj8iqKt(6#U|JJy!eh?ZOz`a@7;(xZk?0oJcW^ zq-g`$1Q4DN62!zgOp4$9@)48gwBAC>`aAqnkJBfARF)Ix_h6hNE$r(x<1JmMY<%~A z^5Uqgx%uehNq0Ye_H-K5?J(-$>lbkoCFq3~3Hh6olW^N}au&99IG2bOD)g^ev?zS;$-c~WH4|a50|JDETI$I-Qt+p^fsbt-3zgKC?$cYx`OSI`Em5qp-FfnFrGh zK1B-fPlPSLD*V1@I^+RLGV75NGH;PnYu>@b>4S z@x1s)`CBrHv4*%)xXiV)1YaR@_+ z{f(CH4duRUau>p8ubkAH`3uhAv)Cr*AO}w=&PiRdNhoz(NFM)YfSdS1>C_G{{bism zAi)(NQq%HSUaFr>A6pqggEXR`aJ)uRD1Gz=gxt$9)rCJp_xwp`z*XpW6OR7+R?Z^c z!49rA4#6S*;o$%cc`iGsl!*^(hA!npCXx6u&NJB%XQu9U@waV25LaH)prhhV1gr&% zq<5%7*)K$UJHc-Gfv>2lcuy&?l{ATb=o~N}gz$fx!BUc@86Dibl*S~ykNQTVXcx?44^oHO{ z9g1pdFc?#r$JKrOe&RLUL_9{N3;s@cA4&|j%CklV7cl&}UDaK=b2J2QthVQ5M7QFs zVK^h#LtHpDF7v734=s%H_Z{lV#0ND8ly2hK>))SmHc5Ps}ok#9!Ix#u4?DYt+5Mys*NYNK5Yd!dt7op;YOnl{77ohSIs zw>M`az{K%g#)4J|1cE}z8K8ed^er|@@!(`Z=lc(Hm1W1(hnNid#I+3pVg?o)=JkAUWr9dAUG9GSW;K@t zE4Ot;qDi{pVn?^)S+($S{-AXRRt$rT^3W9U6>=+c;)xYBYYrPI3n zJnSP!Zigzgl$vh#bUyxW0uAFS!=yG$emPV_!zv%&+6O@sE#hqpo9Kq5vDV%JchF8l zPt%X4LC&WTs<}vIwGZhd+C~g` z%`9va_9==5+N0+*ppz8Zzi$TKQ~9EI_#myxcEzdyXb@f{4MZv>;kT8P;vmY-v{nDS z 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%0D} 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 diff --git a/docs/images/nf-core-chipseq_logo_light.png b/docs/images/nf-core-chipseq_logo_light.png index 51a83b3d789d5852acc2bb044650b13785c6bf41..21283bb16d65d1bfd3b4068ddb7bb6a721f3e38e 100644 GIT binary patch literal 23897 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�O1z^F#oul_aeyHaOb7~9w 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�ev`Q}H7y#R1zKkC5n?0_OP7^FqWWeXhX0t0pNK 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