Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add documentation #67

Merged
merged 25 commits into from
Apr 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions .github/workflows/documentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ on:
types: [ published ]

jobs:
documenation:
documentation:
runs-on: ubuntu-latest

steps:
Expand All @@ -29,8 +29,9 @@ jobs:
- name: Run doxygen and sphinx
working-directory: ${{ github.workspace }}/docs
run: |
( cat Doxyfile ; echo "PROJECT_NUMBER=${{ github.event.release.tag_name }}" ) | doxygen -
make html SPHINXOPTS=-Drelease=${{ github.event.release.tag_name }}
VERSION=${{ github.event.release.tag_name }}
(cat Doxyfile; echo PROJECT_NUMBER=$VERSION) | doxygen -
make html SPHINXOPTS=-Dversion=$VERSION

- name: Deploy documentation
uses: peaceiris/actions-gh-pages@v3
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ jobs:

- name: Run example
run: |
./build/examples/gammaImage
./build/examples/gammaSimple

- name: Install yagit
run: |
Expand Down Expand Up @@ -164,7 +164,7 @@ jobs:

- name: Run example
run: |
build\examples\${{ env.BUILD_TYPE }}\gammaImage.exe
build\examples\${{ env.BUILD_TYPE }}\gammaSimple.exe

- name: Install yagit
run: |
Expand Down
68 changes: 8 additions & 60 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,69 +1,17 @@
# Yet Another Gamma Index Tool

Library written in C++ for performing efficient comparisons of DICOM images using 2D, 2.5D and 3D gamma index concept.
YAGIT is a C++ library for performing efficient comparisons of two images containing spatial dose distributions.
The library employs 2D, 2.5D, and 3D gamma index concepts.
The gamma index was introduced by Low et al. in 1998 (<https://doi.org/10.1118/1.598248>).

## Installation

Build steps:
1. Creating a directory where the library will be built
```
mkdir build && cd build
```

2. Installing packages and running cmake
* Using Conan package manager
```
conan install ..
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake
```
* Using apt package manager
```
sudo apt-get install libgdcm-dev
cmake .. -DCMAKE_BUILD_TYPE=Release
```
## Documentation

3. Building the library
```
cmake --build . --config Release -j
```
The documentation is available at <https://datamedsci.github.io/yagit/>.

4. Installing the library
* system-wide (you need administrator privileges)
```
sudo cmake --install .
```
* in specific location
```
cmake --install . --prefix <path where you want to install>
```

## Gamma versions

There are 2 implementations of gamma index: sequential and multithreaded.
To select the version you want, set the `GAMMA_VERSION` option to one of the values: `SEQUENTIAL`, `THREADS`, `SIMD`, `THREADS_SIMD`.
```
cmake .. -DGAMMA_VERSION=THREADS
```
The default value of this parameter is `THREADS`.
## Installation

You can also modify SIMD extension used during the compilation of yagit. To do it, set `SIMD_EXTENSION` option to one of
the values: `DEFAULT`, `SSE2`, `SSE3`, `SSSE3`, `SSE4.1`, `SSE4.2`, `AVX`, `AVX2`, `AVX512`, `NATIVE`.
The default value of this parameter is `DEFAULT`, which means that no additional compilation options are added.
Option `NATIVE` adds `-march=native` if compiler supports it.
Instructions on how to install YAGIT are described at <https://datamedsci.github.io/yagit/installation.html>.

## Examples

Example usage of the library is located in `examples` directory.
To build examples, enable `BUILD_EXAMPLES` option during installation.
```
cmake .. -DBUILD_EXAMPLES=ON
```
And to start `gammaImage` example, run
* on Linux
```
./examples/gammaImage
```
* on Windows
```
examples\Release\gammaImage.exe
```
Examples of how to use YAGIT are presented at <https://datamedsci.github.io/yagit/examples.html>.
2 changes: 2 additions & 0 deletions docs/other/diagrams.drawio.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<mxfile host="app.diagrams.net" modified="2024-04-05T12:29:28.533Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:124.0) Gecko/20100101 Firefox/124.0" etag="2346_E3jUxs89uPFhSpN" version="24.2.1" pages="9"><diagram id="GPJWq1qH7rPNwJKBL5hk" name="flow_diagram">7Vhdb9owFP01SNtDK/IF9JGvdpU2qSrS1u7NJJfEmxNnjlNCf/1s4pA4pkAnGEzaE/axfW2fe+/JNR1nHBd3DKXRFxoA6djdoOg4k45tW5bnih+JrCqk65VIyHCgsBqY4VdQYFehOQ4g0yZySgnHqQ76NEnA5xqGGKNLfdqCEn3XFIVgADMfERP9hgMelejA7tf4J8BhVO1s9W7KkRhVk9VNsggFdNmAnGnHGTNKedmKizEQyV7FS7nu9o3RzcEYJPyQBfNf3+fB1e3svvg0APd1MaRPX6+UlYyvqgtDIO6vupTxiIY0QWRaoyNG8yQAabUrevWcz5SmArQE+AM4XylnopxTAUU8JmoUCsyfGu1naeraU71JoSyvO6uqk3C2emp2Gqtkt1627lXrTJaqK9Oc+bCDGltFG2Ih8B3zBuU8yVtjA+WDO6AxiPOICQwI4vhFjyukwjPczKs9KBrKie9wqDr1CyK52mlIQsowj2KZJYj4uTxGEsqrRSAzDMUxkmaFUwsjHHRnLyPMYZaiNXFLkfK6Y98k+wUYh2InPWrU6ap0UYLhVv1lnX2Wo8xGjczrdU/EqGMwapCULXFMUCKTIxPxwlXk74y/wynxbjRGHMtkxK5YajKy0dBtlKjdHoVmoiQk8K7tvC27ua3NEOHAEsRhJCMoM9ywueefe8Y1PPMICxBM+/I6OJbSfuR43hkhB3vU1WPc2xLi9haKTxbinkHkVLaF84J/ikjLOTeTPYPJ+yTNuayAEBcq2yPiBKM5E61Qtj4wFGChxzSRU2gmAzfAGWd4nks0+2gQL6jhOruI4DARbV+wC0wAkkAstH6oBmIcBOWnGzL8iuakUqeU4oSvOfBGHW8ibYmvdVbKl7WWM0Z/wpgSKuxOErrWuAUmpAWdysFWK1NM9w4O0KKjubf/v1zaUwbtLZduLqpcGhj5eqeXQ6dRv3fXAG7/0sqiG5O5+4fHsxPVcy+NqErCziMatVA8N0b2iUatE8+aTBxbNKzqSb9PNeyLUo3q2I3gf0AMCePAsi0febgOr+U5fB9SUW7L8rQ9xxdPNGAYmd/7c7/Atj0A/nIGmY9aM6WSYCj/7pFlEEFZhn2dGJ3Fo38ejxbAe15ZFXZwnKsdHmShV/u4/chznZbvysxVq5p/KrUMOb2Wob6nGyqJMQztfwKKbv3fWDm9/ovRmf4G</diagram><diagram id="Du_h_ZyvDaeMuDVq2Wnb" name="gamma_index_example">7ZxNc5swEIZ/Dcd4ACGDj4njuod0JtMcmp461MiYKSAXy7HdX1/JIIMkUicZsHAhF6PVB7DvriU90dgA02Q/z/z16gsOUGzYZrA3wL1h25ZlQfrBLAduMQtLmEVBYSsNT9EfVBjNwrqNArQRGhKMYxKtReMCpylaEMHmZxneic2WOBbvuvZDpBieFn6sWr9FAVnlVs92S/tnFIUrfmdrPMlrEp83Lt5ks/IDvKuYwMwA0wxjkl8l+ymKmfe4X/J+n16pPT1YhlLylg7PYYiSB2/7EC9/gM388T4g2U0xyosfb4sXLh6WHLgHMrxNA8QGMQ1wt1tFBD2t/QWr3VHRqW1FkpiWLHqpPhS/A8oI2ldMxUPOEU4QyQ60Ca/lDjtI5V3p/5NtVfU9N/qF5uFp7NIt9KLwzDu8ZJ/3EkqDWxZutJTiFIleEV1IXZMdnllhBHnxe7Xufi+UDry0j0ilGy19L8Zn12UnVuB9XtVjg7fZAp2PDOJnISLn26FAyCNV3Yp6sEY8bstQ7JPoRcy+OkGLOzziiL7ZKXjARAweR46J/L2LXtVskQZyHHEg4EoD5Y5RBjrG1+m1Px5yoKWQEwKujL8zIWdVAq4MvyHkjh2AFCneB0PO8qSBwGVDzqkJuXFMnXW3xMfnLGNv/HuLecXN5jhp39IGlrfeHyOA19OrkH2aowngg9Fny8fLq5SwptMEEWN5QzL8C01xjLMy1pdRHEsmP47ClBYXNPIQtd+xSSeic/ltUZFEQcBuUzuLiRnTxkQGXGUiG9fEpSx7Y9MYbFVgeF0Cs0cslpuW15DgXscE91oV3B0ElzN8AvUKPmlPcGtkmoPgcobrFpxvkyuKf0VLRF+R+oX2Tdj2tvvywHby8bTEO7d1bE+fsaLPnhaPVyZfyHZaGtCONBNVmcsmjvsPYfqki9cxXdQ1y+Gki9kfXVx5Kelp1kVdWpS6qGyiN7roXgDY6gJAEePSBBd0kOC+AXT/dwiXe/MsUOMNO0LUYFMQd6wZ4vIg6xXFvdaoA01xXKCZ49p1/zsYQG6D85lurme3i+rH16VwC5xHTmH9irfL7geyp+S49oW9So6aZLn2oHjXWK6tIqkZu/YJdUPvWK6ckPpZrq2iqRIZ9ghNycroRoa2iqZKXXqEpuQvNN268IFrkWGPEHvnWC5QYVgpDOixMLpXAE7dvk5S49IwF3YP5jp1m6EmsFqXYS6PjbNYjTfsCFZzm4K5nmaY69RtyJqIOqPDMPdaow42BXOh7kO56qawQfDjuNZ1cYA2JjTdbM9p9ZgmdIdzmnIS65e81YOaljkQfCXLda/tobobbjDLPWuQXMly7ZKr++y5nyQ+60ddwSBVz6CunJX6oS60FY36eUBXlkY3PYTqKYZeHtCVv9W066Iyql4e0HW6RnWhSsV6eUJXEUb7MkAFRzbTJBTXAmM/Yf5Jf27YhzGzDZr57LQVQ/JwTm8NkqT7MtoNbdPp3wgKQjrqNx/gvy9Sh5DeISQtlj/EkaOb8vdMwOwv</diagram><diagram id="4qmLIUrbY5eXv1VzXQTx" name="wendling_circle">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</diagram><diagram name="wendling_circle_distances" id="F3twALJKrzZBP2fjvgeU">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</diagram><diagram id="Os7iNWjwru7BydZh-8mQ" name="coordinate_system">7ZrZcpswFIafxpf1IIn1MoubdKZp03i65Y4B2VaLERVyvDx9RREYSTghGS+hE93YHMQRfP+RdCQYoIv56oqF2eyGxjgZQCteDdDlAEIAgCN+Csu6sljSMmUklratYUw2WBotaV2QGOdKRU5pwkmmGiOapjjiii1kjC7VahOaqK1m4RQbhnEUJqb1O4n5rLT60NvarzGZzqqWgRuUZ+ZhVVk+ST4LY7psmNBogC4Ypbz8N19d4KSgV3Epr3u/42x9YwynvMsF4xG7Px+TyfxbdAPPJtaPX9nVO+nlIUwW8oHlzfJ1RQCn8VkBUhxFSZjnJBqg85yHjJvmGZ8nwgDEX0YXaYyLti1xZN6sbBnHCn9561eYzjFna1FhuaXuSJKzBvDKxnAScvKgqhZK8ae1u7qFW0rEnUBLRiq0pR8Zp8iyVBc5XbAIy6ualJ9wBHzNkQA3xdxwJP40Hntr+ifiMwSFb4Kq3NeaLs8VtI6EXY4OLCh6E7TkXk0llQ6u88Ie6mqOgHMoQUdfvk7mCzCyzzf3C+vH5hp//vkO2Iaid4akHK+4qlaYkGlaSCn0wUwYHjDjRExUZ/LEnMRxcfn5ckY4HmdhVPhainm5u9aFT7x6VO3qrAdVitU014gG0BIN0NotvEL62VhdA+vH/mGFgfvKsHoG1nEPsdpInZVdZ+icGKxvgP3Qf7AwgCfGGhhYb3uI1dWyyMA7LdbKcQPrWQ+xAi2Xc08crfCl2V1v0zhbz75empfrjg640GqXzkzj3qTrJp0Dn3B0aOmcN+le2usCbQQ98uIJmln+qn/zkAN1iv6p01Fo5vnr/oG1fW1SCOyTgzXz/E0PwbqeCvb0CyjYkumLMRLLgadXeJGjxi2q3iI04LotcNGh4CIz3/9428OFv+3WI+sjaKtF7HHQmu9cLgnDESc0zftHWF9THTN0Z5tP3wH26Nj2rz/8yejdlX3ZNuAaVLcUwA5ODeD76N8uHOozk7mxZzsmJu9QmFp6+Mkx2ZZnYELmLANMTPrib3+YOrwhPXo0OeDVYYKvEJNrD/V3Ri276S2dLnAOhanDfs/RMQXWa8PUZX2eJCTLd81y+w4krbc5LWN3yxSnL7L3N8Xtkc+UhXGRNF/QhIps4jKlaXHVhCRJZRoUL8GLUmQfeVZ+ZjMhqyJI98LXs4deo/ga7UA565lb4e4QKsVqCdZddfbfx/8zcfyg13J02KaNFuyhHnAbG3+S9s5dv5wz+rv+LAzUlkqaGE/CRcJLp+9Jcd+92C1EgT9EzaKt/T2RpTWLrTbQ+csaDwzdZkHPambHTqMQL1w3qmVFhfyRh/Xt1mbq1wpO2+ltRJbtddzkFIfbD/7K6tvvJtHoLw==</diagram><diagram id="ru4UtOQ8VVKgE78shb8h" name="image_planes">7Zpdc6IwFIZ/DZftkAQQL61buzvT7rh1p7u3qUTMTCRMiIr99RtqUDD4UVcpOvXGcAIhvE84H0YLdSfpg8Dx+IkHhFnQDlILfbMgBAC46iuzLHKLrS2hoIG2rQ0D+ka00dbWKQ1IUjpRcs4kjcvGIY8iMpQlGxaCz8unjTgr3zXGITEMgyFmpvUPDeR4afVha23/Tmg4zu8MvPayZ4Lzk/WTJGMc8HnBhO4t1BWcy2VrknYJy9TLdVle19vSu5qYIJE85IKnXgiHrZ4/aMtf7d7vHpKvixtHT26G2VQ/sZ6tXOQSCD6NApKNYlvobj6mkgxiPMx654q6so3lhKkjoJojyliXMy7UcUBGeMrU5O7Muerpz4iQJC2Y9NwfCJ8QKRbqFN2L8qnqldTWh/M1lZY2jQtAchvW6yBcDbyWSjW0Wh9QDqH9yinkcdZUD44ZI4yHAk+UHDERVM2CiM2+/rpjv9Apyd+XswoP7bLwwDOVb1co75xLeWe/8CQKOtnLr46GDCcJHZbFKy/prSKRoOQcTIkKErgVEuQ2QRiWdFZ2KVW66Dv0OVUzWREAsExgRSQfIuFTMST6qqIL2DMQQBsDSSxCIo2B3jGtHvt4cu4XuWPJtfYMdGZy3he5Y8k5W9xnTeTyTKWA7s1gp0KBLNPCjIZRhlLxeQ9HWcCgKi/q6I4JDYLs8so4VWY94pHMIxU8TVAC+QJcrHDdukZYAhXrA+xYCv8VlqBvCL24AqEdUBbaBZ8sc9uQOb0Cmb2N9ew7t75vKo1qVBrB/U7/OjNcaLqSWjNcdEC4/XzlAypUxU159vZEXGRK3Y0YjV/0VclyAGdnuD+ckrO/AISVjuhsdQj4omRSarkNo3QRXqxmSi5o2rvUsF9TtN7uBjALIvv9c6bAU8Eh/wW1xOFsGMxiwYKeXqEz1QyzZielmOV2dZ9C1w/VwJNM3Og1yb6se2j5ntXORh3UnKedghAouzNom6mBV2dq4JhVRgWhLhc82saoiugubP1tw1waTISaBtOsZSrgDHBIpfwAzeddNB+vhabjNoym27AYVswpEj7dllN4O2IcTuLlptr72OfJ44FvBr2qMte/zVPL09dbF5HJnyHhqMg36i10qxzghvAN2X5EG6sWmNLVu/94wGZKQ6Tbtuv0WdI5B+wgHi3diUsEQ7yqEqGqVDuBeJCNX8TbyHe855+zjv039UP7xnSVj/0LTOxBfYm9Olz/y2O5rbP+swy6/wc=</diagram><diagram id="I8uEU4NXEwwy9ipb-RdF" name="position_and_spacing">7Zpdj6IwFIZ/jcnsxSZQEPVydOcj2UyyWSfZ6y50oJlKSamj7q/fIq1CqyOywOgseiE9paf0fXr6hQNntlg/MJhETzRAZACsYD1wvg0AsG17KH4yy0ZZLGkJGQ6kbW+Y4z9IGi1pXeIApaUbOaWE46Rs9GkcI5+XbJAxuirf9kJJudYEhsgwzH1ITOsvHPAot47BaG9/RDiMVM22N8lzFlDdLFuSRjCgq4LJuRs4M0Ypz68W6xkimXpKl7zc/ZHc3YMxFPMqBaLnp8d7mD79pBMPfl/Rx9eH8CvIvbxBspQNlg/LN0oBFAe3mZAiFdNYGKcRXxCRssUlo8s4QFkNlkgFMI22iSwr5Yy+ohkllG0dOdPtd5ej5MzuNdsim4eCEh7ZsgdEF4izjbhhtYcylEJHBR7KxhCBHL+VoULZN8Kdu10NPygWTwIs1ZE9WUR1YwVVuUjpkvlIlipC0By5pxxxyELEDUfiotDsvWnL+AzeTs+7Fm+vKd66o5Z5uz3vOryB1RBvw1HLvIc971q83aZ4645a5u31vKvw3i0nJaZxTdy6H8NRy7hHPe5KuL2GcHsfi3vc466C22kounU/XeNW1fe8T/BuKLx1P53ztnveVXi7DcW37qdz3uftvn0C0xT7W2SQcdN8tCdcOlB7PCyBGNWdn533/bTN87zd1icABzRwtRdWmp/OI/G8fdMnIGdrc51dexA95ahtdFX2QITgJM0my1WEOZon0M9yVgwmZYYwTfKXBi94naGcvmBCCpOmtf28h/cNMY7W7wLe9XlQFm4kW1LoAJ7J3ztOuiTt2TpW2Vxcoo62puPkY2WcGDLeiIAQzizriyGoaCLXlCM4jLMhRgiChFrTTAjsQ3IrMxY4CMgxBBXHoH/ppJ6hrntglAJOS/oCc0908zwAHsl0TJe/xWWYXa6VTdRSMOckDhXYHC5whcyMod1yDGaHZhY1kjbPzNzXzM9BdnUAJmUArjkidRszoMLQ/l/sM4Z6ZNRc9BiOOj7mB+bO8VBEHRnTrjCi1LS6AzepFlKgrZCq8iL1EldLwLmk1RKosmO+RBn1RaftfKyO5uJ9c31RDsbjkqhgaEa5OjPrZuI0F/Pr65PVdcuHK/bQ7KudylrhmLsswonAL8a5PBRvIsSPvFUoqOZYh+YcfVFRQTeR3P/xL18k7P8/6dz9BQ==</diagram><diagram id="hD95C3yb2slNhQ40g6hc" name="3d_index">5ZtRk5owEMc/jTPtQzskIOrj6V2vfWjnZny4xw4DUdICcWI8tZ++UROULM55npAzPtwcLBDgt8tu/ot0/FG+euTRLP3JEpJ1sJesOv59B2OEUFf+21jW2uIpy5TTRNn2hjH9R5TRU9YFTci8sqNgLBN0VjXGrChILCq2iHO2rO42YVn1rLNoSoBhHEcZtD7TRKQ7ax/39vbvhE5TfWYUDnZb8kjvrO5knkYJWx6Y/IeOP+KMid1SvhqRbENPc9kd9+3I1vLCOCnEKQcUd7+en0bPOR/SH93F79+T8Z+/X9QoL1G2UDesLlasNYFlSgUZz6J4s76Ubu74w1TkmVxDcjGaz3bcJ3RF5KmG8Lr0SQgXZHVgUtf5SFhOBF/LXfTWUDHTUaMZLvcuKG3pIX5tjJTbp+XYezJyQcF5AygfgJrwKCfS5AFi8i6FASmj00Iux5IJ4dKwYUFllN2pDTlNks3hwzranC2KZMP23rsQ30GVL+5CvmEN3sboBkfpouuj64cfjG4X0P0kTzXa/n1ume+EFUJleYSayhY9wDuo440b4h2+nlRJkdxtqpNcK1hBqrxPjEiSVEoX5HNw/92a+9c2TrJI0JdqwauDos7wxKi8khJ/mQF1uAdGHM/ZgsdEHXVYoF4ZCCRzEfEpEWCgrY/K2z7fbb3bcltwKbcFdt3Wvy239Q3a4ZluA1nTHKhhtw1u2m1lrnuv28BADbsNQcVQTiaQA5MJWIQsTyYQPg4cuwAclA/bwKHU2wJHrk6XQ9vAofrbAseOAseebeBHBCFyNYdbj3CoCEvgTuZw68ChlitTiosRbj+lQBVWAncxwu0DP0E/Wejc+/6H69zrgQ9DEznU/oTILYcmhhIRUHZI2vu9CzXSzIHabqRpN92I3wJ0Ib+ZA7XuNyhYnfZb15xsnvu8mYmz5Q4ohrr3lvx2dgvU9FvbLVBcI5+RQy1QWIdsTyhq5DNyqAUKC4ht4DXyGTnUAoWZ3zbwGvmMHGqBwpRtGziUz2WEO5nDbUe4DoA64E7mcOvAa17UIodaoEB2204pPpTPJXAXI9w+8Lfp3jiL5nMaX7OEAq9u0ZkSCvyKyByoYQnlv036uuA6s2thNolO/gGQKaPNtlXTroPaYNVycrtAMsPGk9Tvg1xW95aiuc8LoABYXx9VpKfVOjb1WypbWAM463Q8zwBpe26JAG3WlktEAOevV5hnAv9j5ZkATlJdfyCw91XPFN9be2vGarv8BnDSe4WFAg8GAGRztUKu7j+z3Dli/7Wq//Af</diagram><diagram id="62pDtGsv9RNoTwOz8sZi" name="1d_index">5Zvfb5swEMf/mjx2wpiQ8Nhf66Zq0tZsWrU3BE6gIjglTiH762cWm4DPVds04EKeCgcY+JzzvTvOHeHLZXGT+avoGw1JMrKtsBjhq5FtI4TG/E9p2UqLJSyLLA6FbW+YxX+JMFrCuolDsm6cyChNWLxqGgOapiRgDZufZTRvnjanSfOuK39BgGEW+Am0/o5DFu2sU3uyt38h8SKSd0autzuy9OXJ4k3WkR/SvGbC1yN8mVHKdlvL4pIkJT3JZXfd52eOVg+WkZS95oJzlv54vHOLWXr7+JB+Xd+Ru/xMjPLkJxvxwuJh2VYSyKOYkdnKD8r9nLt5hC8itkz4HuKb/nq14z6PC8JvdQGfS96EZIwUNZN4zhtCl4RlW36KPOoKZnLWSIb53gWVLarjl0ZfuH1Rjb0nwzcEnDeAsgGoeeYvCTdZgBh/S6ZASuJFyrcDzoRk3FCyiPksOxcHlnEYlpdf6GhndJOGJdsr60h8vSZfewz5uhq8rdHFz9JF/aOL3Q9G1wF0u56zc5oyoe0ItaURU0DZ0VG2W6I8fllKSRqelzGJ76U0JU3er5yHJGwELMin9v5jzftLW0YSn8VPzTCngyLu8J3G/Ekq/JXuyUnuKLN3TTdZQMRV9bD0wkBAwpmfLQgDA/33UfXah7vNPS23Ocdym2PWbZPTcttUoe0e6DagmupALbttetJuq7TuvW4DA7XsNg+4reu8rIUMAkYewxmErHlrmOHPo3+YQaQwjRkWvbj/mKGym8YMS2Z3eJhtyzRmWDs7/ccMtNn4bIZF9HgAmFVtNo4ZVtGTAWBWi2XjogGr3ukAMKvFrWnM+BWf12vlTpD463Uc9LniAVkIOrDiARWvOlDLFQ+G2cvQXTdW8/RDi1VlIPCNqW3XwYyo6FjcjiFmyi9pCrVM1wFrr0UDE6Bt/6gi22vOTeQZxvq2tsEAdAbjI4UIRxWsrkMETKJ6qDMO/mA687Yv+0P4QdjWJxmz3ht7NWN1Hn7hN/4eBgrb8wDIDmMFdpPcHbv3Px/+WLS4/TU/uyWaPj7gamCxDtDzThfraEHBmOp1PANbqG4h5+6qWy3l0+qc48mROufqQC12zrVuO63OuYOO5DZ1oK7ddlqdc5DbH7rgAahmewsetG6DnfNTctvBCx5Ut7W44EHrNk0rXpp6nUOA2GM4h9D04qWpz5xhsDDN2YacoRL1jjNUd9Oc4bdnNIA+MZRj05xhLYwGsIgH6LPx+QxLaYm+z5yBPhvnDItpNIDVUqBoNq4bsPpFA1hgAqrc9jjz3f3/LO7S7f2/fuLrfw==</diagram></mxfile>
Loading
Loading