Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' into master
authorMartin Quinson <624847+mquinson@users.noreply.github.com>
Thu, 13 Sep 2018 20:00:17 +0000 (22:00 +0200)
committerGitHub <noreply@github.com>
Thu, 13 Sep 2018 20:00:17 +0000 (22:00 +0200)
330 files changed:
.circleci/config.yml
.gitignore
.gitlab-ci.yml
ChangeLog
doc/doxygen/application.doc [deleted file]
doc/doxygen/java.doc
doc/doxygen/models.doc [deleted file]
doc/doxygen/module-smpi.doc
doc/doxygen/options.doc
doc/doxygen/platform.doc
doc/doxygen/scenario.doc [deleted file]
doc/tuto-msg/Makefile [deleted file]
doc/tuto-msg/deployment0.xml [deleted file]
doc/tuto-msg/deployment_general.xml [deleted file]
doc/tuto-msg/masterworker-sol1.c [deleted file]
doc/tuto-msg/masterworker-sol2.c [deleted file]
doc/tuto-msg/masterworker-sol3.c [deleted file]
doc/tuto-msg/masterworker-sol4.c [deleted file]
doc/tuto-msg/masterworker.c [deleted file]
doc/tuto-msg/tuto-msg.doc [deleted file]
docs/Build.sh [new file with mode: 0755]
docs/requirements.txt
docs/source/Doxyfile [new file with mode: 0644]
docs/source/app_s4u.rst [new file with mode: 0644]
docs/source/application.rst [new file with mode: 0644]
docs/source/conf.py
docs/source/images/tuto-masterworkers-question.svg [deleted file]
docs/source/img/eclipseScreenShot.png [moved from docs/source/images/eclipseScreenShot.png with 99% similarity]
docs/source/img/extlink.png [moved from docs/source/images/extlink.png with 100% similarity]
docs/source/img/extlink.svg [moved from docs/source/images/extlink.svg with 99% similarity]
docs/source/img/graphical-toc.svg [new file with mode: 0644]
docs/source/index.rst
docs/source/intro_concepts.rst [moved from doc/doxygen/getting_started.doc with 55% similarity]
docs/source/intro_install.rst [moved from docs/source/installation.rst with 90% similarity]
docs/source/intro_yours.rst [moved from docs/source/install_yours.rst with 92% similarity]
docs/source/introduction.rst [new file with mode: 0644]
docs/source/main_concepts.rst
docs/source/models.rst [new file with mode: 0644]
docs/source/platform.rst [new file with mode: 0644]
docs/source/scenar_config.rst [new file with mode: 0644]
docs/source/scenario.rst [new file with mode: 0644]
docs/source/tuto_s4u.rst [new file with mode: 0644]
docs/source/tuto_s4u/.gitignore [new file with mode: 0644]
docs/source/tuto_s4u/deployment1.xml [new file with mode: 0644]
docs/source/tuto_s4u/deployment2.xml [moved from doc/tuto-msg/deployment1.xml with 86% similarity]
docs/source/tuto_s4u/deployment3.xml [moved from doc/tuto-msg/deployment2.xml with 100% similarity]
docs/source/tuto_s4u/deployment4.xml [moved from doc/tuto-msg/deployment3.xml with 100% similarity]
docs/source/tuto_s4u/draw_gantt.R [new file with mode: 0644]
docs/source/tuto_s4u/img/Rscript-screenshot.png [new file with mode: 0644]
docs/source/tuto_s4u/img/intro.svg [moved from docs/source/images/tuto-masterworkers-intro.svg with 100% similarity]
docs/source/tuto_s4u/img/question.svg [moved from doc/tuto-msg/overview.svg with 100% similarity]
docs/source/tuto_s4u/img/result.png [moved from docs/source/images/tuto-masterworkers-result.png with 100% similarity]
docs/source/tuto_s4u/img/vite-screenshot.png [new file with mode: 0644]
docs/source/tuto_s4u/master-workers-lab1.cpp [new file with mode: 0644]
docs/source/tuto_s4u/master-workers-lab2.cpp [new file with mode: 0644]
docs/source/tuto_s4u/master-workers-lab3.cpp [new file with mode: 0644]
docs/source/tuto_s4u/master-workers-lab4.cpp [new file with mode: 0644]
docs/source/usecase_algorithms.rst [deleted file]
examples/java/app/bittorrent/app-bittorrent.tesh
examples/java/app/centralizedmutex/app-centralizedmutex.tesh
examples/java/app/masterworker/app-masterworker.tesh
examples/java/app/pingpong/app-pingpong.tesh
examples/java/app/tokenring/Main.java
examples/java/app/tokenring/app-tokenring.tesh
examples/java/async/dsend/async-dsend.tesh
examples/java/async/waitall/async-waitall.tesh
examples/java/async/yield/async-yield.tesh
examples/java/cloud/masterworker/cloud-masterworker.tesh
examples/java/cloud/migration/cloud-migration.tesh
examples/java/dht/chord/dht-chord.tesh
examples/java/dht/kademlia/dht-kademlia.tesh
examples/java/energy/consumption/Main.java
examples/java/energy/consumption/energy-consumption.tesh
examples/java/energy/pstate/energy-pstate.tesh
examples/java/energy/vm/energy-vm.tesh
examples/java/io/file/io-file.tesh
examples/java/io/storage/io-storage.tesh
examples/java/process/kill/process-kill.tesh
examples/java/process/migration/process-migration.tesh
examples/java/process/startkilltime/process-startkilltime.tesh
examples/java/process/suspend/process-suspend.tesh
examples/java/task/priority/task-priority.tesh
examples/java/trace/pingpong/trace-pingpong.tesh
examples/msg/CMakeLists.txt
examples/msg/platform-failures/platform-failures.c
examples/msg/platform-failures/platform-failures.tesh
examples/msg/trace-process-migration/trace-process-migration.tesh
examples/s4u/CMakeLists.txt
examples/s4u/app-bittorrent/s4u-peer.cpp
examples/s4u/app-masterworkers/s4u-app-masterworkers-class.cpp
examples/s4u/app-masterworkers/s4u-app-masterworkers-fun.cpp
examples/s4u/app-masterworkers/s4u-app-masterworkers.tesh
examples/s4u/app-masterworkers/s4u-app-masterworkers_d.xml
examples/s4u/async-wait/s4u-async-wait.cpp
examples/s4u/async-waitall/s4u-async-waitall.cpp
examples/s4u/async-waitany/s4u-async-waitany.cpp
examples/s4u/async-waituntil/s4u-async-waituntil.cpp [new file with mode: 0644]
examples/s4u/async-waituntil/s4u-async-waituntil.tesh [new file with mode: 0644]
examples/s4u/async-waituntil/s4u-async-waituntil_d.xml [new file with mode: 0644]
examples/s4u/dht-chord/s4u-dht-chord-node.cpp
examples/s4u/dht-chord/s4u-dht-chord.hpp
examples/s4u/exec-basic/s4u-exec-basic.cpp
examples/s4u/exec-ptask/s4u-exec-ptask.cpp
examples/s4u/platform-failures/s4u-masterworker-failures_d.xml [new file with mode: 0644]
examples/s4u/platform-failures/s4u-platform-failures.cpp
examples/s4u/platform-failures/s4u-platform-failures.tesh
examples/s4u/platform-properties/s4u-platform-properties.cpp
examples/simdag/test/sd_test.cpp
examples/smpi/ampi/ampi.tesh
examples/smpi/energy/energy.tesh
examples/smpi/energy/f77/energy.tesh
examples/smpi/energy/f90/energy.tesh
include/simgrid/Exception.hpp [new file with mode: 0644]
include/simgrid/forward.h
include/simgrid/s4u.hpp
include/simgrid/s4u/Activity.hpp
include/simgrid/s4u/Actor.hpp
include/simgrid/s4u/Comm.hpp
include/simgrid/s4u/ConditionVariable.hpp
include/simgrid/s4u/Exec.hpp
include/simgrid/s4u/Host.hpp
include/simgrid/s4u/Io.hpp
include/simgrid/s4u/Link.hpp
include/simgrid/s4u/Mailbox.hpp
include/simgrid/s4u/Mutex.hpp
include/simgrid/s4u/NetZone.hpp
include/simgrid/s4u/Storage.hpp
include/simgrid/simix.h
include/simgrid/smpi/replay.hpp
include/smpi/smpi_helpers_internal.h
include/xbt/backtrace.h
include/xbt/backtrace.hpp
include/xbt/ex.h
include/xbt/ex.hpp [deleted file]
include/xbt/exception.hpp [deleted file]
include/xbt/functional.hpp
include/xbt/log.hpp
src/bindings/java/JavaContext.cpp
src/bindings/java/JavaContext.hpp
src/bindings/java/jmsg.cpp
src/bindings/java/jmsg_process.cpp
src/bindings/java/jmsg_synchro.cpp
src/bindings/java/jmsg_synchro.h
src/bindings/java/jmsg_vm.cpp
src/bindings/java/org/simgrid/NativeLib.java
src/instr/instr_interface.cpp
src/instr/instr_paje_containers.cpp
src/instr/instr_platform.cpp
src/instr/instr_private.hpp
src/kernel/activity/ConditionVariableImpl.cpp
src/kernel/activity/SleepImpl.cpp
src/kernel/context/Context.cpp
src/kernel/context/Context.hpp
src/kernel/context/ContextBoost.cpp
src/kernel/context/ContextRaw.cpp
src/kernel/context/ContextThread.cpp
src/kernel/context/ContextThread.hpp
src/kernel/context/ContextUnix.cpp
src/msg/instr_msg_task.cpp
src/msg/msg_gos.cpp
src/msg/msg_process.cpp
src/msg/msg_synchro.cpp
src/plugins/vm/VmLiveMigration.cpp
src/s4u/s4u_Activity.cpp
src/s4u/s4u_Actor.cpp
src/s4u/s4u_Barrier.cpp
src/s4u/s4u_Comm.cpp
src/s4u/s4u_ConditionVariable.cpp
src/s4u/s4u_Exec.cpp
src/s4u/s4u_Host.cpp
src/s4u/s4u_Io.cpp
src/s4u/s4u_Mailbox.cpp
src/simix/ActorImpl.cpp
src/simix/ActorImpl.hpp
src/simix/libsmx.cpp
src/simix/smx_context.cpp
src/simix/smx_deployment.cpp
src/simix/smx_environment.cpp
src/simix/smx_global.cpp
src/simix/smx_host.cpp
src/simix/smx_io.cpp
src/simix/smx_network.cpp
src/smpi/colls/barrier/barrier-mpich-smp.cpp [new file with mode: 0644]
src/smpi/colls/smpi_default_selector.cpp
src/smpi/colls/smpi_mpich_selector.cpp
src/smpi/colls/smpi_openmpi_selector.cpp
src/smpi/include/private.hpp
src/smpi/include/smpi_coll.hpp
src/smpi/include/smpi_comm.hpp
src/smpi/internals/smpi_bench.cpp
src/smpi/internals/smpi_global.cpp
src/smpi/mpi/smpi_comm.cpp
src/smpi/mpi/smpi_info.cpp
src/smpi/mpi/smpi_request.cpp
src/surf/HostImpl.cpp
src/surf/HostImpl.hpp
src/surf/cpu_cas01.cpp
src/surf/cpu_ti.cpp
src/surf/ptask_L07.cpp
src/surf/sg_platf.cpp
src/surf/surf_interface.cpp
src/surf/surf_interface.hpp
src/surf/xml/simgrid.dtd
src/surf/xml/simgrid_dtd.c
src/surf/xml/simgrid_dtd.h
src/xbt/backtrace_linux.cpp
src/xbt/config.cpp
src/xbt/cunit.cpp
src/xbt/dict.cpp
src/xbt/dynar.cpp
src/xbt/ex.cpp [deleted file]
src/xbt/exception.cpp
src/xbt/xbt_os_synchro.cpp
src/xbt/xbt_replay.cpp
src/xbt/xbt_str.cpp
teshsuite/java/semaphoregc/semaphoregc.tesh
teshsuite/java/sleephostoff/sleephostoff.tesh
teshsuite/msg/host_on_off_processes/host_on_off_processes.cpp
teshsuite/msg/host_on_off_processes/host_on_off_processes.tesh
teshsuite/msg/task_destroy_cancel/task_destroy_cancel.cpp
teshsuite/msg/task_progress/task_progress.cpp
teshsuite/s4u/CMakeLists.txt
teshsuite/s4u/activity-lifecycle/activity-lifecycle.cpp [new file with mode: 0644]
teshsuite/s4u/activity-lifecycle/activity-lifecycle.tesh [new file with mode: 0644]
teshsuite/s4u/activity-lifecycle/testing_platform.xml [new file with mode: 0644]
teshsuite/s4u/actor-autorestart/actor-autorestart.cpp
teshsuite/s4u/actor-autorestart/actor-autorestart.tesh
teshsuite/s4u/host_on_off_wait/host_on_off_wait.cpp [deleted file]
teshsuite/s4u/host_on_off_wait/host_on_off_wait.tesh [deleted file]
teshsuite/smpi/CMakeLists.txt
teshsuite/smpi/coll-allreduce/coll-allreduce-automatic.tesh
teshsuite/smpi/isp/umpire/CMakeLists.txt
teshsuite/smpi/isp/umpire/any_src-can-deadlock.c
teshsuite/smpi/isp/umpire/any_src-can-deadlock10.c
teshsuite/smpi/isp/umpire/any_src-can-deadlock10_mod.c
teshsuite/smpi/isp/umpire/any_src-can-deadlock11.c
teshsuite/smpi/isp/umpire/any_src-can-deadlock2.c
teshsuite/smpi/isp/umpire/any_src-can-deadlock3.c
teshsuite/smpi/isp/umpire/any_src-can-deadlock4.c
teshsuite/smpi/isp/umpire/any_src-can-deadlock4_mod.c
teshsuite/smpi/isp/umpire/any_src-can-deadlock5.c
teshsuite/smpi/isp/umpire/any_src-can-deadlock5_mod.c
teshsuite/smpi/isp/umpire/any_src-can-deadlock6.c
teshsuite/smpi/isp/umpire/any_src-can-deadlock6_mod.c
teshsuite/smpi/isp/umpire/any_src-can-deadlock7.c
teshsuite/smpi/isp/umpire/any_src-can-deadlock8.c
teshsuite/smpi/isp/umpire/any_src-can-deadlock9.c
teshsuite/smpi/isp/umpire/any_src-deadlock.c
teshsuite/smpi/isp/umpire/any_src-wait-deadlock.c
teshsuite/smpi/isp/umpire/any_src-wait-deadlock2.c
teshsuite/smpi/isp/umpire/any_src-waitall-deadlock.c
teshsuite/smpi/isp/umpire/any_src-waitall-deadlock2.c
teshsuite/smpi/isp/umpire/any_src-waitall-deadlock3.c
teshsuite/smpi/isp/umpire/any_src-waitany-deadlock.c
teshsuite/smpi/isp/umpire/any_src-waitany-deadlock2.c
teshsuite/smpi/isp/umpire/basic-deadlock-cart_create.c
teshsuite/smpi/isp/umpire/basic-deadlock-cart_sub.c
teshsuite/smpi/isp/umpire/basic-deadlock-comm_create.c
teshsuite/smpi/isp/umpire/basic-deadlock-comm_dup.c
teshsuite/smpi/isp/umpire/basic-deadlock-comm_split.c
teshsuite/smpi/isp/umpire/basic-deadlock-graph_create.c
teshsuite/smpi/isp/umpire/basic-deadlock-intercomm_create.c
teshsuite/smpi/isp/umpire/basic-deadlock-intercomm_merge.c
teshsuite/smpi/isp/umpire/basic-deadlock.c
teshsuite/smpi/isp/umpire/bcast-deadlock.c
teshsuite/smpi/isp/umpire/collective-misorder-allreduce.c
teshsuite/smpi/isp/umpire/collective-misorder.c
teshsuite/smpi/isp/umpire/collective-misorder2.c
teshsuite/smpi/isp/umpire/complex-deadlock.c
teshsuite/smpi/isp/umpire/finalize-deadlock.c
teshsuite/smpi/isp/umpire/intercomm_create-deadlock.c
teshsuite/smpi/isp/umpire/intercomm_create-deadlock2.c
teshsuite/smpi/isp/umpire/intercomm_create-deadlock3.c
teshsuite/smpi/isp/umpire/intercomm_create-deadlock4.c
teshsuite/smpi/isp/umpire/intercomm_merge-deadlock.c
teshsuite/smpi/isp/umpire/irecv-deadlock.c
teshsuite/smpi/isp/umpire/irecv-isend-ok.c
teshsuite/smpi/isp/umpire/irecv-isend-ok2.c
teshsuite/smpi/isp/umpire/lost-request-waitall.c
teshsuite/smpi/isp/umpire/lost-request.c
teshsuite/smpi/isp/umpire/lost-request3.c
teshsuite/smpi/isp/umpire/no-error-any_src.c
teshsuite/smpi/isp/umpire/no-error-derived-comms.c
teshsuite/smpi/isp/umpire/no-error-test.c
teshsuite/smpi/isp/umpire/no-error-testall.c
teshsuite/smpi/isp/umpire/no-error-testany.c
teshsuite/smpi/isp/umpire/no-error-wait-any_src.c
teshsuite/smpi/isp/umpire/no-error-wait-any_src2.c
teshsuite/smpi/isp/umpire/no-error-wait-any_src3.c
teshsuite/smpi/isp/umpire/no-error-wait-any_src4.c
teshsuite/smpi/isp/umpire/no-error-wait.c
teshsuite/smpi/isp/umpire/no-error-wait2.c
teshsuite/smpi/isp/umpire/no-error-waitall-any_src.c
teshsuite/smpi/isp/umpire/no-error-waitall-any_src2.c
teshsuite/smpi/isp/umpire/no-error-waitall-any_src3.c
teshsuite/smpi/isp/umpire/no-error-waitall.c
teshsuite/smpi/isp/umpire/no-error-waitany-any_src.c
teshsuite/smpi/isp/umpire/no-error-waitany-any_src2.c
teshsuite/smpi/isp/umpire/no-error-waitany-any_src3.c
teshsuite/smpi/isp/umpire/no-error-waitany.c
teshsuite/smpi/isp/umpire/no-error-waitany2.c
teshsuite/smpi/isp/umpire/no-error.c
teshsuite/smpi/isp/umpire/no-error2.c
teshsuite/smpi/isp/umpire/no-error3-any_src.c
teshsuite/smpi/isp/umpire/no-error3.c
teshsuite/smpi/isp/umpire/no-error4-any_src.c
teshsuite/smpi/isp/umpire/no-error4.c
teshsuite/smpi/isp/umpire/persistent.c
teshsuite/smpi/isp/umpire/persistent2.c
teshsuite/smpi/isp/umpire/persistent3.c
teshsuite/smpi/isp/umpire/persistent4.c
teshsuite/smpi/isp/umpire/send-recv-ok.c
teshsuite/smpi/isp/umpire/sendrecv-deadlock.c
teshsuite/smpi/isp/umpire/wait-deadlock.c
teshsuite/smpi/isp/umpire/waitall-deadlock.c
teshsuite/smpi/isp/umpire/waitany-deadlock.c
teshsuite/smpi/timers/timers.tesh
teshsuite/xbt/mmalloc/mmalloc_test.cpp
tools/cmake/DefinePackages.cmake
tools/cmake/MakeLib.cmake
tools/cmake/Tests.cmake
tools/docker/.gitignore [new file with mode: 0644]
tools/docker/Dockerfile.build-deps [new file with mode: 0644]
tools/docker/Dockerfile.stable [new file with mode: 0644]
tools/docker/Dockerfile.tuto-s4u [new file with mode: 0644]
tools/docker/Dockerfile.unstable [new file with mode: 0644]
tools/docker/Makefile [new file with mode: 0644]
tools/internal/check_dist_archive.exclude
tools/jenkins/project_description.sh
tools/tesh/tesh.py

index b241f7f..768dcda 100644 (file)
@@ -7,7 +7,7 @@
 
 default: &default
   docker:
-    - image: simgrid/build
+    - image: simgrid/build-deps
 
 version: 2.0
 jobs:
@@ -19,5 +19,5 @@ jobs:
           name: Configure, build and test da stuff
           command: |
             mkdir _build && cd _build
-            cmake -Denable_documentation=OFF -Denable_coverage=ON -Denable_java=ON -Denable_model-checking=OFF -Denable_lua=OFF -Denable_compile_optimizations=ON -Denable_smpi=ON -Denable_smpi_MPICH3_testsuite=OFF -Denable_compile_warnings=ON ..
+            cmake -Denable_documentation=OFF -Denable_coverage=ON -Denable_java=ON -Denable_model-checking=OFF -Denable_lua=OFF -Denable_compile_optimizations=OFF -Denable_smpi=ON -Denable_smpi_MPICH3_testsuite=OFF -Denable_compile_warnings=ON ..
             make -j4 && ctest -j4 --output-on-failure
index 5f2d918..85093f4 100644 (file)
@@ -160,6 +160,7 @@ examples/s4u/app-token-ring/s4u-app-token-ring
 examples/s4u/async-wait/s4u-async-wait
 examples/s4u/async-waitall/s4u-async-waitall
 examples/s4u/async-waitany/s4u-async-waitany
+examples/s4u/async-waituntil/s4u-async-waituntil
 examples/s4u/cloud-capping/s4u-cloud-capping
 examples/s4u/cloud-migration/s4u-cloud-migration
 examples/s4u/cloud-simple/s4u-cloud-simple
@@ -176,6 +177,7 @@ examples/s4u/exec-dvfs/s4u-exec-dvfs
 examples/s4u/exec-monitor/s4u-exec-monitor
 examples/s4u/exec-ptask/s4u-exec-ptask
 examples/s4u/exec-remote/s4u-exec-remote
+examples/s4u/io-async/s4u-io-async
 examples/s4u/io-file-remote/s4u-io-file-remote
 examples/s4u/io-file-system/s4u-io-file-system
 examples/s4u/io-storage-raw/s4u-io-storage-raw
@@ -214,6 +216,7 @@ examples/smpi/NAS/is
 examples/smpi/replay_multiple/deployment.xml
 examples/smpi/replay_multiple/replay_multiple
 examples/smpi/replay_multiple_manual_deploy/replay_multiple_manual
+examples/smpi/replay_multiple_manual_deploy/workload_mixed2_same_resources
 examples/smpi/replay/one_trace
 examples/smpi/replay/smpi_replay
 examples/smpi/smpi_msg_masterslave/masterslave_mailbox_smpi
@@ -266,10 +269,10 @@ teshsuite/msg/trace_integration/trace_integration
 teshsuite/s4u/actor/actor
 teshsuite/s4u/actor-autorestart/actor-autorestart
 teshsuite/s4u/actor-migration/actor-migration
+teshsuite/s4u/activity-lifecycle/activity-lifecycle
 teshsuite/s4u/cloud-interrupt-migration/cloud-interrupt-migration
 teshsuite/s4u/comm-pt2pt/comm-pt2pt
 teshsuite/s4u/concurrent_rw/concurrent_rw
-teshsuite/s4u/host_on_off_wait/host_on_off_wait
 teshsuite/s4u/listen_async/listen_async
 teshsuite/s4u/pid/pid
 teshsuite/s4u/storage_client_server/storage_client_server
index 3ef1530..fc8df80 100644 (file)
@@ -1,23 +1,18 @@
-image: debian:testing-slim
+image: simgrid/build-deps
 
-.build: &build
+pages:
   script:
-  - apt-get update
-  - apt-get install -y python3-pip doxygen libboost-all-dev libboost-dev fig2dev
   - pip3 install --requirement docs/requirements.txt 
   - cd docs
-  - sphinx-build -M html source/ build/
+  - ./Build.sh
   - mv build/html ../public
   artifacts:
     paths:
     - public
-
-pages:
-  <<: *build
   only:
   - master
 
-test:
-  <<: *build
-  except:
-  - master
+ctest:
+  script:
+  - cmake -Denable_model-checking=OFF -Denable_documentation=OFF -Denable_coverage=ON -Denable_java=ON -Denable_lua=OFF -Denable_compile_optimizations=ON -Denable_smpi=ON -Denable_smpi_MPICH3_testsuite=ON -Denable_compile_warnings=ON .
+  - make VERBOSE=1 && ctest --output-on-failure
index 39946e8..3438268 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -8,6 +8,11 @@ S4U new features:
        activity.
      - read_async(sg_size_t) and write_async(sg_size_t) which are wrappers on 
        io_init() + start()
+ - Fully reimplement auto_restart mechanism that was utterly broken 
+   (fix #22, #131 and #281 that were all very related)
+ - When creating an actor from a function and its parameters,
+   move-only parameters are not allowed anymore, as it would prevent
+   the actor to be restartable if its parameters are consumed on run.
 
 Tracing:
  - Rename 'power' and 'power_used' variables into 'speed' and 'speed_used'
@@ -18,15 +23,24 @@ XBT:
  - Remove portability wrapper to condition variables
  - Remove xbt_os_thread_yield()
 
+Java:
+ - Due to an internal bug, Msg.run() must now be your last line.
+   We hope to fix it in a future release, and we are sorry for the inconvenience.
+
 Fixed bugs:
+ - #22: Process autorestart seem to only work with CAS01 cpus 
  - #93: simgrid should not eat --help
+ - #131: Java : autostart does not work
  - #264: Add ptask L07 resource tracing
  - #271: Dynamic and manual replay of SMPI traces
  - #279: Breakpoints option uses time deltas instead of absolute time
+ - #281: Daemonized actor no longer daemonized after an auto-restart
  - #282: TIT convertor erase traces when using absolute path in the trace list file
  - #285: segfault when a s4u actor kills itself with msg process tracing activated
  - #286: Pajé traces are not exposing the number of cores
  - #287: Command-line parsing should stop when encountering '--'
+ - #288: MPI_Init(NULL, NULL)
+ - #296: DTD too permissive
 
 ----------------------------------------------------------------------------
 
diff --git a/doc/doxygen/application.doc b/doc/doxygen/application.doc
deleted file mode 100644 (file)
index 1bfb58a..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/** 
-@page application Describing your application
-
-TBD
-
-* Main concepts
-
-  - *Actor* (or process in legacy interfaces of SimGrid)
-  
-  - *Activities*: resource usage that applications do. This is what
-    takes time.
-    
-    Any given actor can do at most one foreground activity, while it
-    can also do several non-blocking activities in the background.
-    
-  - These activities take place on *Resources* (links, compute
-    machine, disks). Resources should be described (created) in the
-    Virtual Platform (link), but your application have many other ways
-    to interact with the resource.  
-
-  - The resources are arranged in a hierarchy of *Networking Zones*,
-    with which the application can also interact. The netzone knows the
-    networking path between one resource to another.
-
-Speak of mailboxes here? Where if not?
-
-* Interfaces to describe applications
-
-- Simple C++ interface: S4U that is currently designed
-- Simple Legacy C interfaces: MSG and SimDag, with comparison.
-- Simple Java Interface: Currently MSG-based, but will be replaced with S4U stuff when ready
-- MPI applications
-- Event-oriented, and trace-based. The old documentation of the
-  obsolete MSG module was removed in
-  https://github.com/simgrid/simgrid/commit/e05361c201fb95d2b7605e59001cd0a49a489739
-
-- Arbitrary applications: Simterpose and Remote SimGrid (they are currently far from being usable).
-- State our goal of BYOS (build your own simulator), even if it's just a neat name for now
-
-*/
\ No newline at end of file
index 81c8027..d4c273a 100644 (file)
@@ -61,6 +61,15 @@ $ export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$SIMGRID_ROOT/lib
 Add these lines to your `~/.bashrc` file or equivalent to make these
 settings permanent even after a reboot.
 
+** **pthread_create failed**
+
+You reached the amount of threads that can be run on your system. Try
+increasing the thread limits of your operating system.
+
+If you manage to get it working, you could also switch to the Java
+co-routines (see @ref bindings_java_coro_install). Unfortunately,
+nobody used them since a few years, so they may well be broken by now.
+
 ** **Other errors**
 
 When using jMSG, your program can crash for 3 main reasons:
diff --git a/doc/doxygen/models.doc b/doc/doxygen/models.doc
deleted file mode 100644 (file)
index caed4c6..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-/** 
-@page models SimGrid Models
-
-TBD
-
- - Main existing models (contention, cste, LM07)
- - Main concepts (Routing, LMM) + link to the papers
- - How to switch on the command line
-
-*/
\ No newline at end of file
index ede94c1..cdaa5f2 100644 (file)
@@ -126,8 +126,8 @@ of the targeted MPI implementations.
 You can switch the automatic selector through the
 \c smpi/coll-selector configuration item. Possible values:
 
- - <b>ompi</b>: default selection logic of OpenMPI (version 1.7)
- - <b>mpich</b>: default selection logic of MPICH (version 3.0.4)
+ - <b>ompi</b>: default selection logic of OpenMPI (version 3.1.2)
+ - <b>mpich</b>: default selection logic of MPICH (version 3.3b)
  - <b>mvapich2</b>: selection logic of MVAPICH2 (version 1.9) tuned
    on the Stampede cluster   
  - <b>impi</b>: preliminary version of an Intel MPI selector (version
@@ -231,6 +231,7 @@ which will iterate over all implemented versions and output the best
  - ompi_tree: recursive doubling type algorithm, with tree structure
  - ompi_doublering: double ring algorithm
  - mvapich2_pair: pairwise algorithm
+ - mpich_smp: barrier intra-node, then inter-node
 
 #### MPI_Scatter
 
index 209de0b..34bec89 100644 (file)
@@ -1248,28 +1248,33 @@ at least one huge page:
 Then, you can pass the option --cfg=smpi/shared-malloc-hugepage:/home/huge
 to smpirun to actually activate the huge page support in shared mallocs.
 
-@subsection options_model_smpi_wtime smpi/wtime: Inject constant times for calls to MPI_Wtime
+@subsection options_model_smpi_wtime smpi/wtime: Inject constant times for calls to MPI_Wtime, gettimeofday and clock_gettime
 
-@b Default value: 0
-
-By setting this option, you can control the amount of time a process sleeps
-when MPI_Wtime() is called; this is important, because SimGrid normally only
-advances the time while communication is happening and thus,
-MPI_Wtime will not add to the time, resulting in a deadlock if used as a
-break-condition.
+@b Default value: 10 ns
 
-Here is an example:
+This option controls the amount of (simulated) time spent in calls to
+MPI_Wtime(), gettimeofday() and clock_gettime(). If you set this value
+to 0, the simulated clock is not advanced in these calls, which leads
+to issue if your application contains such a loop:
 
 @code{.unparsed}
     while(MPI_Wtime() < some_time_bound) {
-        ...
+        /* some tests, with no communication nor computation */
     }
 @endcode
 
-If the time is never advanced, this loop will clearly never end as MPI_Wtime()
-always returns the same value. Hence, pass a (small) value to the smpi/wtime
-option to force a call to MPI_Wtime to advance the time as well.
-
+When the option smpi/wtime is set to 0, the time advances only on
+communications and computations, so the previous code results in an
+infinite loop: the current [simulated] time will never reach @c
+some_time_bound.  This infinite loop is avoided when that option is
+set to a small amount, as it is by default since SimGrid v3.21.
+
+Note that if your application does not contain any loop depending on
+the current time only, then setting this option to a non-zero value
+will slow down your simulations by a tiny bit: the simulation loop has
+to be broken and reset each time your code ask for the current time.
+If the simulation speed really matters to you, you can avoid this
+extra delay by setting smpi/wtime to 0.
 
 @section options_generic Configuring other aspects of SimGrid
 
index 3ada216..c4e0ea4 100644 (file)
@@ -128,7 +128,6 @@ Attribute         | Values                                 | Description
 id                | String (mandatory)                     | The identifier of the host. facilitates referring to this AS.
 speed             | double (mandatory)                     | Computational power of every core of this host in FLOPS (must be positive)
 core              | int (defaults to 1)                    | Number of cores (see @ref howto_multicore)
-state             | optionally "OFF"                       | If set to OFF, the host is initially turned off.
 availability_file | File name (optional) | (Relative or absolute) filename to use as input; must contain availability traces for this host. The syntax of this file is defined below.
 state_file        | File name (optional) |  File to use as a state profile (see @ref howto_churn)
 coordinates       | String (mandatory when using Vivaldi routing) | The coordinates of this host (see @ref pf_P2P_tags).
@@ -310,8 +309,7 @@ lat             | yes       | int    | Latency for the links between nodes and b
 
 @note
     Please note that as of now, it is impossible to change attributes such as,
-    amount of cores (always set to 1), the initial state of hosts/links
-    (always set to ON), the sharing policy of the links (always set to @ref pf_sharing_policy_splitduplex "SPLITDUPLEX").
+    amount of cores (always set to 1), the sharing policy of the links (always set to @ref pf_sharing_policy_splitduplex "SPLITDUPLEX").
 
 #### Example ####
 
@@ -432,7 +430,6 @@ id              | yes       | string | The identifier of the link to be used whe
 bandwidth       | yes       | int    | Maximum bandwidth for this link, given in bytes/s
 latency         | no        | double (default: 0.0) | Latency for this link.
 sharing_policy  | no        | @ref sharing_policy_shared "SHARED"@|@ref pf_sharing_policy_fatpipe "FATPIPE"@|@ref pf_sharing_policy_splitduplex "SPLITDUPLEX" (default: SHARED) | Sharing policy for the link.
-state           | no        | ON@|OFF (default: ON) | Allows you to to turn this link on or off (working / not working)
 bandwidth_file  | no        | string | Allows you to use a file as input for bandwidth.
 latency_file    | no        | string | Allows you to use a file as input for latency.
 state_file      | no        | string | Allows you to use a file as input for states.
diff --git a/doc/doxygen/scenario.doc b/doc/doxygen/scenario.doc
deleted file mode 100644 (file)
index 7fd0d5e..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
-@page scenario Describing the experimental scenario
-
-TBD
-
-Main concepts:
-
- - Deployment file
- - Availability and state profiles
- - Reproducible random number generation
- - Command line options, in particular on the model switching
-
-*/
\ No newline at end of file
diff --git a/doc/tuto-msg/Makefile b/doc/tuto-msg/Makefile
deleted file mode 100644 (file)
index fbac5c3..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-# This Makefile is specifically tailored for the binaries of this tutorial.
-
-# For your own project, you should use the one provided at 
-# http://simgrid.gforge.inria.fr/simgrid/latest/doc/install_yours.html
-
-# Some configuration
-SIMGRID_INSTALL_PATH ?= ../.. # Where you installed simgrid 
-CC ?= gcc                     # Your compiler (on Mac, use clang instead)
-
-# No change needed bellow for this tutorial.
-############################################################################
-
-all: masterworker
-
-WARNINGS = -Wall -Wextra -Wshadow -Wcast-align -Waggregate-return -Wmissing-prototypes \
-          -Wmissing-declarations -Wmissing-prototypes -Wpointer-arith -Wwrite-strings \
-          -Wmissing-noreturn -Wredundant-decls \
-         -Wno-nested-externs  -Wno-strict-prototypes -Wno-unused-parameter
-WARNINGS += -Werror # Comment that line to not be in paranoid mode
-
-# CFLAGS = -std=gnu99 -g -O0 $(WARNINGS) $(EXTRA_CFLAGS) # Use this line to make debugging easier
-CFLAGS = -std=gnu99 -g -O2 $(WARNINGS) $(EXTRA_CFLAGS) # Use this line to get better performance
-
-# No change should be mandated past that line
-#############################################
-# The following are implicit rules, used by default to actually build
-# the targets for which you listed the dependencies above.
-
-.SUFFIXES: .c
-# The blanks before the $(CC) must be a Tab char, not spaces
-.c:
-       $(CC) -I$(strip $(SIMGRID_INSTALL_PATH))/include -L$(strip $(SIMGRID_INSTALL_PATH))/lib/ $(CFLAGS) $< -lsimgrid -o $@
-
-clean:
-       rm -f *.o *~ masterworker masterworker-sol1 masterworker-sol2 masterworker-sol3 masterworker-sol4
-.PHONY: clean
-
diff --git a/doc/tuto-msg/deployment0.xml b/doc/tuto-msg/deployment0.xml
deleted file mode 100644 (file)
index a9fe036..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
-<platform version="4.1">
-  <!-- The master actor (with some arguments) -->
-  <actor host="Tremblay" function="master">
-     <argument value="20"/>       <!-- Number of tasks -->
-     <argument value="50000000"/>  <!-- Computation size of tasks -->
-     <argument value="1000000"/>   <!-- Communication size of tasks -->
-     <argument value="Jupiter"/>  <!-- First worker -->
-     <argument value="Fafard"/>   <!-- Second worker -->
-     <argument value="Ginette"/>  <!-- Third worker -->
-     <argument value="Bourassa"/> <!-- Last worker -->
-     <argument value="Tremblay"/> <!-- Me! I can work too! -->
-  </actor>
-  <!-- The worker actor (with no argument) -->
-  <actor host="Tremblay" function="worker" on_failure="RESTART"/>
-  <actor host="Jupiter" function="worker" on_failure="RESTART"/>
-  <actor host="Fafard" function="worker" on_failure="RESTART"/>
-  <actor host="Ginette" function="worker" on_failure="RESTART"/>
-  <actor host="Bourassa" function="worker" on_failure="RESTART"/>
-</platform>
diff --git a/doc/tuto-msg/deployment_general.xml b/doc/tuto-msg/deployment_general.xml
deleted file mode 100644 (file)
index adbb7cb..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
-<platform version="4.1">
-  <actor host="griffon-1.nancy.grid5000.fr" function="master"> <!-- griffon-1.nancy.grid5000.fr peer-0 cb1-1.dc1.acloud.com-->
-     <argument value="3600"/>      <!-- Simulation timeout -->
-     <argument value="50000000"/>  <!-- Computation size of tasks -->
-     <argument value="100000"/>   <!-- Communication size of tasks -->
-  </actor>
-</platform>
diff --git a/doc/tuto-msg/masterworker-sol1.c b/doc/tuto-msg/masterworker-sol1.c
deleted file mode 100644 (file)
index 180c61e..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-/* Copyright (c) 2007-2018. The SimGrid Team. All rights reserved.          */
-
-/* This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. */
-
-#include "simgrid/msg.h"
-
-#include <stdio.h> /* sprintf */
-
-XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test, "Messages specific for this msg example");
-
-#define FINALIZE ((void*)221297) /* a magic number to tell people to stop working */
-
-static char* build_channel_name(char* buffer, const char* sender, const char* receiver)
-{
-  strcpy(buffer, sender);
-  strcat(buffer, ":");
-  strcat(buffer, receiver);
-  return buffer;
-}
-
-/* forward definitions */
-static int master(int argc, char* argv[]);
-static int worker(int argc, char* argv[]);
-
-static int master(int argc, char* argv[])
-{
-  msg_host_t host_self    = MSG_host_self();
-  const char* master_name = MSG_host_get_name(host_self);
-  char channel[1024];
-
-  long number_of_tasks = xbt_str_parse_int(argv[1], "Invalid amount of tasks: %s");       /** - Number of tasks      */
-  double comp_size     = xbt_str_parse_double(argv[2], "Invalid computational size: %s"); /** - Task compute cost    */
-  double comm_size = xbt_str_parse_double(argv[3], "Invalid communication size: %s"); /** - Task communication size */
-
-  /* Create the tasks in advance */
-  msg_task_t* todo = xbt_new0(msg_task_t, number_of_tasks);
-
-  for (int i = 0; i < number_of_tasks; i++) {
-    char sprintf_buffer[64];
-    sprintf(sprintf_buffer, "Task_%d", i);
-    todo[i] = MSG_task_create(sprintf_buffer, comp_size, comm_size, NULL);
-  }
-
-  /* Get the info about the worker processes (directly from SimGrid) */
-  int worker_count    = MSG_get_host_number();
-  msg_host_t* workers = xbt_dynar_to_array(MSG_hosts_as_dynar());
-
-  for (int i = 0; i < worker_count; i++)
-    if (host_self == workers[i]) {
-      workers[i] = workers[worker_count - 1];
-      worker_count--;
-      break;
-    }
-
-  for (int i = 0; i < worker_count; i++)
-    MSG_process_create("worker", worker, (void*)master_name, workers[i]);
-  XBT_INFO("Got %d workers and %ld tasks to process", worker_count, number_of_tasks);
-
-  /* Dispatch the tasks */
-  for (int i = 0; i < number_of_tasks; i++) {
-    build_channel_name(channel, master_name, MSG_host_get_name(workers[i % worker_count]));
-
-    XBT_INFO("Sending '%s' to channel '%s'", todo[i]->name, channel);
-
-    MSG_task_send(todo[i], channel);
-    XBT_INFO("Sent");
-  }
-
-  XBT_INFO("All tasks have been dispatched. Let's tell everybody the computation is over.");
-  for (int i = 0; i < worker_count; i++) {
-    msg_task_t finalize = MSG_task_create("finalize", 0, 0, FINALIZE);
-    MSG_task_send(finalize, build_channel_name(channel, master_name, MSG_host_get_name(workers[i % worker_count])));
-  }
-
-  XBT_INFO("Goodbye now!");
-  free(workers);
-  free(todo);
-  return 0;
-} /* end_of_master */
-
-/** Receiver function  */
-static int worker(int argc, char* argv[])
-{
-  char channel[1024];
-
-  build_channel_name(channel, MSG_process_get_data(MSG_process_self()), MSG_host_get_name(MSG_host_self()));
-
-  XBT_INFO("Receiving on channel '%s'", channel);
-
-  while (1) {
-    msg_task_t task = NULL;
-    int res         = MSG_task_receive(&(task), channel);
-    xbt_assert(res == MSG_OK, "MSG_task_receive failed");
-
-    XBT_INFO("Received '%s'", MSG_task_get_name(task));
-    if (!strcmp(MSG_task_get_name(task), "finalize")) {
-      MSG_task_destroy(task);
-      break;
-    }
-
-    XBT_INFO("Processing '%s'", MSG_task_get_name(task));
-    MSG_task_execute(task);
-    XBT_INFO("'%s' done", MSG_task_get_name(task));
-    MSG_task_destroy(task);
-  }
-  XBT_INFO("I'm done. See you!");
-  return 0;
-} /* end_of_worker */
-
-/** Main function */
-int main(int argc, char* argv[])
-{
-  MSG_init(&argc, argv);
-  xbt_assert(argc > 2,
-             "Usage: %s platform_file deployment_file\n"
-             "\tExample: %s msg_platform.xml msg_deployment.xml\n",
-             argv[0], argv[0]);
-
-  /*  Create a simulated platform */
-  MSG_create_environment(argv[1]);
-
-  /*   Application deployment */
-  MSG_function_register("master", master);
-  MSG_function_register("worker", worker);
-  MSG_launch_application(argv[2]);
-
-  /* Run the simulation */
-  msg_error_t res = MSG_main();
-
-  XBT_INFO("Simulation time %g", MSG_get_clock());
-  return (res != MSG_OK);
-}
diff --git a/doc/tuto-msg/masterworker-sol2.c b/doc/tuto-msg/masterworker-sol2.c
deleted file mode 100644 (file)
index 16d44b0..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-/* Copyright (c) 2007-2018. The SimGrid Team. All rights reserved.          */
-
-/* This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. */
-
-#include "simgrid/msg.h"
-
-#include <stdio.h> /* sprintf */
-
-XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test, "Messages specific for this msg example");
-
-#define FINALIZE ((void*)221297) /* a magic number to tell people to stop working */
-
-static char* build_channel_name(char* buffer, const char* sender, const char* receiver)
-{
-  strcpy(buffer, sender);
-  strcat(buffer, ":");
-  strcat(buffer, receiver);
-  return buffer;
-}
-
-/* forward definitions */
-static int master(int argc, char* argv[]);
-static int worker(int argc, char* argv[]);
-
-static int master(int argc, char* argv[])
-{
-  msg_host_t host_self = MSG_host_self();
-  char* master_name    = (char*)MSG_host_get_name(host_self);
-  char channel[1024];
-
-  double timeout   = xbt_str_parse_double(argv[1], "Invalid timeout: %s");            /** - timeout      */
-  double comp_size = xbt_str_parse_double(argv[2], "Invalid computational size: %s"); /** - Task compute cost    */
-  double comm_size = xbt_str_parse_double(argv[3], "Invalid communication size: %s"); /** - Task communication size */
-
-  /* Get the info about the worker processes (directly from SimGrid) */
-  int worker_count    = MSG_get_host_number();
-  msg_host_t* workers = xbt_dynar_to_array(MSG_hosts_as_dynar());
-
-  for (int i = 0; i < worker_count; i++) // Remove my host from the list
-    if (host_self == workers[i]) {
-      workers[i] = workers[worker_count - 1];
-      worker_count--;
-      break;
-    }
-
-  for (int i = 0; i < worker_count; i++)
-    MSG_process_create("worker", worker, (void*)master_name, workers[i]);
-  XBT_INFO("Got %d workers and will send tasks for %g seconds", worker_count, timeout);
-
-  /* Dispatch the tasks */
-  int task_num = 0;
-  while (1) {
-    if (MSG_get_clock() > timeout)
-      break;
-
-    char sprintf_buffer[64];
-    sprintf(sprintf_buffer, "Task_%d", task_num);
-    msg_task_t task = MSG_task_create(sprintf_buffer, comp_size, comm_size, NULL);
-
-    build_channel_name(channel, master_name, MSG_host_get_name(workers[task_num % worker_count]));
-
-    XBT_DEBUG("Sending '%s' to channel '%s'", task->name, channel);
-    MSG_task_send(task, channel);
-    XBT_DEBUG("Sent");
-    task_num++;
-  }
-
-  XBT_DEBUG("All tasks have been dispatched. Let's tell everybody the computation is over.");
-  for (int i = 0; i < worker_count; i++) {
-    msg_task_t finalize = MSG_task_create("finalize", 0, 0, FINALIZE);
-    MSG_task_send(finalize, build_channel_name(channel, master_name, MSG_host_get_name(workers[i % worker_count])));
-  }
-
-  XBT_DEBUG("Sent %d tasks in total!", task_num);
-  free(workers);
-  return 0;
-}
-
-/** Worker function  */
-static int worker(int argc, char* argv[])
-{
-  char channel[1024];
-
-  build_channel_name(channel, MSG_process_get_data(MSG_process_self()), MSG_host_get_name(MSG_host_self()));
-
-  XBT_DEBUG("Receiving on channel '%s'", channel);
-
-  while (1) {
-    msg_task_t task = NULL;
-    int res         = MSG_task_receive(&(task), channel);
-    xbt_assert(res == MSG_OK, "MSG_task_receive failed");
-
-    XBT_DEBUG("Received '%s'", MSG_task_get_name(task));
-    if (!strcmp(MSG_task_get_name(task), "finalize")) {
-      MSG_task_destroy(task);
-      break;
-    }
-
-    XBT_DEBUG("Processing '%s'", MSG_task_get_name(task));
-    MSG_task_execute(task);
-    XBT_DEBUG("'%s' done", MSG_task_get_name(task));
-    MSG_task_destroy(task);
-  }
-  XBT_DEBUG("I'm done. See you!");
-  return 0;
-}
-
-/** Main function */
-int main(int argc, char* argv[])
-{
-  MSG_init(&argc, argv);
-  xbt_assert(argc > 2,
-             "Usage: %s platform_file deployment_file\n"
-             "\tExample: %s msg_platform.xml msg_deployment.xml\n",
-             argv[0], argv[0]);
-
-  /*  Create a simulated platform */
-  MSG_create_environment(argv[1]);
-
-  /*   Application deployment */
-  MSG_function_register("master", master);
-  MSG_function_register("worker", worker);
-  MSG_launch_application(argv[2]);
-
-  /* Run the simulation */
-  msg_error_t res = MSG_main();
-
-  XBT_INFO("Simulation time %g", MSG_get_clock());
-  return (res != MSG_OK);
-}
diff --git a/doc/tuto-msg/masterworker-sol3.c b/doc/tuto-msg/masterworker-sol3.c
deleted file mode 100644 (file)
index 2c187ec..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-/* Copyright (c) 2007-2018. The SimGrid Team. All rights reserved.          */
-
-/* This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. */
-
-#include "simgrid/msg.h"
-
-#include <stdio.h> /* sprintf */
-
-XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test, "Messages specific for this msg example");
-
-#define FINALIZE ((void*)221297) /* a magic number to tell people to stop working */
-
-static char* build_channel_name(char* buffer, const char* sender, const char* receiver)
-{
-  strcpy(buffer, sender);
-  strcat(buffer, ":");
-  strcat(buffer, receiver);
-  return buffer;
-}
-
-/* forward definitions */
-static int master(int argc, char* argv[]);
-static int worker(int argc, char* argv[]);
-
-static int master(int argc, char* argv[])
-{
-  msg_host_t host_self = MSG_host_self();
-  char* master_name    = (char*)MSG_host_get_name(host_self);
-  char channel[1024];
-
-  TRACE_category(master_name);
-
-  double timeout   = xbt_str_parse_double(argv[1], "Invalid timeout: %s");            /** - timeout      */
-  double comp_size = xbt_str_parse_double(argv[2], "Invalid computational size: %s"); /** - Task compute cost    */
-  double comm_size = xbt_str_parse_double(argv[3], "Invalid communication size: %s"); /** - Task communication size */
-
-  /* Get the info about the worker processes */
-  int worker_count    = MSG_get_host_number();
-  msg_host_t* workers = xbt_dynar_to_array(MSG_hosts_as_dynar());
-
-  for (int i = 0; i < worker_count; i++) // Remove my host from the list
-    if (host_self == workers[i]) {
-      workers[i] = workers[worker_count - 1];
-      worker_count--;
-      break;
-    }
-
-  for (int i = 0; i < worker_count; i++)
-    MSG_process_create("worker", worker, (void*)master_name, workers[i]);
-  XBT_INFO("Got %d workers and will send tasks for %g seconds", worker_count, timeout);
-
-  /* Dispatch the tasks */
-  int task_num = 0;
-  while (1) {
-    if (MSG_get_clock() > timeout)
-      break;
-
-    char sprintf_buffer[64];
-    sprintf(sprintf_buffer, "Task_%d", task_num);
-
-    msg_task_t task = MSG_task_create(sprintf_buffer, comp_size, comm_size, NULL);
-    MSG_task_set_category(task, master_name);
-
-    build_channel_name(channel, master_name, MSG_host_get_name(workers[task_num % worker_count]));
-
-    XBT_DEBUG("Sending '%s' to channel '%s'", task->name, channel);
-    MSG_task_send(task, channel);
-    XBT_DEBUG("Sent");
-    task_num++;
-  }
-
-  XBT_DEBUG("All tasks have been dispatched. Let's tell everybody the computation is over.");
-  for (int i = 0; i < worker_count; i++) {
-    msg_task_t finalize = MSG_task_create("finalize", 0, 0, FINALIZE);
-    MSG_task_send(finalize, build_channel_name(channel, master_name, MSG_host_get_name(workers[i % worker_count])));
-  }
-
-  XBT_INFO("Sent %d tasks in total!", task_num);
-  free(workers);
-  return 0;
-}
-
-/** Worker function  */
-static int worker(int argc, char* argv[])
-{
-  char channel[1024];
-  build_channel_name(channel, MSG_process_get_data(MSG_process_self()), MSG_host_get_name(MSG_host_self()));
-
-  XBT_DEBUG("Receiving on channel '%s'", channel);
-
-  while (1) {
-    msg_task_t task = NULL;
-    int res         = MSG_task_receive(&(task), channel);
-    xbt_assert(res == MSG_OK, "MSG_task_get failed");
-
-    XBT_DEBUG("Received '%s'", MSG_task_get_name(task));
-    if (!strcmp(MSG_task_get_name(task), "finalize")) {
-      MSG_task_destroy(task);
-      break;
-    }
-
-    XBT_DEBUG("Processing '%s'", MSG_task_get_name(task));
-    MSG_task_execute(task);
-    XBT_DEBUG("'%s' done", MSG_task_get_name(task));
-    MSG_task_destroy(task);
-  }
-  XBT_DEBUG("I'm done. See you!");
-  return 0;
-}
-
-/** Main function */
-int main(int argc, char* argv[])
-{
-  MSG_init(&argc, argv);
-  xbt_assert(argc > 2,
-             "Usage: %s platform_file deployment_file\n"
-             "\tExample: %s msg_platform.xml msg_deployment.xml\n",
-             argv[0], argv[0]);
-
-  /*  Create a simulated platform */
-  MSG_create_environment(argv[1]);
-
-  /*   Application deployment */
-  MSG_function_register("master", master);
-  MSG_function_register("worker", worker);
-  MSG_launch_application(argv[2]);
-
-  /* Run the simulation */
-  msg_error_t res = MSG_main();
-
-  XBT_INFO("Simulation time %g", MSG_get_clock());
-  return (res != MSG_OK);
-}
diff --git a/doc/tuto-msg/masterworker-sol4.c b/doc/tuto-msg/masterworker-sol4.c
deleted file mode 100644 (file)
index 6235ed6..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-/* Copyright (c) 2007-2018. The SimGrid Team. All rights reserved.          */
-
-/* This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. */
-
-#include "simgrid/msg.h"
-
-#include <stdio.h> /* sprintf */
-
-XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test, "Messages specific for this msg example");
-
-#define FINALIZE ((void*)221297) /* a magic number to tell people to stop working */
-
-static char* build_channel_name(char* buffer, const char* sender, const char* receiver)
-{
-  strcpy(buffer, sender);
-  strcat(buffer, ":");
-  strcat(buffer, receiver);
-  return buffer;
-}
-
-/* forward definitions */
-static int master(int argc, char* argv[]);
-static int worker(int argc, char* argv[]);
-
-static int master(int argc, char* argv[])
-{
-  msg_host_t host_self = MSG_host_self();
-  char* master_name    = (char*)MSG_host_get_name(host_self);
-  char channel[1024];
-
-  TRACE_category(master_name);
-
-  double timeout   = xbt_str_parse_double(argv[1], "Invalid timeout: %s");            /** - timeout      */
-  double comp_size = xbt_str_parse_double(argv[2], "Invalid computational size: %s"); /** - Task compute cost    */
-  double comm_size = xbt_str_parse_double(argv[3], "Invalid communication size: %s"); /** - Task communication size */
-
-  /* Get the info about the worker processes */
-  int worker_count    = MSG_get_host_number();
-  msg_host_t* workers = xbt_dynar_to_array(MSG_hosts_as_dynar());
-
-  for (int i = 0; i < worker_count; i++) // Remove my host from the list
-    if (host_self == workers[i]) {
-      workers[i] = workers[worker_count - 1];
-      worker_count--;
-      break;
-    }
-
-  for (int i = 0; i < worker_count; i++)
-    MSG_process_create("worker", worker, (void*)master_name, workers[i]);
-  XBT_INFO("Got %d workers and will send tasks for %g seconds", worker_count, timeout);
-
-  /* Dispatch the tasks */
-  int task_num = 0;
-  while (MSG_get_clock() < timeout) {
-
-    /* Retrieve the next incomming request */
-    XBT_DEBUG("Retrieve the next incomming request on %s", master_name);
-    msg_task_t request = NULL;
-    int res            = MSG_task_receive(&(request), master_name);
-    xbt_assert(res == MSG_OK, "MSG_task_receive failed");
-    msg_host_t requester = MSG_task_get_data(request);
-    MSG_task_destroy(request);
-
-    /* Prepare the task to be sent */
-    char sprintf_buffer[64];
-    sprintf(sprintf_buffer, "Task_%d", task_num);
-    msg_task_t task = MSG_task_create(sprintf_buffer, comp_size, comm_size, NULL);
-    MSG_task_set_category(task, master_name);
-
-    /* Send this out */
-    build_channel_name(channel, master_name, MSG_host_get_name(requester));
-
-    XBT_DEBUG("Sending '%s' to channel '%s'", task->name, channel);
-    MSG_task_send(task, channel);
-    XBT_DEBUG("Sent");
-    task_num++;
-  }
-
-  XBT_DEBUG("Time is up. Let's tell everybody the computation is over.");
-  for (int i = 0; i < worker_count; i++) { /* We don't write in order, but the total amount is right */
-
-    /* Don't write to a worker that did not request for work, or it will deadlock: both would be sending something */
-    msg_task_t request = NULL;
-    int res            = MSG_task_receive(&(request), master_name);
-    xbt_assert(res == MSG_OK, "MSG_task_receive failed");
-    msg_host_t requester = MSG_task_get_data(request);
-    MSG_task_destroy(request);
-
-    XBT_DEBUG("Stop worker %s", MSG_host_get_name(requester));
-    msg_task_t finalize = MSG_task_create("finalize", 0, 0, FINALIZE);
-    MSG_task_send(finalize, build_channel_name(channel, master_name, MSG_host_get_name(requester)));
-  }
-
-  XBT_INFO("Sent %d tasks in total!", task_num);
-  free(workers);
-  return 0;
-}
-
-/** Worker function  */
-static int worker(int argc, char* argv[])
-{
-  char channel[1024];
-
-  const char* my_master = MSG_process_get_data(MSG_process_self());
-  build_channel_name(channel, my_master, MSG_host_get_name(MSG_host_self()));
-
-  XBT_DEBUG("Receiving on channel \"%s\"", channel);
-
-  while (1) {
-    /* Send a request */
-    XBT_DEBUG("Sent a request to my master on %s", my_master);
-    msg_task_t request = MSG_task_create("request", 0, 0, MSG_host_self());
-    MSG_task_send(request, my_master);
-
-    /* Wait for the answer */
-    msg_task_t task = NULL;
-    int res         = MSG_task_receive(&(task), channel);
-    xbt_assert(res == MSG_OK, "MSG_task_receive failed");
-
-    XBT_DEBUG("Received '%s'", MSG_task_get_name(task));
-    if (!strcmp(MSG_task_get_name(task), "finalize")) {
-      MSG_task_destroy(task);
-      break;
-    }
-
-    XBT_DEBUG("Processing '%s'", MSG_task_get_name(task));
-    MSG_task_execute(task);
-    XBT_DEBUG("'%s' done", MSG_task_get_name(task));
-    MSG_task_destroy(task);
-  }
-  XBT_DEBUG("I'm done. See you!");
-  return 0;
-}
-
-/** Main function */
-int main(int argc, char* argv[])
-{
-  MSG_init(&argc, argv);
-  xbt_assert(argc > 2,
-             "Usage: %s platform_file deployment_file\n"
-             "\tExample: %s msg_platform.xml msg_deployment.xml\n",
-             argv[0], argv[0]);
-
-  /*  Create a simulated platform */
-  MSG_create_environment(argv[1]);
-
-  /*   Application deployment */
-  MSG_function_register("master", master);
-  MSG_function_register("worker", worker);
-  MSG_launch_application(argv[2]);
-
-  /* Run the simulation */
-  msg_error_t res = MSG_main();
-
-  XBT_INFO("Simulation time %g", MSG_get_clock());
-  return (res != MSG_OK);
-}
diff --git a/doc/tuto-msg/masterworker.c b/doc/tuto-msg/masterworker.c
deleted file mode 100644 (file)
index 2a2b906..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-/* Copyright (c) 2007-2018. The SimGrid Team. All rights reserved.          */
-
-/* This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. */
-
-#include "simgrid/msg.h"
-
-#include <stdio.h> /* sprintf */
-
-XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test, "Messages specific for this msg example");
-
-#define FINALIZE ((void*)221297) /* a magic number to tell people to stop working */
-
-/** Master expects 3+ arguments given in the XML deployment file: */
-static int master(int argc, char* argv[])
-{
-  long number_of_tasks = xbt_str_parse_int(argv[1], "Invalid amount of tasks: %s");       /** - Number of tasks      */
-  double comp_size     = xbt_str_parse_double(argv[2], "Invalid computational size: %s"); /** - Task compute cost    */
-  double comm_size = xbt_str_parse_double(argv[3], "Invalid communication size: %s"); /** - Task communication size */
-
-  /* Create the tasks in advance */
-  msg_task_t* todo = xbt_new0(msg_task_t, number_of_tasks);
-
-  for (int i = 0; i < number_of_tasks; i++) {
-    char sprintf_buffer[64];
-    sprintf(sprintf_buffer, "Task_%d", i);
-    todo[i] = MSG_task_create(sprintf_buffer, comp_size, comm_size, NULL);
-  }
-
-  /* Get the info about the worker processes from my parameters */
-  int worker_count    = argc - 4;
-  msg_host_t* workers = xbt_new0(msg_host_t, worker_count);
-
-  for (int i = 4; i < argc; i++) {
-    workers[i - 4] = MSG_get_host_by_name(argv[i]);
-    xbt_assert(workers[i - 4] != NULL, "Unknown host %s. Stopping Now! ", argv[i]);
-  }
-  XBT_INFO("Got %d workers and %ld tasks to process", worker_count, number_of_tasks);
-
-  /* Dispatch the tasks */
-  for (int i = 0; i < number_of_tasks; i++) {
-    XBT_INFO("Sending '%s' to '%s'", todo[i]->name, MSG_host_get_name(workers[i % worker_count]));
-    if (MSG_host_self() == workers[i % worker_count]) {
-      XBT_INFO("Hey ! It's me ! :)");
-    }
-
-    MSG_task_send(todo[i], MSG_host_get_name(workers[i % worker_count]));
-    XBT_INFO("Sent");
-  }
-
-  XBT_INFO("All tasks have been dispatched. Let's tell everybody the computation is over.");
-  for (int i = 0; i < worker_count; i++) {
-    msg_task_t finalize = MSG_task_create("finalize", 0, 0, FINALIZE);
-    MSG_task_send(finalize, MSG_host_get_name(workers[i]));
-  }
-
-  XBT_INFO("Goodbye now!");
-  free(workers);
-  free(todo);
-  return 0;
-}
-
-/** Worker does not expect any argument from XML deployment file. */
-static int worker(int argc, char* argv[])
-{
-  while (1) {
-    msg_task_t task = NULL;
-    int res         = MSG_task_receive(&(task), MSG_host_get_name(MSG_host_self()));
-    xbt_assert(res == MSG_OK, "MSG_task_receive failed");
-
-    XBT_INFO("Received '%s'", MSG_task_get_name(task));
-    if (!strcmp(MSG_task_get_name(task), "finalize")) {
-      MSG_task_destroy(task);
-      break;
-    }
-
-    XBT_INFO("Processing \"%s\"", MSG_task_get_name(task));
-    MSG_task_execute(task);
-    XBT_INFO("'%s' done", MSG_task_get_name(task));
-    MSG_task_destroy(task);
-  }
-  XBT_INFO("I'm done. See you!");
-  return 0;
-} /* end_of_worker */
-
-/** Main function */
-int main(int argc, char* argv[])
-{
-
-  MSG_init(&argc, argv);
-  xbt_assert(argc > 2,
-             "Usage: %s platform_file deployment_file\n"
-             "\tExample: %s msg_platform.xml msg_deployment.xml\n",
-             argv[0], argv[0]);
-
-  /*  Create a simulated platform */
-  MSG_create_environment(argv[1]);
-
-  /*   Application deployment */
-  MSG_function_register("master", master);
-  MSG_function_register("worker", worker);
-  MSG_launch_application(argv[2]);
-
-  /* Run the simulation */
-  msg_error_t res = MSG_main();
-
-  XBT_INFO("Simulation time %g", MSG_get_clock());
-  return (res != MSG_OK);
-} /* end_of_main */
diff --git a/doc/tuto-msg/tuto-msg.doc b/doc/tuto-msg/tuto-msg.doc
deleted file mode 100644 (file)
index c0ebbb3..0000000
+++ /dev/null
@@ -1,428 +0,0 @@
-/*! @page tutorial_msg SimGrid Tutorial with MSG
-
-@tableofcontents
-
-@section tuto-msg-intro Introduction
-
-@subsection tuto-msg-intro-settings Settings
-
-@warning Before you take this tutorial, you should remember that the
-MSG interface is currently deprecated. It means that it will remain as
-is, inchanged, for a few years, but that new developments should use
-the new S4U interface instead. Unfortunately, the S4U tutorial is not
-written yet. Sorry about that.
-
-This tutorial will guide your create and run your first SimGrid
-simulator. Let's consider the following scenario:
-
-> Assume we have a (possibly large) bunch of (possibly large) data to
-> process and which originally reside on a server (a.k.a. master). For
-> sake of simplicity, we assume all input file require the same amount
-> of computation. We assume the server can be helped by a (possibly
-> large) set of worker machines. What is the best way to organize the
-> computations ?
-
-@htmlonly
-<div align="center">
-@endhtmlonly
-@htmlinclude tuto-msg/overview.svg
-@htmlonly
-</div>
-@endhtmlonly
-
-@subsection tuto-msg-intro-questions Raised Questions
-
-Although this looks like a very simple setting it raises several
-interesting questions:
-
-- Which algorithm should the master use to send workload?
-
-    The provided code sends the tasks to the workers with a trivial
-    round-robin algorithm. It would probably be more efficient if the
-    workers were asking for tasks, to let the master distribute the
-    tasks in a more cleaver way.
-
-- Should the worker specify how many tasks they want? Or should the
-  master decide everything?
-
-    The workers will starve if they don't get the tasks fast
-    enough. One possibility to reduce latency would be to send tasks
-    in pools instead of one by one. But if the pools are too big, the
-    load balancing will likely get uneven, in particular when
-    distributing the last tasks.
-
-- How does the quality of such algorithm dependent on the platform
-    characteristics and on the task characteristics?
-
-    Whenever the input communication time is very small compared to
-    processing time and workers are homogeneous, it is likely that the
-    round-robin algorithm performs very well. Would it still hold true
-    when transfer time is not negligible and the platform is, say, a
-    volunteer computing system ? What if some tasks are performed
-    faster on some specific nodes?
-
-- The network topology interconnecting the master and the workers
-  may be quite complicated. How does such a topology impact the
-  previous result?
-
-    When data transfers are the bottleneck, it is likely that a good
-    modeling of the platform becomes essential. The SimGrid platform
-    models are particularly handy to account for complex platform
-    topologies.
-
-- What topology to use for the application? 
-
-    Is a flat master worker deployment sufficient? Should we go for a
-    hierarchical algorithm, with some forwarders taking large pools of
-    tasks from the master, each of them distributing their tasks to a
-    sub-pool of workers? Or should we introduce super-peers,
-    dupplicating the master's role in a peer-to-peer manner?  Do the
-    algorithms require a perfect knowledge of the network?
-
-- How is such an algorithm sensitive to external workload variation?
-
-    What if bandwidth, latency and computing speed can vary with no
-    warning?  Shouldn't you study whether your algorithm is sensitive
-    to such load variations?
-
-- Although an algorithm may be more efficient than another, how
-  does it interfere with other applications?
-
-
-- Etc, etc.
-
-As you can see, this very simple setting may need to evolve way beyond
-what you initially imagined. And this is a good news.
-
-But don't believe the fools saying that all you need to study such
-settings is a simple discrete event simulator. Do you really want to
-reinvent the wheel, write your own tool, debug it, optimize it and
-validate its models against real settings for ages, or do you prefer
-to sit on the shoulders of a giant?<br>
-With SimGrid, you can forget about most technical details (but not
-all), and focus on your algorithm. The whole simulation mechanism is
-already working.
-
-@subsection tuto-msg-intro-goal Envisionned Study
-
-
-The following figure is a screenshot of [triva][fn:1] visualizing a [SimGrid
-simulation][fn:2] of two master worker applications (one in light gray and
-the other in dark gray) running in concurrence and showing resource
-usage over a long period of time.
-
-![Test](./sc3-description.png)
-
-@section tuto-msg-starting Getting Started
-
-@subsection tuto-msg-prerequesite Prerequisite
-
-In this example, we use Pajeng and Vite to visualize the result of
-SimGrid simulations. These external tools are usually very easy to
-install. On Debian and Ubuntu for example, you can get them as follows:
-
-~~~~{.sh}
-sudo apt-get install pajeng vite
-~~~~
-
-@subsection tuto-msg-setup Setting up and Compiling
-
-The corresponding source files can be obtained
-[online on GitLab](https://gitlab.inria.fr/simgrid/simgrid/tree/master/doc/tuto-msg/src). 
-There is a button on the top right to download the whole 
-directory in one archive file. If you wish, other platform files are available from 
-[this GitLab directory](https://gitlab.inria.fr/simgrid/simgrid/tree/master/examples/platforms).
-
-As you can see, there is already a little Makefile that compiles
-everything for you. If you struggle with the compilation, then you should double check 
-your @ref install "SimGrid installation". 
-On need, please refer to the @ref install_yours_trouble section.
-
-@section tuto-msg-ex0 Discovering the provided simulator
-
-Please compile and execute the provided simulator as follows:
-
-~~~~{.sh}
-make masterworker
-./masterworker examples/platforms/small_platform.xml deployment0.xml
-~~~~
-
-For a more "fancy" output, you can use simgrid-colorizer. 
-
-~~~~{.sh}
-./masterworker examples/platforms/small_platform.xml deployment0.xml 2>&1 | simgrid-colorizer
-~~~~
-
-If you installed SimGrid to a non-standard path, you may have to
-specify the full path to simgrid-colorizer on the above line, such as
-@c /opt/simgrid/bin/simgrid-colorizer. If you did not install it at all,
-you can find it in @<simgrid_root_directory@>/bin/colorize.
-
-For a classical Gantt-Chart visualization, you can produce a [Paje][fn:5] trace:
-
-~~~~{.sh}
-./masterworker platforms/platform.xml deployment0.xml --cfg=tracing:yes \
-    --cfg=tracing/msg/process:yes
-pajeng simgrid.trace
-~~~~
-
-Alternatively, you can use [vite][fn:6].
-
-~~~~{.sh}
-./masterworker platforms/platform.xml deployment0.xml --cfg=tracing:yes \
-    --cfg=tracing/msg/process:yes --cfg=tracing/basic:yes
-vite simgrid.trace
-~~~~
-
-@subsection tuto-msg-exo0-source Understanding this source code
-
-Explore the @ref doc/tuto-msg/masterworker.c source file. It contains 3 functions:
- - @c master: that's the code executed by the master process.<br>
-   It creates a large array containing all tasks,
-   dispatches all tasks to the workers and then dispatch
-   specific tasks which name is "finalize". 
- - @c worker: each workers will execute this function.<br>
-   That's an infinite loop waiting for incomming tasks.
-   We exit the loop if the name of the received task is "finalize", or process the task otherwise.
- - @c main: this setups the simulation.
-
-How does SimGrid know that we need one master and several workers?
-Because it's written in the deployment file (called @c
-deployment0.xml), that we pass to MSG_create_environment() during the setup.
-
-@include doc/tuto-msg/deployment0.xml
-
-@section tuto-msg-exo1 Exercise 1: Simplifying the deployment file
-
-In the provided example, the deployment file `deployment0.xml` is
-tightly connected to the platform file `small_platform.xml` and adding
-more workers quickly becomes a pain: You need to start them (at the
-bottom of the file), add to inform the master that they are available
-(in the master parameters list).
-
-Instead, modify the simulator `masterworker.c` into `masterworker-exo1.c`
-so that the master launches a worker process on all the other machines
-at startup. The new deployment file `deployment1.xml` should be as
-simple as:
-
-@include doc/tuto-msg/deployment1.xml
-
-For that, the master needs to retrieve the list of hosts declared in
-the platform, with the following functions (follow the links for their
-documentation):
-
-~~~~{.c}
-int MSG_get_host_number(void);
-xbt_dynar_t MSG_hosts_as_dynar(void);
-void * xbt_dynar_to_array (xbt_dynar_t dynar);
-~~~~
-
-Then, the master should start the worker processes with the following function:
-
-~~~~{.c}
-msg_process_t MSG_process_create(const char *name, xbt_main_func_t code, void *data, msg_host_t host);
-~~~~
-
-@subsection tuto-msg-exo1-config Increasing configurability
-
-The worker processes wait for incomming messages on a channel which
-name they need to know beforehand. In the provided code, each worker
-uses the name of its host as a channel name. You can see this in the
-receiver source code:
-
-~~~~{.c}
-    int res = MSG_task_receive(&(task), MSG_host_get_name(MSG_host_self()));
-    xbt_assert(res == MSG_OK, "MSG_task_receive failed");
-~~~~
-
-This way, you can have at most one worker per host. To later study the
-behavior of concurrent applications on the platform, we need to
-alleviate this. Several solutions exist:
-
-Now that the the master creates the workers, it knows their PID
-(process ID -- given by @ref MSG_process_get_PID()), so you could use
-it in the channel name.
-
-Another possibility for the master is to determine a channel name
-before the process creation, and give that name as a parameter to the
-starting process. This is what the `data` parameter of @ref
-MSG_process_create is meant for. You can pass any arbitrary pointer,
-and the created process can retrieve this value later with the @ref
-MSG_process_get_data and @ref MSG_process_self functions.  Since we
-want later to study concurrent applications, it is advised to use a
-channel name such as `master_name:worker_name`.
-
-A third possibility would be to inverse the communication architecture
-and have the workers pulling work from the master. This require to
-pass the master's channel to the workers.
-
-@subsection tuto-msg-exo1-wrapup Wrap up 
-
-In this exercise, we reduced the amount of configuration that our
-simulator requests. This is both a good idea, and a dangerous
-trend. This simplification is an application of the good old DRY/SPOT
-programming principle (Don't Repeat Yourself / Single Point Of Truth
--- <a href="https://en.wikipedia.org/wiki/Don%27t_repeat_yourself">more on wikipedia</a>),
-and you really want your programming artefacts to follow these software engineering principles.
-
-But at the same time, you should be careful in separating your
-scientific contribution (the master/wokers algorithm) and the
-artefacts used to test it (platform, deployment and workload). This is
-why SimGrid forces you to expres your platform and deployment files in
-XML instead of using a programming interface: it forces a clear
-separation of concerns between things that are of very different
-nature.
-
-If you struggle with this exercise, have a look at
-our solution in @ref doc/tuto-msg/masterworker-sol1.c
-This is not perfect at all, and many other solutions would have been possible, of course.
-
-@section tuto-msg-exo2 Exercise 2: Infinite amount of work, fixed experiment duration
-
-In the current version, the number of tasks is defined through the
-worker arguments. Hence, tasks are created at the very beginning of
-the simulation. Instead, have the master dispatching tasks for a
-predetermined amount of time.  The tasks must now be created on demand
-instead of beforehand.
-
-Of course, usual time functions like `gettimeofday` will give you the
-time on your real machine, which is prety useless in the
-simulation. Instead, retrieve the time in the simulated world with
-@ref MSG_get_clock.
-
-You can still stop your workers with a specific task as previously,
-but other methods exist. You can forcefully stop processes with the
-following functions, but be warned that SimGrid traditionnally had
-issues with forcefully stopping procsses involved in computations or
-communications. We hope that it's better now, but YMMV.
-
-~~~~{.c}
-void MSG_process_kill(msg_process_t process);
-int MSG_process_killall(int reset_PIDs);
-~~~~
-
-Anyway, the new deployment `deployment2.xml` file should thus look
-like this:
-
-@include doc/tuto-msg/deployment2.xml
-
-@subsection tuto-msg-exo2-verbosity Controlling the message verbosity
-
-Not all messages are equally informative, so you probably want to
-change most of the `XBT_INFO` into `XBT_DEBUG` so that they are hidden
-by default. You could for example show only the total number of tasks
-processed by default. You can still see the debug messages as follows:
-
-~~~~{.sh}
-./masterworker examples/platforms/small_platform.xml deployment2.xml --log=msg_test.thres:debug
-~~~~
-
-@subsection tuto-msg-exo2-wrapup Wrap up
-
-Our imperfect solution to this exercise is available as @ref doc/tuto-msg/masterworker-sol2.c
-But there is still much to improve in that code.
-
-@section tuto-msg-exo3 Exercise 3: Understanding how competing applications behave
-
-It is now time to start several applications at once, with the following `deployment3.xml` file.
-
-@include doc/tuto-msg/deployment3.xml
-
-Things happen when you do so, but it remains utterly difficult to
-understand what's happening exactely. Even visualizations with pajeng
-and Vite contain too much information to be useful: it is impossible
-to understand which task belong to which application. To fix this, we
-will categorize the tasks.
-
-For that, first let each master create its own category of tasks with
-@ref TRACE_category(), and then assign this category to each task using
-@ref MSG_task_set_category().
-
-The outcome can then be visualized as a Gantt-chart as follows:
-
-~~~~{.sh}
-./masterworker examples/platforms/small_platform.xml deployment3.xml --cfg=tracing:yes --cfg=tracing/msg/process:yes
-vite simgrid.trace
-~~~~
-
-@subsection tuto-msg-exo3-further Going further
-
-vite is not enough to understand the situation, because it does not
-deal with categorization. That is why you should switch to R to
-visualize your outcomes, as explained on <a
-href="http://simgrid.gforge.inria.fr/contrib/R_visualization.php">this
-page</a>.
-
-As usual, you can explore our imperfect solution, in @ref doc/tuto-msg/masterworker-sol3.c.
-
-@section tuto-msg-exo4 Exercise 4: Better scheduling: FCFS
-
-You don't need a very advanced visualization solution to notice that
-round-robin is completely suboptimal: most of the workers keep waiting
-for more work. We will move to a First-Come First-Served mechanism
-instead.
-
-For that, your workers should explicitely request for work with a
-message sent to a channel that is specific to their master. The name
-of their private channel name should be attached (using the last
-parameter of @ref MSG_task_create()) to the message sent, so that
-their master can answer.
-
-The master should serve requests in a round-robin manner, until the
-time is up. Things get a bit more complex to stop the workers
-afterward: the master cannot simply send a terminating task, as the
-workers are blocked until their request for work is accepted. So
-instead, the master should wait for incomming requests even once the
-time is up, and answer with a terminating task.
-
-Once it works, you will see that such as simple FCFS schema allows to
-double the amount of tasks handled over time in this case.
-
-@subsection tuto-msg-exo4-further Going further
-
-From this, many things can easily be added. For example, you could:
-- Allow workers to have several pending requests so as to overlap
-  communication and computations as much as possible. Non-blocking communication will probably become handy here.
-- Add a performance measurement mechanism, enabling the master to make smart scheduling choices.
-- Test your code on other platforms, from the `examples/platforms` directory in your archive.<br>
-  What is the largest number of tasks requiring 50e6 flops and 1e5
-  bytes that you manage to distribute and process in one hour on
-  `g5k.xml` (you should use `deployment_general.xml`)?
-- Optimize not only for the amount of tasks handled, but also for the total energy dissipated.
-- And so on. If you come up with a really nice extension, please share it with us so that we can extend this tutorial.
-
-@section tuto-msg-further Where to go from here?
-
-This tutorial is now terminated. You could keep reading the [online documentation][fn:4] or
-[tutorials][fn:7], or you could head up to the example section to read some code.
-
-@subsection tuto-msg-further-todo TODO: Points to improve for the next time
-
-- Propose equivalent exercises and skeleton in java.
-- Propose a virtualbox image with everything (simgrid, pajeng, ...) already set
-  up.
-- Ease the installation on mac OS X (binary installer) and
-  windows.
-- Explain that programming in C or java and having a working
-  development environment is a prerequisite.
-
-
-[fn:1]: http://triva.gforge.inria.fr/index.html
-[fn:2]: http://hal.inria.fr/inria-00529569
-[fn:3]: http://hal.inria.fr/hal-00738321
-[fn:4]: http://simgrid.gforge.inria.fr/simgrid/latest/doc/
-[fn:5]: https://github.com/schnorr/pajeng/
-[fn:6]: http://vite.gforge.inria.fr/
-[fn:7]: http://simgrid.org/tutorials/
-
-
-*/
-
-
-/**
- *  @example doc/tuto-msg/masterworker.c
- *  @example doc/tuto-msg/masterworker-sol1.c
- *  @example doc/tuto-msg/masterworker-sol2.c
- *  @example doc/tuto-msg/masterworker-sol3.c
- *  @example doc/tuto-msg/masterworker-sol4.c
- */
diff --git a/docs/Build.sh b/docs/Build.sh
new file mode 100755 (executable)
index 0000000..e39cf57
--- /dev/null
@@ -0,0 +1,18 @@
+#! /bin/sh
+#
+# Simplistic script to rebuild our documentation with sphinx-build
+
+set -e
+
+if [ "x$1" != 'xdoxy' -a -e build/xml ] ; then
+  echo "(Doxygen not rerun)"
+else
+  rm -rf build/xml source/api/
+  cd source; doxygen; cd ..
+fi
+
+sphinx-build -M html source build ${SPHINXOPTS}
+cat source/img/graphical-toc.svg \
+ | perl -pe 's/(xlink:href="http)/target="_top" $1/' \
+ | perl -pe 's/(xlink:href=".*?.html)/target="_top" $1/' \
+ > build/html/graphical-toc.svg
index 98294c5..038b4d3 100644 (file)
@@ -1,5 +1,5 @@
 breathe
 exhale
-sphinx
+sphinx>=1.8.0b1
 sphinx_rtd_theme
 
diff --git a/docs/source/Doxyfile b/docs/source/Doxyfile
new file mode 100644 (file)
index 0000000..06760f5
--- /dev/null
@@ -0,0 +1,42 @@
+# What to read
+INPUT                  = ../../include/simgrid/forward.h
+INPUT                 += ../../include/simgrid/s4u
+INPUT                 += ../../include/simgrid/xbt
+RECURSIVE              = YES
+
+# What to produce
+OUTPUT_DIRECTORY       = ../build/
+GENERATE_XML           = YES
+GENERATE_HTML          = NO
+GENERATE_LATEX         = NO
+
+FULL_PATH_NAMES        = NO # Don't leak the path on which it was built
+XML_PROGRAMLISTING     = NO # No program listings, please
+CREATE_SUBDIRS         = NO # Mandatory for exhale
+
+# Allow for rst directives and advanced functions e.g. grid tables
+ALIASES                = "rst=\verbatim embed:rst:leading-asterisk"
+ALIASES               += "endrst=\endverbatim"
+
+# Enable preprocessing and related preprocessor necessities
+ENABLE_PREPROCESSING   = YES
+MACRO_EXPANSION        = YES
+EXPAND_ONLY_PREDEF     = NO
+SKIP_FUNCTION_MACROS   = NO
+
+PREDEFINED             += \
+    __cplusplus \
+    DOXYGEN \
+    XBT_PUBLIC= \
+    XBT_EXPORT_NO_IMPORT= \
+    XBT_IMPORT_NO_EXPORT= \
+    XBT_PUBLIC_DATA=extern \
+    XBT_PUBLIC= \
+    XBT_INLINE= \
+    XBT_ALWAYS_INLINE= \
+    XBT_PRIVATE= \
+    XBT_ATTRIB_NORETURN= \
+    XBT_ATTRIB_UNUSED= \
+    XBT_ATTRIB_DEPRECATED_v322(m)= \
+    XBT_ATTRIB_DEPRECATED_v323(m)= \
+    XBT_ATTRIB_DEPRECATED_v324(m)=
diff --git a/docs/source/app_s4u.rst b/docs/source/app_s4u.rst
new file mode 100644 (file)
index 0000000..9d20e2b
--- /dev/null
@@ -0,0 +1,209 @@
+.. _S4U_doc:
+
+=================
+The S4U Interface
+=================
+
+.. raw:: html
+
+   <object id="TOC" data="graphical-toc.svg" width="100%" type="image/svg+xml"></object>
+   <script>
+   window.onload=function() { // Wait for the SVG to be loaded before changing it
+     var elem=document.querySelector("#TOC").contentDocument.getElementById("S4UBox")
+     elem.style="opacity:0.93999999;fill:#ff0000;fill-opacity:0.1";
+   }
+   </script>
+   <br/>
+   <br/>
+
+The S4U interface (SimGrid for you) mixes the full power of SimGrid
+with the full power of C++. This is the preferred interface to describe
+abstract algorithms in the domains of Cloud, P2P, HPC, IoT, and similar
+settings.
+
+-------------
+Main Concepts
+-------------
+
+A typical SimGrid simulation is composed of several |Actors|_, that
+execute user-provided functions. The actors have to explicitly use the
+S4U interface to express their
+:ref:`computation <exhale_class_classsimgrid_1_1s4u_1_1Exec>`,
+:ref:`communication <exhale_class_classsimgrid_1_1s4u_1_1Comm>`,
+:ref:`disk usage <exhale_class_classsimgrid_1_1s4u_1_1Io>`,
+and other |Activities|_, so that they get reflected within the
+simulator. These activities take place on resources such as |Hosts|_,
+|Links|_ and |Storages|_. SimGrid predicts the time taken by each
+activity and orchestrates the actors accordingly, waiting for the
+completion of these activities.
+
+
+When **communicating**, data is not directly sent to other actors but
+posted onto a |Mailbox|_ that serves as a rendez-vous point between
+communicating actors. This means that you don't need to know who you
+are talking to, you just put your communication `Put` request in a
+mailbox, and it will be matched with a complementary `Get`
+request.  Alternatively, actors can interact through **classical
+synchronization mechanisms** such as |Barrier|_, |Semaphore|_,
+|Mutex|_ and |ConditionVariable|_.
+
+Each actor is located on a simulated |Host|_. Each host is located
+itself in a |NetZone|_, that knows the networking path between one
+resource to another. Each NetZone is included in another one, forming
+a tree of NetZones which root zone contains the whole platform.
+
+The :ref:`simgrid::s4u::this_actor
+<namespace_simgrid__s4u__this_actor>` namespace provides many helper
+functions to simplify the code of actors.
+
+- **Global Classes**
+
+  - :ref:`class s4u::Actor <exhale_class_classsimgrid_1_1s4u_1_1Actor>`:
+    Active entities executing your application.
+  - :ref:`class s4u::Engine <exhale_class_classsimgrid_1_1s4u_1_1Engine>`
+    Simulation engine (singleton).
+  - :ref:`class s4u::Mailbox <exhale_class_classsimgrid_1_1s4u_1_1Mailbox>`
+    Communication rendez-vous.
+
+- **Platform Elements**
+
+  - :ref:`class s4u::Host <exhale_class_classsimgrid_1_1s4u_1_1Host>`:
+    Actor location, providing computational power.
+  - :ref:`class s4u::Link <exhale_class_classsimgrid_1_1s4u_1_1Link>`
+    Interconnecting hosts.
+  - :ref:`class s4u::NetZone <exhale_class_classsimgrid_1_1s4u_1_1NetZone>`:
+    Sub-region of the platform, containing resources (Hosts, Links, etc).
+  - :ref:`class s4u::Storage <exhale_class_classsimgrid_1_1s4u_1_1Storage>`
+    Resource on which actors can write and read data.
+  - :ref:`class s4u::VirtualMachine <exhale_class_classsimgrid_1_1s4u_1_1VirtualMachine>`:
+    Execution containers that can be moved between Hosts.
+
+- **Activities** (:ref:`class s4u::Activity <exhale_class_classsimgrid_1_1s4u_1_1Activity>`):
+  The things that actors can do on resources
+
+  - :ref:`class s4u::Comm <exhale_class_classsimgrid_1_1s4u_1_1Comm>`
+    Communication activity, started on Mailboxes and consuming links.
+  - :ref:`class s4u::Exec <exhale_class_classsimgrid_1_1s4u_1_1Exec>`
+    Computation activity, started on Host and consuming CPU resources.
+  - :ref:`class s4u::Io <exhale_class_classsimgrid_1_1s4u_1_1Io>`
+    I/O activity, started on and consumming Storages.
+
+- **Synchronization Mechanisms**: Classical IPC that actors can use
+
+  - :ref:`class s4u::Barrier <exhale_class_classsimgrid_1_1s4u_1_1Barrier>`
+  - :ref:`class s4u::ConditionVariable <exhale_class_classsimgrid_1_1s4u_1_1ConditionVariable>`
+  - :ref:`class s4u::Mutex <exhale_class_classsimgrid_1_1s4u_1_1Mutex>`
+  - :ref:`class s4u::Semaphore <exhale_class_classsimgrid_1_1s4u_1_1Semaphore>`
+
+
+.. |Actors| replace:: **Actors**
+.. _Actors: api/classsimgrid_1_1s4u_1_1Actor.html
+
+.. |Activities| replace:: **Activities**
+.. _Activities: api/classsimgrid_1_1s4u_1_1Activity.html
+
+.. |Hosts| replace:: **Hosts**
+.. _Hosts: api/classsimgrid_1_1s4u_1_1Host.html
+
+.. |Links| replace:: **Links**
+.. _Links: api/classsimgrid_1_1s4u_1_1Link.html
+
+.. |Storages| replace:: **Storages**
+.. _Storages: api/classsimgrid_1_1s4u_1_1Storage.html
+
+.. |VirtualMachines| replace:: **VirtualMachines**
+.. _VirtualMachines: api/classsimgrid_1_1s4u_1_1VirtualMachine.html
+
+.. |Host| replace:: **Host**
+.. _Host: api/classsimgrid_1_1s4u_1_1Host.html
+
+.. |Mailbox| replace:: **Mailbox**
+.. _Mailbox: api/classsimgrid_1_1s4u_1_1Mailbox.html
+
+.. |NetZone| replace:: **NetZone**
+.. _NetZone: api/classsimgrid_1_1s4u_1_1NetZone.html
+
+.. |Barrier| replace:: **Barrier**
+.. _Barrier: api/classsimgrid_1_1s4u_1_1Barrier.html
+
+.. |ConditionVariable| replace:: **ConditionVariable**
+.. _ConditionVariable: api/classsimgrid_1_1s4u_1_1ConditionVariable.html
+
+.. |Mutex| replace:: **Mutex**
+.. _Mutex: api/classsimgrid_1_1s4u_1_1Mutex.html
+
+----------
+Activities
+----------
+
+Activities represent the actions that consume a resource, such as a
+:ref:`s4u::Comm <exhale_class_classsimgrid_1_1s4u_1_1Comm>` that
+consumes the *transmiting power* of :ref:`s4u::Link
+<exhale_class_classsimgrid_1_1s4u_1_1Link>` resources.
+
+.......................
+Asynchronous Activities
+.......................
+
+Every activity can be either **blocking** or **asynchronous**. For
+example, :cpp:func:`s4u::Mailbox::put() <simgrid::s4u::Mailbox::put>`
+and :cpp:func:`s4u::Mailbox::get() <simgrid::s4u::Mailbox::get>`
+create blocking communications: the actor is blocked until the
+completion of that communication. Asynchronous communications do not
+block the actor during their execution but progress on their own.
+
+Once your asynchronous activity is started, you can test for its
+completion using :cpp:func:`s4u::Activity::test() <simgrid::s4u::Activity::test>`.
+This function returns ``true`` if the activity completed already.
+You can also use :cpp:func:`s4u::Activity::wait() <simgrid::s4u::Activity::wait>`
+to block until the completion of the activity. To wait for at most a given amount of time,
+use  :cpp:func:`s4u::Activity::wait_for() <simgrid::s4u::Activity::wait_for>`.
+Finally, to wait at most until a specified time limit, use
+:cpp:func:`s4u::Activity::wait_until() <simgrid::s4u::Activity::wait_until>`.
+
+.. todo::
+
+   wait_for and wait_until are currently not implemented for Exec and Io activities.
+
+Every kind of activities can be asynchronous:
+
+  - :ref:`s4u::CommPtr <exhale_class_classsimgrid_1_1s4u_1_1Comm>` are created with 
+    :cpp:func:`s4u::Mailbox::put_async() <simgrid::s4u::Mailbox::put_async>` and
+    :cpp:func:`s4u::Mailbox::get_async() <simgrid::s4u::Mailbox::get_async>`.
+  - :ref:`s4u::IoPtr <exhale_class_classsimgrid_1_1s4u_1_1Io>` are created with 
+    :cpp:func:`s4u::Storage::read_async() <simgrid::s4u::Storage::read_async>` and
+    :cpp:func:`s4u::Storage::write_async() <simgrid::s4u::Storage::write_async>`.    
+  - :ref:`s4u::ExecPtr <exhale_class_classsimgrid_1_1s4u_1_1Exec>` are created with
+    :cpp:func:`s4u::Host::exec_async() <simgrid::s4u::Host::exec_async>`.
+  - In the future, it will become possible to have asynchronous IPC
+    such as asynchronous mutex lock requests.
+
+The following example shows how to have several concurrent
+communications ongoing.  First, you have to declare a vector in which
+we will store the ongoing communications. It is also useful to have a
+vector of mailboxes.
+
+.. literalinclude:: ../../examples/s4u/async-waitall/s4u-async-waitall.cpp
+   :language: c++
+   :start-after: init-begin
+   :end-before: init-end
+   :dedent: 4
+
+Then, you start all the communications that should occur concurrently with
+:cpp:func:`s4u::Mailbox::put_async() <simgrid::s4u::Mailbox::put_async>`.  
+Finally, the actor waits for the completion of all of them at once
+with 
+:cpp:func:`s4u::Comm::wait_all() <simgrid::s4u::Comm::wait_all>`.  
+     
+.. literalinclude:: ../../examples/s4u/async-waitall/s4u-async-waitall.cpp
+   :language: c++
+   :start-after: put-begin
+   :end-before: put-end
+   :dedent: 4
+
+
+.....................
+Activities Life cycle
+.....................
+
+Sometimes, you want to change the setting of an activity before it even starts. 
diff --git a/docs/source/application.rst b/docs/source/application.rst
new file mode 100644 (file)
index 0000000..e2b087a
--- /dev/null
@@ -0,0 +1,69 @@
+.. _application:
+
+Describing your Application
+***************************
+
+.. raw:: html
+
+   <object id="TOC" data="graphical-toc.svg" width="100%" type="image/svg+xml"></object>
+   <script>
+   window.onload=function() { // Wait for the SVG to be loaded before changing it
+     var elem=document.querySelector("#TOC").contentDocument.getElementById("ApplicationBox")
+     elem.style="opacity:0.93999999;fill:#ff0000;fill-opacity:0.1;stroke:#000000;stroke-width:0.35277778;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1";
+   }
+   </script>
+   <br/>
+   <br/>
+
+Every SimGrid simulation entails a distributed application, that
+virtually executes on the simulated platform. You can express this
+application using one of the following interfaces. It is even possible
+to mix several interfaces in the same simulation.
+
+ - :ref:`Describing Algorithms with the S4U interface <S4U_doc>` (in C++)
+ - Simulating existing MPI programs with the SMPI toolsuite (in C, C++,
+   or Fortran)
+ - In some cases, you may want to replay an execution trace in the simulator. This
+   trace lists the events of your application or of your workload, and
+   your application is decomposed as a list of event handlers that are
+   fired according to the trace. SimGrid comes with a build-in support
+   for MPI traces (with solutions to import traces captured by several
+   MPI profilers). You can reuse this mecanism for any kind of trace
+   that you want to replay, for example to study how a P2P DHT overlay
+   reacts to a given workload.
+ - Simulating algorithms with one of the legacy interfaces: MSG and
+   SimDAG (in C or Java). SimGrid was founded in 1998, and many
+   interfaces were proposed along the way. MSG, introduced around
+   2002, is still present in SimGrid. It does not evolve anymore, but
+   given its popularity, it will not be removed until at least 2020.
+ - We are currently working on the ability to modify any existing
+   application so that it can run on top of SimGrid. This project,
+   called `Remote-SimGrid
+   <git@framagit.org:simgrid/remote-simgrid.git>`_, is highly
+   experimental at this point.
+
+As you can see, SimGrid is very modular and can be used in many
+ways. We are working to improve it along two main directions. First,
+we plan to further increase the modularity of the simulator so that
+users can invent the specific API or DSL they need for their usage. We
+call this project BYOS: Build Your Own Simulator.
+
+Executing existing applications within the simulator is another
+long-term goal. SMPI and Remote-SimGrid already allow you to execute some
+applications, but our long term goal would be to allow for the execution
+of any legacy application, with absolutely no modification. We call it
+SimOS, even if it will not become usable before several years of
+additional work.
+
+.. The old documentation of the obsolete MSG replay module was removed in
+..  https://github.com/simgrid/simgrid/commit/e05361c201fb95d2b7605e59001cd0a49a489739
+
+
+.. include:: app_smpi.rst
+
+.. include:: app_legacy.rst
+
+.. toctree::
+   :hidden:
+
+      The S4U Interface <app_s4u.rst>
index 8fd2797..d335a48 100644 (file)
 # add these directories to sys.path here. If the directory is relative to the
 # documentation root, use os.path.abspath to make it absolute, like shown here.
 #
-# import os
+import os, subprocess
 # import sys
 # sys.path.insert(0, os.path.abspath('.'))
 
-
 # -- Project information -----------------------------------------------------
 
 project = u'SimGrid'
@@ -41,7 +40,7 @@ release = u'3.21'
 extensions = [
     'sphinx.ext.todo',
 #    'sphinx.ext.coverage',
-    'sphinx.ext.mathjax',
+#    'sphinx.ext.mathjax',
 #    'sphinx.ext.ifconfig',
     'breathe',
     'exhale',
@@ -49,10 +48,11 @@ extensions = [
 
 todo_include_todos = True
 
-breathe_projects = { 'simgrid': '../build/doxy/xml' }
+breathe_projects = { 'simgrid': '../build/xml' }
 breathe_default_project = "simgrid"
 
 # Setup the exhale extension
+
 exhale_args = {
     # These arguments are required
     "containmentFolder":     "./api",
@@ -61,31 +61,11 @@ exhale_args = {
     "doxygenStripFromPath":  "..",
     # Suggested optional arguments
     "createTreeView":        True,
-    # TIP: if using the sphinx-bootstrap-theme, you need
-    # "treeViewIsBootstrap": True,
-    "exhaleExecutesDoxygen": True,
-    "exhaleDoxygenStdin":    """
-    INPUT = ../../include/simgrid/s4u
-    GENERATE_XML           = YES
-    PREDEFINED             += \
-        __cplusplus \
-        DOXYGEN \
-        XBT_PUBLIC= \
-        XBT_EXPORT_NO_IMPORT= \
-        XBT_IMPORT_NO_EXPORT= \
-        XBT_PUBLIC_DATA=extern \
-        XBT_PUBLIC= \
-        XBT_INLINE= \
-        XBT_ALWAYS_INLINE= \
-        XBT_PRIVATE= \
-        XBT_ATTRIB_NORETURN= \
-        XBT_ATTRIB_UNUSED= \
-        XBT_ATTRIB_DEPRECATED_v322(m)= \
-        XBT_ATTRIB_DEPRECATED_v323(m)= \
-        XBT_ATTRIB_DEPRECATED_v324(m)=
-        """
+    "exhaleExecutesDoxygen": False,
+    # "exhaleUseDoxyfile":     True,
 }
 
+
 # For cross-ref generation
 primary_domain = 'cpp'
 
@@ -115,7 +95,6 @@ exclude_patterns = []
 # The name of the Pygments (syntax highlighting) style to use.
 pygments_style = 'sphinx'
 
-
 # -- Options for HTML output -------------------------------------------------
 
 # The theme to use for HTML and HTML Help pages.  See the documentation for
@@ -153,9 +132,10 @@ htmlhelp_basename = 'SimGrid-doc'
 
 html_context = {
     "display_gitlab": True, # Integrate Gitlab
-    "gitlab_host": "framagit.org", 
+    "gitlab_host": "framagit.org",
     "gitlab_user": "simgrid",
     "gitlab_repo": "simgrid",
     "gitlab_version": "master", # Version
     "conf_py_path": "/docs/source/", # Path in the checkout to the docs root
 }
+
diff --git a/docs/source/images/tuto-masterworkers-question.svg b/docs/source/images/tuto-masterworkers-question.svg
deleted file mode 100644 (file)
index c318876..0000000
+++ /dev/null
@@ -1,1240 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="86.313606mm"
-   height="41.106529mm"
-   viewBox="0 0 86.313605 41.106529"
-   version="1.1"
-   id="svg8"
-   inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"
-   sodipodi:docname="overview.svg">
-  <defs
-     id="defs2">
-    <marker
-       inkscape:stockid="Arrow1Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Lend"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path1496"
-         d="M 0,0 5,-5 -12.5,0 5,5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="matrix(-0.8,0,0,-0.8,-10,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Mend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Mend"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         id="path1502"
-         d="M 0,0 5,-5 -12.5,0 5,5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="matrix(-0.4,0,0,-0.4,-4,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Lend-1"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path1496-6"
-         d="M 0,0 5,-5 -12.5,0 5,5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="matrix(-0.8,0,0,-0.8,-10,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Lend-8"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path1496-1"
-         d="M 0,0 5,-5 -12.5,0 5,5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="matrix(-0.8,0,0,-0.8,-10,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Lend-3"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path1496-3"
-         d="M 0,0 5,-5 -12.5,0 5,5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="matrix(-0.8,0,0,-0.8,-10,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Lend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Lend-9"
-       style="overflow:visible"
-       inkscape:isstock="true">
-      <path
-         inkscape:connector-curvature="0"
-         id="path1496-8"
-         d="M 0,0 5,-5 -12.5,0 5,5 Z"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
-         transform="matrix(-0.8,0,0,-0.8,-10,0)" />
-    </marker>
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="2.8"
-     inkscape:cx="75.667359"
-     inkscape:cy="76.402423"
-     inkscape:document-units="mm"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="1920"
-     inkscape:window-height="1019"
-     inkscape:window-x="0"
-     inkscape:window-y="32"
-     inkscape:window-maximized="1"
-     fit-margin-top="0"
-     fit-margin-left="0"
-     fit-margin-right="0"
-     fit-margin-bottom="0" />
-  <metadata
-     id="metadata5">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Calque 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(-29.950586,-101.20699)">
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.80246687px;line-height:4.0930109px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.16372044px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="47.823597"
-       y="119.2951"
-       id="text817"><tspan
-         sodipodi:role="line"
-         id="tspan815"
-         x="47.823597"
-         y="119.2951"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.16372044px">Master</tspan></text>
-    <ellipse
-       style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.43658787;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path819"
-       cx="55.781475"
-       cy="121.76025"
-       rx="12.693116"
-       ry="8.3518229" />
-    <g
-       id="g5649"
-       transform="matrix(0.61878596,0,0,0.61878596,10.598982,54.807393)">
-      <path
-         transform="matrix(0.53833311,-0.02069077,0.02257551,0.49338976,62.219405,60.11345)"
-         inkscape:transform-center-y="-0.1233255"
-         inkscape:transform-center-x="0.088729829"
-         d="m 44.366742,100.02236 c -0.493309,0.45536 -2.681943,0.19034 -3.352755,0.16351 -0.670812,-0.0268 -2.873621,0.0625 -3.328983,-0.430784 -0.455362,-0.493309 -0.19035,-2.681944 -0.163517,-3.352755 0.02683,-0.670812 -0.06252,-2.873621 0.430786,-3.328983 0.493309,-0.455362 2.681944,-0.19035 3.352756,-0.163517 0.670811,0.02683 2.873621,-0.06252 3.328983,0.430786 0.455362,0.493309 0.190349,2.681944 0.163517,3.352755 -0.02683,0.670812 0.06252,2.873621 -0.430787,3.328988 z"
-         inkscape:randomized="0"
-         inkscape:rounded="0.2"
-         inkscape:flatsided="false"
-         sodipodi:arg2="1.610775"
-         sodipodi:arg1="0.82537685"
-         sodipodi:r2="3.6409302"
-         sodipodi:r1="4.7284808"
-         sodipodi:cy="96.547852"
-         sodipodi:cx="41.159508"
-         sodipodi:sides="4"
-         id="path823-15"
-         style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.70555556;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-         sodipodi:type="star" />
-      <text
-         id="text817-8-06"
-         y="107.92625"
-         x="85.694588"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:6.61458349px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         xml:space="preserve"><tspan
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.26458332px"
-           y="107.92625"
-           x="85.694588"
-           id="tspan815-8-50"
-           sodipodi:role="line">T</tspan></text>
-    </g>
-    <g
-       id="g5641"
-       transform="matrix(0.61878596,0,0,0.61878596,11.505291,54.982808)">
-      <path
-         transform="matrix(0.53833311,-0.02069077,0.02257551,0.49338976,28.863006,60.727662)"
-         inkscape:transform-center-y="-0.1233255"
-         inkscape:transform-center-x="0.088729829"
-         d="m 44.366742,100.02236 c -0.493309,0.45536 -2.681943,0.19034 -3.352755,0.16351 -0.670812,-0.0268 -2.873621,0.0625 -3.328983,-0.430784 -0.455362,-0.493309 -0.19035,-2.681944 -0.163517,-3.352755 0.02683,-0.670812 -0.06252,-2.873621 0.430786,-3.328983 0.493309,-0.455362 2.681944,-0.19035 3.352756,-0.163517 0.670811,0.02683 2.873621,-0.06252 3.328983,0.430786 0.455362,0.493309 0.190349,2.681944 0.163517,3.352755 -0.02683,0.670812 0.06252,2.873621 -0.430787,3.328988 z"
-         inkscape:randomized="0"
-         inkscape:rounded="0.2"
-         inkscape:flatsided="false"
-         sodipodi:arg2="1.610775"
-         sodipodi:arg1="0.82537685"
-         sodipodi:r2="3.6409302"
-         sodipodi:r1="4.7284808"
-         sodipodi:cy="96.547852"
-         sodipodi:cx="41.159508"
-         sodipodi:sides="4"
-         id="path823-226"
-         style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.70555556;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-         sodipodi:type="star" />
-      <text
-         id="text817-8-91"
-         y="108.54047"
-         x="52.338184"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:6.61458349px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         xml:space="preserve"><tspan
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.26458332px"
-           y="108.54047"
-           x="52.338184"
-           id="tspan815-8-04"
-           sodipodi:role="line">T</tspan></text>
-    </g>
-    <g
-       id="g1489"
-       transform="matrix(0.61878596,0,0,0.61878596,19.779021,54.251913)">
-      <g
-         transform="translate(0.29020366)"
-         id="g1294">
-        <text
-           xml:space="preserve"
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:6.61458349px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-           x="125.17461"
-           y="85.676834"
-           id="text817-3"><tspan
-             sodipodi:role="line"
-             id="tspan815-8"
-             x="125.17461"
-             y="85.676834"
-             style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.26458332px">Worker</tspan></text>
-        <ellipse
-           style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.70555556;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-           id="path1289"
-           cx="138.98015"
-           cy="82.78347"
-           rx="16.30344"
-           ry="6.5481029" />
-      </g>
-      <g
-         id="g1294-6"
-         transform="translate(0.29020366,13.157293)">
-        <text
-           xml:space="preserve"
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:6.61458349px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-           x="125.17461"
-           y="85.676834"
-           id="text817-3-0"><tspan
-             sodipodi:role="line"
-             id="tspan815-8-89"
-             x="125.17461"
-             y="85.676834"
-             style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.26458332px">Worker</tspan></text>
-        <ellipse
-           style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.70555556;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-           id="path1289-2"
-           cx="138.98015"
-           cy="82.78347"
-           rx="16.30344"
-           ry="6.5481029" />
-      </g>
-      <g
-         id="g1294-2"
-         transform="translate(0.29020366,26.31459)">
-        <text
-           xml:space="preserve"
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:6.61458349px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-           x="125.17461"
-           y="85.676834"
-           id="text817-3-3"><tspan
-             sodipodi:role="line"
-             id="tspan815-8-18"
-             x="125.17461"
-             y="85.676834"
-             style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.26458332px">Worker</tspan></text>
-        <ellipse
-           style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.70555556;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-           id="path1289-3"
-           cx="138.98015"
-           cy="82.78347"
-           rx="16.30344"
-           ry="6.5481029" />
-      </g>
-      <g
-         id="g1294-4"
-         transform="translate(0.29020366,52.629172)">
-        <text
-           xml:space="preserve"
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:6.61458349px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-           x="125.17461"
-           y="85.676834"
-           id="text817-3-2"><tspan
-             sodipodi:role="line"
-             id="tspan815-8-2"
-             x="125.17461"
-             y="85.676834"
-             style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.26458332px">Worker</tspan></text>
-        <ellipse
-           style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.70555556;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-           id="path1289-4"
-           cx="138.98015"
-           cy="82.78347"
-           rx="16.30344"
-           ry="6.5481029" />
-      </g>
-      <g
-         id="g1294-5"
-         transform="translate(0.29020366,39.471889)">
-        <text
-           xml:space="preserve"
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:6.61458349px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-           x="125.17461"
-           y="85.676834"
-           id="text817-3-1"><tspan
-             sodipodi:role="line"
-             id="tspan815-8-75"
-             x="125.17461"
-             y="85.676834"
-             style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.26458332px">Worker</tspan></text>
-        <ellipse
-           style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.70555556;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-           id="path1289-7"
-           cx="138.98015"
-           cy="82.78347"
-           rx="16.30344"
-           ry="6.5481029" />
-      </g>
-    </g>
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.16372044px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
-       d="m 68.602797,121.43899 27.144559,-16.2551"
-       id="path1491"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.16372044px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend-1)"
-       d="m 68.602797,121.43899 27.144559,-8.05361"
-       id="path1491-9"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.16372044px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend-8)"
-       d="m 68.602797,121.43899 27.144559,0.14787"
-       id="path1491-3"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.16372044px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend-3)"
-       d="m 68.602797,121.43899 27.144559,8.34936"
-       id="path1491-7"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.16372044px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend-9)"
-       d="m 68.602797,121.43899 27.144559,16.55085"
-       id="path1491-6"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.80246687px;line-height:4.0930109px;font-family:'Amiri Quran Colored';-inkscape-font-specification:'Amiri Quran Colored';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:0.16372044px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="58.617321"
-       y="135.63525"
-       id="text4842"><tspan
-         sodipodi:role="line"
-         id="tspan4840"
-         x="58.617321"
-         y="135.63525"
-         style="text-align:center;text-anchor:middle;fill:#ff0000;stroke-width:0.16372044px">How should the master</tspan><tspan
-         sodipodi:role="line"
-         x="58.617321"
-         y="139.81946"
-         style="text-align:center;text-anchor:middle;fill:#ff0000;stroke-width:0.16372044px"
-         id="tspan5522">distribute the tasks?</tspan></text>
-    <g
-       transform="matrix(0.61878596,0,0,0.61878596,12.703959,52.631832)"
-       id="g5641-0">
-      <path
-         transform="matrix(0.53833311,-0.02069077,0.02257551,0.49338976,28.863006,60.727662)"
-         inkscape:transform-center-y="-0.1233255"
-         inkscape:transform-center-x="0.088729829"
-         d="m 44.366742,100.02236 c -0.493309,0.45536 -2.681943,0.19034 -3.352755,0.16351 -0.670812,-0.0268 -2.873621,0.0625 -3.328983,-0.430784 -0.455362,-0.493309 -0.19035,-2.681944 -0.163517,-3.352755 0.02683,-0.670812 -0.06252,-2.873621 0.430786,-3.328983 0.493309,-0.455362 2.681944,-0.19035 3.352756,-0.163517 0.670811,0.02683 2.873621,-0.06252 3.328983,0.430786 0.455362,0.493309 0.190349,2.681944 0.163517,3.352755 -0.02683,0.670812 0.06252,2.873621 -0.430787,3.328988 z"
-         inkscape:randomized="0"
-         inkscape:rounded="0.2"
-         inkscape:flatsided="false"
-         sodipodi:arg2="1.610775"
-         sodipodi:arg1="0.82537685"
-         sodipodi:r2="3.6409302"
-         sodipodi:r1="4.7284808"
-         sodipodi:cy="96.547852"
-         sodipodi:cx="41.159508"
-         sodipodi:sides="4"
-         id="path823-226-4"
-         style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.70555556;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-         sodipodi:type="star" />
-      <text
-         id="text817-8-91-8"
-         y="108.54047"
-         x="52.338184"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:6.61458349px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         xml:space="preserve"><tspan
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.26458332px"
-           y="108.54047"
-           x="52.338184"
-           id="tspan815-8-04-4"
-           sodipodi:role="line">T</tspan></text>
-    </g>
-    <g
-       transform="matrix(0.61878596,0,0,0.61878596,14.01957,54.912224)"
-       id="g5641-8">
-      <path
-         transform="matrix(0.53833311,-0.02069077,0.02257551,0.49338976,28.863006,60.727662)"
-         inkscape:transform-center-y="-0.1233255"
-         inkscape:transform-center-x="0.088729829"
-         d="m 44.366742,100.02236 c -0.493309,0.45536 -2.681943,0.19034 -3.352755,0.16351 -0.670812,-0.0268 -2.873621,0.0625 -3.328983,-0.430784 -0.455362,-0.493309 -0.19035,-2.681944 -0.163517,-3.352755 0.02683,-0.670812 -0.06252,-2.873621 0.430786,-3.328983 0.493309,-0.455362 2.681944,-0.19035 3.352756,-0.163517 0.670811,0.02683 2.873621,-0.06252 3.328983,0.430786 0.455362,0.493309 0.190349,2.681944 0.163517,3.352755 -0.02683,0.670812 0.06252,2.873621 -0.430787,3.328988 z"
-         inkscape:randomized="0"
-         inkscape:rounded="0.2"
-         inkscape:flatsided="false"
-         sodipodi:arg2="1.610775"
-         sodipodi:arg1="0.82537685"
-         sodipodi:r2="3.6409302"
-         sodipodi:r1="4.7284808"
-         sodipodi:cy="96.547852"
-         sodipodi:cx="41.159508"
-         sodipodi:sides="4"
-         id="path823-226-1"
-         style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.70555556;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-         sodipodi:type="star" />
-      <text
-         id="text817-8-91-6"
-         y="108.54047"
-         x="52.338184"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:6.61458349px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         xml:space="preserve"><tspan
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.26458332px"
-           y="108.54047"
-           x="52.338184"
-           id="tspan815-8-04-8"
-           sodipodi:role="line">T</tspan></text>
-    </g>
-    <g
-       transform="matrix(0.61878596,0,0,0.61878596,12.236186,57.484974)"
-       id="g5641-5">
-      <path
-         transform="matrix(0.53833311,-0.02069077,0.02257551,0.49338976,28.863006,60.727662)"
-         inkscape:transform-center-y="-0.1233255"
-         inkscape:transform-center-x="0.088729829"
-         d="m 44.366742,100.02236 c -0.493309,0.45536 -2.681943,0.19034 -3.352755,0.16351 -0.670812,-0.0268 -2.873621,0.0625 -3.328983,-0.430784 -0.455362,-0.493309 -0.19035,-2.681944 -0.163517,-3.352755 0.02683,-0.670812 -0.06252,-2.873621 0.430786,-3.328983 0.493309,-0.455362 2.681944,-0.19035 3.352756,-0.163517 0.670811,0.02683 2.873621,-0.06252 3.328983,0.430786 0.455362,0.493309 0.190349,2.681944 0.163517,3.352755 -0.02683,0.670812 0.06252,2.873621 -0.430787,3.328988 z"
-         inkscape:randomized="0"
-         inkscape:rounded="0.2"
-         inkscape:flatsided="false"
-         sodipodi:arg2="1.610775"
-         sodipodi:arg1="0.82537685"
-         sodipodi:r2="3.6409302"
-         sodipodi:r1="4.7284808"
-         sodipodi:cy="96.547852"
-         sodipodi:cx="41.159508"
-         sodipodi:sides="4"
-         id="path823-226-2"
-         style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.70555556;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-         sodipodi:type="star" />
-      <text
-         id="text817-8-91-1"
-         y="108.54047"
-         x="52.338184"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:6.61458349px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         xml:space="preserve"><tspan
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.26458332px"
-           y="108.54047"
-           x="52.338184"
-           id="tspan815-8-04-9"
-           sodipodi:role="line">T</tspan></text>
-    </g>
-    <g
-       transform="matrix(0.61878596,0,0,0.61878596,14.896644,57.777332)"
-       id="g5641-9">
-      <path
-         transform="matrix(0.53833311,-0.02069077,0.02257551,0.49338976,28.863006,60.727662)"
-         inkscape:transform-center-y="-0.1233255"
-         inkscape:transform-center-x="0.088729829"
-         d="m 44.366742,100.02236 c -0.493309,0.45536 -2.681943,0.19034 -3.352755,0.16351 -0.670812,-0.0268 -2.873621,0.0625 -3.328983,-0.430784 -0.455362,-0.493309 -0.19035,-2.681944 -0.163517,-3.352755 0.02683,-0.670812 -0.06252,-2.873621 0.430786,-3.328983 0.493309,-0.455362 2.681944,-0.19035 3.352756,-0.163517 0.670811,0.02683 2.873621,-0.06252 3.328983,0.430786 0.455362,0.493309 0.190349,2.681944 0.163517,3.352755 -0.02683,0.670812 0.06252,2.873621 -0.430787,3.328988 z"
-         inkscape:randomized="0"
-         inkscape:rounded="0.2"
-         inkscape:flatsided="false"
-         sodipodi:arg2="1.610775"
-         sodipodi:arg1="0.82537685"
-         sodipodi:r2="3.6409302"
-         sodipodi:r1="4.7284808"
-         sodipodi:cy="96.547852"
-         sodipodi:cx="41.159508"
-         sodipodi:sides="4"
-         id="path823-226-6"
-         style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.70555556;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-         sodipodi:type="star" />
-      <text
-         id="text817-8-91-0"
-         y="108.54047"
-         x="52.338184"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:6.61458349px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         xml:space="preserve"><tspan
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.26458332px"
-           y="108.54047"
-           x="52.338184"
-           id="tspan815-8-04-6"
-           sodipodi:role="line">T</tspan></text>
-    </g>
-    <g
-       transform="matrix(0.61878596,0,0,0.61878596,17.586337,57.046437)"
-       id="g5641-4">
-      <path
-         transform="matrix(0.53833311,-0.02069077,0.02257551,0.49338976,28.863006,60.727662)"
-         inkscape:transform-center-y="-0.1233255"
-         inkscape:transform-center-x="0.088729829"
-         d="m 44.366742,100.02236 c -0.493309,0.45536 -2.681943,0.19034 -3.352755,0.16351 -0.670812,-0.0268 -2.873621,0.0625 -3.328983,-0.430784 -0.455362,-0.493309 -0.19035,-2.681944 -0.163517,-3.352755 0.02683,-0.670812 -0.06252,-2.873621 0.430786,-3.328983 0.493309,-0.455362 2.681944,-0.19035 3.352756,-0.163517 0.670811,0.02683 2.873621,-0.06252 3.328983,0.430786 0.455362,0.493309 0.190349,2.681944 0.163517,3.352755 -0.02683,0.670812 0.06252,2.873621 -0.430787,3.328988 z"
-         inkscape:randomized="0"
-         inkscape:rounded="0.2"
-         inkscape:flatsided="false"
-         sodipodi:arg2="1.610775"
-         sodipodi:arg1="0.82537685"
-         sodipodi:r2="3.6409302"
-         sodipodi:r1="4.7284808"
-         sodipodi:cy="96.547852"
-         sodipodi:cx="41.159508"
-         sodipodi:sides="4"
-         id="path823-226-9"
-         style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.70555556;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-         sodipodi:type="star" />
-      <text
-         id="text817-8-91-9"
-         y="108.54047"
-         x="52.338184"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:6.61458349px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         xml:space="preserve"><tspan
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.26458332px"
-           y="108.54047"
-           x="52.338184"
-           id="tspan815-8-04-0"
-           sodipodi:role="line">T</tspan></text>
-    </g>
-    <g
-       transform="matrix(0.61878596,0,0,0.61878596,17.264743,54.093622)"
-       id="g5641-89">
-      <path
-         transform="matrix(0.53833311,-0.02069077,0.02257551,0.49338976,28.863006,60.727662)"
-         inkscape:transform-center-y="-0.1233255"
-         inkscape:transform-center-x="0.088729829"
-         d="m 44.366742,100.02236 c -0.493309,0.45536 -2.681943,0.19034 -3.352755,0.16351 -0.670812,-0.0268 -2.873621,0.0625 -3.328983,-0.430784 -0.455362,-0.493309 -0.19035,-2.681944 -0.163517,-3.352755 0.02683,-0.670812 -0.06252,-2.873621 0.430786,-3.328983 0.493309,-0.455362 2.681944,-0.19035 3.352756,-0.163517 0.670811,0.02683 2.873621,-0.06252 3.328983,0.430786 0.455362,0.493309 0.190349,2.681944 0.163517,3.352755 -0.02683,0.670812 0.06252,2.873621 -0.430787,3.328988 z"
-         inkscape:randomized="0"
-         inkscape:rounded="0.2"
-         inkscape:flatsided="false"
-         sodipodi:arg2="1.610775"
-         sodipodi:arg1="0.82537685"
-         sodipodi:r2="3.6409302"
-         sodipodi:r1="4.7284808"
-         sodipodi:cy="96.547852"
-         sodipodi:cx="41.159508"
-         sodipodi:sides="4"
-         id="path823-226-3"
-         style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.70555556;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-         sodipodi:type="star" />
-      <text
-         id="text817-8-91-14"
-         y="108.54047"
-         x="52.338184"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:6.61458349px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         xml:space="preserve"><tspan
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.26458332px"
-           y="108.54047"
-           x="52.338184"
-           id="tspan815-8-04-89"
-           sodipodi:role="line">T</tspan></text>
-    </g>
-    <g
-       transform="matrix(0.61878596,0,0,0.61878596,18.083346,59.765366)"
-       id="g5641-6">
-      <path
-         transform="matrix(0.53833311,-0.02069077,0.02257551,0.49338976,28.863006,60.727662)"
-         inkscape:transform-center-y="-0.1233255"
-         inkscape:transform-center-x="0.088729829"
-         d="m 44.366742,100.02236 c -0.493309,0.45536 -2.681943,0.19034 -3.352755,0.16351 -0.670812,-0.0268 -2.873621,0.0625 -3.328983,-0.430784 -0.455362,-0.493309 -0.19035,-2.681944 -0.163517,-3.352755 0.02683,-0.670812 -0.06252,-2.873621 0.430786,-3.328983 0.493309,-0.455362 2.681944,-0.19035 3.352756,-0.163517 0.670811,0.02683 2.873621,-0.06252 3.328983,0.430786 0.455362,0.493309 0.190349,2.681944 0.163517,3.352755 -0.02683,0.670812 0.06252,2.873621 -0.430787,3.328988 z"
-         inkscape:randomized="0"
-         inkscape:rounded="0.2"
-         inkscape:flatsided="false"
-         sodipodi:arg2="1.610775"
-         sodipodi:arg1="0.82537685"
-         sodipodi:r2="3.6409302"
-         sodipodi:r1="4.7284808"
-         sodipodi:cy="96.547852"
-         sodipodi:cx="41.159508"
-         sodipodi:sides="4"
-         id="path823-226-7"
-         style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.70555556;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-         sodipodi:type="star" />
-      <text
-         id="text817-8-91-7"
-         y="108.54047"
-         x="52.338184"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:6.61458349px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         xml:space="preserve"><tspan
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.26458332px"
-           y="108.54047"
-           x="52.338184"
-           id="tspan815-8-04-3"
-           sodipodi:role="line">T</tspan></text>
-    </g>
-    <g
-       transform="matrix(0.61878596,0,0,0.61878596,15.422888,60.262374)"
-       id="g5641-7">
-      <path
-         transform="matrix(0.53833311,-0.02069077,0.02257551,0.49338976,28.863006,60.727662)"
-         inkscape:transform-center-y="-0.1233255"
-         inkscape:transform-center-x="0.088729829"
-         d="m 44.366742,100.02236 c -0.493309,0.45536 -2.681943,0.19034 -3.352755,0.16351 -0.670812,-0.0268 -2.873621,0.0625 -3.328983,-0.430784 -0.455362,-0.493309 -0.19035,-2.681944 -0.163517,-3.352755 0.02683,-0.670812 -0.06252,-2.873621 0.430786,-3.328983 0.493309,-0.455362 2.681944,-0.19035 3.352756,-0.163517 0.670811,0.02683 2.873621,-0.06252 3.328983,0.430786 0.455362,0.493309 0.190349,2.681944 0.163517,3.352755 -0.02683,0.670812 0.06252,2.873621 -0.430787,3.328988 z"
-         inkscape:randomized="0"
-         inkscape:rounded="0.2"
-         inkscape:flatsided="false"
-         sodipodi:arg2="1.610775"
-         sodipodi:arg1="0.82537685"
-         sodipodi:r2="3.6409302"
-         sodipodi:r1="4.7284808"
-         sodipodi:cy="96.547852"
-         sodipodi:cx="41.159508"
-         sodipodi:sides="4"
-         id="path823-226-12"
-         style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.70555556;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-         sodipodi:type="star" />
-      <text
-         id="text817-8-91-2"
-         y="108.54047"
-         x="52.338184"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:6.61458349px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         xml:space="preserve"><tspan
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.26458332px"
-           y="108.54047"
-           x="52.338184"
-           id="tspan815-8-04-1"
-           sodipodi:role="line">T</tspan></text>
-    </g>
-    <g
-       transform="matrix(0.61878596,0,0,0.61878596,19.282013,61.987286)"
-       id="g5641-50">
-      <path
-         transform="matrix(0.53833311,-0.02069077,0.02257551,0.49338976,28.863006,60.727662)"
-         inkscape:transform-center-y="-0.1233255"
-         inkscape:transform-center-x="0.088729829"
-         d="m 44.366742,100.02236 c -0.493309,0.45536 -2.681943,0.19034 -3.352755,0.16351 -0.670812,-0.0268 -2.873621,0.0625 -3.328983,-0.430784 -0.455362,-0.493309 -0.19035,-2.681944 -0.163517,-3.352755 0.02683,-0.670812 -0.06252,-2.873621 0.430786,-3.328983 0.493309,-0.455362 2.681944,-0.19035 3.352756,-0.163517 0.670811,0.02683 2.873621,-0.06252 3.328983,0.430786 0.455362,0.493309 0.190349,2.681944 0.163517,3.352755 -0.02683,0.670812 0.06252,2.873621 -0.430787,3.328988 z"
-         inkscape:randomized="0"
-         inkscape:rounded="0.2"
-         inkscape:flatsided="false"
-         sodipodi:arg2="1.610775"
-         sodipodi:arg1="0.82537685"
-         sodipodi:r2="3.6409302"
-         sodipodi:r1="4.7284808"
-         sodipodi:cy="96.547852"
-         sodipodi:cx="41.159508"
-         sodipodi:sides="4"
-         id="path823-226-90"
-         style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.70555556;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-         sodipodi:type="star" />
-      <text
-         id="text817-8-91-4"
-         y="108.54047"
-         x="52.338184"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:6.61458349px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         xml:space="preserve"><tspan
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.26458332px"
-           y="108.54047"
-           x="52.338184"
-           id="tspan815-8-04-01"
-           sodipodi:role="line">T</tspan></text>
-    </g>
-    <g
-       transform="matrix(0.61878596,0,0,0.61878596,20.539152,59.414536)"
-       id="g5641-3">
-      <path
-         transform="matrix(0.53833311,-0.02069077,0.02257551,0.49338976,28.863006,60.727662)"
-         inkscape:transform-center-y="-0.1233255"
-         inkscape:transform-center-x="0.088729829"
-         d="m 44.366742,100.02236 c -0.493309,0.45536 -2.681943,0.19034 -3.352755,0.16351 -0.670812,-0.0268 -2.873621,0.0625 -3.328983,-0.430784 -0.455362,-0.493309 -0.19035,-2.681944 -0.163517,-3.352755 0.02683,-0.670812 -0.06252,-2.873621 0.430786,-3.328983 0.493309,-0.455362 2.681944,-0.19035 3.352756,-0.163517 0.670811,0.02683 2.873621,-0.06252 3.328983,0.430786 0.455362,0.493309 0.190349,2.681944 0.163517,3.352755 -0.02683,0.670812 0.06252,2.873621 -0.430787,3.328988 z"
-         inkscape:randomized="0"
-         inkscape:rounded="0.2"
-         inkscape:flatsided="false"
-         sodipodi:arg2="1.610775"
-         sodipodi:arg1="0.82537685"
-         sodipodi:r2="3.6409302"
-         sodipodi:r1="4.7284808"
-         sodipodi:cy="96.547852"
-         sodipodi:cx="41.159508"
-         sodipodi:sides="4"
-         id="path823-226-74"
-         style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.70555556;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-         sodipodi:type="star" />
-      <text
-         id="text817-8-91-11"
-         y="108.54047"
-         x="52.338184"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:6.61458349px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         xml:space="preserve"><tspan
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.26458332px"
-           y="108.54047"
-           x="52.338184"
-           id="tspan815-8-04-30"
-           sodipodi:role="line">T</tspan></text>
-    </g>
-    <g
-       transform="matrix(0.61878596,0,0,0.61878596,20.042144,56.05242)"
-       id="g5641-32">
-      <path
-         transform="matrix(0.53833311,-0.02069077,0.02257551,0.49338976,28.863006,60.727662)"
-         inkscape:transform-center-y="-0.1233255"
-         inkscape:transform-center-x="0.088729829"
-         d="m 44.366742,100.02236 c -0.493309,0.45536 -2.681943,0.19034 -3.352755,0.16351 -0.670812,-0.0268 -2.873621,0.0625 -3.328983,-0.430784 -0.455362,-0.493309 -0.19035,-2.681944 -0.163517,-3.352755 0.02683,-0.670812 -0.06252,-2.873621 0.430786,-3.328983 0.493309,-0.455362 2.681944,-0.19035 3.352756,-0.163517 0.670811,0.02683 2.873621,-0.06252 3.328983,0.430786 0.455362,0.493309 0.190349,2.681944 0.163517,3.352755 -0.02683,0.670812 0.06252,2.873621 -0.430787,3.328988 z"
-         inkscape:randomized="0"
-         inkscape:rounded="0.2"
-         inkscape:flatsided="false"
-         sodipodi:arg2="1.610775"
-         sodipodi:arg1="0.82537685"
-         sodipodi:r2="3.6409302"
-         sodipodi:r1="4.7284808"
-         sodipodi:cy="96.547852"
-         sodipodi:cx="41.159508"
-         sodipodi:sides="4"
-         id="path823-226-17"
-         style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.70555556;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-         sodipodi:type="star" />
-      <text
-         id="text817-8-91-5"
-         y="108.54047"
-         x="52.338184"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:6.61458349px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         xml:space="preserve"><tspan
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.26458332px"
-           y="108.54047"
-           x="52.338184"
-           id="tspan815-8-04-65"
-           sodipodi:role="line">T</tspan></text>
-    </g>
-    <g
-       transform="matrix(0.61878596,0,0,0.61878596,22.614894,54.473687)"
-       id="g5641-42">
-      <path
-         transform="matrix(0.53833311,-0.02069077,0.02257551,0.49338976,28.863006,60.727662)"
-         inkscape:transform-center-y="-0.1233255"
-         inkscape:transform-center-x="0.088729829"
-         d="m 44.366742,100.02236 c -0.493309,0.45536 -2.681943,0.19034 -3.352755,0.16351 -0.670812,-0.0268 -2.873621,0.0625 -3.328983,-0.430784 -0.455362,-0.493309 -0.19035,-2.681944 -0.163517,-3.352755 0.02683,-0.670812 -0.06252,-2.873621 0.430786,-3.328983 0.493309,-0.455362 2.681944,-0.19035 3.352756,-0.163517 0.670811,0.02683 2.873621,-0.06252 3.328983,0.430786 0.455362,0.493309 0.190349,2.681944 0.163517,3.352755 -0.02683,0.670812 0.06252,2.873621 -0.430787,3.328988 z"
-         inkscape:randomized="0"
-         inkscape:rounded="0.2"
-         inkscape:flatsided="false"
-         sodipodi:arg2="1.610775"
-         sodipodi:arg1="0.82537685"
-         sodipodi:r2="3.6409302"
-         sodipodi:r1="4.7284808"
-         sodipodi:cy="96.547852"
-         sodipodi:cx="41.159508"
-         sodipodi:sides="4"
-         id="path823-226-21"
-         style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.70555556;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-         sodipodi:type="star" />
-      <text
-         id="text817-8-91-72"
-         y="108.54047"
-         x="52.338184"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:6.61458349px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         xml:space="preserve"><tspan
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.26458332px"
-           y="108.54047"
-           x="52.338184"
-           id="tspan815-8-04-41"
-           sodipodi:role="line">T</tspan></text>
-    </g>
-    <g
-       transform="matrix(0.61878596,0,0,0.61878596,22.84878,56.987965)"
-       id="g5641-65">
-      <path
-         transform="matrix(0.53833311,-0.02069077,0.02257551,0.49338976,28.863006,60.727662)"
-         inkscape:transform-center-y="-0.1233255"
-         inkscape:transform-center-x="0.088729829"
-         d="m 44.366742,100.02236 c -0.493309,0.45536 -2.681943,0.19034 -3.352755,0.16351 -0.670812,-0.0268 -2.873621,0.0625 -3.328983,-0.430784 -0.455362,-0.493309 -0.19035,-2.681944 -0.163517,-3.352755 0.02683,-0.670812 -0.06252,-2.873621 0.430786,-3.328983 0.493309,-0.455362 2.681944,-0.19035 3.352756,-0.163517 0.670811,0.02683 2.873621,-0.06252 3.328983,0.430786 0.455362,0.493309 0.190349,2.681944 0.163517,3.352755 -0.02683,0.670812 0.06252,2.873621 -0.430787,3.328988 z"
-         inkscape:randomized="0"
-         inkscape:rounded="0.2"
-         inkscape:flatsided="false"
-         sodipodi:arg2="1.610775"
-         sodipodi:arg1="0.82537685"
-         sodipodi:r2="3.6409302"
-         sodipodi:r1="4.7284808"
-         sodipodi:cy="96.547852"
-         sodipodi:cx="41.159508"
-         sodipodi:sides="4"
-         id="path823-226-78"
-         style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.70555556;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-         sodipodi:type="star" />
-      <text
-         id="text817-8-91-59"
-         y="108.54047"
-         x="52.338184"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:6.61458349px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         xml:space="preserve"><tspan
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.26458332px"
-           y="108.54047"
-           x="52.338184"
-           id="tspan815-8-04-2"
-           sodipodi:role="line">T</tspan></text>
-    </g>
-    <g
-       transform="matrix(0.61878596,0,0,0.61878596,23.024194,59.882309)"
-       id="g5641-73">
-      <path
-         transform="matrix(0.53833311,-0.02069077,0.02257551,0.49338976,28.863006,60.727662)"
-         inkscape:transform-center-y="-0.1233255"
-         inkscape:transform-center-x="0.088729829"
-         d="m 44.366742,100.02236 c -0.493309,0.45536 -2.681943,0.19034 -3.352755,0.16351 -0.670812,-0.0268 -2.873621,0.0625 -3.328983,-0.430784 -0.455362,-0.493309 -0.19035,-2.681944 -0.163517,-3.352755 0.02683,-0.670812 -0.06252,-2.873621 0.430786,-3.328983 0.493309,-0.455362 2.681944,-0.19035 3.352756,-0.163517 0.670811,0.02683 2.873621,-0.06252 3.328983,0.430786 0.455362,0.493309 0.190349,2.681944 0.163517,3.352755 -0.02683,0.670812 0.06252,2.873621 -0.430787,3.328988 z"
-         inkscape:randomized="0"
-         inkscape:rounded="0.2"
-         inkscape:flatsided="false"
-         sodipodi:arg2="1.610775"
-         sodipodi:arg1="0.82537685"
-         sodipodi:r2="3.6409302"
-         sodipodi:r1="4.7284808"
-         sodipodi:cy="96.547852"
-         sodipodi:cx="41.159508"
-         sodipodi:sides="4"
-         id="path823-226-64"
-         style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.70555556;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-         sodipodi:type="star" />
-      <text
-         id="text817-8-91-79"
-         y="108.54047"
-         x="52.338184"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:6.61458349px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         xml:space="preserve"><tspan
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.26458332px"
-           y="108.54047"
-           x="52.338184"
-           id="tspan815-8-04-7"
-           sodipodi:role="line">T</tspan></text>
-    </g>
-    <g
-       transform="matrix(0.61878596,0,0,0.61878596,28.081987,59.18065)"
-       id="g5641-2">
-      <path
-         transform="matrix(0.53833311,-0.02069077,0.02257551,0.49338976,28.863006,60.727662)"
-         inkscape:transform-center-y="-0.1233255"
-         inkscape:transform-center-x="0.088729829"
-         d="m 44.366742,100.02236 c -0.493309,0.45536 -2.681943,0.19034 -3.352755,0.16351 -0.670812,-0.0268 -2.873621,0.0625 -3.328983,-0.430784 -0.455362,-0.493309 -0.19035,-2.681944 -0.163517,-3.352755 0.02683,-0.670812 -0.06252,-2.873621 0.430786,-3.328983 0.493309,-0.455362 2.681944,-0.19035 3.352756,-0.163517 0.670811,0.02683 2.873621,-0.06252 3.328983,0.430786 0.455362,0.493309 0.190349,2.681944 0.163517,3.352755 -0.02683,0.670812 0.06252,2.873621 -0.430787,3.328988 z"
-         inkscape:randomized="0"
-         inkscape:rounded="0.2"
-         inkscape:flatsided="false"
-         sodipodi:arg2="1.610775"
-         sodipodi:arg1="0.82537685"
-         sodipodi:r2="3.6409302"
-         sodipodi:r1="4.7284808"
-         sodipodi:cy="96.547852"
-         sodipodi:cx="41.159508"
-         sodipodi:sides="4"
-         id="path823-226-216"
-         style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.70555556;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-         sodipodi:type="star" />
-      <text
-         id="text817-8-91-3"
-         y="108.54047"
-         x="52.338184"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:6.61458349px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         xml:space="preserve"><tspan
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.26458332px"
-           y="108.54047"
-           x="52.338184"
-           id="tspan815-8-04-02"
-           sodipodi:role="line">T</tspan></text>
-    </g>
-    <g
-       transform="matrix(0.61878596,0,0,0.61878596,25.713888,57.572681)"
-       id="g5641-1">
-      <path
-         transform="matrix(0.53833311,-0.02069077,0.02257551,0.49338976,28.863006,60.727662)"
-         inkscape:transform-center-y="-0.1233255"
-         inkscape:transform-center-x="0.088729829"
-         d="m 44.366742,100.02236 c -0.493309,0.45536 -2.681943,0.19034 -3.352755,0.16351 -0.670812,-0.0268 -2.873621,0.0625 -3.328983,-0.430784 -0.455362,-0.493309 -0.19035,-2.681944 -0.163517,-3.352755 0.02683,-0.670812 -0.06252,-2.873621 0.430786,-3.328983 0.493309,-0.455362 2.681944,-0.19035 3.352756,-0.163517 0.670811,0.02683 2.873621,-0.06252 3.328983,0.430786 0.455362,0.493309 0.190349,2.681944 0.163517,3.352755 -0.02683,0.670812 0.06252,2.873621 -0.430787,3.328988 z"
-         inkscape:randomized="0"
-         inkscape:rounded="0.2"
-         inkscape:flatsided="false"
-         sodipodi:arg2="1.610775"
-         sodipodi:arg1="0.82537685"
-         sodipodi:r2="3.6409302"
-         sodipodi:r1="4.7284808"
-         sodipodi:cy="96.547852"
-         sodipodi:cx="41.159508"
-         sodipodi:sides="4"
-         id="path823-226-5"
-         style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.70555556;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-         sodipodi:type="star" />
-      <text
-         id="text817-8-91-65"
-         y="108.54047"
-         x="52.338184"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:6.61458349px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         xml:space="preserve"><tspan
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.26458332px"
-           y="108.54047"
-           x="52.338184"
-           id="tspan815-8-04-00"
-           sodipodi:role="line">T</tspan></text>
-    </g>
-    <g
-       transform="matrix(0.61878596,0,0,0.61878596,28.929825,56.841786)"
-       id="g5641-34">
-      <path
-         transform="matrix(0.53833311,-0.02069077,0.02257551,0.49338976,28.863006,60.727662)"
-         inkscape:transform-center-y="-0.1233255"
-         inkscape:transform-center-x="0.088729829"
-         d="m 44.366742,100.02236 c -0.493309,0.45536 -2.681943,0.19034 -3.352755,0.16351 -0.670812,-0.0268 -2.873621,0.0625 -3.328983,-0.430784 -0.455362,-0.493309 -0.19035,-2.681944 -0.163517,-3.352755 0.02683,-0.670812 -0.06252,-2.873621 0.430786,-3.328983 0.493309,-0.455362 2.681944,-0.19035 3.352756,-0.163517 0.670811,0.02683 2.873621,-0.06252 3.328983,0.430786 0.455362,0.493309 0.190349,2.681944 0.163517,3.352755 -0.02683,0.670812 0.06252,2.873621 -0.430787,3.328988 z"
-         inkscape:randomized="0"
-         inkscape:rounded="0.2"
-         inkscape:flatsided="false"
-         sodipodi:arg2="1.610775"
-         sodipodi:arg1="0.82537685"
-         sodipodi:r2="3.6409302"
-         sodipodi:r1="4.7284808"
-         sodipodi:cy="96.547852"
-         sodipodi:cx="41.159508"
-         sodipodi:sides="4"
-         id="path823-226-66"
-         style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.70555556;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-         sodipodi:type="star" />
-      <text
-         id="text817-8-91-02"
-         y="108.54047"
-         x="52.338184"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:6.61458349px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         xml:space="preserve"><tspan
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.26458332px"
-           y="108.54047"
-           x="52.338184"
-           id="tspan815-8-04-5"
-           sodipodi:role="line">T</tspan></text>
-    </g>
-    <g
-       transform="matrix(0.61878596,0,0,0.61878596,25.129172,55.029167)"
-       id="g5641-895">
-      <path
-         transform="matrix(0.53833311,-0.02069077,0.02257551,0.49338976,28.863006,60.727662)"
-         inkscape:transform-center-y="-0.1233255"
-         inkscape:transform-center-x="0.088729829"
-         d="m 44.366742,100.02236 c -0.493309,0.45536 -2.681943,0.19034 -3.352755,0.16351 -0.670812,-0.0268 -2.873621,0.0625 -3.328983,-0.430784 -0.455362,-0.493309 -0.19035,-2.681944 -0.163517,-3.352755 0.02683,-0.670812 -0.06252,-2.873621 0.430786,-3.328983 0.493309,-0.455362 2.681944,-0.19035 3.352756,-0.163517 0.670811,0.02683 2.873621,-0.06252 3.328983,0.430786 0.455362,0.493309 0.190349,2.681944 0.163517,3.352755 -0.02683,0.670812 0.06252,2.873621 -0.430787,3.328988 z"
-         inkscape:randomized="0"
-         inkscape:rounded="0.2"
-         inkscape:flatsided="false"
-         sodipodi:arg2="1.610775"
-         sodipodi:arg1="0.82537685"
-         sodipodi:r2="3.6409302"
-         sodipodi:r1="4.7284808"
-         sodipodi:cy="96.547852"
-         sodipodi:cx="41.159508"
-         sodipodi:sides="4"
-         id="path823-226-0"
-         style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.70555556;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-         sodipodi:type="star" />
-      <text
-         id="text817-8-91-60"
-         y="108.54047"
-         x="52.338184"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:6.61458349px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         xml:space="preserve"><tspan
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.26458332px"
-           y="108.54047"
-           x="52.338184"
-           id="tspan815-8-04-83"
-           sodipodi:role="line">T</tspan></text>
-    </g>
-    <g
-       transform="matrix(0.61878596,0,0,0.61878596,28.023516,54.269036)"
-       id="g5641-78">
-      <path
-         transform="matrix(0.53833311,-0.02069077,0.02257551,0.49338976,28.863006,60.727662)"
-         inkscape:transform-center-y="-0.1233255"
-         inkscape:transform-center-x="0.088729829"
-         d="m 44.366742,100.02236 c -0.493309,0.45536 -2.681943,0.19034 -3.352755,0.16351 -0.670812,-0.0268 -2.873621,0.0625 -3.328983,-0.430784 -0.455362,-0.493309 -0.19035,-2.681944 -0.163517,-3.352755 0.02683,-0.670812 -0.06252,-2.873621 0.430786,-3.328983 0.493309,-0.455362 2.681944,-0.19035 3.352756,-0.163517 0.670811,0.02683 2.873621,-0.06252 3.328983,0.430786 0.455362,0.493309 0.190349,2.681944 0.163517,3.352755 -0.02683,0.670812 0.06252,2.873621 -0.430787,3.328988 z"
-         inkscape:randomized="0"
-         inkscape:rounded="0.2"
-         inkscape:flatsided="false"
-         sodipodi:arg2="1.610775"
-         sodipodi:arg1="0.82537685"
-         sodipodi:r2="3.6409302"
-         sodipodi:r1="4.7284808"
-         sodipodi:cy="96.547852"
-         sodipodi:cx="41.159508"
-         sodipodi:sides="4"
-         id="path823-226-210"
-         style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.70555556;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-         sodipodi:type="star" />
-      <text
-         id="text817-8-91-58"
-         y="108.54047"
-         x="52.338184"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:6.61458349px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         xml:space="preserve"><tspan
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.26458332px"
-           y="108.54047"
-           x="52.338184"
-           id="tspan815-8-04-55"
-           sodipodi:role="line">T</tspan></text>
-    </g>
-    <g
-       transform="matrix(0.61878596,0,0,0.61878596,22.264064,62.133465)"
-       id="g5641-07">
-      <path
-         transform="matrix(0.53833311,-0.02069077,0.02257551,0.49338976,28.863006,60.727662)"
-         inkscape:transform-center-y="-0.1233255"
-         inkscape:transform-center-x="0.088729829"
-         d="m 44.366742,100.02236 c -0.493309,0.45536 -2.681943,0.19034 -3.352755,0.16351 -0.670812,-0.0268 -2.873621,0.0625 -3.328983,-0.430784 -0.455362,-0.493309 -0.19035,-2.681944 -0.163517,-3.352755 0.02683,-0.670812 -0.06252,-2.873621 0.430786,-3.328983 0.493309,-0.455362 2.681944,-0.19035 3.352756,-0.163517 0.670811,0.02683 2.873621,-0.06252 3.328983,0.430786 0.455362,0.493309 0.190349,2.681944 0.163517,3.352755 -0.02683,0.670812 0.06252,2.873621 -0.430787,3.328988 z"
-         inkscape:randomized="0"
-         inkscape:rounded="0.2"
-         inkscape:flatsided="false"
-         sodipodi:arg2="1.610775"
-         sodipodi:arg1="0.82537685"
-         sodipodi:r2="3.6409302"
-         sodipodi:r1="4.7284808"
-         sodipodi:cy="96.547852"
-         sodipodi:cx="41.159508"
-         sodipodi:sides="4"
-         id="path823-226-38"
-         style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.70555556;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-         sodipodi:type="star" />
-      <text
-         id="text817-8-91-23"
-         y="108.54047"
-         x="52.338184"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:6.61458349px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         xml:space="preserve"><tspan
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.26458332px"
-           y="108.54047"
-           x="52.338184"
-           id="tspan815-8-04-07"
-           sodipodi:role="line">T</tspan></text>
-    </g>
-    <g
-       transform="matrix(0.61878596,0,0,0.61878596,25.450765,61.431807)"
-       id="g5641-77">
-      <path
-         transform="matrix(0.53833311,-0.02069077,0.02257551,0.49338976,28.863006,60.727662)"
-         inkscape:transform-center-y="-0.1233255"
-         inkscape:transform-center-x="0.088729829"
-         d="m 44.366742,100.02236 c -0.493309,0.45536 -2.681943,0.19034 -3.352755,0.16351 -0.670812,-0.0268 -2.873621,0.0625 -3.328983,-0.430784 -0.455362,-0.493309 -0.19035,-2.681944 -0.163517,-3.352755 0.02683,-0.670812 -0.06252,-2.873621 0.430786,-3.328983 0.493309,-0.455362 2.681944,-0.19035 3.352756,-0.163517 0.670811,0.02683 2.873621,-0.06252 3.328983,0.430786 0.455362,0.493309 0.190349,2.681944 0.163517,3.352755 -0.02683,0.670812 0.06252,2.873621 -0.430787,3.328988 z"
-         inkscape:randomized="0"
-         inkscape:rounded="0.2"
-         inkscape:flatsided="false"
-         sodipodi:arg2="1.610775"
-         sodipodi:arg1="0.82537685"
-         sodipodi:r2="3.6409302"
-         sodipodi:r1="4.7284808"
-         sodipodi:cy="96.547852"
-         sodipodi:cx="41.159508"
-         sodipodi:sides="4"
-         id="path823-226-69"
-         style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.70555556;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-         sodipodi:type="star" />
-      <text
-         id="text817-8-91-119"
-         y="108.54047"
-         x="52.338184"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:6.61458349px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         xml:space="preserve"><tspan
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.26458332px"
-           y="108.54047"
-           x="52.338184"
-           id="tspan815-8-04-08"
-           sodipodi:role="line">T</tspan></text>
-    </g>
-    <g
-       transform="matrix(0.61878596,0,0,0.61878596,28.052752,61.519514)"
-       id="g5641-98">
-      <path
-         transform="matrix(0.53833311,-0.02069077,0.02257551,0.49338976,28.863006,60.727662)"
-         inkscape:transform-center-y="-0.1233255"
-         inkscape:transform-center-x="0.088729829"
-         d="m 44.366742,100.02236 c -0.493309,0.45536 -2.681943,0.19034 -3.352755,0.16351 -0.670812,-0.0268 -2.873621,0.0625 -3.328983,-0.430784 -0.455362,-0.493309 -0.19035,-2.681944 -0.163517,-3.352755 0.02683,-0.670812 -0.06252,-2.873621 0.430786,-3.328983 0.493309,-0.455362 2.681944,-0.19035 3.352756,-0.163517 0.670811,0.02683 2.873621,-0.06252 3.328983,0.430786 0.455362,0.493309 0.190349,2.681944 0.163517,3.352755 -0.02683,0.670812 0.06252,2.873621 -0.430787,3.328988 z"
-         inkscape:randomized="0"
-         inkscape:rounded="0.2"
-         inkscape:flatsided="false"
-         sodipodi:arg2="1.610775"
-         sodipodi:arg1="0.82537685"
-         sodipodi:r2="3.6409302"
-         sodipodi:r1="4.7284808"
-         sodipodi:cy="96.547852"
-         sodipodi:cx="41.159508"
-         sodipodi:sides="4"
-         id="path823-226-8"
-         style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.70555556;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-         sodipodi:type="star" />
-      <text
-         id="text817-8-91-03"
-         y="108.54047"
-         x="52.338184"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:6.61458349px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         xml:space="preserve"><tspan
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.26458332px"
-           y="108.54047"
-           x="52.338184"
-           id="tspan815-8-04-70"
-           sodipodi:role="line">T</tspan></text>
-    </g>
-    <g
-       transform="matrix(0.61878596,0,0,0.61878596,31.151746,59.794602)"
-       id="g5641-69">
-      <path
-         transform="matrix(0.53833311,-0.02069077,0.02257551,0.49338976,28.863006,60.727662)"
-         inkscape:transform-center-y="-0.1233255"
-         inkscape:transform-center-x="0.088729829"
-         d="m 44.366742,100.02236 c -0.493309,0.45536 -2.681943,0.19034 -3.352755,0.16351 -0.670812,-0.0268 -2.873621,0.0625 -3.328983,-0.430784 -0.455362,-0.493309 -0.19035,-2.681944 -0.163517,-3.352755 0.02683,-0.670812 -0.06252,-2.873621 0.430786,-3.328983 0.493309,-0.455362 2.681944,-0.19035 3.352756,-0.163517 0.670811,0.02683 2.873621,-0.06252 3.328983,0.430786 0.455362,0.493309 0.190349,2.681944 0.163517,3.352755 -0.02683,0.670812 0.06252,2.873621 -0.430787,3.328988 z"
-         inkscape:randomized="0"
-         inkscape:rounded="0.2"
-         inkscape:flatsided="false"
-         sodipodi:arg2="1.610775"
-         sodipodi:arg1="0.82537685"
-         sodipodi:r2="3.6409302"
-         sodipodi:r1="4.7284808"
-         sodipodi:cy="96.547852"
-         sodipodi:cx="41.159508"
-         sodipodi:sides="4"
-         id="path823-226-217"
-         style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.70555556;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-         sodipodi:type="star" />
-      <text
-         id="text817-8-91-797"
-         y="108.54047"
-         x="52.338184"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:6.61458349px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         xml:space="preserve"><tspan
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.26458332px"
-           y="108.54047"
-           x="52.338184"
-           id="tspan815-8-04-62"
-           sodipodi:role="line">T</tspan></text>
-    </g>
-    <g
-       transform="matrix(0.61878596,0,0,0.61878596,31.736462,57.309559)"
-       id="g5641-71">
-      <path
-         transform="matrix(0.53833311,-0.02069077,0.02257551,0.49338976,28.863006,60.727662)"
-         inkscape:transform-center-y="-0.1233255"
-         inkscape:transform-center-x="0.088729829"
-         d="m 44.366742,100.02236 c -0.493309,0.45536 -2.681943,0.19034 -3.352755,0.16351 -0.670812,-0.0268 -2.873621,0.0625 -3.328983,-0.430784 -0.455362,-0.493309 -0.19035,-2.681944 -0.163517,-3.352755 0.02683,-0.670812 -0.06252,-2.873621 0.430786,-3.328983 0.493309,-0.455362 2.681944,-0.19035 3.352756,-0.163517 0.670811,0.02683 2.873621,-0.06252 3.328983,0.430786 0.455362,0.493309 0.190349,2.681944 0.163517,3.352755 -0.02683,0.670812 0.06252,2.873621 -0.430787,3.328988 z"
-         inkscape:randomized="0"
-         inkscape:rounded="0.2"
-         inkscape:flatsided="false"
-         sodipodi:arg2="1.610775"
-         sodipodi:arg1="0.82537685"
-         sodipodi:r2="3.6409302"
-         sodipodi:r1="4.7284808"
-         sodipodi:cy="96.547852"
-         sodipodi:cx="41.159508"
-         sodipodi:sides="4"
-         id="path823-226-58"
-         style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.70555556;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-         sodipodi:type="star" />
-      <text
-         id="text817-8-91-84"
-         y="108.54047"
-         x="52.338184"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:6.61458349px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         xml:space="preserve"><tspan
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.26458332px"
-           y="108.54047"
-           x="52.338184"
-           id="tspan815-8-04-56"
-           sodipodi:role="line">T</tspan></text>
-    </g>
-    <g
-       transform="matrix(0.61878596,0,0,0.61878596,34.163033,55.263054)"
-       id="g5641-56">
-      <path
-         transform="matrix(0.53833311,-0.02069077,0.02257551,0.49338976,28.863006,60.727662)"
-         inkscape:transform-center-y="-0.1233255"
-         inkscape:transform-center-x="0.088729829"
-         d="m 44.366742,100.02236 c -0.493309,0.45536 -2.681943,0.19034 -3.352755,0.16351 -0.670812,-0.0268 -2.873621,0.0625 -3.328983,-0.430784 -0.455362,-0.493309 -0.19035,-2.681944 -0.163517,-3.352755 0.02683,-0.670812 -0.06252,-2.873621 0.430786,-3.328983 0.493309,-0.455362 2.681944,-0.19035 3.352756,-0.163517 0.670811,0.02683 2.873621,-0.06252 3.328983,0.430786 0.455362,0.493309 0.190349,2.681944 0.163517,3.352755 -0.02683,0.670812 0.06252,2.873621 -0.430787,3.328988 z"
-         inkscape:randomized="0"
-         inkscape:rounded="0.2"
-         inkscape:flatsided="false"
-         sodipodi:arg2="1.610775"
-         sodipodi:arg1="0.82537685"
-         sodipodi:r2="3.6409302"
-         sodipodi:r1="4.7284808"
-         sodipodi:cy="96.547852"
-         sodipodi:cx="41.159508"
-         sodipodi:sides="4"
-         id="path823-226-84"
-         style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.70555556;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-         sodipodi:type="star" />
-      <text
-         id="text817-8-91-88"
-         y="108.54047"
-         x="52.338184"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:6.61458349px;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         xml:space="preserve"><tspan
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:sans-serif;-inkscape-font-specification:sans-serif;stroke-width:0.26458332px"
-           y="108.54047"
-           x="52.338184"
-           id="tspan815-8-04-38"
-           sodipodi:role="line">T</tspan></text>
-    </g>
-    <ellipse
-       style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.44087529;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path5967"
-       cx="75.089897"
-       cy="120.15488"
-       rx="3.0595784"
-       ry="6.408577" />
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.57525826px;line-height:3.97712588px;font-family:'Amiri Quran Colored';-inkscape-font-specification:'Amiri Quran Colored';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:0.15908505px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="72.321075"
-       y="130.08104"
-       id="text5965"
-       transform="scale(1.0291379,0.97168708)"><tspan
-         sodipodi:role="line"
-         id="tspan5963"
-         x="72.321075"
-         y="130.08104"
-         style="font-size:13.57525826px;fill:#ff0000;stroke-width:0.15908505px">?</tspan></text>
-  </g>
-</svg>
similarity index 99%
rename from docs/source/images/eclipseScreenShot.png
rename to docs/source/img/eclipseScreenShot.png
index 4111737..5aa4fc6 100644 (file)
Binary files a/docs/source/images/eclipseScreenShot.png and b/docs/source/img/eclipseScreenShot.png differ
similarity index 99%
rename from docs/source/images/extlink.svg
rename to docs/source/img/extlink.svg
index f882e19..4e4747d 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Font Awesome by Dave Gandy - https://fortawesome.github.com/Font-Awesome 
+<!-- Font Awesome by Dave Gandy - https://fortawesome.github.com/Font-Awesome
      [CC BY-SA 3.0 (https://creativecommons.org/licenses/by-sa/3.0)],
      via Wikimedia Commons -->
 <svg
diff --git a/docs/source/img/graphical-toc.svg b/docs/source/img/graphical-toc.svg
new file mode 100644 (file)
index 0000000..699873a
--- /dev/null
@@ -0,0 +1,7676 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="210.6227mm"
+   height="82.696243mm"
+   viewBox="0 0 210.6227 82.696243"
+   version="1.1"
+   id="SVGRoot"
+   inkscape:version="0.92.3 (2405546, 2018-03-11)"
+   sodipodi:docname="graphical-toc.svg">
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="3.959798"
+     inkscape:cx="131.77503"
+     inkscape:cy="253.06312"
+     inkscape:document-units="mm"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="1019"
+     inkscape:window-x="0"
+     inkscape:window-y="32"
+     inkscape:window-maximized="1"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     objecttolerance="24"
+     gridtolerance="10"
+     guidetolerance="10">
+    <inkscape:grid
+       type="xygrid"
+       id="grid924"
+       visible="true"
+       originx="-2.3081243"
+       originy="-2.3081328" />
+  </sodipodi:namedview>
+  <defs
+     id="defs815">
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Send"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path221889"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(-0.2,0,0,-0.2,-1.2,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Mend"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path221883"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(-0.4,0,0,-0.4,-4,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Lend"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path221877"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <clipPath
+       id="clipPath2104"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path2102"
+         d="M 0,0 H 335.20001 V 110.99023 H 0 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath2108"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path2106"
+         d="m 0,110.99 h 61.801 v -85 H 0 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath2112"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path2110"
+         d="m 84.5,99.689 h 97.801 V 28.791 H 84.5 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath2116"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path2114"
+         d="m 234.699,96.49 h 100.5 v -73.5 h -100.5 z" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath15467">
+      <rect
+         style="opacity:0.93999999;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.14111111;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+         id="rect15469"
+         width="120.38541"
+         height="79.375"
+         x="269.875"
+         y="77.885414"
+         ry="2.5431316e-06" />
+    </clipPath>
+    <clipPath
+       id="clipPath15598"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path15596"
+         d="M 0,0 H 362.835 V 272.126 H 0 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath15632"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path15630"
+         d="M -4.00005,-1 H 349.83139 V 7.00009 H -4.00005 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath15646"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path15644"
+         d="M 0,0 H 5669.291 V 3.985 H 0 Z" />
+    </clipPath>
+    <linearGradient
+       id="linearGradient15654"
+       gradientUnits="userSpaceOnUse"
+       y2="3.9851"
+       x2="0"
+       y1="0"
+       x1="0">
+      <stop
+         id="stop15648"
+         offset="0"
+         style="stop-opacity:1;stop-color:#d6d6f0" />
+      <stop
+         id="stop15650"
+         offset="1.99255"
+         style="stop-opacity:1;stop-color:#d6d6f0" />
+      <stop
+         id="stop15652"
+         offset="3.9851"
+         style="stop-opacity:1;stop-color:#c2c2e8" />
+    </linearGradient>
+    <clipPath
+       id="clipPath15676"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path15674"
+         d="M 0,0 H 8 V 8 H 0 Z" />
+    </clipPath>
+    <radialGradient
+       id="radialGradient15682"
+       gradientUnits="userSpaceOnUse"
+       r="4.0000501"
+       cy="4.0000501"
+       cx="4.0000501"
+       fy="4.0000501"
+       fx="4.0000501">
+      <stop
+         id="stop15678"
+         offset="0"
+         style="stop-opacity:1;stop-color:#808080" />
+      <stop
+         id="stop15680"
+         offset="1"
+         style="stop-opacity:1;stop-color:#ffffff" />
+    </radialGradient>
+    <clipPath
+       id="clipPath15694"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path15692"
+         d="m 344.83133,-7.00008 h 9.00009 v 9.00009 h -9.00009 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath15708"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path15706"
+         d="M 0,0 H 16 V 16 H 0 Z" />
+    </clipPath>
+    <radialGradient
+       id="radialGradient15716"
+       gradientUnits="userSpaceOnUse"
+       r="8.0000896"
+       cy="8.0000896"
+       cx="8.0000896"
+       fy="8.0000896"
+       fx="8.0000896">
+      <stop
+         id="stop15710"
+         offset="0"
+         style="stop-opacity:1;stop-color:#808080" />
+      <stop
+         id="stop15712"
+         offset="4.00005"
+         style="stop-opacity:1;stop-color:#808080" />
+      <stop
+         id="stop15714"
+         offset="8.00009"
+         style="stop-opacity:1;stop-color:#ffffff" />
+    </radialGradient>
+    <clipPath
+       id="clipPath15728"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path15726"
+         d="m 4.00005,-7.00008 h 341.83128 v 5.00005 H 4.00005 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath15742"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path15740"
+         d="M 0,0 H 5669.291 V 8 H 0 Z" />
+    </clipPath>
+    <linearGradient
+       id="linearGradient15750"
+       gradientUnits="userSpaceOnUse"
+       y2="8.0000896"
+       x2="0"
+       y1="0"
+       x1="0">
+      <stop
+         id="stop15744"
+         offset="0"
+         style="stop-opacity:1;stop-color:#ffffff" />
+      <stop
+         id="stop15746"
+         offset="4.00005"
+         style="stop-opacity:1;stop-color:#808080" />
+      <stop
+         id="stop15748"
+         offset="8.00009"
+         style="stop-opacity:1;stop-color:#808080" />
+    </linearGradient>
+    <clipPath
+       id="clipPath15762"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path15760"
+         d="m 349.83139,1 h 4.00005 v 230.51465 h -4.00005 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath15776"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path15774"
+         d="M 0,0 H 8 V 8 H 0 Z" />
+    </clipPath>
+    <radialGradient
+       id="radialGradient15782"
+       gradientUnits="userSpaceOnUse"
+       r="4.0000501"
+       cy="4.0000501"
+       cx="4.0000501"
+       fy="4.0000501"
+       fx="4.0000501">
+      <stop
+         id="stop15778"
+         offset="0"
+         style="stop-opacity:1;stop-color:#808080" />
+      <stop
+         id="stop15780"
+         offset="1"
+         style="stop-opacity:1;stop-color:#ffffff" />
+    </radialGradient>
+    <clipPath
+       id="clipPath15792"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path15790"
+         d="m 349.83139,1 h 4.00005 v 225.51459 h -4.00005 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath15806"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path15804"
+         d="M 0,0 H 5669.291 V 8 H 0 Z" />
+    </clipPath>
+    <mask
+       id="mask15926"
+       height="1"
+       width="1"
+       y="0"
+       x="0"
+       maskUnits="userSpaceOnUse">
+      <image
+         id="image15928"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYoAAABqCAAAAACHJkn6AAAAAXNCSVQI5gpbmQAAAQxJREFUeJzt0UENACAQwDDAv+fjhQb2aBUs2Z5Fw/kdwGNFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkXEBU1YB0yqrKfUAAAAASUVORK5CYII="
+         preserveAspectRatio="none"
+         style="image-rendering:optimizeSpeed"
+         height="1"
+         width="1" />
+    </mask>
+    <clipPath
+       id="clipPath15978"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path15976"
+         d="M 0,0 H 362.835 V 272.126 H 0 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath16012"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path16010"
+         d="M -4.00005,-1 H 349.83139 V 7.00009 H -4.00005 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath16026"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path16024"
+         d="M 0,0 H 5669.291 V 3.985 H 0 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath16056"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path16054"
+         d="M 0,0 H 8 V 8 H 0 Z" />
+    </clipPath>
+    <radialGradient
+       id="radialGradient16062"
+       gradientUnits="userSpaceOnUse"
+       r="4.0000501"
+       cy="4.0000501"
+       cx="4.0000501"
+       fy="4.0000501"
+       fx="4.0000501">
+      <stop
+         id="stop16058"
+         offset="0"
+         style="stop-opacity:1;stop-color:#808080" />
+      <stop
+         id="stop16060"
+         offset="1"
+         style="stop-opacity:1;stop-color:#ffffff" />
+    </radialGradient>
+    <clipPath
+       id="clipPath16074"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path16072"
+         d="m 344.83133,-7.00008 h 9.00009 v 9.00009 h -9.00009 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath16088"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path16086"
+         d="M 0,0 H 16 V 16 H 0 Z" />
+    </clipPath>
+    <radialGradient
+       id="radialGradient16096"
+       gradientUnits="userSpaceOnUse"
+       r="8.0000896"
+       cy="8.0000896"
+       cx="8.0000896"
+       fy="8.0000896"
+       fx="8.0000896">
+      <stop
+         id="stop16090"
+         offset="0"
+         style="stop-opacity:1;stop-color:#808080" />
+      <stop
+         id="stop16092"
+         offset="4.00005"
+         style="stop-opacity:1;stop-color:#808080" />
+      <stop
+         id="stop16094"
+         offset="8.00009"
+         style="stop-opacity:1;stop-color:#ffffff" />
+    </radialGradient>
+    <clipPath
+       id="clipPath16108"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path16106"
+         d="m 4.00005,-7.00008 h 341.83128 v 5.00005 H 4.00005 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath16122"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path16120"
+         d="M 0,0 H 5669.291 V 8 H 0 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath16142"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path16140"
+         d="m 349.83139,1 h 4.00005 v 173.035 h -4.00005 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath16156"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path16154"
+         d="M 0,0 H 8 V 8 H 0 Z" />
+    </clipPath>
+    <radialGradient
+       id="radialGradient16162"
+       gradientUnits="userSpaceOnUse"
+       r="4.0000501"
+       cy="4.0000501"
+       cx="4.0000501"
+       fy="4.0000501"
+       fx="4.0000501">
+      <stop
+         id="stop16158"
+         offset="0"
+         style="stop-opacity:1;stop-color:#808080" />
+      <stop
+         id="stop16160"
+         offset="1"
+         style="stop-opacity:1;stop-color:#ffffff" />
+    </radialGradient>
+    <clipPath
+       id="clipPath16172"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path16170"
+         d="m 349.83139,1 h 4.00005 v 168.03496 h -4.00005 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath16186"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path16184"
+         d="M 0,0 H 5669.291 V 8 H 0 Z" />
+    </clipPath>
+    <mask
+       id="mask16340"
+       height="1"
+       width="1"
+       y="0"
+       x="0"
+       maskUnits="userSpaceOnUse">
+      <image
+         id="image16342"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYoAAABqCAAAAACHJkn6AAAAAXNCSVQI5gpbmQAAAQxJREFUeJzt0UENACAQwDDAv+fjhQb2aBUs2Z5Fw/kdwGNFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkXEBU1YB0yqrKfUAAAAASUVORK5CYII="
+         preserveAspectRatio="none"
+         style="image-rendering:optimizeSpeed"
+         height="1"
+         width="1" />
+    </mask>
+    <clipPath
+       id="clipPath16392"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path16390"
+         d="M 0,0 H 362.835 V 272.126 H 0 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath16434"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path16432"
+         d="M -4.00005,-1 H 349.83139 V 7.00009 H -4.00005 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath16448"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path16446"
+         d="M 0,0 H 5669.291 V 3.985 H 0 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath16478"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path16476"
+         d="M 0,0 H 8 V 8 H 0 Z" />
+    </clipPath>
+    <radialGradient
+       id="radialGradient16484"
+       gradientUnits="userSpaceOnUse"
+       r="4.0000501"
+       cy="4.0000501"
+       cx="4.0000501"
+       fy="4.0000501"
+       fx="4.0000501">
+      <stop
+         id="stop16480"
+         offset="0"
+         style="stop-opacity:1;stop-color:#808080" />
+      <stop
+         id="stop16482"
+         offset="1"
+         style="stop-opacity:1;stop-color:#ffffff" />
+    </radialGradient>
+    <clipPath
+       id="clipPath16496"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path16494"
+         d="m 344.83133,-7.00008 h 9.00009 v 9.00009 h -9.00009 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath16510"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path16508"
+         d="M 0,0 H 16 V 16 H 0 Z" />
+    </clipPath>
+    <radialGradient
+       id="radialGradient16518"
+       gradientUnits="userSpaceOnUse"
+       r="8.0000896"
+       cy="8.0000896"
+       cx="8.0000896"
+       fy="8.0000896"
+       fx="8.0000896">
+      <stop
+         id="stop16512"
+         offset="0"
+         style="stop-opacity:1;stop-color:#808080" />
+      <stop
+         id="stop16514"
+         offset="4.00005"
+         style="stop-opacity:1;stop-color:#808080" />
+      <stop
+         id="stop16516"
+         offset="8.00009"
+         style="stop-opacity:1;stop-color:#ffffff" />
+    </radialGradient>
+    <clipPath
+       id="clipPath16530"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path16528"
+         d="m 4.00005,-7.00008 h 341.83128 v 5.00005 H 4.00005 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath16544"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path16542"
+         d="M 0,0 H 5669.291 V 8 H 0 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath16564"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path16562"
+         d="m 349.83139,1 h 4.00005 v 130.02907 h -4.00005 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath16578"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path16576"
+         d="M 0,0 H 8 V 8 H 0 Z" />
+    </clipPath>
+    <radialGradient
+       id="radialGradient16584"
+       gradientUnits="userSpaceOnUse"
+       r="4.0000501"
+       cy="4.0000501"
+       cx="4.0000501"
+       fy="4.0000501"
+       fx="4.0000501">
+      <stop
+         id="stop16580"
+         offset="0"
+         style="stop-opacity:1;stop-color:#808080" />
+      <stop
+         id="stop16582"
+         offset="1"
+         style="stop-opacity:1;stop-color:#ffffff" />
+    </radialGradient>
+    <clipPath
+       id="clipPath16594"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path16592"
+         d="m 349.83139,1 h 4.00005 v 125.029 h -4.00005 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath16608"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path16606"
+         d="M 0,0 H 5669.291 V 8 H 0 Z" />
+    </clipPath>
+    <mask
+       id="mask16676"
+       height="1"
+       width="1"
+       y="0"
+       x="0"
+       maskUnits="userSpaceOnUse">
+      <image
+         id="image16678"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYoAAABqCAAAAACHJkn6AAAAAXNCSVQI5gpbmQAAAQxJREFUeJzt0UENACAQwDDAv+fjhQb2aBUs2Z5Fw/kdwGNFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkXEBU1YB0yqrKfUAAAAASUVORK5CYII="
+         preserveAspectRatio="none"
+         style="image-rendering:optimizeSpeed"
+         height="1"
+         width="1" />
+    </mask>
+    <clipPath
+       id="clipPath16728"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path16726"
+         d="M 0,0 H 362.835 V 272.126 H 0 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath16760"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path16758"
+         d="M 0,0 H 8 V 8 H 0 Z" />
+    </clipPath>
+    <radialGradient
+       id="radialGradient16766"
+       gradientUnits="userSpaceOnUse"
+       r="4.0000501"
+       cy="4.0000501"
+       cx="4.0000501"
+       fy="4.0000501"
+       fx="4.0000501">
+      <stop
+         id="stop16762"
+         offset="0"
+         style="stop-opacity:1;stop-color:#808080" />
+      <stop
+         id="stop16764"
+         offset="1"
+         style="stop-opacity:1;stop-color:#ffffff" />
+    </radialGradient>
+    <clipPath
+       id="clipPath16778"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path16776"
+         d="m 344.83133,-7.00008 h 9.00009 v 9.00009 h -9.00009 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath16792"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path16790"
+         d="M 0,0 H 16 V 16 H 0 Z" />
+    </clipPath>
+    <radialGradient
+       id="radialGradient16800"
+       gradientUnits="userSpaceOnUse"
+       r="8.0000896"
+       cy="8.0000896"
+       cx="8.0000896"
+       fy="8.0000896"
+       fx="8.0000896">
+      <stop
+         id="stop16794"
+         offset="0"
+         style="stop-opacity:1;stop-color:#808080" />
+      <stop
+         id="stop16796"
+         offset="4.00005"
+         style="stop-opacity:1;stop-color:#808080" />
+      <stop
+         id="stop16798"
+         offset="8.00009"
+         style="stop-opacity:1;stop-color:#ffffff" />
+    </radialGradient>
+    <clipPath
+       id="clipPath16812"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path16810"
+         d="m 4.00005,-7.00008 h 341.83128 v 5.00005 H 4.00005 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath16826"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path16824"
+         d="M 0,0 H 5669.291 V 8 H 0 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath16846"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path16844"
+         d="m 349.83139,1 h 4.00005 v 208.09842 h -4.00005 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath16860"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path16858"
+         d="M 0,0 H 8 V 8 H 0 Z" />
+    </clipPath>
+    <radialGradient
+       id="radialGradient16866"
+       gradientUnits="userSpaceOnUse"
+       r="4.0000501"
+       cy="4.0000501"
+       cx="4.0000501"
+       fy="4.0000501"
+       fx="4.0000501">
+      <stop
+         id="stop16862"
+         offset="0"
+         style="stop-opacity:1;stop-color:#808080" />
+      <stop
+         id="stop16864"
+         offset="1"
+         style="stop-opacity:1;stop-color:#ffffff" />
+    </radialGradient>
+    <clipPath
+       id="clipPath16876"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path16874"
+         d="m 349.83139,1 h 4.00005 v 203.09836 h -4.00005 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath16890"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path16888"
+         d="M 0,0 H 5669.291 V 8 H 0 Z" />
+    </clipPath>
+    <mask
+       id="mask16976"
+       height="1"
+       width="1"
+       y="0"
+       x="0"
+       maskUnits="userSpaceOnUse">
+      <image
+         id="image16978"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYoAAABqCAAAAACHJkn6AAAAAXNCSVQI5gpbmQAAAQxJREFUeJzt0UENACAQwDDAv+fjhQb2aBUs2Z5Fw/kdwGNFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkXEBU1YB0yqrKfUAAAAASUVORK5CYII="
+         preserveAspectRatio="none"
+         style="image-rendering:optimizeSpeed"
+         height="1"
+         width="1" />
+    </mask>
+    <clipPath
+       id="clipPath17028"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path17026"
+         d="M 0,0 H 362.835 V 272.126 H 0 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath17060"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path17058"
+         d="M 0,0 H 8 V 8 H 0 Z" />
+    </clipPath>
+    <radialGradient
+       id="radialGradient17066"
+       gradientUnits="userSpaceOnUse"
+       r="4.0000501"
+       cy="4.0000501"
+       cx="4.0000501"
+       fy="4.0000501"
+       fx="4.0000501">
+      <stop
+         id="stop17062"
+         offset="0"
+         style="stop-opacity:1;stop-color:#808080" />
+      <stop
+         id="stop17064"
+         offset="1"
+         style="stop-opacity:1;stop-color:#ffffff" />
+    </radialGradient>
+    <clipPath
+       id="clipPath17078"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path17076"
+         d="m 344.83133,-7.00008 h 9.00009 v 9.00009 h -9.00009 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath17092"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path17090"
+         d="M 0,0 H 16 V 16 H 0 Z" />
+    </clipPath>
+    <radialGradient
+       id="radialGradient17100"
+       gradientUnits="userSpaceOnUse"
+       r="8.0000896"
+       cy="8.0000896"
+       cx="8.0000896"
+       fy="8.0000896"
+       fx="8.0000896">
+      <stop
+         id="stop17094"
+         offset="0"
+         style="stop-opacity:1;stop-color:#808080" />
+      <stop
+         id="stop17096"
+         offset="4.00005"
+         style="stop-opacity:1;stop-color:#808080" />
+      <stop
+         id="stop17098"
+         offset="8.00009"
+         style="stop-opacity:1;stop-color:#ffffff" />
+    </radialGradient>
+    <clipPath
+       id="clipPath17112"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path17110"
+         d="m 4.00005,-7.00008 h 341.83128 v 5.00005 H 4.00005 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath17126"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path17124"
+         d="M 0,0 H 5669.291 V 8 H 0 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath17146"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path17144"
+         d="m 349.83139,1 h 4.00005 v 216.06863 h -4.00005 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath17160"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path17158"
+         d="M 0,0 H 8 V 8 H 0 Z" />
+    </clipPath>
+    <radialGradient
+       id="radialGradient17166"
+       gradientUnits="userSpaceOnUse"
+       r="4.0000501"
+       cy="4.0000501"
+       cx="4.0000501"
+       fy="4.0000501"
+       fx="4.0000501">
+      <stop
+         id="stop17162"
+         offset="0"
+         style="stop-opacity:1;stop-color:#808080" />
+      <stop
+         id="stop17164"
+         offset="1"
+         style="stop-opacity:1;stop-color:#ffffff" />
+    </radialGradient>
+    <clipPath
+       id="clipPath17176"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path17174"
+         d="m 349.83139,1 h 4.00005 v 211.06857 h -4.00005 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath17190"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path17188"
+         d="M 0,0 H 5669.291 V 8 H 0 Z" />
+    </clipPath>
+    <mask
+       id="mask17326"
+       height="1"
+       width="1"
+       y="0"
+       x="0"
+       maskUnits="userSpaceOnUse">
+      <image
+         id="image17328"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYoAAABqCAAAAACHJkn6AAAAAXNCSVQI5gpbmQAAAQxJREFUeJzt0UENACAQwDDAv+fjhQb2aBUs2Z5Fw/kdwGNFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkXEBU1YB0yqrKfUAAAAASUVORK5CYII="
+         preserveAspectRatio="none"
+         style="image-rendering:optimizeSpeed"
+         height="1"
+         width="1" />
+    </mask>
+    <clipPath
+       id="clipPath17378"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path17376"
+         d="M 0,0 H 362.835 V 272.126 H 0 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath17398"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path17396"
+         d="M 0,0 H 4.693 V 4.693 H 0 Z" />
+    </clipPath>
+    <radialGradient
+       id="radialGradient17410"
+       gradientUnits="userSpaceOnUse"
+       r="2.34677"
+       cy="2.34677"
+       cx="2.34677"
+       fy="3.3476"
+       fx="1.5279">
+      <stop
+         id="stop17400"
+         offset="0"
+         style="stop-opacity:1;stop-color:#f9f9fd" />
+      <stop
+         id="stop17402"
+         offset="0.72784"
+         style="stop-opacity:1;stop-color:#e0e0f4" />
+      <stop
+         id="stop17404"
+         offset="1.45572"
+         style="stop-opacity:1;stop-color:#d3d3e5" />
+      <stop
+         id="stop17406"
+         offset="2.00165"
+         style="stop-opacity:1;stop-color:#d1d1de" />
+      <stop
+         id="stop17408"
+         offset="2.34677"
+         style="stop-opacity:1;stop-color:#ffffff" />
+    </radialGradient>
+    <clipPath
+       id="clipPath17434"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path17432"
+         d="M 0,0 H 4.693 V 4.693 H 0 Z" />
+    </clipPath>
+    <radialGradient
+       id="radialGradient17446"
+       gradientUnits="userSpaceOnUse"
+       r="2.34677"
+       cy="2.34677"
+       cx="2.34677"
+       fy="3.3476"
+       fx="1.5279">
+      <stop
+         id="stop17436"
+         offset="0"
+         style="stop-opacity:1;stop-color:#f9f9fd" />
+      <stop
+         id="stop17438"
+         offset="0.72784"
+         style="stop-opacity:1;stop-color:#e0e0f4" />
+      <stop
+         id="stop17440"
+         offset="1.45572"
+         style="stop-opacity:1;stop-color:#d3d3e5" />
+      <stop
+         id="stop17442"
+         offset="2.00165"
+         style="stop-opacity:1;stop-color:#d1d1de" />
+      <stop
+         id="stop17444"
+         offset="2.34677"
+         style="stop-opacity:1;stop-color:#ffffff" />
+    </radialGradient>
+    <clipPath
+       id="clipPath17468"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path17466"
+         d="M 0,0 H 4.693 V 4.693 H 0 Z" />
+    </clipPath>
+    <radialGradient
+       id="radialGradient17480"
+       gradientUnits="userSpaceOnUse"
+       r="2.34677"
+       cy="2.34677"
+       cx="2.34677"
+       fy="3.3476"
+       fx="1.5279">
+      <stop
+         id="stop17470"
+         offset="0"
+         style="stop-opacity:1;stop-color:#e0e0f4" />
+      <stop
+         id="stop17472"
+         offset="0.72784"
+         style="stop-opacity:1;stop-color:#6666c6" />
+      <stop
+         id="stop17474"
+         offset="1.45572"
+         style="stop-opacity:1;stop-color:#24247d" />
+      <stop
+         id="stop17476"
+         offset="2.00165"
+         style="stop-opacity:1;stop-color:#191959" />
+      <stop
+         id="stop17478"
+         offset="2.34677"
+         style="stop-opacity:1;stop-color:#ffffff" />
+    </radialGradient>
+    <clipPath
+       id="clipPath17516"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path17514"
+         d="M 0,0 H 4.693 V 4.693 H 0 Z" />
+    </clipPath>
+    <radialGradient
+       id="radialGradient17528"
+       gradientUnits="userSpaceOnUse"
+       r="2.34677"
+       cy="2.34677"
+       cx="2.34677"
+       fy="3.3476"
+       fx="1.5279">
+      <stop
+         id="stop17518"
+         offset="0"
+         style="stop-opacity:1;stop-color:#f9f9fd" />
+      <stop
+         id="stop17520"
+         offset="0.72784"
+         style="stop-opacity:1;stop-color:#e0e0f4" />
+      <stop
+         id="stop17522"
+         offset="1.45572"
+         style="stop-opacity:1;stop-color:#d3d3e5" />
+      <stop
+         id="stop17524"
+         offset="2.00165"
+         style="stop-opacity:1;stop-color:#d1d1de" />
+      <stop
+         id="stop17526"
+         offset="2.34677"
+         style="stop-opacity:1;stop-color:#ffffff" />
+    </radialGradient>
+    <mask
+       id="mask17544"
+       height="1"
+       width="1"
+       y="0"
+       x="0"
+       maskUnits="userSpaceOnUse">
+      <image
+         id="image17546"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYoAAABqCAAAAACHJkn6AAAAAXNCSVQI5gpbmQAAAQxJREFUeJzt0UENACAQwDDAv+fjhQb2aBUs2Z5Fw/kdwGNFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkXEBU1YB0yqrKfUAAAAASUVORK5CYII="
+         preserveAspectRatio="none"
+         style="image-rendering:optimizeSpeed"
+         height="1"
+         width="1" />
+    </mask>
+    <clipPath
+       id="clipPath17596"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path17594"
+         d="M 0,0 H 362.835 V 272.126 H 0 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath17628"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path17626"
+         d="M 0,0 H 8 V 8 H 0 Z" />
+    </clipPath>
+    <radialGradient
+       id="radialGradient17634"
+       gradientUnits="userSpaceOnUse"
+       r="4.0000501"
+       cy="4.0000501"
+       cx="4.0000501"
+       fy="4.0000501"
+       fx="4.0000501">
+      <stop
+         id="stop17630"
+         offset="0"
+         style="stop-opacity:1;stop-color:#808080" />
+      <stop
+         id="stop17632"
+         offset="1"
+         style="stop-opacity:1;stop-color:#ffffff" />
+    </radialGradient>
+    <clipPath
+       id="clipPath17646"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path17644"
+         d="m 344.83133,-7.00008 h 9.00009 v 9.00009 h -9.00009 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath17660"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path17658"
+         d="M 0,0 H 16 V 16 H 0 Z" />
+    </clipPath>
+    <radialGradient
+       id="radialGradient17668"
+       gradientUnits="userSpaceOnUse"
+       r="8.0000896"
+       cy="8.0000896"
+       cx="8.0000896"
+       fy="8.0000896"
+       fx="8.0000896">
+      <stop
+         id="stop17662"
+         offset="0"
+         style="stop-opacity:1;stop-color:#808080" />
+      <stop
+         id="stop17664"
+         offset="4.00005"
+         style="stop-opacity:1;stop-color:#808080" />
+      <stop
+         id="stop17666"
+         offset="8.00009"
+         style="stop-opacity:1;stop-color:#ffffff" />
+    </radialGradient>
+    <clipPath
+       id="clipPath17680"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path17678"
+         d="m 4.00005,-7.00008 h 341.83128 v 5.00005 H 4.00005 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath17694"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path17692"
+         d="M 0,0 H 5669.291 V 8 H 0 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath17714"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path17712"
+         d="m 349.83139,1 h 4.00005 v 215.48747 h -4.00005 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath17728"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path17726"
+         d="M 0,0 H 8 V 8 H 0 Z" />
+    </clipPath>
+    <radialGradient
+       id="radialGradient17734"
+       gradientUnits="userSpaceOnUse"
+       r="4.0000501"
+       cy="4.0000501"
+       cx="4.0000501"
+       fy="4.0000501"
+       fx="4.0000501">
+      <stop
+         id="stop17730"
+         offset="0"
+         style="stop-opacity:1;stop-color:#808080" />
+      <stop
+         id="stop17732"
+         offset="1"
+         style="stop-opacity:1;stop-color:#ffffff" />
+    </radialGradient>
+    <clipPath
+       id="clipPath17744"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path17742"
+         d="m 349.83139,1 h 4.00005 v 210.48743 h -4.00005 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath17758"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path17756"
+         d="M 0,0 H 5669.291 V 8 H 0 Z" />
+    </clipPath>
+    <mask
+       id="mask17910"
+       height="1"
+       width="1"
+       y="0"
+       x="0"
+       maskUnits="userSpaceOnUse">
+      <image
+         id="image17912"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYoAAABqCAAAAACHJkn6AAAAAXNCSVQI5gpbmQAAAQxJREFUeJzt0UENACAQwDDAv+fjhQb2aBUs2Z5Fw/kdwGNFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkXEBU1YB0yqrKfUAAAAASUVORK5CYII="
+         preserveAspectRatio="none"
+         style="image-rendering:optimizeSpeed"
+         height="1"
+         width="1" />
+    </mask>
+    <clipPath
+       id="clipPath17962"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path17960"
+         d="M 0,0 H 362.835 V 272.126 H 0 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath17994"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path17992"
+         d="M 0,0 H 8 V 8 H 0 Z" />
+    </clipPath>
+    <radialGradient
+       id="radialGradient18000"
+       gradientUnits="userSpaceOnUse"
+       r="4.0000501"
+       cy="4.0000501"
+       cx="4.0000501"
+       fy="4.0000501"
+       fx="4.0000501">
+      <stop
+         id="stop17996"
+         offset="0"
+         style="stop-opacity:1;stop-color:#808080" />
+      <stop
+         id="stop17998"
+         offset="1"
+         style="stop-opacity:1;stop-color:#ffffff" />
+    </radialGradient>
+    <clipPath
+       id="clipPath18012"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path18010"
+         d="m 344.83133,-7.00008 h 9.00009 v 9.00009 h -9.00009 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath18026"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path18024"
+         d="M 0,0 H 16 V 16 H 0 Z" />
+    </clipPath>
+    <radialGradient
+       id="radialGradient18034"
+       gradientUnits="userSpaceOnUse"
+       r="8.0000896"
+       cy="8.0000896"
+       cx="8.0000896"
+       fy="8.0000896"
+       fx="8.0000896">
+      <stop
+         id="stop18028"
+         offset="0"
+         style="stop-opacity:1;stop-color:#808080" />
+      <stop
+         id="stop18030"
+         offset="4.00005"
+         style="stop-opacity:1;stop-color:#808080" />
+      <stop
+         id="stop18032"
+         offset="8.00009"
+         style="stop-opacity:1;stop-color:#ffffff" />
+    </radialGradient>
+    <clipPath
+       id="clipPath18046"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path18044"
+         d="m 4.00005,-7.00008 h 341.83128 v 5.00005 H 4.00005 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath18060"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path18058"
+         d="M 0,0 H 5669.291 V 8 H 0 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath18080"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path18078"
+         d="m 349.83139,1 h 4.00005 v 199.54704 h -4.00005 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath18094"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path18092"
+         d="M 0,0 H 8 V 8 H 0 Z" />
+    </clipPath>
+    <radialGradient
+       id="radialGradient18100"
+       gradientUnits="userSpaceOnUse"
+       r="4.0000501"
+       cy="4.0000501"
+       cx="4.0000501"
+       fy="4.0000501"
+       fx="4.0000501">
+      <stop
+         id="stop18096"
+         offset="0"
+         style="stop-opacity:1;stop-color:#808080" />
+      <stop
+         id="stop18098"
+         offset="1"
+         style="stop-opacity:1;stop-color:#ffffff" />
+    </radialGradient>
+    <clipPath
+       id="clipPath18110"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path18108"
+         d="m 349.83139,1 h 4.00005 v 194.547 h -4.00005 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath18124"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path18122"
+         d="M 0,0 H 5669.291 V 8 H 0 Z" />
+    </clipPath>
+    <mask
+       id="mask18246"
+       height="1"
+       width="1"
+       y="0"
+       x="0"
+       maskUnits="userSpaceOnUse">
+      <image
+         id="image18248"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYoAAABqCAAAAACHJkn6AAAAAXNCSVQI5gpbmQAAAQxJREFUeJzt0UENACAQwDDAv+fjhQb2aBUs2Z5Fw/kdwGNFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkWFFhhUZVmRYkXEBU1YB0yqrKfUAAAAASUVORK5CYII="
+         preserveAspectRatio="none"
+         style="image-rendering:optimizeSpeed"
+         height="1"
+         width="1" />
+    </mask>
+    <clipPath
+       id="clipPath32382"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path32380"
+         d="M 0,0 H 229 V 399 H 0 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath32420"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path32418"
+         d="M 0,3990 V 0 h 2290 v 3990 z m 613.109,-551.39 -85.035,-44.72 17.637,-33.39 85.035,44.73 v 0 l -75.586,-18.9 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath32432"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path32430"
+         d="M 0,3990 V 0 h 2290 v 3990 z m 1622.21,-558.95 85.67,-42.2 16.37,34.01 -85.03,42.21 v 0 l 59.21,-51.03 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath32444"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path32442"
+         d="M 0,3990 V 0 H 2290 V 3990 Z M 1093.72,377.926 V 282.18 h 37.8 v 95.746 0 l -18.9,-75.586 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath32456"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path32454"
+         d="M 0,3990 V 0 h 2290 v 3990 z m 2005.82,-1777.8 26.45,-91.97 35.91,10.08 -26.46,91.96 v 0 l 3.15,-78.11 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath32468"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path32466"
+         d="M 0,3990 V 0 h 2290 v 3990 z m 1972.43,-1813.08 80.63,-51.65 20.16,32.12 -80.63,51.02 v 0 l 54.17,-56.68 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath32480"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path32478"
+         d="M 0,3990 V 0 h 2290 v 3990 z m 1226.63,-1773.39 -47.24,-83.15 32.75,-18.27 47.25,82.52 v 0 l -53.54,-56.69 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath32492"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path32490"
+         d="M 0,3990 V 0 h 2290 v 3990 z m 1087.43,-1796.07 51.02,-80.63 32.12,20.16 -51.65,80.63 v 0 l 25.2,-74.33 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath32504"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path32502"
+         d="M 0,3990 V 0 h 2290 v 3990 z m 212.492,-1796.07 -28.344,-91.34 36.536,-11.34 27.714,91.34 v 0 l -39.683,-66.77 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath32516"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path32514"
+         d="M 0,3990 V 0 h 2290 v 3990 z m 1063.49,-2946.9 71.81,-62.991 25.19,28.351 -71.81,62.99 v 0 l 44.73,-64.25 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath32528"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path32526"
+         d="M 0,3990 V 0 H 2290 V 3990 Z M 1122.07,1086.56 v -95.74 h 37.79 v 95.74 0 l -18.9,-75.58 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath32540"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path32538"
+         d="M 0,3990 V 0 h 2290 v 3990 z m 1188.21,-2914.77 -67.4,-68.03 26.46,-26.458 68.02,67.398 v 0 l -66.77,-40.31 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath32554"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path32552"
+         d="M 0,3990 V 0 h 2290 v 3990 z m 295.012,-1820.64 -80,-52.91 21.418,-31.49 79.367,52.91 v 0 l -73.067,-26.46 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath32612"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path32610"
+         d="M 0,0 H 263 V 168 H 0 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath32702"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path32700"
+         d="M 0,1680 V 0 h 2630 v 1680 z m 1459.41,-1348.086 -4.41,73.699 -37.79,-1.89 4.4,-73.7 v 0 l 15.75,57.325 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath32716"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path32714"
+         d="M 0,1680 V 0 h 2630 v 1680 z m 770.297,-369.22 -5.668,-73.07 37.793,-3.15 5.672,73.7 v 0 l -22.676,-55.43 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath32780"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path32778"
+         d="M 0,1680 V 0 H 2630 V 1680 Z M 2172.46,7.51562 h 95.74 V 45.3086 h -95.74 v 0 l 75.58,-18.8945 z M 1597.36,365.301 v 95.742 h -37.8 v -95.742 0 l 18.9,75.586 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath32796"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path32794"
+         d="M 0,1680 V 0 h 2630 v 1680 z m 1577.2,-453.63 h 95.75 v 37.8 h -95.75 v 0 l 75.59,-18.9 z m -575.1,357.79 v 95.74 h -37.791 v -95.74 0 l 18.894,75.59 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath32832"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path32830"
+         d="M 0,0 H 1744 V 1544 H 0 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath32866"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path32864"
+         d="M 0,0 H 334 V 241 H 0 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath2504"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path2502"
+         d="M 0,0 H 576 V 288 H 0 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath2518"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path2516"
+         d="M 0,0 H 576 V 288 H 0 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath2530"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path2528"
+         d="m 58.18,37.28 h 204.5 V 259.22 H 58.18 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath17130"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path17128"
+         d="m 266.28,37.28 h 204.5 v 221.94 h -204.5 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath30600"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path30598"
+         d="M 0,0 H 118 V 119 H 0 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath30610"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path30608"
+         d="M 0,1190 V 0 H 1180 V 1190 Z M 897.102,178.457 h 57.32 v 18.895 h -57.32 v 0 l 37.793,-9.446 z M 709.391,197.352 H 652.07 v -18.895 h 57.321 v 0 l -37.793,9.449 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath30628"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path30626"
+         d="M 0,1190 V 0 H 1180 V 1190 Z M 415.227,178.457 h 57.324 v 18.895 h -57.324 v 0 l 37.796,-9.446 z M 227.52,197.352 h -57.325 v -18.895 h 57.325 v 0 l -37.797,9.449 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath30646"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path30644"
+         d="M 0,1190 V 0 H 1180 V 1190 Z M 500.266,235.148 h 57.32 v 18.895 h -57.32 v 0 l 37.793,-9.445 z M 227.52,254.043 h -57.325 v -18.895 h 57.325 v 0 l -37.797,9.45 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath30678"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path30676"
+         d="M 0,1190 V 0 h 1180 v 1190 z m 291.137,-538.488 25.828,-51.024 17.008,8.821 -25.828,51.019 v 0 l 8.82,-38.422 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath30692"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path30690"
+         d="M 0,1190 V 0 h 1180 v 1190 z m 404.52,-538.488 25.828,-51.024 17.004,8.821 -25.825,51.019 v 0 l 8.821,-38.422 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath30706"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path30704"
+         d="M 0,1190 V 0 h 1180 v 1190 z m 507.824,-546.676 25.824,-51.023 17.008,8.82 -25.824,51.02 v 0 l 8.816,-38.422 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath30724"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path30722"
+         d="M 0,1190 V 0 h 1180 v 1190 z m 912.848,-823.203 28.347,-49.762 16.375,9.449 -28.343,49.762 v 0 l 10.707,-37.797 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath30738"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path30736"
+         d="M 0,1190 V 0 h 1180 v 1190 z m 645.773,-651.242 28.344,49.762 -16.379,9.449 -28.343,-49.762 v 0 l 27.085,27.715 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath30752"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path30750"
+         d="M 0,1190 V 0 h 1180 v 1190 z m 147.52,-227.949 28.347,-49.762 16.375,9.449 -28.344,49.762 v 0 l 10.707,-37.793 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath30766"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path30764"
+         d="M 0,1190 V 0 h 1180 v 1190 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath30772"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path30770"
+         d="M 0,1190 V 0 h 1180 v 1190 z m 447.352,-55.98 28.347,49.76 -16.379,9.45 -28.343,-49.77 v 0 l 27.085,27.72 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath30890"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path30888"
+         d="M 0,0 H 147 V 119 H 0 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath30900"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path30898"
+         d="M 0,1190 V 0 H 1470 V 1190 Z M 698.043,178.457 h 57.32 v 18.895 h -57.32 v 0 l 37.793,-9.446 z m -499.512,18.895 h -57.32 v -18.895 h 57.32 v 0 l -37.793,9.449 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath30918"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path30916"
+         d="M 0,1190 V 0 H 1470 V 1190 Z M 1264.95,178.457 h 57.32 v 18.895 h -57.32 v 0 l 37.8,-9.446 z m -471.161,18.895 h -57.32 v -18.895 h 57.32 v 0 l -37.797,9.449 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath30936"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path30934"
+         d="M 0,1190 V 0 H 1470 V 1190 Z M 414.59,235.148 h 57.32 v 18.895 h -57.32 v 0 l 37.793,-9.445 z m -187.711,18.895 h -57.32 v -18.895 h 57.32 v 0 l -37.797,9.45 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath30966"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path30964"
+         d="M 0,1190 V 0 h 1470 v 1190 z m 970.789,-544.156 25.828,-51.024 17.003,8.821 -25.823,51.019 v 0 l 8.82,-38.422 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath30980"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path30978"
+         d="M 0,1190 V 0 h 1470 v 1190 z m 1027.48,-544.156 25.82,-51.024 17.01,8.821 -25.82,51.019 v 0 l 8.81,-38.422 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath30994"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path30992"
+         d="M 0,1190 V 0 h 1470 v 1190 z m 1086.69,-544.156 25.83,-51.024 17,8.821 -25.82,51.019 v 0 l 8.82,-38.422 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath31008"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path31006"
+         d="M 0,1190 V 0 h 1470 v 1190 z m 1140.86,-544.156 25.83,-51.024 17.01,8.821 -25.83,51.019 v 0 l 8.82,-38.422 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath31022"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path31020"
+         d="M 0,1190 V 0 h 1470 v 1190 z m 1197.55,-549.828 25.83,-51.02 17.01,8.817 -25.83,51.023 v 0 l 8.82,-38.426 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath31036"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path31034"
+         d="M 0,1190 V 0 h 1470 v 1190 z m 916.617,-542.898 25.828,-51.02 17.008,8.816 -25.828,51.024 v 0 l 8.82,-38.426 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath31050"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path31048"
+         d="M 0,1190 V 0 h 1470 v 1190 z m 859.926,-542.898 25.828,-51.02 17.008,8.816 -25.828,51.024 v 0 l 8.82,-38.426 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath31064"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path31062"
+         d="M 0,1190 V 0 h 1470 v 1190 z m 1252.98,-535.969 25.83,-51.023 17.01,8.82 -25.83,51.02 v 0 l 8.82,-38.422 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath31082"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path31080"
+         d="M 0,1190 V 0 h 1470 v 1190 z m 1289.52,-830.133 28.34,-49.762 16.38,9.45 -28.34,49.761 v 0 l 10.71,-37.793 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath31096"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path31094"
+         d="M 0,1190 V 0 h 1470 v 1190 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath31102"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path31100"
+         d="M 0,1190 V 0 h 1470 v 1190 z m 446.711,-55.98 28.348,49.76 -16.379,9.45 -28.344,-49.77 v 0 l 27.086,27.72 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath31116"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path31114"
+         d="M 0,1190 V 0 h 1470 v 1190 z m 146.879,-227.949 28.348,-49.762 16.375,9.449 -28.344,49.762 v 0 l 10.707,-37.793 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath31130"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path31128"
+         d="M 0,1190 V 0 h 1470 v 1190 z m 730.168,-651.242 28.344,49.762 -16.375,9.449 -28.348,-49.762 v 0 l 27.086,27.715 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath31236"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path31234"
+         d="M 0,0 H 147 V 119 H 0 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath31246"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path31244"
+         d="M 0,1190 V 0 H 1470 V 1190 Z M 697.957,178.004 h 57.32 v 18.898 h -57.32 v 0 l 37.793,-9.449 z m -499.512,18.898 h -57.32 v -18.898 h 57.32 v 0 l -37.793,9.449 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath31264"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path31262"
+         d="M 0,1190 V 0 H 1470 V 1190 Z M 1264.87,178.004 h 57.32 v 18.898 h -57.32 v 0 l 37.79,-9.449 z m -471.171,18.898 h -57.32 v -18.898 h 57.32 v 0 l -37.793,9.449 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath31292"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path31290"
+         d="M 0,1190 V 0 h 1470 v 1190 z m 970.703,-544.609 25.824,-51.024 17.013,8.821 -25.829,51.019 v 0 l 8.816,-38.422 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath31306"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path31304"
+         d="M 0,1190 V 0 h 1470 v 1190 z m 1027.39,-544.609 25.83,-51.024 17.01,8.821 -25.83,51.019 v 0 l 8.82,-38.422 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath31320"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path31318"
+         d="M 0,1190 V 0 h 1470 v 1190 z m 1086.61,-544.609 25.82,-51.024 17.01,8.821 -25.83,51.019 v 0 l 8.82,-38.422 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath31334"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path31332"
+         d="M 0,1190 V 0 h 1470 v 1190 z m 1140.78,-544.609 25.82,-51.024 17.01,8.821 -25.83,51.019 v 0 l 8.82,-38.422 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath31348"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path31346"
+         d="M 0,1190 V 0 h 1470 v 1190 z m 1197.46,-550.281 25.83,-51.02 17.01,8.817 -25.83,51.023 v 0 l 8.82,-38.422 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath31362"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path31360"
+         d="M 0,1190 V 0 h 1470 v 1190 z m 916.531,-543.352 25.824,-51.019 17.008,8.816 -25.824,51.024 v 0 l 8.816,-38.426 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath31376"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path31374"
+         d="M 0,1190 V 0 h 1470 v 1190 z m 859.84,-543.352 25.824,-51.019 17.008,8.816 -25.824,51.024 v 0 l 8.816,-38.426 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath31390"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path31388"
+         d="M 0,1190 V 0 h 1470 v 1190 z m 1252.9,-536.422 25.82,-51.023 17.01,8.82 -25.82,51.023 v 0 l 8.81,-38.425 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath31408"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path31406"
+         d="M 0,1190 V 0 h 1470 v 1190 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath31414"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path31412"
+         d="M 0,1190 V 0 h 1470 v 1190 z m 1296.99,-56.44 28.35,49.76 -16.38,9.45 -28.35,-49.76 v 0 l 27.09,27.72 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath31428"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path31426"
+         d="M 0,1190 V 0 h 1470 v 1190 z m 1289.43,-830.586 28.35,-49.762 16.38,9.45 -28.35,49.761 v 0 l 10.71,-37.793 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath31442"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path31440"
+         d="M 0,1190 V 0 h 1470 v 1190 z m 146.793,-228.398 28.344,-49.766 16.379,9.449 -28.344,49.762 v 0 l 10.707,-37.793 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath31456"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path31454"
+         d="M 0,1190 V 0 h 1470 v 1190 z m 730.082,-651.691 28.344,49.761 -16.379,9.446 -28.344,-49.762 v 0 l 27.086,27.719 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath31546"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path31544"
+         d="M 0,0 H 586.00549 V 215.95586 H 0 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath34100"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path34098"
+         d="M 0,0 H 661 V 253 H 0 Z" />
+    </clipPath>
+    <clipPath
+       id="clipPath34378"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         style="clip-rule:evenodd"
+         inkscape:connector-curvature="0"
+         id="path34376"
+         d="M 0,2530 V 0 h 6610 v 2530 z m 4576.39,-1903.336 -17,-91.336 55.43,-10.078 17,91.336 v 0 l -40.31,-64.883 z" />
+    </clipPath>
+    <marker
+       inkscape:stockid="Arrow1Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Mend-3"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path221883-8"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(-0.4,0,0,-0.4,-4,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Mend-3-0"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path221883-8-3"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(-0.4,0,0,-0.4,-4,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Send-6"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path221889-1"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Send-7"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path221889-0"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Send-7-1"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path221889-0-1"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Mend-30"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path221883-0"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(-0.4,0,0,-0.4,-4,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Mend-30-5"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path221883-0-4"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(-0.4,0,0,-0.4,-4,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Send-7-9"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path221889-0-9"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Send-7-98"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path221889-0-16"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Send-7-93"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path221889-0-3"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Send-7-15"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path221889-0-6"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Mend-8"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path221883-6"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(-0.4,0,0,-0.4,-4,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Send-7-93-3"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path221889-0-3-7"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Send-6-2"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path221889-1-5"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
+    </marker>
+  </defs>
+  <metadata
+     id="metadata818">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="underlining">
+    <rect
+       transform="translate(-2.308124,-62.995622)"
+       style="display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:none;stroke-width:0.52899998;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="S4UBox"
+       width="50.270832"
+       height="7.9375029"
+       x="5.2916665"
+       y="81.854164"
+       inkscape:label="#rect6249" />
+  </g>
+  <g
+     id="layer1"
+     inkscape:groupmode="layer"
+     inkscape:label="Calque 1"
+     transform="translate(-2.308124,-62.995623)"
+     style="display:inline">
+    <rect
+       style="opacity:0.93999999;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="ApplicationBox"
+       width="50.270832"
+       height="26.458334"
+       x="5.2916665"
+       y="81.854164"
+       ry="2.6458309"
+       inkscape:label="#rect1020-7" />
+    <a
+       id="a6161"
+       xlink:href="http://simgrid.gforge.inria.fr/contrib/smpi-calibration-doc/"
+       style="fill:#ffffff;fill-opacity:1">
+      <rect
+         ry="2.6458309"
+         y="121.54166"
+         x="83.34375"
+         height="7.9375086"
+         width="31.75"
+         id="rect1020-5-6-3"
+         style="opacity:0.93999999;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+    </a>
+    <g
+       id="g3049"
+       transform="translate(0,-0.27062338)">
+      <text
+         id="text1032-6"
+         y="132.04036"
+         x="4.823277"
+         style="font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.58611107px;line-height:6.61458349px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans Oblique';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           style="font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.58611107px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans Oblique';stroke-width:0.26458332px"
+           y="132.04036"
+           x="4.823277"
+           id="tspan1030-0"
+           sodipodi:role="line">HPC</tspan></text>
+      <text
+         id="text1028-4"
+         y="132.04036"
+         x="17.162859"
+         style="font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.58611107px;line-height:6.61458349px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans Oblique';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           style="font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.58611107px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans Oblique';stroke-width:0.26458332px"
+           y="132.04036"
+           x="17.162859"
+           id="tspan1026-38"
+           sodipodi:role="line">Clouds</tspan></text>
+      <text
+         id="text1036-8-2"
+         y="132.04036"
+         x="48.030613"
+         style="font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.58611107px;line-height:6.61458349px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans Oblique';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           style="font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.58611107px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans Oblique';stroke-width:0.26458332px"
+           y="132.04036"
+           x="48.030613"
+           id="tspan1034-9-2"
+           sodipodi:role="line">P2P</tspan></text>
+    </g>
+    <g
+       id="g3037"
+       transform="translate(0,-0.85044613)">
+      <text
+         id="text1036-8-3"
+         y="126.1971"
+         x="4.9195676"
+         style="font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.58611107px;line-height:6.61458349px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans Oblique';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           style="font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.58611107px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans Oblique';stroke-width:0.26458332px"
+           y="126.1971"
+           x="4.9195676"
+           id="tspan1034-9-1"
+           sodipodi:role="line">Scheduling</tspan></text>
+      <text
+         id="text1028-4-7"
+         y="126.1971"
+         x="44.552963"
+         style="font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.58611107px;line-height:6.61458349px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans Oblique';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           style="font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.58611107px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans Oblique';stroke-width:0.26458332px"
+           y="126.1971"
+           x="44.552963"
+           id="tspan1026-38-6"
+           sodipodi:role="line">Grids</tspan></text>
+    </g>
+    <a
+       xlink:href="application.html"
+       id="a6238">
+      <text
+         id="text814"
+         y="71.701172"
+         x="8.285965"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:6.61458302px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';stroke-width:0.26458332px"
+           y="71.701172"
+           x="8.285965"
+           id="tspan812"
+           sodipodi:role="line">Application</tspan></text>
+    </a>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:7.14375019px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="88.616463"
+       y="71.881897"
+       id="text818"><tspan
+         sodipodi:role="line"
+         id="tspan816"
+         x="88.616463"
+         y="71.881897"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:7.14375019px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';text-align:center;text-anchor:middle;stroke-width:0.26458332px">Experimental</tspan><tspan
+         sodipodi:role="line"
+         x="88.616463"
+         y="79.02565"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:7.14375019px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';text-align:center;text-anchor:middle;stroke-width:0.26458332px"
+         id="tspan820">Setup</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:6.61458302px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="130.77637"
+       y="69.158264"
+       id="text824"><tspan
+         sodipodi:role="line"
+         id="tspan822"
+         x="130.77637"
+         y="69.158264"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';stroke-width:0.26458332px">Simulation</tspan><tspan
+         sodipodi:role="line"
+         x="130.77637"
+         y="75.77285"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';stroke-width:0.26458332px"
+         id="tspan826" /></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111126px;line-height:6.61458302px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="122.5321"
+       y="116.70518"
+       id="text830"><tspan
+         sodipodi:role="line"
+         id="tspan828"
+         x="122.5321"
+         y="116.70518"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05555534px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';stroke-width:0.26458332px">Model Checking</tspan><tspan
+         sodipodi:role="line"
+         x="122.5321"
+         y="123.50304"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05555534px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';stroke-width:0.26458332px"
+         id="tspan832" /></text>
+    <a
+       xlink:href="application.html"
+       id="a6242">
+      <rect
+         rx="3.9687512"
+         ry="5.2916679"
+         y="63.333332"
+         x="2.6458333"
+         height="47.625"
+         width="55.5625"
+         id="rect834"
+         style="opacity:0.93999999;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.67541802;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+    </a>
+    <rect
+       style="opacity:0.93999999;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.67500001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect834-7"
+       width="56.885414"
+       height="82.020836"
+       x="60.854168"
+       y="63.333332"
+       ry="5.2916679" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:6.61458302px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="123.94453"
+       y="123.91735"
+       id="text904"><tspan
+         sodipodi:role="line"
+         id="tspan902"
+         x="123.94453"
+         y="123.91735"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444447px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';stroke-width:0.26458332px">Property</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.46805573px;line-height:6.61458349px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="152.5228"
+       y="123.8143"
+       id="text904-3"><tspan
+         sodipodi:role="line"
+         id="tspan902-5"
+         x="152.5228"
+         y="123.8143"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.46805573px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';stroke-width:0.26458332px">Reduction</tspan></text>
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.67486387;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 120.85583,117.57291 v 22.48959 h 60.38375 v 5.29167 l 5.29167,-17.19792 -5.29167,-15.875 v 5.29166 z"
+       id="path885-2"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.67486387;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 120.85583,69.947917 v 35.718743 l 60.38375,1e-5 v 5.29167 l 3.96875,-23.812501 -3.96875,-22.48958 v 5.291667 z"
+       id="path885-2-0"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccc" />
+    <a
+       xlink:href="application.html"
+       id="a6245">
+      <text
+         id="text1018"
+         y="78.263397"
+         x="30.003435"
+         style="font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444447px;line-height:6.61458302px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans Oblique';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#d40000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           style="font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans Oblique';text-align:center;text-anchor:middle;fill:#d40000;stroke-width:0.26458332px"
+           y="78.263397"
+           x="30.003435"
+           id="tspan1016"
+           sodipodi:role="line">(what you test)</tspan></text>
+    </a>
+    <rect
+       style="opacity:0.93999999;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="PlatformBox"
+       width="51.59375"
+       height="29.104168"
+       x="63.5"
+       y="81.854164"
+       ry="2.6458309"
+       inkscape:label="#rect1020" />
+    <a
+       xlink:href="platform.html"
+       id="a6154">
+      <text
+         id="text1024"
+         y="87.523804"
+         x="66.448212"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444447px;line-height:6.61458302px;font-family:'Amiri Quran Colored';-inkscape-font-specification:'Amiri Quran Colored';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         xml:space="preserve"
+         inkscape:label="text1024"><tspan
+           style="stroke-width:0.26458332px"
+           y="87.523804"
+           x="66.448212"
+           id="tspan1022"
+           sodipodi:role="line">Virtual Platform</tspan></text>
+    </a>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;line-height:6.61458302px;font-family:'Amiri Quran Colored';-inkscape-font-specification:'Amiri Quran Colored';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="69.055466"
+       y="94.176186"
+       id="text1028"><tspan
+         sodipodi:role="line"
+         id="tspan1026"
+         x="69.055466"
+         y="94.176186"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';stroke-width:0.26458332px">▸ Resources</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;line-height:6.61458302px;font-family:'Amiri Quran Colored';-inkscape-font-specification:'Amiri Quran Colored';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="69.055466"
+       y="103.17203"
+       id="text1032"><tspan
+         sodipodi:role="line"
+         id="tspan1030"
+         x="69.055466"
+         y="103.17203"
+         style="font-size:4.93888903px;stroke-width:0.26458332px">▸ Routing  </tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;line-height:6.61458302px;font-family:'Amiri Quran Colored';-inkscape-font-specification:'Amiri Quran Colored';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="69.055466"
+       y="108.99284"
+       id="text1036"><tspan
+         sodipodi:role="line"
+         id="tspan1034"
+         x="69.055466"
+         y="108.99284"
+         style="font-size:4.93888903px;stroke-width:0.26458332px">▸ External Events</tspan></text>
+    <a
+       xlink:href="app_s4u.html"
+       id="a6253">
+      <text
+         inkscape:label="#text1028-9"
+         id="Actors"
+         y="87.184937"
+         x="6.6014075"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;line-height:6.61458349px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';stroke-width:0.26458332px"
+           y="87.184937"
+           x="6.6014075"
+           id="tspan1026-3"
+           sodipodi:role="line">▸ Actors:</tspan></text>
+    </a>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;line-height:6.61458349px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;opacity:0.93000034;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="6.6014075"
+       y="93.328972"
+       id="text1028-9-6"><tspan
+         sodipodi:role="line"
+         id="tspan1026-3-0"
+         x="6.6014075"
+         y="93.328972"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';stroke-width:0.26458332px">▸ MPI Legacy Code</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;line-height:6.61458349px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;opacity:0.93000034;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="6.6014075"
+       y="99.473015"
+       id="text1028-9-6-2"><tspan
+         sodipodi:role="line"
+         id="tspan1026-3-0-6"
+         x="6.6014075"
+         y="99.473015"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';stroke-width:0.26458332px">▸ Offline Traces</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;line-height:6.61458349px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;opacity:0.93000034;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="6.6014075"
+       y="105.61705"
+       id="text1028-9-6-2-1"><tspan
+         sodipodi:role="line"
+         id="tspan1026-3-0-6-0"
+         x="6.6014075"
+         y="105.61705"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';stroke-width:0.26458332px">▸ Centralized Algo</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333311px;line-height:6.61458349px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;opacity:0.93000034;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="28.509558"
+       y="87.184937"
+       id="text1028-9-6-8-4"><tspan
+         sodipodi:role="line"
+         id="tspan1026-3-0-0-2"
+         x="28.509558"
+         y="87.184937"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333311px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';stroke-width:0.26458332px">C/C++/Java</tspan></text>
+    <g
+       id="g982"
+       transform="translate(-2.2622938,-5.9720233)">
+      <circle
+         r="5.953125"
+         cy="102.47958"
+         cx="61.903095"
+         id="path977"
+         style="opacity:0.93999999;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <text
+         id="text853"
+         y="106.90308"
+         x="55.99131"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:6.61458302px;font-family:'Amiri Quran Colored';-inkscape-font-specification:'Amiri Quran Colored';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           style="font-size:14.11111069px;stroke-width:0.26458332px"
+           y="106.90308"
+           x="55.99131"
+           id="tspan851"
+           sodipodi:role="line">+</tspan></text>
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333311px;line-height:6.61458349px;font-family:'Amiri Quran Colored';-inkscape-font-specification:'Amiri Quran Colored';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="123.56258"
+       y="128.77045"
+       id="text1028-1"><tspan
+         sodipodi:role="line"
+         id="tspan1026-2"
+         x="123.56258"
+         y="128.77045"
+         style="font-size:4.23333311px;stroke-width:0.26458332px">▸ Safety</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333311px;line-height:6.61458349px;font-family:'Amiri Quran Colored';-inkscape-font-specification:'Amiri Quran Colored';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="123.56258"
+       y="133.19275"
+       id="text1032-0"><tspan
+         sodipodi:role="line"
+         id="tspan1030-6"
+         x="123.56258"
+         y="133.19275"
+         style="font-size:4.23333311px;stroke-width:0.26458332px">▸ Liveness</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333311px;line-height:6.61458349px;font-family:'Amiri Quran Colored';-inkscape-font-specification:'Amiri Quran Colored';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="123.56258"
+       y="137.6151"
+       id="text1032-0-8"><tspan
+         sodipodi:role="line"
+         id="tspan1030-6-7"
+         x="123.56258"
+         y="137.6151"
+         style="font-size:4.23333311px;stroke-width:0.26458332px">▸ Patterns</tspan></text>
+    <rect
+       style="opacity:0.93999999;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect1020-5-9"
+       width="28.633774"
+       height="19.843735"
+       x="122.17873"
+       y="118.89583"
+       ry="2.6458309" />
+    <rect
+       style="opacity:0.93999999;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect1020-5-9-4"
+       width="29.104172"
+       height="19.843754"
+       x="152.13541"
+       y="118.89584"
+       ry="2.6458309" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333311px;line-height:6.61458349px;font-family:'Amiri Quran Colored';-inkscape-font-specification:'Amiri Quran Colored';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="153.11868"
+       y="128.39607"
+       id="text1028-1-5"><tspan
+         sodipodi:role="line"
+         id="tspan1026-2-9"
+         x="153.11868"
+         y="128.39607"
+         style="font-size:4.23333311px;stroke-width:0.26458332px">▸ DPOR</tspan></text>
+    <g
+       id="g3559"
+       transform="translate(2.6458531,2.6458386)">
+      <text
+         id="text1032-0-1"
+         y="130.17258"
+         x="150.47285"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;line-height:4.4979167px;font-family:'Amiri Quran Colored';-inkscape-font-specification:'Amiri Quran Colored';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           id="tspan3528"
+           style="font-size:4.23333311px;line-height:4.4979167px;stroke-width:0.26458332px"
+           y="130.17258"
+           x="150.47285"
+           sodipodi:role="line">▸ State</tspan></text>
+      <text
+         id="text1032-0-1-8"
+         y="134.97"
+         x="154.33516"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;line-height:4.4979167px;font-family:'Amiri Quran Colored';-inkscape-font-specification:'Amiri Quran Colored';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           id="tspan3528-6"
+           style="font-size:4.23333311px;line-height:4.4979167px;stroke-width:0.26458332px"
+           y="134.97"
+           x="154.33516"
+           sodipodi:role="line">Equality</tspan></text>
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.93888903px;line-height:6.61458349px;font-family:'Amiri Quran Colored';-inkscape-font-specification:'Amiri Quran Colored';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="128.43848"
+       y="143.96512"
+       id="text1032-0-8-0"><tspan
+         sodipodi:role="line"
+         id="tspan1030-6-7-6"
+         x="128.43848"
+         y="143.96512"
+         style="font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333311px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans Oblique';stroke-width:0.26458332px">(highly experimental)</tspan></text>
+    <rect
+       style="opacity:0.93999999;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect1020-5-9-0"
+       width="28.633774"
+       height="30.427078"
+       x="122.17873"
+       y="72.59375"
+       ry="2.6458309" />
+    <rect
+       style="opacity:0.93999999;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect1020-5-9-0-3"
+       width="29.104172"
+       height="30.427082"
+       x="152.13541"
+       y="72.593758"
+       ry="2.6458309" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:6.61458349px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="125.24854"
+       y="78.04998"
+       id="text904-0"><tspan
+         sodipodi:role="line"
+         id="tspan902-0"
+         x="125.24854"
+         y="78.04998"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444447px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';stroke-width:0.26458332px">Models</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.46805573px;line-height:6.61458349px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="157.15215"
+       y="77.946869"
+       id="text904-3-4"><tspan
+         sodipodi:role="line"
+         id="tspan902-5-5"
+         x="157.15215"
+         y="77.946869"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.46805573px;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';stroke-width:0.26458332px">Plugins</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333311px;line-height:6.61458349px;font-family:'Amiri Quran Colored';-inkscape-font-specification:'Amiri Quran Colored';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="123.00803"
+       y="83.07312"
+       id="text1028-1-4"><tspan
+         sodipodi:role="line"
+         id="tspan1026-2-99"
+         x="123.00803"
+         y="83.07312"
+         style="font-size:4.23333311px;stroke-width:0.26458332px">▸ Raw Perf.</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333311px;line-height:6.61458349px;font-family:'Amiri Quran Colored';-inkscape-font-specification:'Amiri Quran Colored';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="123.00803"
+       y="92.446938"
+       id="text1032-0-9"><tspan
+         sodipodi:role="line"
+         id="tspan1030-6-4"
+         x="123.00803"
+         y="92.446938"
+         style="font-size:4.23333311px;stroke-width:0.26458332px">▸ Contention</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333311px;line-height:6.61458349px;font-family:'Amiri Quran Colored';-inkscape-font-specification:'Amiri Quran Colored';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="123.00803"
+       y="97.587425"
+       id="text1032-0-9-3"><tspan
+         sodipodi:role="line"
+         id="tspan1030-6-4-9"
+         x="123.00803"
+         y="97.587425"
+         style="font-size:4.23333311px;stroke-width:0.26458332px">▸ Collective</tspan></text>
+    <g
+       id="g11613"
+       transform="matrix(0.59989277,0,0,0.59989277,81.319387,49.091318)">
+      <path
+         inkscape:connector-curvature="0"
+         id="path3732"
+         style="fill:none;stroke:#000000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 193.18644,106.5369 c 0,-0.13381 -0.10838,-0.24276 -0.24218,-0.24276 -0.13438,0 -0.24276,0.10895 -0.24276,0.24276 0,0.13366 0.10838,0.24203 0.24276,0.24203 0.1338,0 0.24218,-0.10837 0.24218,-0.24203" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3740"
+         style="fill:none;stroke:#000000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 192.8093,107.51948 c 0,-0.13366 -0.10838,-0.24203 -0.24204,-0.24203 -0.1338,0 -0.24275,0.10837 -0.24275,0.24203 0,0.13381 0.10895,0.24218 0.24275,0.24218 0.13366,0 0.24204,-0.10837 0.24204,-0.24218" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3748"
+         style="fill:none;stroke:#0000ff;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 192.75569,106.69267 c -0.0575,0.0587 -0.11517,0.13033 -0.1484,0.20764 -0.0311,0.0728 -0.048,0.15519 -0.0559,0.23539" />
+      <path
+         d="m 192.59833,107.1431 -0.0526,0.13265 -0.0418,-0.1367"
+         style="fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.11288889;stroke-miterlimit:4;stroke-dasharray:none"
+         id="path3750"
+         inkscape:connector-curvature="0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3754"
+         style="fill:none;stroke:#0000ff;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 192.59833,107.14307 -0.0526,0.13264 -0.0418,-0.13655 z" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3762"
+         style="fill:none;stroke:#000000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 193.7796,107.51948 c 0,-0.15634 -0.12701,-0.28336 -0.28394,-0.28336 -0.15634,0 -0.28321,0.12702 -0.28321,0.28336 0,0.15635 0.12687,0.28336 0.28321,0.28336 0.15693,0 0.28394,-0.12701 0.28394,-0.28336" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3770"
+         style="fill:none;stroke:#ff0000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 193.0639,106.7496 c 0.066,0.11805 0.14956,0.26703 0.22585,0.403" />
+      <path
+         d="m 193.33209,107.13125 0.0249,0.14045 -0.10678,-0.0942"
+         style="fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.11288889;stroke-miterlimit:4;stroke-dasharray:none"
+         id="path3772"
+         inkscape:connector-curvature="0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3776"
+         style="fill:none;stroke:#ff0000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 193.33209,107.13122 0.0249,0.14045 -0.10678,-0.0942 z" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3784"
+         style="fill:none;stroke:#ff0000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 192.48201,107.74923 c -0.0305,0.12196 -0.0446,0.27094 0.0175,0.38943 0.0418,0.0802 0.11069,0.14623 0.18395,0.19882" />
+      <path
+         d="m 192.71061,108.2985 0.0903,0.11054 -0.13944,-0.0299"
+         style="fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.11288889;stroke-miterlimit:4;stroke-dasharray:none"
+         id="path3786"
+         inkscape:connector-curvature="0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3790"
+         style="fill:none;stroke:#ff0000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 192.71061,108.29847 0.0903,0.11069 -0.13944,-0.0299 z" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3798"
+         style="fill:none;stroke:#000000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 193.26707,108.51132 c 0,-0.13381 -0.10838,-0.24276 -0.24261,-0.24276 -0.13381,0 -0.24218,0.10895 -0.24218,0.24276 0,0.13366 0.10837,0.24203 0.24218,0.24203 0.13423,0 0.24261,-0.10837 0.24261,-0.24203" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3806"
+         style="fill:none;stroke:#000000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 192.28448,109.45387 c 0,-0.13438 -0.10895,-0.24275 -0.24275,-0.24275 -0.13381,0 -0.24218,0.10837 -0.24218,0.24275 0,0.13381 0.10837,0.24218 0.24218,0.24218 0.1338,0 0.24275,-0.10837 0.24275,-0.24218" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3814"
+         style="fill:none;stroke:#0000ff;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 192.84889,108.67951 c -0.14623,0.14045 -0.35734,0.3426 -0.52669,0.50574" />
+      <path
+         d="m 192.35268,109.22126 -0.13033,0.0588 0.0649,-0.12701"
+         style="fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.11288889;stroke-miterlimit:4;stroke-dasharray:none"
+         id="path3816"
+         inkscape:connector-curvature="0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3820"
+         style="fill:none;stroke:#0000ff;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 192.35268,109.22138 -0.13033,0.0587 0.0649,-0.12701 z" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3828"
+         style="fill:none;stroke:#000000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 190.29142,110.4366 c 0,-0.1338 -0.10837,-0.24275 -0.24217,-0.24275 -0.13381,0 -0.24218,0.10895 -0.24218,0.24275 0,0.13381 0.10837,0.24218 0.24218,0.24218 0.1338,0 0.24217,-0.10837 0.24217,-0.24218" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3836"
+         style="fill:none;stroke:#0000ff;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 191.79955,109.47642 c -0.42165,0.0441 -1.26942,0.1536 -1.49469,0.34101 -0.0756,0.0626 -0.12918,0.15172 -0.16704,0.24261" />
+      <path
+         d="m 190.18074,110.07987 -0.088,0.11227 -0.001,-0.14276"
+         style="fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.11288889;stroke-miterlimit:4;stroke-dasharray:none"
+         id="path3838"
+         inkscape:connector-curvature="0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3842"
+         style="fill:none;stroke:#0000ff;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 190.18074,110.07984 -0.088,0.11227 -0.001,-0.14276 z" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3850"
+         style="fill:none;stroke:#000000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 197.88594,110.4366 c 0,-0.15634 -0.12702,-0.28336 -0.28336,-0.28336 -0.15635,0 -0.28336,0.12702 -0.28336,0.28336 0,0.15635 0.12701,0.28336 0.28336,0.28336 0.15634,0 0.28336,-0.12701 0.28336,-0.28336" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3858"
+         style="fill:none;stroke:#0000ff;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 192.28101,109.49621 c 0.85919,0.15187 3.80102,0.67119 4.90166,0.86583" />
+      <path
+         d="m 197.19452,110.31641 0.1247,0.0699 -0.14103,0.0231"
+         style="fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.11288889;stroke-miterlimit:4;stroke-dasharray:none"
+         id="path3860"
+         inkscape:connector-curvature="0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3864"
+         style="fill:none;stroke:#0000ff;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 197.19452,110.31638 0.1247,0.0699 -0.14103,0.0231 z" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3872"
+         style="fill:none;stroke:#000000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 192.1501,110.4366 c 0,-0.15634 -0.12701,-0.28336 -0.28336,-0.28336 -0.15635,0 -0.28336,0.12702 -0.28336,0.28336 0,0.15635 0.12701,0.28336 0.28336,0.28336 0.15635,0 0.28336,-0.12701 0.28336,-0.28336" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3880"
+         style="fill:none;stroke:#ff0000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 191.84694,109.60343 c -0.062,0.0592 -0.12239,0.13265 -0.15519,0.214 -0.0311,0.0767 -0.0293,0.1614 -0.0113,0.24261" />
+      <path
+         d="m 191.72672,110.0488 -0.003,0.14219 -0.0864,-0.11285"
+         style="fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.11288889;stroke-miterlimit:4;stroke-dasharray:none"
+         id="path3882"
+         inkscape:connector-curvature="0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3886"
+         style="fill:none;stroke:#ff0000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 191.72672,110.04877 -0.003,0.14233 -0.0864,-0.113 z" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3894"
+         style="fill:none;stroke:#000000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 190.9512,111.45994 c 0,-0.13381 -0.10837,-0.24218 -0.24218,-0.24218 -0.13424,0 -0.24261,0.10837 -0.24261,0.24218 0,0.1338 0.10837,0.24218 0.24261,0.24218 0.13381,0 0.24218,-0.10838 0.24218,-0.24218" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3902"
+         style="fill:none;stroke:#0000ff;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 190.09606,110.67936 c 0.0317,0.12022 0.0802,0.26299 0.15519,0.37642 0.0418,0.0643 0.0971,0.1247 0.15418,0.17773" />
+      <path
+         d="m 190.43693,111.19857 0.0718,0.12311 -0.13323,-0.0514"
+         style="fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.11288889;stroke-miterlimit:4;stroke-dasharray:none"
+         id="path3904"
+         inkscape:connector-curvature="0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3908"
+         style="fill:none;stroke:#0000ff;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 190.43693,111.19854 0.0718,0.12311 -0.13323,-0.0514 z" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3916"
+         style="fill:none;stroke:#000000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 187.38398,112.48327 c 0,-0.15692 -0.12701,-0.28336 -0.28336,-0.28336 -0.15634,0 -0.28393,0.12644 -0.28393,0.28336 0,0.15635 0.12759,0.28336 0.28393,0.28336 0.15635,0 0.28336,-0.12701 0.28336,-0.28336" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3924"
+         style="fill:none;stroke:#0000ff;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 189.80591,110.4564 c -0.44809,0.049 -1.41449,0.20996 -2.01892,0.72075 -0.2783,0.23539 -0.46008,0.61354 -0.56557,0.90196" />
+      <path
+         d="m 187.26477,112.09663 -0.088,0.11227 -0.001,-0.14276"
+         style="fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.11288889;stroke-miterlimit:4;stroke-dasharray:none"
+         id="path3926"
+         inkscape:connector-curvature="0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3930"
+         style="fill:none;stroke:#0000ff;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 187.26477,112.09659 -0.088,0.11228 -0.001,-0.14276 z" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3938"
+         style="fill:none;stroke:#000000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 189.79406,111.45994 c 0,-0.15635 -0.12701,-0.28336 -0.28336,-0.28336 -0.15692,0 -0.28379,0.12701 -0.28379,0.28336 0,0.15634 0.12687,0.28336 0.28379,0.28336 0.15635,0 0.28336,-0.12702 0.28336,-0.28336" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3946"
+         style="fill:none;stroke:#ff0000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 189.83134,110.54324 c -0.11343,0.0678 -0.24218,0.1682 -0.30763,0.29752 -0.0305,0.0604 -0.0462,0.12803 -0.0542,0.19695" />
+      <path
+         d="m 189.51692,111.0428 -0.0507,0.13323 -0.0435,-0.13612"
+         style="fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.11288889;stroke-miterlimit:4;stroke-dasharray:none"
+         id="path3948"
+         inkscape:connector-curvature="0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3952"
+         style="fill:none;stroke:#ff0000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 189.51692,111.04277 -0.0507,0.13323 -0.0435,-0.13597 z" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3960"
+         style="fill:none;stroke:#000000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 193.37501,112.48327 c 0,-0.1338 -0.10838,-0.24276 -0.24276,-0.24276 -0.1338,0 -0.24218,0.10896 -0.24218,0.24276 0,0.13381 0.10838,0.24218 0.24218,0.24218 0.13438,0 0.24276,-0.10837 0.24276,-0.24218" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3968"
+         style="fill:none;stroke:#0000ff;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 190.93256,111.55415 c 0.4228,0.17845 1.34166,0.56672 1.84798,0.78072" />
+      <path
+         d="m 192.80034,112.29184 0.10548,0.0955 -0.14218,-0.009"
+         style="fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.11288889;stroke-miterlimit:4;stroke-dasharray:none"
+         id="path3970"
+         inkscape:connector-curvature="0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3974"
+         style="fill:none;stroke:#0000ff;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 192.80034,112.29196 0.10548,0.0954 -0.14218,-0.009 z" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3982"
+         style="fill:none;stroke:#0000ff;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 190.48447,111.55863 c -0.15692,0.0645 -0.37208,0.14349 -0.57019,0.18409 -0.82175,0.16935 -1.08936,-0.14797 -1.88468,0.1208 -0.22065,0.075 -0.43971,0.21617 -0.60891,0.34492" />
+      <path
+         d="m 187.44655,112.24791 -0.13481,0.0468 0.0767,-0.1208"
+         style="fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.11288889;stroke-miterlimit:4;stroke-dasharray:none"
+         id="path3984"
+         inkscape:connector-curvature="0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3988"
+         style="fill:none;stroke:#0000ff;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 187.44655,112.24788 -0.13481,0.0468 0.0767,-0.1208 z" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3996"
+         style="fill:none;stroke:#000000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 191.30233,112.48327 c 0,-0.15692 -0.12759,-0.28336 -0.28394,-0.28336 -0.15634,0 -0.28336,0.12644 -0.28336,0.28336 0,0.15635 0.12702,0.28336 0.28336,0.28336 0.15635,0 0.28394,-0.12701 0.28394,-0.28336" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4004"
+         style="fill:none;stroke:#ff0000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 190.78749,111.68969 c 0.0192,0.0569 0.039,0.11733 0.0559,0.17383 0.0209,0.0682 0.0423,0.14002 0.0621,0.20995" />
+      <path
+         d="m 190.95178,112.06281 -0.009,0.14219 -0.0818,-0.1169"
+         style="fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.11288889;stroke-miterlimit:4;stroke-dasharray:none"
+         id="path4006"
+         inkscape:connector-curvature="0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4010"
+         style="fill:none;stroke:#ff0000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 190.95178,112.06278 -0.009,0.14219 -0.0818,-0.11676 z" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4018"
+         style="fill:none;stroke:#0000ff;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 193.33715,112.34672 c 0.23539,-0.17499 0.58984,-0.50242 0.58984,-0.88678 v -2.00607 c 0,-0.34029 -0.31111,-0.60559 -0.5673,-0.76713" />
+      <path
+         d="m 193.33484,108.72694 -0.0915,-0.10895 0.14002,0.0282"
+         style="fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.11288889;stroke-miterlimit:4;stroke-dasharray:none"
+         id="path4020"
+         inkscape:connector-curvature="0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4024"
+         style="fill:none;stroke:#0000ff;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 193.33484,108.72691 -0.0915,-0.10896 0.14002,0.0282 z" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4032"
+         style="fill:none;stroke:#000000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 193.73842,113.5066 c 0,-0.1338 -0.10837,-0.24275 -0.24276,-0.24275 -0.13366,0 -0.24203,0.10895 -0.24203,0.24275 0,0.13381 0.10837,0.24218 0.24203,0.24218 0.13439,0 0.24276,-0.10837 0.24276,-0.24218" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4040"
+         style="fill:none;stroke:#0000ff;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 193.21519,112.71519 c 0.0446,0.12701 0.10158,0.28741 0.15245,0.42959" />
+      <path
+         d="m 193.4133,113.13239 5.8e-4,0.14276 -0.0892,-0.11112"
+         style="fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.11288889;stroke-miterlimit:4;stroke-dasharray:none"
+         id="path4042"
+         inkscape:connector-curvature="0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4046"
+         style="fill:none;stroke:#0000ff;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 193.4133,113.13235 5.8e-4,0.14277 -0.0892,-0.11112 z" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4054"
+         style="fill:none;stroke:#000000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 191.54393,113.5066 c 0,-0.1338 -0.10895,-0.24275 -0.24276,-0.24275 -0.1338,0 -0.24217,0.10895 -0.24217,0.24275 0,0.13381 0.10837,0.24218 0.24217,0.24218 0.13381,0 0.24276,-0.10837 0.24276,-0.24218" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4062"
+         style="fill:none;stroke:#ff0000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 192.97533,112.66779 c -0.12413,0.1367 -0.3088,0.31775 -0.50242,0.43465 -0.24941,0.15071 -0.56326,0.25519 -0.80254,0.32007" />
+      <path
+         d="m 191.68048,113.4682 -0.14218,-0.0124 0.11906,-0.079"
+         style="fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.11288889;stroke-miterlimit:4;stroke-dasharray:none"
+         id="path4064"
+         inkscape:connector-curvature="0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4068"
+         style="fill:none;stroke:#ff0000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 191.68048,113.46817 -0.14218,-0.0124 0.11906,-0.079 z" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4076"
+         style="fill:none;stroke:#000000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 193.73842,114.52994 c 0,-0.13439 -0.10837,-0.24276 -0.24276,-0.24276 -0.13366,0 -0.24203,0.10837 -0.24203,0.24276 0,0.1338 0.10837,0.24218 0.24203,0.24218 0.13439,0 0.24276,-0.10838 0.24276,-0.24218" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4084"
+         style="fill:none;stroke:#0000ff;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 193.49566,113.74878 v 0.39853" />
+      <path
+         d="m 193.5432,114.15066 -0.0475,0.13424 -0.0468,-0.13424"
+         style="fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.11288889;stroke-miterlimit:4;stroke-dasharray:none"
+         id="path4086"
+         inkscape:connector-curvature="0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4090"
+         style="fill:none;stroke:#0000ff;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 193.5432,114.15063 -0.0475,0.13438 -0.0468,-0.13438 z" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4098"
+         style="fill:none;stroke:#000000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 193.73842,115.90324 c 0,-0.1338 -0.10837,-0.24275 -0.24276,-0.24275 -0.13366,0 -0.24203,0.10895 -0.24203,0.24275 0,0.13381 0.10837,0.24218 0.24203,0.24218 0.13439,0 0.24276,-0.10837 0.24276,-0.24218" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4106"
+         style="fill:none;stroke:#ff0000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 193.49566,114.77544 v 0.7485" />
+      <path
+         d="m 193.5432,115.52498 -0.0475,0.13496 -0.0468,-0.13496"
+         style="fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.11288889;stroke-miterlimit:4;stroke-dasharray:none"
+         id="path4108"
+         inkscape:connector-curvature="0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4112"
+         style="fill:none;stroke:#ff0000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 193.5432,115.52509 -0.0475,0.13482 -0.0468,-0.13482 z" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4120"
+         style="fill:none;stroke:#000000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 193.14583,117.57292 c 0,-0.13439 -0.10837,-0.24276 -0.24218,-0.24276 -0.1338,0 -0.24275,0.10837 -0.24275,0.24276 0,0.13366 0.10895,0.24203 0.24275,0.24203 0.13381,0 0.24218,-0.10837 0.24218,-0.24203" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4128"
+         style="fill:none;stroke:#0000ff;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 193.46575,116.14369 c -0.0406,0.26978 -0.12745,0.71454 -0.2929,1.06567 -0.01,0.0208 -0.0208,0.0418 -0.0332,0.0627" />
+      <path
+         d="m 193.17791,117.2997 -0.11401,0.0857 0.0356,-0.13829"
+         style="fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.11288889;stroke-miterlimit:4;stroke-dasharray:none"
+         id="path4130"
+         inkscape:connector-curvature="0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4134"
+         style="fill:none;stroke:#0000ff;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 193.17791,117.29967 -0.11401,0.0858 0.0356,-0.13828 z" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4142"
+         style="fill:none;stroke:#000000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 188.58173,124.37211 c 0,-0.1338 -0.10895,-0.24217 -0.24276,-0.24217 -0.1338,0 -0.24218,0.10837 -0.24218,0.24217 0,0.13381 0.10838,0.24218 0.24218,0.24218 0.13381,0 0.24276,-0.10837 0.24276,-0.24218" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4150"
+         style="fill:none;stroke:#ff0000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 192.75121,117.76596 c -0.17614,0.24204 -0.44028,0.67727 -0.44028,1.09949 v 1.93887 c 0,0.40358 0.0971,0.60227 -0.18843,0.88837 -0.1812,0.18178 -0.32411,0.0334 -0.56571,0.12138 -0.1523,0.0559 -1.16884,0.58088 -1.29253,0.68636 -0.63608,0.54476 -0.47858,0.98273 -1.13055,1.50827 -0.12875,0.10317 -0.29131,0.18453 -0.43581,0.24377" />
+      <path
+         d="m 188.71438,124.29657 -0.14291,0.004 0.10953,-0.092"
+         style="fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.11288889;stroke-miterlimit:4;stroke-dasharray:none"
+         id="path4152"
+         inkscape:connector-curvature="0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4156"
+         style="fill:none;stroke:#ff0000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 188.71438,124.29654 -0.14291,0.004 0.10953,-0.092 z" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4164"
+         style="fill:none;stroke:#000000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 188.01616,130.02732 c 0,-0.1338 -0.10837,-0.24275 -0.24275,-0.24275 -0.13381,0 -0.24218,0.10895 -0.24218,0.24275 0,0.13381 0.10837,0.24218 0.24218,0.24218 0.13438,0 0.24275,-0.10837 0.24275,-0.24218" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4172"
+         style="fill:none;stroke:#ff0000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 188.16008,124.54147 c -0.16545,0.17614 -0.38667,0.46788 -0.38667,0.77335 v 4.3332" />
+      <path
+         d="m 187.8208,129.64863 -0.0474,0.13423 -0.0468,-0.13423"
+         style="fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.11288889;stroke-miterlimit:4;stroke-dasharray:none"
+         id="path4174"
+         inkscape:connector-curvature="0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4178"
+         style="fill:none;stroke:#ff0000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 187.8208,129.6486 -0.0474,0.13438 -0.0468,-0.13438 z" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4186"
+         style="fill:none;stroke:#0000ff;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 188.00258,129.9545 c 0.13207,-0.0175 0.25504,0.0101 0.25504,0.0814 0,0.0439 -0.048,0.0705 -0.11618,0.0806" />
+      <path
+         d="m 188.13696,130.16391 -0.13438,-0.0474 0.13482,-0.0474"
+         style="fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.11288889;stroke-miterlimit:4;stroke-dasharray:none"
+         id="path4188"
+         inkscape:connector-curvature="0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4192"
+         style="fill:none;stroke:#0000ff;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 188.13696,130.16387 -0.13438,-0.0474 0.13482,-0.0474 z" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4200"
+         style="fill:none;stroke:#000000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 191.73236,114.52994 c 0,-0.13439 -0.10838,-0.24276 -0.24262,-0.24276 -0.1338,0 -0.24217,0.10837 -0.24217,0.24276 0,0.1338 0.10837,0.24218 0.24217,0.24218 0.13424,0 0.24262,-0.10838 0.24262,-0.24218" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4208"
+         style="fill:none;stroke:#0000ff;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 191.34582,113.74878 c 0.0225,0.12138 0.0502,0.27036 0.075,0.40575" />
+      <path
+         d="m 191.46706,114.14777 -0.0214,0.14118 -0.0711,-0.12369"
+         style="fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.11288889;stroke-miterlimit:4;stroke-dasharray:none"
+         id="path4210"
+         inkscape:connector-curvature="0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4214"
+         style="fill:none;stroke:#0000ff;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 191.46706,114.14774 -0.0214,0.14117 -0.0711,-0.12354 z" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4222"
+         style="fill:none;stroke:#000000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 190.14404,115.2163 c 0,-0.15635 -0.12702,-0.28336 -0.28336,-0.28336 -0.15693,0 -0.28336,0.12701 -0.28336,0.28336 0,0.15693 0.12643,0.28336 0.28336,0.28336 0.15634,0 0.28336,-0.12643 0.28336,-0.28336" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4230"
+         style="fill:none;stroke:#0000ff;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 191.05726,113.5501 c -0.33581,0.0649 -0.91438,0.1981 -1.04862,0.36009 -0.20157,0.24376 -0.22802,0.60674 -0.20995,0.88779" />
+      <path
+         d="m 189.8455,114.79469 -0.035,0.13828 -0.0588,-0.1299"
+         style="fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.11288889;stroke-miterlimit:4;stroke-dasharray:none"
+         id="path4232"
+         inkscape:connector-curvature="0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4236"
+         style="fill:none;stroke:#0000ff;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 189.8455,114.79466 -0.035,0.13828 -0.0588,-0.12976 z" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4244"
+         style="fill:none;stroke:#000000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 191.01839,115.90324 c 0,-0.1338 -0.10837,-0.24275 -0.24218,-0.24275 -0.1338,0 -0.24217,0.10895 -0.24217,0.24275 0,0.13381 0.10837,0.24218 0.24217,0.24218 0.13381,0 0.24218,-0.10837 0.24218,-0.24218" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4252"
+         style="fill:none;stroke:#0000ff;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 191.25378,114.59771 c -0.1614,0.0598 -0.36414,0.1653 -0.46398,0.33581 -0.1039,0.17715 -0.11184,0.40532 -0.0921,0.59605" />
+      <path
+         d="m 190.74515,115.52671 -0.0276,0.13944 -0.0655,-0.12643"
+         style="fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.11288889;stroke-miterlimit:4;stroke-dasharray:none"
+         id="path4254"
+         inkscape:connector-curvature="0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4258"
+         style="fill:none;stroke:#0000ff;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 190.74515,115.52668 -0.0276,0.13944 -0.0655,-0.12643 z" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4266"
+         style="fill:none;stroke:#000000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 188.74313,116.92658 c 0,-0.13381 -0.10837,-0.24276 -0.24218,-0.24276 -0.13438,0 -0.24275,0.10895 -0.24275,0.24276 0,0.1338 0.10837,0.24218 0.24275,0.24218 0.13381,0 0.24218,-0.10838 0.24218,-0.24218" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4274"
+         style="fill:none;stroke:#0000ff;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 190.55383,116.00309 c -0.39679,0.17846 -1.22881,0.55256 -1.7029,0.76598" />
+      <path
+         d="m 188.86957,116.81202 -0.14233,0.0124 0.10331,-0.0983"
+         style="fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.11288889;stroke-miterlimit:4;stroke-dasharray:none"
+         id="path4276"
+         inkscape:connector-curvature="0" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4280"
+         style="fill:none;stroke:#0000ff;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 188.86957,116.81199 -0.14233,0.0124 0.10331,-0.0983 z" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4288"
+         style="fill:none;stroke:#000000;stroke-width:0.11288889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit