From 1358cba9004d9ce007ac227e6569e02fdba24461 Mon Sep 17 00:00:00 2001 From: Mike Heinen Date: Fri, 12 Apr 2024 16:29:19 -0500 Subject: [PATCH 01/31] Backmerges PDF generation and other configuration to v1.1 (#68) This commit backmerges the PDF generation, enumerated headings, GitHub Action, README notes, and other useful peripheral artifacts for maintaining the CIM Modeling Guide via GitHub and mkdocs. The 'master' branch had all the correct configuration that just needed to be backmerged to the v1.1 branch. --- .github/workflows/ci.yml | 15 ---- .github/workflows/generate-pdf.yml | 25 +++---- .gitignore | 2 + README.md | 72 +++++++++++++++---- docs/section1-introduction.md | 18 ++--- docs/section10-cim-management-tools.md | 8 +-- docs/section2-references.md | 6 +- docs/section3-definitions.md | 2 +- docs/section4-cim-overview.md | 34 ++++----- ...-uml-modeling-rules-and-recommendations.md | 50 ++++++------- ...uml-extension-rules-and-recommendations.md | 24 +++---- ...ransformation-rules-and-recommendations.md | 14 ++-- .../section8-cim-uml-version-control-rules.md | 28 ++++---- ...section9-artifacts-under-cim-management.md | 30 ++++---- mkdocs.yml | 51 +++++++++---- requirements.txt | 52 ++++++++++++++ 16 files changed, 267 insertions(+), 164 deletions(-) delete mode 100644 .github/workflows/ci.yml create mode 100644 .gitignore create mode 100644 requirements.txt diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index 4a36c25..0000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: ci -on: - push: - branches: - - master -jobs: - deploy: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 - with: - python-version: 3.x - - run: pip install mkdocs-material - - run: mkdocs gh-deploy --force \ No newline at end of file diff --git a/.github/workflows/generate-pdf.yml b/.github/workflows/generate-pdf.yml index 78d5f39..2281347 100644 --- a/.github/workflows/generate-pdf.yml +++ b/.github/workflows/generate-pdf.yml @@ -1,32 +1,23 @@ name: Generate CIM Modeling Guide PDF -on: - push: - release: - types: [published] - pull_request: - branches: [ "master" ] +on: workflow_dispatch jobs: build: runs-on: ubuntu-latest steps: - name: Checkout this repository - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Install/setup Python - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: - python-version: 3.x - - name: Install mkdocs documentation tool - run: pip install mkdocs-material - - name: Install PDF export plugin dependency (Pango) - run: sudo apt install libpango-1.0-0 libharfbuzz0b libpangoft2-1.0-0 - - name: Install PDF export plugin for mkdocs - run: pip install mkdocs-pdf-export-plugin + python-version: 3.9 + - name: Install mkdocs documentation tool and plugins + run: pip install -r requirements.txt - name: Build the documentation including PDF run: mkdocs build env: ENABLE_PDF_EXPORT: 1 - name: Upload CIM Modeling Guide PDF as artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: CIM_Modeling_Guide.pdf - path: site/CIM_Modeling_Guide.pdf \ No newline at end of file + path: site/pdf/CIM_Modeling_Guide.pdf \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9b72d31 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +site/ +venv/ \ No newline at end of file diff --git a/README.md b/README.md index 576da38..9ec0577 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,72 @@ # CIM Modeling Guide -UCAIug CIM Modeling Guide, © 2019 - 2023. All rights reserved by the UCA International CIM Users Group + +![image](docs/images/media/image-header-1.png) + +UCAIug CIM Modeling Guide, © 2019 - 2024. All rights reserved by the UCA International CIM Users Group This repository hosts the publically available **CIM Modeling Guide** made available by the UCA International CIM Users Group. This official guide is managed and maintained by the CIM Model Management Team and can be viewed online [here](https://cim-mg.ucaiug.io/). +The final documentation published online is generated using [Material for MkDocs](https://squidfunk.github.io/mkdocs-material). + +## CIM Modeling Guide Discussion Forums + +For general questions or discussions related to this UCAIug publication or specific rules therein please post directly to the [CIM Modeling Guide Discussion](https://github.com/cimug-org/cim-modeling-guide/discussions) forums for this repository. + +## Submitting Issues +For any identified issues with this **CIM Modeling Guide** please submit them via the [CIM Modeling Guide Issues](https://github.com/cimug-org/cim-modeling-guide/issues) tracker. Be sure to add an appropriate "version" label on your issue (e.g. v1.1) corresponding to the publication version of the modeling guide. + ## Contributing -CIM Modeling Guide is documented using [Material for MkDocs](https://squidfunk.github.io/mkdocs-material). If you need to do work on the CIM Modeling Guide you can do so by editing the files directly in the `docs` folder of this repo. +To run the site locally use [Python](https://www.python.org/). This is cleanest if you use a Python virtual environment as shown below to install the dependencies. +```cmd +python -m venv venv +venv\Scripts\activate +pip install mkdocs-material mkdocs-with-pdf mike mkdocs-enumerate-headings-plugin +``` +For exact (known working) versions of dependencies, run `pip install -r requirements.txt` instead. + +Once installed, you can then run the documentation site locally with `mkdocs serve` +```cmd +mkdocs serve +``` +You can view the site by navigating to http://localhost:8000 in your browser. -## Offline Viewing -There are two options for offline viewing of the latest CIM Modeling Guide. You can download the latest release of the PDF of the CIM Modeling Guide at [releases](https://github.com/cimug-org/cim-modeling-guide/releases). +This project also publishes a PDF version of the site. The easiest way to generate the PDF is with the [Generate CIM Modeling Guide PDF](https://github.com/cimug-org/cim-modeling-guide/actions/workflows/generate-pdf.yml) GitHub Action. However, if you need to run it locally, first set the `ENABLE_PDF_EXPORT` environment variable then run the build command. -Alternatively, to serve the modeling guide locally as a live-reloading web page, use [Docker](https://www.docker.com/) or [Python](https://www.python.org/). +```cmd +set ENABLE_PDF_EXPORT=1 +mkdocs build +``` +The output will indicate the PDF file location. -For Docker, do `docker pull squidfunk/mkdocs-material` then `mkdocs serve` is default command so you can just do the following from repo root to start the site: +## Publishing +This project uses the [mike](https://github.com/jimporter/mike) plugin to publish multiple versions of the documentation to the https://cim-mg.ucaiug.io site. Under the hood it is using [GitHub Pages](https://pages.github.com/) to host the site which effecitvely just stores the site content in a dedicated git branch called `gh-pages`. - docker run --rm -it -p 127.0.0.1:8000:8000/tcp -v %CD%:/docs squidfunk/mkdocs-material +You can push new versions using the `mike deploy [version]` command. This will replace the existing version of the documentation on the `gh-pages` branch with whever the currently checkout version is and give it a label of `[version]`. So for example to publish a new version of 1.0 you first want to pull the latest published changes down from the remote site +```cmd +git remote add origin https://github.com/cimug-org/cim-modeling-guide +git fetch origin +git switch gh-pages +git pull origin gh-pages +``` +Then switch to the branch you want to update and run the deploy command giving it the name you want, for example let's say we're going to publish version "1.0" which is in branch "v1.0". +```cmd +git switch v1.0 +mike deploy 1.0 +``` -For Python, do `pip install mkdocs-material` then once installed, the basic commands are: +When you need to update which version is considered the "latest" (e.g. when going from 1.0 to 2.0) run the following +```cmd +mike deploy 2.0 latest --update-aliases +``` +Note that mike will always update the version and any aliases (latest) when you run a `mike deploy [version]` command. So you only need to do the `mike deploy -u [version] latest` when the latest version is changed. -* `mkdocs serve` - Start the live-reloading docs server. -* `mkdocs build` - Build the documentation site (for deployment). -* `mkdocs -h` - Print help message and exit. +To view the site locally before publishing it to https://cim-mg.ucaiug.io, run +```cmd +mike serve +``` +Then to publish it to https://cim-mg.ucaiug.io, you will want to push your local `gh-pages` branch to the remote https://github.com/cimug-org/cim-modeling-guide repo using +```cmd +mike deploy 1.0 --push +``` -Once you have it running with either Docker or Python, you can view it by navigating to http://localhost:8000 on your browser. +Refer to [mike documentation](https://github.com/jimporter/mike) for more information. \ No newline at end of file diff --git a/docs/section1-introduction.md b/docs/section1-introduction.md index 69a2282..08d9113 100644 --- a/docs/section1-introduction.md +++ b/docs/section1-introduction.md @@ -1,6 +1,6 @@ -# Section 1 - Introduction +# Introduction -## 1.1 Document Overview +## Document Overview The CIM has been growing and more groups are extending it with new functionality. Currently the following IEC TC57 working groups are working with the CIM: @@ -12,13 +12,13 @@ The CIM has been growing and more groups are extending it with new functionality Initially only WG13 and WG14 were working with the CIM. Each group worked with a local copy of the UML model file and the two copies were synchronised as needed. With three working groups the synchronisation process becomes more complex. This document describes how to manage CIM across multiple working groups and provides best practices for applications wanting to extend the CIM. -### 1.1.1 Document Purpose +### Document Purpose The purpose of this document is to provide guidance to individuals working with the CIM UML on how to modify the CIM in accordance with the CIM modeling rules and CIM change management. The rules and process are maintained and enforced by the CIM model managers. The goals of this document are to: 1) facilitate communication and understanding among individuals working with CIM domain models; and 2) streamline the incorporation of new content into the CIM UML. -### 1.1.2 Document Scope +### Document Scope The scope of this document includes providing: @@ -36,7 +36,7 @@ The scope of this document includes providing: 7) A description of the UML tool (Sparx EA) used for CIM Management. -### 1.1.3 What this Document Does Not Cover +### What this Document Does Not Cover *This Document Does Not Cover All UML Concepts* @@ -58,7 +58,7 @@ The detailed tool procedures used to accomplish CIM Management tasks are not in The tools used to create CIM Profiles are not in the purview of CIM Management. This document does provide rules and recommendations for transforming the CIM UML (a semantic information model) into a canonical data model that can then be used as input to a tool to create CIM Profiles. -### 1.1.4 Who this Document Is For +### Who this Document Is For This document has the following intended audience: @@ -84,7 +84,7 @@ This document has the following intended audience: - Researchers interested in learning about the CIM UML and conducting CIM UML research. -## 1.2 How this Document Is Organized +## How this Document Is Organized This document begins with Sections 1, 2, and 3 providing introductory content, references, and definitions, respectively. @@ -102,7 +102,7 @@ Section 9 identifies and describes the artifacts under CIM Management. This incl Section 10 discusses the tools used for CIM UML model management. Tools include Enterprise Architect, jCleanCIM, and the CIMug Website. -## 1.3 Symbols, Figures, and Style Conventions +## Symbols, Figures, and Style Conventions **Conventions** @@ -128,7 +128,7 @@ The Unified Modeling Language is used 2. Square brackets (\[ \]) are used as delimiters for referenced works cited in this document. -## 1.4 Document Control +## Document Control This document will be reviewed periodically by the CIM Model Managers and updated as needed. Lessons learned will be captured with each CIM UML update and used to improve this document. If the document is written in an older format, the document should be revised into the latest CIM Users Group template format. diff --git a/docs/section10-cim-management-tools.md b/docs/section10-cim-management-tools.md index 80fbbec..c2d269e 100644 --- a/docs/section10-cim-management-tools.md +++ b/docs/section10-cim-management-tools.md @@ -1,18 +1,18 @@ -# Section 10 - CIM Management Tools +# CIM Management Tools This section gives a brief description of the software tools used to help carry out the responsibilities of CIM Management. -## 10.1 Sparx Enterprise Architect +## Sparx Enterprise Architect Sparx Systems Enterprise Architect modeling tool is the tool used to maintain the CIM UML. CIM Management leverages the tool support for partitioning a model into several model files, which allows working groups to develop top-level package model content separately, and then merge the model changes into a complete version of the CIM UML. Enterprise Architect can also be used to generate CIM Profiles with its Schema Composer tool. -## 10.2 jCleanCIM +## jCleanCIM jCleanCim is a Java application that is used to auto generate draft model standards from the CIM UML. It uses a Word document template, a configuration file, and a CIM UML project file to create the 61970-301, 61968-11, and 62325-301 model documents. -## 10.3 CIMug Website +## CIMug Website The CIMug website serves as the tool that provides online access to artifacts under CIM Management. The CIMug website provides unrestricted access to the CIM UML and controlled access (security credentials required) to artifacts that fall under the Liason D relationship UCA has with the IEC. diff --git a/docs/section2-references.md b/docs/section2-references.md index 9def986..b19601c 100644 --- a/docs/section2-references.md +++ b/docs/section2-references.md @@ -1,6 +1,6 @@ -# Section 2 - References +# References -## 2.1 Normative References +## Normative References The following IEC documents, and the other identified references herein contain information which, through reference in this text, constitute normative provisions of this document. At the time of publication, the editions indicated were valid. All IEC documents, and other normative references are subject to revision. All users of this document are therefore encouraged to investigate the possibility of applying the most recent edition of the references listed below. @@ -12,7 +12,7 @@ The following IEC documents, and the other identified references herein contain | TC57-Glossary | IEC TC57 Glossary | | UML-2.5.1 | Unified Modeling Language Specification Version 2.5.1. Object Management Group December 2017 | -## 2.2 Informative References +## Informative References The following documents referenced herein contain information which is not binding and does not constitute provisions of this document. The information referenced in this text is informative and supportive information intended to enhance the comprehension of this document. diff --git a/docs/section3-definitions.md b/docs/section3-definitions.md index 8eb46a2..4ebf660 100644 --- a/docs/section3-definitions.md +++ b/docs/section3-definitions.md @@ -1,5 +1,5 @@ -# Section 3 - Definitions +# Definitions For the purposes of this document the following definitions apply: diff --git a/docs/section4-cim-overview.md b/docs/section4-cim-overview.md index e966916..8cf1fa4 100644 --- a/docs/section4-cim-overview.md +++ b/docs/section4-cim-overview.md @@ -1,4 +1,4 @@ -# Section 4 - CIM Overview +# CIM Overview **Background** @@ -25,7 +25,7 @@ In order to achieve these two goals, the UCAIug leadership has decided that the For the past two years the IEC TC57 CIM working groups have emphasized the importance (to their productivity) of having access to documented rules and recommendations for creating new CIM content. Up until the release of this document, CIM management guidelines resided in draft documents owned by CIM Model Managers. -## 4.1 CIM UML Scope +## CIM UML Scope The CIM UML is semantic information model that represents real-world physical electric grid objects and information entities. The CIM UML is the basis for data that is exchanged between systems to: @@ -122,33 +122,33 @@ The CIM Technical Subcommittee is responsible for handling all technical and mai - Maintain repositories for sample CIM/XML/RDF power system model files -## 4.3 CIM Management Functions +## CIM Management Functions -### 4.3.1 Model Change Management +### Model Change Management Model change management (MCM) is the ongoing process of identifying and managing CIM UML change requests. A model change management plan (MCMP) is developed to define, document and track the information required to effectively manage change requests throughout the CIM UML development life cycle. -### 4.3.2 Model Change Validation +### Model Change Validation Model change validation (MCV) is the ongoing process of ensuring proposed CIM UML changes are in compliance with CIM modeling rules. -### 4.3.3 Model Change Implementation +### Model Change Implementation Model change implementation (MCI) is the ongoing process of making changes to an existing CIM UML baseline to create a new CIM UML baseline. -### 4.3.4 Configuration Management +### Configuration Management Configuration management (CM) is the ongoing process of identifying and managing changes to the CIM UML and other work products. A configuration management plan (CM Plan) is developed to define, document, control, implement, account for, and audit changes to the various CIM configuration items. The CM Plan provides information on the requirements and procedures necessary for CMP activities and establishes the methodology for configuration identification and control of releases and changes to configuration items. It also describes the process for maintaining status accounting and verifying the completeness and correctness of configuration items throughout the CIM UML development life cycle. -### 4.3.5 Model Distribution +### Model Distribution Model distribution (MD) is the ongoing process of distributing CIM UML baselines to official repositories and authorized consumers of the CIM UML. -### 4.3.6 Continuous Process Improvement +### Continuous Process Improvement Continuous process improvement (CPI) is the ongoing process of improving the CIM management processes through incremental and breakthrough improvements. The goal of CPI is to improve the quality of the CIM UML or the efficiency of the CIM management processes. -### 4.3.7 CIM Management Function Mappings +### CIM Management Function Mappings Mapping of the CIM management functions includes two (2) mappings of the CIM management functions. The first shows the mapping between CIM management functions and CIM management responsibilities assigned to the CIM Subcommittee with the UCAIug. The second shows the mapping between CIM management functions and the CIM management processes that realize those functions. The first mapping is shown in Figure 4‑2. The second mapping is discussed in Section 4.4 and shown in Figure 4‑9 @@ -157,7 +157,7 @@ Mapping of the CIM management functions includes two (2) mappings of the CIM man Figure 4‑2. CIM Management Functions-to-UCA CIM Responsibilities Mapping -## 4.4 CIM Management Processes +## CIM Management Processes CIM management processes are the realization of CIM management functions. There are five (5) CIM management processes. The CIM management processes are shown in Figure 4‑3. A list of the processes and their descriptions are provided in Table 4‑2. @@ -195,7 +195,7 @@ CIM management processes are the realization of CIM management functions. There Figure 4‑8. Continuous Process Improvement Process Flow -### 4.4.1 CIM Management Process Mappings +### CIM Management Process Mappings The mapping between CIM management functions and the CIM management processes are shown in Figure 4‑9. @@ -217,9 +217,9 @@ The CIM Model Managers perform most of the tasks within the CIM management proce Table 4‑3. Role-to-CIM Management Process Mapping -## 4.5 CIM Management Process Integration with the IEC Standards Process +## CIM Management Process Integration with the IEC Standards Process -### 4.5.1 IEC Standards Development Process +### IEC Standards Development Process As IEC standards, the CIM standards must go through the IEC international standards development process to be published. An IEC International Standard is the result of an agreement between the National Committees of the IEC. The IEC standard development process and the documents created in the process are shown in Figure 4‑10. A description of the IEC stages is provided in Table 4‑4. @@ -275,7 +275,7 @@ As IEC standards, the CIM standards must go through the IEC international standa -### 4.5.2 Process Integration Points +### Process Integration Points The CIM management processes integrate with the IEC standards development process because the CIM UML provides the basis for IEC CIM standards. There are two types of integration points between the two processes: 1) draft standards preparation; and 2) draft standards submission. @@ -290,10 +290,10 @@ A mapping between the applicable IEC standards development stages and the CIM Ma | Document Generation Process | | | Image result for check mark | Image result for check mark | Image result for check mark | | | Artifact Distribution Process | | Image result for check mark | Image result for check mark | Image result for check mark | Image result for check mark | Image result for check mark | -#### 4.5.2.1 Draft Standards Preparation +#### Draft Standards Preparation The intermediate draft standards submitted to the IEC are produced during the execution of the Model Development process and the Document Generation process. CIM UML changes are incorporated to form the basis of the draft standards. Therefore, the Change Management process is also part of draft standards preparation. -#### 4.5.2.2 Draft Standards Submission +#### Draft Standards Submission The submission of the draft standards to the IEC takes place during the Artifact Distribution process. The IEC is considered one of the subscribers for the draft standards in the process. diff --git a/docs/section5-cim-uml-modeling-rules-and-recommendations.md b/docs/section5-cim-uml-modeling-rules-and-recommendations.md index 2921e45..e07fedd 100644 --- a/docs/section5-cim-uml-modeling-rules-and-recommendations.md +++ b/docs/section5-cim-uml-modeling-rules-and-recommendations.md @@ -1,6 +1,6 @@ -# Section 5 - CIM UML Modeling Rules and Recommendations +# CIM UML Modeling Rules and Recommendations -## 5.1 Overview +## Overview This section describes rules and recommendations on how to use the UML to model electric utility domain information. The UML does not include a step-by-step model development process. It is a general-purpose modeling language that all modelers can use. The primary goal behind CIM UML modeling rules and recommendations is to ensure a well-formed, consistent semantic information model is maintained in order to facilitate communication and understanding among people working with the CIM. @@ -12,25 +12,25 @@ Due to the evolving nature of the CIM, there are notable rule exceptions through - special circumstances warrant the need for an exception -### 5.1.1 UML Concepts Used in the CIM +### UML Concepts Used in the CIM The CIM uses a very small subset of UML concepts. UML concepts and models can be grouped into the following concept areas: 1) static structure; 2) dynamic behavior; 3) implementation constructs; 4) model organization; and 5) extensibility mechanisms. The CIM only uses UML concepts in the static structure and model organization concept areas. -### 5.1.2 UML Static Structure Concepts +### UML Static Structure Concepts The CIM uses UML concepts that model utility domain concepts, their internal properties, and their relationships to each other. Utility domain concepts are modeled as classes, each of which describes a set of discrete objects that hold information. Utility domain concept properties are modeled as class attributes. The relationships between utility domain concepts are modeled as class associations or generalisations. Many classes share common structure using generalisation. Static structure concepts are viewed using class diagrams. -### 5.1.3 UML Model Organization Concepts +### UML Model Organization Concepts The CIM uses UML packages to organize modeling information. Packages are general-purpose hierarchical organizational units of UML models. The purpose of packages in the CIM is mainly for controlling working group ownership, with sub-packages mainly representing conceptual organization. This usage of the package structure allows for relatively easy movement of classes among packages without impacting concrete implementations. It also defines the area of responsibility for model managers. The CIM also uses UML dependencies among packages to impose an overall model architecture. The contents of the packages must conform to the package dependencies and to the imposed model structure. -## 5.2 Model Structure Rules +## Model Structure Rules Model structure rules address UML metamodel rules, and the structure, dependencies, and assembly of CIM packages. -### 5.2.1 UML Metamodel Rules +### UML Metamodel Rules @@ -69,7 +69,7 @@ Model structure rules address UML metamodel rules, and the structure, dependenci
-### 5.2.2 Package Structure Rules +### Package Structure Rules Overview @@ -141,7 +141,7 @@ Both the legacy and new top-level package structure are shown in Figure 5‑1 an -### 5.2.3 Package Dependency Rules +### Package Dependency Rules The concept of package dependencies is critical to both the understanding of model ownership among working groups and the practical integration or assembly of packages from different owners. An additional package is maintained outside of the IEC working group packages to describe the dependencies among the packages of each working group. This package, named “PackageDependencies” contains a figure illustrating these dependencies as shown in Figure 5-3 UML package dependencies (for illustration, not official CIM standard). As such the PackageDependencies package is itself dependent upon all the other major packages @@ -217,7 +217,7 @@ Types used for attributes in a class introduce dependencies that must be coordin Figure 5‑3. Top-level CIM (formerly TC57CIM) Package Dependencies -### 5.2.4 Package Assembly Rules +### Package Assembly Rules Each working group edits what it owns and merges what others own. With three working groups this results in six possible ways to exchange portioned model files between the groups as shown in Figure 5-4. @@ -308,7 +308,7 @@ The best practice is to always import and work with the standard packages upon w -## 5.3 Package Rules +## Package Rules The purpose of packages in the CIM model is mainly for controlling working group ownership, with sub-packages mainly representing conceptual organization. This usage of the package structure allows for relatively easy movement of classes among packages without impacting concrete implementations. @@ -392,7 +392,7 @@ Package names start with upper case (UpperCamelCase rule). Package names must be -### 5.3.2 Package Specification Rules +### Package Specification Rules | **RuleID** | **Description** | |------------|-----------------| @@ -400,7 +400,7 @@ Package names start with upper case (UpperCamelCase rule). Package names must be | Rule036 | “Doc” packages should be specified as “private” packages in Enterprise Architect package properties, so they can be filtered out of diagrams showing the sub-packages. | | Rule037 | “DetailedDiagram” packages should be specified as “private” packages in Enterprise Architect package properties, so they can be filtered out of diagrams showing the sub-packages. | -## 5.4 Class Rules +## Class Rules The following UML class features are used in CIM: @@ -444,7 +444,7 @@ Classes should be ordered alphabetically or in order of importance or by logical | Rule047 | CIM classes with a stereotype other than **<<deprecated>>** shall only be used as datatypes for attributes. | | Rule048 | CIM classes should be ordered alphabetically or in order of importance or by logical grouping within a package. | -## 5.5 Attribute Rules +## Attribute Rules The following UML attribute features (i.e. available in the "Properties" Pane in Sparx EA) are used in CIM: @@ -531,7 +531,7 @@ The attribute order should normally be alphabetical unless there is some clear r -## 5.6 Association Rules +## Association Rules Associations describe how classes are related. Only classes describing domain objects, i.e. classes without data type stereotypes such as **<<enumeration>>**, **<<Primitive>>**, **<<Compound>>**, or **<<CIMDatatype>>**, may participate in associations. @@ -669,7 +669,7 @@ Multiplicities shall be chosen to specify what can be expected in the domain. Mu -## 5.7 Enumeration Rules +## Enumeration Rules Enumeration literals are attributes within an **<<enumeration>>** type. The following UML attribute features are used in CIM: @@ -761,7 +761,7 @@ There is no ordering required or reinforced; the order found in the UML model wi -## 5.8 Diagram Rules +## Diagram Rules The following UML diagram features are used in CIM: @@ -791,7 +791,7 @@ Diagrams should be placed inside of packages (the normal case) or classes (e.g. | Rule102 | Diagrams should be placed inside of packages (the normal case) or classes (e.g. in Dynamics package). | | Rule103 | The order of diagrams in the package should be from most general to most specific. | -## 5.9 Element Description Rules +## Element Description Rules Make sure to add a description to the UML elements (package, diagram, class, attribute, association ends etc.) when creating them. The description shall explain the meaning of the entity as clearly as possible. It is often useful to search dictionaries and the web for good descriptions. @@ -870,7 +870,7 @@ Avoid using mark-up in the documentation (e.g., bold, lists, superscripts). Note -## 5.10 Inheritance Rules +## Inheritance Rules Inheritance is used to specialise an existing class. The inheriting class is more specific than the base class. Inheritance is the strongest possible dependency; it is often misused and should be used with care (note: everything that can be expressed through inheritance could also be expressed through composition). @@ -888,9 +888,9 @@ Inheritance should never create situations where attribute names or role names a | Rule118 | Inheritance should never create situations where attribute names or role names are duplicated or “override” within the inheritance lineage. | | Rule119 | Inheritance shall not be used with stereotyped classes. | -## 5.11 Stereotype Rules +## Stereotype Rules -### 5.11.1 General and **<<Deprecated>>** Stereotype Rules +### General and **<<Deprecated>>** Stereotype Rules This stereotype is recognised by the CIM UML validation and document generation tool and can be applied to any of the UML concepts defined below. The typical usage of the **<<deprecated>>** stereotype is for the purpose of preserving backwards compatibility for the normative, already published content, during a release or two, while indicating to the users that the item is likely to actually be removed in the future. This is a graceful means of phasing out obsolete or re-factored elements, and leaving some time to the users to provide implementation in terms of the new features replacing those marked with **<<deprecated>>**. @@ -907,13 +907,13 @@ The **<<deprecated>>** strereotype may be used on attributes, associ | Rule124 | Usage of the **<<deprecated>>** stereotype should be for the purpose of preserving backwards compatibility for normative, already published content. | | Rule125 | The **<<deprecated>>** stereotype should be used for no more than two (2) releases of the CIM. | -### 5.11.2 Package Stereotype Rules +### Package Stereotype Rules | **RuleID** | **Description** | |------------|-----------------| | Rule126 | A package stereotype may be used temporarily to describe the development state of the package, e.g. **<<Work in progress>>**. Once the package is fully incorporated in the model the stereotype shall be removed. | -### 5.11.3 Class Stereotype Rules +### Class Stereotype Rules | **RuleID** | **Description** | |------------|-----------------| @@ -923,7 +923,7 @@ The **<<deprecated>>** strereotype may be used on attributes, associ | Rule130 | The **<<enumeration>>** stereotype shall be used to extend the semantics of the UML class element to represent a data type whose instances form a list of named literal values. | | Rule131 | A CIM class that represents a domain object that participates in inheritance and / or association relationships shall not use a stereotype with the exception of the **<<deprecated>>** stereotype specified in \[Rule 124\]. | -## 5.12 Namespace Rules +## Namespace Rules Namespaces are specified at level of packages in the CIM UML model. The namespaces apply to classes, attributes, association ends, data types (**<<CIMDatatype>>**, **<<Compound>>**, **<<Primitive>>**, and **<<enumeration>>**) and enums. Namespaces are useful for marking the source of CIM models for either standards or extensions. @@ -1068,7 +1068,7 @@ nsuri=http://iec.ch/TC57/2015/CIM17 -## 5.13 Documentation Rules +## Documentation Rules | **RuleID** | **Description** | |------------|-----------------| diff --git a/docs/section6-cim-uml-extension-rules-and-recommendations.md b/docs/section6-cim-uml-extension-rules-and-recommendations.md index 7e233f1..728badf 100644 --- a/docs/section6-cim-uml-extension-rules-and-recommendations.md +++ b/docs/section6-cim-uml-extension-rules-and-recommendations.md @@ -1,16 +1,16 @@ -# Section 6 - CIM UML Extension Rules and Recommendations +# CIM UML Extension Rules and Recommendations -## 6.1 Overview +## Overview The CIM UML is an ever-evolving semantic information model. It is extended periodically based on work performed by the IEC TC57 working groups 13, 14, 16 and 21, and work performed by the CIMug through its various focus communities, projects, and working groups. CIM extensions originating from IEC TC57 working group are classified as “Standard” CIM extensions. CIM extensions originating from the CIMug are classified as “User-Defined” CIM extensions. -### 6.1.1 Application of CIM UML Extension Rules and Recommendations +### Application of CIM UML Extension Rules and Recommendations Work on Standard CIM extensions is started with the full understanding that the extensions are intended to become part of the standard CIM and ultimately to be used to as the basis of new standard CIM profiles. Whereas work on User-Defined extensions is started because the CIM needs to be extended to address the needs and constraints of a particular user’s instance of the CIM. All User-Defined CIM extensions will not become part of the standard CIM. User-Defined CIM extensions must be evaluated to see if they can also be applied in the broader CIM user community as is or with some modifications. For the reasons presented above, some extension rules and recommendations apply only to Standard CIM extensions; some only to User-Defined CIM extensions; and some to all CIM extensions. The language of the rules and recommendations is intended to be unambiguous so the users of this document will know to which class of CIM extensions each rule and recommendation applies. -### 6.1.2 Custom CIM Extensions +### Custom CIM Extensions The objective of these recommendations is to allow for clear modularization of extensions such that they can be readily identified as extensions and migrated more easily to updated versions of the standard CIM, @@ -50,7 +50,7 @@ Figure Example UML model for association extensions to standard CIM classes An extension class should be used only one time within a namespace. The extension class should have the **<<CIMExtension>>** generalization pointing to a standard CIM class of the same name. A particular extension is an extension to the one and only standard CIM class. A standard CIM class may have any number of **<<CIMExtension>>** generalization relationships where each should be from an extension class of the same name but with unique namespaces. The possiblity exists for extension classes extending other extension classes, though it is preferred to extend the standard CIM class if it exits. -## 6.2 General Extension Rules +## General Extension Rules General rules for IEC TC57, available in “TC57 CIM Naming_Rules_Draft_R00_2008-05-16v3.doc”, give the overall guidelines for naming conventions of UML models at any abstraction level. The rules defined in this technical report, dedicated to CIM UML information model, take precedence over the rules in the above document in case the rules differ. @@ -81,7 +81,7 @@ It is discouraged to distinguished names by upper and lower case changes alone. | Rule169 | UML packages shall be used to structure CIM extensions into manageable and logical model parts. | | Rule170 | Before creating a new model element, the CIM should be searched to see if an element similar to the intended extension element already exists. If it does exist, it may influence the extension to the model. | -## 6.3 Package Extension Rules +## Package Extension Rules Package names start with upper case (UpperCamelCase rule). Package names must be unique across the whole CIM. @@ -154,7 +154,7 @@ Package names start with upper case (UpperCamelCase rule). Package names must be -## 6.4 Class Extension Rules +## Class Extension Rules Class names start with upper case (UpperCamelCase rule). Class names should use singular form. Class names must be unique across the whole CIM. Be aware there is a potential conflict of profile names and class names that may occur from the 62361-100 NDR standard for XSD naming rules, so the choice of profile names and class names should be made with this consideration. @@ -169,7 +169,7 @@ Class names start with upper case (UpperCamelCase rule). Class names should use | Rule190 | User-Defined CIM extension class names may include an underscore character. | | Rule191 | Relationships between User-Defined CIM extension classes and standard CIM classes should be generalisations whenever possible. | -## 6.5 Attribute Extension Rules +## Attribute Extension Rules Attribute names start with lower case (lowerCamelCase rule). Attribute names should use singular form. Attribute names are unique within a classifier. Inherited attribute names should be unique @@ -180,13 +180,13 @@ Attribute names start with lower case (lowerCamelCase rule). Attribute names sho | Rule194 | User-Defined CIM extension attributes that are part of a User-Defined CIM extension class shall not be stereotyped. | | Rule195 | User-Defined CIM extension attributes that are part of a standard CIM class shall be stereotyped. | -## 6.6 Association Extension Rules +## Association Extension Rules -### 6.6.1 Association names +### Association names Association names are not used and should be left empty. -### 6.6.2 Association end names +### Association end names Association end names are mandatory at both sides for an association. @@ -222,7 +222,7 @@ Inherited association ends should have unique names. Figure 6‑3. Allowed duplication of association end names -## 6.7 Enumeration Extension Rules +## Enumeration Extension Rules Enumeration literal names should follow the same rules as attribute names (5.4.7), except in case some established conventions exist, e.g. SI unit symbols or currencies. diff --git a/docs/section7-cim-uml-transformation-rules-and-recommendations.md b/docs/section7-cim-uml-transformation-rules-and-recommendations.md index a0be5d5..eec3f68 100644 --- a/docs/section7-cim-uml-transformation-rules-and-recommendations.md +++ b/docs/section7-cim-uml-transformation-rules-and-recommendations.md @@ -1,6 +1,6 @@ -# Section 7 - CIM UML Transformation Rules and Recommendations +# CIM UML Transformation Rules and Recommendations -## 7.1 Overview +## Overview The CIM UML is a semantic information model (also referred to as a conceptual data model). It is a conceptual model of utility objects and their relationships with each other. It is application independent, but defines all the concepts needed for any application. It essentially provides the vocabulary (sometimes referred to as a data dictionary) to be used when utility domain data is exchanged between systems. @@ -8,7 +8,7 @@ Since the CIM UML is a conceptual model, it cannot be used as is for data exchan This section specifies the rules and recommendations for transforming a subset of the CIM UML into a contextual data model. The contextual data model can then be used to derive implementation models which define the data and the structure of the data required to exchange information between two systems to execute a single interaction in a System Use Case. -## 7.2 General Transformation Rules and Recommendations +## General Transformation Rules and Recommendations | **RuleID** | **Description** | |------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -16,7 +16,7 @@ This section specifies the rules and recommendations for transforming a subset o | Rule208 | In instances where CIM extensions have been added to the CIM UML, the extensions may be part of a contextual data model derived from the CIM UML. | | Rule209 | A class diagram that contains all candidate classes and associations should be created, which may be used as a reference diagram, for each contextual data model. | -## 7.3 Package Transformation Rules and Recommendations +## Package Transformation Rules and Recommendations | **RuleID** | **Description** | |------------|-----------------| @@ -24,14 +24,14 @@ This section specifies the rules and recommendations for transforming a subset o | Rule211 | Transformation of an entire package shall not be required to create a contextual data model (i.e. classes, attributes, and associations within a package may be left out of a contextual data model if they are not needed). | | Rule212 | A single top-level package for contextual data models that exists outside of the top-level CIM (formerly TC57CIM) package should be created at the root-level of the CIM. | -## 7.4 Class Transformation Rules and Recommendations +## Class Transformation Rules and Recommendations | **RuleID** | **Description** | |------------|-----------------| | Rule213 | A contextual data model shall contain at least one concrete class. | | Rule214 | A contextual data model may contain abstract classes. | -## 7.5 Attribute Transformation Rules and Recommendations +## Attribute Transformation Rules and Recommendations | **RuleID** | **Description** | |------------|-----------------| @@ -41,7 +41,7 @@ This section specifies the rules and recommendations for transforming a subset o | Rule218 | A contextual data model should contain the attributes necessary to execute a System use case interaction. | | Rule219 | A contextual data model should not contain attributes not used in a System use case interaction (i.e. not all class attributes must be included in a contextual data model). | -## 7.6 Association Transformation Rules and Recommendations +## Association Transformation Rules and Recommendations | **RuleID** | **Description** | |------------|-----------------| diff --git a/docs/section8-cim-uml-version-control-rules.md b/docs/section8-cim-uml-version-control-rules.md index ab60140..bb2132c 100644 --- a/docs/section8-cim-uml-version-control-rules.md +++ b/docs/section8-cim-uml-version-control-rules.md @@ -1,6 +1,6 @@ -# Section 8 - CIM UML Version Control Rules +# CIM UML Version Control Rules -## 8.1 Overview +## Overview After the top-level CIM packages have been synchronized and deployed as the complete CIM UML for use by either working groups or into the public domain, profiles will naturally be developed that have dependencies on it. When the need arises to make changes to the CIM UML, an impact assessment needs to be made to determine: @@ -24,11 +24,11 @@ These issues result in the need for versioning. How versioning is implemented an The remaining subsections of this overview address these questions and provide a set of options for solving common versioning problems. -### 8.1.1 The Scope of a Version +### The Scope of a Version We have established that the CIM UML is partitioned into three top-level packages that must be merged and synchronized before being deployed for use. So, when a new version of the CIM UML is created, exactly what is being referring to must be defined. -### 8.1.2 Versioning and Compatibility +### Versioning and Compatibility The number one concern when developing and deploying a new version of the CIM UML is the impact it will have on users that will develop CIM Profiles that have dependencies on it. The measure of impact is directly related to how compatible the new CIM UML is with the old version(s) of the CIM UML. @@ -43,17 +43,17 @@ This subsection establishes the fundamental types of compatibility that relate t Table 8‑1. Compatibility Types -### 8.1.3 Version Identifiers +### Version Identifiers Version identifiers always follow some version identification pattern. The version identification pattern used must not only express the version number at the CIM UML level, but right down to the lowest level changeable element or element property. The version identification patterns for the CIM UML are specified in section 8.2.3, Version Identification. -### 8.1.4 Versioning Strategies +### Versioning Strategies There is no one versioning strategy that is right for everyone. Because versioning represents a governance-related phase in the overall lifecycle of the CIM UML, it is a practice that is subject to conventions, preferences, and requirements that are distinct to CIM Management. Even though there is no de facto versioning strategy for UML models, a number of advocated versioning strategies have emerged, each with its own benefits and tradeoffs. This sub-section will cover the three known versioning strategies considered for the CIM UML. -#### 8.1.4.1 The Strict Strategy +#### The Strict Strategy The Strict Strategy is the simplest approach to CIM UML versioning. Any compatible or incompatible changes result in a new version of the CIM UML. This approach is commonly implemented by changing the target namespace value. In effect, namespaces are used for version identification instead of a version attribute because changing the namespace value automatically forces a change in all CIM Profiles that need to access the new version of the CIM UML. @@ -67,7 +67,7 @@ On the downside, by forcing a new namespace upon the CIM UML with each change, i Therefore, this strategy will increase the governance burden on users of the CIM UML and will require careful transitioning strategies. Having two or more version of the CIM UML at the same time can become a common requirement for which a supporting infrastructure will need to be prepared. -#### 8.1.4.2 The Flexible Strategy +#### The Flexible Strategy A common strategy used to balance practical considerations with an attempt at minimizing the impact of changes to the CIM UML is to allow compatible changes to occur without forcing a new CIM UML version, while not attempting to support forwards compatibility at all. @@ -81,7 +81,7 @@ The primary advantage to this strategy is that it can be used to accommodate a v However, when compatibility changes are made, these changes become permanent and cannot be reversed without introducing an incompatible change. Therefore, a governance process is required during which each proposed change is evaluated to ensure CIM Profiles do not become overly bloated or convoluted. -#### 8.1.4.3 The Loose Strategy +#### The Loose Strategy As with the previous two strategies, this strategy requires that incompatible changes result in a new version of the CIM UML. The difference is the changes are modeled in the CIM UML to be intrinsically extensible so that the CIM UML remains able to support a broad range of future, unknown data exchange requirements. Since the CIM UML is, by definition, a semantic information model, it is structured to be intrinsically extensible. @@ -89,7 +89,7 @@ As with the previous two strategies, this strategy requires that incompatible ch The fact that all attributes are optional and most associations have an undefined upper range provides a constant opportunity to further expand the CIM UML. On the other hand, there is a governance process required during which each proposed change is evaluated to ensure CIM Profiles do not become overly bloated or convoluted. -#### 8.1.4.4 Summary Table +#### Summary Table Table 8‑2 broadly summarizes how the three strategies compare based on three fundamental characteristics. @@ -110,27 +110,27 @@ The three characteristics used in this table to form the basis of this compariso Table 8‑2. A general comparison of the three versioning strategies. -## 8.2 Version Control Strategy +## Version Control Strategy The version control strategy is expressed as a set of rules that address version scope, version compatibility, and version identification. The following sub-sections address each area, respectively. **NOTE**: The versioning strategy presented here is still under discussion amongst the CIM managers and is subject to change once discussions are completed. The versioning strategy will then be updated to reflect any changes. -### 8.2.1 Version Scope +### Version Scope | **RuleID** | **Description** | |------------|-----------------| | Rule225 | A new version of a top-level package shall be created when the contents of the top-level package (which includes any of its normative sub-packages) has been changed, and the change has been verified by the appropriate CIM model manager. | | Rule226 | A new version of the CIM UML shall be created when a new version of a top-level package has been created. | -### 8.2.2 Version Compatibility +### Version Compatibility | **RuleID** | **Description** | |------------|-----------------| | Rule227 | A new version of the CIM UML shall be considered backwards-compatible if it continues to support CIM Profiles designed to work with the old version of the CIM UML (i.e. the changes incorporated in the new version of the CIM UML are compatible changes). | | Rule228 | A new version of the CIM UML shall be considered not backwards-compatible if it does not support CIM Profiles designed to work with the old version of the CIM UML. | -### 8.2.3 Version Identification +### Version Identification Version identification rules are based on the needs of the CIM UML users. There are two types of CIM UML users: 1) working group members involved in the development of standards; and 2) the broader CIM community (end users). Each type of user has different requirements for version identification. diff --git a/docs/section9-artifacts-under-cim-management.md b/docs/section9-artifacts-under-cim-management.md index d292d3f..507aa22 100644 --- a/docs/section9-artifacts-under-cim-management.md +++ b/docs/section9-artifacts-under-cim-management.md @@ -1,10 +1,10 @@ -# Section 9 - Artifacts Under CIM Management +# Artifacts Under CIM Management -## 9.1 Overview +## Overview Artifacts under CIM Management consist of: 1) model artifacts (CIM Artifacts); 2) draft standards; 3) CIM Schemas; 4) CIM Management documents and records; and 5) tool customizations. These artifacts are described in this section. -### 9.1.1 Draft Standards Artifacts +### Draft Standards Artifacts As IEC standards, the CIM standards must go through the IEC standards development process to be published (see Section 8.1). This process results in the creation of several draft standard artifacts as intermediate work products. The types IEC draft standard artifacts under CIM management are listed below. The description of each type of draft standard is provided in Section 8.1. @@ -16,7 +16,7 @@ As IEC standards, the CIM standards must go through the IEC standards developmen 4. Final Draft International Standard FDIS) -## 9.2 CIM Artifacts +## CIM Artifacts CIM Artifacts are model artifacts that are maintained in the Sparx Systems Enterprise Architect modeling tool. CIM Artifacts are stored in four (4) file formats: 1) as an EA project file in the native EA file format (\*.eap or \*.eapx); 2) in the ZIP compressed file format (\*.zip); 3) in the XML Metadata Interchange file format (\*.xmi); and 4) as a collection of web pages in HyperText Markup Language file format (\*.html). The EA project file is also exported and maintained as a Web Ontology Language project file (\*.owl). The CIM Artifacts under CIM Management are listed and described in Table 9‑1. @@ -28,7 +28,7 @@ CIM Artifacts are model artifacts that are maintained in the Sparx Systems Enter Table 9‑1. CIM Artifacts Under CIM Management -## 9.3 Model Documents +## Model Documents Model documents are CIM standards that are derived from the CIM UML using the CIM document generation tool jCleanCim. Draft versions of the CIM standard model documents under CIM Management are listed and described in Table 9‑2. @@ -41,7 +41,7 @@ Model documents are CIM standards that are derived from the CIM UML using the CI Table 9‑2. Model Documents Under CIM Management -## 9.4 CIM Profiles +## CIM Profiles A CIM Profile is a subset of the full CIM UML that is derived to define data exchanges required between systems. Each profile is a collection of classes, attributes and references along with additional restrictions such as making attributes mandatory or restricting the cardinalities on associations. Draft versions of CIM standard profiles are artifacts under CIM Management. Also included as a CIM Profile is 61968-1 which is not a subset of the CIM UML; it is a reference to be used in the development of CIM Profiles. The CIM Profiles under CIM Management are listed and described in Table 9‑3. @@ -179,9 +179,9 @@ A CIM Profile is a subset of the full CIM UML that is derived to define data exc **Table 9‑3. CIM Profiles Under CIM Management (Cont’d)** -## 9.5 CIM Schemas +## CIM Schemas -### 9.5.1 Background +### Background XML, the eXtensible Markup Language, is a “universal format for structured documents and data” which is quickly becoming the standard for storing machine-readable data in a structured, extensible format that is accessible over the Internet. XML uses *tags* to denote the elements within XML documents. @@ -191,7 +191,7 @@ CIM Schemas provide the constraints on the structure and contents of CIM based X The following subsections list and describe the CIM Schemas under CIM Management. Some of the CIM Schemas are IEC International Standards and some are schemas derived from CIM Profiles. -### 9.5.2 RDF Schemas +### RDF Schemas The RDF schemas under CIM management are listed and described in Table 9‑4. @@ -206,7 +206,7 @@ The RDF schemas under CIM management are listed and described in Table 9‑4. **Table 9‑4. RDF Schemas Under CIM Management (Cont’d)** -### 9.5.3 XML Schemas +### XML Schemas The XML schemas under CIM management are listed and described in Table 9‑5. @@ -266,7 +266,7 @@ The XML schemas under CIM management are listed and described in Table 9‑5. **Table 9‑5. XML Schemas Under CIM Management (Cont’d)** -### 9.5.4 Hybrid Schemas +### Hybrid Schemas The Hybrid schemas under CIM management are listed and described in Table 9‑6. @@ -292,13 +292,13 @@ The Hybrid schemas under CIM management are listed and described in Table 9‑6. -## 9.6 CIM Management Documents and Records +## CIM Management Documents and Records CIM management documents are electronic or paper objects that contain instructions for tasks, requirements for how and when to perform a task or function, and logs the task execution and decisions. CIM management documents can communicate and share information and knowledge. Examples of CIM management documents include procedures, protocols, methods, and specifications. CIM records are a subset of CIM management documents that provide evidence that actions were taken and decisions were made in keeping with procedures; they can serve as evidence of the Working Group’s activity and compliance with IEC processes and procedures. -### 9.6.1 CIM Management Documents +### CIM Management Documents Table 9‑7 is a list and description of CIM Management Documents maintained by CIM model managers. @@ -313,7 +313,7 @@ Table 9‑7 is a list and description of CIM Management Documents maintained by | **Model Manager Checklist** | The Model Manager Checklist is a list of tasks that need to be completed as a matter of course in implementing a model change request. Currently there is a Model Manager Checklist maintained for each working group. | | **Working Group Issues List** | The working group issues list is a collection of issues raised by a working group concerning the CIM UML contained in their respective top-level CIM package. The issues on these lists can be resolved without involving other working groups. | -### 9.6.2 CIM Records +### CIM Records Table 9‑8 is a list and description of CIM Records managed by CIM model managers. @@ -333,7 +333,7 @@ Table 9‑8 is a list and description of CIM Records managed by CIM model manage **Table 9‑8. CIM Records (Cont’d)** -## 9.7 Tool Customizations +## Tool Customizations Tool customizations are artifacts that facilitate or help automate tasks performed by CIM Model Mangers in conjunction with a software tool. Table 9‑9 is a list and description of Tool customizations managed by CIM Model Managers. diff --git a/mkdocs.yml b/mkdocs.yml index bf4a34a..d0ce3dc 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -4,6 +4,7 @@ theme: palette: primary: white logo: images/media/logo-gray.png + favicon: images/media/logo-white.png name: material features: - content.code.copy @@ -18,19 +19,43 @@ markdown_extensions: - pymdownx.details plugins: - search - - pdf-export: + - enumerate-headings: + toc_depth: 6 + exclude: + - index.md + - with-pdf: + copyright: Version 1.1, © February 2021. All rights reserved by the UCA International Users Group + cover: true + cover_title: CIM Modeling Guide + cover_subtitle: Version 1.1, © February 2021 + toc_title: Table of Contents + heading_shift: true + ordered_chapter_level: 0 + toc_level: 3 + show_anchors: true enabled_if_env: ENABLE_PDF_EXPORT - combined: true - combined_output_path: CIM_Modeling_Guide.pdf + output_path: pdf/CIM_Modeling_Guide.pdf + # This 'mike' plugin is for publishing multiple versions see https://github.com/jimporter/mike + - mike: + alias_type: symlink + redirect_template: null + deploy_prefix: '' + canonical_version: null + version_selector: true + css_dir: css + javascript_dir: js +extra: + version: + provider: mike nav: - 'index.md' - - 'section1-introduction.md' - - 'section2-references.md' - - 'section3-definitions.md' - - 'section4-cim-overview.md' - - 'section5-cim-uml-modeling-rules-and-recommendations.md' - - 'section6-cim-uml-extension-rules-and-recommendations.md' - - 'section7-cim-uml-transformation-rules-and-recommendations.md' - - 'section8-cim-uml-version-control-rules.md' - - 'section9-artifacts-under-cim-management.md' - - 'section10-cim-management-tools.md' + - '1. Introduction': 'section1-introduction.md' + - '2. References': 'section2-references.md' + - '3. Definitions': 'section3-definitions.md' + - '4. CIM Overview': 'section4-cim-overview.md' + - '5. CIM UML Modeling Rules and Recommendations': 'section5-cim-uml-modeling-rules-and-recommendations.md' + - '6. CIM UML Extension Rules and Recommendations': 'section6-cim-uml-extension-rules-and-recommendations.md' + - '7. CIM UML Transformation Rules and Recommendations': 'section7-cim-uml-transformation-rules-and-recommendations.md' + - '8. CIM UML Version Control Rules': 'section8-cim-uml-version-control-rules.md' + - '9. Artifacts Under CIM Management': 'section9-artifacts-under-cim-management.md' + - '10. CIM Management Tools': 'section10-cim-management-tools.md' \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..baa1ed7 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,52 @@ +Babel==2.14.0 +beautifulsoup4==4.12.3 +Brotli==1.1.0 +certifi==2024.2.2 +cffi==1.16.0 +charset-normalizer==3.3.2 +click==8.1.7 +colorama==0.4.6 +cssselect2==0.7.0 +fonttools==4.51.0 +ghp-import==2.1.0 +html5lib==1.1 +idna==3.7 +importlib-metadata==7.1.0 +importlib-resources==6.4.0 +Jinja2==3.1.3 +libsass==0.23.0 +Markdown==3.6 +MarkupSafe==2.1.5 +mergedeep==1.3.4 +mike==2.0.0 +mkdocs==1.5.3 +mkdocs-enumerate-headings-plugin==0.6.1 +mkdocs-material==9.5.17 +mkdocs-material-extensions==1.3.1 +mkdocs-with-pdf==0.9.3 +packaging==24.0 +paginate==0.5.6 +pathspec==0.12.1 +pillow==10.3.0 +platformdirs==4.2.0 +pycparser==2.22 +pydyf==0.9.0 +pygments==2.17.2 +pymdown-extensions==10.7.1 +pyparsing==3.1.2 +pyphen==0.14.0 +python-dateutil==2.9.0.post0 +PyYAML==6.0.1 +pyyaml-env-tag==0.1 +regex==2023.12.25 +requests==2.31.0 +six==1.16.0 +soupsieve==2.5 +tinycss2==1.2.1 +urllib3==2.2.1 +verspec==0.1.0 +watchdog==4.0.0 +weasyprint==61.2 +webencodings==0.5.1 +zipp==3.18.1 +zopfli==0.2.3 \ No newline at end of file From 4fb3f11a9de2c89dedc145b965744de445cfe33e Mon Sep 17 00:00:00 2001 From: Mike Heinen Date: Mon, 15 Apr 2024 10:18:37 -0500 Subject: [PATCH 02/31] Adds GitHub Action to publish https://cim-mg.ucaiug.io site (#71) Adds GitHub Action that you can to publish version 1.1 of the https://cim-mg.ucaiug.io website. This isn't done autmomatically on merge but rather manually/on-demand by navigating to the "GitHub Action" tab of the repo and running it. This is manual so that the CIM Modeling Guide maintainers have full control over when new versions get published. --- .github/workflows/publish-site.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .github/workflows/publish-site.yml diff --git a/.github/workflows/publish-site.yml b/.github/workflows/publish-site.yml new file mode 100644 index 0000000..5e22699 --- /dev/null +++ b/.github/workflows/publish-site.yml @@ -0,0 +1,22 @@ +name: Publish website +on: workflow_dispatch +permissions: + contents: write +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout this repository + uses: actions/checkout@v4 + - name: Install/setup Python + uses: actions/setup-python@v5 + with: + python-version: 3.9 + - name: Install mkdocs documentation tool and plugins + run: pip install -r requirements.txt + - name: Configure Deploy + run: | + git config --global user.name "Admin CIMug" + git config --global user.email "cimug.dev@gmail.com" + - name: Build Docs Website + run: mike deploy --branch gh-pages --push 1.1 \ No newline at end of file From fde36640e756fb9f9b6137ed6f9963551d89d720 Mon Sep 17 00:00:00 2001 From: Mike Heinen Date: Mon, 15 Apr 2024 11:50:30 -0500 Subject: [PATCH 03/31] Updates PDF color styling (#75) The default color styling used for the PDF included red underlines and a light grey color for hyperlinks which made them hard to see. This update changes the red underlines to use CIM color scheme (#009dab) and changes hyperlinks to familiar blue color. --- templates/styles.scss | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 templates/styles.scss diff --git a/templates/styles.scss b/templates/styles.scss new file mode 100644 index 0000000..6c22a6f --- /dev/null +++ b/templates/styles.scss @@ -0,0 +1,11 @@ +article h1 { + border-bottom: 2px solid #009dab; +} + +article h2 { + border-bottom: 1px solid #009dab; +} + +.md-typeset a { + color: #0b57d0; +} \ No newline at end of file From be808f5f44aaa1173782b65593d1ffcf270e2137 Mon Sep 17 00:00:00 2001 From: Mike Heinen Date: Mon, 29 Apr 2024 13:18:33 -0500 Subject: [PATCH 04/31] Adds gh-pages checkout to site publish workflow (#79) The GitHub Action workflow for publishing the site was failing. This is due to the gh-pages branch not getting checked out on GitHub Action runs. It does not get checked out because by default the actions/checkout@v4 step does a very lightweight checkout (i.e. only current branch with depth of 1). This commit adds a fetch of the gh-pages branch so that the branch is checked out and the publish step does not report missing remote changes. --- .github/workflows/publish-site.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/publish-site.yml b/.github/workflows/publish-site.yml index 5e22699..9483a72 100644 --- a/.github/workflows/publish-site.yml +++ b/.github/workflows/publish-site.yml @@ -8,15 +8,20 @@ jobs: steps: - name: Checkout this repository uses: actions/checkout@v4 + - name: Install/setup Python uses: actions/setup-python@v5 with: python-version: 3.9 + - name: Install mkdocs documentation tool and plugins run: pip install -r requirements.txt + - name: Configure Deploy run: | git config --global user.name "Admin CIMug" git config --global user.email "cimug.dev@gmail.com" + git fetch origin gh-pages --depth=1 + - name: Build Docs Website - run: mike deploy --branch gh-pages --push 1.1 \ No newline at end of file + run: mike deploy --branch gh-pages --remote origin --push 1.1 \ No newline at end of file From 8b2f501d7247666c16c1fb3afbc798dc51fc6476 Mon Sep 17 00:00:00 2001 From: Todd Viegut Date: Mon, 29 Apr 2024 16:30:12 -0500 Subject: [PATCH 05/31] Update index.md --- docs/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index 5a09251..f7ba28c 100644 --- a/docs/index.md +++ b/docs/index.md @@ -19,7 +19,7 @@ > **RIGHT TO DISTRIBUTE AND CREDIT NOTICE** > -> This material was created by the UCA International Users Group CIM Model Managers and is available for public use and distribution. Please include credit in the following manner, “UCAIug CIM Modeling Guide, Version 1.1, © November 2021. All rights reserved by the UCA International Users Group”. +> This material was created by the UCA International Users Group CIM Model Managers and is available for public use and distribution. Please include credit in the following manner, “UCAIug CIM Modeling Guide, Version 1.1, © February 2021. All rights reserved by the UCA International Users Group”. DISCLAIMER OF WARRANTIES AND LIMITATION OF LIABILITIES From fc58a259d035167eeeaebae10d554830e45fc63e Mon Sep 17 00:00:00 2001 From: Todd Viegut Date: Tue, 30 Apr 2024 08:34:09 -0500 Subject: [PATCH 06/31] Update index.md --- docs/index.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/docs/index.md b/docs/index.md index f7ba28c..a306896 100644 --- a/docs/index.md +++ b/docs/index.md @@ -21,8 +21,9 @@ > > This material was created by the UCA International Users Group CIM Model Managers and is available for public use and distribution. Please include credit in the following manner, “UCAIug CIM Modeling Guide, Version 1.1, © February 2021. All rights reserved by the UCA International Users Group”. -DISCLAIMER OF WARRANTIES AND LIMITATION OF LIABILITIES +> **DISCLAIMER OF WARRANTIES AND LIMITATION OF LIABILITIES** +> > THIS DOCUMENT is a work product of THE UCA International Users Group. it was prepared by the CIM Model Managers and approved by the UCA International Users Group leadership. NEITHER the CIM Model Managers, the UCA International Users Group leadership, the CIM users group, NOR ANY PERSON ACTING ON BEHALF OF ANY OF THEM: > > \(A\) MAKES ANY WARRANTY OR REPRESENTATION WHATSOEVER, EXPRESS OR IMPLIED, (I) WITH RESPECT TO THE USE OF ANY INFORMATION, APPARATUS, METHOD, PROCESS, OR SIMILAR ITEM DISCLOSED IN THIS DOCUMENT, INCLUDING MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, OR (II) THAT SUCH USE DOES NOT INFRINGE ON OR INTERFERE WITH PRIVATELY OWNED RIGHTS, INCLUDING ANY PARTY'S INTELLECTUAL PROPERTY, OR (III) THAT THIS DOCUMENT IS SUITABLE TO ANY PARTICULAR USER'S CIRCUMSTANCE; OR @@ -31,11 +32,12 @@ DISCLAIMER OF WARRANTIES AND LIMITATION OF LIABILITIES > > \(C\) Reference herein to any specific commercial process, or service by its trade name, trademark, manufacturer, or otherwise, does not necessarily constitute or imply its endorsement, recommendation, or favoring by the UCA International Users Group. -THIRD PARTY INTELLECTUAL PROPERTY +> **THIRD PARTY INTELLECTUAL PROPERTY** +> > The CIM standards are a set of International Electrotechnical Committee (IEC) standards and are the Intellectual Property of the IEC. the UCA International Users Group has a liaison d relationship with the iec that provides access rights to the cim standards for software development. the common information model (CIM) is Open Source and is rendered in the Unified Modeling Language. -Acknowledgements +## Acknowledgements In preparing this specification, the UCAIug recognizes the special contributions of the following CIM Subcommittee and their organizations. @@ -55,11 +57,11 @@ In preparing this specification, the UCAIug recognizes the special contributions - Tatjana Kostic - *ABB* -Abstract +## *Abstract* > *This document specifies the rules and recommendations on how to use the UML to create and maintain a standardized Common Information Model (CIM) of the electric grid and other related business domains. Such models are called Domain Models. The primary goal of this document is to facilitate communication and understanding among people working with the CIM domain models. The primary goal of the rules is to specify the structure and modeling constraints applied to the CIM. The primary goal of the recommendations is to provide guidelines on how to extend the CIM as more of the model is elaborated by working groups within the International Electrotechnical Commission (IEC) and by the CIM user community. The intent of the recommendations is to facilitate the incorporation of new model elements into the CIM.* -Foreword +## Foreword Exchanging power systems data between utility companies is always problematic when proprietary formats are used. In the past a company would traditionally use a single software system, whether it is a custom in-house solution, or purchased from a large software company, and there would be a single proprietary data standard and format used. With the deregulation of the power industry and the emergence of smarter grids, there is now a greater need to be able to share such power system data between companies and systems. @@ -67,7 +69,7 @@ The increase in choice provided by the number of power system software vendors a The Common Information Model (CIM) is an open standard for representing power system components originally developed by the Electric Power Research Institute (EPRI) in North America. The CIM provides the basis of a series of standards developed under the auspices of the International Electrotechnical Commission (IEC). The CIM standard was started as part of the Control Centre Application Programming Interface (CCAPI) project at EPRI with the aim of defining a common definition for the components in power systems for use the Energy Management System (EMS) Application Programming Interface (API). The EMS API is now maintained by IEC Technical Committee 57 Working Group 13 as IEC 61970-301. The format has been adopted by the major EMS vendors to allow the exchange of data between their applications, independent of their internal software architecture or operating platform.[^1] -About the UCA International CIM Users Group +## About the UCA International CIM Users Group The UCA International Users Group (UCAIug) is a not-for-profit corporation focused on assisting users and vendors in the deployment of standards for real-time applications for several industries with related requirements. The UCAIug does not write standards, however it works closely with those bodies that have primary responsibility for the completion of standards (notably IEC TC 57: *Power Systems Management and Associated Information Exchange*). From ef6a6da35f7b77649ac16dac941c41909a8a2e13 Mon Sep 17 00:00:00 2001 From: Todd Viegut Date: Tue, 30 Apr 2024 08:39:47 -0500 Subject: [PATCH 07/31] Update mkdocs.yml --- mkdocs.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mkdocs.yml b/mkdocs.yml index d0ce3dc..4a5ec8d 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -9,7 +9,7 @@ theme: features: - content.code.copy - navigation.footer -copyright: Copyright © 2019 - 2023. All rights reserved by the UCA International CIM Users Group +copyright: Copyright © 2019 - 2024. All rights reserved by the UCA International CIM Users Group extra_css: - stylesheets/extra.css markdown_extensions: @@ -24,10 +24,10 @@ plugins: exclude: - index.md - with-pdf: - copyright: Version 1.1, © February 2021. All rights reserved by the UCA International Users Group + copyright: © Copyright 2021,UCA International Users Group, All rights reserved cover: true cover_title: CIM Modeling Guide - cover_subtitle: Version 1.1, © February 2021 + cover_subtitle: Version 1.1, 13-February-2021 toc_title: Table of Contents heading_shift: true ordered_chapter_level: 0 From 2ee099d7be6d13e60d50a3754ceaa18db7502536 Mon Sep 17 00:00:00 2001 From: Todd Viegut Date: Tue, 30 Apr 2024 09:50:36 -0500 Subject: [PATCH 08/31] Editorial updates --- docs/index.md | 19 +++++++++---------- mkdocs.yml | 3 ++- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/index.md b/docs/index.md index a306896..43bd7b7 100644 --- a/docs/index.md +++ b/docs/index.md @@ -6,7 +6,7 @@ **Version 1.1** -**13-February-2021** +**13-Feb-2021** !!! Note @@ -16,25 +16,24 @@ **UCA International Users Group** +### RIGHT TO DISTRIBUTE AND CREDIT NOTICE -> **RIGHT TO DISTRIBUTE AND CREDIT NOTICE** -> > This material was created by the UCA International Users Group CIM Model Managers and is available for public use and distribution. Please include credit in the following manner, “UCAIug CIM Modeling Guide, Version 1.1, © February 2021. All rights reserved by the UCA International Users Group”. -> **DISCLAIMER OF WARRANTIES AND LIMITATION OF LIABILITIES** -> +### DISCLAIMER OF WARRANTIES AND LIMITATION OF LIABILITIES** + > THIS DOCUMENT is a work product of THE UCA International Users Group. it was prepared by the CIM Model Managers and approved by the UCA International Users Group leadership. NEITHER the CIM Model Managers, the UCA International Users Group leadership, the CIM users group, NOR ANY PERSON ACTING ON BEHALF OF ANY OF THEM: > -> \(A\) MAKES ANY WARRANTY OR REPRESENTATION WHATSOEVER, EXPRESS OR IMPLIED, (I) WITH RESPECT TO THE USE OF ANY INFORMATION, APPARATUS, METHOD, PROCESS, OR SIMILAR ITEM DISCLOSED IN THIS DOCUMENT, INCLUDING MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, OR (II) THAT SUCH USE DOES NOT INFRINGE ON OR INTERFERE WITH PRIVATELY OWNED RIGHTS, INCLUDING ANY PARTY'S INTELLECTUAL PROPERTY, OR (III) THAT THIS DOCUMENT IS SUITABLE TO ANY PARTICULAR USER'S CIRCUMSTANCE; OR +> (A) MAKES ANY WARRANTY OR REPRESENTATION WHATSOEVER, EXPRESS OR IMPLIED, (I) WITH RESPECT TO THE USE OF ANY INFORMATION, APPARATUS, METHOD, PROCESS, OR SIMILAR ITEM DISCLOSED IN THIS DOCUMENT, INCLUDING MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, OR (II) THAT SUCH USE DOES NOT INFRINGE ON OR INTERFERE WITH PRIVATELY OWNED RIGHTS, INCLUDING ANY PARTY'S INTELLECTUAL PROPERTY, OR (III) THAT THIS DOCUMENT IS SUITABLE TO ANY PARTICULAR USER'S CIRCUMSTANCE; OR > -> \(B\) ASSUMES RESPONSIBILITY FOR ANY DAMAGES OR OTHER LIABILITY WHATSOEVER (INCLUDING ANY CONSEQUENTIAL DAMAGES, EVEN IF the UCA International Users Group OR ANY UCA International Users Group REPRESENTATIVE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES) RESULTING FROM YOUR SELECTION OR USE OF THIS DOCUMENT OR ANY INFORMATION, APPARATUS, METHOD, PROCESS, OR SIMILAR ITEM DISCLOSED IN THIS DOCUMENT. +> (B) ASSUMES RESPONSIBILITY FOR ANY DAMAGES OR OTHER LIABILITY WHATSOEVER (INCLUDING ANY CONSEQUENTIAL DAMAGES, EVEN IF the UCA International Users Group OR ANY UCA International Users Group REPRESENTATIVE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES) RESULTING FROM YOUR SELECTION OR USE OF THIS DOCUMENT OR ANY INFORMATION, APPARATUS, METHOD, PROCESS, OR SIMILAR ITEM DISCLOSED IN THIS DOCUMENT. > -> \(C\) Reference herein to any specific commercial process, or service by its trade name, trademark, manufacturer, or otherwise, does not necessarily constitute or imply its endorsement, recommendation, or favoring by the UCA International Users Group. +> (C) Reference herein to any specific commercial process, or service by its trade name, trademark, manufacturer, or otherwise, does not necessarily constitute or imply its endorsement, recommendation, or favoring by the UCA International Users Group. -> **THIRD PARTY INTELLECTUAL PROPERTY** -> +### THIRD PARTY INTELLECTUAL PROPERTY + > The CIM standards are a set of International Electrotechnical Committee (IEC) standards and are the Intellectual Property of the IEC. the UCA International Users Group has a liaison d relationship with the iec that provides access rights to the cim standards for software development. the common information model (CIM) is Open Source and is rendered in the Unified Modeling Language. ## Acknowledgements diff --git a/mkdocs.yml b/mkdocs.yml index 4a5ec8d..e6b89b1 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -24,10 +24,11 @@ plugins: exclude: - index.md - with-pdf: + author: copyright: © Copyright 2021,UCA International Users Group, All rights reserved cover: true cover_title: CIM Modeling Guide - cover_subtitle: Version 1.1, 13-February-2021 + cover_subtitle: Version 1.1, 13-Feb-2021 toc_title: Table of Contents heading_shift: true ordered_chapter_level: 0 From 637c46d885df6af52c8d8ba9ec283d69457796f2 Mon Sep 17 00:00:00 2001 From: Todd Viegut Date: Tue, 30 Apr 2024 09:52:15 -0500 Subject: [PATCH 09/31] Update index.md --- docs/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index 43bd7b7..427016e 100644 --- a/docs/index.md +++ b/docs/index.md @@ -34,7 +34,7 @@ ### THIRD PARTY INTELLECTUAL PROPERTY -> The CIM standards are a set of International Electrotechnical Committee (IEC) standards and are the Intellectual Property of the IEC. the UCA International Users Group has a liaison d relationship with the iec that provides access rights to the cim standards for software development. the common information model (CIM) is Open Source and is rendered in the Unified Modeling Language. +> The CIM standards are a set of International Electrotechnical Committee (IEC) standards and are the Intellectual Property of the IEC. The UCA International Users Group has a Liaison D relationship with the IEC that provides access rights to the CIM standards for software development. The Common Information Model (CIM) is Open Source and is rendered in the Unified Modeling Language. ## Acknowledgements From 04381d07b389db22170eef682e95b039df202ea6 Mon Sep 17 00:00:00 2001 From: Todd Viegut Date: Tue, 30 Apr 2024 09:52:46 -0500 Subject: [PATCH 10/31] Update index.md --- docs/index.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index 427016e..d2c1320 100644 --- a/docs/index.md +++ b/docs/index.md @@ -20,7 +20,6 @@ > This material was created by the UCA International Users Group CIM Model Managers and is available for public use and distribution. Please include credit in the following manner, “UCAIug CIM Modeling Guide, Version 1.1, © February 2021. All rights reserved by the UCA International Users Group”. - ### DISCLAIMER OF WARRANTIES AND LIMITATION OF LIABILITIES** > THIS DOCUMENT is a work product of THE UCA International Users Group. it was prepared by the CIM Model Managers and approved by the UCA International Users Group leadership. NEITHER the CIM Model Managers, the UCA International Users Group leadership, the CIM users group, NOR ANY PERSON ACTING ON BEHALF OF ANY OF THEM: From aa9eb57d388952d78b53ab80c136baa1bf6a67a5 Mon Sep 17 00:00:00 2001 From: Todd Viegut Date: Tue, 30 Apr 2024 09:53:12 -0500 Subject: [PATCH 11/31] Update index.md --- docs/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index d2c1320..4e9b44b 100644 --- a/docs/index.md +++ b/docs/index.md @@ -20,7 +20,7 @@ > This material was created by the UCA International Users Group CIM Model Managers and is available for public use and distribution. Please include credit in the following manner, “UCAIug CIM Modeling Guide, Version 1.1, © February 2021. All rights reserved by the UCA International Users Group”. -### DISCLAIMER OF WARRANTIES AND LIMITATION OF LIABILITIES** +### DISCLAIMER OF WARRANTIES AND LIMITATION OF LIABILITIES > THIS DOCUMENT is a work product of THE UCA International Users Group. it was prepared by the CIM Model Managers and approved by the UCA International Users Group leadership. NEITHER the CIM Model Managers, the UCA International Users Group leadership, the CIM users group, NOR ANY PERSON ACTING ON BEHALF OF ANY OF THEM: > From b974ac897d91fad4527185be168870f140fdd508 Mon Sep 17 00:00:00 2001 From: Todd Viegut Date: Tue, 30 Apr 2024 09:53:30 -0500 Subject: [PATCH 12/31] Update index.md --- docs/index.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index 4e9b44b..d5436f6 100644 --- a/docs/index.md +++ b/docs/index.md @@ -30,7 +30,6 @@ > > (C) Reference herein to any specific commercial process, or service by its trade name, trademark, manufacturer, or otherwise, does not necessarily constitute or imply its endorsement, recommendation, or favoring by the UCA International Users Group. - ### THIRD PARTY INTELLECTUAL PROPERTY > The CIM standards are a set of International Electrotechnical Committee (IEC) standards and are the Intellectual Property of the IEC. The UCA International Users Group has a Liaison D relationship with the IEC that provides access rights to the CIM standards for software development. The Common Information Model (CIM) is Open Source and is rendered in the Unified Modeling Language. From 60c61e8dd0d2ab3c8cb51003781c96e30ece4e7f Mon Sep 17 00:00:00 2001 From: Todd Viegut Date: Tue, 30 Apr 2024 10:16:13 -0500 Subject: [PATCH 13/31] Update mkdocs.yml --- mkdocs.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mkdocs.yml b/mkdocs.yml index e6b89b1..0111e21 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -24,11 +24,11 @@ plugins: exclude: - index.md - with-pdf: - author: - copyright: © Copyright 2021,UCA International Users Group, All rights reserved + author: UCA International Users Group + copyright: © Copyright 2021, UCA International Users Group, All rights reserved cover: true cover_title: CIM Modeling Guide - cover_subtitle: Version 1.1, 13-Feb-2021 + cover_subtitle: Version 1.1, 13-February-2021 toc_title: Table of Contents heading_shift: true ordered_chapter_level: 0 From e87a7401f8704a7fd496bae65768af24499689c9 Mon Sep 17 00:00:00 2001 From: Todd Viegut Date: Tue, 30 Apr 2024 11:04:27 -0500 Subject: [PATCH 14/31] Update index.md --- docs/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index d5436f6..b219ec3 100644 --- a/docs/index.md +++ b/docs/index.md @@ -6,7 +6,7 @@ **Version 1.1** -**13-Feb-2021** +**13-February-2021** !!! Note From 112173c177bbe4d3ad0a2d8d7c485d7625eacbcd Mon Sep 17 00:00:00 2001 From: Todd Viegut Date: Tue, 30 Apr 2024 11:19:53 -0500 Subject: [PATCH 15/31] Update section4-cim-overview.md --- docs/section4-cim-overview.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/section4-cim-overview.md b/docs/section4-cim-overview.md index 8cf1fa4..cdd17f0 100644 --- a/docs/section4-cim-overview.md +++ b/docs/section4-cim-overview.md @@ -206,14 +206,14 @@ The mapping between CIM management functions and the CIM management processes ar The CIM Model Managers perform most of the tasks within the CIM management processes. There are however, other roles within the CIMug and IEC working groups that also perform CIM management tasks. The following table provides a description of each role and its mapping to CIM management processes. | **Role** | **Role Description** | **MDP** | **CMP** | **DGP** | **ADP** | **CPIP** | -|----------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------|---------|---------|---------|----------| -| CIMug Focus Community | This group role consists of individual CIMug members and IEC CIM Working Group members dedicated to developing CIM extensions that deal with a specific area of focus. | Image result for check mark | | | | | -| CIMug Project Team | This group role consists of individual CIMug members and IEC CIM Working Group members working on projects that are jointly funded by participating utilities or vendor companies. | Image result for check mark | | | | | -| CIMug Working Group | This group role consists of individual CIMug members working on issues of common interest to CIM Users. | Image result for check mark | | | | | -| IEC CIM Working Group | This group role consists of individuals appointed by their respective IEC National Committee (technical experts) that take part in the drafting of IEC standard working documents. | Image result for check mark | | Image result for check mark | | | -| IEC Working Group Project Leader | This individual role performed by an IEC Working Group member has overall responsibility for leading the development of a new edition of an international standard from the IEC proposal stage through to the IEC publication stage. | Image result for check mark | | Image result for check mark | | | -| IEC Working Group Convener | This individual role performed by an IEC Working Group member is responsible for arranging and leading face-to-face IEC Working Group meetings and providing working group oversight. | | Image result for check mark | | | Image result for check mark | -| Model Manager | This individual role performed by an individual that is a member of both the CIMug and an IEC Working Group has overall responsibility for artifacts under CIM management. | Image result for check mark | Image result for check mark | Image result for check mark | Image result for check mark | Image result for check mark | +|----------|----------------------|---------|---------|---------|---------|----------| +| CIMug Focus Community | This group role consists of individual CIMug members and IEC CIM Working Group members dedicated to developing CIM extensions that deal with a specific area of focus. | X | | | | | +| CIMug Project Team | This group role consists of individual CIMug members and IEC CIM Working Group members working on projects that are jointly funded by participating utilities or vendor companies. | X | | | | | +| CIMug Working Group | This group role consists of individual CIMug members working on issues of common interest to CIM Users. | X | | | | | +| IEC CIM Working Group | This group role consists of individuals appointed by their respective IEC National Committee (technical experts) that take part in the drafting of IEC standard working documents. | X | | X | | | +| IEC Working Group Project Leader | This individual role performed by an IEC Working Group member has overall responsibility for leading the development of a new edition of an international standard from the IEC proposal stage through to the IEC publication stage. | X | | X | | | +| IEC Working Group Convener | This individual role performed by an IEC Working Group member is responsible for arranging and leading face-to-face IEC Working Group meetings and providing working group oversight. | | X | | | X | +| Model Manager | This individual role performed by an individual that is a member of both the CIMug and an IEC Working Group has overall responsibility for artifacts under CIM management. | X | X | X | X | X | Table 4‑3. Role-to-CIM Management Process Mapping From 68cc00ed9d6304a0841e36aa26c969a9dc514c07 Mon Sep 17 00:00:00 2001 From: Todd Viegut Date: Tue, 30 Apr 2024 11:20:26 -0500 Subject: [PATCH 16/31] Update section4-cim-overview.md --- docs/section4-cim-overview.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/section4-cim-overview.md b/docs/section4-cim-overview.md index cdd17f0..aa7164e 100644 --- a/docs/section4-cim-overview.md +++ b/docs/section4-cim-overview.md @@ -284,11 +284,11 @@ A mapping between the applicable IEC standards development stages and the CIM Ma Table 4‑5. CIM Management Processes-to-IEC Standard Development Stage Mappings | | Proposal Stage | Preparatory Stage | Committee Stage | Enquiry Stage | Approval Stage | Publication Stage | -|-------------------------------|-------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------| -| Model Development Process | Image result for check mark | Image result for check mark | Image result for check mark | Image result for check mark | Image result for check mark | | -| Change Management Process | Image result for check mark | Image result for check mark | Image result for check mark | Image result for check mark | Image result for check mark | | -| Document Generation Process | | | Image result for check mark | Image result for check mark | Image result for check mark | | -| Artifact Distribution Process | | Image result for check mark | Image result for check mark | Image result for check mark | Image result for check mark | Image result for check mark | +|-|----------------|-------------------|-----------------|---------------|----------------|-------------------| +| Model Development Process | X | X | X | X | X | | +| Change Management Process | X | X | X | X | X | | +| Document Generation Process | | | X | X | X | | +| Artifact Distribution Process | | X | X | X | X | X | #### Draft Standards Preparation From 350827c03dd0343295366ecf17def70a3c45831a Mon Sep 17 00:00:00 2001 From: Todd Viegut Date: Tue, 30 Apr 2024 11:31:47 -0500 Subject: [PATCH 17/31] Update section4-cim-overview.md --- docs/section4-cim-overview.md | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/docs/section4-cim-overview.md b/docs/section4-cim-overview.md index aa7164e..8a93b92 100644 --- a/docs/section4-cim-overview.md +++ b/docs/section4-cim-overview.md @@ -153,7 +153,7 @@ Continuous process improvement (CPI) is the ongoing process of improving the CIM Mapping of the CIM management functions includes two (2) mappings of the CIM management functions. The first shows the mapping between CIM management functions and CIM management responsibilities assigned to the CIM Subcommittee with the UCAIug. The second shows the mapping between CIM management functions and the CIM management processes that realize those functions. The first mapping is shown in Figure 4‑2. The second mapping is discussed in Section 4.4 and shown in Figure 4‑9 - + Figure 4‑2. CIM Management Functions-to-UCA CIM Responsibilities Mapping @@ -179,7 +179,7 @@ CIM management processes are the realization of CIM management functions. There Figure 4‑4. Model Development Process Flow - + Figure 4‑5. Change Management Process @@ -199,21 +199,21 @@ CIM management processes are the realization of CIM management functions. There The mapping between CIM management functions and the CIM management processes are shown in Figure 4‑9. - + Figure 4‑9. CIM Management Process-to-CIM Management Functions Mapping The CIM Model Managers perform most of the tasks within the CIM management processes. There are however, other roles within the CIMug and IEC working groups that also perform CIM management tasks. The following table provides a description of each role and its mapping to CIM management processes. | **Role** | **Role Description** | **MDP** | **CMP** | **DGP** | **ADP** | **CPIP** | -|----------|----------------------|---------|---------|---------|---------|----------| -| CIMug Focus Community | This group role consists of individual CIMug members and IEC CIM Working Group members dedicated to developing CIM extensions that deal with a specific area of focus. | X | | | | | -| CIMug Project Team | This group role consists of individual CIMug members and IEC CIM Working Group members working on projects that are jointly funded by participating utilities or vendor companies. | X | | | | | -| CIMug Working Group | This group role consists of individual CIMug members working on issues of common interest to CIM Users. | X | | | | | -| IEC CIM Working Group | This group role consists of individuals appointed by their respective IEC National Committee (technical experts) that take part in the drafting of IEC standard working documents. | X | | X | | | -| IEC Working Group Project Leader | This individual role performed by an IEC Working Group member has overall responsibility for leading the development of a new edition of an international standard from the IEC proposal stage through to the IEC publication stage. | X | | X | | | -| IEC Working Group Convener | This individual role performed by an IEC Working Group member is responsible for arranging and leading face-to-face IEC Working Group meetings and providing working group oversight. | | X | | | X | -| Model Manager | This individual role performed by an individual that is a member of both the CIMug and an IEC Working Group has overall responsibility for artifacts under CIM management. | X | X | X | X | X | +|----------|----------------------|:-------:|:-------:|:-------:|:-------:|:--------:| +| CIMug Focus Community | This group role consists of individual CIMug members and IEC CIM Working Group members dedicated to developing CIM extensions that deal with a specific area of focus. | **X** | | | | | +| CIMug Project Team | This group role consists of individual CIMug members and IEC CIM Working Group members working on projects that are jointly funded by participating utilities or vendor companies. | **X** | | | | | +| CIMug Working Group | This group role consists of individual CIMug members working on issues of common interest to CIM Users. | **X** | | | | | +| IEC CIM Working Group | This group role consists of individuals appointed by their respective IEC National Committee (technical experts) that take part in the drafting of IEC standard working documents. | **X** | | **X** | | | +| IEC Working Group Project Leader | This individual role performed by an IEC Working Group member has overall responsibility for leading the development of a new edition of an international standard from the IEC proposal stage through to the IEC publication stage. | **X** | | **X** | | | +| IEC Working Group Convener | This individual role performed by an IEC Working Group member is responsible for arranging and leading face-to-face IEC Working Group meetings and providing working group oversight. | | **X** | | | **X** | +| Model Manager | This individual role performed by an individual that is a member of both the CIMug and an IEC Working Group has overall responsibility for artifacts under CIM management. | **X** | **X** | **X** | **X** | **X** | Table 4‑3. Role-to-CIM Management Process Mapping @@ -284,11 +284,11 @@ A mapping between the applicable IEC standards development stages and the CIM Ma Table 4‑5. CIM Management Processes-to-IEC Standard Development Stage Mappings | | Proposal Stage | Preparatory Stage | Committee Stage | Enquiry Stage | Approval Stage | Publication Stage | -|-|----------------|-------------------|-----------------|---------------|----------------|-------------------| -| Model Development Process | X | X | X | X | X | | -| Change Management Process | X | X | X | X | X | | -| Document Generation Process | | | X | X | X | | -| Artifact Distribution Process | | X | X | X | X | X | +|-|----------------|:-----------------:|:---------------:|:-------------:|:--------------:|:-----------------:| +| Model Development Process | **X** | **X** | **X** | **X** | **X** | | +| Change Management Process | **X** | **X** | **X** | **X** | **X** | | +| Document Generation Process | | | **X** | **X** | **X** | | +| Artifact Distribution Process | | **X** | **X** | **X** | **X** | **X** | #### Draft Standards Preparation From 435d0cd9f1eeb02990049912aa2d9c16a326f7a6 Mon Sep 17 00:00:00 2001 From: Todd Viegut Date: Tue, 30 Apr 2024 11:38:20 -0500 Subject: [PATCH 18/31] Update section4-cim-overview.md --- docs/section4-cim-overview.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/section4-cim-overview.md b/docs/section4-cim-overview.md index 8a93b92..afb3801 100644 --- a/docs/section4-cim-overview.md +++ b/docs/section4-cim-overview.md @@ -78,6 +78,7 @@ The CIM UML is semantic information model that represents real-world physical el CIM Management is a business function performed by the CIM Subcommittee of the UCAIug Technical Oversight Committee (see Figure 4‑1). +![](images/media/image4.png) http://www.ucaiug.org/aboutucaiug/ucaiugorg.jpg Figure 4‑1. UCA International Users Group Organization Chart @@ -152,8 +153,7 @@ Continuous process improvement (CPI) is the ongoing process of improving the CIM Mapping of the CIM management functions includes two (2) mappings of the CIM management functions. The first shows the mapping between CIM management functions and CIM management responsibilities assigned to the CIM Subcommittee with the UCAIug. The second shows the mapping between CIM management functions and the CIM management processes that realize those functions. The first mapping is shown in Figure 4‑2. The second mapping is discussed in Section 4.4 and shown in Figure 4‑9 - - +![](images/media/image3.png) Figure 4‑2. CIM Management Functions-to-UCA CIM Responsibilities Mapping @@ -179,7 +179,7 @@ CIM management processes are the realization of CIM management functions. There Figure 4‑4. Model Development Process Flow - +![](images/media/image6.png) Figure 4‑5. Change Management Process @@ -199,7 +199,7 @@ CIM management processes are the realization of CIM management functions. There The mapping between CIM management functions and the CIM management processes are shown in Figure 4‑9. - +![](images/media/image10.png) Figure 4‑9. CIM Management Process-to-CIM Management Functions Mapping @@ -284,7 +284,7 @@ A mapping between the applicable IEC standards development stages and the CIM Ma Table 4‑5. CIM Management Processes-to-IEC Standard Development Stage Mappings | | Proposal Stage | Preparatory Stage | Committee Stage | Enquiry Stage | Approval Stage | Publication Stage | -|-|----------------|:-----------------:|:---------------:|:-------------:|:--------------:|:-----------------:| +|-|:--------------:|:-----------------:|:---------------:|:-------------:|:--------------:|:-----------------:| | Model Development Process | **X** | **X** | **X** | **X** | **X** | | | Change Management Process | **X** | **X** | **X** | **X** | **X** | | | Document Generation Process | | | **X** | **X** | **X** | | From 697b42484f6a9a1dbdaa36ccc52a89251df9bcee Mon Sep 17 00:00:00 2001 From: Todd Viegut Date: Tue, 30 Apr 2024 11:43:39 -0500 Subject: [PATCH 19/31] Update section4-cim-overview.md --- docs/section4-cim-overview.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/docs/section4-cim-overview.md b/docs/section4-cim-overview.md index afb3801..5f83e44 100644 --- a/docs/section4-cim-overview.md +++ b/docs/section4-cim-overview.md @@ -78,8 +78,7 @@ The CIM UML is semantic information model that represents real-world physical el CIM Management is a business function performed by the CIM Subcommittee of the UCAIug Technical Oversight Committee (see Figure 4‑1). -![](images/media/image4.png) -http://www.ucaiug.org/aboutucaiug/ucaiugorg.jpg +![](images/media/image2.jpeg) Figure 4‑1. UCA International Users Group Organization Chart @@ -206,7 +205,7 @@ The mapping between CIM management functions and the CIM management processes ar The CIM Model Managers perform most of the tasks within the CIM management processes. There are however, other roles within the CIMug and IEC working groups that also perform CIM management tasks. The following table provides a description of each role and its mapping to CIM management processes. | **Role** | **Role Description** | **MDP** | **CMP** | **DGP** | **ADP** | **CPIP** | -|----------|----------------------|:-------:|:-------:|:-------:|:-------:|:--------:| +|----------|----------------------|---------|---------|---------|---------|----------| | CIMug Focus Community | This group role consists of individual CIMug members and IEC CIM Working Group members dedicated to developing CIM extensions that deal with a specific area of focus. | **X** | | | | | | CIMug Project Team | This group role consists of individual CIMug members and IEC CIM Working Group members working on projects that are jointly funded by participating utilities or vendor companies. | **X** | | | | | | CIMug Working Group | This group role consists of individual CIMug members working on issues of common interest to CIM Users. | **X** | | | | | @@ -284,7 +283,7 @@ A mapping between the applicable IEC standards development stages and the CIM Ma Table 4‑5. CIM Management Processes-to-IEC Standard Development Stage Mappings | | Proposal Stage | Preparatory Stage | Committee Stage | Enquiry Stage | Approval Stage | Publication Stage | -|-|:--------------:|:-----------------:|:---------------:|:-------------:|:--------------:|:-----------------:| +|-|----------------|-------------------|-----------------|---------------|----------------|-------------------| | Model Development Process | **X** | **X** | **X** | **X** | **X** | | | Change Management Process | **X** | **X** | **X** | **X** | **X** | | | Document Generation Process | | | **X** | **X** | **X** | | From 2fa254807b29a17ebff5ea67275d9c2cf01558bb Mon Sep 17 00:00:00 2001 From: Todd Viegut Date: Tue, 30 Apr 2024 11:54:13 -0500 Subject: [PATCH 20/31] Update section4-cim-overview.md --- docs/section4-cim-overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/section4-cim-overview.md b/docs/section4-cim-overview.md index 5f83e44..05d4f48 100644 --- a/docs/section4-cim-overview.md +++ b/docs/section4-cim-overview.md @@ -74,7 +74,7 @@ The CIM UML is semantic information model that represents real-world physical el -## 4.2 CIM Management Business Context +## CIM Management Business Context CIM Management is a business function performed by the CIM Subcommittee of the UCAIug Technical Oversight Committee (see Figure 4‑1). From 6f6ae24ca71f866ca791ca12655b0de2b4a0ea9d Mon Sep 17 00:00:00 2001 From: Todd Viegut Date: Tue, 30 Apr 2024 12:26:57 -0500 Subject: [PATCH 21/31] Update section10-cim-management-tools.md --- docs/section10-cim-management-tools.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/section10-cim-management-tools.md b/docs/section10-cim-management-tools.md index c2d269e..a9015ee 100644 --- a/docs/section10-cim-management-tools.md +++ b/docs/section10-cim-management-tools.md @@ -8,7 +8,11 @@ Sparx Systems Enterprise Architect modeling tool is the tool used to maintain th Enterprise Architect can also be used to generate CIM Profiles with its Schema Composer tool. -## jCleanCIM +## CIMTool + +CIMTool is an open source tool for working with the CIM to produce design artifacts such as database schemas, RDF Schema, XSD Schema, JSON Schema, source code classes, reference documentation, etc. from a contextual profile. + +## jCleanCim jCleanCim is a Java application that is used to auto generate draft model standards from the CIM UML. It uses a Word document template, a configuration file, and a CIM UML project file to create the 61970-301, 61968-11, and 62325-301 model documents. From 003510e9ae88bdf57c18a97b42e73d5e23aa61d0 Mon Sep 17 00:00:00 2001 From: Todd Viegut Date: Tue, 30 Apr 2024 12:57:03 -0500 Subject: [PATCH 22/31] Update image2.jpeg --- docs/images/media/image2.jpeg | Bin 39521 -> 48896 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/media/image2.jpeg b/docs/images/media/image2.jpeg index 76a3e9e87f42e55d4567aaf278046d636f6a78cc..f5af660656611f208dc90be171fabb303f2c8bad 100644 GIT binary patch literal 48896 zcmce82UJs0w`LIO0)kX2QE37K3J6FGh%^xqkS;_;r3pv}3522`H39+(0-_)yO?oGE zM0%GXEulzHK*EI-=KB9{-psr=v(`Uv)|#8#wQlac=bXLI*=O(l?R`#;e;zMDPT$ls z)PvB_&_M2kAIR|{S3z5ZLt-{OBuf!|Y% z42*x@_`f@jTOk~bG`DGvXlX7$PH@oBa?l)iLZBe6bRb86nfkYb<^=6YI(m>KW)|>; z>eC?kw6rHcV(Ctv1m6w;pF>V^&~cu>qD_Cs^Z~;KFE07;q+CXk>*a0SW+Qk}g@@h| zOw2sIeEes{#3e3DN-17dQdYU9s&hkEPv5}srukh9ODk&|TgOL_pExo7A-Qx9>7Oe#*=LT=1pvYei*MbxmzueM5UkXIFR6_ue0)W8)K( zQ$MFMi&)&!^2+M(wROVo-k*Kq0dRQqmoFL!?LXQ2ch3F;UmPG`C%`c{$?%siniB!w zNy~AP?)(*cPHj_$2VQ3`$cHm>T~Ep_Z(|ZsFvD{{^d4d65mj6iBm8CUADsPbj79vH zIQw_T{s&(e$SGPHaPVk3ATS7p{4w?-|Dns~@0|E_sr_I2i+KfVBRG|VtjW%UDzH=PGAX6KTa$p)01Khkoirhy1p zg0My{-miabPLaVV(f-3=_}!fcjoa_pRHxojN1=Gjp%_*4Rsz-}99}8c7D&Ak*s-`@ zWu+-U;iuuD0o5JG+@0kv%b1?OCZx}IE==ImUD}JATi~ZU zbC{{;5NeYG+63{qLJ>pPbm{liC6mJ`1wW=|ek?ehPt9yQhCC<(tA+ggah@ z%AxWH$!=Zqi9Hf=OV(zp%iG#``PUZRb(-DpedU?wgSsH02_x1mY6NLOt@U~Lw#LjP z^f3PuUxV$XU!45>Cq1jbX{CB)=h6ONmk!6zZ^i!iA`SU}1X&&rN zycH}O$_I1bi9w%GhxrxsVojpY-m^k_)J@8mjoCE@_9wVF)21bTyn`6)ZZBqB$k>KG zhGBMBu@akJ9}%~KqGJdnG)z|ZW!v~mRP5GOjkBF%ok`-e+R*QauZ1d}sWA>8!!*`o z7ZL0vU4R#h3fpe7T0{#3>Nw!5V-;&vyK{=Q{Tw}F8{cI=@{W1Av@JrL(LaiG8;a6A zM@URx>|>A7gftV_8eP*Ho@Bb0VT=R5Xp!^EZ&Y|B@p&^xus?LB9djO?RLD1sZP-i-1A45NZYM zww_%jXG|xSCo|U4jGz@o@?Z66tk`%9AH*MgU@!Vo_6EIB0?t5Ib1G9gNfYqw#yCYi zC0ocgV`tSmJl%YJC;K?5d z2Ma-%m9?#7Nae@+K@ThDfC}7pvciTI)Y{a+jlfQ90j%)pJxWx5f=Oo?B+#?dDxQZ` z!Gb`SpY^LVOpC+tT&Ol5E~|sPkYGoQ#w)iX**b~?aorBw_|Oz@>RsiG$s)QJ3YzlV z!j=|}iO-mD8IY|nr3$tHVPT#%(9U?OT8=N!>h|z{p_!1HS^dQQ*g?uKp`ug8i=r|S zT4siAe@flVDYaC#-&C4o$cwKV*xHU@Bnzd~7)Ek{b56^|)W?U5Uhq_SkQ8vL)LUL* zGEC!P>?&0Vp+8KO1}vxU;RmbpfN0%jx{|U#eRbPg1(4VNz5I_<)StO6A!k;p%q3X4 zu=%RhXw4G{Zoo;on>``){8&`2SAk)ncxFC;G?}m5;!Qs()R_3}vYJoY9WBkDA6rBz zuaFC$=g)*nhK{T5v>_97X#L{o75dJ<)z@m!JJ?(q$5iOs0iqx}Ay) z3r)obY{Bt;SccfmDj^1}a@hWWn^~+~oDnO`p}L{IK2iQgVp87Ax91tWAUFn&lwwVOvI!6wv88vcS0l{a04oubthzvwo-XH&PP$=YzoI2Q;2@bPH!j!&KL$hgK+`slpw3&b;8{ z%L%+_4SczIBr`JQenYk42FuOK{zo&H6ZEWe-9MGU0aF654J}+{SPi2EYCAM9kIAgM zxs?7fzAbc}aT(qePf)n{;I}cvU(xD25^s(IqzovLa%7f;GNwSN8IVs%!RC*rWpm@R z-fVcTGWP7q%8FgvT{P4B&Vbg+LtOz(Ksyu(8n-|(<@I3{J`CAy7-j`bwM83W@C zr#?;kx{>B!!z)QzyZK^o*i0@pJ*b7S4}X;&@I<@iM5&s@;qY6lot}^xAi~{*#Hn$W ztnDnjgx(-(^S(n5t&y5Mmb~t4Kx<6eQEULpa-^C)<`}~EhvL{l2*Q-44!zpM){UL< z9~k>&aLUo2-cFF9C7i1pG}I-B=~>Ka-4K$+b?0!Xvn;AqcUg_uSx>n?wYp=u#CI!E zy;WPVRM*)x2ihc*=Yrv0o{A$&xH)3OZYOvtm3bts|Fl1b{NB8G>8HutO_?5zYaiG! zu>^`Iu>p^c52X#9@5*5zn=Zg#S!HvNmF63isO!2Dq19ai6*^wtrDn4>>2$xsK1o#H zCreTq$zsP4X64qS)h-w>Sq=!o4sknwTd!O*!KpF1zpg*uGW6^*i`VJG3t--p^qenTGQZeQL#~LhXhC&N;o`qx zc+(kl+-2%u!&I2>{D}<*UZ7X}YOhDrkXHbQo#t294h(UQ?^(0G8ZiEx4yG&SmN(1G(G=&JE zueKfSD7>ao)Sq?TR{b&WycNc-E!|j{K=-hR*Uqzq zp8t(G6PR+laZGNo{DUhoGT?{o$cZj-Q#{}68Np|Ij10fVt-8S}XUq;rmqi{!+;gVk zi^q@z^~Xg3@8W!X%ei|F9S;`WP^a5vx7Fi%-BWrEZ63Wwr)KjOo^#^02yl zWi{*W>4Ae1xzIRZ1brNNZ_2&u(1YgThmSwj`{j$}={3#2e_%KGSO@0|9iC$X0_fj~ zqj4q-zmwdO6px;!A9XcXtaC{1I7RpSab7gzOBIFqjJ6=rU{?$x1UzSQ+F-Q4Xb$J+ zbGbMZcJ!+Y1n$rEPcZ7tHpz42H$^ockN2Z5ISR_ZzP)gfcH^sLxzcjM9U5J(|Mi4t zfUNq|M(&5`6NT`wINw=mvx%yqC^V-coMXewdPZ@t>%p12BW?ow!^Rs5a*cv@f;viglg7X-gbdBc%J8kwMc77fZi@^c&4()+LLPgi%EG>e+ z8%#Dol_1+qG;4E#Si2G*%g8(R@pJjV#JKq%{fY%VQ+>ug%EsJ=01>$^dmZDbK^$=$ zSk}ldov&;YPtQ}dTn@B$lKA+H>K7kY`y+xCEdSd5Si+hmZouG-|8R` z1ysiR5*asrs}s(Ua&M?~t8`zv3u>hZ8M0XfX7D7XT2tkcs&BU6d&irjCv19q=lOOo zC-g2q3;MvG+#(s;6Us7*T*!ykmUZMX0}|R}>Kb3ELp4WlRJrq`(+iFv&Qf`=`@fyT z2tC&I!+>2o*K$(`e=8xYB!Wyvm zEBtuF&%k}Ol7rWW#g(s{!R5B<35$MAA5ZuBDpI5elW4x1QT4DNh!VmRMt}V=afIQB zqS1iT5b-{vM>r4lOA4U9f#2Q&DS_>`r&65 zP-FoGJlYDM^TIcQ;T{kJ4cjIg7Gm0JNH!UUoMxka2Qlnkk`AGFehSjSJzb!9UAY(x zdsKIvBgqNzw0y+kCemrf`AA(U)5LUHrtX$7j$3Ak%#n`m+Ro&TpReiZF{~naw^$Ts zI3y42)^5A&(2vyCFbF;jQ&+$uTiH)g!ASu3jFiD|v?&Qgzcm1oSf+g$wd=KZdXvUg zK2NO}=?@KV2%!4=xl)oc$jbz$t}iZfxFMz8}uehl4q(xfs5z|OEar)!Qc zp_<+*#d=a!RCZeG^2^g_F1W)aO-UC)Rih7&8(ohLRJah>9Y0^Q*`tD|A5+ZFqrJ zCsCPSm%uckC!RAf+&xTJ)02zUOuixKx3Sk5r7GSkOTEvg`E62Im_lXjC75ZP zUUMP2A$;t`UUxs$dzVLf_h#Q5n)EHgP}H#*g3wvuYhuTtFtx;Kg8pW&i=!t=r5At3 zw0x>mF<7~FSguJ+Mof~Zd+xknywc56A;*v%pOqFVN`^WMK9kD01Cnz9yj&b&SvzZj z+K0yqLo*IK(`sh?j8LkF zb}K&TLCvV|EB9~nfk8%)TO9A>0}7PM9MRaSG#+9JNV}Jtk+M}y*xGaL*xBgoaZB!I zYNr{@K@5_K#9PeAW-|jF1byPqQS)|CM^m9dqwZT55<>f|Jix+#jKclK@U| z^2(uQg?MV7w4H=s{44pe177!XndG*X#r3pP|W-ysWi7T|);bD|SwgY+5B zmvWOPZ7i(bi|(DcxN`WG7;90vm zkJz_j2q>MpCeW6>Q=Dbjt8zqw0&3Tn&Qwj!XN!PD ziXjXL9_3Djt~oU(-R?%_V|IR7vnz3*Of(88KK`|r-Y<~ze9VDQRK{k4QO{ZUPrsoV z9h`sl6L`PUQB-Q4{dMb*u?hqJz$2uB7Bmf7Ro4DfF$XxW-_fi&(=`H2wT51xe0-4E zvE%Z=!MUbJ$wzFo&)r3+L!tUxN>I#5?BZM6*KX_cz@?qdmv}4U17HAuwx><=JP?c* zxHIBj{TRO=9oKZaA*Z8pHRr+mS%dEc9sfDog#OY_ca?keWnVnd3-M5HIbXp2$zP*$ z&jur3-Q3h*`I=x?5ifb;vb))}Zpel)0Z!)d!KNox)s#=7-AxkD4!lUHFY#lQHfRV( zJv3dAPWp*U9H&V+hS1L-?jJ*5ej;5V>()ds?t~!(9)sSXfc><1$-?706IP(b{_E(x zP4UvV>(4ar$to?JI;~zydxv-GKg>VPT*a{2C=Yfp{HyAqxD3z9!C?CGc z;`sCw@2T+ED4yH~WZ(T~*Havp^T1LS58Q5cbhj{wqkLfzOaAUD%kKsRf#PH7Tr9O+$nh0Za)miFoj5^rz} znP!{02R3s8;SHqX=i4v;3LUmWVMCw>1iCy1lCzzA%%hrWWK-iumv4m;Hi??96k7Zg znIjmR6RBu1_Q!L^92bRpSPb8sJbOFIo!-Q}{2XmIwOaEfsJMK9>cz|l^jRc#M8MeA z?!Xde4Rh9(fu4h1zl4;^p)&23s?(O;0&-f72nL%XvI2Fm^u;Yu0=yHh0@&$hW6XW9 z=at@hCxv8j7^Zk-XzFVn4$}1e#5j>T^sycZW$S12bGEVw6+;#i^fP@MAtDB`>ziKT zq90jz;sX?G=kdD8Sld!GTZtFR1>uotRU6;NO$R-aRVEbL&;s>^YHsTwKY(c&LWnBc{tyq(!CPz=LcD)eZ=veQVsS<7${{v zI5|KDy~Tv}obH|+giTYLSn_{54CLB{zzs1APql!BUhC$pG1L(9@udFW)F5UMUZ7gF)w(+${ z0m`@RSb2#P!15<+k*XNC2l;C}!?~i#*F|ZxMUxE#S2G~HXyB4?egFy7UTt>BCqtOB zPRx_?Lh^b1TpFY2!xXzBTPHw^_RZSC@61J4ykpM>fpZP~P(1_xJydjVv#h@}h! zDh`O~S0>Ci%J+ECXo517ja*1OhEzZ!LlwbluOCA^JTIyDKoAjkHx=6T9}_$S#x4(1?}<_wvccP;i)Rz{#-+;)l{G9Ma*nF2*GZ~l-hk> zm4;lJTNQ8e!RnI*{0I^_xfj*!CxJ%dAW(uei8`w65F@64ap5`OO^@QSiZ^^VXhi2n z=gr6`c!yyKUgOlY1KG%__DEkqo(Y66pu?{=voCnOj=`D4Jm)5&m0vwb8x$w8B^AUt zMh@wP5+}^540z;!byct$UVF$mI+Ly6pY@+v;4HrXFFwJ%=3u1}!4uk!=R*G7DMk zCit?b86v`NB;Q4;&+SoV%lj7%?QgYue0-subDvv+D3xgEV@Tv2A6Uqi`W?o+Z^8i3 zwa5joE|$KH!wqq-o!Fjg%@9zGJz(^&tm@xT>atKdmz}R0nrjHoqsKtG%+|yhh){*j zt{ll-Sbs96m?GA1-QD9zZ{yX?rl)41HUwONcDn06utUv2aiYf%r+6Jmy3WWw9lk*h z?b=1X+mKd%^*an5^JhSC@&ieWyl*m%UfgNRQeNEYgwracwlD3d2jc)g#wNAgjdI(z zO9w|UzXm;7G32ps*E@zZT3Fm$G!9G;59JR;Vqu%0HlmXsT}09Y4Kw=GK7xOwQsf7v z^iS`&Zt3L~Omk9i26;+-lDuybGp9We`gso7b~^NetLiC?@z7QRA$ddh-HYU(#vh$W z?QY^eRXzFjNtrgee&IQDJp-8|1>03LuuKKLW={B_~~Xx8T!3t+EjrUMgb} zL8L>;vIgV1l|;xisU2IA$LP9)m`UGtE1^HOWPe`F=Q|EPP5=AzFmn3Ul{C<8Rbh+C8b#nyYkLQeG&~?+Dw}rK0_Z-)zDOddo5S$zeipQnNg%!n#Y^X^ObE1fI~eB zNRW&Ice{6?k;*M68}Y*VSiVb3^>H1w12X+1z0Xeb+(2HX-}K#6#c^*zE2qdj${jhi zwOi&OWRA{ZL|hBOc}9f_;)@#+iwGB#lV^;pTh6zZ8!WxzkCTi`mD1l~W4xDP3z9XD zqpvP7aS9l)P|9DKL(z_bONZJ4A#|G z)jNWom8>Vv%9Le%>o^x+!P#BB8ijf0PpJokyZ3-klxRx&F@!arfF@mfPl!gO3Sm-fryEBc24;AP!S61$yPQ>x(~}VUbb>tzbxk@Vcx>MjxG>bY!?CU!GFL)+ zLVh|at5}~Fd`+$@>q0>FGwoRc#gm@|{mj^#A)yia)Uv~|uhQ1Hln9@$c*k;;Ljx1{ zWguLpy8qi#$fY2|tuEdtyRM9p@&N`yDOR*og1@nZ#kg!Wt1SmY)X9 z`5=o^cIsy+yJb_oq;Bn!qaDZX_@J+9B6Gc;$d3)f%B{24yICc!N+JheMT|m}6gYOZb_n-WW1xG01Z;v5E@7PIB495@{2a(=+ z0D(M)u)hVs5S12O2)R%JqpInXH60g`6dD8wUelOIJse2xAuw#PsmWTA$N zY-~F-2)QkRjt^ZX;DFwvC$tJ5J=Fmn(5dRsA$avvIMSuj2EE8TacU~9aAm;Ji$7|e zdr+B6!%E%5OfPs!15qS!U30Wr>C-Pv;^U|y*_%Gb*(JL2;)5>xs|CIRbX=x)|5GIP zKSpN%AAU1rP$!QeoF1VZp#v=n1lG($s|=5K(sl-VH@v_7Oh7%kk7OoCj#(Og^W4r_ zZAOa+<)`+k@vf!~dh0Q1^os7f?VD4XubnX_ag(*$(_qsZt^7kfj%7b)MY6=lgicB6 zH-{#)jW2vlDdgVqv0L`s)0B=8ofAJDY+e37JIE7mtFQ^PrTLx*19p&mlPv|7fr#?W z04P26gd1Ei#a30#wu~s0Tc0xY1YULRWZsqRU8Tv^W5}aPs}9&p)%h+Yr_I`taYARG zR}lA`^y^HvEJ{i3w9*&V^sfySTwR0HBVDqf3!WYBP?Jjh4souUQbwu#V&tQq)_bx% zs|Kr)u=mpJaJJhn-_Mp|OKw4f*S1DUIaF%+&#XjO0@g0DcR7%ybkdbTC0w6{PhD_Exe-KmGtK>|aG@)k?l z@f9ZuR%rPIaonK?i);;7(<;WE%I^0hP72i9whsoKl)S(o5Pm0+e~3@z(6CGwi9wpc znALR(;_T3Xp=cVhPp|pn754&%9~DCaN?4s!mxa)Q?G0s&)JaYLN&?-^jNP5MTlE#A zNx3P;XAa9;ATh)WBf%sC_FwnAo+n>CT2Y!JJ_2)(CC3oj)h*@LhPleTIr#K%O#VRH z`!0`y#8JJ(U*XAuVOk;#*VN6oLWKe&sH1b(`RfzgGTZOW_(dw;6n8}}aN*v65w&Un z^ogJGiOIfhO+b+moM~>|O6lkZUpA|^+UF#kQ49;}UBFB4)+NW2*vd<2*PGW@675B7iPgT%gI6-oNW%8fYROPTNuNy%6LoIU2^AYMs4*1F3Mf=-! zGPi$h+-`~%Sg3!AP4b2{vZ$HTr(G%7bsQn8j&( zP8Tb+jEl3gpW+0b<<|`aQJ%jIx|@1cDz+b2c$?W>w3uHLEmz=LzaaO@YMz!V@mo`B zR7~mMY{;L``zK$%V|ma#AY!BhHD8PAdr95!0w6E2KTCMbsD0?oT^J>$;LItFof-xZ3CHr-~wS|zYl z7F!A~7Lfq6-#n}Ogu(g`vw@aW4CzkV+#G`^XNTZpv8uXLmt!Q=et!5a1t|+A%tw)( z@_?0N2v#C`f55X-sV1AVuKFAB{48d&$6{PLh;YjzE1*Z({d7dn!)VbzW!+wHt@Qk1 zhV4@p_jBw-rY@Eu7h7tJL0s}&HW$mv2L#wPS40I<593>B-OD`S&xC*65GSnvPj|w=2e@%FPvN4&VcIWwZ0yfz zPpA%`7}4c|nEuyKngN6@p01z^9+j~gwL|Wzo_e}mnfiM1wQA}wFvp`miay_>L}mp8 zpl#S|Rp>J=mH83h+xyI3GS$@G!kacY3i0k-Tu78hKAEL0u^9KQ+ZQlA_u9kebm8of zgY>W7%H9Q0oQHFtU$F4)$EiI$Z^~R`-T_`YwBKXnv)8zXC=#dgoG4{EFVLjw2bC(EEWim#Hns%RC=1ejhYXYVP%Lc@!W|_ zMuPUOJ>WBPsE4Ws&zqMcDI(CD6Ubsd_~9SwJ{5E!94D#BR`N6`3Ois9AqVx>kly|? zbO;LBB75uV0F|M4U%B8qfJS$ zI|TK^-eZK%=akMv&2YETPzZu)B6xMNwS^-J}&M%}L3mMh~^Agg}KhUI(QKYy_9* zxujKNRO%Ttu3LJlMbV`}Xs8W-<|mMHH(eXw-*C16Y-v6>$z`Vi!*|bErQYl_y}`ld z*Qf86YGYe?2!j~8oV#vLhZk6`9o4tjPM&_=zx>Y~q*iY%qfl3SYDU-m0pGU~i}IbF(D_-Gz) zX_5ef*6*-3Bp{b^3`urDWIF%*u7_yXsH=b)xm}_so`sTiS$;J0Dhc3{a z>JDB5n=ePWicqzwtgr*NlpONA56Cuasv-}j#)0{vYIuQR&lE)hMXmONl~dwX%eJm9 z{FIf!))0MLarAza-k*Y81fpCLr&2rYoKsi&|P-C zCzWOCZ^vR90fi4_dB6$R7i_O=UDtwYtFhWCa*(gi8&LmdaD(>A-BRp_DA6qhF81(q z!{xwxji+Z`a_0`&ewIqD{|ak57y^Q!-8n}LfE>vFE^^nHfy&%P$dA%&`|rJQbs@9) zr9kt`0OX?u*y{ML(8k!m`ea8l9nVhY-sx%ZZ}bF}np3o|z<{P9k22|$r`tsaQt_iC zBjL+@G}-$HJ?$p37+5z9;?iL3y)z{j>AEt0mUzhY73ncVO z{OA}LW;{B3grhR45o$ac$(jVc%pk#Z%cS+Bn@UQjZjEgDL{4ei9&9qN_N=V7ddB3mu-v-}R(Ja1!jhqYJEEHDxAB1p2Zr*_bg}`}A|+z@y+;auFbb$KtTj@l_$h z)16jl$6JTgSldrta}m9^^!4JCCE`KZmql`Rl=vHhbxwrp^UBq|r$4Htl5+L+j&kgN zfpE!bu{o|UWl^s{5jh)T$OmohuwW6R>@ zvM}X?3D;z0Fh(0*4uZJY-7ItB)s||)=A1xfLtO@G%hvr%veBJ1eDyD5k)VY45#iPg zv~?%+^SvGT0EQyBc|mc!Q6FpS?E5j9iT-GB?Nizrh6ZNdCr*X28QxbZ#)b9fW!{;F zW7FmXsm*Uo1gkw}M1I2ngm|((IjIpvW<{aM;UGvmV{{Dp_&?|X4N@1J+1IXn)V!5? zA-yX-BY(_>^;&U4$---2zv~89YSmXo1QY8@3PT4&701+#*%C2yWAn3ihCv?X4F)Nl zIUy6{Z_b;r4sqvs|H{hyC9@%ke4DLyx%o}aE_^A36SnXz!}=JK@sB2xkc3#+B0d97 z;b_bupNcz%#9Iw%o}*-{yD!?yZWBp5*#dS~&KRCcQ>GI=CmQL-c_)oFkk0%0#4;s` zdO^JqN)}OO-jSYJEO_-a6}g;=_@%&R@x1ndKGDIr8NKU7eRxE4oTc=UQGqbLwfm)G z$bdi{uI%V3ocs`k(z2V2~W1 zytg}Z3=v1Jz)GK}?S(QPTmf}T#OQN$+s2FATg2~!uwA;~vdwzZV}u&zOX=C}_I3>k zhZv)p%wTsg>`v-d;%B1|$$Xzmn?a_I!kp0jZqK_53uXeJ@0TeCSbK_i$5iOq_wx0z z4z@;otrtD5>vd!m>q+GTeHuLiTlUW5ug;iw{oGSG(X;o1Ht(YJMDn>+kTkFIFD^Du z?|kyyY3?h?e7JVkVR}xkL4WIINtM#b(^!=eE5P)6IAGz);XJ8%9#7ei%75(nWvzDD z&@;eA{Y0S0M?Wb-)1%YtKMbU_PYPNpM}&&IXe#nmCTlAVDf~$CZ<&W*zb3@AWzXHY z`K|U%ZXV|5iD!JcM5GiMljlS~-T-xB(lg3XQ&`FY9U*Yx5V)X=kJ{GHXSC(Z0VXf91PXCxODx;6&| zj20}mtzGjuVv(jFsDK=icC zF(iBH7}8=K^fc4)N}>h>y?a0cyvZx{g!!8SjcHyLx6l`AX#rO(>L=wQf4 zgjgQLQt5$?Hr2VTg7p@m@#5|3pp%wY-qwbcUVp}6@LeW*dcYT6Q4p`V!;H{tF*Y(q z>75;n3(Cj1nk|Xvcq!_dUAIc*Z=D^t`a%{Xh~;;fZ<10kz4&l0od zx%DU0!bHl@_7=BZ$TZ)QqlVjH_Y>~IyU$*D7Q7pa?l6BJlrPeuu7*G8B0|rk=#KuO z+=TJiERSMF2!1@gUgrvNEJLLSqXi#Am$<+CscX&(x*`_CBQH zTW1R_?O1>%x`T^OS>5hVTxAt+m$@!v%hm8OZL+h;OrIaeOp7Q8pT9amhN1C8VFNVzr}(wMV{X$r zMFM}yzWTxi18w(OZ9US9Tpd{JhJ8^&hO+srFD|Gg6n(hT$6UK}%fag~Hd*Nr^bNDM zUk>wH=(*7+1bwnJY3GdH%!c>(BVYejljNDrEu!dKy%YSW!nTG65(~sr)q6Xr_7#sK zSLU34d>~NqgD!4sFowWS9idk#IewDWy$FeX*8rv317)jcC2xad*=$wjreEJm^nam4 zn<`|`dv)*rf=}DFhV*3n!z>p=6->|7=ge8f+fp@*M^i1xHWfDYE7(mhaOKrSA5>oI zLS(_%3i)O5D)~$z51bJwL@|lyvPcU@FZrN)!@mx|e!0q-^k0VU+&QF5_57Nzbl-gG zXB0C15>d~E^h?yHTC9&uC5H~c2!}<;dMNe9{>G>LP{VktH0*i@7_6qFE7uWZjt%PM z@bE|-DARd(Z^_GeT|;`+Bp!^4nwLev=&!E%_HI`Tc@wAm&BarhZzid%N9p^GY9D@d6~VGC|vDRYS*o+FZ#53Ya|2Mp+XJuL)5U) ztH+SmU>MafAIuPpA{34xA9xdxc;PY7z`L1js`pSsObB1M;Tb%|Mx;ZJ4dFCl(Nwl4Jh6g7Ue{}uc`EJycOtz)+-xu6wSRI zjZ>juSU`RUZJs;}9W`vG>(H>zc}4OXuwZGj5Rq245L2Q#0rPZBSkKjj5LK-_#9vb@B#L z4u~i(U4vDQhyO`sqDb$h6McZ;oRjW5)!>qBKURkwLmpe-lr3kO8*le)hIgm6t02f& zv>o*vAUlLr4zIRnxT7PMSnej4)gBq)m~^v71Akk3_Y-bt)0{v{^dN{$po#RKz}y6b zi_BFaC7zrm(FN7go6tLff;bUw;x9Sd7vJ_;$NfF5Y%vG3Q0eTE66TT4Fj$i3r9Ns}FBQS=E)1npcX->y5zfRx~WYa#SdiObM%W#q6X;?Sx(WLQJ ze=&3DlnwCwM%2FM&(9doD`HkxHrqsATcN81ou>Cg=69w4?$4p~9;M`1dLE{!+kil< z-fdl2M_2l4LE%D=!k2v$yvCk6rNZ44VI`i=6CS{cbaT##Z9mYiDa|NuWWvb9pS5l3 zdW8xAGoJVZ+{93vqP^;hvFf&4xJ<%qtAY`0dup1JFN8MYS;uF(p!(WLc5AUEq?dw6AGKH+hroiadwY6ALB$LC5K*`ZdB>JM2`Gaqe88e%nELX_k+d z%;r%RkhZ(a@92z~wc)lfwHTaJc+I4Kw$hDcZuehIm@JaR=2&_#iLJn7A%g8)N`qR~@BOZ10zl=LmJM!h?;5NL1?H`XJ zQ5v!Am?wNs&$4d@=Nxi9Rli&?$lx|Jn9N_E7;gn(({tUQ-+JungPqCJC-E%m_9T8F zBo0-}BI>&5D_8k`1s=BiE@S68YB+}U|80xA&yeWuNPUUqMlO`v=4_so+oXz6N552| z7lIRGNailzT#wvb&&qxvDotW$v)Xlhi$r?9)L*-9#eC-qgZkO}57fzw+vx>s{uR!u zF|jaK=&AV}RercV8-*h3VvzGX9`Prd zY09!fMK`>G%sUyxr|XJ!_k|{+RR7_6jX&-wa z8e7Eb)|ugZ5m#nWn!4eq@N=J>%J(Y!bODmW3si2BfiV4pq_HvyOHMD(V6n2f z&|Ap%x4>)Uitc3n1}S>=4`?o4ULlBhz!pzVdaV%y$PK<_!*OK{>op2h-Y)6uKb|x4 zp<2UZJ;@@r=@i;(b}~H@Uk1v&?Zf>g)Z7sNqYAhy+#9CJ(B>IK16o){@k*2qE$+}1 z+~oqt>it5tvy{01Mm{4`v-gkK!RM1;lUiF~u8by!47#i@+{{2*<)3>D2^*qv7aUDy z<56=RByP;FQBu;OBnc5%gbmotCn?Pb{(v&|7W8_4nYJlDdikk|cIchsxx{NC=X@rc zQ>a|%&PQVUVf*nX0!a$ELLt!9Ne58bl*T-&;DA`ptJ3Wf&vUi41o0TrWOcS&ttJy! zFwLS;Ml@7rLoPmWvo~RA&nPIPJS&Co7o`=Yym&ggJ}`GZk+m#KoxL7BhVb+z98MnXDYOtJK-~*rJbl3WGKnV-yb&Mz|D2!UwHSbk_aw3 z`50M(T$C>S3$kY@PZOw&l+A&qt8xURZ9QeOBr=A7hh2}%&PqmHhGG0yg>z{fW5Gnq0=nJJB+`K{(x3*ZYTq4P6xN71G%;g%OiQDG zpW*qT+&?%eKZb}g*d9aL%|We)<3e`o=2VzaxP+X*=#qxXU!Y8{06Y3&>L0tAbC~t^ zR>9A{982=lA@nn}QmcztLR~^0otY{*U)GO|g5te*Hcb{}SU;s;6RX80IvC!iw>7jd z@G-+i8j-5&3}hi)(izlYVZ$nw1A{(>h*))DU416J^+!$P;yImuM+&nB!pU4l*pP#E z)U;8jYGS5>-R!R_B^LSjiqeX)i3>+BWZ>XjRYegcpnK-kXtGE(imF#8N~uCFpyw-w zwqD{bnrIiGLhG2?*sINY6Hm7u;|KFyE0WGh$QzybfE%B(G&eR8xG8VzBXa78@q;J0 zX4Hj|s(mAal_Z*s8z+~X`k=E=lkug4qVey%?oEz$T8w|NIq>qEPsuA+EcFV)$#Qau z>P~sTzp3hKmIQIX_rOUdh`i`Ma?%L4`ZiC7;@RV>;rxN{4lf{itW%h^qMPeSm&&=blfWVgj%?S#xw~$(E7|&I@f3JH z7R~r**A$Q*=T^RG2<~WN;##G>#C0m8V*>fq-qVsGR8t_Fnb#q&8?#81qFvVK?;ymGG8TU{MF-Qn2Q1f>1_xIQC_acHs z^uMO7}wsF3^)?hqtdD_8FTfN)8TP^?bTW*^Z3W%jBshc=%=qs3uySeqK z!|a~{DSi)im2CdHEKaSxnNND(mw3)y=J-mOxh5oqUexnb{Aqerk`&yTQ^6bK%k(6I zg~DLfQZ=zK;!$#`)PA`-+v{!Zwl3dOLEQGFerH)2?>s9)5mV`=%2w_uoOh&-dZ3s% zVt*kmiBHk(;F+Fwm&*)wTy?2MY|9NlkGdC2p30Su4sI** zTSe(vBrzY{Gbq+zj`m78T+m8O12$_Eqw(yWVJs7_2PKh zD4ZThMzR3e7%cDO{#-HB(Hjy;aFMQ`7mdeCpfO#u2bG#}(O$C5ceDE(*DS7aRdqry zlGpYR3B>=?;)fIR+uXKCboDxdIr0su4^U0)(8&@r?pZCU8nCmt{b^y~w(0VKOxk9L z>WRCh&y_USPShVmW2HDnHZGs? zb#8+Inq;|6;DF5T{ltGA>=i}M!4U6j+a}{U2|^iY%A*aaldwOpVKH#P;3tyci|qJx z3~^&WGJtlLkwu@vfQH@`<+Zq${*AqF@2Pust3$V<>C}*S~By$LM zg=wsX5>1N}0|JYiiE_0_0;-yg>V^^Ag4O{LHI5TN!0k;qZ~^`a2XGP@uYG|xx?c4V z4xgBMgCe~$wvc0z`-kw3B7a4${M! zDroH*i1=|JH(#lZfd5SapD;(ie13VJNDtj^h7hN9@EpjcFz8-wPWGphhz2GSE{H;4 z^$UdT&oPm)R~#-KWwAaD`IUY+vTp}44eg6z1Zyoz>+su>mu;w0YGcelI@9hIb6gFOur_Ucj1KlArfvZH@z!h2Wt_&_-#^{H8i>U!LH&`|A4s8KF&PH7aWb z6pxGmGhq;ved_$CQbccdAaRmJX)(E_OfR)cwI!a3nzbFfUX&?0*6pOTBgrN2_7_vQ z#W^e`*l8z`bDI6s7U$8b8t|@>wN@iNk8P%B7D@1IN;zb20ZmA#08_rz_0%>BdeFC7 z%Bw_~h+%8`9xcn?V|I{UtR~C-GrBKGOa)4;D{`=if*M{zVsi>d zairP6RY~<*rXx-EeCfweixg>#a7#&XcRqM_OV&4#nyA~olRQ#JZ0 zEyjMfiN(^wDsQ%6@jL6ftI!hdUHqi!;-_{u_x2PWXUrm9- z){+n@+x-Ip5e-*EH`NN4AymHS=ThGcb4>*vEa6M=<>mMUx4ps!h11G=F9P2hEW8N& z!5?P(@;>f(0j%P4|Ii$TR1Q3e>b`moaQ+ny6<;a7G~qW@R^962RqYxzf?1rOJW)|EC_t=*zs0YB&w-G?qx^AKfS!^Nx#kT-bqzkl@1%W{<7Q(bOL zOQ~@s07eEH1lVFt8(HjQ%pFV?CQAZ^1NvsvG(C9O#5D!%w6k^93nbCg#Ta^Z5a)(O zK(UO#PZ%xSmlb23t8$+;({|o#tLs`(OlU%-Qq49^KHsBVR1|b(8$*v=rkO*Mj+BB> zI0&l!<3T_1*mV%7)+N5B4A&#&l+fEpzWl%TCvs*b7(bksyfUbZDA`Vd_wd*q`h!Y~`LLw{>( zcOf%6EMZq`6uj}bI%+2O< z9`XjgczS6AUY|;#Q^eL5ji-AK7CyUcGA0crFq@Z%SJ`-O_xZzr&gFfuT&Xecy6EQz zK%r2#3Ok2vSgPRw$jk&#op1~eQZrcp`w?3|1+@s>{snW1#MiLw_wN3t`k-hB@a3>& z0~2uM0#5)GI8~<^P#_!*`0jr{`)hz_Ncapi83NmX9X^QrO+`|2op}q{I*u!!vpt-f zqhNd5nZ%kpgKlv?eLG`x5;(`w+=b#D&*reYY0gXSGys7~1|ET@1046~2#>*yQ|iF>JQV6#s_&qv`}v+CkJZ-(nKxQ1r6LI;-(w zoS-6IoQ?YSxDP$P%j?hs`jd2B2r`l)1=TcFr5H+1stGj@hUA=b%o=K8xYxlzD|6Rj z`GDBTSK{SARC5z(3q8Jo0zN@NN<5bOkftvE56^_t$*@l3(m>4|blq2IJAL&x)&FlK zO#hq2{E4u?knn#uIattPO7`x*FtMuk#QCQQ`*iwsx{A>jMHBoMfOC=BXh8iky|-gi3T~6CtaluF1DvoC$YR=i~p=3Mq$Mq z&hrpNdrpDjXD>r%4trk&KpB9On2B;B#|&AgL!nVV4qw$ezknuO&b0<0Xrcz^O&m`}eBZ6b@JY9jscLpqFw8MePRQ zbU%b*E(E)S0+hQWNC3l7<)im6#!&cTu~0BLJMz!5`|)1!Bw{wixb`=d1Y(mw9Z9;3 zrU8s1XC{@zR`;8#Q8&^baT>CH#naADA{)&0$-sl8C_IfM(;`5Kx>nekqH%~?nIs@T z)5Mz4gcFX3iC;bn9TdL-$j~)t7vu-!$f)vBlkp6l=65X|^%pL(seL+H$rNP4`W@%- zRx~}_v^7Loq-XS@_i#Lfa0OPoh29eM{A10?{fng~Jp>W8`ed$=+wd7Q*X>g~cfOSz z1D>mE@klwvM)YY9ygQp)vB{|}xD{9-AzsaYULElJiI^gnbIL36A^0YF%A8sp%%%{KdTIb0jl1l2w{AM$gv7KIV;5)j(*}zwyev~EYGxN zuQ3(W*ZRy>S40@p*n7ztaOeY}^L#*~oP4$1l1(k>t77A3fEwh=_Tt z)ER%KVD+QwY)kUX?N=+CzZ@1_bigKB!l1id(04h)_`BgbC1p^V5Uq4l`ykJZpgR$adg6f;ApMUFA>l8Ht|j z{uukdP^hb!<7)q_-f++FgyC3+=bv{>K@uTfAg|5?MDH0GrDf`Bzpt(Jryi-`%7{$X zJ%>E6DrMWV#swHVnYSt?Qa?$k1-S?m-uP{5Q>?6FY2`!kjShkjZg`g?FyTtZe6n^X7seGay)wOkWJ1l zr7cZXpR$uvO8@Lo_RMI)o?Tp9KqRWjbKFNZrjyY))M?3Owqj1C%UB|$jHR>7A8$4M z1>I-$diCaar3=H4e~K)YSJ_*}%^am{d*@J#bE?ZKB^jFA5=D$hJx%M&dvcZY%vXoF zG6(R_CO??4IDBIpYnEz-iI&elE@L&&4no4KO_je#XcN?`u0I=+s~g%`Al_&?8-H2< z7XO`Rnd@-u8q zw?q%<@4)7LX;+gQQ(0l4JsQ*a^8U}7M0a`v1H-~Do=#nY#pyy7NLyz>`C~rnhLl+L zX2|Hc2|+s3bP6`PGCcHcQYl#=&YAz@RUPT7dz|b-R5S5cp1C||BHkf{K!TLGv6EG0 zSQCQ9Zz|%gZZ~ZVyP+7@4cqssUMC?tKSN^X)Ygw>`@$nmR27vJZ7oG_=s8PlE_KhH z!0{LAL!_9WQNz8(I~6~NrT#eJ==e2JcDHl-z?*XMby`bT56_dRXNs5Mql1#RgFL=@ zMZ<^=2#Zqo4~}zg0NSOVuOR3-X$Rf0GF*Z9SKXElP|!LtAX2;kN&N<;=tg_034tO~ z+w736kCULhu>JXLL$K*?%;=33Z;lx)asKa5fIj*RM1r^1~679x36p-suLiYekLF(T6&_PlQTc^XksIgdH1UtVP7GK#JJ|B`_R_UW9z{VD!MK zUyMm?is!vHrw-Okn=x5IZGIkHlebhXQJUb|f;fs5Oo=Tp!Hg>;Om3v*)jf6;stg%D zhZJU+i_)M%w@cd=p@#CFJj52rxP6U|oJY9w@ZQZItlk*ij@U$0i+lH?r)pjUj?eaq z;Cc%eUY*}5msvd(n`v&+b3Vj0T=L5gqe(i|yJtCooW7|(&7NC2m))wU%D}oEa@DMIBI{*>*(4Ls87C(urH@(k!`^-L7}KfByBTbkk`8=JRbeB0%G!*R6Vkz9 zdgeX3QgKb6Ox+^-)Nb;~o>71NnCd;`(z%3g*#X&!CtpJj{Ox5Fds1ENdYmfOA4;|& zdYtxLW}dupYL&Ulx&>wYghyrU^o&NT{2Z>AD-9p)3AS?7yQ`()Ki=jP>T-c5!sz+M zP@dck-LLY)!l2W@=^}#UENxAP%=dV+X#5(TjdtPKr`RZE7N!rCk7&A&&YxPYUmVCC zerV9yUO=63ZfS)01J6w$Lz>W|oAu=;U(y!gfn%Dc{+G`eSa5QQ-4J?hbk3Q;=55$4 z#;Ji_ozZ?jGkS8(Qn%8 z$J~Dr=8V+TaU#Rre2txt*fK5UWKL4We+5Vd|r#cJzH4(#`#L_`mS8QAzmJ&85fwC z3NA*vIzQXH-sQ(yP=>!ac3rUc{Wqq{EZGM$KOUyAk&~WEY8`84a-DTN5fN^0>0^`I z;C(-Z|NDnL&T9c%pXkp&7{yCW!tk|2yJ9S3zvwdUAGC0p3r?nMxG1o%K1;l)aXh+g zfPdr7czNlgRW#q?KuNf>R$;H3BIMqXqo_!D>3gToC)el2&rc>5Ul$S?74Vp?TJE{# z(D#BE@x6rs0q207sp0trrSo;kw&Ti*c9z)F_d4g;d+pKJ0&c1({o>cuH$rwap+S5n zu%HVSx9jY3m5N_BVRi!J++U!3vLx?GOo!^Jhx^|kRfhaO-3r8Jkxio%5eJVw&@v^n zB^%apJaCcCML?64Py2mFQN7eL=CGw|M}j;)whFr$xRVTh0Dh6~`pR`4D0XKaE2(s` z#k|ys_oki~_8wLhT6KNnxNT0RUuh3X^kWcXL9|$$>sPQFvq<&GnyMXZ8hVG1ydJ+6 z?tD5n0U0w-eFGhiX<9MvL$p%_Lu)$+V<5SJlA&U!7i=MWPA2E;AyS#kaEoeiKbkjKdIfbD-&ZPSimb)$l>FDiBj7woc5Y(Q5Ck+43j_fEXmQS z_pu;&x={){ZI|sUpKc15a~L>sbaqV-e@C1-fpY-IL#P zPM98xKnr`nc7=U|okCn$NoDaB`T{f6hNSx0FpQ7y*zJ8TyXJQT7V?{lSyJ7NiQ0V1 ztU?ohiP9_oM&y=IXIH@Sm{%i@6L!S{ft3qGj;7XIu>Q2>lfemAQ<5#6S=g{n1yg3B zXL9P!5)>jcU2#wNlJ83V(jX4Qx8!9Ind$>cR@IYCBbSvH5E=+zoiOh*g`i8bLh?5= zpA=%r4fgm#8hPDIlm|3l7U{cIYZZmZ0m=|$6Y+Px_gmVNyk>)!>;@`PuiTrD6m>I= z%Az7rNV`;8${>`@*M2VYIA+2D!966Yk7SM92fUECE8zx1FZwZ2iRTVi;Hy>UA|X zw_lB5@56fKYd=RJ| zd$`kOiC$Nk(S6~Bb3hp!s2V64IfJ@r~Dj9(v%61 zx_tf?R(9=d5qz+rVoS_nW9?Z-Y};1;(Oe7lF~L5ExajKq!Kx6-W2Erq)+2S4t)$a_ zxsy6L2cE5$4#-p0@Jn&>>AYMuHVBHW?)R}c3;dbuC@`dle?Tbsld zv_KBq-8?t|3F*C`YvSD7y1ZJ}^|4P$exTnq6P?0a|^tYFo zwHR|_rwbA;Zojl`1fI|3RK6EFF$jqov)(KWqErZNNlJ=^Dcs2Q<;4m11d(oMncMFT z3BFRhWpvetX;xc}^SHNxElF?)y4{Q3>_-M5y3?lxH=KxeUxFCGs~?)M5toeO>~aJ^acMBVPWVJ*l@NoZJQlJ{_gFO>X2 z0z=>PRm4QA(ir3U_Ck!+#yw_EPKfk-#-E;>Fok6p3wr}smEo9ErVkKB9%?R61vL2Q zc&^pu3!@^v^Or)|&0-o88sHi)%ctC$-FdHZXLC%4Yzr^Qi36w{`nAB{j#jX$juHE?b^%#D8`$N!`xjNbUUWSDlv}U1MMM$0ux~p7?VC_kFTT@J7)blUOHLw zyuAoC7B#bt)?S(lp8vjU)4j7RIEO7C$zySjR7#iWx$FLfiG2k)B}6BP`&vCK$~gV7 zpi_PFd?6PEQai1xM`nK6yHVh~GSy$XC4Ci;vx@{xO8rmdawDqulIkj;GGC+|Ar)^z zP|Wt#CB#@3bU9&{y+v>nB^e85=`==zl{ap@5#pgrdY3@78eXi7%$kC9*TCKiD{u9O z{s=)vWEDsEM^}wars^v1(friIY(O%_nZ7H%&Tx7-yy&N02BRe;XL+VRz-Be}u$$S( zyBc>%t`C+(GS_)#ii-sMeZ0?Lzl>z9Qki+*H++9c?CY>fwDH%oLSv#P4~_?@5pPl{ zw_d0|hF>FpkVKA-&s{_nn2xqd2e_|hRhCuUJnq8DxP44o<(+Y=(;D?X*LM~?3WipB z+X~sUeR%omXIr%ljwBV$%!6tXnI0N0_LkXk(G#j@Md(LTBiYWI)KIiDif zNcc%Nag|2IvpSzKy?st!<$2Rfnbz*PpL@BLkY*Sw0bVc7#THnBglCvLZHww)vpgH7 zcg-6D>o_;fpd`UcBncmLIDrm`>N}-^P%m&8qO~Zj$R}SmuXya!TIFY5$C#5|-~#aR za2v5;clNSx(VUj%(`TQ&>b8=uhbDQ$DS2KHwN|xg!HdX>B~cg($Nzz+n19>?-6V%`+tZcY#QGfbdYn8~iGsfeP%^TJu!__1SY$iHfiO#`W zao%TLQrX=`h9-vRZP7~-Evnl!q41!kBx0gv#0D3W*7}?3Jt+`7LYw|+qu>|f$2jQ< z*~#}QK@dghM95YC-0hI9=~=8Os|-hacz#OKDej6_wDOvjGZxi% z8Rb-+5Al-h*PBBIc@F&CMU4v8Cm4n!?VwC62c6f=jEl7{C|}yY`bGU?dhkKuBWn4@ zAK}mj3lZ{XNeKOlg&39`_{!2Hzb2Ir#rTmo;MeS#b%)@ifybPv^$SN9Yo3+kN|Q4i zpR2h_Jik+a$IZ|nJm}WRI+_V^(Fj7p!9u*Mv|_MI<*NgW(L22TRl(S?iHPSPp_k{f zWl>PJ*ja~%_$ckgvTZdL9vcp2Rog1ST9I#jwXH1+{1TfI_~Iqw@+HP>=5dLAcxKvT z=^tvhFfSMl19gu`(u5*yH&0}NnvU?xz8WXiELe+i4=*nMx_sfS;72R?iz7#@J9zi! zIOUjQG@UVKkUDN21K0?d57kt(xjUAO00bQ@ky~0~ph~g?1!!xfKiHVl3$F zbd!GFt-=^N$dGnz;?YKnP9F+%w^IJJA{Q5$1ves}a>)qJ%2YC>%EoDH2^Bu?T0&+E{;Gl;2$p70#MjeQzr zfAA#|4xb(^?Wo>kZajEpT>r-FxEdqfS&y-2-}k)-dHM0GSP#%(MY1^`>HcNhVrA$B zPE95duIJAFp=tE9lI1;1Dt*kmZupW9Y>dXJf4+Z==?pyBEh}16yttjASpE5e-;HkX zC58U4NIOxO=Fp}jH;e^7w098PG}-9d`OPd6AMqR$d4D7~LNg+y8tkLC$BwgFA>QV;y8whA)lzA=Y(r#FW(+*jvv!P*R46UWRx?mkJAGTNn4{%{!nG?F7UM~J^w_%h`P)a}Dsk!#fXeCZ(Qo}dTnT3N#_QC1xRUJ>;8R`Jw(9KiE@g>g? z2|JiGgfaZ^!`DN%&NO#)gs3;H?OV6m$_L))t1$NWlZ??3UxH zCPi7k_v94B)$DUICTcfm-klRyEl|64bGmR1zA6|sw3n;gc30cS-gz}=ySMXlW`|%J zo(DtY27?f2YQ0s{KUq}2@m4Lo|AV)oi7&9Q>vDJ|#~8-#*dm{*OP6cPRcu%J+bVel zL-v>vQ*=O;Fntg6)*PMaw1J0S-Pl+4o_mI!v^b4`urkb8<;&OZ*Q+cZPnqV(o)7fm zY-^T_(SbHz`l6;*^TTdlKYU>S!#l%RU0DvAPffNw@oZfP+iJYuhTZllhAGVOgrCY+ zL}!9yOJhmDBL%X`<&>J`z+SdEyK3YfYFu9arfu=Wh|OfJ^F+>Zsb2q((IF*9g5lwf z2y1e%K-=nQVx56W=QZ{1k0Mi=K@r*_a{IY?3qkTVkEpr*L-r+WMDOm!c|gYHiW2Hx zn6xc+)%5!D%eIqQUunTYde|E7CKP-wR?wo8Yr7=M&GXGRM_2nC*2iCCp3o+dDV-G~ z_=J^htrR(I{R_k5%iQZOcGlDXL88h~m3#K>9DBJ({b@Dt1WRAT?>wn^qB7xC{~Dp+ z&3GjulqgT2QO6m?f1VgKhp!fRcJDQ~z`lIy^*XJ_b1$08A6{7;yCb;`IGuqu)p`68Y8 z0Yr^1y&xf{Au3%&`DJ!!admT!&6g>L7d@JZy5E1)_yivlaea@WJ0aDbs48^^B9JuP ztt1G=UHDFde#nVzT(8tK0{M|JazIl1P-f<};ytTmS`vdfXvS6w3!6G$-X~#dFYx41 z4}Zbg>*W3Gd(7TR(@BpQ;b@vSd4W}{?JE+ymE!{ojRxWHE1H$Wo)Y8}*uFI8JS|Mbrwwh5}{ATO;_UD9J!fa&!|fCjVj((gs(te z+d>!*Jr1Ds5567t>+}0e$>JE>F&md>A)(9fh8f@MsQB)$1^khWlNi7qKqbn0`0I#^ z(PKRe#b1WwoS74sCN3R&Pk4pRQzZm_(y-05_jbx5mKkZSg8;cE-`q19RDz`TYXl#5 zcPB31f)z{BZ5&s36lZ=n5*c6Z_gY;M)L`@s`buWO>r@t!tGnemPqXX~zhJ+Xr~LfO z`mb&t)l+OR$yhSeyTln-05IMz^aLTX#$bbo)%K@Q^=MG{;{ljSA;^;3RVLWZY=b<5 zL@03&6l{tyfspOR9twHb13zf7xhaeMHZ$tix^GHhvkgEl8)G;B40hWiXAB62lz>!5 z5M2JoM7da#4Z;exz<4=04g!mqN*KWa0fBDQ76T2<4e9uBo7h0SnrgEL5k}VMV^L%} zCEh&pVp0Dt4s$2hBCF~(25W#CvsTEJg-9^)rlo}|?QpmlHc>Dl~f~B+tfl;mi zoAm2{4CC8|L$!p@FcGeJ)WHI!xYPpAV?DwYL<=0`^3!@9jW;g(JHM}MKWqMdnUV3n zGHSqvVEwP1!&1?uu-9%MpwqKVqgGu{MTf?msXWtCu2o&9I;|y?^w1AB_3(Km+!OVE z7fH}h0U`A?+lEwvXb?yZOhcR{=-)@qa2^8364+kwUuc4X2{m$_1-MEOE6^EZPbB5l zS+IpXqC=L)UJ%|4rm_c-y_Ms9w2AAhi|V!DPbZX@spfX_F;t$abIsnQ>-80{cpoR+ z&*SpPOjS2f*y4j)NcEsVYjYBApP*F`VUF66 z>oJGgM%Fwkv#8{ubX?R_b8qLn*6=z*Du06EeRg);H>k6HyRtmqI6H>l~(Q}kxY4zw)yDr!>}`X|vF z`HElxS%0)`01co00j7T#1uRH0o#pIV}* zL^2|$%K%fU%BrW(^g$?$&v7d0_V~q7q^*y}9UH`h-&Es2Tz7$rbOan-i}GJvaesfq zOYI3|Tf+tyuL95kM$kvF0ZN56APJ&}>rbb!IsZEsga3*=WK$p)<&P!*JDRO(ujlL` zz2fl?<;5xvnbx1&=5PGw2aw3ifndW3ZcZB#AlE11Alvr_cKIcnL zJ@z7rR~6$YA`{)Z-af!=5V{0FpPJfgSwG5)Oe4oiXtI59yNwzG6A^xAb8})))V4;7RCu z#hxWOp08s=tsV1k!p0QP{~sdp$Dv5{{6i#yLOsdd|2RGLj1d8FZzoq2#cqy=pMqeG^zt@?9KK@mQ0kAG3=%Q?AVTL11M;w2S)#rZEBQvqZF z64HwPTp4eg6EE<%k58fk?pSCd531qIJyZnuD&ZM< zd7<%2*8NrrZl01cZ~zUEz%a#0y)eM9P2RmoOM_e!n2px-1Yf`U{k^n`No% zs8GLD(gjTP6=kv$lO)_uLoW@+F`p9>)Ohgh$?9_MJ9rTo*9;%+}IqDhOXyPWdwNk?#E;vAU@9Z4|dXFo7rbjfC zYKPNIf9=e5>0Z|)36mmBo};Ag+Q^{8@&J+@xt!tYPXU3M-&AaBBuVzB{@+xRkVeSf zE>PHVmClpsa6%0X{0;Gy`5AUKS4yS5eO;g*FWoiSxQ4@s7R< z&Uy7ar!3^Y*N&vbFH3=nbdGTnIQnxn=j|pUP!z7n*-bJl@-z|ytg_i0=uCFa)ztlL zkorp|BPmzDQO@~72N0ZuggK2t9o>x~naA%NDUToBeKoweM=#UtJz&9y-YI|no@ z6sQX_gnsqZT~+mw0U?BqjOx;mjq7lsguviLbq>mfMpkEEw%s(wt z9IWG2LA;~1BTMe55;c79so_(0+gKHIUI7S)UtQD=1+L^xm zL?Z}cxdX2UZU^w2MUjsiE^dW}CD@Lu-o3j_W(2qIUb^%-gzE4oM0KlQ5|>3{Jw`dj zl;e8=XX+_dck$A0tF>OXMTwPa>D3=`GJ`ed<9Cam9KU2)r>N8(2fcn$b`cF2s=ZG+ znp{vLAkk@_K2-2o_x`ib9`}%#OX8=1)L25CzEy@)N75)ZJxo{ek#@4RY6Kc; zvvAxLhPkw9~Hdg0`grwB;Qo*0E`{Fe3+vACw=+Ppz9e-XA@xBkH-Ask~4Fw7t?ag zMe{QYUEeV9dpOk|gRgDdy)g@WC(HxVRNWlZ)`RxWbvAAgkSNr@+>f zmQ$wvx&dVk**bRRhenpDZ|5e#K`b86$VzL=z(mdc` z!Ck}^yF$FXucSd09!XM5CAn7%cRc4fT9rfPe?R=Gpea$NX`GmcYP|yTa{+t+{RDm{ zQ~>xuz+V3#r$fa5CyUxKR4W2i>`HSWg$}iK{r>_-1?L8ud#M3t@CSJG`wp4K>zBSp z1kG6vlo&}vI=E!Aw#PBMF#4kMz~gWnZqjHwLb!b;{!;mAxynHLO!ZxkOc6f5&kM;i z<0N6*v8EPg6S0&V9%^gawUMC*wk^m&F53`^OwV<90f9!6!Wm)KL#nekH-eZM+M%x< z4A+8dlhC0i;HJf6<|?t3rCgm~tz6=)9M|7Ayby>+e5qN)riM6@Oh32yIPdYC?wI6o z*Mr3@j{4MFWobN3R3}bQUpGwWRP6CTl+(g@2w9Y_cECfmcMn)#DN}5}sbW9-0>XH* z0CG*U4#>2kA=~$7rDJToA{(LOOf#tZdOv#Af@-0o-HY4m(VFIZ7C+3da0gS!l_k$L_;c2#%Fd_54^t*#>=yW=gItYUOI37uK z{l4^@>U+z=wTd{PbcN&qvA0Q>h1V2F^D3#(q*Sbnlq^NY6!S>SbUf;4zNA5A$j0bYj@ zJeTTH4|qZL^WSTP{pSeK87^=DOU*45k`MtPcGl-B8Xkp7HD2PKHH7`CR8P?7tJA9xIB zT|FIYcS_5{P&hRXRoF9C20uD*b;D1>J`$UX_y2~?Y{G9c5`mS=;$>dTE^R*X`iVwc!ak=-El>8*C@?OfG`EEQ%A6CG0 zE9+eUU@?qg-tSS#zjxASd8NX7WM2&UMyR2y2;A=YqSXFlXKz zi(F^>vcktU$QYh)HomIsDW=&cT5vvK4q4hDS2AK%p;s*Q!e^RiIMefX6F};-fZa1s z9iqKaF;OkpEwLk6wc~D_b#|^v6HnPz?#qsk$E3`>YzyFXFF4r*GuMVrRDJvs^lWU( zEI?W;t%>bh@OR3}Dsl_(gBBi2pWNmcpWPB+Z%!@X-HhLJY;)`LuQjgIVJ=~Y-0IiT z7a*CU-UBOJdJopVJ{yR?@tm2m{=}D$aDu4ntAk^Di&A1CJ^xAJA|PbbBTVVg^lCX8 z0*M(N`{6wcCO6chnvKUDP6#Fv(<@MEfW;)s`3_N-af+QqB`y;%Rd)WIF|){8nJ$;b z-q2bN%{(>Lqq-4St_sOwo$;5*)w{H%$NNAlE7Zx+^^<*01P|wPh)>qg+h)!Uk^WG= z8gP?gZEA6Td5d;)$jTTes8S{jXFf#1>%T z=n@SYd>P^6p674@aE*L1AxA%HUmBMr;E2X{hJ0tpMM~%DyqLpLlExeSJ={ZTH@+z4 zT$r0+9;<2aM@~KY(Xy-7i4%7Uh!eNV_Q`p`-taFAWQt@<0Za z7(HX^xbQ`w!OE(GNkBoKZFY4={I$2|bpwTrwx&-%KY9F_t2xwPNx+kR1|3AwPhY95 z$#RGL_@#B6XqqhEtRhM*Z16r5YfU2MVkA9P*cJ@h?Yi&lI>QJwk6mH{DhygiaFj7V zT49CRt;YkUX9u35md-{qNwu9>9zjhmU7Yc&(@P*sQqwrSbkS6?_wUHDOng?8G2Arp zHUAt)+3AzL^{)8=SzCn^Jf^0_$k$T%N6fU$SOeADL|*Ep{LCdL*RmIc9a8GRxM$= z1gEkP#>ZQ1<7g!n*m_RhM0vqX$vaAW55A)Zddd+m0-dno@UH6m5FiFZPzeg=;L5>N zKIrr!jM-jE78?}cYnw4n=`jEWAn?k2Tw%=jB!_e^WVE*P2+K@RKWp?reS^-7LyLjy zD1inG^r@46Kx&2=c0g|Wx&q#M4X8$8zBJ@72o6u@1~jP7_oQi-+ez5ETZxFtYjS0ET{Vj|28W5Z7T`+36+bU&Vv-~)k9w+X%wXMJmqI#4XLya{*AO8HN90gY%HI# zuk}aQJl4s3G!3q5zw$0Z5%>Zyedq@>`Oh1xMzONs()i5fH{dj<-Y&JSD;@1ggEl(K zHNdbti1VdGSJ&5$D$bW-Y_7CWX);TlG?TTf z$de_#XuO_m#07rHH5uLej8wZQ7A(F38tA?%dUqgq(tf+emDXnB^Bs5h)(!FWkYB!% zxIGJOOR)R8GPD?loVgg^Gm!5rY5+HlXId2I=(&YzJ%{Tt!QqU&+nwBCbBpf1IV!gX znMX$uO=FD-$l$R#egAa}-s+TQb&-65YN3u`bpfQ@0t0 z&MS9bFymWzLGLs@{WI2irn|XFJ0x=?qy3meSyIlIl^e@0ogzOw@iBhOqmdT#ZgtjX zTWOJtrFhV*N82%A&8>2H?W4P`rDqu*fB&u`Oq=UzIhXgi25pG^Z>r0dO7`5e4CmS- zUJk*U#73u}K}xIxrJAraMys0XtHPhAZnGs7DoD!SG%uxY<&;JI)y0aycf?O`kk-nP#x_`NPkd=VeY)y37; z@oBs6*+{q-l~=cBk@&Ua(=I~=P*{MGsuRv9yh0)yc!c(j>@WsgEpl*5Q3v##}DR-c+-44f*>aX0W{Dlbjk8v6B15O#CNB>sv zbz}xzCbVYxnKHx&3F=0!^_;d}ZnMpP!|+Dv;$<3xuoTbv$5G0XSWG04CyAIdHIP+0 zTXNB-iNocUfM$Mk#hT2^!ILuHxFy#h`@BePlzb zbfQkJY=wSo*8Fd(8;hF+OXOR~&Y7P`tk7?&QXrBW=zY}y^9l3^Eu^93FVzCbIu#NJ zNXKdXVeaIb90hE|cIeFP6ySuPo&dYkw*h!4hDX&{5EN)Q z@p!8BD~iWn3j8+}{dF9K@|uf@0!{@FJcfZv{2;bg}VFCwW*O5V0FkHx?$+%2PC0VsVKpM(hl_?ovDtX*~d(Ip-9(S z8j%Ml?Vtpf-&A9Ef6Nh)4jnW3Yvntrf37SQi$hXF_5@ifgWjJVL{n@BYNP1W9v{FX|N!LT8hFVt*dh5YkL%%3weAksL^^Ta-=D~y^l zBt(%DC%^wqwU$Bv_Ledmb~o2`;JH#dlXi51+Oj*Vj#1)?zq%hVjBprsqs!vg*fJ;s zfxLIS*CmiFrp@QsML9j4<~XlJzv?-jbZy?SSGgJfny^5;MbO6kVVCf!Z+8VtB5qli z2TF>YnSY=E>Jni@@vmSTe3c)ZX{^bBK*Y%wJxG^xG$d$u^_&G>ae2x`g1kj^y%wxt z+spG2h*3kuQ<5!v7B#*CTj@^>X8wy@41cDAlbz1S(2<_!_O8@i*33i3$=(B(g}XN# zxqfJ29MTR7co)~*3ZNALp?Oe!*pam=nx`%8NPay%fhk(3+d_`fud; zU!%2qU(vs4rDtUNkOToq{(sS6Ch{*5takmA1k)*eV$4w2iLXhW&$zd;dv~|BcoEHN`4t`Cmk>`2RvG|4xqHhW|-yfCEtubtDVm+4+M5 z^&K<=&Y+aOhpc1ze_#}2SlczaS-LJ0A>7qsOWve=9Qk>i8J3twmqLQb>E91dt^L=i z!)n-J{7)7khwVn5m#v49LR+~DdxJs`oEIE&uwFsrqNd!Wu z7I0EzZA~mDXst>pZEPjMjn2{9nj?_oB{4+Kc4Aj4Bj*2<_MKr(E?e7RLlKOiRDr0d zC|w2VL{JHch=BAG6_FB(h#)nwA)P1+C@mt=n{<>CI!H0}E+JIu2|@^@>~C2`egTd=V=Y zs~m%Q7?+y+<(B-{n^6i8=;5=iH2B8Tf$73|!qD~pFQFw>4ZE6;J-nr`LxaERW+d?w zs)QE$Q_CYt*<%SI!tBQipzVd-%qt59QaU|lxO2h|$Hq`Nh(bblEZ?vQr{tL}<>wI- zhEq=i&(y3i<9pXnr7^@l-4TxroO=4~99cMs&b$P;%k>|C$B1fXqLu*NmPK>IgKp4n zkDQ`viPnPJCyz`%wDeY)3GgH2wBehyzx*gE_WLz@PAnYD#qYUl3mMm(DLMhtl; zj;2tVK@Ct+6d;B0-*F7!`8g2-`?=u;ie{OP09vLE20{NY=!UJt0-8Sq9L?rbKM<-A z`3lGrZrjg5nPKnWz_Ft3?x-}c*#F;#qHr#(pja8v!7I=z>_K#$jxBIzcmaa7Z+nK= zO+UcvRA+-lQ|+)pxV6)B(2ce~T`7`u0C$t&+Tia1ZilAO{MZ;PHLyZ5c6wNkL%2iv^8!Eq;=>3Sf`-RJl>kQ>{Tu z%Fxp4(^01|I-NsrwZ9AMRT#4_4+V4#c|G=x+d2*z@*}Qs2O;)3(1NZtEy50(JzG0E z;Fj*#zjfugSO2F=E^h2gk*8C*K0q#}JXzzxhv3gByBFmbCjiAG71w!>9P|91NCr`XpQOS`9SN zSB((31X+wvpLaLc8h%YJMLtS2I>+Cb^~o?mL5L~e3p!^eV#8E-j*nEqmk@XKByQj; zFSw6bsO}f83HB-DKDYzKHP^hn$YPrGQ@c^&R9|9b#`vsMlq%e5lIoF^@bKfH8rwAD z@&dN#LNw72!|ebE!X9F!%nWm*%oOS@-+nrC=A_qXiu>@{x`-TECt(By-kGam-OplhSvYnR^(SjOaxS_5ws>(_nku zRn3NsM1P5tIR)m4^4`iz!2at+36+qAOTK)RK$jw4u?BwKRG!L?+=@RS5MFNQDO*s-sh%Nq~-XU-<;*J3P{3xY_Oj(xon~-VEIyGJe0n{01#l> z7B*zW{JIi~TjR2FtAkLL>M6z~=4-X2^a;>#!a49snP}~B{LA#Giq9wGeqvcc59Dfa zFxP6~#zC8MycyLpYeBFC^McMbVJR_F)wNtaDO3orx@g{|%lUpPJTh@%HS6VcG^Q$5 z+94eY{nTq@uyIse#M|ABTCW4Zk?>N zp+i;I%`P9?yea;q>F}*zFZ@lopv2nVRy~{9uR~%E$?5wCeKE25J(2p|Z+MzTMH1N8 z5syWn1^w!Lbp5#bZ~ZfV!qVNk_Ay77b{=WzjXrT-`-J=8Kpv{QKZ&oD`V399L=xD5 zMJE`M`li%t?9f5$p?c8I29h9ZJ{6l& zeW#2}dUW?;E@Bv4r_M`yV-ygtQxIRz$il+Lk&U&$aQCLKo>iIhT~TrZ)r&QmB{eP~6noi4GpRnxkz%zIW)i zwo5USmz5I(a~{;sWYAhfN6mEvBvVw~4U1aTZi)m#^TWVW4r zxL8uKB>@bsW=3*sGqflmBB>+;TJ~e(f#au=_P{u8W7{ZME7H}RWHzN^dwlXUMP2Gu zO^GWtGE_;^8tf3P{!7_Yx??`FKaLTZfmbyd6RxTV(I|W3?L8^3-{R|M+6~u(q<|uf(4CijffW z`d-NuN4p7BvK?0-0H`bixQ?F+8~wrZD!X3IqaO_bJ>NRy8K|A73hJ4Eb@7~#(vT~S zyKtJ+(4~7KUVDnyEOa*i8}g@my{_&>5o5^xi=)%s?v>oH5iYa4mSYav|lb}>YQ>Kfk^_<7Zwbg})*_M=9gHJ*%xU)PhbLhgV^iY4! zT;wH#s-Aoomz8x1GrO`7Dc7TAZ^Gg4R0mr4#|ol_&s)M}Yp?1LYvOyh7G<&qbVsAV zA((;#&FD2gfX!LJ7f(0<8%*(@ug6g(Tj^(;2gnE{KCM`dK2Fo84 zi3!h&lKQNj!WbVTR4bieQOv9~pdFiY$7c-wusMPI(&sE){FY*4CV8V$`IQ0dXkPP! zl_TZNsj$51rD4J|(ZM@X9sryD^~)ej?vo`8Ihtx62?)BLrwO9)MaV=Vs(a)z`9iW( zrTR$#ClMxo9cp)E^$Sh7>w}JUZpy4q$+o0>KN>#}#`z*Pcg{DRlJ+k5M_lg$BRhSU zgI!@rh=u0cZPw>KQG0Kx-%s&(sRl72D77c4GWnwHH8jc zII=8#s-ne8;%jlzzI&4Alv%IGQ?7QaDr8#2bG>6Wf$>?oDCZ|2nZs-H8RYXlG(1<7 z*DkGaz`et9J%^_xloq(?&R3{pM6>WFVK+GdLG&2(*peScwZclYKIfylEg(U3>j1Za z_X`}IrMJxD6z&G3KbTC(Vsb9o$V}$5e;wBsm>-rb{J8398Z|7Jp>BRb$+~_ae0?Iv zpM!{VxDzN>y?vp*Dl6UgOTr$2mB zU_brg@vjd=&fp^SHGq7#G24)jbO}RSXQP@%oA!e)bA%y3v)BnXx@5$TF&E8#?I_Oc zik$_;-n9mzEa#^SZ}AEYw|*WclPgi;C7zp=(`q##2@opxQwa)3TJc$aWmimPuOYGo z(?Rb2E_Cht6=W5sxRzL%1@Im1yMoyODRqDt2XSmhwu}V~jRf4$HbI5i^mNd>&f^P- zuNlVgFWYUY5B?AgS{b$Ks1CgN{zkNP$MVt4Sr*hynhZw$T#sAKJcMhWYc#9nF8i|GlPmIr7*eUp(|Es0wCAeo6HU%%k(|2gqL=!gyAD> zBzvV(;}Bd<7}Xw)`#l0EuNaog(q-=JRb4W@)9@Ct4O>M{alT(HtwNp_ zgXnDk)9ielbSt5aJhtCQhyD9oKNbQ87yll#7qtB}fRgl%ZP-x$xD{Cx;B%qmu-8Tt z96x+VQ-JFQ%W%#)mYqC_6K;p+Mb7n&0XKMM5|eU8d(1J?I{L8q)Y>>l080*pdes?S zWgKT_~Gb>@|yNn9csi&%C?}!!eTEruyjMOC#-e&llNo| zPknVsZ$C9U`c zo_Ro)5&hh~nHw8aeTEiREW(x=fTYQl%9Nlt0Jo&+yQx4a0O;dcIL=O=CN>6MK<5>d zQMjJ5Bi1jlKg#}xQ$#j!^0ht;{0CLW^?9&_`ki)#6Vz8|z|js^m#S6w$fKIS79a5A zLc|eBhPWYHGpYv}ZAg8RYN6vvT=Hqy&=;ha8buo%eF;GQJ?r`A>Cwe~!pQk@IM3CX zGfgRFa?Y5<2}!l9Z){IHC#8RL+sKrV2jx;VzR#YSM?YwWZnPX_Xf&$)E)fg?gRGcW z>hgVo8_L3m8o$H_$t`JiH*NV@23W|4E{UpM&#LXS9F%2?ocMy~MRg~sl1l?UQ|GJ2 zK@TrwvS!<^#Z;>U7ZpX`KU%T@7VTeN?wi3sSbRaDH(6gZFl$|LYcH9ta+wiE7iW~`PCK^{dk`WEKgT-MI!fsZ*p1OK+tS+4G z@%^w^SKqs(qu~h&f|LJ~4&A6(9qy$t;OqG-!lkj~ltv4M&?8nQ10{Ps@0IBCem37T zcl3&}_Ta&r8SE^((0enB-6F^2NR;F(Yjf{-v$FDjY)92A*L{AmERUyNqMQ%?w0;kDFb9 z{l5LbDP&e8_YLapJ9fcgKu@^;V99blzlxnU2QyF_!_T7ClBUjO;*IH9ghPu%4N#av{0<#uZh1{1A+ zKP&4qB_C+W%I1!F*g6Tf1?ulK7^NHL>hug%U>#pK-A~{9b-{KL!|}t!1AsPs_321m z6)%0Ny(N5g_@o4OY0;j)$?qQSBL4Z>C-js+I=G-g9FRZPf1$q+(gCbw1f3Ugxu{2- zh3cy7r=kmJnCBsE?}WsIm}+_Z1a_)nrV*TnnkTm&ORURK$c&^@jMQotfC>DKy00Z(bd=czBKUO zJBG5+GD|{U#Zv;w(Lq5?u_7hM2RF};I6D};tv`E8yX;lP?GuSrtV%qy&lnQ53)8Lu4TVS7$f$C{u*!aXX!X%v=@O;1-qa{PdwtB+D#;M$Yb1Y! z;i(!SR_+H%6CZKZ`iY2Z2%oLS9$^D1-le8qz|Nm8`=NNIYsrM7lotrD8H_eg_pOtg>B#QqT1hklq6OW8>Ik+Vmx6mNzivqQzn5ib{@`ls zTV^GQ$6xou4-+O%Zdv*yoy1;nJ5padcGUFV4$K$DouUG@0_!&-65^^9w(reM^Sh?>FMIt zFp)}gVuz!fi|4zTD@9?~#mR6sduC%! z>*}X_e&tWNTD|8}SXi4>Ou4?R0k>`Y-)54AFcX={0v&gWJ z_!V7Ip(2r?6G_pTBuRTpGzn4C$?#zEH0w>YT@HV9sO91})xyURLrWIO10*0e?*PNY zA~v`(z-?0Ehajhlz6nxq;fcpF!<2h)@rp2BA$$Iog;ZUGlruLsOeJ(4xiMKX^O1@f z71g$jm|YlZjvRh#Q-2nrD|U4=y%x5r=!jik#eS=f)vrLjnn7^GF4g>q;{_ofs>}a^ zQvg;;w0tT*_S`;6V`r}Sqa`kyG8NFlL00{n>_ zod|p7%jx@xN1nOlT5A>&Y?@eO`k?OGlPyP;cDmm=a5$V}pnd~=knWPzx@t`&G)kR# zUKH3nd;9f>^ehZif&0`#Me`_1>K9MxlWl_9XWmuq?dY1CL6X$RfgY$3HDOaXNrV9q zwuL4SgTkjM@CHEnSoE*Lry=>z5k>=dow0|hVNw9uUlWrflr0d}P*orZ&@>oF zI^D%c&O>*0O+e`Ea_GDI%%{*_F3hFfz(?^R0ALq(w>tEixHq`gcHc*n<q zE!cSn4`5GzM!5c1La}-)yRd1+txgLHxP3A_-+T1iK9Q-{2tm;2VzmIfm<{Uf&>9h2 zd-FRpm>Ykv*x=OANNL#kuHz|1u0ma=Ta7cr;iIC@XHM#Q{+=X*5 zqaszXvB}U}pFye;@jPgPlKukR;ihccnO_jyNrC_Z)N>=_!=N3sdHFM;Wdj~jXl|#V zk@fFW04*C$$YfU9B9e)#S9{+ltHQ?#Gk8qyJIx0(fhT_!Yy{EI;PwG@nMuU`S=P7f z?@}rcqMKfP1|kj;27rkFTSD`&i|@dbmw>*!1z8gRsa!5?Z7?`(jsxZ(1^(N>z397b z|4H0{=2F{NojO3fV6+xOR%91$Z{a{=?w@fufuOT z)5C1R(*Ixq!yPn#>Sq-4Uw5rPCWNRaQ`bru`f?AO&Zg*AIC4Uzy5eF!{`V8c#rw#l zX;}3^WPwx6m+#YSvM+yX_(|Y7LLm|-oEy#cAM60x^vXkOhdS`;qN?p zbRNM8>}jU#$?ph{S=vy>%Y@yaRrPcFX}!A5M|@E}?Lj%V{5uyyXJK~wQ0k+}pt^wb zjlMRq$n;VD>LVGNPbp=48}I6UcYpQLFVkqO%2?|P$`8|^|E?>p=sJEXAnibca~Aw2 z9*<>5w{|jtxmEO__z#vI1}cy%j!q%v({m3^U}*{x`V82>4?Ums+egG`@=bJGs#=Qw zO;Sl?6$SHg-t>sae(PcQS;GVO_wU49U4rYU9#e_QO4KomdL#Uf=S-7RH@pdG+pbC} z+lOQ;Z+LxYhd_Ob~6L8EbKlDhnZ`nrD-NG-Ax@5{X;mpIc+lQhtX_mSF*q_T1--b3WsbRXb-O(v(exkLa@(UN;5g*C{!A{P_>gvg_G2E? z4lbpO6wx60)ozHKAX`^`tCNzv%Uzrpsl*QPNHE38T+P3oekrY{Ktu3~U_kGc;glcZ z9X_55UkWSK*yXAcoPm4e&h`(MU!Oyvr&U8)=<(o%y|AhxEcH#`&X#SObY?-8pB(0A z+W(ZFs`X;>%o9jAz|INuOv-E#A>}`>;C#&LZbSJeu(h0 z`Np|tkCnN@W%qdK&{X~JJR2`f&qsXv!WSENzpTjNuyA3>hnKuc{QO1>-Bq9wO$A+g z>{xMJGrae;UXN#+--s?u>hL9J$uR-;)r&86L=}ZwghI*Wl7g-V)SQj*fp95Rl~h`X zz|ZLBIvF1Gg_V!G#P5!tW)p|1@`s=ugW9a6lgTGI)|i^j^fNFXOPi5gN>G;LOFcAi z(tv_j6#TGZOU-Uu44PTxTU|uE;c(##Dm`tkBeTsOnDV*Ih}$xQhJ8_fA-f*CaG&4B zKmV=yWH5`+%`M#0?f3IW$iP^WD78!1J9Cejh6@*(Ye$@=jqcd#BKkVXDMo_7j}Zs` zR4+yrF(6BfKMGOjr^dOcZ|LGiD4P#yy7`4I$9t`zw^j>3s{|_w`>kb(0q_-e2vkIt zBIdeyY6xC+K{d@-N7fn#Gv~wvz=g6A3}T`6_fru~k1R^Dd?E6l{gpTUH9UE?fQZ?{ z3(Y7RKM!_<=*+tAct0zUQ)NlX>Uy{YHS1mri?Cc=r8>>(d@AQX<3!e%ue*AYeQ`qe z@Tyf}djo62O`~SpgqwD{vv*Ph>whYp@-Eq^BXBz^?{^yT<;`_Vm2Bdzh#HF7b!$Xh zrqh4aeju`>%X^mMPUfp82uQyRK)O=|@{bkhnM=+f;XXY4&NY$^u1&H!5{+KIu}eI} zDz|Yqy69H8Z(3^JsaT%C>^7(1{=6u*ub<&YlA>(R544(J{q&UgGht*EyXZHf#4GLk zQcL?vav_FAa06QTV$h1lk!lmQJ?F6oCIx2w%>8I>Om^q84}h9`{BWpIQ0ujqewX8**D)05gpTjr!&g3I++fPp{v`1gK zaz7R4#jmaItk5cCD<;3Xob1C$$bqEX{wF_`h}qO7?P5nO{{zxl>;=JgVwdXu3EJ(Ii4*7|MCTe?+hoI$Akh*1kQoe zqtT))2<-p~!E#91mPd-F{n+R1GCG5JyJ9sx~p+#s8x*rtt z5K-*Bns-d)6bANi3uBAmK=s=*mCrMxVgHQ$YW4^C^QoTyt$}4vNFj3sTg;1{&f=AA zw);6Nnvm{nnuls9kl>s~IW|!`%6q+Sn`-Y%7tW0|H z3ft@WcPNAPktc|P{BE4Ex~darDrykH<(k6YZ9xs4FlKwKUGWCwP4!n-Jc~D;Z&k?v z7~!X?j+?!n+ULj$Ge(qK@kVveZL(OmNTOaB)av zy%ymwOFk7#BrN$Q?ldXuer%%f!1COsAOWLt@>5xjmALg0EM{z1w?8`HU$gr?C~$dl zc={tz?rSn;@q(!-*J2Dp@xsPM-GlLPo049CBPtOX6s(qYWY8p~DK}u;l9S)@{l~aF zcP04jAus2R3oE=&UiY3Ij#Lm}bJSvHtfmIlx7}Ry-}EGWTHBzlpe)Vc@Gki^E5YW71-Sarcg3*{L!#Or3qo30=XBcP5P=WM`wWGveO92Y6lE$-?^M%+F~SgQ9~3G;*G=dr&&Y zd5UlU@sF-5x2CS9?>xc!?fi9WJjw4S)%3#;59Hos<>cKTf9B>C$axG0PdmK3Ycx7O zDRieIA0WMAoA~iWh5GyRgyFLDW@AoE0q)S1liDjTcb=To?D*LdxbNt=ZF1hDNnC@} zp~f*mlFjS)`0TMuL^WkU0qK&{CTCm~u6IkYrgwroqjYy!qktEd^14Ql$rVfu(te#eMD;nq6_AzABKReEkqdis~v&s8aeJc`j}qvT8(|XS#>gs6J2|otskwHHdhx#m3y5VJ))XF4?1Z0a;X>g?P6t8&}N<~k==-l;Y)PUTR zRk%n|Kfgd3t_y|-Ser$CSQv_w{O&^44NjBir%hrdKjhBGG&junSUY*98ph3pm#9Db zP=#d*69IDpa6T&zMEL1|?vLaF^bfBxV1UAbm5@EU)em8!WSZ$1v3V+XlY$rcP!-P< zp3DOfeF-o%k1-%7+u-kyWmSI$;)M+Z(EsRGwJ0;7sL3J!9talqUcjxXSORuP^v_tn zN>9R;a4rD&062rP1tr^0WrL@VSLX*awY)oa-8C&j*Z=juV8k)y6~=*n@WkF<`O&$z zaI+J1bPF%^V0FFfty5#qs!>(28p9<0R6hl}O0zXER)z`SIsgVqXfoihl!?$)6-zAb zA!s+bV0Hw}g@R4#)=x;$FL>wn)eT!#M%fv_XV*3;D+oBcR%J~k9=ZecH*#n_xwMsK zpDdml&o)?1sOd)p!p4)-wF(Yz4TQ$6?j1Z!Q!C&uRoT&y#n5~`hqywutiPbXpR}GA zn>GSR-oBS)WgvEY^mXs+C>_-(Js+PmJDnTRf`&5>O0#Wo(zSh*tlTR|5gbhpyT-6& z^nxu;s&Y|Z@_{e*xQ@93S3~TEV@2=uS7!7A&t~bl)*@}1l?{VCx{8 zNc1Kf?H2XwLJh1G8u_7D)S)RgQ}@w+u7;5F0+XV>T&D;duL4oklT>6A3<({?)uT(K z-yLz{bWd9_>Eh2VIpTR>#7EsKcvSn{iShBsc8M|KXg|M@ZuFJqujWY?Jf9{Ve|m%Z z8Yb}vOWzai!v{jy#6V5}P%n{fWAe^IHQT^ggZG$>i5MGm2eAA=i3^psU#}5D z-v!e5^B2ryHmNx1>OX{%|Nr|$_QG4(CbfE&d1Q%%E^|oMNq>0l!^a#vPdOvLM88-eHsIb|!i!^Xuyw$!<(LK0 zg!n!TQ_W`3G3c4Ku7FAZ=b*k@-evUjNkt&u%mhYVhmyYe;^_?F37PC$@>VatwbixW zTGhC&Y#)lQS6YDmT(|v$1!M4+(FUF^XhCwJR@tNK>DS1>Po`$iMCG8#^Dttmos4tS7%e=G5P<8LEmSwe^E4UvHg zeEkJ=RbG4UAcsC}51BkEK0E-)>^Vn2NwjohbKGa|RAFnQqh^gUM4E(3M3;Ua>fy1w z3vB$IzdI0=Fu^d+rOJRiyjrWS$G?W!3FQ~8^US_xezPe2e6ym^4!>(zfG#ooxKY7P z4e9G0_tGRxY5K+U#Gwh?zxSy3w@ooE8Q+9d<4q*EW5a%^J-~0!QNInwm z16w~PuWuP@lm`04{_nd#Tvb2+5P$gh5mJ}}c=PSU97^}C%4h2jhgztAHZ2dh{%!*M z*SR78@xuNwH~4_~2G}Z94_!vQ+g(67UaJng&6GK#t8!r6{)tUyvV#dzsONZ538w8S nPhG}*z}H-M3Bl-8qY3$REm^8&=;@pe@Z}rhq-%*tOG>9mvj|BEVF41-4bm+jE!`5*-QC^I0v3yJ zy7xYNyU)1yocrDH{{J`rF@78q=A3Um`9AedZzpdTLHA@Nq$NN|NJyYJz(3IK3`h)w ziH3%bhKh-fj*f+iiG@pY4;Kdqmy(bOpM;K@fu5F{_TeKIUiL@KT+9z?pNevD@e7KG zh%m6dlok_`;uRJV{5c5{CKeVh4lc#LdlZ69v`m8k+dsG8LHOuMHON6INVFhid?XZn zq}w(SH3)=s7l8IBz<>N8A*0;6i;9Mhfr$llsJI70MnXYBzJqf2?wvb8Z+D;_bO-+7dHYCb?*0vw*9i3g>!y}_(;}erp(@V=Mt842Un_JsQ$0w&}=NGWc ztDkrwflz)&>rc%72`_vAFXTISQ0}1p#0v@eJ#eAm-?{sc1NFYB5}JYS16ocmbb=QV z>7~sWbkCFz3E$ccVG_}EEioMZMC~`s{%eSN|FQGAqsAb7r@WX+NP50;rei4ncT z=R<{S9M3Bk5A1_ayfOIb=#%Wfr{U>k)L%EJ9wu$hKdK(A7-7rL{<V+I!dqewC^}of9WebW zOP>&$$RB7D9l47~6X~|`?iS=Z;qv@0;f4pwxFgm8g>(1(`ISpyL6I%C9lvqF`>vMI zS)@y~wp$Q^5b51OJ)SCZNjgHsQhqy$XUBW}{5vDX*&xSgb?Rm4CoPk>#n>a%xc7I5 zK3_V;tFh3>uioRo15)7Il7qRg$lBb4z0#fE=4jZ(C2-P@UY z(-KlwCY}PAEWICCj^tS(9lYnn?+3F#R{OtF@h#(E^^|V6lMq<6*Pg$hB)eRUpLWER zkS-hS9+2rsq%R0ht3n$I+aE+T5VwoF1wHsc`DLLZq`iVVDOeR=JvWBFjRg|7(t%vb zRr)!0v1bardwvTtdsVxbgmS!k#+Qae#u8NnOJD4feiN!|E!6KdVQJm05*#u~&5oA7 zUU|lT&s;zvvbOLBt~kY~9Q7dlx`w1(x^p8CG?Y=3{9u{U_k);grIypzV!O*Jf{1eC zl4tFU&vZ`7+OrlYi@2iP`Af8)FVFOfXxOmIJDqNup$u()O~|j;5?_rdRhOd3NAX5~ z-DjJMdZsI;acDUq5VJdBk2N7m->>QIE6?d>XNJ<4Q9to=yn-LWw1Y0x|LA7 z(X~9BMrkzC^=+xcK!6DT*crn}!P%$jrO782N3|FjyI3HM^EBLyz#rp6`e|mwLsJ&D zfm#DkOjOh)_?1%ZPzA~IsoU5wyE2juuQl&?zIt;)#j8_I`u&d4q39wRXp5=HMil0? z6n1~!J?z!!xNIbbMhZ{JXIyz+q}0~I328tX)*e9g9>D^ZcWxM4r}Kun+&RvB-lGey z^3!?q^FJ)%L`9X8yNN$~(0p~1sAZup!Zea&sX#ExiTkYQLHSAZfVDWtHH0vzz`5!9 zAbaMwF-L-m6ph~8f?&H$p;c@rt{G}ln48iN<9OPrqK0;jG-HG&a!CjEQ_^h#*Fn@Z z!k#VgeIbUzZI+zL?ac|?8ADAvXL##ow&$H|$3oeG`{raG6_89_J@kVE)HnWy_gCm0 zQBcwWwkZep)E_;H$k|b=lJyHZXjjS1J)8bc;Wi$d>5d!sWpG*QAVT3=R-vsG{h4j;*C$A(mOg;u|^z7ZBSLrKr5$!GtR@?i8) znfHW7sC2OoJ;$d7Tgw%+u;^of<WrC6SC-BXw>u)T7ufU6i|%0eLYYlvlK zDN#cr%leuGIa*Scj^lcsIW_(V#-fEFavVM0YNzP{S}qTRTaf8H(lp$Jz>ZP4X1dvQ zr1^AgCS^rWi>Yda2F^!*!BVdag%60g`DS`ThXVmNdOb3u!w}y)mzKf4p4$?O&tQsZ zV&a6WCEN3iu*7BUYxf75?hnL9QcaW5uDTRxsL&bt7)e3cj$BAPD(Z54yvZ56inr46g=2>|=j_%b%yT=Vx!O(9WPn<)AZ8V)7^0keRGh({L4cFYq&Q?zW z=4=zFvHO3}Pj~*xuPxc6{SjBF?Qv&MijN;?Wxk9Z!35)#Z**e`G5#<)n|Wy~_%&jJ z9vS=?v}0Bf)I@0Jq($JmdKGLaA4kr1kN9;;s>6f5Jq_2mAM98&Q~Kn>%KZCQHN4#+%Sw}qi zj+t9vv+^O+ampl#@j=IF(Jmn>z8gq8dp)nQoAU(L;XoTtbLcBY9Ro1PkPps;0$Hjk z9nU#B9k(Q9pIY%r390WE9av_OT=d8@#q(!(fCNNh?La!-`$=F<(qMbKV}`pkPZI|? zQsZpp=WOX?b3>d7_G$PT5^Ly-qzl;bwZxaTN8H{YHfejW^&7=bEBlEd1}8;DV0|E0 z*08YhIob9y=ePYBMN|Z{6YrKXNJwdtjwX#vqXJK~=S)>6Jf6(%)Qb4CRoP^umi-`W z#FxTGF-3z_J%zKVw^p6NwE8u;QvJw!**W(j7rS2--hz;)I+nbYolP|w4`T|>uhd(0 zt<+qEy2zwu%P0(s`cs$9P^ep{8?%=Vg1k@Eh8c#^C%PoOC1-g#NZvRjz&*CbcE$8Z zY=v&iZ56t&mx`*}hk9CudKL5d1`gfux+~+BsRNL`Zb6tk8hn(pRM4YtP~RaMJj?@p z3o8D23rg=%ZN%A}wwmyC6buStGLCgw^^)2J3K*RdLBgoU~q-oP{|j-+cclw^36*(e^D2DGZX;~YVuF3#{~9T0=j4I5lb_L z$O}s;mE**geNXJVHIl!h^bZ)QmOo(hFJRwgMUd@O5lwqy38`})+`(SN3pYHVb_EsY zn@#uUEmA%rT{$dD&iU46Wh1mM{j7?QHQ1Vu|AG+GQE8}n6y{}l_Kb2Ol|pGY#;S)+ zSL~kK#{up{)AZ?SeTD%z3;VtPh|1N2QT1oIQV;dj|QkbGNp&Wm0B0hB&RDd~VlgsiM zK-@lMh72Lcye2m?at+5D&pKjj$a5~1lLM>3YzoUUn4;0w9=``Y-!QGoIwGpdb^q5DVcJ#`T>Nfg7;uu!=K}Liea-%RQac@HKIAEliQZbMx5KV-ek>%jhy9JkWpseoXkO6N+$N|+h-4F zW(h*VMog*wSki0857>k_5fu7&Hd`?6KUZ=SvI&YLJCPWEhVXpFrk%d3@N)DyzB0YV}cjh zNML2oRh{FK$wHJ=fXsIIwCz|y-(sff78Dg+3n(Q1EhuBWq_ALo*o`F%23ba}`xY$| z$8Oh0S3(ogmP2FcHCz#;*`z?&6wuM?ZhtMla@^z6VLgj9Vw#qQr#QOoa++VAsXIWA z`&C%_b>Ioq%QYm@S$@BHKSMV6fK0+S5u4yE=$)Gp+3+pMH(*)eicz5H<`fDGT;?vM zn$d2Gyi)KJI4k%TIqV*571(yh#}SSbUQSQ&3r6*^h`Ip?wMTHZ#E zDmcd2yq5h_xw9kDq5FKuvM%YGy^uBj=T##=M(WnhvHYb%y`2^{8>_4jPsf%|&^bGY ziCoaPB43|wX}rHuQLj4DlRR8#Q~OZ&mn;AITOM^;L5bBpdYm@Hh^`C5Qb^&f zCd{QA-Gg9Tf2t^3kLd0DjXYqFzu11tF{lnU$efwf|KTJ;=IpolqIt!8d9_|fQX$S1 zES3NoJUUAo6?p^`n0PIIX?2frYtI?B5ee)qw7S2W*RVR4>3tE*VE}9waL7-j&rg)gJm_m8k_AY1OivP*+B`vRM>AA%21?F&m0O>9yVv zST8H)RW2+eECcpKJgl$vzj+lG_eg;y_(SF!>Lpzp_!EWu&>{Y@ThKw~EvQWqP5AKZ z`AjR-lOsI8GtJ@oeOXTfPRjg8!*dw>V#sLOCLbgd+o*`DA^A|MSsm`Vp6Jp*u2QbDm07HKXQ!jxkq?tCjJziPdUq zLLuyn)$FcsLH!HO_wP@kEpW$WnZGl;3e;z8rF7kv3f+v|w%fu-^G0pHTCWgNb+=zZ zUnI+Em9vz!R*2!^jCMrJ?eE3!uzgNcZ^&i$!Tzw`Y2T_hR){K)~yoViO{y3uDihR!;9ZAf^)EiCy zlSjn@tVbbL_0Xx%&;m<=JO9(Dqe=U7xNTT_{YuM(Jxr|6{TX08O%nqc6O@mi_S+_Z zM%iS^_$PG-k@JllO#Z8tLQ}}JB^6C0WC}sN6FYIAa#**` z-tFK}0m`C0Z2T?T>BrOUn|EZMyQkr%e!vxp-qF>&8u_6v!r%|MA>3HG@EVd{nH5Yv za_|(PY`fOY#iu)rS};?O@$gUvR@xp?#w3BFr_PIkAbk?HXb~RgcU$w43C8|=BJvz{ zy?p(GE7aK*m04FEZMu3BEsfN}66qFS1RKPZOayD0TiB~nM8?`QI^NAQ4m;|ieAkNR zan-|WA)M{KWVE$waG`2ou~)A`OpPb1$1N3qV%;|;N!*=aCF|R%!&qqKNB}`w%gs)q zpUn2KI5YjsQ0W*gXLEOjg}-jJ&OL5X_$W}(7W=O2$$2wA8kv({|}E3K&g( zXsx<#*8?;Gw$obu9C#Bk_#?Rj=yt-D~_+({e1-OtsF06}wj0w|2 z*=B>tdo?bWj$kdn?sW(?wyv`^*e_vaYvPrj)M|1-R|m~*=bGr%n4q9~+2Pr`j|io6 zsJ3i}WL$3z!?zr|J2V|Kpr{TjaLMpo$biFfx}WLA!f=Cg!9ZllvcU4WinEI_fVx=ugcYTP8eu=4d)&2JBv2qlZy65 zS>NWdzX%~tm``_KhJf)E4i~g}$CW-W(JB+*CFV{I%mc9};i^8W&6}Zvvjed8uNe^2oy`Zm36PJn^)FSHI``O;pGa*XhqmnogsbeJZ^#d!}ANZEsn}6 zP1^Zq6_stz&YHOuT27jLG}lH%h!s|bu_V=SvdgeR1&ZiqLLk93g0oaKr zN6(b zb;q)7wAYD^eE-HX$qDU_Az!nQT5@HXyZN&0oCnyicBsB7s5{jmE0etkE(mNLzPMpl zcW0y6TdD7H-RD^`n~+=GD4i)wa_Zs&&4gX@lIvf=!B^b*bybJ+L1-<8^jfMp30Dup zI}McAg0+t|f^YUA(WpvGhD*gTwX4gK-g&2yckfZp1qDp1-W99ul*2}HAg=oFi zZSOpp8)#(mpKs^E&3?W*kw1tePN4Yz-HWi>xvGtG8hq{;6%*~XE|5exAdXhr!N2=> ztGQq8Wxveh-OY{0vP!Ee;&(4Q$|LWB3ng!gzd#2iMi78|44a6(d>CN*R+^uW?-sN( zbnbi$n!W`!4!|b#$I{1==I3?8lo1mn;7vO7TM%>tZuaW~q{m}``da^D>J~&M^5-2? zEoaWZD%Ehbsp53t3Vj;7a0ax4e|+?+$(!~VRd76d_DgI6T~x*N;8FxcCeJY(N;e}?epNxirMX8q;9zH0aA7F2Ny za!)My2?fv>isl(BSf(!ap()Zq6Xa|YWf7950nb6Xs(6$G%h+$d?_XDJ6sL7 zwT!yl&E`KiUEBxiDvB~y?<8E+F#5dOuq z+ zsOddrgu1?tY|N%Y+Zmcui6616VgI#Gb816D`< zH7CjEay<(^o0y5o!CLZ?NQFvm7yR(Tr*GBiO(`(zsOroKyJ_j0OuUEEg2Q>AQP{bh zf34-oB#c(3)78-yeEKj#ES<_%;UwdvMC*}bFY5Htl4JXlcu31;z67#v@Mg3u2rKRIq-@<2;tnhx2i` zQF-${*cbPqX5GdSCQ){oh8dwP#caW~s{6%-8i|Q@Gn1`Y=GI^*O@ckufw_UaK9@et z_|pk`jNu(!3ca!=qBAQC_L;IM6BDL&3hgyiBaUIOPF^HLN91K1(F(_ zlDD9s%)fP1NJu^Lc)ONr$QC$y3-VFZze2wStpd~h82YDSKRX)qh_wHk2_?C~>+sfC z_uyKV*MD0{5>ET=7BmQe@Q@n87HR?QyYzo@P3oYQ^S6dDm^dIBX<>*LV7M*?08`=# zuI4%CW}(8b4b+E$J;44;4flbSdDkh*c8!O$Qh#j#FA+vHrl(#TE&M*!XMWSk zj_`w<>D8#_4zT~|gnssPMM^RO`^EPs^KD5HSEFPe{#I{WUcCB-8{CTI;a#3jR`Ecm zl-q~wy>SpV3?8;~!=iTlzVchjG9T5_a!9g4*n!mZPNjWUHC4|?$3jkBKigL|rxYB9 zx*j)^ODQwV?s+9K?K>~3Q(Oqpm7+$t^JHhu=*?>M89wQ%+52*Rlq#lf5gU>Bs5EQF zf@5aDx(cIS{9U51M@G>o5kZ%6D0+fsmd1)wtO*~;-Tdr3tVu0$M;XF2bHTG$&TjI- zDC%_U@@l+1uQswYS^AhIu?#jLKEt!&hs5 z=V#XDAIcHS2-T@wW;TD`id?7EUwZ+($Jhr9oJdt_G!(9D>!Ag;g+3PgIYQ+ogspkc z;ysX4Rd5)%JgbKTd5+~xKz1$wyOydw&<#egRX4GMtD9oXCO5s0`--NQr{}q&dU|sx zRz#wcAG0`cD`!q6Q^Of+P2pGb9!j^MBL`@U+ZX6S;l>&@AiX*ji0EmT;2J-TwL2a3 zl8?WuzP=x9^7PqAAmL*LBiwB9(cN3nlJE$4WBlY85O+YPAIv>NxZ8l4Zb7ix6`}0* z52ax`$}Y0OyA*D(&$;TbrbqYxC5m>j3Fh^hQ^-u-513~KytY*9e?zw6C$f+KOUP3F zMk9~*xHsn&g2_35!!CcNfg@C;#~HlH1dUQBT+6v2KF;EhaLqudxRL381b}mON-ogY z{_4@iXQE#p%u@o#JINng9Y5(aw5J%9QX2Xeax=2EkK^i*=vo_^e0Mse(E?eWf7&hV z`+5yTX?4ufMka?R%x;W8NoT$Jf6h4t7rOMuT>oV6ci9J|8Vf}R5K_o*LK+6FD3+3HXYrUCra`6-zt;PQD1IMq+L-=B zvZhoKivMk}WQ3sE55mgk!g7C;(m&>kO^T@ZN6!u`DP-ltr@0F8unj#?(!+Y$I>g=40)i+ycv-`lJY)daEZs$Wp4LLb&yq34wieu`z+J z5_yoqEw!uUsAt-gakP%>jL6tj%>J6`Xer|92c18j2=AwS~D zEYj`5+3>SDjh3o!W*wL_tPW{FCI~bek3oRK{;J zcKeIAnLMU4lV5OET7GLNp?e#A=>E<2RXwp^2M}10e8N9}`~BV2inZX|8XyXxk2;Xi z{S4}r(gQJOOO~CmB<)T!uT<7mCiW$8moa##N(Icc5Aye!&d+n%ZV?4jq~A@fg@B3^f1@9FpeEn2n7Xo%;B zx1jo4&=qNJAsig9f&fR1PtURTx}abKNroM2xwln;XcBkGCW{4RdiR2AfdgS#2LBUk ztV12_sA=s;mm@J5h;5AmO9Vy1jPQye^~G#sT_SW%1LoS76KX`vU5y>WPP-9WOm;Jd zFM8ckrL&8ITAeP4&g00Ei1xVBK4mB^gliyFss!j2mNTuGjJ=n%RA-tu<-r`fxEbr_ z@l0j~_R(KMSACS*u#>RILn;#quAaoX7(A`kh)az_qh8TgmuOiuQ+Ik`IC(lm(+fS-QIqA=y#*pe(4?d8WVC2NveIjZT`-$Fa4x# z>e9(ju<>&-e?H|$uA1_^w3za^a%Z1@2A*uE%lON(Dp-Tt*mTd~v009cb|Eq!QTN{T zn?bg*h=69BViGuuvM1(op)5k|V&QBa*mfqqPJD)WPZiXQI@Z78@;%uu?uQD6_18VE zE4P2k^D0lAKwZhJA~U9Z*rtMB9P%kJ%h=D!Xfd@=4rc@+AiQJ27qRCgAVYu(N|D^s zbal#MOB%lWGL|{cGD3=zL}kLYBiY1q&x*FZ%4BxiC$eKU;m42JA!&`eW$BE2np!Q# zKKC+xXzsS-;!*$Dk-v8APhD~&u88U}jcKJ!TQ#~G7d|`D7kaWu@B_1rV;1+!dO=I7 z99FPi;eT`9=7@Y;KxPi-{ITk69YV{RwjyftDcCVbj{ko z2#!13##J(Dnmq=CfAh462L={TUxrxMjFGX+;F_Squ4*uJ`4a_?}xpIm{}R>qK=ltNXa zq3UzeSE`SKJ=NT`6I%U6B*c(DPA#^q-+E86%top7XcTujuc&B6PF4&v&QF1p*{fMB z>2%Y={A`8x)zDNc&X1PeSR=+Kf{RXlLE{XFz( z8xhTU7vt5aDuS}UJLf228VdKwS%K$UlsW*8F}|_QBm>N#)8%zD#@=yda5_+`Ora`9pI=**3ZONIk(LfhAwnbC3Qt|3|ddM(0QiC z(%tmy>vKOK=OM~c49ARun_U%Oe4M$Y$`^N0|J!@S;8@cpgCh_SDnmo4RS}17P`WX* z;>Uk~{|iu=+fDO$Hmk0Mglqc0zP=Vy1H!JD3B+A#AdjSe-Mj}6Q_ZN)|J!@0nZ?5C zeV|1CJrCR-_VpIzEZh{aU9KMUw+62~i*7q^EFdnhQHH+$i5|7av9Ma;G8dS*Kk5lt z;$_5xFm6vA>In+`1Ncr=k!$pt+*INV3yV#rjKJQKe>%eS=W(WDwsC^u0QTks7W~Uw z(Af{y5L*$>A!FIhuQPc@Z-i!{7$~G7ZAhoIwI#zcaw1;{M{MOBI2K;lK=@ekeUw_0 zT#UTi&KMKoxqHfaf?rym$4~BJ&{L(I^ciDB!9rU%XO%BYZ$Sg%KrYkQ@fu8*nA$s% zs+jyxe_k7;|OBcg2!jz;#Xq-2Z8h)yOy{WX`aSIYA zMqCjzBNA%whk@V5o+NIvhD9|2VJQ`dBB&OO&5ci zePIY!_M21YTy1Tv#NH_d{JEkIGuD(PVvAWWmvniIK)_jb!eOjxm2^G&#DkN%?c5sqJUt1-{g?;Q|6gp86n!E*V z00qf~7h!+QlGC+HF>m7Ao^NY!!^KwWn_w?^5BI$xh5c}rmG#zvX&p0hywD>e53grq1Z}-5=dH zxL6p%{s+cPCx*A6lprA2iYc5LZhx6j2C*N&dJ?W3uLow$IY!tu^@yBG7WRirl8f4~ zv?S8SN*#AMro_bjxjtzI_3;o?KsaHS0%5@1#s;0@9x|&OoZY0w`fQlMXo4NdWNedI zEwWs*nGt(#>_Gp2h z9_MxRx&sNmZE)!s^zs~fy$wb@&iz1k3yP39Kr}4?`+0}%%}bUpaTeNaX@0#8>c4}l z0{z>4I?qXgCr4qtlzMd1@nD zhV@yLR3^%quxrUHwKD=W<;18uu3#0XCtCpFu2RE}3%?GGSZO|c7JUC{=GC~bz1&=) zxEbL0ON;7h=F3b7?9K2G94s8;R6s@ba`axi0m-fWg{wVAgx}bd@Aa$oHV4w5Zi=T` zV+aBM)cp3d7iEdYN)*J}}{$AF8!{JEO=(QqPErUqw|UFVzu15;{$D@JwX zWocaL7w;(+i%Y1Bn8y(h{qW89AS}Y=9(qGO_ks=iI`k~kN0;2G1Rqsd9d_#R;(fof zx~giZo?Cwbe7Ta%OS06GJpWNh#k6(pU@y&kRfw0vC7*?jr}#r)=z*qo zW^M$Me&y%R%d#??lYAbnx*llG6IlX@d3O5vRLm8s>gBk`xU)%*9b@efwmF9__B|Wy zA$o5iE^T>*70sAo3w_h_L551H%qnv>B#m*~hcvkIk{0XRi!(2!HGx#I)_qBKa{WP1 z_h#Tsck6VL-DWI=C47hEg?1y~4op2o0g-=1-K(w+Bs)5(7B->r1v^<=#mZZPuXbIJ znIXKds^7lCwgYvK$NZj{1}vV~Z=e7C<1?Ut{FSdK(_%uwQ$FmE;!=1#^_Xw<@>M5Z zG3N6E8<=Ey)8&QDHT)K|qML21WA0OGhTe>LaKqxPmN2~At+ISp+7E3J&IY!DI_Sd2 zPlscP3OH-FG1qi(0#wL;mhI=D1MF~TrJGd1c@SzkT0(GpOzZc-B6e3Mfdsven=Fth zak>RH4IsGwKGh6j0Pp}(^kG0qO9n36Z`z1M2!Y#EE8|W)9{zVnhgq?&!^NgLN&|qj z^EvSOipU;NI!uL|{T&qUs=wgng8qR6G=%CWraj2P^!_k>`hq&$!}$(EUFlR$Rqz#F}^;(vaPdVd>2fOjS*hns=Z)mb!ag ze7SZD3d1|fd6f9BV_os%Xo5e>_LPjs3-eB`J$XJw>B0oR`8n3i>H4VAtI@IO=^#d#!6!1z`9Jk69(c+;kzK6v(cetU~H^jFf@=OE)yDxO} zVLo8nHk)8`u2uv{>-vZ3A6NiS8Al)By7(=q9Y{v|Vl4rc3=6<|U9ls0^%BKFE^%-s zeN3PLA*K!p^$_%^7W{W8C%z0lr}}>st{til$*Mu)RJjTlJtiYZwU}=mxRP(stXmpl z>%YLQ#t)FTO`<*Iq3v}~^OyPaPk%QZKNC!D@*_CA_6qbnHa4K1?pC1`Pu%tFn&Ep| z?nNz|x-ArRAYV=Ctse?mVlal{@;tE(}Zp|FYc zlDCuE(x?$kpfBKZHb#uxt*JJk4`>*ObV_S?y%269OLs9OtbcXX$Fi*Z*%{NR-_CiU z!U5~U!eQihk&NG<;hBse6!fmjLnp5*;eMRZyI6YbW^{5mkxo|hW8tT%0A z+-l^sb4$D4CZUjRDQGdU*zA;;mfs%ot~4I|z7OdB4_yAOfrk6jv)Z}lg=-<&=?*m1 z{Z-spmue@np)Aq(Pw+X^Z07c<=Q{@7A6r2nTXFYg^f1U2yS-PXqU=X;GsCh)-sgO_ zE0lj5$W-{M1*mPK1G}RtENq=6e-J2q;n|#mdncHAXHjYl;5+$4;NRZ>0V8$qS14)O z7hn%qzQM5^=SjQ;Q3suJmjQmCAYF-)IN{y@N)3_9^eC#onu=mXZQbl)!{{BmOF3`R z>1QybVQ5R(aMLFEr)2*Clmq&s_!1K)hG+p^q%*jx{wBXSEQpU+O*e4;LqHKcVgQ-H z(MKTIVe0=7U9b$GLWrL#L<|Q?A->ev&_U==c@IJm{-IBQTLru%xut(f{Zk2-f$o2( zQ|4*$6&~RIT^s>G!IZAlZ_v)5*RZCgf9TQw5655hFmM)YQ4_%)T97MAFprc@Fm?I# zM8i`MshvP=?_Zn|(xDD2*JLf$SM-J2KC?DKxzRr5KL_`wS{yKwiZQE!yq}65XesAz zb#DeV%V`{gx$qjZ6-MYzG6%x07t)Kal@Hq^he$KO;g|4>Xn(^7KIi_{RKm4z39#`3 z2#(w9Vl1p2`E{8yV^3BP7n^3k{f6WrzK=jRf&dx&%_sPEKx#$KI=d;D?!VeU45H90 zoCFWm{tci%z{8P?;?5aLc? z$jxA=oWm1jC?ytM@#lsi|Jk=l_FPG8tVg*2(=HG~hyo`2KR82XPu3BfQ5KW_EyTo# z&s=8->6By@5fcU!Wcy28MJ=FvAH&wqhA4!kSw7be%6CA;-%%eXLBJ;mkXw+4_V2aO z5L1Nv9`v9GdgQ3Dni}3vFOLXZ1TXQ8LpSCp5b!FX#3~7ABpZNV13tk*?9ck`RRR3t zOxwX`5enkLU&Dd2tZe~6l7`}&OB)1R*w=wh;d+@=qNY`rCA@3QVuVl3mg=$x-?(G4 z^@(WoROU_SrP0kOt5O870izuVZbi{~u6dhjOuk`n-AI*!53(#SDLdQ1%89rIU$OFTV2G zMVqBkKZCP;Ent*abc!f2$tv;=WXfe?DpFTFDsVdH()wV|GxCwkXOD3bSNjwWVL?1d zHY_K~K}_=9f~Iyd_$)$nevErN{d-n?1yJ|hTYi74js(c{ugv@>Aq8ZBYM$}m$hd>M znuqBBt=T?2r}5^*F_|?FsV={B59)JXr0_2kD4|tFS25Y_S@y5-$6p~-3G0XVt_;ZA z<7ltP3~|UkNa@LTpRn(pv8dKmx_3I$9I9O5? z@e-BN-@A%ls~&w5eHf+?zyMn5j}nx=1sUNgY^mSnuM@{-(9ej|A8VdOsX6|J1;pA(Em?||El2ste(JVJP6)@Mw*)9f4vI``zp}<&#vv@ zYPq|>hb}DLXaCQj{*A*8zppHqOC#%i&baJuq4lq~+HH?~kui7vg!|MKfVw=x&ocUD#K45YmK&LWjvUR+--M?=X zS6I2%Vw7Lg2kAl{1>P$PEV6@Q7U$?|ZSlsbhq+EzOR1{fA+`6`*ch%EiLA+&>eZ#a zESeq^y&fe`vL;d5xA&5|(%sf$i1&<7GFG|w9#7HrZN=Wf6Po%_17c}<^*}Oy1~nRr zsEWFaoG--?+{`;RLRQGyX9V^Om=yWF*x^oeQM zd^G!gHgdTdlm<3xdot2yof0E4g71*7#&lU!E2>5mrtz-i(oHH>ik5;s&=O*pr&la^ znM5=7XSp)?B=-{y?{A|XJh$)qYS(tyJtUJ&iA$=W2ys(rsz{U$9d~&Xs$t9~*YXS% zt-9k#O+L^5yidl>bE&lo`+@a4jwGX%Y#rlAyItm5oB84dYCh=QByWNP#}8vprXc}X zB6Ocg78pT?nhINCZR4u4*+9T;hj-zBY(ZA9G$Zh_giA5-UHyfAwQ`50d(FkWBq$)2+BmrX zLDNos(-mnUR>;GL6DuPx3zVi%kNL>~(@S=ytt9P2<(_C2@1WZHMW@Hz*2)|^>JqnG zCiMGCYIiau$7OK7JbT4WNP;{_%s#k@{(nlE2)o&Qz)&(0| z>b_L2)LvBJdr=c{aqCL|oE}HkkV1GWBy|ws8kSOADrvyW)~FZ}+R?sz#7+_W3AaTc(v{3w8nd@2+6whKKc)K* zS2Uku#6(7xofLLBe^68x${i0Myq0S1eDlJQ2W>~OuRK>ssVb_LpqFT}z}e%bbJe_p z=)4%YUWJ)zQ5*W7Q{`EZM3!$@)L+$k zmN%@|ZtBhZz{RsaSjmrLraEsysiM*S#kh7>unv0LdnzSWK{xy^ z!c?xPQm0qh#u=R#Wz)LtJG9#6xddUK&ztujXU`|Te;d)zW}vK4+uiIx5_*m;3Of0D}Rb1kij!HUg!t8|J<3##~m%( z9i9uVu^F8x%H(AitByI)hn&+J^FxT*u*F3ohl;mzFvm0I$7v3o6pI(xeO#548OD`i z9#ztib35Y*SsHBgH-aCNUN@C;BQb|$s6O_ZEDuEfIKs%cH(aqey2o0W92qMc4hhn&*HJ1L~R%G_*`Gwl>K`3hY9b=Le zzpllwY#tn9#cHodfeS1TFFC&xU4T+zvd`x@S>@MdoupRW9tH2JO&igb2!9>R1-4x> zbB0(91J#hX9J~h{vs9nY&a*Zcaz|ftE)MCr^QfzUEdn>XjM9o=-&n|ASI4$0R-ACKY-3;ZueofTucgZb8qv%X9|K&pG9X<)|{y>1bA!$0;jDW<*38+=>gW^3fE#?a(`mIodm1 z-#`6e?0jC!80$}M7B0~-^iCR~0f%@68@U9FnB1UcJN^705yDld&&HZgQFNR)SsJ}7 z7}jma#@`N!6Xqc)Yu79F7jua?7#=)Yu7Qh7iqr5GqsG|eXz3Kio#?V8xu-Y2qVV8; zWv1?j^l0;C2=!+g_Uo3$I`g=R@PX{D^G)C&$Gc0a9NG$_39D=@CpLONM<2%M@P`bg z!TvNqDYw=j5uzeN!|2#O7vH|OyLZC#Ea zrm`0_r-HT^LiQdQggg*=v-ffOYo8m+rg#6-?&Ym4Ocx}n@9RNb{dw^RlI?bXfbKw!-V3_Pl~t2AvWqb-os#yy%6spyrk1u{Jc@#ffG8+E z3J6G--XqdcKx*iyAiWon8WlxBI))|^svr=MUInS4BOR&Id+!9|Z*c40y7zhC-}{|& zu5*3YIe&z#71o-yX6Bi8KllC2k77r64Hj25(PijaR=wsHK4AinX6av19tWkz@TZ$$ z<^U`fFGI1`NFc(VFxrEBgAAIW&A&lNDZ6(mt7>qGupPPe)NXr3TJT}VLAv5*N|{hZ zm73&L@Mib8{K9_j31KE^l0ZVt*BWRdAz=cEMh^jxNRO-8&RngkvqCqH(i;WV2n` zOyNGV*(p4+)Ld<#vsuL)y)?};%qOeBa8^gqcuzfRyfBQz^oz~qKn{WY+kUxsXjn~o&9xc65DPbbhx%ZmghA8i{YAm^N0Nu6pn1Slad8d3; z8Os|QrA7xYE(3N2f+;QCfD0!Tf+&ZDtLwoe#XI_Y+hUzeQR)W^RE5qfyBkLDaW2#C z#)YC0X^H*~pMN7zDLG{|RWSGqWgBBJ&hC)rXL0jxz2LB%53DPnk`MfBuL9v*?D2S0k~JU@?L#p^ znhm)pr|27d??IX(T*O3APs!cJQ0ZpRINVixJlv_!5rUbxW$b#gE&BLg2xE?Nr+jXU zalNwCSr@>0P}_E$r~ZKKv3(mTh^@#m{SmGW>(XH9|ee z)#UI>qy}l{7g6(XW~~s_2NvtW`!?SoxoBa`jux3w#oemJ1Er16%>IkyuOK8}!h;W9 z$d)A^NEY}G7`WC(zze+**X3-}75ay(xvY0q45o?>yku~@I2S!kk_dnCH%Kb#@ZDCc zlJ^>QD>h)fYniL_t&&t!H};In!;ftm!4vJ$-Z@JvoYCmb->M^mIgWG{dP^S z^1&;tL4H!|O?GLWjlz2`n%`n^1vJ~EY9+Rg8gM0Zjxl&$kJndkK}b{wsTIYsq=tH4AZkDi}q&7K=15D7D6V?3TvP)w#0D@;)c(nw!&mZ*kAf>s>UdtGtnS0~OzE zi2TH6dTFknMAU=z4l|wY3>oW=tm{p&L5V04+g1WL-JvSRFa=@ekHD!L{rpZ`pFwGN zyb{43-zNLklBoazZzFpztmZyS1`J4xM(O}rr=luXe5mqP>hI-a6VWL(W1j`-Dg?vzaTIkvz{-8crz2R}gq|UA_9z+17lLH)1vnS&xzitPWj?mCl~dZ?u^$A zW%ry}U69M~Z4l<`p5X-Ay(eP*DNR06gZ48;y@^>x_YqdNjb*G-KB(I!lY9&s+5E&9 zj-@xa$z9ayOu$MW19R9)8X&mR)M3EbN8)CTmSMRWvCb7H@FZ`B0j*yaxNOZy|Ajw3 zXw<=99+~h7a*!!PC7v4MNaLk_S;;H3Pv><*6?VtF=s=07Tz7O@9e zkMC>I+Ug)Mu?WSD)SN-u#@VAjnFY9Ik3MXIwHHa!X1fM!c{%aow=T~>gRbxPBFV;w zbj_6vwAZg-!&IwO<9M$7%zCjZu58&6_Roh==JswB!GkI6(!>!``mGqBXBYAj)->)? z!G|#)DSA`Ihl8%E$GTH=r!7&xkY)WedCp$O5>d?rn*omgD~N54Uye0BH-VmN^%6Ul zY}ti+uvVj_Btp~h$s77m7wYapfo2z$XKNpX>&01D4(N?>2-rG+!XE(L)}P0Un`O9T zmTv>rT!eyzYTM2;4ZSLRE|K_pL_ho*Z^P};1qtJgLoeWV{pFrt@0a7}1ff86z5HRe zWfx9Yba6#xd=QujsX!@O4(l^oP_>LPc+DmhYi-eO0sh3PC;$hyA3O)>A|NvTde(ZY z^6N#^eg9Dd`j!lb%Q_p=fujhC{CBveFh)Th8=ph%A#arw0{~dvMzqi1ZhixiKYu%! zP8nS#RLPMY-=AOVS>|L!hA&6hf>!ei+nldaToR_KQc9V7^0x#sU8ro=A8gqa{Omg9xg8w>1i333#9uUO&x+s5CxgiqsdG#=< z*_)HXGv`6n_K+;(Ab5Q%Bjk}G%OH<_9+&+~GSvI&!h28I9!0R+q3626%B*!w_o^&W zSRol zRIQd`X{A(G+A>=Y7dv`oX<%gj3Zq%h;*qj2yxWuXtmOmWwQZkH`5MyQ0JxXPn#DEq zHigbGSHG4H-O5$J;61=HX)roOLVr27X;;~+#FGHJynmJJAa_LTE&vFZe;lfAG#R+wVAf5Cq5*$@}Hc_#kl%hivE$v~HJ*W{6E_ z<3qaWrM>$}IiHs@hvaKp=?^va};l@hvynR8Guu0d4R51Eo}nq$H7> zWhs8o(vo&x&PxRoay5o+XfzWONN?F@Io31-3r=6#KVk@*U;obF_c zkb?Zy9e;>s@Oz`xIw$o_b_rvZBMAab%tVd-$S$gFEjeZ zqL6d02giFvDaYr(o_ZXO330mAx+C09_nJDosp*~B;Pv6l?Zi&8F`&Ep|1p2*kzq42EqFC zUs>Z{ZP32l#rQMvyZi%D)1^nY+MYQ+?HQ<5XlLf&?tKc-0C~Awq)(&XPxf}J%AK{M zktZd)%d(^@l2eeVad+jR$j@OtQ*kKwgibw4%J=pcU2&}|x!c+CidyHVaZS~p52qN` znabxVE}y~#kJ+gje$*C8eU|A$NoD>8o#L$>e^PrN$kWNuXPVd|^eB7YP3|Syrwqm4 ztWBHc{ggmEVZW9mOG~MI3T@#@M~_Ux-rZA%bx(YQm;!I&Uq+?b_q`PYbu91gjq|6G z>%?*`k0kQ>I!jMj(7vX5&Mr?5V8CCy&EL+{rc*~(k8T$G!lM%Pg~38Jn4uGCiexbF zglpK9C%hz>XS?;ccKJ&qjX@zk0Xc1}PKx$H0kYamREox|kL>i60rr8zwAaD)y^4y0 zfA@IRR+Y-HK(lK~$;e4lc9E9YjVzllS7BN#s}1%thj|0d^_PA9V*4n52{3{RB~cuj<@t?t~5rpIZ3 zB04b(d#hcvS__aCGc%**#KrdREp*g`e3JIWotH_+ZhRt-ov-ipQ}y}SKR*PN%)vr9 zBWykin*SBeJiT{3ARp(m}Ki)X!Qo1rv^4Kl6}bd2AQRg z6monk`)gY2GsIGFzo$!m^vo=Of8m;t`of$r)05qauFM~;S)bpDzkBS-Eg31-Yixky zB7aZGS?65RSzijic^16$<4xKWW4D-1$?=a;%}7kljtx@(Jwea^LWVShfLmBudLmO+|H*-_nrY3depg>P0|0o>I zjqv}Z{6ai$oOpz(iiPeT+8q+Jt~@*{N&U*&_C30C;61rV0H|VP*@`J`G^xKA^l#tvOUR7Ytn54XfKxRi`8($Asfcgv7)_|FaDzhq6m zGH9Qss${h^arc;BuuVXOzwfe|*0p)}l)`YEnW3D?F;ZEb_V}!u6Bu2ehU$@#Q+?PJ zU0G<*jYHPdS6qx`eN(R-z7R7=&T@S_zC#au`e15d+@ZT(v!_baxonN7wgQ9$M=tEvAG5w+ZqeRUZ6=wL zY~`HB9Q<-KbTwuHHuMU2h}hN)mZAB8)A;Y04hgl@8Asz6YtKUW1+1)O*IvVO*)QcJ zb7BbTp&=-#IQUkUKvKxby)}$1U1CaSDhE5innUkQR)-E9Ri$9e)sl!CT};N-amrnf z5$swY-8x^rvUr>03O}=9^t5vQOdn#A6{t&3Wh-X$@3H}K5ABMp20XBM|Ij$(KX@kO ze&d6f{Litnb-J#kCJzb1_m8tC&{;6vMzNMi!GW{Ct;1q1xlZ|PrY) zsggifFtwQAd#V8)OfXuIRe0I8TA32cjCa{qeeXDostHX|Ttsdfc&$6^p;>~e{Hc2( zl5~j?Y7&6f)fgfTt=4#Pa@hc|?Uw`!HzBLeqlnKYxyjeXa*L&J z=tONoT;mBk^qDdy*czv=&rMccS`CSB7?}|}hI7&}Gw7q3S?Ub<2I;zuxSEwVX3{g5 z^t)XV^fNe)|u?)(Qod%3OzsV3laTpS0|=K$tU627fcKo2^q2dOH$d6StU7sWJ|s zFAIdieYEp85~*pG83STp!@Aw6>Qg8s4HhlVOc}cC;Iq_-I zAW-juc3}lUW9_v3EXRlYHcQ>I+8htU_~)BS$U-c3A{n>`nkE=cuGPz_>J8k|m9$B1 z-A?nn;qURb9-kijVl|;=Qr_mN~$7$QQEFipN39U)2ZwWAyRjW8qFk+Yv71b z81Qi5Wzk=1H+-9(Pvte$tpuE|4SqdH1@ex<1T%rR_%WtIOc9Neu|j*=j-($6^bai} z;95(m{j9fagUwr~Pn%uKpIL!Otn!siM$}BfudB-!hbwqVvys6E^RLYfSNNn{ZF@^U zqHr=(@cfB8wR|SrCx}M_EySA)W?h>iugij{UKTemvAxFJAQ21i%vAD%bZ-e8mq=DL zuv=#dTXRA7yQTpEm3_rA2^Ckp+^ga5;l|*KO@~M9yLY8_+1Y5uc<2~wLc*FqwJQ$h zR2BtskWNR5-dx}F5sf}J7urX5>-38oJ!B&omuO?V;gY*N!-wsgNpD9+d&ioBYyp8d zpgIY4D2-Z<3H$NwFnoH^8Ak^IL$kwtyBPxs)Wc5iX{j)Ljs3nbU2|`d5}gNK2MTs} z)}4h7KxK~@hP7qsJ+d3uDVBu3LTk25fl=~9)|sqzcUtGoTk3rof1kfagE@S5o!vgI zHQ?+5F_l&FE=}$`zs$@w+WO?GC}MPhqg8DG=KN0;$%!o7lES&g-7%scBuu|xQ-s=1XTH&?Xm>rk+a5_@A#U%a7a1XNX&`)_=>4a{ zu(ykN6}XP|_`nPD{2kZy&l83=RP9w> zkrup|5zolR^OURRxhZv_@q6+V&J2qwOCGni{Lkem)0(p(U(W^`I_Z=sPo+@P;PO)6 zMSI&Mg*24m;WN-$KDXQrdjz&ySZxU7dhO#F8!(=mp>0s7-=_85yA}rMmk@FRK&rel z3mb*)bEH$XmF4wj+kJf{-OZ4La%(P~*(J$YiW{D_?TCzbk$X2d^s($|>eO;YL16$b zUbZYHIarRZ26@VXZaKFP2k5DbY&Qq1!TvQP!&ETJ0oHAN3Dh2Oc_VEOyXS4t=odc0 zw$C9BiK#ZzSBE`rt(hVxQ23||R`&DWriqE8&H8SL@>dVNRr}cX;3YsV*tR<`me6sY zU+BW^bPy)%vEE)h^QK0j4d{CkgCv>ro&bWl}>}LJ3HVdaK>vVmrQU5k=+O?bmI-iBnjH0=r*1HuFrn&QeZJDaRmsu6=g7d| z+Q$6}M{~q$(FTNk5mYeFM+zPg{@v~QmL{jEEXlrR0HuAdWmTS*gduGU-Tw!#C1!n! znznJsg-liL4wz>{j+7Jt5~I6X-tP8Cf1Ec#B%o)bKf)SLTTiL?;Vw6Pof0UEwdet4 z)-X?^YMATUq4ZE}8_g8;j}`@57WBmW;O+36Q;br`djn_#fUAc@JqVSy9*kBccZI4y zX;n)^hP%@Cg9q1=(|}MQ(8De@=QO_!dCilN4DoFf{Uo{$Ln_8;t2+liu%#q~$RL;i z1vlU-JM;L;wDP*fpM$}ReN@fq&`KGDgE8!XgD8%tEf0#^%?vFvv|5GZBz0E~pBn)s z0QsEebmd9JBzYE?8)$;L0jYkfc`5|xFT{M&R!BxoN9&dGN!TtDly7MjW zzqCc33cEfpXIE>Y^*TmfDOA;vgU;a+cPcg!rFxCj6J0&?)Wd@+;-f&pAFMHoALV&e zroVkO24Dv-;=e&W!D6#8eR1s3JSH*dU4FT^>AK;Y2q?SGOix2S?ARfTyG&94Eggn; z=rWSs_24y}i=W;@=-L!?;$WdI4rA>q);@ucx|lI;cXF;vEEMD7%C5Y2j#7&6a)`VT zzXy&i;t9y~ThOT;PdZWyLI1vR%M2tD29k!W@rci6VD@W4;CuV=A(#YY|?Zs zbu&9pI~0z)JiunUpQJ-BXg2R|-Lkj{nldWD+kC5l&_l*aq!Lf4=crjJ1^5QaFP{|o zi0=@e2zJ=W*oNom%|&jvQF}GT-zF9k7EUKqvz$<_?~Troy!d9D&5!Ygb=>_%8p}P} zDuTVPuf6xNUMUkr0#W`;YL6u|n4p3IXFZ+w{AMNg?(lTWmH-fYlI3_ALHY;~#KtTW}ffbk`-U1wU#Qs*1L)u(U$@&(dtJLQglxdX( z`73(|FL3)=l@@yYaW=>PkUt+x*IBgb6BZr*`x5}n`RBuXi+*{?Ur+vD%N;|t6>9fq>9NsL4K&t9TRflz z{ospPQ4Q4h7p(!M;a_ked6w~cgtRy%v1D58JpT$gMfE_X zGr?+wBSM%c;j9=!2RDS^l(|qHSbl@`J|PjQ~+p zLd?t|R@%Qo3;`C|hx3lafyL3*f*w{+8T1zoh?R8MPa{qJf5K}1XWN7)9fhyJ;ZzOJ zH;BtQChyd6JyIDOQg+qL(yEV7%AMRwXKAS|7n@IkE3>^b-`>&%hl0 zB-n7P3x+lu=vQFF4^?EYRM-6qf#5;3E_e|omd4rqeQ^vdjS11P^%aUe1;f1{a@RD~ z)+91hqRNWq$huilBa6u+Mvd+E>|cA=ReAxgWfsp z%%S?Jo%+A|S}9JsCT>`H4FoO~Z-KTY>Q2|lU6K*EcVj$!^bNw4U6rCeDD(&&!adu% zLAuF=?p98>>|o^^aJ{D&VYD^_?fkId{^jh$j)eJ3F_Uo^Y1ga24pn$zYY!{0g2k1Y zZbL&qzL~mDy9`}iW#mVPY5|4_R#<7dcLBo4nAy*E=OME42IPSmyg$XN_~CNUDe?E6a*Rra(k6^%XRp`Mw6MSQ3_S!`N<|>ukEgr~5=3sx z1}u88G`{O-scr~vgpMMxvmKMcD`1ltOGTFHdnR&!oS6Ud3j9~eoVfq_KK{Z{I;4As zK@+%>F?p$$g1Slr&3IqK8)kD!WTCx@X<*=0!(fvbR+GFaY|_QG>etz@ELmgNu&l2n zs`D_sI_)g=>Van=7K9gjOmv`hl^(F((nrjnsX%gyczFhQ^46)^YnzR!eW@PiLDWWC|4FgLN?w<7xPUYr z$RzuUl3Y;(HZe-F=Tr>l5=uC-k^@Zhr25}#HixLZ@5IY{VQM1J)ExHI&j=yd-;c)H zV1zeQTd=Q?q(3b{>_<&1F{<6fUJXpLTmDd$F!885Qua;_TWCPAsvPg~MQMq@S(AF> ziOhZMzlPt(y!6EDt#N3#06(WDtKhq=RTrlxP!zOK3EIsl7M)$kZy@^vglA^G!mRu|X1*&mDTKZbUB~NZHN> ztk{w$8{4g>y{CJ`w@*&ceAT#XHeGALzom-NAi$ljKC3UPCunlnE&J~iZBY5qAU1d3 zW5gn$Ebi0r&uRFQ>)ok%rIZt~Y>f*nPD8sI=(_yZI4Op%EH>oQ-n5@ z=$SdS3mx6#GTbutFUH+Y6JuUw{y^LQk@Jlk=i4i+brW_UDIs{vLJOM4203Zl)3L{x zAtrsvOSXnD&U{?yo>Mo-eb9VKY8HNQZFKM9{C3OifqhY*qGi~QihG`+$Hy&^p3?7L zyB}Tvg2)BLI?o80D$4;6i)DdMFJLu2_z2i%01nCRvD_-?nhcTzL#(^e#nn(GK?~3Z2{6O7cs}pZ- zo__s(PoQ-mQGUH==3vNJ`W6kC*V$->M>6$W=3jR1zOR?eY|7zS%+rxHuktJ=B>OZI z9v+jeE5lcCu#`^3#1i<(W;@piq0t1eYx`Jj^?siqs@0#6yvczepe~TuQf}K;& zNMGx1WL@Q{!S;ymtEXg1_5oV=TqV(bz@XJH!b_l2hf1rt{7mh}yo}YCM;_8v#Z?`P zr`n~gL0rqRbQEt%51|ejV$5-u0rylL@s%Alrh_`cq_AmVDc`2K#dL3zwK!`5NBR~I z_t@PPcU%rfUUNWpr&P8$9io~p1R*A9Drm8FH~0m~1{QSV`0UUnoJp~D>*dnr!aHv+N8K)=S>D;saC{Uru4Nk5R2N;Eg(3?Exrn8Xf9d@z00%+8#1tryyQAJc{@TTwDu8fWum0simqL! zIKK!Bi#)OFJM>=6<0(q@MsIdye&AjRrTl=TQKa1tV3acC-JFJ(INgbIbN5;d*eNWw ze=mVINhisW*2da{ZFEYX4P(3>`RM*VsLVpF$C=uSZl;R$nq&vexho8Q57TF|$#N}S zc@(TJ-wihR4@J_xxZO4BPQW9`?{|Jev3#AAZdT5jvIVu?EC#7aM7g-prJn2-fV*

~(zRg)Rx_A7U1Ll*eIXv%>p*)Vds5hWw~64X-4OUO)JPtws&Erf3mQvRvZMR? zN=vv7I8;s_xq5bqL9}h%&j%)}W?>bkNdgB>xIpGz&Fo#dO{4u2+TS2wc@WR7wRi0# zt%RD*V;scRZPfeb46Rpel>7VFM=5u)H8DG{${E~@-COP6jYM-AjJfouBnnSD?Wibj zlI-ewp8}rB1K7^I3XZA7=;b~qk|5xK)Q&jXj7IQMTb^tPiw@jVj2rKSqx*iJ2Us7Q zfgmutov>AWE*w)HdkbhBsb7QlNx(AII~l0itw`!5L|5yJ%O4CfIWF( zFB)oqIJgo=4nSKgd4LH~RPM&ils_12B~=lJRG@&)w&e^xS3W=gX$H?>hFpwl z^8?0`C?6P7ts}QE;amW&Aeg3;m!iVrKzF@=pfHL-_(Xv5oH|p9ePr*>eU_c7Q_tmu7*3dF z8(I{%7l-@tT4+UTJguQ3&idp_P!#2g%)3i|wxe=ghT~1W3gESh zFW!D{kS5RE6^A_bgucUA@WSoS=miEjI#Djw(B2HWj8@vEl+S^J1GNlyoSs4$P;GCC z^Vr#_qUarHtBQ|3nRCV|Q-}Q_bXh~O5BS1*Tgl)*=`qt}( zMBdpWPKc0IYfGLGq9y6gXdkC!iqa>f)`%5C@Ld@W@lrToWqWIpT2%am^(TrK{EYhjFB=)%Q)S_Npivr=zXV3Mb3&G~1kPcpOfsNPK7OK(62nkG!p_b?yL1 zL3}sSWY~v1XVod=X`-zI);P2=QEZ5KnXvyjIZ`@msASPW$xCZo+jb(->P->+Aw!7d z1Uc>0X5=f|tn|c@E9aM%37oWEXTRsDA0SV!_X7iN_W@#)DqD+BWsf*@0yLanl&PVw zmug=I`Q0XaIVru*3e%s$T<^8s)tZVtaKmh7i+IrH{07|NwUoipU@Op zE>{|x$dKjac>3zKL5lWQ`HDD9*TSBC(Z#+9cD3;l=_<^MM)pDg)z-CE4gbQKv*TmT z_K67_gVu^9ga14VQXt>~LE!(q_OH9rCPSS5 zPu>({YkX}Or>b;8l;(s!h|8_Ai6$hXn_j=s$%cWh$u}1T%Mk2!*cxbi>M~f}P%Blt zaG+f4#bagp6NAs7u^_Vo;T_LG;vXJIgB}nwi7=Yezu?)Lm&MvEJM5NSWwdwFs&bng zad-lr0*^TWeNKp085sQFfLA2rMEy@zhW<)mq6HtHy-<*g>Glb7oHbiwT9!>>d12Uy z^C*qK=8FOYVaG-uGdlBpH)-Y_MH0=ghcXiRE_TF5bK$&n{|aTVJcH#-P6JO(_iKEO+1 z-*;3$fAi5bd}fPT>*inzBs^BFPlWkQe(#_mDNNvFk-VfAnlD)x-)yQGA_g#goE1yU*RP3_E_;>xJ@Z#v zGnEOJXTkmip4+%_fGijtT8jO70pzOTn}NlEWApnEzcS#Dzx^zK!~)9dy2XEwFYQTlnP8D(@yoOX4G6&vwg|N@DHpnle_;3@S${|Q zdD<0!xQUKjML#}@5M507-Rnb_Fii(OD?09#ff1+A>N-0#kbyWPS3y6TOTfGk(}19u zUr*5Ty{Nu$3D9N??$oq9o!0clNXj^-){4X-dVqiNF{sAiU&}GW2ozlNKo&+*#8cGr|KC!nEp&`!I*=HlVU^V-7M0JF{tNm2OZ*^=k)3^=I}ftv+9rSO*Rc$~ zXRiw{YjRd;n8ZQQvkdEZ!Q8i0_?_N>j9pVe(N3^#T*(yM8yW5YfNhq3=DUcvzVca} zV{0(7O%fer5}KT*+0D(b`tZKx3{1vS07(gB4YwKblk9_S*iI`=gRoBYk&5ESIrIx?58}ax8*)6vTBfSH zh(FK&O0>o2f5THo)b~`65^4x!c%~ZWerCiM#!429O(Lhc7^)W>VuBhMw{&k)D{;^Q zMUfo;!?^L<#Ne)1`(84=ENZ^Ua7Pq!3>E}@4 zkQD7o$df{z?kqf=lNZ+}%;eS)jiJz|IjgCe54{%y4{~64JTWT}Yz!)#i6-;Cj6t|; z_kDi_#yq4JtXzIp+#9JFW3foYM@|#ZwF1N6A-^gI+xLSF^Q#U;=FC=5R$@*4?53Nj zOj^vC!+nl8uyqa+e-W(&-ahPvGD(FIG%30D+_Mm+eLeLkBZmBMjEE!tFW*D-mu{2@i=ROYAOi7)oHt|+tjx0ACwDt2F`DkJ8%LLJN?COH3KKVcVeZyZi58HXVFh-UNbI&P#JUaYuD6MM&2i>q z%P#v);|IWonLmog=dpF@#+XKux4zyf!Z!`NNH{f^#;LH^xB4b6smoN5{z1b{ z?pe7zmTt&J3Ak1Crsi1Uyj*i#Y-Rb>Bb+xXP>wFzgQII8B`-P&yAWUlcyk7IrkaUp zfoRVnB3ql}4OLepM$}6#drS-SB3mY~wKgZ0?*s`KC3A`JHkq)D3$fM%RXE>Av3a<+ zN)&^P+PW}~oK{IEtWPdt#Mr`v=hnHQ6Z4Spxu8v9#>F$7eLQIyQnx=^89Q>I8c&y3 zTDy0LTZC1lTuq6+Abf|o55i4B5LbhyX<%xh+!`}&56F>tUowd9hFD+4a)OgtDnhO`-xI#32FzU20 zr&=&Xpxkq=?Rjz;v5zaepbPZ*T~*D+&m~`an_VpE%AC>>=5>q`s*>ld^JwGm5>HfE zidqfoT<%)F=%GE*$q_iii?1e5Mq0+-tg5~k>9Fwz-q*qtY_7yi zr0czj&gP_Y8}$qhY<=BUHZyuhD0iRronlyvRm3DZ8fkZi}AkG37Dyw+jan^{yj`O!TDiNdg5 zY1~z?aN8ll;gR5&iX@uD9P;k=!NKD0R}S#MKu!Z@ zKO_1YK$3KY2?x?<@ULdq<3}*5^B4QhKQ+c93ch*$&`PbXOQnk+T2z>N;)C=p*_TcX z?#D&p!k4%cz^JIcP-ur(uGPCR+oTXoMQgAaoD%tVw*~y^d%`8KI8ob!~!8?U|EBu@`^?daKd}esw?q@eP zGY3y6Mc$|^^oW{>jy8}E4*c|xF4ez2G3;F!vD2-aAALL5rAzLI3`uv09(!A|qFbn9 z^G-)O@=`BvUBNS}^UI-8o6Mah{@0o=on)ihPw7-ho(rktHm0#=l(BumfHn%7?;Xd& zpV*EEFR9kkBi~F4;W6;HbjZA9pK9Ht#G?_37^7PI200|Yj`(_Hb{&PQ*|m{HvcVYc z^lhjq4Pv68yBGMS+~jrvduwAlUzC1JY#sW-oAu+`#nAV=K6RuENH~8^cbMTfS{t4 z_W@Vt&*P#QpuXb)N?v+@01G`+hVJdzVYgX+IXt@HXsgeEokoy5aK9g^f&aUtK@)q(b-89?_@I;wEDr zWa!MT-30UElF%zM4aAA5)xX7(SqyFiJ@n1;WdV4kAu|ellQ@T+K{!a8PuJB}4o?BKO?H z;*S3}D*FE&CP1F7DKtO)+6ApbqQg7<=G`CkR18$|kadWTvM{j1?QI`6{W#thhCheK z0?2{QkL18KXWCqht)$bcMiyOwBNy`;5xkM9IGC$e=-@Ml>iw<+Z3cDq7o_pC;{N0B zfP~i>XPP*h;9F#iL~#p1+ Date: Tue, 30 Apr 2024 13:08:05 -0500 Subject: [PATCH 23/31] Added a revision history page. --- docs/revision-history.md | 7 +++++++ mkdocs.yml | 1 + 2 files changed, 8 insertions(+) create mode 100644 docs/revision-history.md diff --git a/docs/revision-history.md b/docs/revision-history.md new file mode 100644 index 0000000..5d204ec --- /dev/null +++ b/docs/revision-history.md @@ -0,0 +1,7 @@ +# Revision History + +| **Rev. #** | **Rev Date** | **Author** | **Description** | +|------------|--------------|------------|-----------------| +| 1.0 | 25-Nov-2019 | H. Dotson, et al. | Initial Release | +| 1.1 | 13-Feb-2021 | H. Dotson, et al. | Update to Rule 197 | + diff --git a/mkdocs.yml b/mkdocs.yml index 0111e21..5fbdb11 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -50,6 +50,7 @@ extra: provider: mike nav: - 'index.md' + - 'revision-history.md' - '1. Introduction': 'section1-introduction.md' - '2. References': 'section2-references.md' - '3. Definitions': 'section3-definitions.md' From 3adb1c9191c277dfb67b8f1316597d65f6c568e8 Mon Sep 17 00:00:00 2001 From: Todd Viegut Date: Tue, 30 Apr 2024 13:58:55 -0500 Subject: [PATCH 24/31] Update mkdocs.yml --- mkdocs.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mkdocs.yml b/mkdocs.yml index 5fbdb11..e80b904 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -23,6 +23,7 @@ plugins: toc_depth: 6 exclude: - index.md + - revision-history.md - with-pdf: author: UCA International Users Group copyright: © Copyright 2021, UCA International Users Group, All rights reserved @@ -49,6 +50,7 @@ extra: version: provider: mike nav: + # If adding a new markdown file that you do not want included with sections numbers exclude it under -enumerate-headings - 'index.md' - 'revision-history.md' - '1. Introduction': 'section1-introduction.md' From d0ffab6f64d8d7f292583fae7d10b0cafd1b815c Mon Sep 17 00:00:00 2001 From: Todd Viegut Date: Wed, 1 May 2024 14:54:54 -0500 Subject: [PATCH 25/31] Update index.md --- docs/index.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index b219ec3..096a0f4 100644 --- a/docs/index.md +++ b/docs/index.md @@ -9,9 +9,11 @@ **13-February-2021** +Click [here](https://github.com/cimug-org/cim-modeling-guide/releases/download/v1.1/CIM_Modeling_Guide_v1.1.pdf) to download the PDF release pf this version of the CIM Modeling Guide. + !!! Note - When referencing an offline PDF version of this guide note that it may not correspond to the latest publicly available guide. To reference the latest visit [https://cim-mg.ucaiug.io](https://cim-mg.ucaiug.io). + When referencing an offline PDF version of this guide note that it may not correspond to the latest publicly available guide. To reference the latest online see [https://cim-mg.ucaiug.io](https://cim-mg.ucaiug.io). **UCA International Users Group** From dc09839f0a55dcf703e9f66a7d98c9fbf017d980 Mon Sep 17 00:00:00 2001 From: Todd Viegut Date: Wed, 1 May 2024 15:08:16 -0500 Subject: [PATCH 26/31] Update index.md --- docs/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index 096a0f4..b3a61c4 100644 --- a/docs/index.md +++ b/docs/index.md @@ -9,7 +9,7 @@ **13-February-2021** -Click [here](https://github.com/cimug-org/cim-modeling-guide/releases/download/v1.1/CIM_Modeling_Guide_v1.1.pdf) to download the PDF release pf this version of the CIM Modeling Guide. +Click [here](https://github.com/cimug-org/cim-modeling-guide/releases/download/v1.1/CIM_Modeling_Guide_v1.1.pdf) to download the PDF release of this version of the CIM Modeling Guide. !!! Note From d15a422f9c2bf8e4f20c5c7bd5d6ce6b35732804 Mon Sep 17 00:00:00 2001 From: Todd Viegut Date: Wed, 1 May 2024 15:39:32 -0500 Subject: [PATCH 27/31] Update index.md --- docs/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index b3a61c4..ad39e6d 100644 --- a/docs/index.md +++ b/docs/index.md @@ -13,7 +13,7 @@ Click [here](https://github.com/cimug-org/cim-modeling-guide/releases/download/v !!! Note - When referencing an offline PDF version of this guide note that it may not correspond to the latest publicly available guide. To reference the latest online see [https://cim-mg.ucaiug.io](https://cim-mg.ucaiug.io). + When referencing an offline PDF version of this guide note that it may not correspond to the latest publicly available guide. To reference the latest visit [https://cim-mg.ucaiug.io](https://cim-mg.ucaiug.io). **UCA International Users Group** From 02752077b61cae4879fa4a0491c35064b6ae2e5b Mon Sep 17 00:00:00 2001 From: Todd Viegut Date: Wed, 1 May 2024 16:34:11 -0500 Subject: [PATCH 28/31] Update index.md --- docs/index.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/index.md b/docs/index.md index ad39e6d..61ddbed 100644 --- a/docs/index.md +++ b/docs/index.md @@ -8,8 +8,7 @@ **13-February-2021** - -Click [here](https://github.com/cimug-org/cim-modeling-guide/releases/download/v1.1/CIM_Modeling_Guide_v1.1.pdf) to download the PDF release of this version of the CIM Modeling Guide. +The PDF release of v1.1 of the CIM Modeling Guide is made available [here](https://cimug.ucaiug.org/Model%20Manager%20Documents/Public/CIM%20Modeling%20Guide_v1.1.pdf) at the UCAIug SharePoint site or [here](https://github.com/cimug-org/cim-modeling-guide/releases/download/v1.1/CIM_Modeling_Guide_v1.1.pdf) at the UCAIug's official Github site. !!! Note From 592bdbea5f4e1e6f084d60508714cd6e0e2cc3d3 Mon Sep 17 00:00:00 2001 From: Todd Viegut Date: Wed, 1 May 2024 16:38:01 -0500 Subject: [PATCH 29/31] Update index.md --- docs/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/index.md b/docs/index.md index 61ddbed..d702d56 100644 --- a/docs/index.md +++ b/docs/index.md @@ -14,6 +14,8 @@ The PDF release of v1.1 of the CIM Modeling Guide is made available [here](https When referencing an offline PDF version of this guide note that it may not correspond to the latest publicly available guide. To reference the latest visit [https://cim-mg.ucaiug.io](https://cim-mg.ucaiug.io). + The PDF release of v1.1 of the CIM Modeling Guide is made available [here](https://cimug.ucaiug.org/Model%20Manager%20Documents/Public/CIM%20Modeling%20Guide_v1.1.pdf) at the UCAIug SharePoint site or [here](https://github.com/cimug-org/cim-modeling-guide/releases/download/v1.1/CIM_Modeling_Guide_v1.1.pdf) at the UCAIug's official Github site. + **UCA International Users Group** From cb2383059e0e3b6c6e529cf70678a73c46ed47c1 Mon Sep 17 00:00:00 2001 From: Todd Viegut Date: Mon, 13 Oct 2025 21:29:50 -0500 Subject: [PATCH 30/31] Update index.md --- docs/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index d702d56..859acec 100644 --- a/docs/index.md +++ b/docs/index.md @@ -8,7 +8,7 @@ **13-February-2021** -The PDF release of v1.1 of the CIM Modeling Guide is made available [here](https://cimug.ucaiug.org/Model%20Manager%20Documents/Public/CIM%20Modeling%20Guide_v1.1.pdf) at the UCAIug SharePoint site or [here](https://github.com/cimug-org/cim-modeling-guide/releases/download/v1.1/CIM_Modeling_Guide_v1.1.pdf) at the UCAIug's official Github site. +The PDF release of v1.1 of the CIM Modeling Guide is made available [here]([https://cimug.ucaiug.org/Model%20Manager%20Documents/Public/CIM%20Modeling%20Guide_v1.1.pdf](https://cimug.org/cimdocs/model-manager-documents/?wpcp_link=JTdCJTIyc291cmNlJTIyJTNBJTIyNjVmNzM0NTkyN2U5OTk1YjliZDI0YzlmOTBjNWJhMWMlMjIlMkMlMjJhY2NvdW50X2lkJTIyJTNBJTIyMTg2MDYxNzEwNTYlMjIlMkMlMjJsYXN0Rm9sZGVyJTIyJTNBJTIyMzA3OTY4MzMwMzc0JTIyJTJDJTIyZm9sZGVyUGF0aCUyMiUzQSUyMld5SXpNRGM1Tmpnek16QXpOelFpWFElM0QlM0QlMjIlMkMlMjJmb2N1c19pZCUyMiUzQSUyMjE3ODA3MjMwMjYzMjElMjIlN0Q%3D)) at the UCAIug SharePoint site. !!! Note From 21e353d421f0c37057d6b15e76c727ce136186ae Mon Sep 17 00:00:00 2001 From: Todd Viegut Date: Mon, 13 Oct 2025 21:36:50 -0500 Subject: [PATCH 31/31] Update index.md --- docs/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index 859acec..6193739 100644 --- a/docs/index.md +++ b/docs/index.md @@ -8,7 +8,7 @@ **13-February-2021** -The PDF release of v1.1 of the CIM Modeling Guide is made available [here]([https://cimug.ucaiug.org/Model%20Manager%20Documents/Public/CIM%20Modeling%20Guide_v1.1.pdf](https://cimug.org/cimdocs/model-manager-documents/?wpcp_link=JTdCJTIyc291cmNlJTIyJTNBJTIyNjVmNzM0NTkyN2U5OTk1YjliZDI0YzlmOTBjNWJhMWMlMjIlMkMlMjJhY2NvdW50X2lkJTIyJTNBJTIyMTg2MDYxNzEwNTYlMjIlMkMlMjJsYXN0Rm9sZGVyJTIyJTNBJTIyMzA3OTY4MzMwMzc0JTIyJTJDJTIyZm9sZGVyUGF0aCUyMiUzQSUyMld5SXpNRGM1Tmpnek16QXpOelFpWFElM0QlM0QlMjIlMkMlMjJmb2N1c19pZCUyMiUzQSUyMjE3ODA3MjMwMjYzMjElMjIlN0Q%3D)) at the UCAIug SharePoint site. +The PDF release of v1.1 of the CIM Modeling Guide is made available [here](https://cimug.org/cimdocs/model-manager-documents/?wpcp_link=JTdCJTIyc291cmNlJTIyJTNBJTIyNjVmNzM0NTkyN2U5OTk1YjliZDI0YzlmOTBjNWJhMWMlMjIlMkMlMjJhY2NvdW50X2lkJTIyJTNBJTIyMTg2MDYxNzEwNTYlMjIlMkMlMjJsYXN0Rm9sZGVyJTIyJTNBJTIyMzA3OTY4MzMwMzc0JTIyJTJDJTIyZm9sZGVyUGF0aCUyMiUzQSUyMld5SXpNRGM1Tmpnek16QXpOelFpWFElM0QlM0QlMjIlMkMlMjJmb2N1c19pZCUyMiUzQSUyMjE3ODA3MjMwMjYzMjElMjIlN0Q%3D) at the UCAIug SharePoint site. !!! Note