From 79820f44338925250c1650219ed44475ca9dea1d Mon Sep 17 00:00:00 2001 From: Pierre Gaufillet Date: Thu, 6 Dec 2018 14:47:05 +0100 Subject: [PATCH] Initial commit. --- .gitignore | 1 + Copyright => Copyright.md | 5 +- Event-B/pseim/.project | 17 + Event-B/pseim/README.md | 23 + Event-B/pseim/cComponent.bcc | 18 + Event-B/pseim/cComponent.bpr | 2 + Event-B/pseim/cComponent.buc | 5 + Event-B/pseim/cLink.bcc | 37 + Event-B/pseim/cLink.bpo | 32 + Event-B/pseim/cLink.bpr | 2 + Event-B/pseim/cLink.bps | 2 + Event-B/pseim/cLink.buc | 13 + Event-B/pseim/cModel.bcc | 14 + Event-B/pseim/cModel.bpr | 2 + Event-B/pseim/cModel.buc | 14 + Event-B/pseim/cPort.bcc | 25 + Event-B/pseim/cPort.bpo | 23 + Event-B/pseim/cPort.bpr | 2 + Event-B/pseim/cPort.bps | 2 + Event-B/pseim/cPort.buc | 8 + Event-B/pseim/event-b_model_structure2.jpg | Bin 0 -> 30908 bytes Event-B/pseim/mComponent.bcm | 107 + Event-B/pseim/mComponent.bpo | 775 + Event-B/pseim/mComponent.bpr | 20512 ++++ Event-B/pseim/mComponent.bps | 2 + Event-B/pseim/mComponent.bum | 90 + Event-B/pseim/mLink.bpr | 90180 ++++++++++++++++ Event-B/pseim/mLink.bum | 111 + Event-B/pseim/mPort.bpr | 21273 ++++ Event-B/pseim/mPort.bum | 83 + Event-B/pseim/mProperty.bpr | 7617 ++ Event-B/pseim/mProperty.bum | 35 + Event-B/pseim/pattern_safety.bpr | 477 + Event-B/pseim/pattern_safety.buc | 47 + Event-B/pseim/preuves.txt | 36 + Event-B/pseim/team/cComponent.buc.xmb | 23 + Event-B/pseim/team/cLink.buc.xmb | 71 + Event-B/pseim/team/cModel.buc.xmb | 79 + Event-B/pseim/team/cPort.buc.xmb | 41 + Event-B/pseim/team/mComponent.bum.xmb | 507 + Event-B/pseim/team/mLink.bum.xmb | 605 + Event-B/pseim/team/mPort.bum.xmb | 444 + Event-B/pseim/team/mProperty.bum.xmb | 160 + Event-B/pseim/team/pattern_safety.buc.xmb | 278 + README.md | 10 + .../.project | 17 + .../build.properties | 1 + .../feature.xml | 364 + .../com.irtsaintexupery.pseim.edit/.classpath | 7 + .../com.irtsaintexupery.pseim.edit/.project | 28 + .../META-INF/MANIFEST.MF | 17 + .../build.properties | 10 + .../CreateLibrary_patterns_Pattern.gif | Bin 0 -> 223 bytes ...cardinalityElements_CardinalityElement.gif | Bin 0 -> 223 bytes .../icons/full/obj16/BooleanProperty.gif | Bin 0 -> 129 bytes .../icons/full/obj16/CardinalityElement.gif | Bin 0 -> 129 bytes .../icons/full/obj16/Component.gif | Bin 0 -> 882 bytes .../icons/full/obj16/IOPort.gif | Bin 0 -> 882 bytes .../icons/full/obj16/IPort.gif | Bin 0 -> 900 bytes .../icons/full/obj16/IntegerProperty.gif | Bin 0 -> 129 bytes .../icons/full/obj16/Library.gif | Bin 0 -> 129 bytes .../icons/full/obj16/Link.gif | Bin 0 -> 898 bytes .../icons/full/obj16/Model.gif | Bin 0 -> 129 bytes .../icons/full/obj16/OPort.gif | Bin 0 -> 889 bytes .../icons/full/obj16/Pattern.gif | Bin 0 -> 129 bytes .../icons/full/obj16/PatternComponent.gif | Bin 0 -> 129 bytes .../icons/full/obj16/PatternLink.gif | Bin 0 -> 129 bytes .../icons/full/obj16/PatternPort.gif | Bin 0 -> 129 bytes .../icons/full/obj16/Port.gif | Bin 0 -> 129 bytes .../icons/full/obj16/ReferenceProperty.gif | Bin 0 -> 129 bytes .../icons/full/obj16/StringProperty.gif | Bin 0 -> 129 bytes .../icons/full/obj16/UndefPort.gif | Bin 0 -> 878 bytes .../plugin.properties | 105 + .../com.irtsaintexupery.pseim.edit/plugin.xml | 35 + .../CardinalityElementItemProvider.java | 237 + .../pseim/provider/LibraryItemProvider.java | 211 + .../PatternComponentItemProvider.java | 310 + .../pseim/provider/PatternItemProvider.java | 319 + .../provider/PatternLinkItemProvider.java | 301 + .../provider/PatternPortItemProvider.java | 316 + .../pseim/pseim/provider/PseimEditPlugin.java | 99 + .../PseimItemProviderAdapterFactory.java | 336 + .../provider/BooleanPropertyItemProvider.java | 202 + .../seim/provider/ComponentItemProvider.java | 243 + .../provider/IntegerPropertyItemProvider.java | 202 + .../pseim/seim/provider/LinkItemProvider.java | 262 + .../seim/provider/ModelItemProvider.java | 240 + .../pseim/seim/provider/PortItemProvider.java | 260 + .../ReferencePropertyItemProvider.java | 200 + .../pseim/seim/provider/SeimEditPlugin.java | 100 + .../SeimItemProviderAdapterFactory.java | 389 + .../provider/StringPropertyItemProvider.java | 202 + .../.classpath | 7 + .../com.irtsaintexupery.pseim.editor/.project | 28 + .../META-INF/MANIFEST.MF | 19 + .../build.properties | 10 + .../icons/full/obj16/PseimModelFile.gif | Bin 0 -> 346 bytes .../icons/full/obj16/SeimModelFile.gif | Bin 0 -> 346 bytes .../icons/full/wizban/NewPseim.gif | Bin 0 -> 2462 bytes .../icons/full/wizban/NewSeim.gif | Bin 0 -> 2462 bytes .../plugin.properties | 60 + .../plugin.xml | 64 + .../PseimActionBarContributor.java | 429 + .../pseim/pseim/presentation/PseimEditor.java | 1784 + .../pseim/presentation/PseimEditorPlugin.java | 101 + .../pseim/presentation/PseimModelWizard.java | 633 + .../SeimActionBarContributor.java | 432 + .../pseim/seim/presentation/SeimEditor.java | 1784 + .../seim/presentation/SeimEditorPlugin.java | 102 + .../seim/presentation/SeimModelWizard.java | 636 + .../com.irtsaintexupery.pseim/.classpath | 7 + .../com.irtsaintexupery.pseim/.project | 29 + .../META-INF/MANIFEST.MF | 19 + .../build.properties | 10 + .../model/pseim.ecore | 122 + .../model/pseim.genmodel | 87 + .../com.irtsaintexupery.pseim/model/seim.aird | 8772 ++ .../model/seim.ecore | 98 + .../model/seim.genmodel | 63 + .../plugin.properties | 4 + .../com.irtsaintexupery.pseim/plugin.xml | 25 + .../pseim/pseim/CardinalityElement.java | 52 + .../pseim/pseim/IdentifiedElement.java | 62 + .../irtsaintexupery/pseim/pseim/Library.java | 51 + .../irtsaintexupery/pseim/pseim/LinkType.java | 303 + .../pseim/pseim/MultiplicityElement.java | 90 + .../irtsaintexupery/pseim/pseim/Pattern.java | 238 + .../pseim/pseim/PatternComponent.java | 61 + .../pseim/pseim/PatternLink.java | 91 + .../pseim/pseim/PatternPort.java | 63 + .../pseim/pseim/PatternPortDirection.java | 277 + .../pseim/pseim/PatternTypeFailureMode.java | 222 + .../pseim/pseim/PatternTypeHS.java | 222 + .../pseim/pseim/PseimFactory.java | 97 + .../pseim/pseim/PseimPackage.java | 1398 + .../pseim/pseim/SafetyTactic.java | 521 + .../pseim/impl/CardinalityElementImpl.java | 330 + .../pseim/pseim/impl/LibraryImpl.java | 290 + .../pseim/impl/PatternComponentImpl.java | 698 + .../pseim/pseim/impl/PatternImpl.java | 550 + .../pseim/pseim/impl/PatternLinkImpl.java | 719 + .../pseim/pseim/impl/PatternPortImpl.java | 716 + .../pseim/pseim/impl/PseimFactoryImpl.java | 329 + .../pseim/pseim/impl/PseimPackageImpl.java | 789 + .../pseim/pseim/util/PseimAdapterFactory.java | 462 + .../pseim/pseim/util/PseimSwitch.java | 500 + .../pseim/pseim/util/PseimValidator.java | 533 + .../pseim/seim/BasicProperty.java | 29 + .../pseim/seim/BooleanProperty.java | 62 + .../pseim/seim/BorderElement.java | 29 + .../irtsaintexupery/pseim/seim/Component.java | 53 + .../irtsaintexupery/pseim/seim/Element.java | 29 + .../pseim/seim/GraphElement.java | 29 + .../pseim/seim/IdentifiedElement.java | 65 + .../pseim/seim/IntegerProperty.java | 62 + .../com/irtsaintexupery/pseim/seim/Link.java | 88 + .../com/irtsaintexupery/pseim/seim/Model.java | 53 + .../pseim/seim/NamedElement.java | 63 + .../com/irtsaintexupery/pseim/seim/Port.java | 64 + .../pseim/seim/PortDirection.java | 279 + .../irtsaintexupery/pseim/seim/Property.java | 63 + .../pseim/seim/PropertyHolder.java | 55 + .../pseim/seim/ReferenceProperty.java | 61 + .../pseim/seim/SeimFactory.java | 118 + .../pseim/seim/SeimPackage.java | 1577 + .../pseim/seim/StringProperty.java | 62 + .../pseim/seim/impl/BooleanPropertyImpl.java | 289 + .../pseim/seim/impl/ComponentImpl.java | 330 + .../pseim/seim/impl/IntegerPropertyImpl.java | 289 + .../pseim/seim/impl/LinkImpl.java | 416 + .../pseim/seim/impl/ModelImpl.java | 331 + .../pseim/seim/impl/PortImpl.java | 349 + .../seim/impl/ReferencePropertyImpl.java | 298 + .../pseim/seim/impl/SeimFactoryImpl.java | 254 + .../pseim/seim/impl/SeimPackageImpl.java | 778 + .../pseim/seim/impl/StringPropertyImpl.java | 288 + .../pseim/seim/util/SeimAdapterFactory.java | 417 + .../pseim/seim/util/SeimSwitch.java | 547 + .../pseim/seim/util/SeimValidator.java | 754 + .../.classpath | 7 + .../com.irtsaintexupery.sirius.pseim/.project | 28 + .../META-INF/MANIFEST.MF | 15 + .../build.properties | 17 + .../description/pseim.odesign | 325 + .../description/seim.odesign | 238 + .../img/Component.gif | Bin 0 -> 98 bytes .../img/InputPort.gif | Bin 0 -> 900 bytes .../img/Link.gif | Bin 0 -> 898 bytes .../img/OutputPort.gif | Bin 0 -> 889 bytes .../img/PatternComponent-fun.svg | 137 + .../img/replay_icon.gif | Bin 0 -> 31385 bytes .../plugin.properties | 13 + .../plugin.xml | 21 + .../sirius/pseim/Activator.java | 76 + .../sirius/pseim/Services.java | 27 + .../.classpath | 9 + .../.project | 34 + .../org.eclipse.core.resources.prefs | 2 + .../.settings/org.eclipse.jdt.core.prefs | 7 + .../META-INF/MANIFEST.MF | 15 + .../build.properties | 6 + .../plugin.properties | 4 + .../services/org.eclipse.xtext.ISetup | 1 + .../xtext/ide/AbstractPseimIdeModule.java | 47 + .../PartialPseimContentAssistParser.java | 34 + .../ide/contentassist/antlr/PseimParser.java | 92 + .../antlr/internal/InternalPseim.g | 2280 + .../antlr/internal/InternalPseim.tokens | 49 + .../antlr/internal/InternalPseimLexer.java | 1481 + .../antlr/internal/InternalPseimParser.java | 6689 ++ .../xtext/ide/PseimIdeModule.xtend | 11 + .../xtext/ide/PseimIdeSetup.xtend | 20 + .../com/irtsaintexupery/xtext/ide/.gitignore | 6 + .../.classpath | 9 + .../.project | 34 + .../org.eclipse.core.resources.prefs | 2 + .../.settings/org.eclipse.jdt.core.prefs | 7 + .../META-INF/MANIFEST.MF | 15 + .../build.properties | 6 + .../plugin.properties | 4 + .../services/org.eclipse.xtext.ISetup | 1 + .../pseim/ide/AbstractPatternIdeModule.java | 47 + .../PartialPatternContentAssistParser.java | 34 + .../contentassist/antlr/PatternParser.java | 93 + .../antlr/internal/InternalPattern.g | 1879 + .../antlr/internal/InternalPattern.tokens | 45 + .../antlr/internal/InternalPatternLexer.java | 1343 + .../antlr/internal/InternalPatternParser.java | 5710 + .../xtext/pseim/ide/PatternIdeModule.xtend | 11 + .../xtext/pseim/ide/PatternIdeSetup.xtend | 20 + .../xtext/pseim/ide/.gitignore | 6 + .../.classpath | 9 + .../.project | 34 + .../org.eclipse.core.resources.prefs | 2 + .../.settings/org.eclipse.jdt.core.prefs | 7 + .../META-INF/MANIFEST.MF | 25 + .../build.properties | 7 + .../plugin.properties | 4 + .../plugin.xml | 410 + .../pattern/ui/internal/PatternActivator.java | 93 + .../pseim/ui/AbstractPatternUiModule.java | 293 + .../ui/PatternExecutableExtensionFactory.java | 27 + .../AbstractPatternProposalProvider.java | 94 + .../xtext/pseim/ui/PatternUiModule.xtend | 13 + .../PatternProposalProvider.xtend | 12 + .../PatternDescriptionLabelProvider.xtend | 24 + .../ui/labeling/PatternLabelProvider.xtend | 31 + .../outline/PatternOutlineTreeProvider.xtend | 15 + .../ui/quickfix/PatternQuickfixProvider.xtend | 24 + .../irtsaintexupery/xtext/pseim/ui/.gitignore | 3 + .../xtext/pseim/ui/contentassist/.gitignore | 3 + .../xtext/pseim/ui/labeling/.gitignore | 6 + .../xtext/pseim/ui/outline/.gitignore | 3 + .../xtext/pseim/ui/quickfix/.gitignore | 3 + .../.antlr-generator-3.2.0-patch.jar | Bin 0 -> 1484649 bytes .../.classpath | 9 + ...rn (pseimx) Language Infrastructure.launch | 18 + .../.launch/Launch Runtime Eclipse.launch | 34 + .../.project | 34 + .../org.eclipse.core.resources.prefs | 2 + .../.settings/org.eclipse.jdt.core.prefs | 7 + .../META-INF/MANIFEST.MF | 26 + .../build.properties | 19 + .../plugin.properties | 4 + .../pseim/AbstractPatternRuntimeModule.java | 216 + .../xtext/pseim/Pattern.xtextbin | Bin 0 -> 3771 bytes .../PatternStandaloneSetupGenerated.java | 37 + .../antlr/PatternAntlrTokenFileProvider.java | 16 + .../pseim/parser/antlr/PatternParser.java | 40 + .../parser/antlr/internal/InternalPattern.g | 751 + .../antlr/internal/InternalPattern.tokens | 45 + .../antlr/internal/InternalPatternLexer.java | 1343 + .../antlr/internal/InternalPatternParser.java | 1851 + .../scoping/AbstractPatternScopeProvider.java | 9 + .../serializer/PatternSemanticSequencer.java | 150 + .../serializer/PatternSyntacticSequencer.java | 80 + .../pseim/services/PatternGrammarAccess.java | 734 + .../validation/AbstractPatternValidator.java | 20 + .../xtext/pseim/GeneratePattern.mwe2 | 46 + .../irtsaintexupery/xtext/pseim/Pattern.xtext | 50 + .../xtext/pseim/PatternRuntimeModule.xtend | 11 + .../xtext/pseim/PatternStandaloneSetup.xtend | 15 + .../pseim/formatting2/PatternFormatter.xtend | 38 + .../pseim/generator/PatternGenerator.xtend | 25 + .../pseim/scoping/PatternScopeProvider.xtend | 15 + .../pseim/validation/PatternValidator.xtend | 25 + .../irtsaintexupery/xtext/pseim/.gitignore | 6 + .../xtext/pseim/formatting2/.gitignore | 3 + .../xtext/pseim/generator/.gitignore | 3 + .../xtext/pseim/scoping/.gitignore | 3 + .../xtext/pseim/validation/.gitignore | 3 + .../.classpath | 9 + .../.project | 34 + .../org.eclipse.core.resources.prefs | 2 + .../.settings/org.eclipse.jdt.core.prefs | 7 + .../META-INF/MANIFEST.MF | 25 + .../build.properties | 7 + .../plugin.properties | 4 + .../plugin.xml | 410 + .../pseim/ui/internal/PseimActivator.java | 93 + .../xtext/ui/AbstractPseimUiModule.java | 293 + .../ui/PseimExecutableExtensionFactory.java | 27 + .../AbstractPseimProposalProvider.java | 121 + .../xtext/ui/PseimUiModule.xtend | 13 + .../contentassist/PseimProposalProvider.xtend | 12 + .../PseimDescriptionLabelProvider.xtend | 24 + .../ui/labeling/PseimLabelProvider.xtend | 31 + .../ui/outline/PseimOutlineTreeProvider.xtend | 15 + .../ui/quickfix/PseimQuickfixProvider.xtend | 24 + .../com/irtsaintexupery/xtext/ui/.gitignore | 3 + .../xtext/ui/contentassist/.gitignore | 3 + .../xtext/ui/labeling/.gitignore | 6 + .../xtext/ui/outline/.gitignore | 3 + .../xtext/ui/quickfix/.gitignore | 3 + .../.antlr-generator-3.2.0-patch.jar | Bin 0 -> 1484649 bytes .../.classpath | 9 + ...eim (seimx) Language Infrastructure.launch | 18 + .../.launch/Launch Runtime Eclipse.launch | 34 + .../com.irtsaintexupery.xtext.pseim/.project | 34 + .../org.eclipse.core.resources.prefs | 2 + .../.settings/org.eclipse.jdt.core.prefs | 7 + .../META-INF/MANIFEST.MF | 26 + .../build.properties | 19 + .../plugin.properties | 4 + .../xtext/AbstractPseimRuntimeModule.java | 216 + .../com/irtsaintexupery/xtext/Pseim.xtextbin | Bin 0 -> 3721 bytes .../xtext/PseimStandaloneSetupGenerated.java | 37 + .../antlr/PseimAntlrTokenFileProvider.java | 16 + .../xtext/parser/antlr/PseimParser.java | 40 + .../parser/antlr/internal/InternalPseim.g | 864 + .../antlr/internal/InternalPseim.tokens | 49 + .../antlr/internal/InternalPseimLexer.java | 1481 + .../antlr/internal/InternalPseimParser.java | 2134 + .../scoping/AbstractPseimScopeProvider.java | 9 + .../serializer/PseimSemanticSequencer.java | 236 + .../serializer/PseimSyntacticSequencer.java | 77 + .../xtext/services/PseimGrammarAccess.java | 954 + .../validation/AbstractPseimValidator.java | 20 + .../irtsaintexupery/xtext/GeneratePseim.mwe2 | 51 + .../src/com/irtsaintexupery/xtext/Pseim.xtext | 79 + .../xtext/PseimRuntimeModule.xtend | 11 + .../xtext/PseimStandaloneSetup.xtend | 15 + .../xtext/formatting2/PseimFormatter.xtend | 34 + .../xtext/generator/PseimGenerator.xtend | 25 + .../xtext/scoping/PseimScopeProvider.xtend | 15 + .../xtext/validation/PseimValidator.xtend | 25 + .../com/irtsaintexupery/xtext/.gitignore | 6 + .../xtext/formatting2/.gitignore | 3 + .../xtext/generator/.gitignore | 3 + .../irtsaintexupery/xtext/scoping/.gitignore | 3 + .../xtext/validation/.gitignore | 3 + .../.project | 17 + .../site.xml | 7 + eclipse/releng/eclipse.configuration/.project | 11 + .../releng/eclipse.configuration/README.md | 18 + .../pseim_eclipse_install.p2f | 324 + .../eclipse.configuration/rodin_install.p2f | 198 + examples/pseim.examples/.project | 18 + .../org.eclipse.core.resources.prefs | 2 + .../pseim.examples/ArchiImplemOcaml.seimx | 39 + examples/pseim.examples/README.html | 55 + examples/pseim.examples/README.md | 50 + .../Test_MoonG_1/N-Version Programming.pseimx | 11 + .../pseim.examples/Test_MoonG_1/result.seimx | 35 + .../pseim.examples/Test_MoonG_1/result2.seimx | 29 + .../pseim.examples/Test_MoonG_1/source.seimx | 10 + .../pseim.examples/Test_MoonG_1/source2.seimx | 11 + .../pseim.examples/Test_MoonG_1/unfold.seimx | 22 + .../Test_MoonG_1/unfold_1.seimx | 41 + examples/pseim.examples/representations.aird | 28977 +++++ 370 files changed, 247380 insertions(+), 3 deletions(-) create mode 100644 .gitignore rename Copyright => Copyright.md (64%) create mode 100644 Event-B/pseim/.project create mode 100644 Event-B/pseim/README.md create mode 100644 Event-B/pseim/cComponent.bcc create mode 100644 Event-B/pseim/cComponent.bpr create mode 100644 Event-B/pseim/cComponent.buc create mode 100644 Event-B/pseim/cLink.bcc create mode 100644 Event-B/pseim/cLink.bpo create mode 100644 Event-B/pseim/cLink.bpr create mode 100644 Event-B/pseim/cLink.bps create mode 100644 Event-B/pseim/cLink.buc create mode 100644 Event-B/pseim/cModel.bcc create mode 100644 Event-B/pseim/cModel.bpr create mode 100644 Event-B/pseim/cModel.buc create mode 100644 Event-B/pseim/cPort.bcc create mode 100644 Event-B/pseim/cPort.bpo create mode 100644 Event-B/pseim/cPort.bpr create mode 100644 Event-B/pseim/cPort.bps create mode 100644 Event-B/pseim/cPort.buc create mode 100644 Event-B/pseim/event-b_model_structure2.jpg create mode 100644 Event-B/pseim/mComponent.bcm create mode 100644 Event-B/pseim/mComponent.bpo create mode 100644 Event-B/pseim/mComponent.bpr create mode 100644 Event-B/pseim/mComponent.bps create mode 100644 Event-B/pseim/mComponent.bum create mode 100644 Event-B/pseim/mLink.bpr create mode 100644 Event-B/pseim/mLink.bum create mode 100644 Event-B/pseim/mPort.bpr create mode 100644 Event-B/pseim/mPort.bum create mode 100644 Event-B/pseim/mProperty.bpr create mode 100644 Event-B/pseim/mProperty.bum create mode 100644 Event-B/pseim/pattern_safety.bpr create mode 100644 Event-B/pseim/pattern_safety.buc create mode 100644 Event-B/pseim/preuves.txt create mode 100644 Event-B/pseim/team/cComponent.buc.xmb create mode 100644 Event-B/pseim/team/cLink.buc.xmb create mode 100644 Event-B/pseim/team/cModel.buc.xmb create mode 100644 Event-B/pseim/team/cPort.buc.xmb create mode 100644 Event-B/pseim/team/mComponent.bum.xmb create mode 100644 Event-B/pseim/team/mLink.bum.xmb create mode 100644 Event-B/pseim/team/mPort.bum.xmb create mode 100644 Event-B/pseim/team/mProperty.bum.xmb create mode 100644 Event-B/pseim/team/pattern_safety.buc.xmb create mode 100644 README.md create mode 100644 eclipse/features/com.irtsaintexupery.pseim.feature/.project create mode 100644 eclipse/features/com.irtsaintexupery.pseim.feature/build.properties create mode 100644 eclipse/features/com.irtsaintexupery.pseim.feature/feature.xml create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/.classpath create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/.project create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/META-INF/MANIFEST.MF create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/build.properties create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/icons/full/ctool16/CreateLibrary_patterns_Pattern.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/icons/full/ctool16/CreatePattern_cardinalityElements_CardinalityElement.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/icons/full/obj16/BooleanProperty.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/icons/full/obj16/CardinalityElement.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/icons/full/obj16/Component.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/icons/full/obj16/IOPort.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/icons/full/obj16/IPort.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/icons/full/obj16/IntegerProperty.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/icons/full/obj16/Library.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/icons/full/obj16/Link.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/icons/full/obj16/Model.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/icons/full/obj16/OPort.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/icons/full/obj16/Pattern.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/icons/full/obj16/PatternComponent.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/icons/full/obj16/PatternLink.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/icons/full/obj16/PatternPort.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/icons/full/obj16/Port.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/icons/full/obj16/ReferenceProperty.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/icons/full/obj16/StringProperty.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/icons/full/obj16/UndefPort.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/plugin.properties create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/plugin.xml create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/src-gen/com/irtsaintexupery/pseim/pseim/provider/CardinalityElementItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/src-gen/com/irtsaintexupery/pseim/pseim/provider/LibraryItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/src-gen/com/irtsaintexupery/pseim/pseim/provider/PatternComponentItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/src-gen/com/irtsaintexupery/pseim/pseim/provider/PatternItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/src-gen/com/irtsaintexupery/pseim/pseim/provider/PatternLinkItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/src-gen/com/irtsaintexupery/pseim/pseim/provider/PatternPortItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/src-gen/com/irtsaintexupery/pseim/pseim/provider/PseimEditPlugin.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/src-gen/com/irtsaintexupery/pseim/pseim/provider/PseimItemProviderAdapterFactory.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/src-gen/com/irtsaintexupery/pseim/seim/provider/BooleanPropertyItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/src-gen/com/irtsaintexupery/pseim/seim/provider/ComponentItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/src-gen/com/irtsaintexupery/pseim/seim/provider/IntegerPropertyItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/src-gen/com/irtsaintexupery/pseim/seim/provider/LinkItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/src-gen/com/irtsaintexupery/pseim/seim/provider/ModelItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/src-gen/com/irtsaintexupery/pseim/seim/provider/PortItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/src-gen/com/irtsaintexupery/pseim/seim/provider/ReferencePropertyItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/src-gen/com/irtsaintexupery/pseim/seim/provider/SeimEditPlugin.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/src-gen/com/irtsaintexupery/pseim/seim/provider/SeimItemProviderAdapterFactory.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.edit/src-gen/com/irtsaintexupery/pseim/seim/provider/StringPropertyItemProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.editor/.classpath create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.editor/.project create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.editor/META-INF/MANIFEST.MF create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.editor/build.properties create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.editor/icons/full/obj16/PseimModelFile.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.editor/icons/full/obj16/SeimModelFile.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.editor/icons/full/wizban/NewPseim.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.editor/icons/full/wizban/NewSeim.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.editor/plugin.properties create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.editor/plugin.xml create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.editor/src-gen/com/irtsaintexupery/pseim/pseim/presentation/PseimActionBarContributor.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.editor/src-gen/com/irtsaintexupery/pseim/pseim/presentation/PseimEditor.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.editor/src-gen/com/irtsaintexupery/pseim/pseim/presentation/PseimEditorPlugin.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.editor/src-gen/com/irtsaintexupery/pseim/pseim/presentation/PseimModelWizard.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.editor/src-gen/com/irtsaintexupery/pseim/seim/presentation/SeimActionBarContributor.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.editor/src-gen/com/irtsaintexupery/pseim/seim/presentation/SeimEditor.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.editor/src-gen/com/irtsaintexupery/pseim/seim/presentation/SeimEditorPlugin.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim.editor/src-gen/com/irtsaintexupery/pseim/seim/presentation/SeimModelWizard.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/.classpath create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/.project create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/META-INF/MANIFEST.MF create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/build.properties create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/model/pseim.ecore create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/model/pseim.genmodel create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/model/seim.aird create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/model/seim.ecore create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/model/seim.genmodel create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/plugin.properties create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/plugin.xml create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/pseim/CardinalityElement.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/pseim/IdentifiedElement.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/pseim/Library.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/pseim/LinkType.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/pseim/MultiplicityElement.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/pseim/Pattern.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/pseim/PatternComponent.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/pseim/PatternLink.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/pseim/PatternPort.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/pseim/PatternPortDirection.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/pseim/PatternTypeFailureMode.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/pseim/PatternTypeHS.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/pseim/PseimFactory.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/pseim/PseimPackage.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/pseim/SafetyTactic.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/pseim/impl/CardinalityElementImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/pseim/impl/LibraryImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/pseim/impl/PatternComponentImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/pseim/impl/PatternImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/pseim/impl/PatternLinkImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/pseim/impl/PatternPortImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/pseim/impl/PseimFactoryImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/pseim/impl/PseimPackageImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/pseim/util/PseimAdapterFactory.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/pseim/util/PseimSwitch.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/pseim/util/PseimValidator.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/seim/BasicProperty.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/seim/BooleanProperty.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/seim/BorderElement.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/seim/Component.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/seim/Element.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/seim/GraphElement.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/seim/IdentifiedElement.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/seim/IntegerProperty.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/seim/Link.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/seim/Model.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/seim/NamedElement.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/seim/Port.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/seim/PortDirection.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/seim/Property.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/seim/PropertyHolder.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/seim/ReferenceProperty.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/seim/SeimFactory.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/seim/SeimPackage.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/seim/StringProperty.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/seim/impl/BooleanPropertyImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/seim/impl/ComponentImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/seim/impl/IntegerPropertyImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/seim/impl/LinkImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/seim/impl/ModelImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/seim/impl/PortImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/seim/impl/ReferencePropertyImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/seim/impl/SeimFactoryImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/seim/impl/SeimPackageImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/seim/impl/StringPropertyImpl.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/seim/util/SeimAdapterFactory.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/seim/util/SeimSwitch.java create mode 100644 eclipse/plugins/com.irtsaintexupery.pseim/src-gen/com/irtsaintexupery/pseim/seim/util/SeimValidator.java create mode 100644 eclipse/plugins/com.irtsaintexupery.sirius.pseim/.classpath create mode 100644 eclipse/plugins/com.irtsaintexupery.sirius.pseim/.project create mode 100644 eclipse/plugins/com.irtsaintexupery.sirius.pseim/META-INF/MANIFEST.MF create mode 100644 eclipse/plugins/com.irtsaintexupery.sirius.pseim/build.properties create mode 100644 eclipse/plugins/com.irtsaintexupery.sirius.pseim/description/pseim.odesign create mode 100644 eclipse/plugins/com.irtsaintexupery.sirius.pseim/description/seim.odesign create mode 100644 eclipse/plugins/com.irtsaintexupery.sirius.pseim/img/Component.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.sirius.pseim/img/InputPort.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.sirius.pseim/img/Link.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.sirius.pseim/img/OutputPort.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.sirius.pseim/img/PatternComponent-fun.svg create mode 100644 eclipse/plugins/com.irtsaintexupery.sirius.pseim/img/replay_icon.gif create mode 100644 eclipse/plugins/com.irtsaintexupery.sirius.pseim/plugin.properties create mode 100644 eclipse/plugins/com.irtsaintexupery.sirius.pseim/plugin.xml create mode 100644 eclipse/plugins/com.irtsaintexupery.sirius.pseim/src/com/irtsaintexupery/sirius/pseim/Activator.java create mode 100644 eclipse/plugins/com.irtsaintexupery.sirius.pseim/src/com/irtsaintexupery/sirius/pseim/Services.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ide/.classpath create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ide/.project create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ide/.settings/org.eclipse.core.resources.prefs create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ide/.settings/org.eclipse.jdt.core.prefs create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ide/META-INF/MANIFEST.MF create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ide/build.properties create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ide/plugin.properties create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ide/src-gen/META-INF/services/org.eclipse.xtext.ISetup create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ide/src-gen/com/irtsaintexupery/xtext/ide/AbstractPseimIdeModule.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ide/src-gen/com/irtsaintexupery/xtext/ide/contentassist/antlr/PartialPseimContentAssistParser.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ide/src-gen/com/irtsaintexupery/xtext/ide/contentassist/antlr/PseimParser.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ide/src-gen/com/irtsaintexupery/xtext/ide/contentassist/antlr/internal/InternalPseim.g create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ide/src-gen/com/irtsaintexupery/xtext/ide/contentassist/antlr/internal/InternalPseim.tokens create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ide/src-gen/com/irtsaintexupery/xtext/ide/contentassist/antlr/internal/InternalPseimLexer.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ide/src-gen/com/irtsaintexupery/xtext/ide/contentassist/antlr/internal/InternalPseimParser.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ide/src/com/irtsaintexupery/xtext/ide/PseimIdeModule.xtend create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ide/src/com/irtsaintexupery/xtext/ide/PseimIdeSetup.xtend create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ide/xtend-gen/com/irtsaintexupery/xtext/ide/.gitignore create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ide/.classpath create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ide/.project create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ide/.settings/org.eclipse.core.resources.prefs create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ide/.settings/org.eclipse.jdt.core.prefs create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ide/META-INF/MANIFEST.MF create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ide/build.properties create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ide/plugin.properties create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ide/src-gen/META-INF/services/org.eclipse.xtext.ISetup create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ide/src-gen/com/irtsaintexupery/xtext/pseim/ide/AbstractPatternIdeModule.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ide/src-gen/com/irtsaintexupery/xtext/pseim/ide/contentassist/antlr/PartialPatternContentAssistParser.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ide/src-gen/com/irtsaintexupery/xtext/pseim/ide/contentassist/antlr/PatternParser.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ide/src-gen/com/irtsaintexupery/xtext/pseim/ide/contentassist/antlr/internal/InternalPattern.g create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ide/src-gen/com/irtsaintexupery/xtext/pseim/ide/contentassist/antlr/internal/InternalPattern.tokens create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ide/src-gen/com/irtsaintexupery/xtext/pseim/ide/contentassist/antlr/internal/InternalPatternLexer.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ide/src-gen/com/irtsaintexupery/xtext/pseim/ide/contentassist/antlr/internal/InternalPatternParser.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ide/src/com/irtsaintexupery/xtext/pseim/ide/PatternIdeModule.xtend create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ide/src/com/irtsaintexupery/xtext/pseim/ide/PatternIdeSetup.xtend create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ide/xtend-gen/com/irtsaintexupery/xtext/pseim/ide/.gitignore create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ui/.classpath create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ui/.project create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ui/.settings/org.eclipse.core.resources.prefs create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ui/.settings/org.eclipse.jdt.core.prefs create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ui/META-INF/MANIFEST.MF create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ui/build.properties create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ui/plugin.properties create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ui/plugin.xml create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ui/src-gen/com/irtsaintexupery/xtext/pseim/pattern/ui/internal/PatternActivator.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ui/src-gen/com/irtsaintexupery/xtext/pseim/ui/AbstractPatternUiModule.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ui/src-gen/com/irtsaintexupery/xtext/pseim/ui/PatternExecutableExtensionFactory.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ui/src-gen/com/irtsaintexupery/xtext/pseim/ui/contentassist/AbstractPatternProposalProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ui/src/com/irtsaintexupery/xtext/pseim/ui/PatternUiModule.xtend create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ui/src/com/irtsaintexupery/xtext/pseim/ui/contentassist/PatternProposalProvider.xtend create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ui/src/com/irtsaintexupery/xtext/pseim/ui/labeling/PatternDescriptionLabelProvider.xtend create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ui/src/com/irtsaintexupery/xtext/pseim/ui/labeling/PatternLabelProvider.xtend create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ui/src/com/irtsaintexupery/xtext/pseim/ui/outline/PatternOutlineTreeProvider.xtend create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ui/src/com/irtsaintexupery/xtext/pseim/ui/quickfix/PatternQuickfixProvider.xtend create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ui/xtend-gen/com/irtsaintexupery/xtext/pseim/ui/.gitignore create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ui/xtend-gen/com/irtsaintexupery/xtext/pseim/ui/contentassist/.gitignore create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ui/xtend-gen/com/irtsaintexupery/xtext/pseim/ui/labeling/.gitignore create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ui/xtend-gen/com/irtsaintexupery/xtext/pseim/ui/outline/.gitignore create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern.ui/xtend-gen/com/irtsaintexupery/xtext/pseim/ui/quickfix/.gitignore create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern/.antlr-generator-3.2.0-patch.jar create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern/.classpath create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern/.launch/Generate Pattern (pseimx) Language Infrastructure.launch create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern/.launch/Launch Runtime Eclipse.launch create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern/.project create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern/.settings/org.eclipse.core.resources.prefs create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern/.settings/org.eclipse.jdt.core.prefs create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern/META-INF/MANIFEST.MF create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern/build.properties create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern/plugin.properties create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern/src-gen/com/irtsaintexupery/xtext/pseim/AbstractPatternRuntimeModule.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern/src-gen/com/irtsaintexupery/xtext/pseim/Pattern.xtextbin create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern/src-gen/com/irtsaintexupery/xtext/pseim/PatternStandaloneSetupGenerated.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern/src-gen/com/irtsaintexupery/xtext/pseim/parser/antlr/PatternAntlrTokenFileProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern/src-gen/com/irtsaintexupery/xtext/pseim/parser/antlr/PatternParser.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern/src-gen/com/irtsaintexupery/xtext/pseim/parser/antlr/internal/InternalPattern.g create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern/src-gen/com/irtsaintexupery/xtext/pseim/parser/antlr/internal/InternalPattern.tokens create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern/src-gen/com/irtsaintexupery/xtext/pseim/parser/antlr/internal/InternalPatternLexer.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern/src-gen/com/irtsaintexupery/xtext/pseim/parser/antlr/internal/InternalPatternParser.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern/src-gen/com/irtsaintexupery/xtext/pseim/scoping/AbstractPatternScopeProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern/src-gen/com/irtsaintexupery/xtext/pseim/serializer/PatternSemanticSequencer.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern/src-gen/com/irtsaintexupery/xtext/pseim/serializer/PatternSyntacticSequencer.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern/src-gen/com/irtsaintexupery/xtext/pseim/services/PatternGrammarAccess.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern/src-gen/com/irtsaintexupery/xtext/pseim/validation/AbstractPatternValidator.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern/src/com/irtsaintexupery/xtext/pseim/GeneratePattern.mwe2 create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern/src/com/irtsaintexupery/xtext/pseim/Pattern.xtext create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern/src/com/irtsaintexupery/xtext/pseim/PatternRuntimeModule.xtend create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern/src/com/irtsaintexupery/xtext/pseim/PatternStandaloneSetup.xtend create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern/src/com/irtsaintexupery/xtext/pseim/formatting2/PatternFormatter.xtend create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern/src/com/irtsaintexupery/xtext/pseim/generator/PatternGenerator.xtend create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern/src/com/irtsaintexupery/xtext/pseim/scoping/PatternScopeProvider.xtend create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern/src/com/irtsaintexupery/xtext/pseim/validation/PatternValidator.xtend create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern/xtend-gen/com/irtsaintexupery/xtext/pseim/.gitignore create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern/xtend-gen/com/irtsaintexupery/xtext/pseim/formatting2/.gitignore create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern/xtend-gen/com/irtsaintexupery/xtext/pseim/generator/.gitignore create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern/xtend-gen/com/irtsaintexupery/xtext/pseim/scoping/.gitignore create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.pattern/xtend-gen/com/irtsaintexupery/xtext/pseim/validation/.gitignore create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ui/.classpath create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ui/.project create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ui/.settings/org.eclipse.core.resources.prefs create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ui/.settings/org.eclipse.jdt.core.prefs create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ui/META-INF/MANIFEST.MF create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ui/build.properties create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ui/plugin.properties create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ui/plugin.xml create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ui/src-gen/com/irtsaintexupery/xtext/pseim/ui/internal/PseimActivator.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ui/src-gen/com/irtsaintexupery/xtext/ui/AbstractPseimUiModule.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ui/src-gen/com/irtsaintexupery/xtext/ui/PseimExecutableExtensionFactory.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ui/src-gen/com/irtsaintexupery/xtext/ui/contentassist/AbstractPseimProposalProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ui/src/com/irtsaintexupery/xtext/ui/PseimUiModule.xtend create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ui/src/com/irtsaintexupery/xtext/ui/contentassist/PseimProposalProvider.xtend create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ui/src/com/irtsaintexupery/xtext/ui/labeling/PseimDescriptionLabelProvider.xtend create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ui/src/com/irtsaintexupery/xtext/ui/labeling/PseimLabelProvider.xtend create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ui/src/com/irtsaintexupery/xtext/ui/outline/PseimOutlineTreeProvider.xtend create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ui/src/com/irtsaintexupery/xtext/ui/quickfix/PseimQuickfixProvider.xtend create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ui/xtend-gen/com/irtsaintexupery/xtext/ui/.gitignore create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ui/xtend-gen/com/irtsaintexupery/xtext/ui/contentassist/.gitignore create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ui/xtend-gen/com/irtsaintexupery/xtext/ui/labeling/.gitignore create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ui/xtend-gen/com/irtsaintexupery/xtext/ui/outline/.gitignore create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim.ui/xtend-gen/com/irtsaintexupery/xtext/ui/quickfix/.gitignore create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim/.antlr-generator-3.2.0-patch.jar create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim/.classpath create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim/.launch/Generate Pseim (seimx) Language Infrastructure.launch create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim/.launch/Launch Runtime Eclipse.launch create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim/.project create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim/.settings/org.eclipse.core.resources.prefs create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim/.settings/org.eclipse.jdt.core.prefs create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim/META-INF/MANIFEST.MF create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim/build.properties create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim/plugin.properties create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim/src-gen/com/irtsaintexupery/xtext/AbstractPseimRuntimeModule.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim/src-gen/com/irtsaintexupery/xtext/Pseim.xtextbin create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim/src-gen/com/irtsaintexupery/xtext/PseimStandaloneSetupGenerated.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim/src-gen/com/irtsaintexupery/xtext/parser/antlr/PseimAntlrTokenFileProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim/src-gen/com/irtsaintexupery/xtext/parser/antlr/PseimParser.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim/src-gen/com/irtsaintexupery/xtext/parser/antlr/internal/InternalPseim.g create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim/src-gen/com/irtsaintexupery/xtext/parser/antlr/internal/InternalPseim.tokens create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim/src-gen/com/irtsaintexupery/xtext/parser/antlr/internal/InternalPseimLexer.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim/src-gen/com/irtsaintexupery/xtext/parser/antlr/internal/InternalPseimParser.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim/src-gen/com/irtsaintexupery/xtext/scoping/AbstractPseimScopeProvider.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim/src-gen/com/irtsaintexupery/xtext/serializer/PseimSemanticSequencer.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim/src-gen/com/irtsaintexupery/xtext/serializer/PseimSyntacticSequencer.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim/src-gen/com/irtsaintexupery/xtext/services/PseimGrammarAccess.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim/src-gen/com/irtsaintexupery/xtext/validation/AbstractPseimValidator.java create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim/src/com/irtsaintexupery/xtext/GeneratePseim.mwe2 create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim/src/com/irtsaintexupery/xtext/Pseim.xtext create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim/src/com/irtsaintexupery/xtext/PseimRuntimeModule.xtend create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim/src/com/irtsaintexupery/xtext/PseimStandaloneSetup.xtend create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim/src/com/irtsaintexupery/xtext/formatting2/PseimFormatter.xtend create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim/src/com/irtsaintexupery/xtext/generator/PseimGenerator.xtend create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim/src/com/irtsaintexupery/xtext/scoping/PseimScopeProvider.xtend create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim/src/com/irtsaintexupery/xtext/validation/PseimValidator.xtend create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim/xtend-gen/com/irtsaintexupery/xtext/.gitignore create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim/xtend-gen/com/irtsaintexupery/xtext/formatting2/.gitignore create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim/xtend-gen/com/irtsaintexupery/xtext/generator/.gitignore create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim/xtend-gen/com/irtsaintexupery/xtext/scoping/.gitignore create mode 100644 eclipse/plugins/com.irtsaintexupery.xtext.pseim/xtend-gen/com/irtsaintexupery/xtext/validation/.gitignore create mode 100644 eclipse/releng/com.irtsaintexupery.pseim.repository/.project create mode 100644 eclipse/releng/com.irtsaintexupery.pseim.repository/site.xml create mode 100644 eclipse/releng/eclipse.configuration/.project create mode 100644 eclipse/releng/eclipse.configuration/README.md create mode 100644 eclipse/releng/eclipse.configuration/pseim_eclipse_install.p2f create mode 100644 eclipse/releng/eclipse.configuration/rodin_install.p2f create mode 100644 examples/pseim.examples/.project create mode 100644 examples/pseim.examples/.settings/org.eclipse.core.resources.prefs create mode 100644 examples/pseim.examples/ArchiImplemOcaml.seimx create mode 100644 examples/pseim.examples/README.html create mode 100644 examples/pseim.examples/README.md create mode 100644 examples/pseim.examples/Test_MoonG_1/N-Version Programming.pseimx create mode 100644 examples/pseim.examples/Test_MoonG_1/result.seimx create mode 100644 examples/pseim.examples/Test_MoonG_1/result2.seimx create mode 100644 examples/pseim.examples/Test_MoonG_1/source.seimx create mode 100644 examples/pseim.examples/Test_MoonG_1/source2.seimx create mode 100644 examples/pseim.examples/Test_MoonG_1/unfold.seimx create mode 100644 examples/pseim.examples/Test_MoonG_1/unfold_1.seimx create mode 100644 examples/pseim.examples/representations.aird diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d885384 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +**/bin \ No newline at end of file diff --git a/Copyright b/Copyright.md similarity index 64% rename from Copyright rename to Copyright.md index 9f846f2..6786f2a 100644 --- a/Copyright +++ b/Copyright.md @@ -1,8 +1,7 @@ Copyright (c) 2017-2018 IRT AESE (IRT Saint Exupéry). All rights reserved. This program and the accompanying materials -are made available under the terms of the -Eclipse Public License 2.0 (EPL 2.0) -which accompanies this distribution, and is available at +are made available under the terms of the Eclipse Public License 2.0 (EPL 2.0) +which accompanies this distribution, and is available at https://www.eclipse.org/legal/epl-2.0/ Contributors: diff --git a/Event-B/pseim/.project b/Event-B/pseim/.project new file mode 100644 index 0000000..ece04c6 --- /dev/null +++ b/Event-B/pseim/.project @@ -0,0 +1,17 @@ + + + pseim + + + + + + org.rodinp.core.rodinbuilder + + + + + + org.rodinp.core.rodinnature + + diff --git a/Event-B/pseim/README.md b/Event-B/pseim/README.md new file mode 100644 index 0000000..29383e0 --- /dev/null +++ b/Event-B/pseim/README.md @@ -0,0 +1,23 @@ +# Patterns for SEIM Event-B models + +## Contributors + +Jean-Paul Bodeveix, Arnaud Dieumegard, Mamoun Filali + +## Content + +This project contains the Event-B models for the formalization of pattern instantiations on system engineering models. + +### Structure + +![Pattern instantiation and application model](event-b_model_structure2.jpg "Pattern instantiation and application project structure") + +### Documentation + +Documentation on the content of these models is provided on the deliverable. + +### Additional elements + +An other context is provided: pattern_safety. +This model contains the first version of an instance of pattern directly encoded using Event-B. +Using simulation tools such as Pro-B on this model may produce an instance of Model where the pattern is instantiated. This shall be checked as it is only a prototype. \ No newline at end of file diff --git a/Event-B/pseim/cComponent.bcc b/Event-B/pseim/cComponent.bcc new file mode 100644 index 0000000..b94ce4f --- /dev/null +++ b/Event-B/pseim/cComponent.bcc @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/Event-B/pseim/cComponent.bpr b/Event-B/pseim/cComponent.bpr new file mode 100644 index 0000000..d13ec2a --- /dev/null +++ b/Event-B/pseim/cComponent.bpr @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/Event-B/pseim/cComponent.buc b/Event-B/pseim/cComponent.buc new file mode 100644 index 0000000..6bdc73c --- /dev/null +++ b/Event-B/pseim/cComponent.buc @@ -0,0 +1,5 @@ + + + + + diff --git a/Event-B/pseim/cLink.bcc b/Event-B/pseim/cLink.bcc new file mode 100644 index 0000000..997911b --- /dev/null +++ b/Event-B/pseim/cLink.bcc @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Event-B/pseim/cLink.bpo b/Event-B/pseim/cLink.bpo new file mode 100644 index 0000000..1e38eca --- /dev/null +++ b/Event-B/pseim/cLink.bpo @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Event-B/pseim/cLink.bpr b/Event-B/pseim/cLink.bpr new file mode 100644 index 0000000..d13ec2a --- /dev/null +++ b/Event-B/pseim/cLink.bpr @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/Event-B/pseim/cLink.bps b/Event-B/pseim/cLink.bps new file mode 100644 index 0000000..ced513e --- /dev/null +++ b/Event-B/pseim/cLink.bps @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/Event-B/pseim/cLink.buc b/Event-B/pseim/cLink.buc new file mode 100644 index 0000000..e8122c9 --- /dev/null +++ b/Event-B/pseim/cLink.buc @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/Event-B/pseim/cModel.bcc b/Event-B/pseim/cModel.bcc new file mode 100644 index 0000000..d29cb06 --- /dev/null +++ b/Event-B/pseim/cModel.bcc @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/Event-B/pseim/cModel.bpr b/Event-B/pseim/cModel.bpr new file mode 100644 index 0000000..d13ec2a --- /dev/null +++ b/Event-B/pseim/cModel.bpr @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/Event-B/pseim/cModel.buc b/Event-B/pseim/cModel.buc new file mode 100644 index 0000000..c950a1a --- /dev/null +++ b/Event-B/pseim/cModel.buc @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/Event-B/pseim/cPort.bcc b/Event-B/pseim/cPort.bcc new file mode 100644 index 0000000..1c949d4 --- /dev/null +++ b/Event-B/pseim/cPort.bcc @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Event-B/pseim/cPort.bpo b/Event-B/pseim/cPort.bpo new file mode 100644 index 0000000..e2853c8 --- /dev/null +++ b/Event-B/pseim/cPort.bpo @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Event-B/pseim/cPort.bpr b/Event-B/pseim/cPort.bpr new file mode 100644 index 0000000..d13ec2a --- /dev/null +++ b/Event-B/pseim/cPort.bpr @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/Event-B/pseim/cPort.bps b/Event-B/pseim/cPort.bps new file mode 100644 index 0000000..ced513e --- /dev/null +++ b/Event-B/pseim/cPort.bps @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/Event-B/pseim/cPort.buc b/Event-B/pseim/cPort.buc new file mode 100644 index 0000000..f5d860d --- /dev/null +++ b/Event-B/pseim/cPort.buc @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/Event-B/pseim/event-b_model_structure2.jpg b/Event-B/pseim/event-b_model_structure2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..72615d7166911742fa44790ca33aefc61d3c249d GIT binary patch literal 30908 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 E59=vzD*ylh literal 0 HcmV?d00001 diff --git a/Event-B/pseim/mComponent.bcm b/Event-B/pseim/mComponent.bcm new file mode 100644 index 0000000..bce9b66 --- /dev/null +++ b/Event-B/pseim/mComponent.bcm @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Event-B/pseim/mComponent.bpo b/Event-B/pseim/mComponent.bpo new file mode 100644 index 0000000..9620fbe --- /dev/null +++ b/Event-B/pseim/mComponent.bpo @@ -0,0 +1,775 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Event-B/pseim/mComponent.bpr b/Event-B/pseim/mComponent.bpr new file mode 100644 index 0000000..0ac574c --- /dev/null +++ b/Event-B/pseim/mComponent.bpr @@ -0,0 +1,20512 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Event-B/pseim/mComponent.bps b/Event-B/pseim/mComponent.bps new file mode 100644 index 0000000..ced513e --- /dev/null +++ b/Event-B/pseim/mComponent.bps @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/Event-B/pseim/mComponent.bum b/Event-B/pseim/mComponent.bum new file mode 100644 index 0000000..57cdfea --- /dev/null +++ b/Event-B/pseim/mComponent.bum @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Event-B/pseim/mLink.bpr b/Event-B/pseim/mLink.bpr new file mode 100644 index 0000000..cbe833b --- /dev/null +++ b/Event-B/pseim/mLink.bpr @@ -0,0 +1,90180 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +