[Avida-SVN] r2695 - in branches/uml-merge/tests: . _orchid-avida-marple _orchid-avida-marple/config _orchid-avida-marple/expected _orchid-avida-marple/expected/data

hjg at myxo.css.msu.edu hjg at myxo.css.msu.edu
Tue Jul 1 12:45:11 PDT 2008


Author: hjg
Date: 2008-07-01 15:45:11 -0400 (Tue, 01 Jul 2008)
New Revision: 2695

Added:
   branches/uml-merge/tests/_orchid-avida-marple/
   branches/uml-merge/tests/_orchid-avida-marple/config/
   branches/uml-merge/tests/_orchid-avida-marple/config/avida.cfg
   branches/uml-merge/tests/_orchid-avida-marple/config/custom-uml-instructions.cfg
   branches/uml-merge/tests/_orchid-avida-marple/config/default-classic.org
   branches/uml-merge/tests/_orchid-avida-marple/config/environment-uml.cfg
   branches/uml-merge/tests/_orchid-avida-marple/config/events.cfg
   branches/uml-merge/tests/_orchid-avida-marple/config/seed-model.cfg
   branches/uml-merge/tests/_orchid-avida-marple/config/tmp.pr
   branches/uml-merge/tests/_orchid-avida-marple/config/tmp.xmi
   branches/uml-merge/tests/_orchid-avida-marple/config/xmi_info
   branches/uml-merge/tests/_orchid-avida-marple/expected/
   branches/uml-merge/tests/_orchid-avida-marple/expected/data/
   branches/uml-merge/tests/_orchid-avida-marple/expected/data/average.dat
   branches/uml-merge/tests/_orchid-avida-marple/expected/data/count.dat
   branches/uml-merge/tests/_orchid-avida-marple/expected/data/dominant.dat
   branches/uml-merge/tests/_orchid-avida-marple/expected/data/property.dat
   branches/uml-merge/tests/_orchid-avida-marple/expected/data/resource.dat
   branches/uml-merge/tests/_orchid-avida-marple/expected/data/stats.dat
   branches/uml-merge/tests/_orchid-avida-marple/expected/data/tasks.dat
   branches/uml-merge/tests/_orchid-avida-marple/expected/data/time.dat
   branches/uml-merge/tests/_orchid-avida-marple/expected/tmp-property.pr
   branches/uml-merge/tests/_orchid-avida-marple/expected/tmp-witness.pr
   branches/uml-merge/tests/_orchid-avida-marple/test_list
Log:
added avida-marple consistency test

Added: branches/uml-merge/tests/_orchid-avida-marple/config/avida.cfg
===================================================================
--- branches/uml-merge/tests/_orchid-avida-marple/config/avida.cfg	                        (rev 0)
+++ branches/uml-merge/tests/_orchid-avida-marple/config/avida.cfg	2008-07-01 19:45:11 UTC (rev 2695)
@@ -0,0 +1,329 @@
+#############################################################################
+# This file includes all the basic run-time defines for Avida.
+# For more information, see doc/config.html
+#############################################################################
+
+VERSION_ID 2.7.0   # Do not change this value.
+
+### GENERAL_GROUP ###
+# General Settings
+ANALYZE_MODE 0  # 0 = Disabled
+                # 1 = Enabled
+                # 2 = Interactive
+VIEW_MODE 1     # Initial viewer screen
+CLONE_FILE -    # Clone file to load
+VERBOSITY 1     # Control output verbosity
+
+### ARCH_GROUP ###
+# Architecture Variables
+WORLD_X 10        # Width of the Avida world
+WORLD_Y 10        # Height of the Avida world
+WORLD_GEOMETRY 2  # 1 = Bounded Grid
+                  # 2 = Torus
+                  # 3 = Clique
+RANDOM_SEED 83123671     # Random number seed (0 for based on time)
+HARDWARE_TYPE 0   # 0 = Original CPUs
+                  # 1 = New SMT CPUs
+                  # 2 = Transitional SMT
+                  # 3 = Experimental CPU
+                  # 4 = Gene Expression CPU
+
+### CONFIG_FILE_GROUP ###
+# Configuration Files
+DATA_DIR data                       # Directory in which config files are found
+INST_SET custom-uml-instructions.cfg  # File containing instruction set
+EVENT_FILE events.cfg               # File containing list of events during run
+ANALYZE_FILE analyze.cfg            # File used for analysis mode
+ENVIRONMENT_FILE environment-uml.cfg    # File that describes the environment
+START_CREATURE default-classic.org  # Organism to seed the soup
+SEED_MODEL seed-model.cfg           # UML configuration file.
+
+### DEME_GROUP ###
+# Demes and Germlines
+NUM_DEMES 1                  # Number of independent groups in the population.
+DEMES_USE_GERMLINE 0         # Whether demes use a distinct germline; 0=off
+DEMES_HAVE_MERIT 0           # Whether demes have merit; 0=no
+GERMLINE_COPY_MUT 0.0075     # Prob. of copy mutations occuring during
+                             # germline replication.
+GERMLINE_REPLACES_SOURCE 0   # Whether the source germline is updated
+                             # on replication; 0=no.
+GERMLINE_RANDOM_PLACEMENT 0  # Whether the seed for a germline is placed
+                             #  randomly within the deme; 0=no.
+MAX_DEME_AGE 500             # The maximum age of a deme (in updates) to be
+                             # used for age-based replication (default=500).
+
+### REPRODUCTION_GROUP ###
+# Birth and Death
+BIRTH_METHOD 0            # Which organism should be replaced on birth?
+                          # 0 = Random organism in neighborhood
+                          # 1 = Oldest in neighborhood
+                          # 2 = Largest Age/Merit in neighborhood
+                          # 3 = None (use only empty cells in neighborhood)
+                          # 4 = Random from population (Mass Action)
+                          # 5 = Oldest in entire population
+                          # 6 = Random within deme
+                          # 7 = Organism faced by parent
+                          # 8 = Next grid cell (id+1)
+                          # 9 = Largest energy used in entire population
+                          # 10 = Largest energy used in neighborhood
+PREFER_EMPTY 1            # Give empty cells preference in offsping placement?
+ALLOW_PARENT 1            # Allow births to replace the parent organism?
+DEATH_METHOD 2            # 0 = Never die of old age.
+                          # 1 = Die when inst executed = AGE_LIMIT (+deviation)
+                          # 2 = Die when inst executed = length*AGE_LIMIT (+dev)
+AGE_LIMIT 20              # Modifies DEATH_METHOD
+AGE_DEVIATION 0           # Creates a distribution around AGE_LIMIT
+ALLOC_METHOD 0            # (Orignal CPU Only)
+                          # 0 = Allocated space is set to default instruction.
+                          # 1 = Set to section of dead genome (Necrophilia)
+                          # 2 = Allocated space is set to random instruction.
+DIVIDE_METHOD 1           # 0 = Divide leaves state of mother untouched.
+                          # 1 = Divide resets state of mother
+                          #     (after the divide, we have 2 children)
+                          # 2 = Divide resets state of current thread only
+                          #     (does not touch possible parasite threads)
+INJECT_METHOD 0           # 0 = Leaves the parasite thread state untouched.
+                          # 1 = Resets the calling thread state on inject
+GENERATION_INC_METHOD 1   # 0 = Only the generation of the child is
+                          #     increased on divide.
+                          # 1 = Both the generation of the mother and child are
+                          #     increased on divide (good with DIVIDE_METHOD 1).
+RESET_INPUTS_ON_DIVIDE 0  # Reset environment inputs of parent upon successful divide.
+
+### RECOMBINATION_GROUP ###
+# Sexual Recombination and Modularity
+RECOMBINATION_PROB 1.0  # probability of recombination in div-sex
+MAX_BIRTH_WAIT_TIME -1  # Updates incipiant orgs can wait for crossover
+MODULE_NUM 0            # number of modules in the genome
+CONT_REC_REGS 1         # are (modular) recombination regions continuous
+CORESPOND_REC_REGS 1    # are (modular) recombination regions swapped randomly
+                        #  or with corresponding positions?
+TWO_FOLD_COST_SEX 0     # 1 = only one recombined offspring is born.
+                        # 2 = both offspring are born
+SAME_LENGTH_SEX 0       # 0 = recombine with any genome
+                        # 1 = only recombine w/ same length
+
+### DIVIDE_GROUP ###
+# Divide Restrictions
+CHILD_SIZE_RANGE 2.0    # Maximal differential between child and parent sizes.
+MIN_COPIED_LINES 0.5    # Code fraction which must be copied before divide.
+MIN_EXE_LINES 0.5       # Code fraction which must be executed before divide.
+REQUIRE_ALLOCATE 1      # (Original CPU Only) Require allocate before divide?
+REQUIRED_TASK -1        # Task ID required for successful divide.
+IMMUNITY_TASK -1        # Task providing immunity from the required task.
+REQUIRED_REACTION -1    # Reaction ID required for successful divide.
+IMPLICIT_REPRO_BONUS 0  # Immediately call Inst_Repro to divide when upon achieving this bonus. 0 = OFF
+IMPLICIT_REPRO_TIME 0   # Immediately call Inst_Repro after this many cpu cycles. 0 = OFF
+
+### MUTATION_GROUP ###
+# Mutations
+POINT_MUT_PROB 0.0    # Mutation rate (per-location per update)
+COPY_MUT_PROB 0.0075  # Mutation rate (per copy)
+INS_MUT_PROB 0.0      # Insertion rate (per site, applied on divide)
+DEL_MUT_PROB 0.0      # Deletion rate (per site, applied on divide)
+DIV_MUT_PROB 0.0      # Mutation rate (per site, applied on divide)
+DIVIDE_MUT_PROB 0.0   # Mutation rate (per divide)
+DIVIDE_INS_PROB 0.05  # Insertion rate (per divide)
+DIVIDE_DEL_PROB 0.05  # Deletion rate (per divide)
+DIVIDE_SLIP_PROB 0.0  #Slip rate (per divide) - creates large deletions/duplication
+PARENT_MUT_PROB 0.0   # Per-site, in parent, on divide
+SPECIAL_MUT_LINE -1   # If this is >= 0, ONLY this line is mutated
+INJECT_INS_PROB 0.0   # Insertion rate (per site, applied on inject)
+INJECT_DEL_PROB 0.0   # Deletion rate (per site, applied on inject)
+INJECT_MUT_PROB 0.0   # Mutation rate (per site, applied on inject)
+META_COPY_MUT 0.0     # Prob. of copy mutation rate changing (per gen)
+META_STD_DEV 0.0      # Standard deviation of meta mutation size.
+MUT_RATE_SOURCE 1     # 1 = Mutation rates determined by environment.
+                      # 2 = Mutation rates inherited from parent.
+
+### REVERSION_GROUP ###
+# Mutation Reversion
+# These slow down avida a lot, and should be set to 0.0 normally.
+REVERT_FATAL 0.0           # Should any mutations be reverted on birth?
+REVERT_DETRIMENTAL 0.0     #   0.0 to 1.0; Probability of reversion.
+REVERT_NEUTRAL 0.0         # 
+REVERT_BENEFICIAL 0.0      # 
+STERILIZE_FATAL 0.0        # Should any mutations clear (kill) the organism?
+STERILIZE_DETRIMENTAL 0.0  # 
+STERILIZE_NEUTRAL 0.0      # 
+STERILIZE_BENEFICIAL 0.0   # 
+FAIL_IMPLICIT 0            # Should copies that failed *not* due to mutations
+                           # be eliminated?
+NEUTRAL_MAX 0.0            # The percent benifical change from parent fitness
+                           # to be considered neutral.
+NEUTRAL_MIN 0.0            # The percent deleterious change from parent fitness
+                           # to be considered neutral.
+
+### TIME_GROUP ###
+# Time Slicing
+AVE_TIME_SLICE 30           # Ave number of insts per org per update
+SLICING_METHOD 1            # 0 = CONSTANT: all organisms get default...
+                            # 1 = PROBABILISTIC: Run _prob_ proportional to merit.
+                            # 2 = INTEGRATED: Perfectly integrated deterministic.
+BASE_MERIT_METHOD 4         # 0 = Constant (merit independent of size)
+                            # 1 = Merit proportional to copied size
+                            # 2 = Merit prop. to executed size
+                            # 3 = Merit prop. to full size
+                            # 4 = Merit prop. to min of executed or copied size
+                            # 5 = Merit prop. to sqrt of the minimum size
+                            # 6 = Merit prop. to num times MERIT_BONUS_INST is in genome.
+BASE_CONST_MERIT 100        # Base merit when BASE_MERIT_METHOD set to 0
+DEFAULT_BONUS 1.0           # Initial bonus before any tasks
+MERIT_DEFAULT_BONUS 0       # Scale the merit of an offspring by the default bonus
+                            # rather than the accumulated bonus of the parent?
+MERIT_BONUS_INST 0          # in BASE_MERIT_METHOD 6, this sets which instruction counts
+                            # (-1 = none, 0 = First in INST_SET.)
+MERIT_BONUS_EFFECT 0        # in BASE_MERIT_METHOD 6, this sets how much merit is earned
+                            # per instruction (-1 = penalty, 0 = no effect.)
+FITNESS_VALLEY 0            # in BASE_MERIT_METHOD 6, this creates valleys from
+                            # FITNESS_VALLEY_START to FITNESS_VALLEY_STOP
+                            # (0 = off, 1 = on)
+FITNESS_VALLEY_START 0      # if FITNESS_VALLEY = 1, orgs with num_key_instructions
+                            # from FITNESS_VALLEY_START to FITNESS_VALLEY_STOP
+                            # get fitness 1 (lowest)
+FITNESS_VALLEY_STOP 0       # if FITNESS_VALLEY = 1, orgs with num_key_instructions
+                            # from FITNESS_VALLEY_START to FITNESS_VALLEY_STOP
+                            # get fitness 1 (lowest)
+MAX_CPU_THREADS 1           # Number of Threads a CPU can spawn
+THREAD_SLICING_METHOD 0     # Formula for and organism's thread slicing
+                            #   (num_threads-1) * THREAD_SLICING_METHOD + 1
+                            # 0 = One thread executed per time slice.
+                            # 1 = All threads executed each time slice.
+MAX_LABEL_EXE_SIZE 1        # Max nops marked as executed when labels are used
+MERIT_GIVEN 0.0             # Fraction of merit donated with 'donate' command
+MERIT_RECEIVED 0.0          # Multiplier of merit given with 'donate' command
+MAX_DONATE_KIN_DIST -1      # Limit on distance of relation for donate; -1=no max
+MAX_DONATE_EDIT_DIST -1     # Limit on genetic (edit) distance for donate; -1=no max
+MIN_GB_DONATE_THRESHOLD -1  # threshold green beard donates only to orgs above this
+                            # donation attempt threshold; -1=no thresh
+DONATE_THRESH_QUANTA 10     # The size of steps between quanta donate thresholds
+MAX_DONATES 1000000         # Limit on number of donates organisms are allowed.
+PRECALC_MERIT 0             # Pre-calculate merit at birth (unlimited resources only).
+
+### GENEOLOGY_GROUP ###
+# Geneology
+TRACK_MAIN_LINEAGE 1  # Keep all ancestors of the active population?
+                      # 0=no, 1=yes, 2=yes,w/sexual population
+THRESHOLD 3           # Number of organisms in a genotype needed for it
+                      #   to be considered viable.
+GENOTYPE_PRINT 0      # 0/1 (off/on) Print out all threshold genotypes?
+GENOTYPE_PRINT_DOM 0  # Print out a genotype if it stays dominant for
+                      #   this many updates. (0 = off)
+SPECIES_THRESHOLD 2   # max failure count for organisms to be same species
+SPECIES_RECORDING 0   # 1 = full, 2 = limited search (parent only)
+SPECIES_PRINT 0       # 0/1 (off/on) Print out all species?
+TEST_CPU_TIME_MOD 20  # Time allocated in test CPUs (multiple of length)
+
+### LOG_GROUP ###
+# Log Files
+LOG_CREATURES 0  # 0/1 (off/on) toggle to print file.
+LOG_GENOTYPES 0  # 0 = off, 1 = print ALL, 2 = print threshold ONLY.
+LOG_THRESHOLD 0  # 0/1 (off/on) toggle to print file.
+LOG_SPECIES 0    # 0/1 (off/on) toggle to print file.
+
+### LINEAGE_GROUP ###
+# Lineage
+# NOTE: This should probably be called "Clade"
+# This one can slow down avida a lot. It is used to get an idea of how
+# often an advantageous mutation arises, and where it goes afterwards.
+# Lineage creation options are.  Works only when LOG_LINEAGES is set to 1.
+#   0 = manual creation (on inject, use successive integers as lineage labels).
+#   1 = when a child's (potential) fitness is higher than that of its parent.
+#   2 = when a child's (potential) fitness is higher than max in population.
+#   3 = when a child's (potential) fitness is higher than max in dom. lineage
+# *and* the child is in the dominant lineage, or (2)
+#   4 = when a child's (potential) fitness is higher than max in dom. lineage
+# (and that of its own lineage)
+#   5 = same as child's (potential) fitness is higher than that of the
+#       currently dominant organism, and also than that of any organism
+#       currently in the same lineage.
+#   6 = when a child's (potential) fitness is higher than any organism
+#       currently in the same lineage.
+#   7 = when a child's (potential) fitness is higher than that of any
+#       organism in its line of descent
+LOG_LINEAGES 0             # 
+LINEAGE_CREATION_METHOD 0  # 
+
+### ORGANISM_NETWORK_GROUP ###
+# Organism Network Communication
+NET_ENABLED 0      # Enable Network Communication Support
+NET_DROP_PROB 0.0  # Message drop rate
+NET_MUT_PROB 0.0   # Message corruption probability
+NET_MUT_TYPE 0     # Type of message corruption.  0 = Random Single Bit, 1 = Always Flip Last
+NET_STYLE 0        # Communication Style.  0 = Random Next, 1 = Receiver Facing
+
+### BUY_SELL_GROUP ###
+# Buying and Selling Parameters
+SAVE_RECEIVED 0  # Enable storage of all inputs bought from other orgs
+BUY_PRICE 0      # price offered by organisms attempting to buy
+SELL_PRICE 0     # price offered by organisms attempting to sell
+
+### ANALYZE_GROUP ###
+# Analysis Settings
+MAX_CONCURRENCY -1  # Maximum number of analyze threads, -1 == use all available.
+ANALYZE_OPTION_1    # String variable accessible from analysis scripts
+ANALYZE_OPTION_2    # String variable accessible from analysis scripts
+
+### ENERGY_GROUP ###
+# Energy Settings
+ENERGY_ENABLED 0                       # Enable Energy Model. 0/1 (off/on)
+ENERGY_GIVEN_ON_INJECT 0               # Energy given to organism upon injection.
+ENERGY_GIVEN_AT_BIRTH 0                # Energy given to offspring upon birth.
+FRAC_PARENT_ENERGY_GIVEN_AT_BIRTH 0.5  # Fraction of perent's energy given to offspring.
+FRAC_ENERGY_DECAY_AT_BIRTH 0.0         # Fraction of energy lost due to decay during reproduction.
+NUM_INST_EXC_BEFORE_0_ENERGY 0         # Number of instructions executed before energy is exhausted.
+ENERGY_CAP -1                          # Maximum amount of energy that can be stored in an organism.  -1 means the cap is set to Max Int
+APPLY_ENERGY_METHOD 0                  # When should rewarded energy be applied to current energy?
+                                       # 0 = on divide
+                                       # 1 = on completion of task
+                                       # 2 = on sleep
+ENERGY_VERBOSE 0                       # Print energy and merit values. 0/1 (off/on)
+LOG_SLEEP_TIMES 0                      # Log sleep start and end times. 0/1 (off/on)
+                                       # WARNING: may use lots of memory.
+
+### SECOND_PASS_GROUP ###
+# Tracking metrics known after the running experiment previously
+TRACK_CCLADES 0                    # Enable tracking of coalescence clades
+TRACK_CCLADES_IDS coalescence.ids  # File storing coalescence IDs
+
+### GX_GROUP ###
+# Gene Expression CPU Settings
+MAX_PROGRAMIDS 16                # Maximum number of programids an organism can create.
+MAX_PROGRAMID_AGE 2000           # Max number of CPU cycles a programid executes before it is removed.
+IMPLICIT_GENE_EXPRESSION 0       # Create executable programids from the genome without explicit allocation and copying?
+IMPLICIT_BG_PROMOTER_RATE 0.0    # Relative rate of non-promoter sites creating programids.
+IMPLICIT_TURNOVER_RATE 0.0       # Number of programids recycled per CPU cycle. 0 = OFF
+IMPLICIT_MAX_PROGRAMID_LENGTH 0  # Creation of an executable programid terminates after this many instructions. 0 = disabled
+
+### PROMOTER_GROUP ###
+# Promoters
+PROMOTERS_ENABLED 0             # Use the promoter/terminator execution scheme.
+                                # Certain instructions must also be included.
+PROMOTER_PROCESSIVITY 1.0       # Chance of not terminating after each cpu cycle.
+PROMOTER_PROCESSIVITY_INST 1.0  # Chance of not terminating after each instruction.
+PROMOTER_BG_STRENGTH 0          # Probability of positions that are not promoter
+                                # instructions initiating execution (promoters are 1).
+REGULATION_STRENGTH 1           # Strength added or subtracted to a promoter by regulation.
+REGULATION_DECAY_FRAC 0.1       # Fraction of regulation that decays away. 
+                                # Max regulation = 2^(REGULATION_STRENGTH/REGULATION_DECAY_FRAC)
+
+### COLORS_GROUP ###
+# Output colors for when data files are printed in HTML mode.
+# There are two sets of these; the first are for lineages,
+# and the second are for mutation tests.
+COLOR_DIFF CCCCFF        # Color to flag stat that has changed since parent.
+COLOR_SAME FFFFFF        # Color to flag stat that has NOT changed since parent.
+COLOR_NEG2 FF0000        # Color to flag stat that is significantly worse than parent.
+COLOR_NEG1 FFCCCC        # Color to flag stat that is minorly worse than parent.
+COLOR_POS1 CCFFCC        # Color to flag stat that is minorly better than parent.
+COLOR_POS2 00FF00        # Color to flag stat that is significantly better than parent.
+COLOR_MUT_POS 00FF00     # Color to flag stat that has changed since parent.
+COLOR_MUT_NEUT FFFFFF    # Color to flag stat that has changed since parent.
+COLOR_MUT_NEG FFFF00     # Color to flag stat that has changed since parent.
+COLOR_MUT_LETHAL FF0000  # Color to flag stat that has changed since parent.
+
+### BIOMIMETIC_GROUP ###
+# Biomimetic Features Settings
+BIOMIMETIC_REFRACTORY_PERIOD 0.0  # Number of updates affected by refractory period
+BIOMIMETIC_MOVEMENT_STEP 0        # Number of cells to move Avidian on move instruction
+BIOMIMETIC_K 0                    # Carrying capacity in number of organisms

Added: branches/uml-merge/tests/_orchid-avida-marple/config/custom-uml-instructions.cfg
===================================================================
--- branches/uml-merge/tests/_orchid-avida-marple/config/custom-uml-instructions.cfg	                        (rev 0)
+++ branches/uml-merge/tests/_orchid-avida-marple/config/custom-uml-instructions.cfg	2008-07-01 19:45:11 UTC (rev 2695)
@@ -0,0 +1,17 @@
+nop-A			1
+nop-B		     	1
+nop-C	     	     	1
+repro	       		1
+prop-abs		1
+prop-uni		1
+prop-ex			1
+prop-prec		1
+prop-resp		1
+next-p                  1
+next-q                  1
+move-rel-p              1
+move-rel-q              1
+move-abs-p              1
+move-abs-q              1
+and-exp                 1
+or-exp                  1

Added: branches/uml-merge/tests/_orchid-avida-marple/config/default-classic.org
===================================================================
--- branches/uml-merge/tests/_orchid-avida-marple/config/default-classic.org	                        (rev 0)
+++ branches/uml-merge/tests/_orchid-avida-marple/config/default-classic.org	2008-07-01 19:45:11 UTC (rev 2695)
@@ -0,0 +1,98 @@
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+nop-C      #
+repro	   #

Added: branches/uml-merge/tests/_orchid-avida-marple/config/environment-uml.cfg
===================================================================
--- branches/uml-merge/tests/_orchid-avida-marple/config/environment-uml.cfg	                        (rev 0)
+++ branches/uml-merge/tests/_orchid-avida-marple/config/environment-uml.cfg	2008-07-01 19:45:11 UTC (rev 2695)
@@ -0,0 +1,15 @@
+##############################################################################
+#
+# This is the setup file for the task/resource system.  From here, you can
+# setup the available resources (including their inflow and outflow rates) as
+# well as the reactions that the organisms can trigger by performing tasks.
+#
+# This file is currently setup to reward 9 tasks, all of which use the
+# "infinite" resource, which is undepletable.
+#
+# For information on how to use this file, see:  doc/environment.html
+# For other sample environments, see:  source/support/config/ 
+#
+##############################################################################
+
+REACTION CP check-props process:value=1.0:type=mult requisite:max_count=1

Added: branches/uml-merge/tests/_orchid-avida-marple/config/events.cfg
===================================================================
--- branches/uml-merge/tests/_orchid-avida-marple/config/events.cfg	                        (rev 0)
+++ branches/uml-merge/tests/_orchid-avida-marple/config/events.cfg	2008-07-01 19:45:11 UTC (rev 2695)
@@ -0,0 +1,51 @@
+##############################################################################
+#
+# This is the setup file for the events system.  From here, you can
+# configure any actions that you want to have happen during the course of
+# an experiment, including setting the times for data collection.
+#
+# basic syntax: [trigger] [start:interval:stop] [action/event] [arguments...]
+#
+# This file is currently setup to record key information every 100 updates.
+#
+# For information on how to use this file, see:  doc/events.html
+# For other sample event configurations, see:  support/config/
+#
+##############################################################################
+
+# Inject all cells with the default organism
+#u 0 InjectAll
+
+# Compete demes 
+#u 100:100:end CompeteDemes 7 	   # compete UML models
+
+
+# Print all of the standard data files...
+u 0:100:end PrintAverageData       # Save info about they average genotypes
+u 0:100:end PrintDominantData      # Save info about most abundant genotypes
+u 0:100:end PrintStatsData         # Collect satistics about entire pop.
+u 0:100:end PrintCountData         # Count organisms, genotypes, species, etc.
+u 0:10:end PrintTasksData         # Save organisms counts for each task.
+u 0:100:end PrintTimeData          # Track time conversion (generations, etc.)
+u 0:100:end PrintResourceData      # Track resource abundance.
+##u 0:100:end PrintDemeUMLStats	   # Track information about the deme.
+#u 0:10:end PrintUMLData	   # Track information about the UML Model 
+u 0:1:end PrintPropertyData	   # Track Properties of the UML Model
+
+# A few data files not printed by default
+#u 0:1 PrintDominantGenotype dominant-genotype # Save the most abundant genotypes
+#u 0:1000 PrintGenotypes all        # Save the most abundant genotypes
+# u 100:100:end PrintErrorData       # Std. Error on averages.
+# u 100:100:end PrintVarianceData    # Variance on averages.
+# u 100:100:end PrintTotalsData      # Total counts over entire run.
+# u 100:100:end PrintTasksExeData    # Num. times tasks have been executed.
+# u 100:100:end PrintTasksQualData   # Task quality information
+
+# Setup the exit time and full population data collection.
+u 500:500 SavePopulation         # Save current state of population.
+u 500:500 SaveHistoricPopulation # Save ancestors of current population.
+#u 0:1 ExitPropGeneratedGreater 3000
+u 0:1 ExitElapsedTime 36000
+u 20 exit                        # exit
+
+

Added: branches/uml-merge/tests/_orchid-avida-marple/config/seed-model.cfg
===================================================================
--- branches/uml-merge/tests/_orchid-avida-marple/config/seed-model.cfg	                        (rev 0)
+++ branches/uml-merge/tests/_orchid-avida-marple/config/seed-model.cfg	2008-07-01 19:45:11 UTC (rev 2695)
@@ -0,0 +1,174 @@
+==MODEL==
+number-of-classes: 6
+hydra: 0 
+witness: 0
+gen-mod: 1 
+related-class-mode: 3
+
+==CLASS==
+name: Node 
+==ATTRIBUTES==
+CPUSpeed int [ 0 100 200 400 ]
+pointDepth int [ 0 50 ]
+pointSpeed int [ 0 50 ] 
+upDepth int [ 0 50 ] 
+upSpeed int [ 0 55 ]
+predict int [ 0 205 ] 
+==END==
+==OPERATIONS==
+ACK XDE-1
+setDepth XDE-2
+setUpstreamDepth XDE-3
+setUpstreamSpeed XDE-4
+setPrediction XDE-5
+setSpeed XDE-6
+==END==
+==ASSOCIATIONS==
+FewestHopNode
+ShortestHopNode
+PressureSensor
+DigiCamSensor
+UpStreamNode
+==END==
+==TRIGGERS==
+==END==
+==GUARDS==
+==END==
+==ACTIONS==
+==END==
+
+==STATE=DIAGRAM==
+states: 10
+==TRANSITIONS==
+==END==
+==END=CLASS==
+
+==CLASS==
+name: FewestHopNode
+==ATTRIBUTES==
+received bool [ 0 1 ]
+predict int [ 0 205 ]
+==END==
+==OPERATIONS==
+sendPredictionUsingBlueTooth XDE-7
+sendPredictionUsingWiFi XDE-8
+sendPredictionUsingGPRS XDE-9
+==END==
+==ASSOCIATIONS==
+Node
+==END==
+==TRIGGERS==
+==END==
+==GUARDS==
+==END==
+==ACTIONS==
+==END==
+
+==STATE=DIAGRAM==
+states: 10
+==TRANSITIONS==
+==END==
+==END=CLASS==
+
+
+==CLASS==
+name: ShortestHopNode
+==ATTRIBUTES==
+received bool [ 0 1 ]
+predict int [ 0 205 ]
+==END==
+==OPERATIONS==
+sendPredictionUsingBlueTooth XDE-10
+sendPredictionUsingWiFi XDE-11
+sendPredictionUsingGPRS XDE-12
+==END==
+==ASSOCIATIONS==
+Node
+==END==
+==TRIGGERS==
+==END==
+==GUARDS==
+==END==
+==ACTIONS==
+==END==
+
+==STATE=DIAGRAM==
+states: 10
+==TRANSITIONS==
+==END==
+==END=CLASS==
+
+
+==CLASS==
+name: PressureSensor 
+==ATTRIBUTES==
+depth int [ 0 50 ]
+==END==
+==OPERATIONS==
+getDepth XDE-13
+==END==
+==ASSOCIATIONS==
+Node
+==END==
+==TRIGGERS==
+==END==
+==GUARDS==
+==END==
+==ACTIONS==
+==END==
+
+==STATE=DIAGRAM==
+states: 10
+==TRANSITIONS==
+==END==
+==END=CLASS==
+
+==CLASS==
+name: DigiCamSensor
+==ATTRIBUTES==
+speed int [ 0 50 ]
+==END==
+==OPERATIONS==
+getSpeed XDE-14
+==END==
+==ASSOCIATIONS==
+Node
+==END==
+==TRIGGERS==
+==END==
+==GUARDS==
+==END==
+==ACTIONS==
+==END==
+
+==STATE=DIAGRAM==
+states: 10
+==TRANSITIONS==
+==END==
+==END=CLASS==
+
+==CLASS==
+name: UpstreamNode 
+==ATTRIBUTES==
+depth int [ 0 50 ]
+speed int [ 0 55 ]
+==END==
+==OPERATIONS==
+getDepth XDE-15
+getSpeed XDE-16
+==END==
+==ASSOCIATIONS==
+Node
+==END==
+==TRIGGERS==
+==END==
+==GUARDS==
+==END==
+==ACTIONS==
+==END==
+
+==STATE=DIAGRAM==
+states: 10
+==TRANSITIONS==
+==END==
+==END=CLASS==

Added: branches/uml-merge/tests/_orchid-avida-marple/config/tmp.pr
===================================================================
--- branches/uml-merge/tests/_orchid-avida-marple/config/tmp.pr	                        (rev 0)
+++ branches/uml-merge/tests/_orchid-avida-marple/config/tmp.pr	2008-07-01 19:45:11 UTC (rev 2695)
@@ -0,0 +1,448 @@
+#define min(x,y) (x<y->x:y)
+#define max(x,y) (x>y->x:y)
+chan wait=[1] of {int,mtype};
+mtype={
+        getSpeed, setSpeed, 
+        sendPredictionUsingBlueTooth, sendPredictionUsingGPRS, 
+        sendPredictionUsingWiFi, ACK, 
+        setDepth, setPrediction, 
+        setUpstreamDepth, setUpstreamSpeed, 
+        getDepth
+};
+typedef Timer_T {
+short propTimer=-1;
+        }
+Timer_T Timer_V;
+
+typedef DigiCamSensor_T {
+        bool timerwait;
+        int speed;
+
+        }
+DigiCamSensor_T DigiCamSensor_V;
+
+chan DigiCamSensor_q=[5] of {mtype};
+chan DigiCamSensor_C=[0] of {bit};
+
+typedef FewestHopNode_T {
+        bool timerwait;
+        int predict;
+        bool received;
+
+        }
+FewestHopNode_T FewestHopNode_V;
+
+chan FewestHopNode_q=[5] of {mtype};
+chan FewestHopNode_C=[0] of {bit};
+chan FewestHopNode_sendPredictionUsingBlueTooth_p1=[5] of {int};
+chan FewestHopNode_sendPredictionUsingGPRS_p1=[5] of {int};
+chan FewestHopNode_sendPredictionUsingWiFi_p1=[5] of {int};
+
+typedef Node_T {
+        bool timerwait;
+        int CPUSpeed;
+        int currentBattery;
+        int pointDepth;
+        int pointSpeed;
+        int predict;
+        int upDepth;
+        int upSpeed;
+
+        }
+Node_T Node_V;
+
+chan Node_q=[5] of {mtype};
+chan Node_C=[0] of {bit};
+chan Node_setDepth_p1=[5] of {int};
+chan Node_setPrediction_p1=[5] of {int};
+chan Node_setSpeed_p1=[5] of {int};
+chan Node_setUpstreamDepth_p1=[5] of {int};
+chan Node_setUpstreamSpeed_p1=[5] of {int};
+
+typedef PressureSensor_T {
+        bool timerwait;
+        int depth;
+
+        }
+PressureSensor_T PressureSensor_V;
+
+chan PressureSensor_q=[5] of {mtype};
+chan PressureSensor_C=[0] of {bit};
+
+typedef ShortestHopNode_T {
+        bool timerwait;
+        int predict;
+        bool received;
+
+        }
+ShortestHopNode_T ShortestHopNode_V;
+
+chan ShortestHopNode_q=[5] of {mtype};
+chan ShortestHopNode_C=[0] of {bit};
+chan ShortestHopNode_sendPredictionUsingBlueTooth_p1=[5] of {int};
+chan ShortestHopNode_sendPredictionUsingGPRS_p1=[5] of {int};
+chan ShortestHopNode_sendPredictionUsingWiFi_p1=[5] of {int};
+
+typedef UpstreamNode_T {
+        bool timerwait;
+        int depth;
+        int speed;
+
+        }
+UpstreamNode_T UpstreamNode_V;
+
+chan UpstreamNode_q=[5] of {mtype};
+chan UpstreamNode_C=[0] of {bit};
+active proctype DigiCamSensor()
+{
+atomic{
+mtype m;
+
+/*Init state*/
+        goto  Idle; skip;};
+/* State Idle */
+Idle:         atomic{skip; printf("in state DigiCamSensor.Idle\n");
+        }
+
+        Idle_G:
+        if
+        :: atomic{DigiCamSensor_q?getSpeed -> 
+           printf ("Transition to DigiCamSensor.State1 (evt:getSpeed()) \n");goto State1; skip;}
+        fi;
+/* State State1 */
+State1:       atomic{skip; printf("in state DigiCamSensor.State1\n");
+        }
+
+        State1_G:
+        if
+        :: atomic{1 -> 
+           DigiCamSensor_V.speed=50;
+           printf ("Transition to DigiCamSensor.State2 (/speed:=50) \n");goto State2; skip;}
+        fi;
+/* State State2 */
+State2:       atomic{skip; printf("in state DigiCamSensor.State2\n");
+        }
+
+        State2_G:
+        if
+        :: atomic{1 -> 
+   atomic{ Node_setSpeed_p1!DigiCamSensor_V.speed; Node_q!setSpeed;};
+           printf ("Transition to DigiCamSensor.Idle (^Node.setSpeed(speed)) \n");goto Idle; skip;}
+        fi;
+exit:      skip
+}
+active proctype FewestHopNode()
+{
+atomic{
+mtype m;
+
+/*Init state*/
+/*Initial actions / messages */
+        FewestHopNode_V.received=0;
+        goto  Idle; skip;};
+/* State Idle */
+Idle:         atomic{skip; printf("in state FewestHopNode.Idle\n");
+        }
+
+        Idle_G:
+        if
+        :: atomic{FewestHopNode_q?sendPredictionUsingWiFi -> 
+                   FewestHopNode_sendPredictionUsingWiFi_p1?FewestHopNode_V.predict
+                   -> 
+           FewestHopNode_V.received=1;
+           printf ("Transition to FewestHopNode.Idle (evt:sendPredictionUsingWiFi(predict)/received:=1) \n");goto Idle; skip;}
+        :: atomic{FewestHopNode_q?sendPredictionUsingGPRS -> 
+                   FewestHopNode_sendPredictionUsingGPRS_p1?FewestHopNode_V.predict
+                   -> 
+           FewestHopNode_V.received=1;
+           printf ("Transition to FewestHopNode.Idle (evt:sendPredictionUsingGPRS(predict)/received:=1) \n");goto Idle; skip;}
+        :: atomic{FewestHopNode_q?sendPredictionUsingBlueTooth -> 
+                   FewestHopNode_sendPredictionUsingBlueTooth_p1?FewestHopNode_V.predict
+                   -> 
+           FewestHopNode_V.received=1;
+           printf ("Transition to FewestHopNode.Idle (evt:sendPredictionUsingBlueTooth(predict)/received:=1) \n");goto Idle; skip;}
+        fi;
+exit:      skip
+}
+active proctype Node()
+{
+atomic{
+mtype m;
+        Node_V.CPUSpeed = 0;
+        Node_V.pointDepth = 0;
+        Node_V.pointSpeed = 0;
+        Node_V.predict = 0;
+        Node_V.upDepth = 0;
+        Node_V.upSpeed = 0;
+/*Init state*/
+        goto  sds0; skip;};
+/* State sds0 */
+sds0:         atomic{skip; printf("in state Node.sds0\n");
+        }
+
+        sds0_G:
+        if
+        :: atomic{1 -> 
+           Node_V.CPUSpeed=100;
+           printf ("Transition to Node.sds2 (/CPUSpeed:=100) \n");goto sds2; skip;}
+        :: atomic{1 -> 
+   atomic{ ShortestHopNode_sendPredictionUsingWiFi_p1!Node_V.predict; ShortestHopNode_q!sendPredictionUsingWiFi;};
+           printf ("Transition to Node.sds2 (^ShortestHopNode.sendPredictionUsingWiFi(predict)) \n");goto sds2; skip;}
+        fi;
+/* State sds1 */
+sds1:         atomic{skip; printf("in state Node.sds1\n");
+        }
+
+        sds1_G:
+        if
+        :: atomic{1 -> 
+           UpstreamNode_q!getDepth;
+           printf ("Transition to Node.sds3 (^UpstreamNode.getDepth) \n");goto sds3; skip;}
+        fi;
+/* State sds10 */
+sds10:        atomic{skip; printf("in state Node.sds10\n");
+        }
+
+        sds10_G:
+        if
+        :: atomic{1 -> 
+           DigiCamSensor_q!getSpeed;
+           printf ("Transition to Node.sds12 (^DigiCamSensor.getSpeed) \n");goto sds12; skip;}
+        fi;
+/* State sds11 */
+sds11:        atomic{skip; printf("in state Node.sds11\n");
+        }
+
+        sds11_G:
+        if
+        :: atomic{1 -> 
+   atomic{ ShortestHopNode_sendPredictionUsingBlueTooth_p1!Node_V.predict; ShortestHopNode_q!sendPredictionUsingBlueTooth;};
+           printf ("Transition to Node.sds0 (^ShortestHopNode.sendPredictionUsingBlueTooth(predict)) \n");goto sds0; skip;}
+        fi;
+/* State sds12 */
+sds12:        atomic{skip; printf("in state Node.sds12\n");
+        }
+
+        sds12_G:
+        if
+        :: atomic{Node_q?setSpeed -> 
+                   Node_setSpeed_p1?Node_V.pointSpeed
+                   -> 
+           printf ("Transition to Node.sds1 (evt:setSpeed(pointSpeed)) \n");goto sds1; skip;}
+        fi;
+/* State sds2 */
+sds2:         atomic{skip; printf("in state Node.sds2\n");
+        }
+
+        sds2_G:
+        if
+        :: atomic{1 -> 
+           Node_V.CPUSpeed=200;
+           printf ("Transition to Node.sds4 (/CPUSpeed:=200) \n");goto sds4; skip;}
+        fi;
+/* State sds3 */
+sds3:         atomic{skip; printf("in state Node.sds3\n");
+        }
+
+        sds3_G:
+        if
+        :: atomic{Node_q?setUpstreamDepth -> 
+                   Node_setUpstreamDepth_p1?Node_V.upDepth
+                   -> 
+           printf ("Transition to Node.sds5 (evt:setUpstreamDepth(upDepth)) \n");goto sds5; skip;}
+        fi;
+/* State sds4 */
+sds4:         atomic{skip; printf("in state Node.sds4\n");
+        }
+
+        sds4_G:
+        if
+        :: atomic{1 -> 
+           Node_V.CPUSpeed=400;
+           printf ("Transition to Node.sds6 (/CPUSpeed:=400) \n");goto sds6; skip;}
+        fi;
+/* State sds5 */
+sds5:         atomic{skip; printf("in state Node.sds5\n");
+        }
+
+        sds5_G:
+        if
+        :: atomic{1 -> 
+           UpstreamNode_q!getSpeed;
+           printf ("Transition to Node.sds7 (^UpstreamNode.getSpeed) \n");goto sds7; skip;}
+        fi;
+/* State sds6 */
+sds6:         atomic{skip; printf("in state Node.sds6\n");
+        }
+
+        sds6_G:
+        if
+        :: atomic{1 -> 
+           PressureSensor_q!getDepth;
+           printf ("Transition to Node.sds8 (^PressureSensor.getDepth) \n");goto sds8; skip;}
+        fi;
+/* State sds7 */
+sds7:         atomic{skip; printf("in state Node.sds7\n");
+        }
+
+        sds7_G:
+        if
+        :: atomic{Node_q?setUpstreamSpeed -> 
+                   Node_setUpstreamSpeed_p1?Node_V.upSpeed
+                   -> 
+           printf ("Transition to Node.sds9 (evt:setUpstreamSpeed(upSpeed)) \n");goto sds9; skip;}
+        fi;
+/* State sds8 */
+sds8:         atomic{skip; printf("in state Node.sds8\n");
+        }
+
+        sds8_G:
+        if
+        :: atomic{Node_q?setDepth -> 
+                   Node_setDepth_p1?Node_V.pointDepth
+                   -> 
+           printf ("Transition to Node.sds10 (evt:setDepth(pointDepth)) \n");goto sds10; skip;}
+        fi;
+/* State sds9 */
+sds9:         atomic{skip; printf("in state Node.sds9\n");
+        }
+
+        sds9_G:
+        if
+        :: atomic{1 -> 
+           Node_V.predict=Node_V.pointDepth+Node_V.pointSpeed+Node_V.upDepth+Node_V.upSpeed;
+           printf ("Transition to Node.sds11 (/predict:=pointDepth+pointSpeed+upDepth+upSpeed) \n");goto sds11; skip;}
+        fi;
+exit:      skip
+}
+active proctype PressureSensor()
+{
+atomic{
+mtype m;
+
+/*Init state*/
+        goto  Idle; skip;};
+/* State Idle */
+Idle:         atomic{skip; printf("in state PressureSensor.Idle\n");
+        }
+
+        Idle_G:
+        if
+        :: atomic{PressureSensor_q?getDepth -> 
+           printf ("Transition to PressureSensor.State1 (evt:getDepth()) \n");goto State1; skip;}
+        fi;
+/* State State1 */
+State1:       atomic{skip; printf("in state PressureSensor.State1\n");
+        }
+
+        State1_G:
+        if
+        :: atomic{1 -> 
+           PressureSensor_V.depth=50;
+           printf ("Transition to PressureSensor.State2 (/depth:=50) \n");goto State2; skip;}
+        fi;
+/* State State2 */
+State2:       atomic{skip; printf("in state PressureSensor.State2\n");
+        }
+
+        State2_G:
+        if
+        :: atomic{1 -> 
+   atomic{ Node_setDepth_p1!PressureSensor_V.depth; Node_q!setDepth;};
+           printf ("Transition to PressureSensor.Idle (^Node.setDepth(depth)) \n");goto Idle; skip;}
+        fi;
+exit:      skip
+}
+active proctype ShortestHopNode()
+{
+atomic{
+mtype m;
+
+/*Init state*/
+/*Initial actions / messages */
+        ShortestHopNode_V.received=0;
+        goto  Idle; skip;};
+/* State Idle */
+Idle:         atomic{skip; printf("in state ShortestHopNode.Idle\n");
+        }
+
+        Idle_G:
+        if
+        :: atomic{ShortestHopNode_q?sendPredictionUsingWiFi -> 
+                   ShortestHopNode_sendPredictionUsingWiFi_p1?ShortestHopNode_V.predict
+                   -> 
+           ShortestHopNode_V.received=1;
+           printf ("Transition to ShortestHopNode.Idle (evt:sendPredictionUsingWiFi(predict)/received:=1) \n");goto Idle; skip;}
+        :: atomic{ShortestHopNode_q?sendPredictionUsingGPRS -> 
+                   ShortestHopNode_sendPredictionUsingGPRS_p1?ShortestHopNode_V.predict
+                   -> 
+           ShortestHopNode_V.received=1;
+           printf ("Transition to ShortestHopNode.Idle (evt:sendPredictionUsingGPRS(predict)/received:=1) \n");goto Idle; skip;}
+        :: atomic{ShortestHopNode_q?sendPredictionUsingBlueTooth -> 
+                   ShortestHopNode_sendPredictionUsingBlueTooth_p1?ShortestHopNode_V.predict
+                   -> 
+           ShortestHopNode_V.received=1;
+           printf ("Transition to ShortestHopNode.Idle (evt:sendPredictionUsingBlueTooth(predict)/received:=1) \n");goto Idle; skip;}
+        fi;
+exit:      skip
+}
+active proctype UpstreamNode()
+{
+atomic{
+mtype m;
+
+/*Init state*/
+        goto  Idle; skip;};
+/* State Idle */
+Idle:         atomic{skip; printf("in state UpstreamNode.Idle\n");
+        }
+
+        Idle_G:
+        if
+        :: atomic{UpstreamNode_q?getSpeed -> 
+           printf ("Transition to UpstreamNode.State3 (evt:getSpeed()) \n");goto State3; skip;}
+        :: atomic{UpstreamNode_q?getDepth -> 
+           printf ("Transition to UpstreamNode.State1 (evt:getDepth()) \n");goto State1; skip;}
+        fi;
+/* State State1 */
+State1:       atomic{skip; printf("in state UpstreamNode.State1\n");
+        }
+
+        State1_G:
+        if
+        :: atomic{1 -> 
+           UpstreamNode_V.depth=50;
+           printf ("Transition to UpstreamNode.State2 (/depth:=50) \n");goto State2; skip;}
+        fi;
+/* State State2 */
+State2:       atomic{skip; printf("in state UpstreamNode.State2\n");
+        }
+
+        State2_G:
+        if
+        :: atomic{1 -> 
+   atomic{ Node_setUpstreamDepth_p1!UpstreamNode_V.depth; Node_q!setUpstreamDepth;};
+           printf ("Transition to UpstreamNode.Idle (^Node.setUpstreamDepth(depth)) \n");goto Idle; skip;}
+        fi;
+/* State State3 */
+State3:       atomic{skip; printf("in state UpstreamNode.State3\n");
+        }
+
+        State3_G:
+        if
+        :: atomic{1 -> 
+           UpstreamNode_V.speed=55;
+           printf ("Transition to UpstreamNode.State4 (/speed:=55) \n");goto State4; skip;}
+        fi;
+/* State State4 */
+State4:       atomic{skip; printf("in state UpstreamNode.State4\n");
+        }
+
+        State4_G:
+        if
+        :: atomic{1 -> 
+   atomic{ Node_setUpstreamSpeed_p1!UpstreamNode_V.speed; Node_q!setUpstreamSpeed;};
+           printf ("Transition to UpstreamNode.Idle (^Node.setUpstreamSpeed(speed)) \n");goto Idle; skip;}
+        fi;
+exit:      skip
+}

Added: branches/uml-merge/tests/_orchid-avida-marple/config/tmp.xmi
===================================================================
--- branches/uml-merge/tests/_orchid-avida-marple/config/tmp.xmi	                        (rev 0)
+++ branches/uml-merge/tests/_orchid-avida-marple/config/tmp.xmi	2008-07-01 19:45:11 UTC (rev 2695)
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8" ?> <!-- <!DOCTYPE XMI SYSTEM "C:\Program Files\Rational\XDE\Addins\XMI\DTD\XMI11UML14.dtd"> --> <XMI xmi.version="1.1" xmlns:UML="http://www.omg.org/UML" xmlns:xlink="http://www.w3c.org/xlink" xmlns:XDE="http://www.rational.com/products/XDE"> <XMI.header> <XMI.documentation> <XMI.exporter>Rational XDE</XMI.exporter> <XMI.exporterVersion>1.5</XMI.exporterVersion> </XMI.documentation> <XMI.metamodel xmi.name="UML" xmi.version="1.4"/> </XMI.header> <XMI.content> <UML:Model xmi.id="XDE-FA722DB8-38C8-4335-8FD2-DCDBE281CABF" name="gridstixNormal" isSpecification="false"> <UML:Namespace.ownedElement> <UML:Association xmi.id="XDE-CAB33A38-4C97-4A55-9116-EEC7A91DD9F1" name="" isSpecification="false"> <UML:Association.connection> <UML:AssociationEnd xmi.id="XDE-2CE9B285-31F3-4CE1-976D-1DF8C65157B6" aggregation="none" isNavigable="true" participant="XDE-C99B7FA8-6BED-4179-ACDD-913FFAAFB81E" changeability="changeable" targetScope="instance" visibili!
 ty="private" ordering="unordered" name="" isSpecification="false"/> <UML:AssociationEnd xmi.id="XDE-F66AA9B0-83EA-4AF6-BFE8-06DED52253B4" aggregation="none" isNavigable="true" participant="XDE-D14BF0DA-20D5-43C6-8DE1-714E1B1AF389" changeability="changeable" targetScope="instance" visibility="private" ordering="unordered" name="" isSpecification="false"/> </UML:Association.connection> </UML:Association> <UML:Association xmi.id="XDE-52DD71E9-EC09-4167-A8D3-55625DB3573C" name="" isSpecification="false"> <UML:Association.connection> <UML:AssociationEnd xmi.id="XDE-EC27078F-1E19-46F6-85A5-AA8BFE3DF5B6" aggregation="none" isNavigable="true" participant="XDE-7AD01A65-50DA-4A07-9B42-911822CD8472" changeability="changeable" targetScope="instance" visibility="private" ordering="unordered" name="" isSpecification="false"/> <UML:AssociationEnd xmi.id="XDE-136E30BC-FC8D-40FA-AE01-E19132CDF84D" aggregation="none" isNavigable="true" participant="XDE-D14BF0DA-20D5-43C6-8DE1-714E1B1AF389" c!
 hangeability="changeable" targetScope="instance" visibility="p!
 rivate" ordering="unordered" name="" isSpecification="false"/> </UML:Association.connection> </UML:Association> <UML:Association xmi.id="XDE-530AF5F1-9B35-4CF6-B19D-8216E818822F" name="" isSpecification="false"> <UML:Association.connection> <UML:AssociationEnd xmi.id="XDE-55EFB812-5E69-4906-A7AE-95201CB84028" aggregation="none" isNavigable="true" participant="XDE-2811F0FA-B385-455F-BA51-2D83EBD7AA5F" changeability="changeable" targetScope="instance" visibility="private" ordering="unordered" name="" isSpecification="false"/> <UML:AssociationEnd xmi.id="XDE-A2A2F969-DBBA-4CC2-B8BA-120AA2CF663E" aggregation="none" isNavigable="true" participant="XDE-D14BF0DA-20D5-43C6-8DE1-714E1B1AF389" changeability="changeable" targetScope="instance" visibility="private" ordering="unordered" name="" isSpecification="false"/> </UML:Association.connection> </UML:Association> <UML:Class xmi.id="XDE-D14BF0DA-20D5-43C6-8DE1-714E1B1AF389" isActive="false" isAbstract="false" isLeaf="false" isRoot="!
 false" visibility="public" name="Node" isSpecification="false"> <UML:Classifier.feature> <UML:Attribute xmi.id="XDE-DB15EF47-EC22-4EEA-87DA-EF003857F712" changeability="changeable" targetScope="instance" ownerScope="instance" visibility="public" ordering="unordered" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="CPUSpeed" isSpecification="false"> <UML:Attribute.initialValue> <UML:Expression language="" body="0"/> </UML:Attribute.initialValue> </UML:Attribute> <UML:Attribute xmi.id="XDE-D669A8FE-1F53-410F-B181-0827434E636A" changeability="changeable" targetScope="instance" ownerScope="instance" visibility="public" ordering="unordered" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="pointDepth" isSpecification="false"> <UML:Attribute.initialValue> <UML:Expression language="" body="0"/> </UML:Attribute.initialValue> </UML:Attribute> <UML:Attribute xmi.id="XDE-2C52EB68-0EB1-43FC-B556-45BDAEA40C8E" changeability="changeable" targetScope="instance" ownerScope="instan!
 ce" visibility="public" ordering="unordered" type="XDE-96846635-54E5-41!
 FC-A6BF-776DF2241664" name="pointSpeed" isSpecification="false"> <UML:Attribute.initialValue> <UML:Expression language="" body="0"/> </UML:Attribute.initialValue> </UML:Attribute> <UML:Attribute xmi.id="XDE-ED9F8371-905F-4CE0-8916-ADC7D9B17EDE" changeability="changeable" targetScope="instance" ownerScope="instance" visibility="public" ordering="unordered" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="upDepth" isSpecification="false"> <UML:Attribute.initialValue> <UML:Expression language="" body="0"/> </UML:Attribute.initialValue> </UML:Attribute> <UML:Attribute xmi.id="XDE-2109D770-486B-4FAD-9F5F-B672E0C49CE6" changeability="changeable" targetScope="instance" ownerScope="instance" visibility="public" ordering="unordered" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="upSpeed" isSpecification="false"> <UML:Attribute.initialValue> <UML:Expression language="" body="0"/> </UML:Attribute.initialValue> </UML:Attribute> <UML:Attribute xmi.id="XDE-DE98000F-C01D-4E20-!
 A6CB-F95A8631CF0F" changeability="changeable" targetScope="instance" ownerScope="instance" visibility="public" ordering="unordered" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="predict" isSpecification="false"> <UML:Attribute.initialValue> <UML:Expression language="" body="0"/> </UML:Attribute.initialValue> </UML:Attribute> <UML:Attribute xmi.id="XDE-9072D370-7AD7-44F9-8FD6-52AB8368E57E" changeability="changeable" targetScope="instance" ownerScope="instance" visibility="public" ordering="unordered" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="currentBattery" isSpecification="false"/> <UML:Operation xmi.id="XDE-FB15292B-3905-4B1E-8769-29F1FAF6E8CA" concurrency="sequential" isRoot="false" isLeaf="false" isAbstract="false" isQuery="false" ownerScope="instance" visibility="public" specification="" name="ACK" isSpecification="false"/> <UML:Operation xmi.id="XDE-A8F47A1B-9176-48C0-9560-8D5C9B6640B5" concurrency="sequential" isRoot="false" isLeaf="false" isAbstra!
 ct="false" isQuery="false" ownerScope="instance" visibility="public" sp!
 ecification="" name="setDepth" isSpecification="false"> <UML:BehavioralFeature.parameter> <UML:Parameter xmi.id="XDE-52EBAD3F-F627-4880-A096-68A455E57B49" kind="in" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="pointDepth" isSpecification="false"/> </UML:BehavioralFeature.parameter> </UML:Operation> <UML:Operation xmi.id="XDE-CE55BE32-A8E3-46DA-8F60-F1977A8CEC98" concurrency="sequential" isRoot="false" isLeaf="false" isAbstract="false" isQuery="false" ownerScope="instance" visibility="public" specification="" name="setUpstreamDepth" isSpecification="false"> <UML:BehavioralFeature.parameter> <UML:Parameter xmi.id="XDE-D6931B25-B8BA-4DFC-A2E0-D1EAB2F6FC2D" kind="in" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="upDepth" isSpecification="false"/> </UML:BehavioralFeature.parameter> </UML:Operation> <UML:Operation xmi.id="XDE-267808B8-8377-4F2A-B169-3D7660ADD557" concurrency="sequential" isRoot="false" isLeaf="false" isAbstract="false" isQuery="false" ownerScope=!
 "instance" visibility="public" specification="" name="setUpstreamSpeed" isSpecification="false"> <UML:BehavioralFeature.parameter> <UML:Parameter xmi.id="XDE-E19141AE-E98F-4E70-BD9D-05AA9B3B550C" kind="in" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="upSpeed" isSpecification="false"/> </UML:BehavioralFeature.parameter> </UML:Operation> <UML:Operation xmi.id="XDE-02BF382B-C792-438C-A58D-CBC7A013EDCF" concurrency="sequential" isRoot="false" isLeaf="false" isAbstract="false" isQuery="false" ownerScope="instance" visibility="public" specification="" name="setPrediction" isSpecification="false"> <UML:BehavioralFeature.parameter> <UML:Parameter xmi.id="XDE-8EDCC2A4-A5FA-4025-B009-197E15E9AADE" kind="in" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="predict" isSpecification="false"/> </UML:BehavioralFeature.parameter> </UML:Operation> <UML:Operation xmi.id="XDE-4AE289D2-E012-4D8F-971A-16DF0C7C1087" concurrency="sequential" isRoot="false" isLeaf="false" isAbstract=!
 "false" isQuery="false" ownerScope="instance" visibility="public" speci!
 fication="" name="setSpeed" isSpecification="false"> <UML:BehavioralFeature.parameter> <UML:Parameter xmi.id="XDE-67D9B3E4-036C-4C64-9C00-0F00BAAF8C89" kind="in" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="pointSpeed" isSpecification="false"/> </UML:BehavioralFeature.parameter> </UML:Operation> </UML:Classifier.feature> <UML:Namespace.ownedElement> <UML:Association xmi.id="XDE-FAE8420F-C293-4206-B477-95B6CFE7D46D" name="" isSpecification="false"> <UML:Association.connection> <UML:AssociationEnd xmi.id="XDE-8BAA49C9-92EE-4659-82F6-63F86993B09C" aggregation="composite" isNavigable="true" participant="XDE-34A1A642-BEFC-4C29-94E0-E54E0847E936" changeability="changeable" targetScope="instance" visibility="private" ordering="unordered" name="_PressureSensor" isSpecification="false"> <UML:AssociationEnd.multiplicity> <UML:Multiplicity> <UML:Multiplicity.range> <UML:MultiplicityRange lower="*" upper="*"/> </UML:Multiplicity.range> </UML:Multiplicity> </UML:AssociationEnd.!
 multiplicity> </UML:AssociationEnd> <UML:AssociationEnd xmi.id="XDE-AEEC671F-F492-4015-AD39-E4D687C38B40" aggregation="none" isNavigable="false" participant="XDE-D14BF0DA-20D5-43C6-8DE1-714E1B1AF389" changeability="changeable" targetScope="instance" visibility="private" ordering="unordered" name="" isSpecification="false"/> </UML:Association.connection> </UML:Association> <UML:Association xmi.id="XDE-FE0ECB31-564B-4338-8791-13742270672B" name="" isSpecification="false"> <UML:Association.connection> <UML:AssociationEnd xmi.id="XDE-154CE159-60FC-48B7-B8BD-F0969C23C8FF" aggregation="composite" isNavigable="true" participant="XDE-9F5BCF4C-50EA-41A0-A2CE-88F337C50512" changeability="changeable" targetScope="instance" visibility="private" ordering="unordered" name="_DigiCamSensor" isSpecification="false"> <UML:AssociationEnd.multiplicity> <UML:Multiplicity> <UML:Multiplicity.range> <UML:MultiplicityRange lower="*" upper="*"/> </UML:Multiplicity.range> </UML:Multiplicity> </UML:As!
 sociationEnd.multiplicity> </UML:AssociationEnd> <UML:AssociationEnd xm!
 i.id="XDE-556BBE7D-35A9-4FB2-B615-EAB66C312BC0" aggregation="none" isNavigable="false" participant="XDE-D14BF0DA-20D5-43C6-8DE1-714E1B1AF389" changeability="changeable" targetScope="instance" visibility="private" ordering="unordered" name="" isSpecification="false"/> </UML:Association.connection> </UML:Association> <UML:StateMachine xmi.id="XDE-8CFD055B-2B13-4F09-A024-A56BAC76F381" name="StateMachine1" isSpecification="false"> <UML:StateMachine.top> <UML:CompositeState xmi.id="XDE-6AC4325F-3D7A-4CF6-88BE-70FF2441E501" isConcurrent="false" name="TOP" isSpecification="false"> <UML:CompositeState.subvertex> <UML:Pseudostate xmi.id="sds_1" kind="initial" outgoing="" name="s_1" isSpecification="false"/>
+<UML:CompositeState xmi.id="sds0" isConcurrent="false" name="sds0" isSpecification="false"/>
+<UML:CompositeState xmi.id="sds1" isConcurrent="false" name="sds1" isSpecification="false"/>
+<UML:CompositeState xmi.id="sds2" isConcurrent="false" name="sds2" isSpecification="false"/>
+<UML:CompositeState xmi.id="sds3" isConcurrent="false" name="sds3" isSpecification="false"/>
+<UML:CompositeState xmi.id="sds4" isConcurrent="false" name="sds4" isSpecification="false"/>
+<UML:CompositeState xmi.id="sds5" isConcurrent="false" name="sds5" isSpecification="false"/>
+<UML:CompositeState xmi.id="sds6" isConcurrent="false" name="sds6" isSpecification="false"/>
+<UML:CompositeState xmi.id="sds7" isConcurrent="false" name="sds7" isSpecification="false"/>
+<UML:CompositeState xmi.id="sds8" isConcurrent="false" name="sds8" isSpecification="false"/>
+<UML:CompositeState xmi.id="sds9" isConcurrent="false" name="sds9" isSpecification="false"/>
+<UML:CompositeState xmi.id="sds10" isConcurrent="false" name="sds10" isSpecification="false"/>
+<UML:CompositeState xmi.id="sds11" isConcurrent="false" name="sds11" isSpecification="false"/>
+<UML:CompositeState xmi.id="sds12" isConcurrent="false" name="sds12" isSpecification="false"/>
+</UML:CompositeState.subvertex>
+</UML:CompositeState>
+</UML:StateMachine.top>
+<UML:StateMachine.transitions>
+<UML:Transition xmi.id="sdt0sds0sds2" source="sds0" target="sds2" name="" isSpecification="false">
+<UML:Transition.effect> <UML:UninterpretedAction xmi.id="sdt0sds0sds2ui" isAsynchronous="false" name="" isSpecification="false"> <UML:Action.script> <UML:ActionExpression language="" body="CPUSpeed:=100"/> </UML:Action.script> </UML:UninterpretedAction> </UML:Transition.effect> </UML:Transition>
+<UML:Transition xmi.id="sdt1sds2sds4" source="sds2" target="sds4" name="" isSpecification="false">
+<UML:Transition.effect> <UML:UninterpretedAction xmi.id="sdt1sds2sds4ui" isAsynchronous="false" name="" isSpecification="false"> <UML:Action.script> <UML:ActionExpression language="" body="CPUSpeed:=200"/> </UML:Action.script> </UML:UninterpretedAction> </UML:Transition.effect> </UML:Transition>
+<UML:Transition xmi.id="sdt2sds4sds6" source="sds4" target="sds6" name="" isSpecification="false">
+<UML:Transition.effect> <UML:UninterpretedAction xmi.id="sdt2sds4sds6ui" isAsynchronous="false" name="" isSpecification="false"> <UML:Action.script> <UML:ActionExpression language="" body="CPUSpeed:=400"/> </UML:Action.script> </UML:UninterpretedAction> </UML:Transition.effect> </UML:Transition>
+<UML:Transition xmi.id="sdt3sds6sds8" source="sds6" target="sds8" name="" isSpecification="false">
+<UML:Transition.effect> <UML:UninterpretedAction xmi.id="sdt3sds6sds8ui" isAsynchronous="false" name="" isSpecification="false"> <UML:Action.script> <UML:ActionExpression language="" body="^PressureSensor.getDepth()"/> </UML:Action.script> </UML:UninterpretedAction> </UML:Transition.effect> </UML:Transition>
+<UML:Transition xmi.id="sdt4sds8sds10" source="sds8" target="sds10" name="" isSpecification="false">
+<UML:Transition.trigger> <UML:Event> <UML:ModelElement.namespace> <UML:Namespace> <UML:Namespace.ownedElement> <UML:CallEvent xmi.id="sdt4sds8sds10tt"  operation="XDE-A8F47A1B-9176-48C0-9560-8D5C9B6640B5" name="setDepth" isSpecification="false"/> </UML:Namespace.ownedElement> </UML:Namespace> </UML:ModelElement.namespace> </UML:Event>  </UML:Transition.trigger> </UML:Transition>
+<UML:Transition xmi.id="sdt5sds10sds12" source="sds10" target="sds12" name="" isSpecification="false">
+<UML:Transition.effect> <UML:UninterpretedAction xmi.id="sdt5sds10sds12ui" isAsynchronous="false" name="" isSpecification="false"> <UML:Action.script> <UML:ActionExpression language="" body="^DigiCamSensor.getSpeed()"/> </UML:Action.script> </UML:UninterpretedAction> </UML:Transition.effect> </UML:Transition>
+<UML:Transition xmi.id="sdt6sds12sds1" source="sds12" target="sds1" name="" isSpecification="false">
+<UML:Transition.trigger> <UML:Event> <UML:ModelElement.namespace> <UML:Namespace> <UML:Namespace.ownedElement> <UML:CallEvent xmi.id="sdt6sds12sds1tt"  operation="XDE-4AE289D2-E012-4D8F-971A-16DF0C7C1087" name="setSpeed" isSpecification="false"/> </UML:Namespace.ownedElement> </UML:Namespace> </UML:ModelElement.namespace> </UML:Event>  </UML:Transition.trigger> </UML:Transition>
+<UML:Transition xmi.id="sdt7sds1sds3" source="sds1" target="sds3" name="" isSpecification="false">
+<UML:Transition.effect> <UML:UninterpretedAction xmi.id="sdt7sds1sds3ui" isAsynchronous="false" name="" isSpecification="false"> <UML:Action.script> <UML:ActionExpression language="" body="^UpstreamNode.getDepth()"/> </UML:Action.script> </UML:UninterpretedAction> </UML:Transition.effect> </UML:Transition>
+<UML:Transition xmi.id="sdt8sds3sds5" source="sds3" target="sds5" name="" isSpecification="false">
+<UML:Transition.trigger> <UML:Event> <UML:ModelElement.namespace> <UML:Namespace> <UML:Namespace.ownedElement> <UML:CallEvent xmi.id="sdt8sds3sds5tt"  operation="XDE-CE55BE32-A8E3-46DA-8F60-F1977A8CEC98" name="setUpstreamDepth" isSpecification="false"/> </UML:Namespace.ownedElement> </UML:Namespace> </UML:ModelElement.namespace> </UML:Event>  </UML:Transition.trigger> </UML:Transition>
+<UML:Transition xmi.id="sdt9sds5sds7" source="sds5" target="sds7" name="" isSpecification="false">
+<UML:Transition.effect> <UML:UninterpretedAction xmi.id="sdt9sds5sds7ui" isAsynchronous="false" name="" isSpecification="false"> <UML:Action.script> <UML:ActionExpression language="" body="^UpstreamNode.getSpeed()"/> </UML:Action.script> </UML:UninterpretedAction> </UML:Transition.effect> </UML:Transition>
+<UML:Transition xmi.id="sdt10sds7sds9" source="sds7" target="sds9" name="" isSpecification="false">
+<UML:Transition.trigger> <UML:Event> <UML:ModelElement.namespace> <UML:Namespace> <UML:Namespace.ownedElement> <UML:CallEvent xmi.id="sdt10sds7sds9tt"  operation="XDE-267808B8-8377-4F2A-B169-3D7660ADD557" name="setUpstreamSpeed" isSpecification="false"/> </UML:Namespace.ownedElement> </UML:Namespace> </UML:ModelElement.namespace> </UML:Event>  </UML:Transition.trigger> </UML:Transition>
+<UML:Transition xmi.id="sdt11sds9sds11" source="sds9" target="sds11" name="" isSpecification="false">
+<UML:Transition.effect> <UML:UninterpretedAction xmi.id="sdt11sds9sds11ui" isAsynchronous="false" name="" isSpecification="false"> <UML:Action.script> <UML:ActionExpression language="" body="predict:=pointDepth+pointSpeed+upDepth+upSpeed"/> </UML:Action.script> </UML:UninterpretedAction> </UML:Transition.effect> </UML:Transition>
+<UML:Transition xmi.id="sdt12sds11sds0" source="sds11" target="sds0" name="" isSpecification="false">
+<UML:Transition.effect> <UML:UninterpretedAction xmi.id="sdt12sds11sds0ui" isAsynchronous="false" name="" isSpecification="false"> <UML:Action.script> <UML:ActionExpression language="" body="^ShortestHopNode.sendPredictionUsingBlueTooth(predict)"/> </UML:Action.script> </UML:UninterpretedAction> </UML:Transition.effect> </UML:Transition>
+<UML:Transition xmi.id="sdt13sds0sds2" source="sds0" target="sds2" name="" isSpecification="false">
+<UML:Transition.effect> <UML:UninterpretedAction xmi.id="sdt13sds0sds2ui" isAsynchronous="false" name="" isSpecification="false"> <UML:Action.script> <UML:ActionExpression language="" body="^ShortestHopNode.sendPredictionUsingWiFi(predict)"/> </UML:Action.script> </UML:UninterpretedAction> </UML:Transition.effect> </UML:Transition>
+<UML:Transition xmi.id="sdt14sds_1sds0" source="sds_1" target="sds0" name="" isSpecification="false">
+</UML:Transition>
+</UML:StateMachine.transitions> </UML:StateMachine> </UML:Namespace.ownedElement>  </UML:Class><UML:Class xmi.id="XDE-34A1A642-BEFC-4C29-94E0-E54E0847E936" isActive="false" isAbstract="false" isLeaf="false" isRoot="false" visibility="public" name="PressureSensor" isSpecification="false"> <UML:Classifier.feature> <UML:Attribute xmi.id="XDE-191074A0-C17E-48E3-A0D3-6DECB0B63434" changeability="changeable" targetScope="instance" ownerScope="instance" visibility="public" ordering="unordered" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="depth" isSpecification="false"/> <UML:Operation xmi.id="XDE-CBD32837-2782-403F-AEE8-11E44AFB5F74" concurrency="sequential" isRoot="false" isLeaf="false" isAbstract="false" isQuery="false" ownerScope="instance" visibility="public" specification="" name="getDepth" isSpecification="false"/> </UML:Classifier.feature> <UML:Namespace.ownedElement> <UML:StateMachine xmi.id="XDE-323E02F2-3693-4724-B5A5-46C2FE82BB39" name="StateMachine1" isSpecifi!
 cation="false"> <UML:StateMachine.top> <UML:CompositeState xmi.id="XDE-A02811AA-2EF1-4695-A84B-4F66C0238485" isConcurrent="false" name="TOP" isSpecification="false"> <UML:CompositeState.subvertex> <UML:Pseudostate xmi.id="XDE-641A7242-E978-47CE-B3A2-CA5EC52027F2" kind="initial" outgoing="XDE-742AEA47-36AC-4C33-ABE5-237A4F69362F" name="" isSpecification="false"/> <UML:CompositeState xmi.id="XDE-91C12DD8-B7F5-4F2C-834F-EBEE9EC1FF4B" isConcurrent="false" outgoing="XDE-3F7C0525-89D7-4CF7-A3AE-C4656EBEB717" name="Idle" isSpecification="false"/> <UML:CompositeState xmi.id="XDE-A8490885-8FB1-4F02-9CAA-BFBC9CD07705" isConcurrent="false" outgoing="XDE-95849EEE-D327-43A6-8937-C0FA1522BF54" name="State1" isSpecification="false"/> <UML:CompositeState xmi.id="XDE-7550EDDF-1801-441F-87FA-19DFC86E1AC4" isConcurrent="false" outgoing="XDE-4F2E34C3-2ED9-4438-9A4B-B25BE5C95050" name="State2" isSpecification="false"/> </UML:CompositeState.subvertex> </UML:CompositeState> </UML:StateMachine.top!
 > <UML:StateMachine.transitions> <UML:Transition xmi.id="XDE-4!
 F2E34C3-2ED9-4438-9A4B-B25BE5C95050" source="XDE-7550EDDF-1801-441F-87FA-19DFC86E1AC4" target="XDE-91C12DD8-B7F5-4F2C-834F-EBEE9EC1FF4B" name="" isSpecification="false"> <UML:Transition.effect> <UML:UninterpretedAction xmi.id="XDE-5AD0D81C-219B-4971-A105-82B3C8DB6A1E" isAsynchronous="false" name="" isSpecification="false"> <UML:Action.script> <UML:ActionExpression language="" body="^Node.setDepth(depth)"/> </UML:Action.script> </UML:UninterpretedAction> </UML:Transition.effect> </UML:Transition> <UML:Transition xmi.id="XDE-95849EEE-D327-43A6-8937-C0FA1522BF54" source="XDE-A8490885-8FB1-4F02-9CAA-BFBC9CD07705" target="XDE-7550EDDF-1801-441F-87FA-19DFC86E1AC4" name="" isSpecification="false"> <UML:Transition.effect> <UML:UninterpretedAction xmi.id="XDE-D18D8EDA-2FBF-4467-8C77-78584841CCE4" isAsynchronous="false" name="" isSpecification="false"> <UML:Action.script> <UML:ActionExpression language="" body="depth:=50"/> </UML:Action.script> </UML:UninterpretedAction> </UML:Transi!
 tion.effect> </UML:Transition> <UML:Transition xmi.id="XDE-3F7C0525-89D7-4CF7-A3AE-C4656EBEB717" source="XDE-91C12DD8-B7F5-4F2C-834F-EBEE9EC1FF4B" target="XDE-A8490885-8FB1-4F02-9CAA-BFBC9CD07705" name="" isSpecification="false"> <UML:Transition.trigger> <UML:Event> <UML:ModelElement.namespace> <UML:Namespace> <UML:Namespace.ownedElement> <UML:CallEvent xmi.id="XDE-33529884-648F-4525-AC00-68814A620CD4" operation="XDE-CBD32837-2782-403F-AEE8-11E44AFB5F74" name="getDepth" isSpecification="false"/> </UML:Namespace.ownedElement> </UML:Namespace> </UML:ModelElement.namespace> </UML:Event> </UML:Transition.trigger> </UML:Transition> <UML:Transition xmi.id="XDE-742AEA47-36AC-4C33-ABE5-237A4F69362F" source="XDE-641A7242-E978-47CE-B3A2-CA5EC52027F2" target="XDE-91C12DD8-B7F5-4F2C-834F-EBEE9EC1FF4B" name="" isSpecification="false"/> </UML:StateMachine.transitions> </UML:StateMachine> </UML:Namespace.ownedElement> </UML:Class> <UML:Class xmi.id="XDE-9F5BCF4C-50EA-41A0-A2CE-88F337C5051!
 2" isActive="false" isAbstract="false" isLeaf="false" isRoot="false" vi!
 sibility="public" name="DigiCamSensor" isSpecification="false"> <UML:Classifier.feature> <UML:Attribute xmi.id="XDE-4AAF834C-74A2-403B-B167-D56DA5CB3CAE" changeability="changeable" targetScope="instance" ownerScope="instance" visibility="public" ordering="unordered" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="speed" isSpecification="false"/> <UML:Operation xmi.id="XDE-30072271-7EF0-47DE-B11C-66552263370C" concurrency="sequential" isRoot="false" isLeaf="false" isAbstract="false" isQuery="false" ownerScope="instance" visibility="public" specification="" name="getSpeed" isSpecification="false"/> </UML:Classifier.feature> <UML:Namespace.ownedElement> <UML:StateMachine xmi.id="XDE-C669853C-EE49-4D47-9165-1339CF019B4C" name="StateMachine1" isSpecification="false"> <UML:StateMachine.top> <UML:CompositeState xmi.id="XDE-A0B5C0FF-4782-4BE9-9501-C2071D9CC71E" isConcurrent="false" name="TOP" isSpecification="false"> <UML:CompositeState.subvertex> <UML:Pseudostate xmi.id="XDE!
 -1EDE0850-43C1-4F52-B9E7-1D49DC42DF3E" kind="initial" outgoing="XDE-C27AEC8E-4651-4845-B65D-9744852B1994" name="" isSpecification="false"/> <UML:CompositeState xmi.id="XDE-64B7C885-09AF-4D76-8FD4-FA4C2D6DDC6C" isConcurrent="false" outgoing="XDE-AB438ABB-EE7A-411E-9556-C97430583B46" name="Idle" isSpecification="false"/> <UML:CompositeState xmi.id="XDE-7270E880-7AF5-48D9-9373-F39499A8029B" isConcurrent="false" outgoing="XDE-85B9F78F-0804-47D4-9045-73D62058F977" name="State1" isSpecification="false"/> <UML:CompositeState xmi.id="XDE-4518A29F-67AA-4B02-8467-916A981BF345" isConcurrent="false" outgoing="XDE-22F9B8E6-37F5-44A7-AC23-78BB45FAA9EE" name="State2" isSpecification="false"/> </UML:CompositeState.subvertex> </UML:CompositeState> </UML:StateMachine.top> <UML:StateMachine.transitions> <UML:Transition xmi.id="XDE-22F9B8E6-37F5-44A7-AC23-78BB45FAA9EE" source="XDE-4518A29F-67AA-4B02-8467-916A981BF345" target="XDE-64B7C885-09AF-4D76-8FD4-FA4C2D6DDC6C" name="" isSpecification="f!
 alse"> <UML:Transition.effect> <UML:UninterpretedAction xmi.id="XDE-668!
 C4278-B19C-46C1-B69C-198DF07B48DF" isAsynchronous="false" name="" isSpecification="false"> <UML:Action.script> <UML:ActionExpression language="" body="^Node.setSpeed(speed)"/> </UML:Action.script> </UML:UninterpretedAction> </UML:Transition.effect> </UML:Transition> <UML:Transition xmi.id="XDE-85B9F78F-0804-47D4-9045-73D62058F977" source="XDE-7270E880-7AF5-48D9-9373-F39499A8029B" target="XDE-4518A29F-67AA-4B02-8467-916A981BF345" name="" isSpecification="false"> <UML:Transition.effect> <UML:UninterpretedAction xmi.id="XDE-CD4FDE96-7930-4871-A1C9-7BF59A8A770B" isAsynchronous="false" name="" isSpecification="false"> <UML:Action.script> <UML:ActionExpression language="" body="speed:=50"/> </UML:Action.script> </UML:UninterpretedAction> </UML:Transition.effect> </UML:Transition> <UML:Transition xmi.id="XDE-AB438ABB-EE7A-411E-9556-C97430583B46" source="XDE-64B7C885-09AF-4D76-8FD4-FA4C2D6DDC6C" target="XDE-7270E880-7AF5-48D9-9373-F39499A8029B" name="" isSpecification="false"> <UML!
 :Transition.trigger> <UML:Event> <UML:ModelElement.namespace> <UML:Namespace> <UML:Namespace.ownedElement> <UML:CallEvent xmi.id="XDE-C2FB3D09-6BDD-4695-8A25-253624BF77C6" operation="XDE-30072271-7EF0-47DE-B11C-66552263370C" name="getSpeed" isSpecification="false"/> </UML:Namespace.ownedElement> </UML:Namespace> </UML:ModelElement.namespace> </UML:Event> </UML:Transition.trigger> </UML:Transition> <UML:Transition xmi.id="XDE-C27AEC8E-4651-4845-B65D-9744852B1994" source="XDE-1EDE0850-43C1-4F52-B9E7-1D49DC42DF3E" target="XDE-64B7C885-09AF-4D76-8FD4-FA4C2D6DDC6C" name="" isSpecification="false"/> </UML:StateMachine.transitions> </UML:StateMachine> </UML:Namespace.ownedElement> </UML:Class> <UML:Class xmi.id="XDE-C99B7FA8-6BED-4179-ACDD-913FFAAFB81E" isActive="false" isAbstract="false" isLeaf="false" isRoot="false" visibility="public" name="UpstreamNode" isSpecification="false"> <UML:Classifier.feature> <UML:Attribute xmi.id="XDE-0E131E02-2131-4BB4-9F44-D1BE91ADD616" changeabil!
 ity="changeable" targetScope="instance" ownerScope="instance" visibilit!
 y="public" ordering="unordered" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="depth" isSpecification="false"/> <UML:Attribute xmi.id="XDE-239D26BF-7D8D-4452-B05C-50B61F59CF3C" changeability="changeable" targetScope="instance" ownerScope="instance" visibility="public" ordering="unordered" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="speed" isSpecification="false"/> <UML:Operation xmi.id="XDE-DA20C9FF-BD30-49F6-A8E4-AE7259B19217" concurrency="sequential" isRoot="false" isLeaf="false" isAbstract="false" isQuery="false" ownerScope="instance" visibility="public" specification="" name="getDepth" isSpecification="false"/> <UML:Operation xmi.id="XDE-3A53A825-8A38-4E04-9D21-F0CD2F773618" concurrency="sequential" isRoot="false" isLeaf="false" isAbstract="false" isQuery="false" ownerScope="instance" visibility="public" specification="" name="getSpeed" isSpecification="false"/> </UML:Classifier.feature> <UML:Namespace.ownedElement> <UML:StateMachine xmi.id="XDE-70AE545!
 1-4489-430A-8D8C-F772250A9990" name="StateMachine1" isSpecification="false"> <UML:StateMachine.top> <UML:CompositeState xmi.id="XDE-4828CBAF-8E7F-4522-BC14-86DB4A37B1D0" isConcurrent="false" name="TOP" isSpecification="false"> <UML:CompositeState.subvertex> <UML:Pseudostate xmi.id="XDE-74E8D5DD-0145-4A80-9A4C-7268B1800C2D" kind="initial" outgoing="XDE-CC5B39BB-003D-4C11-B5C5-BCA3253A5AA2" name="" isSpecification="false"/> <UML:CompositeState xmi.id="XDE-E26815EF-9E76-4814-B8D3-75A383C0EEB3" isConcurrent="false" outgoing="XDE-8621E69A-6526-4117-9CA0-297DAC1152F9 XDE-AB4E5C16-3547-46B3-B790-7103A75D35B1" name="Idle" isSpecification="false"/> <UML:CompositeState xmi.id="XDE-764C35AD-7510-4142-A8B5-34F240F4F8A7" isConcurrent="false" outgoing="XDE-29DF1FEB-F6C0-4D7E-8475-C9EBCE4C7323" name="State1" isSpecification="false"/> <UML:CompositeState xmi.id="XDE-6E223222-8D00-48D2-BBCD-9BAEB848D876" isConcurrent="false" outgoing="XDE-7C161B7A-852E-4F80-8719-E85FC17C6191" name="State2" !
 isSpecification="false"/> <UML:CompositeState xmi.id="XDE-0930A2EC-B0E5!
 -4580-ACC9-7A7FE4E343D2" isConcurrent="false" outgoing="XDE-E19A9928-B4B2-400B-8C31-BCC840BF5027" name="State3" isSpecification="false"/> <UML:CompositeState xmi.id="XDE-7BFEF681-5E0C-4519-B54A-EEA76DF756DA" isConcurrent="false" outgoing="XDE-F2593EFC-9726-4382-B55D-DB5A5D2A1B6F" name="State4" isSpecification="false"/> </UML:CompositeState.subvertex> </UML:CompositeState> </UML:StateMachine.top> <UML:StateMachine.transitions> <UML:Transition xmi.id="XDE-F2593EFC-9726-4382-B55D-DB5A5D2A1B6F" source="XDE-7BFEF681-5E0C-4519-B54A-EEA76DF756DA" target="XDE-E26815EF-9E76-4814-B8D3-75A383C0EEB3" name="" isSpecification="false"> <UML:Transition.effect> <UML:UninterpretedAction xmi.id="XDE-30376EFE-FD77-4008-B891-022048749EAD" isAsynchronous="false" name="" isSpecification="false"> <UML:Action.script> <UML:ActionExpression language="" body="^Node.setUpstreamSpeed(speed)"/> </UML:Action.script> </UML:UninterpretedAction> </UML:Transition.effect> </UML:Transition> <UML:Transition xmi.!
 id="XDE-E19A9928-B4B2-400B-8C31-BCC840BF5027" source="XDE-0930A2EC-B0E5-4580-ACC9-7A7FE4E343D2" target="XDE-7BFEF681-5E0C-4519-B54A-EEA76DF756DA" name="" isSpecification="false"> <UML:Transition.effect> <UML:UninterpretedAction xmi.id="XDE-5AF8AE05-2E20-48A7-A371-E816C85054BF" isAsynchronous="false" name="" isSpecification="false"> <UML:Action.script> <UML:ActionExpression language="" body="speed:=55"/> </UML:Action.script> </UML:UninterpretedAction> </UML:Transition.effect> </UML:Transition> <UML:Transition xmi.id="XDE-AB4E5C16-3547-46B3-B790-7103A75D35B1" source="XDE-E26815EF-9E76-4814-B8D3-75A383C0EEB3" target="XDE-0930A2EC-B0E5-4580-ACC9-7A7FE4E343D2" name="" isSpecification="false"> <UML:Transition.trigger> <UML:Event> <UML:ModelElement.namespace> <UML:Namespace> <UML:Namespace.ownedElement> <UML:CallEvent xmi.id="XDE-7039A72A-254B-43EF-BD60-A5472962FE42" operation="XDE-3A53A825-8A38-4E04-9D21-F0CD2F773618" name="getSpeed" isSpecification="false"/> </UML:Namespace.owne!
 dElement> </UML:Namespace> </UML:ModelElement.namespace> </UML:Event> <!
 /UML:Transition.trigger> </UML:Transition> <UML:Transition xmi.id="XDE-7C161B7A-852E-4F80-8719-E85FC17C6191" source="XDE-6E223222-8D00-48D2-BBCD-9BAEB848D876" target="XDE-E26815EF-9E76-4814-B8D3-75A383C0EEB3" name="" isSpecification="false"> <UML:Transition.effect> <UML:UninterpretedAction xmi.id="XDE-1D127A6D-3358-4752-A35C-F4942886AAAB" isAsynchronous="false" name="" isSpecification="false"> <UML:Action.script> <UML:ActionExpression language="" body="^Node.setUpstreamDepth(depth)"/> </UML:Action.script> </UML:UninterpretedAction> </UML:Transition.effect> </UML:Transition> <UML:Transition xmi.id="XDE-29DF1FEB-F6C0-4D7E-8475-C9EBCE4C7323" source="XDE-764C35AD-7510-4142-A8B5-34F240F4F8A7" target="XDE-6E223222-8D00-48D2-BBCD-9BAEB848D876" name="" isSpecification="false"> <UML:Transition.effect> <UML:UninterpretedAction xmi.id="XDE-040A3D87-8CCD-45AD-BD12-69216FC8F49C" isAsynchronous="false" name="" isSpecification="false"> <UML:Action.script> <UML:ActionExpression language=""!
  body="depth:=50"/> </UML:Action.script> </UML:UninterpretedAction> </UML:Transition.effect> </UML:Transition> <UML:Transition xmi.id="XDE-8621E69A-6526-4117-9CA0-297DAC1152F9" source="XDE-E26815EF-9E76-4814-B8D3-75A383C0EEB3" target="XDE-764C35AD-7510-4142-A8B5-34F240F4F8A7" name="" isSpecification="false"> <UML:Transition.trigger> <UML:Event> <UML:ModelElement.namespace> <UML:Namespace> <UML:Namespace.ownedElement> <UML:CallEvent xmi.id="XDE-23686559-A862-43C8-8684-685F12FE39BE" operation="XDE-DA20C9FF-BD30-49F6-A8E4-AE7259B19217" name="getDepth" isSpecification="false"/> </UML:Namespace.ownedElement> </UML:Namespace> </UML:ModelElement.namespace> </UML:Event> </UML:Transition.trigger> </UML:Transition> <UML:Transition xmi.id="XDE-CC5B39BB-003D-4C11-B5C5-BCA3253A5AA2" source="XDE-74E8D5DD-0145-4A80-9A4C-7268B1800C2D" target="XDE-E26815EF-9E76-4814-B8D3-75A383C0EEB3" name="" isSpecification="false"/> </UML:StateMachine.transitions> </UML:StateMachine> </UML:Namespace.owned!
 Element> </UML:Class> <UML:Class xmi.id="XDE-7AD01A65-50DA-4A0

Added: branches/uml-merge/tests/_orchid-avida-marple/config/xmi_info
===================================================================
--- branches/uml-merge/tests/_orchid-avida-marple/config/xmi_info	                        (rev 0)
+++ branches/uml-merge/tests/_orchid-avida-marple/config/xmi_info	2008-07-01 19:45:11 UTC (rev 2695)
@@ -0,0 +1,697 @@
+=XMI-BEGIN==================
+<?xml version="1.0" encoding="UTF-8" ?>
+<!-- <!DOCTYPE XMI SYSTEM "C:\Program Files\Rational\XDE\Addins\XMI\DTD\XMI11UML14.dtd"> -->
+<XMI xmi.version="1.1" xmlns:UML="http://www.omg.org/UML" xmlns:xlink="http://www.w3c.org/xlink" xmlns:XDE="http://www.rational.com/products/XDE">
+    <XMI.header>
+        <XMI.documentation>
+            <XMI.exporter>Rational XDE</XMI.exporter>
+            <XMI.exporterVersion>1.5</XMI.exporterVersion>
+        </XMI.documentation>
+        <XMI.metamodel xmi.name="UML" xmi.version="1.4"/>
+    </XMI.header>
+    <XMI.content>
+        <UML:Model xmi.id="XDE-FA722DB8-38C8-4335-8FD2-DCDBE281CABF" name="gridstixNormal" isSpecification="false">
+            <UML:Namespace.ownedElement>
+                <UML:Association xmi.id="XDE-CAB33A38-4C97-4A55-9116-EEC7A91DD9F1" name="" isSpecification="false">
+                    <UML:Association.connection>
+                        <UML:AssociationEnd xmi.id="XDE-2CE9B285-31F3-4CE1-976D-1DF8C65157B6" aggregation="none" isNavigable="true" participant="XDE-C99B7FA8-6BED-4179-ACDD-913FFAAFB81E" changeability="changeable" targetScope="instance" visibility="private" ordering="unordered" name="" isSpecification="false"/>
+                        <UML:AssociationEnd xmi.id="XDE-F66AA9B0-83EA-4AF6-BFE8-06DED52253B4" aggregation="none" isNavigable="true" participant="XDE-D14BF0DA-20D5-43C6-8DE1-714E1B1AF389" changeability="changeable" targetScope="instance" visibility="private" ordering="unordered" name="" isSpecification="false"/>
+                    </UML:Association.connection>
+                </UML:Association>
+                <UML:Association xmi.id="XDE-52DD71E9-EC09-4167-A8D3-55625DB3573C" name="" isSpecification="false">
+                    <UML:Association.connection>
+                        <UML:AssociationEnd xmi.id="XDE-EC27078F-1E19-46F6-85A5-AA8BFE3DF5B6" aggregation="none" isNavigable="true" participant="XDE-7AD01A65-50DA-4A07-9B42-911822CD8472" changeability="changeable" targetScope="instance" visibility="private" ordering="unordered" name="" isSpecification="false"/>
+                        <UML:AssociationEnd xmi.id="XDE-136E30BC-FC8D-40FA-AE01-E19132CDF84D" aggregation="none" isNavigable="true" participant="XDE-D14BF0DA-20D5-43C6-8DE1-714E1B1AF389" changeability="changeable" targetScope="instance" visibility="private" ordering="unordered" name="" isSpecification="false"/>
+                    </UML:Association.connection>
+                </UML:Association>
+                <UML:Association xmi.id="XDE-530AF5F1-9B35-4CF6-B19D-8216E818822F" name="" isSpecification="false">
+                    <UML:Association.connection>
+                        <UML:AssociationEnd xmi.id="XDE-55EFB812-5E69-4906-A7AE-95201CB84028" aggregation="none" isNavigable="true" participant="XDE-2811F0FA-B385-455F-BA51-2D83EBD7AA5F" changeability="changeable" targetScope="instance" visibility="private" ordering="unordered" name="" isSpecification="false"/>
+                        <UML:AssociationEnd xmi.id="XDE-A2A2F969-DBBA-4CC2-B8BA-120AA2CF663E" aggregation="none" isNavigable="true" participant="XDE-D14BF0DA-20D5-43C6-8DE1-714E1B1AF389" changeability="changeable" targetScope="instance" visibility="private" ordering="unordered" name="" isSpecification="false"/>
+                    </UML:Association.connection>
+                </UML:Association>
+=END========================
+=CLASS======================
+                <UML:Class xmi.id="XDE-D14BF0DA-20D5-43C6-8DE1-714E1B1AF389" isActive="false" isAbstract="false" isLeaf="false" isRoot="false" visibility="public" name="Node" isSpecification="false">
+                    <UML:Classifier.feature>
+                        <UML:Attribute xmi.id="XDE-DB15EF47-EC22-4EEA-87DA-EF003857F712" changeability="changeable" targetScope="instance" ownerScope="instance" visibility="public" ordering="unordered" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="CPUSpeed" isSpecification="false">
+                            <UML:Attribute.initialValue>
+                                <UML:Expression language="" body="0"/>
+                            </UML:Attribute.initialValue>
+                        </UML:Attribute>
+                        <UML:Attribute xmi.id="XDE-D669A8FE-1F53-410F-B181-0827434E636A" changeability="changeable" targetScope="instance" ownerScope="instance" visibility="public" ordering="unordered" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="pointDepth" isSpecification="false">
+                            <UML:Attribute.initialValue>
+                                <UML:Expression language="" body="0"/>
+                            </UML:Attribute.initialValue>
+                        </UML:Attribute>
+                        <UML:Attribute xmi.id="XDE-2C52EB68-0EB1-43FC-B556-45BDAEA40C8E" changeability="changeable" targetScope="instance" ownerScope="instance" visibility="public" ordering="unordered" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="pointSpeed" isSpecification="false">
+                            <UML:Attribute.initialValue>
+                                <UML:Expression language="" body="0"/>
+                            </UML:Attribute.initialValue>
+                        </UML:Attribute>
+                        <UML:Attribute xmi.id="XDE-ED9F8371-905F-4CE0-8916-ADC7D9B17EDE" changeability="changeable" targetScope="instance" ownerScope="instance" visibility="public" ordering="unordered" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="upDepth" isSpecification="false">
+                            <UML:Attribute.initialValue>
+                                <UML:Expression language="" body="0"/>
+                            </UML:Attribute.initialValue>
+                        </UML:Attribute>
+                        <UML:Attribute xmi.id="XDE-2109D770-486B-4FAD-9F5F-B672E0C49CE6" changeability="changeable" targetScope="instance" ownerScope="instance" visibility="public" ordering="unordered" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="upSpeed" isSpecification="false">
+                            <UML:Attribute.initialValue>
+                                <UML:Expression language="" body="0"/>
+                            </UML:Attribute.initialValue>
+                        </UML:Attribute>
+                        <UML:Attribute xmi.id="XDE-DE98000F-C01D-4E20-A6CB-F95A8631CF0F" changeability="changeable" targetScope="instance" ownerScope="instance" visibility="public" ordering="unordered" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="predict" isSpecification="false">
+                            <UML:Attribute.initialValue>
+                                <UML:Expression language="" body="0"/>
+                            </UML:Attribute.initialValue>
+                        </UML:Attribute>
+                        <UML:Attribute xmi.id="XDE-9072D370-7AD7-44F9-8FD6-52AB8368E57E" changeability="changeable" targetScope="instance" ownerScope="instance" visibility="public" ordering="unordered" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="currentBattery" isSpecification="false"/>
+                        <UML:Operation xmi.id="XDE-FB15292B-3905-4B1E-8769-29F1FAF6E8CA" concurrency="sequential" isRoot="false" isLeaf="false" isAbstract="false" isQuery="false" ownerScope="instance" visibility="public" specification="" name="ACK" isSpecification="false"/>
+                        <UML:Operation xmi.id="XDE-A8F47A1B-9176-48C0-9560-8D5C9B6640B5" concurrency="sequential" isRoot="false" isLeaf="false" isAbstract="false" isQuery="false" ownerScope="instance" visibility="public" specification="" name="setDepth" isSpecification="false">
+                            <UML:BehavioralFeature.parameter>
+                                <UML:Parameter xmi.id="XDE-52EBAD3F-F627-4880-A096-68A455E57B49" kind="in" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="pointDepth" isSpecification="false"/>
+                            </UML:BehavioralFeature.parameter>
+                        </UML:Operation>
+                        <UML:Operation xmi.id="XDE-CE55BE32-A8E3-46DA-8F60-F1977A8CEC98" concurrency="sequential" isRoot="false" isLeaf="false" isAbstract="false" isQuery="false" ownerScope="instance" visibility="public" specification="" name="setUpstreamDepth" isSpecification="false">
+                            <UML:BehavioralFeature.parameter>
+                                <UML:Parameter xmi.id="XDE-D6931B25-B8BA-4DFC-A2E0-D1EAB2F6FC2D" kind="in" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="upDepth" isSpecification="false"/>
+                            </UML:BehavioralFeature.parameter>
+                        </UML:Operation>
+                        <UML:Operation xmi.id="XDE-267808B8-8377-4F2A-B169-3D7660ADD557" concurrency="sequential" isRoot="false" isLeaf="false" isAbstract="false" isQuery="false" ownerScope="instance" visibility="public" specification="" name="setUpstreamSpeed" isSpecification="false">
+                            <UML:BehavioralFeature.parameter>
+                                <UML:Parameter xmi.id="XDE-E19141AE-E98F-4E70-BD9D-05AA9B3B550C" kind="in" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="upSpeed" isSpecification="false"/>
+                            </UML:BehavioralFeature.parameter>
+                        </UML:Operation>
+                        <UML:Operation xmi.id="XDE-02BF382B-C792-438C-A58D-CBC7A013EDCF" concurrency="sequential" isRoot="false" isLeaf="false" isAbstract="false" isQuery="false" ownerScope="instance" visibility="public" specification="" name="setPrediction" isSpecification="false">
+                            <UML:BehavioralFeature.parameter>
+                                <UML:Parameter xmi.id="XDE-8EDCC2A4-A5FA-4025-B009-197E15E9AADE" kind="in" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="predict" isSpecification="false"/>
+                            </UML:BehavioralFeature.parameter>
+                        </UML:Operation>
+                        <UML:Operation xmi.id="XDE-4AE289D2-E012-4D8F-971A-16DF0C7C1087" concurrency="sequential" isRoot="false" isLeaf="false" isAbstract="false" isQuery="false" ownerScope="instance" visibility="public" specification="" name="setSpeed" isSpecification="false">
+                            <UML:BehavioralFeature.parameter>
+                                <UML:Parameter xmi.id="XDE-67D9B3E4-036C-4C64-9C00-0F00BAAF8C89" kind="in" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="pointSpeed" isSpecification="false"/>
+                            </UML:BehavioralFeature.parameter>
+                        </UML:Operation>
+                    </UML:Classifier.feature>
+                    <UML:Namespace.ownedElement>
+                        <UML:Association xmi.id="XDE-FAE8420F-C293-4206-B477-95B6CFE7D46D" name="" isSpecification="false">
+                            <UML:Association.connection>
+                                <UML:AssociationEnd xmi.id="XDE-8BAA49C9-92EE-4659-82F6-63F86993B09C" aggregation="composite" isNavigable="true" participant="XDE-34A1A642-BEFC-4C29-94E0-E54E0847E936" changeability="changeable" targetScope="instance" visibility="private" ordering="unordered" name="_PressureSensor" isSpecification="false">
+                                    <UML:AssociationEnd.multiplicity>
+                                        <UML:Multiplicity>
+                                            <UML:Multiplicity.range>
+                                                <UML:MultiplicityRange lower="*" upper="*"/>
+                                            </UML:Multiplicity.range>
+                                        </UML:Multiplicity>
+                                    </UML:AssociationEnd.multiplicity>
+                                </UML:AssociationEnd>
+                                <UML:AssociationEnd xmi.id="XDE-AEEC671F-F492-4015-AD39-E4D687C38B40" aggregation="none" isNavigable="false" participant="XDE-D14BF0DA-20D5-43C6-8DE1-714E1B1AF389" changeability="changeable" targetScope="instance" visibility="private" ordering="unordered" name="" isSpecification="false"/>
+                            </UML:Association.connection>
+                        </UML:Association>
+                        <UML:Association xmi.id="XDE-FE0ECB31-564B-4338-8791-13742270672B" name="" isSpecification="false">
+                            <UML:Association.connection>
+                                <UML:AssociationEnd xmi.id="XDE-154CE159-60FC-48B7-B8BD-F0969C23C8FF" aggregation="composite" isNavigable="true" participant="XDE-9F5BCF4C-50EA-41A0-A2CE-88F337C50512" changeability="changeable" targetScope="instance" visibility="private" ordering="unordered" name="_DigiCamSensor" isSpecification="false">
+                                    <UML:AssociationEnd.multiplicity>
+                                        <UML:Multiplicity>
+                                            <UML:Multiplicity.range>
+                                                <UML:MultiplicityRange lower="*" upper="*"/>
+                                            </UML:Multiplicity.range>
+                                        </UML:Multiplicity>
+                                    </UML:AssociationEnd.multiplicity>
+                                </UML:AssociationEnd>
+                                <UML:AssociationEnd xmi.id="XDE-556BBE7D-35A9-4FB2-B615-EAB66C312BC0" aggregation="none" isNavigable="false" participant="XDE-D14BF0DA-20D5-43C6-8DE1-714E1B1AF389" changeability="changeable" targetScope="instance" visibility="private" ordering="unordered" name="" isSpecification="false"/>
+                            </UML:Association.connection>
+                        </UML:Association>
+                        <UML:StateMachine xmi.id="XDE-8CFD055B-2B13-4F09-A024-A56BAC76F381" name="StateMachine1" isSpecification="false">
+                            <UML:StateMachine.top>
+                                <UML:CompositeState xmi.id="XDE-6AC4325F-3D7A-4CF6-88BE-70FF2441E501" isConcurrent="false" name="TOP" isSpecification="false">
+                                    <UML:CompositeState.subvertex>
+=END========================
+=XMI-END====================
+<UML:Class xmi.id="XDE-34A1A642-BEFC-4C29-94E0-E54E0847E936" isActive="false" isAbstract="false" isLeaf="false" isRoot="false" visibility="public" name="PressureSensor" isSpecification="false">
+                    <UML:Classifier.feature>
+                        <UML:Attribute xmi.id="XDE-191074A0-C17E-48E3-A0D3-6DECB0B63434" changeability="changeable" targetScope="instance" ownerScope="instance" visibility="public" ordering="unordered" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="depth" isSpecification="false"/>
+                        <UML:Operation xmi.id="XDE-CBD32837-2782-403F-AEE8-11E44AFB5F74" concurrency="sequential" isRoot="false" isLeaf="false" isAbstract="false" isQuery="false" ownerScope="instance" visibility="public" specification="" name="getDepth" isSpecification="false"/>
+                    </UML:Classifier.feature>
+                    <UML:Namespace.ownedElement>
+                        <UML:StateMachine xmi.id="XDE-323E02F2-3693-4724-B5A5-46C2FE82BB39" name="StateMachine1" isSpecification="false">
+                            <UML:StateMachine.top>
+                                <UML:CompositeState xmi.id="XDE-A02811AA-2EF1-4695-A84B-4F66C0238485" isConcurrent="false" name="TOP" isSpecification="false">
+                                    <UML:CompositeState.subvertex>
+                                        <UML:Pseudostate xmi.id="XDE-641A7242-E978-47CE-B3A2-CA5EC52027F2" kind="initial" outgoing="XDE-742AEA47-36AC-4C33-ABE5-237A4F69362F" name="" isSpecification="false"/>
+                                        <UML:CompositeState xmi.id="XDE-91C12DD8-B7F5-4F2C-834F-EBEE9EC1FF4B" isConcurrent="false" outgoing="XDE-3F7C0525-89D7-4CF7-A3AE-C4656EBEB717" name="Idle" isSpecification="false"/>
+                                        <UML:CompositeState xmi.id="XDE-A8490885-8FB1-4F02-9CAA-BFBC9CD07705" isConcurrent="false" outgoing="XDE-95849EEE-D327-43A6-8937-C0FA1522BF54" name="State1" isSpecification="false"/>
+                                        <UML:CompositeState xmi.id="XDE-7550EDDF-1801-441F-87FA-19DFC86E1AC4" isConcurrent="false" outgoing="XDE-4F2E34C3-2ED9-4438-9A4B-B25BE5C95050" name="State2" isSpecification="false"/>
+                                    </UML:CompositeState.subvertex>
+                                </UML:CompositeState>
+                            </UML:StateMachine.top>
+                            <UML:StateMachine.transitions>
+                                <UML:Transition xmi.id="XDE-4F2E34C3-2ED9-4438-9A4B-B25BE5C95050" source="XDE-7550EDDF-1801-441F-87FA-19DFC86E1AC4" target="XDE-91C12DD8-B7F5-4F2C-834F-EBEE9EC1FF4B" name="" isSpecification="false">
+                                    <UML:Transition.effect>
+                                        <UML:UninterpretedAction xmi.id="XDE-5AD0D81C-219B-4971-A105-82B3C8DB6A1E" isAsynchronous="false" name="" isSpecification="false">
+                                            <UML:Action.script>
+                                                <UML:ActionExpression language="" body="^Node.setDepth(depth)"/>
+                                            </UML:Action.script>
+                                        </UML:UninterpretedAction>
+                                    </UML:Transition.effect>
+                                </UML:Transition>
+                                <UML:Transition xmi.id="XDE-95849EEE-D327-43A6-8937-C0FA1522BF54" source="XDE-A8490885-8FB1-4F02-9CAA-BFBC9CD07705" target="XDE-7550EDDF-1801-441F-87FA-19DFC86E1AC4" name="" isSpecification="false">
+                                    <UML:Transition.effect>
+                                        <UML:UninterpretedAction xmi.id="XDE-D18D8EDA-2FBF-4467-8C77-78584841CCE4" isAsynchronous="false" name="" isSpecification="false">
+                                            <UML:Action.script>
+                                                <UML:ActionExpression language="" body="depth:=50"/>
+                                            </UML:Action.script>
+                                        </UML:UninterpretedAction>
+                                    </UML:Transition.effect>
+                                </UML:Transition>
+                                <UML:Transition xmi.id="XDE-3F7C0525-89D7-4CF7-A3AE-C4656EBEB717" source="XDE-91C12DD8-B7F5-4F2C-834F-EBEE9EC1FF4B" target="XDE-A8490885-8FB1-4F02-9CAA-BFBC9CD07705" name="" isSpecification="false">
+                                    <UML:Transition.trigger>
+                                        <UML:Event>
+                                            <UML:ModelElement.namespace>
+                                                <UML:Namespace>
+                                                    <UML:Namespace.ownedElement>
+                                                        <UML:CallEvent xmi.id="XDE-33529884-648F-4525-AC00-68814A620CD4" operation="XDE-CBD32837-2782-403F-AEE8-11E44AFB5F74" name="getDepth" isSpecification="false"/>
+                                                    </UML:Namespace.ownedElement>
+                                                </UML:Namespace>
+                                            </UML:ModelElement.namespace>
+                                        </UML:Event>
+                                    </UML:Transition.trigger>
+                                </UML:Transition>
+                                <UML:Transition xmi.id="XDE-742AEA47-36AC-4C33-ABE5-237A4F69362F" source="XDE-641A7242-E978-47CE-B3A2-CA5EC52027F2" target="XDE-91C12DD8-B7F5-4F2C-834F-EBEE9EC1FF4B" name="" isSpecification="false"/>
+                            </UML:StateMachine.transitions>
+                        </UML:StateMachine>
+                    </UML:Namespace.ownedElement>
+                </UML:Class>
+                <UML:Class xmi.id="XDE-9F5BCF4C-50EA-41A0-A2CE-88F337C50512" isActive="false" isAbstract="false" isLeaf="false" isRoot="false" visibility="public" name="DigiCamSensor" isSpecification="false">
+                    <UML:Classifier.feature>
+                        <UML:Attribute xmi.id="XDE-4AAF834C-74A2-403B-B167-D56DA5CB3CAE" changeability="changeable" targetScope="instance" ownerScope="instance" visibility="public" ordering="unordered" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="speed" isSpecification="false"/>
+                        <UML:Operation xmi.id="XDE-30072271-7EF0-47DE-B11C-66552263370C" concurrency="sequential" isRoot="false" isLeaf="false" isAbstract="false" isQuery="false" ownerScope="instance" visibility="public" specification="" name="getSpeed" isSpecification="false"/>
+                    </UML:Classifier.feature>
+                    <UML:Namespace.ownedElement>
+                        <UML:StateMachine xmi.id="XDE-C669853C-EE49-4D47-9165-1339CF019B4C" name="StateMachine1" isSpecification="false">
+                            <UML:StateMachine.top>
+                                <UML:CompositeState xmi.id="XDE-A0B5C0FF-4782-4BE9-9501-C2071D9CC71E" isConcurrent="false" name="TOP" isSpecification="false">
+                                    <UML:CompositeState.subvertex>
+                                        <UML:Pseudostate xmi.id="XDE-1EDE0850-43C1-4F52-B9E7-1D49DC42DF3E" kind="initial" outgoing="XDE-C27AEC8E-4651-4845-B65D-9744852B1994" name="" isSpecification="false"/>
+                                        <UML:CompositeState xmi.id="XDE-64B7C885-09AF-4D76-8FD4-FA4C2D6DDC6C" isConcurrent="false" outgoing="XDE-AB438ABB-EE7A-411E-9556-C97430583B46" name="Idle" isSpecification="false"/>
+                                        <UML:CompositeState xmi.id="XDE-7270E880-7AF5-48D9-9373-F39499A8029B" isConcurrent="false" outgoing="XDE-85B9F78F-0804-47D4-9045-73D62058F977" name="State1" isSpecification="false"/>
+                                        <UML:CompositeState xmi.id="XDE-4518A29F-67AA-4B02-8467-916A981BF345" isConcurrent="false" outgoing="XDE-22F9B8E6-37F5-44A7-AC23-78BB45FAA9EE" name="State2" isSpecification="false"/>
+                                    </UML:CompositeState.subvertex>
+                                </UML:CompositeState>
+                            </UML:StateMachine.top>
+                            <UML:StateMachine.transitions>
+                                <UML:Transition xmi.id="XDE-22F9B8E6-37F5-44A7-AC23-78BB45FAA9EE" source="XDE-4518A29F-67AA-4B02-8467-916A981BF345" target="XDE-64B7C885-09AF-4D76-8FD4-FA4C2D6DDC6C" name="" isSpecification="false">
+                                    <UML:Transition.effect>
+                                        <UML:UninterpretedAction xmi.id="XDE-668C4278-B19C-46C1-B69C-198DF07B48DF" isAsynchronous="false" name="" isSpecification="false">
+                                            <UML:Action.script>
+                                                <UML:ActionExpression language="" body="^Node.setSpeed(speed)"/>
+                                            </UML:Action.script>
+                                        </UML:UninterpretedAction>
+                                    </UML:Transition.effect>
+                                </UML:Transition>
+                                <UML:Transition xmi.id="XDE-85B9F78F-0804-47D4-9045-73D62058F977" source="XDE-7270E880-7AF5-48D9-9373-F39499A8029B" target="XDE-4518A29F-67AA-4B02-8467-916A981BF345" name="" isSpecification="false">
+                                    <UML:Transition.effect>
+                                        <UML:UninterpretedAction xmi.id="XDE-CD4FDE96-7930-4871-A1C9-7BF59A8A770B" isAsynchronous="false" name="" isSpecification="false">
+                                            <UML:Action.script>
+                                                <UML:ActionExpression language="" body="speed:=50"/>
+                                            </UML:Action.script>
+                                        </UML:UninterpretedAction>
+                                    </UML:Transition.effect>
+                                </UML:Transition>
+                                <UML:Transition xmi.id="XDE-AB438ABB-EE7A-411E-9556-C97430583B46" source="XDE-64B7C885-09AF-4D76-8FD4-FA4C2D6DDC6C" target="XDE-7270E880-7AF5-48D9-9373-F39499A8029B" name="" isSpecification="false">
+                                    <UML:Transition.trigger>
+                                        <UML:Event>
+                                            <UML:ModelElement.namespace>
+                                                <UML:Namespace>
+                                                    <UML:Namespace.ownedElement>
+                                                        <UML:CallEvent xmi.id="XDE-C2FB3D09-6BDD-4695-8A25-253624BF77C6" operation="XDE-30072271-7EF0-47DE-B11C-66552263370C" name="getSpeed" isSpecification="false"/>
+                                                    </UML:Namespace.ownedElement>
+                                                </UML:Namespace>
+                                            </UML:ModelElement.namespace>
+                                        </UML:Event>
+                                    </UML:Transition.trigger>
+                                </UML:Transition>
+                                <UML:Transition xmi.id="XDE-C27AEC8E-4651-4845-B65D-9744852B1994" source="XDE-1EDE0850-43C1-4F52-B9E7-1D49DC42DF3E" target="XDE-64B7C885-09AF-4D76-8FD4-FA4C2D6DDC6C" name="" isSpecification="false"/>
+                            </UML:StateMachine.transitions>
+                        </UML:StateMachine>
+                    </UML:Namespace.ownedElement>
+                </UML:Class>
+                <UML:Class xmi.id="XDE-C99B7FA8-6BED-4179-ACDD-913FFAAFB81E" isActive="false" isAbstract="false" isLeaf="false" isRoot="false" visibility="public" name="UpstreamNode" isSpecification="false">
+                    <UML:Classifier.feature>
+                        <UML:Attribute xmi.id="XDE-0E131E02-2131-4BB4-9F44-D1BE91ADD616" changeability="changeable" targetScope="instance" ownerScope="instance" visibility="public" ordering="unordered" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="depth" isSpecification="false"/>
+                        <UML:Attribute xmi.id="XDE-239D26BF-7D8D-4452-B05C-50B61F59CF3C" changeability="changeable" targetScope="instance" ownerScope="instance" visibility="public" ordering="unordered" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="speed" isSpecification="false"/>
+                        <UML:Operation xmi.id="XDE-DA20C9FF-BD30-49F6-A8E4-AE7259B19217" concurrency="sequential" isRoot="false" isLeaf="false" isAbstract="false" isQuery="false" ownerScope="instance" visibility="public" specification="" name="getDepth" isSpecification="false"/>
+                        <UML:Operation xmi.id="XDE-3A53A825-8A38-4E04-9D21-F0CD2F773618" concurrency="sequential" isRoot="false" isLeaf="false" isAbstract="false" isQuery="false" ownerScope="instance" visibility="public" specification="" name="getSpeed" isSpecification="false"/>
+                    </UML:Classifier.feature>
+                    <UML:Namespace.ownedElement>
+                        <UML:StateMachine xmi.id="XDE-70AE5451-4489-430A-8D8C-F772250A9990" name="StateMachine1" isSpecification="false">
+                            <UML:StateMachine.top>
+                                <UML:CompositeState xmi.id="XDE-4828CBAF-8E7F-4522-BC14-86DB4A37B1D0" isConcurrent="false" name="TOP" isSpecification="false">
+                                    <UML:CompositeState.subvertex>
+                                        <UML:Pseudostate xmi.id="XDE-74E8D5DD-0145-4A80-9A4C-7268B1800C2D" kind="initial" outgoing="XDE-CC5B39BB-003D-4C11-B5C5-BCA3253A5AA2" name="" isSpecification="false"/>
+                                        <UML:CompositeState xmi.id="XDE-E26815EF-9E76-4814-B8D3-75A383C0EEB3" isConcurrent="false" outgoing="XDE-8621E69A-6526-4117-9CA0-297DAC1152F9 XDE-AB4E5C16-3547-46B3-B790-7103A75D35B1" name="Idle" isSpecification="false"/>
+                                        <UML:CompositeState xmi.id="XDE-764C35AD-7510-4142-A8B5-34F240F4F8A7" isConcurrent="false" outgoing="XDE-29DF1FEB-F6C0-4D7E-8475-C9EBCE4C7323" name="State1" isSpecification="false"/>
+                                        <UML:CompositeState xmi.id="XDE-6E223222-8D00-48D2-BBCD-9BAEB848D876" isConcurrent="false" outgoing="XDE-7C161B7A-852E-4F80-8719-E85FC17C6191" name="State2" isSpecification="false"/>
+                                        <UML:CompositeState xmi.id="XDE-0930A2EC-B0E5-4580-ACC9-7A7FE4E343D2" isConcurrent="false" outgoing="XDE-E19A9928-B4B2-400B-8C31-BCC840BF5027" name="State3" isSpecification="false"/>
+                                        <UML:CompositeState xmi.id="XDE-7BFEF681-5E0C-4519-B54A-EEA76DF756DA" isConcurrent="false" outgoing="XDE-F2593EFC-9726-4382-B55D-DB5A5D2A1B6F" name="State4" isSpecification="false"/>
+                                    </UML:CompositeState.subvertex>
+                                </UML:CompositeState>
+                            </UML:StateMachine.top>
+                            <UML:StateMachine.transitions>
+                                <UML:Transition xmi.id="XDE-F2593EFC-9726-4382-B55D-DB5A5D2A1B6F" source="XDE-7BFEF681-5E0C-4519-B54A-EEA76DF756DA" target="XDE-E26815EF-9E76-4814-B8D3-75A383C0EEB3" name="" isSpecification="false">
+                                    <UML:Transition.effect>
+                                        <UML:UninterpretedAction xmi.id="XDE-30376EFE-FD77-4008-B891-022048749EAD" isAsynchronous="false" name="" isSpecification="false">
+                                            <UML:Action.script>
+                                                <UML:ActionExpression language="" body="^Node.setUpstreamSpeed(speed)"/>
+                                            </UML:Action.script>
+                                        </UML:UninterpretedAction>
+                                    </UML:Transition.effect>
+                                </UML:Transition>
+                                <UML:Transition xmi.id="XDE-E19A9928-B4B2-400B-8C31-BCC840BF5027" source="XDE-0930A2EC-B0E5-4580-ACC9-7A7FE4E343D2" target="XDE-7BFEF681-5E0C-4519-B54A-EEA76DF756DA" name="" isSpecification="false">
+                                    <UML:Transition.effect>
+                                        <UML:UninterpretedAction xmi.id="XDE-5AF8AE05-2E20-48A7-A371-E816C85054BF" isAsynchronous="false" name="" isSpecification="false">
+                                            <UML:Action.script>
+                                                <UML:ActionExpression language="" body="speed:=55"/>
+                                            </UML:Action.script>
+                                        </UML:UninterpretedAction>
+                                    </UML:Transition.effect>
+                                </UML:Transition>
+                                <UML:Transition xmi.id="XDE-AB4E5C16-3547-46B3-B790-7103A75D35B1" source="XDE-E26815EF-9E76-4814-B8D3-75A383C0EEB3" target="XDE-0930A2EC-B0E5-4580-ACC9-7A7FE4E343D2" name="" isSpecification="false">
+                                    <UML:Transition.trigger>
+                                        <UML:Event>
+                                            <UML:ModelElement.namespace>
+                                                <UML:Namespace>
+                                                    <UML:Namespace.ownedElement>
+                                                        <UML:CallEvent xmi.id="XDE-7039A72A-254B-43EF-BD60-A5472962FE42" operation="XDE-3A53A825-8A38-4E04-9D21-F0CD2F773618" name="getSpeed" isSpecification="false"/>
+                                                    </UML:Namespace.ownedElement>
+                                                </UML:Namespace>
+                                            </UML:ModelElement.namespace>
+                                        </UML:Event>
+                                    </UML:Transition.trigger>
+                                </UML:Transition>
+                                <UML:Transition xmi.id="XDE-7C161B7A-852E-4F80-8719-E85FC17C6191" source="XDE-6E223222-8D00-48D2-BBCD-9BAEB848D876" target="XDE-E26815EF-9E76-4814-B8D3-75A383C0EEB3" name="" isSpecification="false">
+                                    <UML:Transition.effect>
+                                        <UML:UninterpretedAction xmi.id="XDE-1D127A6D-3358-4752-A35C-F4942886AAAB" isAsynchronous="false" name="" isSpecification="false">
+                                            <UML:Action.script>
+                                                <UML:ActionExpression language="" body="^Node.setUpstreamDepth(depth)"/>
+                                            </UML:Action.script>
+                                        </UML:UninterpretedAction>
+                                    </UML:Transition.effect>
+                                </UML:Transition>
+                                <UML:Transition xmi.id="XDE-29DF1FEB-F6C0-4D7E-8475-C9EBCE4C7323" source="XDE-764C35AD-7510-4142-A8B5-34F240F4F8A7" target="XDE-6E223222-8D00-48D2-BBCD-9BAEB848D876" name="" isSpecification="false">
+                                    <UML:Transition.effect>
+                                        <UML:UninterpretedAction xmi.id="XDE-040A3D87-8CCD-45AD-BD12-69216FC8F49C" isAsynchronous="false" name="" isSpecification="false">
+                                            <UML:Action.script>
+                                                <UML:ActionExpression language="" body="depth:=50"/>
+                                            </UML:Action.script>
+                                        </UML:UninterpretedAction>
+                                    </UML:Transition.effect>
+                                </UML:Transition>
+                                <UML:Transition xmi.id="XDE-8621E69A-6526-4117-9CA0-297DAC1152F9" source="XDE-E26815EF-9E76-4814-B8D3-75A383C0EEB3" target="XDE-764C35AD-7510-4142-A8B5-34F240F4F8A7" name="" isSpecification="false">
+                                    <UML:Transition.trigger>
+                                        <UML:Event>
+                                            <UML:ModelElement.namespace>
+                                                <UML:Namespace>
+                                                    <UML:Namespace.ownedElement>
+                                                        <UML:CallEvent xmi.id="XDE-23686559-A862-43C8-8684-685F12FE39BE" operation="XDE-DA20C9FF-BD30-49F6-A8E4-AE7259B19217" name="getDepth" isSpecification="false"/>
+                                                    </UML:Namespace.ownedElement>
+                                                </UML:Namespace>
+                                            </UML:ModelElement.namespace>
+                                        </UML:Event>
+                                    </UML:Transition.trigger>
+                                </UML:Transition>
+                                <UML:Transition xmi.id="XDE-CC5B39BB-003D-4C11-B5C5-BCA3253A5AA2" source="XDE-74E8D5DD-0145-4A80-9A4C-7268B1800C2D" target="XDE-E26815EF-9E76-4814-B8D3-75A383C0EEB3" name="" isSpecification="false"/>
+                            </UML:StateMachine.transitions>
+                        </UML:StateMachine>
+                    </UML:Namespace.ownedElement>
+                </UML:Class>
+                <UML:Class xmi.id="XDE-7AD01A65-50DA-4A07-9B42-911822CD8472" isActive="false" isAbstract="false" isLeaf="false" isRoot="false" visibility="public" name="ShortestHopNode" isSpecification="false">
+                    <UML:Classifier.feature>
+                        <UML:Attribute xmi.id="XDE-04F8C407-221D-4B44-93FD-2EB681D85B3B" changeability="changeable" targetScope="instance" ownerScope="instance" visibility="public" ordering="unordered" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="predict" isSpecification="false"/>
+                        <UML:Attribute xmi.id="XDE-89B08C8F-2313-47EE-8DF1-F1F1D11D2AA0" changeability="changeable" targetScope="instance" ownerScope="instance" visibility="public" ordering="unordered" type="XDE-19BA6468-D153-4E03-9EAD-D9FEA2321750" name="received" isSpecification="false"/>
+                        <UML:Operation xmi.id="XDE-7DFD36A8-D78F-486D-AB7E-8436EFB51EE7" concurrency="sequential" isRoot="false" isLeaf="false" isAbstract="false" isQuery="false" ownerScope="instance" visibility="public" specification="" name="sendPredictionUsingBlueTooth" isSpecification="false">
+                            <UML:BehavioralFeature.parameter>
+                                <UML:Parameter xmi.id="XDE-15230A21-FAD5-4C19-BA27-5F4E8123D827" kind="in" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="predict" isSpecification="false"/>
+                            </UML:BehavioralFeature.parameter>
+                        </UML:Operation>
+                        <UML:Operation xmi.id="XDE-37AFABB6-61A2-4FCB-BA1A-16F6BCC46E4D" concurrency="sequential" isRoot="false" isLeaf="false" isAbstract="false" isQuery="false" ownerScope="instance" visibility="public" specification="" name="sendPredictionUsingWiFi" isSpecification="false">
+                            <UML:BehavioralFeature.parameter>
+                                <UML:Parameter xmi.id="XDE-94689D53-9186-4430-B08A-32B97003F77F" kind="in" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="predict" isSpecification="false"/>
+                            </UML:BehavioralFeature.parameter>
+                        </UML:Operation>
+                        <UML:Operation xmi.id="XDE-2A3CDC14-7D6F-41AC-957B-60849BAC4AE8" concurrency="sequential" isRoot="false" isLeaf="false" isAbstract="false" isQuery="false" ownerScope="instance" visibility="public" specification="" name="sendPredictionUsingGPRS" isSpecification="false">
+                            <UML:BehavioralFeature.parameter>
+                                <UML:Parameter xmi.id="XDE-0D2178C1-27C3-4AE9-8BF2-DF4AD1E2B039" kind="in" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="predict" isSpecification="false"/>
+                            </UML:BehavioralFeature.parameter>
+                        </UML:Operation>
+                    </UML:Classifier.feature>
+                    <UML:Namespace.ownedElement>
+                        <UML:StateMachine xmi.id="XDE-092DC08F-2B69-4C0B-A9D6-B50296761276" name="StateMachine1" isSpecification="false">
+                            <UML:StateMachine.top>
+                                <UML:CompositeState xmi.id="XDE-970F3B89-633C-4365-8C91-E0A0BAC2F43A" isConcurrent="false" name="TOP" isSpecification="false">
+                                    <UML:CompositeState.subvertex>
+                                        <UML:Pseudostate xmi.id="XDE-AA335506-6043-4C17-A269-E09A1DD2FECA" kind="initial" outgoing="XDE-9ABCB755-D363-4793-91F5-A48BBC150295" name="" isSpecification="false"/>
+                                        <UML:CompositeState xmi.id="XDE-DB519B91-826D-45C4-BB11-0AD115667912" isConcurrent="false" outgoing="XDE-18F20B8E-668E-40FE-9236-1845A148B10C XDE-556862F1-A044-4D72-AD77-4D25710C41F2 XDE-7F1727D6-9F46-4035-93EC-A70FFE654DBF" name="Idle" isSpecification="false"/>
+                                    </UML:CompositeState.subvertex>
+                                </UML:CompositeState>
+                            </UML:StateMachine.top>
+                            <UML:StateMachine.transitions>
+                                <UML:Transition xmi.id="XDE-7F1727D6-9F46-4035-93EC-A70FFE654DBF" source="XDE-DB519B91-826D-45C4-BB11-0AD115667912" target="XDE-DB519B91-826D-45C4-BB11-0AD115667912" name="" isSpecification="false">
+                                    <UML:Transition.effect>
+                                        <UML:UninterpretedAction xmi.id="XDE-40D6A1E2-EE68-4A74-94D0-0328E2EFD0A2" isAsynchronous="false" name="" isSpecification="false">
+                                            <UML:Action.script>
+                                                <UML:ActionExpression language="" body="received:=1"/>
+                                            </UML:Action.script>
+                                        </UML:UninterpretedAction>
+                                    </UML:Transition.effect>
+                                    <UML:Transition.trigger>
+                                        <UML:Event>
+                                            <UML:ModelElement.namespace>
+                                                <UML:Namespace>
+                                                    <UML:Namespace.ownedElement>
+                                                        <UML:CallEvent xmi.id="XDE-D8EB5097-4BF5-4FCD-B38F-2143F04EFEEB" operation="XDE-37AFABB6-61A2-4FCB-BA1A-16F6BCC46E4D" name="sendPredictionUsingWiFi" isSpecification="false"/>
+                                                    </UML:Namespace.ownedElement>
+                                                </UML:Namespace>
+                                            </UML:ModelElement.namespace>
+                                        </UML:Event>
+                                    </UML:Transition.trigger>
+                                </UML:Transition>
+                                <UML:Transition xmi.id="XDE-556862F1-A044-4D72-AD77-4D25710C41F2" source="XDE-DB519B91-826D-45C4-BB11-0AD115667912" target="XDE-DB519B91-826D-45C4-BB11-0AD115667912" name="" isSpecification="false">
+                                    <UML:Transition.effect>
+                                        <UML:UninterpretedAction xmi.id="XDE-9195DF11-5382-413F-AFB6-712373B2996F" isAsynchronous="false" name="" isSpecification="false">
+                                            <UML:Action.script>
+                                                <UML:ActionExpression language="" body="received:=1"/>
+                                            </UML:Action.script>
+                                        </UML:UninterpretedAction>
+                                    </UML:Transition.effect>
+                                    <UML:Transition.trigger>
+                                        <UML:Event>
+                                            <UML:ModelElement.namespace>
+                                                <UML:Namespace>
+                                                    <UML:Namespace.ownedElement>
+                                                        <UML:CallEvent xmi.id="XDE-C45338A9-824E-469B-9198-943FCC519FB1" operation="XDE-2A3CDC14-7D6F-41AC-957B-60849BAC4AE8" name="sendPredictionUsingGPRS" isSpecification="false"/>
+                                                    </UML:Namespace.ownedElement>
+                                                </UML:Namespace>
+                                            </UML:ModelElement.namespace>
+                                        </UML:Event>
+                                    </UML:Transition.trigger>
+                                </UML:Transition>
+                                <UML:Transition xmi.id="XDE-18F20B8E-668E-40FE-9236-1845A148B10C" source="XDE-DB519B91-826D-45C4-BB11-0AD115667912" target="XDE-DB519B91-826D-45C4-BB11-0AD115667912" name="" isSpecification="false">
+                                    <UML:Transition.effect>
+                                        <UML:UninterpretedAction xmi.id="XDE-933F1180-D642-4C7F-937B-A14928B0DBED" isAsynchronous="false" name="" isSpecification="false">
+                                            <UML:Action.script>
+                                                <UML:ActionExpression language="" body="received:=1"/>
+                                            </UML:Action.script>
+                                        </UML:UninterpretedAction>
+                                    </UML:Transition.effect>
+                                    <UML:Transition.trigger>
+                                        <UML:Event>
+                                            <UML:ModelElement.namespace>
+                                                <UML:Namespace>
+                                                    <UML:Namespace.ownedElement>
+                                                        <UML:CallEvent xmi.id="XDE-A6D67AB5-8FCD-48D4-A7C6-3CFC7AF62AB3" operation="XDE-7DFD36A8-D78F-486D-AB7E-8436EFB51EE7" name="sendPredictionUsingBlueTooth" isSpecification="false"/>
+                                                    </UML:Namespace.ownedElement>
+                                                </UML:Namespace>
+                                            </UML:ModelElement.namespace>
+                                        </UML:Event>
+                                    </UML:Transition.trigger>
+                                </UML:Transition>
+                                <UML:Transition xmi.id="XDE-9ABCB755-D363-4793-91F5-A48BBC150295" source="XDE-AA335506-6043-4C17-A269-E09A1DD2FECA" target="XDE-DB519B91-826D-45C4-BB11-0AD115667912" name="" isSpecification="false">
+                                    <UML:Transition.effect>
+                                        <UML:UninterpretedAction xmi.id="XDE-529A611B-A79D-4DE3-AE24-AF7D23B06858" isAsynchronous="false" name="" isSpecification="false">
+                                            <UML:Action.script>
+                                                <UML:ActionExpression language="" body="received:=0"/>
+                                            </UML:Action.script>
+                                        </UML:UninterpretedAction>
+                                    </UML:Transition.effect>
+                                </UML:Transition>
+                            </UML:StateMachine.transitions>
+                        </UML:StateMachine>
+                    </UML:Namespace.ownedElement>
+                </UML:Class>
+                <UML:Class xmi.id="XDE-2811F0FA-B385-455F-BA51-2D83EBD7AA5F" isActive="false" isAbstract="false" isLeaf="false" isRoot="false" visibility="public" name="FewestHopNode" isSpecification="false">
+                    <UML:Classifier.feature>
+                        <UML:Attribute xmi.id="XDE-BCE715BE-DB11-41C2-9B63-B19BDC5C48C7" changeability="changeable" targetScope="instance" ownerScope="instance" visibility="public" ordering="unordered" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="predict" isSpecification="false"/>
+                        <UML:Attribute xmi.id="XDE-700459B0-46F7-4747-90DE-044FEC13B4E7" changeability="changeable" targetScope="instance" ownerScope="instance" visibility="public" ordering="unordered" type="XDE-19BA6468-D153-4E03-9EAD-D9FEA2321750" name="received" isSpecification="false"/>
+                        <UML:Operation xmi.id="XDE-9260FB15-7A0A-49EF-B904-EF76E7B0EB9F" concurrency="sequential" isRoot="false" isLeaf="false" isAbstract="false" isQuery="false" ownerScope="instance" visibility="public" specification="" name="sendPredictionUsingBlueTooth" isSpecification="false">
+                            <UML:BehavioralFeature.parameter>
+                                <UML:Parameter xmi.id="XDE-EB53C416-163F-41A2-9251-4DB750D8153E" kind="in" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="predict" isSpecification="false"/>
+                            </UML:BehavioralFeature.parameter>
+                        </UML:Operation>
+                        <UML:Operation xmi.id="XDE-203AA3C3-490C-442D-BE86-BF6D259FF609" concurrency="sequential" isRoot="false" isLeaf="false" isAbstract="false" isQuery="false" ownerScope="instance" visibility="public" specification="" name="sendPredictionUsingWiFi" isSpecification="false">
+                            <UML:BehavioralFeature.parameter>
+                                <UML:Parameter xmi.id="XDE-216C0685-EE98-4021-93EE-7C91A26CF1C2" kind="in" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="predict" isSpecification="false"/>
+                            </UML:BehavioralFeature.parameter>
+                        </UML:Operation>
+                        <UML:Operation xmi.id="XDE-61ADAAC0-442A-4E3B-862A-22A065218E7F" concurrency="sequential" isRoot="false" isLeaf="false" isAbstract="false" isQuery="false" ownerScope="instance" visibility="public" specification="" name="sendPredictionUsingGPRS" isSpecification="false">
+                            <UML:BehavioralFeature.parameter>
+                                <UML:Parameter xmi.id="XDE-A0C433AA-C1D7-42A5-8691-9BBD1E766BC2" kind="in" type="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="predict" isSpecification="false"/>
+                            </UML:BehavioralFeature.parameter>
+                        </UML:Operation>
+                    </UML:Classifier.feature>
+                    <UML:Namespace.ownedElement>
+                        <UML:StateMachine xmi.id="XDE-0BEF9622-0825-43FC-A3F1-688E231F3110" name="StateMachine1" isSpecification="false">
+                            <UML:StateMachine.top>
+                                <UML:CompositeState xmi.id="XDE-ADF885E6-7326-4E49-A3AA-C16756F40FD9" isConcurrent="false" name="TOP" isSpecification="false">
+                                    <UML:CompositeState.subvertex>
+                                        <UML:Pseudostate xmi.id="XDE-7B7B9D76-727F-42F9-A975-8003DF31932C" kind="initial" outgoing="XDE-24F3E514-F7A2-4667-89C1-D0D906AA60E3" name="" isSpecification="false"/>
+                                        <UML:CompositeState xmi.id="XDE-19BA246E-5165-442E-9700-3A3DC7279521" isConcurrent="false" outgoing="XDE-81CB3459-793C-4E21-B43B-A6002C1BF5F0 XDE-B7D2DB44-A18B-44EC-9A8E-B12A7771E5AA XDE-8D6C0D63-403A-4EBF-96AB-AC4F3340D336" name="Idle" isSpecification="false"/>
+                                    </UML:CompositeState.subvertex>
+                                </UML:CompositeState>
+                            </UML:StateMachine.top>
+                            <UML:StateMachine.transitions>
+                                <UML:Transition xmi.id="XDE-8D6C0D63-403A-4EBF-96AB-AC4F3340D336" source="XDE-19BA246E-5165-442E-9700-3A3DC7279521" target="XDE-19BA246E-5165-442E-9700-3A3DC7279521" name="" isSpecification="false">
+                                    <UML:Transition.effect>
+                                        <UML:UninterpretedAction xmi.id="XDE-85A946DD-5F29-46C1-BE33-154D11C66A2B" isAsynchronous="false" name="" isSpecification="false">
+                                            <UML:Action.script>
+                                                <UML:ActionExpression language="" body="received:=1"/>
+                                            </UML:Action.script>
+                                        </UML:UninterpretedAction>
+                                    </UML:Transition.effect>
+                                    <UML:Transition.trigger>
+                                        <UML:Event>
+                                            <UML:ModelElement.namespace>
+                                                <UML:Namespace>
+                                                    <UML:Namespace.ownedElement>
+                                                        <UML:CallEvent xmi.id="XDE-9E179DF3-A954-4633-A8BD-566DFEB226D1" operation="XDE-203AA3C3-490C-442D-BE86-BF6D259FF609" name="sendPredictionUsingWiFi" isSpecification="false"/>
+                                                    </UML:Namespace.ownedElement>
+                                                </UML:Namespace>
+                                            </UML:ModelElement.namespace>
+                                        </UML:Event>
+                                    </UML:Transition.trigger>
+                                </UML:Transition>
+                                <UML:Transition xmi.id="XDE-B7D2DB44-A18B-44EC-9A8E-B12A7771E5AA" source="XDE-19BA246E-5165-442E-9700-3A3DC7279521" target="XDE-19BA246E-5165-442E-9700-3A3DC7279521" name="" isSpecification="false">
+                                    <UML:Transition.effect>
+                                        <UML:UninterpretedAction xmi.id="XDE-8F57CA3E-42CA-4751-99FE-3A689D94B5EE" isAsynchronous="false" name="" isSpecification="false">
+                                            <UML:Action.script>
+                                                <UML:ActionExpression language="" body="received:=1"/>
+                                            </UML:Action.script>
+                                        </UML:UninterpretedAction>
+                                    </UML:Transition.effect>
+                                    <UML:Transition.trigger>
+                                        <UML:Event>
+                                            <UML:ModelElement.namespace>
+                                                <UML:Namespace>
+                                                    <UML:Namespace.ownedElement>
+                                                        <UML:CallEvent xmi.id="XDE-7F02E55A-673C-4D32-8320-823ECE80BCB8" operation="XDE-61ADAAC0-442A-4E3B-862A-22A065218E7F" name="sendPredictionUsingGPRS" isSpecification="false"/>
+                                                    </UML:Namespace.ownedElement>
+                                                </UML:Namespace>
+                                            </UML:ModelElement.namespace>
+                                        </UML:Event>
+                                    </UML:Transition.trigger>
+                                </UML:Transition>
+                                <UML:Transition xmi.id="XDE-81CB3459-793C-4E21-B43B-A6002C1BF5F0" source="XDE-19BA246E-5165-442E-9700-3A3DC7279521" target="XDE-19BA246E-5165-442E-9700-3A3DC7279521" name="" isSpecification="false">
+                                    <UML:Transition.effect>
+                                        <UML:UninterpretedAction xmi.id="XDE-BA438DCB-0A6B-4162-B076-6AEDAED526D8" isAsynchronous="false" name="" isSpecification="false">
+                                            <UML:Action.script>
+                                                <UML:ActionExpression language="" body="received:=1"/>
+                                            </UML:Action.script>
+                                        </UML:UninterpretedAction>
+                                    </UML:Transition.effect>
+                                    <UML:Transition.trigger>
+                                        <UML:Event>
+                                            <UML:ModelElement.namespace>
+                                                <UML:Namespace>
+                                                    <UML:Namespace.ownedElement>
+                                                        <UML:CallEvent xmi.id="XDE-96774C37-B864-4AF9-8409-B80280736BC4" operation="XDE-9260FB15-7A0A-49EF-B904-EF76E7B0EB9F" name="sendPredictionUsingBlueTooth" isSpecification="false"/>
+                                                    </UML:Namespace.ownedElement>
+                                                </UML:Namespace>
+                                            </UML:ModelElement.namespace>
+                                        </UML:Event>
+                                    </UML:Transition.trigger>
+                                </UML:Transition>
+                                <UML:Transition xmi.id="XDE-24F3E514-F7A2-4667-89C1-D0D906AA60E3" source="XDE-7B7B9D76-727F-42F9-A975-8003DF31932C" target="XDE-19BA246E-5165-442E-9700-3A3DC7279521" name="" isSpecification="false">
+                                    <UML:Transition.effect>
+                                        <UML:UninterpretedAction xmi.id="XDE-4B92BA45-4AD7-47B3-822E-DFB12B5C853B" isAsynchronous="false" name="" isSpecification="false">
+                                            <UML:Action.script>
+                                                <UML:ActionExpression language="" body="received:=0"/>
+                                            </UML:Action.script>
+                                        </UML:UninterpretedAction>
+                                    </UML:Transition.effect>
+                                </UML:Transition>
+                            </UML:StateMachine.transitions>
+                        </UML:StateMachine>
+                    </UML:Namespace.ownedElement>
+                </UML:Class>
+            </UML:Namespace.ownedElement>
+        </UML:Model>
+        <UML:DataType xmi.id="XDE-96846635-54E5-41FC-A6BF-776DF2241664" name="int"/>
+        <UML:DataType xmi.id="XDE-19BA6468-D153-4E03-9EAD-D9FEA2321750" name="bool"/>
+        <UML:TaggedValue xmi.id="XDE-61A2794A-FFB8-4AE4-A24F-6691C4027206" name="persistence">
+            <UML:TaggedValue.dataValue>persistent</UML:TaggedValue.dataValue>
+            <UML:TaggedValue.modelElement>
+                <UML:ModelElement xmi.idref="XDE-9072D370-7AD7-44F9-8FD6-52AB8368E57E"/>
+            </UML:TaggedValue.modelElement>
+        </UML:TaggedValue>
+        <UML:TaggedValue xmi.id="XDE-B5556C7F-39C3-47C7-B806-BB1795D37269" name="persistence">
+            <UML:TaggedValue.dataValue>persistent</UML:TaggedValue.dataValue>
+            <UML:TaggedValue.modelElement>
+                <UML:ModelElement xmi.idref="XDE-BCE715BE-DB11-41C2-9B63-B19BDC5C48C7"/>
+            </UML:TaggedValue.modelElement>
+        </UML:TaggedValue>
+        <UML:TaggedValue xmi.id="XDE-4071886A-8E11-4C7C-B35A-F80D6E035142" name="persistence">
+            <UML:TaggedValue.dataValue>persistent</UML:TaggedValue.dataValue>
+            <UML:TaggedValue.modelElement>
+                <UML:ModelElement xmi.idref="XDE-191074A0-C17E-48E3-A0D3-6DECB0B63434"/>
+            </UML:TaggedValue.modelElement>
+        </UML:TaggedValue>
+        <UML:TaggedValue xmi.id="XDE-7F4E5E6B-0AE5-45DB-BCBF-EBAF581DD595" name="persistence">
+            <UML:TaggedValue.dataValue>persistent</UML:TaggedValue.dataValue>
+            <UML:TaggedValue.modelElement>
+                <UML:ModelElement xmi.idref="XDE-DE98000F-C01D-4E20-A6CB-F95A8631CF0F"/>
+            </UML:TaggedValue.modelElement>
+        </UML:TaggedValue>
+        <UML:TaggedValue xmi.id="XDE-2FF55532-3DD3-48A8-893E-81366500334A" name="persistence">
+            <UML:TaggedValue.dataValue>persistent</UML:TaggedValue.dataValue>
+            <UML:TaggedValue.modelElement>
+                <UML:ModelElement xmi.idref="XDE-2C52EB68-0EB1-43FC-B556-45BDAEA40C8E"/>
+            </UML:TaggedValue.modelElement>
+        </UML:TaggedValue>
+        <UML:TaggedValue xmi.id="XDE-04432B7D-9705-48D2-AB02-4D8C48955EA0" name="persistence">
+            <UML:TaggedValue.dataValue>persistent</UML:TaggedValue.dataValue>
+            <UML:TaggedValue.modelElement>
+                <UML:ModelElement xmi.idref="XDE-2109D770-486B-4FAD-9F5F-B672E0C49CE6"/>
+            </UML:TaggedValue.modelElement>
+        </UML:TaggedValue>
+        <UML:TaggedValue xmi.id="XDE-553D2700-78A2-40CA-8E3B-2CA187F20119" name="persistence">
+            <UML:TaggedValue.dataValue>persistent</UML:TaggedValue.dataValue>
+            <UML:TaggedValue.modelElement>
+                <UML:ModelElement xmi.idref="XDE-DB15EF47-EC22-4EEA-87DA-EF003857F712"/>
+            </UML:TaggedValue.modelElement>
+        </UML:TaggedValue>
+        <UML:TaggedValue xmi.id="XDE-8ECAB94C-946A-441C-B79F-35CB8842BA84" name="persistence">
+            <UML:TaggedValue.dataValue>persistent</UML:TaggedValue.dataValue>
+            <UML:TaggedValue.modelElement>
+                <UML:ModelElement xmi.idref="XDE-2811F0FA-B385-455F-BA51-2D83EBD7AA5F"/>
+            </UML:TaggedValue.modelElement>
+        </UML:TaggedValue>
+        <UML:TaggedValue xmi.id="XDE-DD20722D-1A7A-4988-9008-31FF3CC890C0" name="persistence">
+            <UML:TaggedValue.dataValue>persistent</UML:TaggedValue.dataValue>
+            <UML:TaggedValue.modelElement>
+                <UML:ModelElement xmi.idref="XDE-FAE8420F-C293-4206-B477-95B6CFE7D46D"/>
+            </UML:TaggedValue.modelElement>
+        </UML:TaggedValue>
+        <UML:TaggedValue xmi.id="XDE-D28A51B2-0B0B-43BA-968A-415650D686BB" name="persistence">
+            <UML:TaggedValue.dataValue>persistent</UML:TaggedValue.dataValue>
+            <UML:TaggedValue.modelElement>
+                <UML:ModelElement xmi.idref="XDE-7AD01A65-50DA-4A07-9B42-911822CD8472"/>
+            </UML:TaggedValue.modelElement>
+        </UML:TaggedValue>
+        <UML:TaggedValue xmi.id="XDE-EFB34B86-9E93-4E69-BCF6-F33E8175F142" name="persistence">
+            <UML:TaggedValue.dataValue>persistent</UML:TaggedValue.dataValue>
+            <UML:TaggedValue.modelElement>
+                <UML:ModelElement xmi.idref="XDE-D669A8FE-1F53-410F-B181-0827434E636A"/>
+            </UML:TaggedValue.modelElement>
+        </UML:TaggedValue>
+        <UML:TaggedValue xmi.id="XDE-338AB9A1-418D-47C2-B1D8-12EE6FBDAC13" name="persistence">
+            <UML:TaggedValue.dataValue>persistent</UML:TaggedValue.dataValue>
+            <UML:TaggedValue.modelElement>
+                <UML:ModelElement xmi.idref="XDE-530AF5F1-9B35-4CF6-B19D-8216E818822F"/>
+            </UML:TaggedValue.modelElement>
+        </UML:TaggedValue>
+        <UML:TaggedValue xmi.id="XDE-E14D6D21-225B-47FF-BE63-71678128C87C" name="persistence">
+            <UML:TaggedValue.dataValue>persistent</UML:TaggedValue.dataValue>
+            <UML:TaggedValue.modelElement>
+                <UML:ModelElement xmi.idref="XDE-CAB33A38-4C97-4A55-9116-EEC7A91DD9F1"/>
+            </UML:TaggedValue.modelElement>
+        </UML:TaggedValue>
+        <UML:TaggedValue xmi.id="XDE-0A1C334E-809D-4670-A9DE-0BC8FF5B816F" name="persistence">
+            <UML:TaggedValue.dataValue>persistent</UML:TaggedValue.dataValue>
+            <UML:TaggedValue.modelElement>
+                <UML:ModelElement xmi.idref="XDE-239D26BF-7D8D-4452-B05C-50B61F59CF3C"/>
+            </UML:TaggedValue.modelElement>
+        </UML:TaggedValue>
+        <UML:TaggedValue xmi.id="XDE-0F3729FD-712C-4506-85F5-923AD46E343B" name="persistence">
+            <UML:TaggedValue.dataValue>persistent</UML:TaggedValue.dataValue>
+            <UML:TaggedValue.modelElement>
+                <UML:ModelElement xmi.idref="XDE-34A1A642-BEFC-4C29-94E0-E54E0847E936"/>
+            </UML:TaggedValue.modelElement>
+        </UML:TaggedValue>
+        <UML:TaggedValue xmi.id="XDE-E63E3310-BA98-434F-A2DA-C9C8E2A41847" name="persistence">
+            <UML:TaggedValue.dataValue>persistent</UML:TaggedValue.dataValue>
+            <UML:TaggedValue.modelElement>
+                <UML:ModelElement xmi.idref="XDE-FE0ECB31-564B-4338-8791-13742270672B"/>
+            </UML:TaggedValue.modelElement>
+        </UML:TaggedValue>
+        <UML:TaggedValue xmi.id="XDE-642658D0-18B6-4B9C-8948-54A2D3C723C9" name="persistence">
+            <UML:TaggedValue.dataValue>persistent</UML:TaggedValue.dataValue>
+            <UML:TaggedValue.modelElement>
+                <UML:ModelElement xmi.idref="XDE-0E131E02-2131-4BB4-9F44-D1BE91ADD616"/>
+            </UML:TaggedValue.modelElement>
+        </UML:TaggedValue>
+        <UML:TaggedValue xmi.id="XDE-E85AF599-FDBA-43EA-9A48-A69D9D11D7EF" name="persistence">
+            <UML:TaggedValue.dataValue>persistent</UML:TaggedValue.dataValue>
+            <UML:TaggedValue.modelElement>
+                <UML:ModelElement xmi.idref="XDE-ED9F8371-905F-4CE0-8916-ADC7D9B17EDE"/>
+            </UML:TaggedValue.modelElement>
+        </UML:TaggedValue>
+        <UML:TaggedValue xmi.id="XDE-EFFD71E1-B60B-4FFB-9C82-B4591B9CF3A3" name="persistence">
+            <UML:TaggedValue.dataValue>persistent</UML:TaggedValue.dataValue>
+            <UML:TaggedValue.modelElement>
+                <UML:ModelElement xmi.idref="XDE-D14BF0DA-20D5-43C6-8DE1-714E1B1AF389"/>
+            </UML:TaggedValue.modelElement>
+        </UML:TaggedValue>
+        <UML:TaggedValue xmi.id="XDE-5140EB5E-600D-40F0-81AF-478E8195B743" name="persistence">
+            <UML:TaggedValue.dataValue>persistent</UML:TaggedValue.dataValue>
+            <UML:TaggedValue.modelElement>
+                <UML:ModelElement xmi.idref="XDE-C99B7FA8-6BED-4179-ACDD-913FFAAFB81E"/>
+            </UML:TaggedValue.modelElement>
+        </UML:TaggedValue>
+        <UML:TaggedValue xmi.id="XDE-DF00BC88-6A6B-4A39-8FEB-28D6EE1B1A47" name="persistence">
+            <UML:TaggedValue.dataValue>persistent</UML:TaggedValue.dataValue>
+            <UML:TaggedValue.modelElement>
+                <UML:ModelElement xmi.idref="XDE-52DD71E9-EC09-4167-A8D3-55625DB3573C"/>
+            </UML:TaggedValue.modelElement>
+        </UML:TaggedValue>
+        <UML:TaggedValue xmi.id="XDE-1D07A6E7-AE03-4AFA-AF47-721DDF7F6A44" name="persistence">
+            <UML:TaggedValue.dataValue>persistent</UML:TaggedValue.dataValue>
+            <UML:TaggedValue.modelElement>
+                <UML:ModelElement xmi.idref="XDE-89B08C8F-2313-47EE-8DF1-F1F1D11D2AA0"/>
+            </UML:TaggedValue.modelElement>
+        </UML:TaggedValue>
+        <UML:TaggedValue xmi.id="XDE-66375C46-C5E5-438E-81CF-8E7E23574326" name="persistence">
+            <UML:TaggedValue.dataValue>persistent</UML:TaggedValue.dataValue>
+            <UML:TaggedValue.modelElement>
+                <UML:ModelElement xmi.idref="XDE-04F8C407-221D-4B44-93FD-2EB681D85B3B"/>
+            </UML:TaggedValue.modelElement>
+        </UML:TaggedValue>
+        <UML:TaggedValue xmi.id="XDE-D4BDAD92-098A-4448-8418-60F8593B327B" name="persistence">
+            <UML:TaggedValue.dataValue>persistent</UML:TaggedValue.dataValue>
+            <UML:TaggedValue.modelElement>
+                <UML:ModelElement xmi.idref="XDE-4AAF834C-74A2-403B-B167-D56DA5CB3CAE"/>
+            </UML:TaggedValue.modelElement>
+        </UML:TaggedValue>
+        <UML:TaggedValue xmi.id="XDE-9A395A6B-975B-4CF3-B555-DF607FA8EDC8" name="persistence">
+            <UML:TaggedValue.dataValue>persistent</UML:TaggedValue.dataValue>
+            <UML:TaggedValue.modelElement>
+                <UML:ModelElement xmi.idref="XDE-9F5BCF4C-50EA-41A0-A2CE-88F337C50512"/>
+            </UML:TaggedValue.modelElement>
+        </UML:TaggedValue>
+        <UML:TaggedValue xmi.id="XDE-674757FA-7489-4B39-AFEE-1024522032FD" name="persistence">
+            <UML:TaggedValue.dataValue>persistent</UML:TaggedValue.dataValue>
+            <UML:TaggedValue.modelElement>
+                <UML:ModelElement xmi.idref="XDE-700459B0-46F7-4747-90DE-044FEC13B4E7"/>
+            </UML:TaggedValue.modelElement>
+        </UML:TaggedValue>
+    </XMI.content>
+</XMI>
+=END========================

Added: branches/uml-merge/tests/_orchid-avida-marple/expected/data/average.dat
===================================================================
--- branches/uml-merge/tests/_orchid-avida-marple/expected/data/average.dat	                        (rev 0)
+++ branches/uml-merge/tests/_orchid-avida-marple/expected/data/average.dat	2008-07-01 19:45:11 UTC (rev 2695)
@@ -0,0 +1,20 @@
+# Avida Average Data
+# Tue Jul  1 15:45:48 2008
+#  1: Update
+#  2: Merit
+#  3: Gestation Time
+#  4: Fitness
+#  5: Repro Rate?
+#  6: Size
+#  7: Copied Size
+#  8: Executed Size
+#  9: Abundance
+# 10: Proportion of organisms that gave birth in this update
+# 11: Proportion of Breed True Organisms
+# 12: Genotype Depth
+# 13: Generation
+# 14: Neutral Metric
+# 15: Lineage Label
+# 16: True Replication Rate (based on births/update, time-averaged)
+
+0 98.000000 98.000000 0.000000 0.000000 98.000000 98.000000 98.000000 1.000000 1.000000 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 

Added: branches/uml-merge/tests/_orchid-avida-marple/expected/data/count.dat
===================================================================
--- branches/uml-merge/tests/_orchid-avida-marple/expected/data/count.dat	                        (rev 0)
+++ branches/uml-merge/tests/_orchid-avida-marple/expected/data/count.dat	2008-07-01 19:45:11 UTC (rev 2695)
@@ -0,0 +1,20 @@
+# Avida count data
+# Tue Jul  1 15:45:48 2008
+#  1: update
+#  2: number of insts executed this update
+#  3: number of organisms
+#  4: number of different genotypes
+#  5: number of different threshold genotypes
+#  6: number of different species
+#  7: number of different threshold species
+#  8: number of different lineages
+#  9: number of births in this update
+# 10: number of deaths in this update
+# 11: number of breed true
+# 12: number of breed true organisms?
+# 13: number of no-birth organisms
+# 14: number of single-threaded organisms
+# 15: number of multi-threaded organisms
+# 16: number of modified organisms
+
+0 30 1 1 1 0 0 0 1 0 1 1 1 1 0 0 

Added: branches/uml-merge/tests/_orchid-avida-marple/expected/data/dominant.dat
===================================================================
--- branches/uml-merge/tests/_orchid-avida-marple/expected/data/dominant.dat	                        (rev 0)
+++ branches/uml-merge/tests/_orchid-avida-marple/expected/data/dominant.dat	2008-07-01 19:45:11 UTC (rev 2695)
@@ -0,0 +1,20 @@
+# Avida Dominant Data
+# Tue Jul  1 15:45:48 2008
+#  1: Update
+#  2: Average Merit of the Dominant Genotype
+#  3: Average Gestation Time of the Dominant Genotype
+#  4: Average Fitness of the Dominant Genotype
+#  5: Repro Rate?
+#  6: Size of Dominant Genotype
+#  7: Copied Size of Dominant Genotype
+#  8: Executed Size of Dominant Genotype
+#  9: Abundance of Dominant Genotype
+# 10: Number of Births
+# 11: Number of Dominant Breed True?
+# 12: Dominant Gene Depth
+# 13: Dominant Breed In
+# 14: Max Fitness?
+# 15: Genotype ID of Dominant Genotype
+# 16: Name of the Dominant Genotype
+
+0 0.000000 0.000000 0.000000 0.000000 98 0.000000 0.000000 1 0 0 0 0 0.000000 1 098-aaaaa 

Added: branches/uml-merge/tests/_orchid-avida-marple/expected/data/property.dat
===================================================================
--- branches/uml-merge/tests/_orchid-avida-marple/expected/data/property.dat	                        (rev 0)
+++ branches/uml-merge/tests/_orchid-avida-marple/expected/data/property.dat	2008-07-01 19:45:11 UTC (rev 2695)
@@ -0,0 +1,48 @@
+# Avida uml properties
+
+# Tue Jul  1 15:45:48 2008
+#  1: update
+#  2: Merit
+#  3: average number of propositions created per organism
+#  4: average number of successful properties per organism
+#  5: total number of properties that passed
+#  6: total number of properties that failed
+#  7: total number of suppressed properties
+#  8: total number of properties
+#  9: absence properties that passed
+# 10: absence properties that failed
+# 11: total number of absence properties
+# 12: universal properties that passed
+# 13: universal properties that failed
+# 14: total number of universal properties
+# 15: existence properties that passed
+# 16: existence properties that failed
+# 17: total number of existence properties
+# 18: precedence properties that passed
+# 19: precedence properties that failed
+# 20: total number of precedence properties
+# 21: response properties that passed
+# 22: response properties that failed
+# 23: total number of response properties
+
+0 98.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+1 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+2 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+3 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+4 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+5 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+6 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+7 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+8 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+9 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+10 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+11 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+12 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+13 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+14 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
+15 91.6471 0 0 0 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+16 91.7 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 
+17 92.96 0 1 0 2 2 2 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 
+18 93.5 0 1 0 3 7 3 0 1 1 0 1 1 0 1 1 0 0 0 0 0 0 
+19 103.125 0 1 0 3 7 3 0 1 1 0 1 1 0 1 1 0 0 0 0 0 0 
+20 120.75 0 1 0 5 13 5 0 1 1 0 2 2 0 2 2 0 0 0 0 0 0 

Added: branches/uml-merge/tests/_orchid-avida-marple/expected/data/resource.dat
===================================================================
--- branches/uml-merge/tests/_orchid-avida-marple/expected/data/resource.dat	                        (rev 0)
+++ branches/uml-merge/tests/_orchid-avida-marple/expected/data/resource.dat	2008-07-01 19:45:11 UTC (rev 2695)
@@ -0,0 +1,7 @@
+# Avida resource data
+# Tue Jul  1 15:45:48 2008
+# First column gives the current update, all further columns give the quantity
+# of the particular resource at that update.
+#  1: Update
+
+0 

Added: branches/uml-merge/tests/_orchid-avida-marple/expected/data/stats.dat
===================================================================
--- branches/uml-merge/tests/_orchid-avida-marple/expected/data/stats.dat	                        (rev 0)
+++ branches/uml-merge/tests/_orchid-avida-marple/expected/data/stats.dat	2008-07-01 19:45:11 UTC (rev 2695)
@@ -0,0 +1,16 @@
+# Generic Statistics Data
+# Tue Jul  1 15:45:48 2008
+#  1: update
+#  2: average inferiority (energy)
+#  3: ave probability of any mutations in genome
+#  4: probability of any mutations in dom genome
+#  5: log(average fidelity)
+#  6: log(dominant fidelity)
+#  7: change in number of genotypes
+#  8: genotypic entropy
+#  9: species entropy
+# 10: depth of most reacent coalescence
+# 11: Total number of resamplings this generation
+# 12: Total number of organisms that failed to resample this generation
+
+0 0.000000 0.549233 0.549233 0.796804 0.796804 1 0.000000 0.000000 0 0 0 

Added: branches/uml-merge/tests/_orchid-avida-marple/expected/data/tasks.dat
===================================================================
--- branches/uml-merge/tests/_orchid-avida-marple/expected/data/tasks.dat	                        (rev 0)
+++ branches/uml-merge/tests/_orchid-avida-marple/expected/data/tasks.dat	2008-07-01 19:45:11 UTC (rev 2695)
@@ -0,0 +1,10 @@
+# Avida tasks data
+# Tue Jul  1 15:45:48 2008
+# First column gives the current update, next columns give the number
+# of organisms that have the particular task as a component of their merit
+#  1: Update
+#  2: Check Properties
+
+0 0 
+10 0 
+20 7 

Added: branches/uml-merge/tests/_orchid-avida-marple/expected/data/time.dat
===================================================================
--- branches/uml-merge/tests/_orchid-avida-marple/expected/data/time.dat	                        (rev 0)
+++ branches/uml-merge/tests/_orchid-avida-marple/expected/data/time.dat	2008-07-01 19:45:11 UTC (rev 2695)
@@ -0,0 +1,8 @@
+# Avida time data
+# Tue Jul  1 15:45:48 2008
+#  1: update
+#  2: avida time
+#  3: average generation
+#  4: num_executed?
+
+0 0.000000 0.000000 30 

Added: branches/uml-merge/tests/_orchid-avida-marple/expected/tmp-property.pr
===================================================================
--- branches/uml-merge/tests/_orchid-avida-marple/expected/tmp-property.pr	                        (rev 0)
+++ branches/uml-merge/tests/_orchid-avida-marple/expected/tmp-property.pr	2008-07-01 19:45:11 UTC (rev 2695)
@@ -0,0 +1,459 @@
+#define min(x,y) (x<y->x:y)
+#define max(x,y) (x>y->x:y)
+chan wait=[1] of {int,mtype};
+mtype={
+        getSpeed, setSpeed, 
+        sendPredictionUsingBlueTooth, sendPredictionUsingGPRS, 
+        sendPredictionUsingWiFi, ACK, 
+        setDepth, setPrediction, 
+        setUpstreamDepth, setUpstreamSpeed, 
+        getDepth
+};
+typedef Timer_T {
+short propTimer=-1;
+        }
+Timer_T Timer_V;
+
+typedef DigiCamSensor_T {
+        bool timerwait;
+        int speed;
+
+        }
+DigiCamSensor_T DigiCamSensor_V;
+
+chan DigiCamSensor_q=[5] of {mtype};
+chan DigiCamSensor_C=[0] of {bit};
+
+typedef FewestHopNode_T {
+        bool timerwait;
+        int predict;
+        bool received;
+
+        }
+FewestHopNode_T FewestHopNode_V;
+
+chan FewestHopNode_q=[5] of {mtype};
+chan FewestHopNode_C=[0] of {bit};
+chan FewestHopNode_sendPredictionUsingBlueTooth_p1=[5] of {int};
+chan FewestHopNode_sendPredictionUsingGPRS_p1=[5] of {int};
+chan FewestHopNode_sendPredictionUsingWiFi_p1=[5] of {int};
+
+typedef Node_T {
+        bool timerwait;
+        int CPUSpeed;
+        int currentBattery;
+        int pointDepth;
+        int pointSpeed;
+        int predict;
+        int upDepth;
+        int upSpeed;
+
+        }
+Node_T Node_V;
+
+chan Node_q=[5] of {mtype};
+chan Node_C=[0] of {bit};
+chan Node_setDepth_p1=[5] of {int};
+chan Node_setPrediction_p1=[5] of {int};
+chan Node_setSpeed_p1=[5] of {int};
+chan Node_setUpstreamDepth_p1=[5] of {int};
+chan Node_setUpstreamSpeed_p1=[5] of {int};
+
+typedef PressureSensor_T {
+        bool timerwait;
+        int depth;
+
+        }
+PressureSensor_T PressureSensor_V;
+
+chan PressureSensor_q=[5] of {mtype};
+chan PressureSensor_C=[0] of {bit};
+
+typedef ShortestHopNode_T {
+        bool timerwait;
+        int predict;
+        bool received;
+
+        }
+ShortestHopNode_T ShortestHopNode_V;
+
+chan ShortestHopNode_q=[5] of {mtype};
+chan ShortestHopNode_C=[0] of {bit};
+chan ShortestHopNode_sendPredictionUsingBlueTooth_p1=[5] of {int};
+chan ShortestHopNode_sendPredictionUsingGPRS_p1=[5] of {int};
+chan ShortestHopNode_sendPredictionUsingWiFi_p1=[5] of {int};
+
+typedef UpstreamNode_T {
+        bool timerwait;
+        int depth;
+        int speed;
+
+        }
+UpstreamNode_T UpstreamNode_V;
+
+chan UpstreamNode_q=[5] of {mtype};
+chan UpstreamNode_C=[0] of {bit};
+active proctype DigiCamSensor()
+{
+atomic{
+mtype m;
+
+/*Init state*/
+        goto  Idle; skip;};
+/* State Idle */
+Idle:         atomic{skip; printf("in state DigiCamSensor.Idle\n");
+        }
+
+        Idle_G:
+        if
+        :: atomic{DigiCamSensor_q?getSpeed -> 
+           printf ("Transition to DigiCamSensor.State1 (evt:getSpeed()) \n");goto State1; skip;}
+        fi;
+/* State State1 */
+State1:       atomic{skip; printf("in state DigiCamSensor.State1\n");
+        }
+
+        State1_G:
+        if
+        :: atomic{1 -> 
+           DigiCamSensor_V.speed=50;
+           printf ("Transition to DigiCamSensor.State2 (/speed:=50) \n");goto State2; skip;}
+        fi;
+/* State State2 */
+State2:       atomic{skip; printf("in state DigiCamSensor.State2\n");
+        }
+
+        State2_G:
+        if
+        :: atomic{1 -> 
+   atomic{ Node_setSpeed_p1!DigiCamSensor_V.speed; Node_q!setSpeed;};
+           printf ("Transition to DigiCamSensor.Idle (^Node.setSpeed(speed)) \n");goto Idle; skip;}
+        fi;
+exit:      skip
+}
+active proctype FewestHopNode()
+{
+atomic{
+mtype m;
+
+/*Init state*/
+/*Initial actions / messages */
+        FewestHopNode_V.received=0;
+        goto  Idle; skip;};
+/* State Idle */
+Idle:         atomic{skip; printf("in state FewestHopNode.Idle\n");
+        }
+
+        Idle_G:
+        if
+        :: atomic{FewestHopNode_q?sendPredictionUsingWiFi -> 
+                   FewestHopNode_sendPredictionUsingWiFi_p1?FewestHopNode_V.predict
+                   -> 
+           FewestHopNode_V.received=1;
+           printf ("Transition to FewestHopNode.Idle (evt:sendPredictionUsingWiFi(predict)/received:=1) \n");goto Idle; skip;}
+        :: atomic{FewestHopNode_q?sendPredictionUsingGPRS -> 
+                   FewestHopNode_sendPredictionUsingGPRS_p1?FewestHopNode_V.predict
+                   -> 
+           FewestHopNode_V.received=1;
+           printf ("Transition to FewestHopNode.Idle (evt:sendPredictionUsingGPRS(predict)/received:=1) \n");goto Idle; skip;}
+        :: atomic{FewestHopNode_q?sendPredictionUsingBlueTooth -> 
+                   FewestHopNode_sendPredictionUsingBlueTooth_p1?FewestHopNode_V.predict
+                   -> 
+           FewestHopNode_V.received=1;
+           printf ("Transition to FewestHopNode.Idle (evt:sendPredictionUsingBlueTooth(predict)/received:=1) \n");goto Idle; skip;}
+        fi;
+exit:      skip
+}
+active proctype Node()
+{
+atomic{
+mtype m;
+        Node_V.CPUSpeed = 0;
+        Node_V.pointDepth = 0;
+        Node_V.pointSpeed = 0;
+        Node_V.predict = 0;
+        Node_V.upDepth = 0;
+        Node_V.upSpeed = 0;
+/*Init state*/
+        goto  sds0; skip;};
+/* State sds0 */
+sds0:         atomic{skip; printf("in state Node.sds0\n");
+        }
+
+        sds0_G:
+        if
+        :: atomic{1 -> 
+           Node_V.CPUSpeed=100;
+           printf ("Transition to Node.sds2 (/CPUSpeed:=100) \n");goto sds2; skip;}
+        :: atomic{1 -> 
+   atomic{ ShortestHopNode_sendPredictionUsingWiFi_p1!Node_V.predict; ShortestHopNode_q!sendPredictionUsingWiFi;};
+           printf ("Transition to Node.sds2 (^ShortestHopNode.sendPredictionUsingWiFi(predict)) \n");goto sds2; skip;}
+        fi;
+/* State sds1 */
+sds1:         atomic{skip; printf("in state Node.sds1\n");
+        }
+
+        sds1_G:
+        if
+        :: atomic{1 -> 
+           UpstreamNode_q!getDepth;
+           printf ("Transition to Node.sds3 (^UpstreamNode.getDepth) \n");goto sds3; skip;}
+        fi;
+/* State sds10 */
+sds10:        atomic{skip; printf("in state Node.sds10\n");
+        }
+
+        sds10_G:
+        if
+        :: atomic{1 -> 
+           DigiCamSensor_q!getSpeed;
+           printf ("Transition to Node.sds12 (^DigiCamSensor.getSpeed) \n");goto sds12; skip;}
+        fi;
+/* State sds11 */
+sds11:        atomic{skip; printf("in state Node.sds11\n");
+        }
+
+        sds11_G:
+        if
+        :: atomic{1 -> 
+   atomic{ ShortestHopNode_sendPredictionUsingBlueTooth_p1!Node_V.predict; ShortestHopNode_q!sendPredictionUsingBlueTooth;};
+           printf ("Transition to Node.sds0 (^ShortestHopNode.sendPredictionUsingBlueTooth(predict)) \n");goto sds0; skip;}
+        fi;
+/* State sds12 */
+sds12:        atomic{skip; printf("in state Node.sds12\n");
+        }
+
+        sds12_G:
+        if
+        :: atomic{Node_q?setSpeed -> 
+                   Node_setSpeed_p1?Node_V.pointSpeed
+                   -> 
+           printf ("Transition to Node.sds1 (evt:setSpeed(pointSpeed)) \n");goto sds1; skip;}
+        fi;
+/* State sds2 */
+sds2:         atomic{skip; printf("in state Node.sds2\n");
+        }
+
+        sds2_G:
+        if
+        :: atomic{1 -> 
+           Node_V.CPUSpeed=200;
+           printf ("Transition to Node.sds4 (/CPUSpeed:=200) \n");goto sds4; skip;}
+        fi;
+/* State sds3 */
+sds3:         atomic{skip; printf("in state Node.sds3\n");
+        }
+
+        sds3_G:
+        if
+        :: atomic{Node_q?setUpstreamDepth -> 
+                   Node_setUpstreamDepth_p1?Node_V.upDepth
+                   -> 
+           printf ("Transition to Node.sds5 (evt:setUpstreamDepth(upDepth)) \n");goto sds5; skip;}
+        fi;
+/* State sds4 */
+sds4:         atomic{skip; printf("in state Node.sds4\n");
+        }
+
+        sds4_G:
+        if
+        :: atomic{1 -> 
+           Node_V.CPUSpeed=400;
+           printf ("Transition to Node.sds6 (/CPUSpeed:=400) \n");goto sds6; skip;}
+        fi;
+/* State sds5 */
+sds5:         atomic{skip; printf("in state Node.sds5\n");
+        }
+
+        sds5_G:
+        if
+        :: atomic{1 -> 
+           UpstreamNode_q!getSpeed;
+           printf ("Transition to Node.sds7 (^UpstreamNode.getSpeed) \n");goto sds7; skip;}
+        fi;
+/* State sds6 */
+sds6:         atomic{skip; printf("in state Node.sds6\n");
+        }
+
+        sds6_G:
+        if
+        :: atomic{1 -> 
+           PressureSensor_q!getDepth;
+           printf ("Transition to Node.sds8 (^PressureSensor.getDepth) \n");goto sds8; skip;}
+        fi;
+/* State sds7 */
+sds7:         atomic{skip; printf("in state Node.sds7\n");
+        }
+
+        sds7_G:
+        if
+        :: atomic{Node_q?setUpstreamSpeed -> 
+                   Node_setUpstreamSpeed_p1?Node_V.upSpeed
+                   -> 
+           printf ("Transition to Node.sds9 (evt:setUpstreamSpeed(upSpeed)) \n");goto sds9; skip;}
+        fi;
+/* State sds8 */
+sds8:         atomic{skip; printf("in state Node.sds8\n");
+        }
+
+        sds8_G:
+        if
+        :: atomic{Node_q?setDepth -> 
+                   Node_setDepth_p1?Node_V.pointDepth
+                   -> 
+           printf ("Transition to Node.sds10 (evt:setDepth(pointDepth)) \n");goto sds10; skip;}
+        fi;
+/* State sds9 */
+sds9:         atomic{skip; printf("in state Node.sds9\n");
+        }
+
+        sds9_G:
+        if
+        :: atomic{1 -> 
+           Node_V.predict=Node_V.pointDepth+Node_V.pointSpeed+Node_V.upDepth+Node_V.upSpeed;
+           printf ("Transition to Node.sds11 (/predict:=pointDepth+pointSpeed+upDepth+upSpeed) \n");goto sds11; skip;}
+        fi;
+exit:      skip
+}
+active proctype PressureSensor()
+{
+atomic{
+mtype m;
+
+/*Init state*/
+        goto  Idle; skip;};
+/* State Idle */
+Idle:         atomic{skip; printf("in state PressureSensor.Idle\n");
+        }
+
+        Idle_G:
+        if
+        :: atomic{PressureSensor_q?getDepth -> 
+           printf ("Transition to PressureSensor.State1 (evt:getDepth()) \n");goto State1; skip;}
+        fi;
+/* State State1 */
+State1:       atomic{skip; printf("in state PressureSensor.State1\n");
+        }
+
+        State1_G:
+        if
+        :: atomic{1 -> 
+           PressureSensor_V.depth=50;
+           printf ("Transition to PressureSensor.State2 (/depth:=50) \n");goto State2; skip;}
+        fi;
+/* State State2 */
+State2:       atomic{skip; printf("in state PressureSensor.State2\n");
+        }
+
+        State2_G:
+        if
+        :: atomic{1 -> 
+   atomic{ Node_setDepth_p1!PressureSensor_V.depth; Node_q!setDepth;};
+           printf ("Transition to PressureSensor.Idle (^Node.setDepth(depth)) \n");goto Idle; skip;}
+        fi;
+exit:      skip
+}
+active proctype ShortestHopNode()
+{
+atomic{
+mtype m;
+
+/*Init state*/
+/*Initial actions / messages */
+        ShortestHopNode_V.received=0;
+        goto  Idle; skip;};
+/* State Idle */
+Idle:         atomic{skip; printf("in state ShortestHopNode.Idle\n");
+        }
+
+        Idle_G:
+        if
+        :: atomic{ShortestHopNode_q?sendPredictionUsingWiFi -> 
+                   ShortestHopNode_sendPredictionUsingWiFi_p1?ShortestHopNode_V.predict
+                   -> 
+           ShortestHopNode_V.received=1;
+           printf ("Transition to ShortestHopNode.Idle (evt:sendPredictionUsingWiFi(predict)/received:=1) \n");goto Idle; skip;}
+        :: atomic{ShortestHopNode_q?sendPredictionUsingGPRS -> 
+                   ShortestHopNode_sendPredictionUsingGPRS_p1?ShortestHopNode_V.predict
+                   -> 
+           ShortestHopNode_V.received=1;
+           printf ("Transition to ShortestHopNode.Idle (evt:sendPredictionUsingGPRS(predict)/received:=1) \n");goto Idle; skip;}
+        :: atomic{ShortestHopNode_q?sendPredictionUsingBlueTooth -> 
+                   ShortestHopNode_sendPredictionUsingBlueTooth_p1?ShortestHopNode_V.predict
+                   -> 
+           ShortestHopNode_V.received=1;
+           printf ("Transition to ShortestHopNode.Idle (evt:sendPredictionUsingBlueTooth(predict)/received:=1) \n");goto Idle; skip;}
+        fi;
+exit:      skip
+}
+active proctype UpstreamNode()
+{
+atomic{
+mtype m;
+
+/*Init state*/
+        goto  Idle; skip;};
+/* State Idle */
+Idle:         atomic{skip; printf("in state UpstreamNode.Idle\n");
+        }
+
+        Idle_G:
+        if
+        :: atomic{UpstreamNode_q?getSpeed -> 
+           printf ("Transition to UpstreamNode.State3 (evt:getSpeed()) \n");goto State3; skip;}
+        :: atomic{UpstreamNode_q?getDepth -> 
+           printf ("Transition to UpstreamNode.State1 (evt:getDepth()) \n");goto State1; skip;}
+        fi;
+/* State State1 */
+State1:       atomic{skip; printf("in state UpstreamNode.State1\n");
+        }
+
+        State1_G:
+        if
+        :: atomic{1 -> 
+           UpstreamNode_V.depth=50;
+           printf ("Transition to UpstreamNode.State2 (/depth:=50) \n");goto State2; skip;}
+        fi;
+/* State State2 */
+State2:       atomic{skip; printf("in state UpstreamNode.State2\n");
+        }
+
+        State2_G:
+        if
+        :: atomic{1 -> 
+   atomic{ Node_setUpstreamDepth_p1!UpstreamNode_V.depth; Node_q!setUpstreamDepth;};
+           printf ("Transition to UpstreamNode.Idle (^Node.setUpstreamDepth(depth)) \n");goto Idle; skip;}
+        fi;
+/* State State3 */
+State3:       atomic{skip; printf("in state UpstreamNode.State3\n");
+        }
+
+        State3_G:
+        if
+        :: atomic{1 -> 
+           UpstreamNode_V.speed=55;
+           printf ("Transition to UpstreamNode.State4 (/speed:=55) \n");goto State4; skip;}
+        fi;
+/* State State4 */
+State4:       atomic{skip; printf("in state UpstreamNode.State4\n");
+        }
+
+        State4_G:
+        if
+        :: atomic{1 -> 
+   atomic{ Node_setUpstreamSpeed_p1!UpstreamNode_V.speed; Node_q!setUpstreamSpeed;};
+           printf ("Transition to UpstreamNode.Idle (^Node.setUpstreamSpeed(speed)) \n");goto Idle; skip;}
+        fi;
+exit:      skip
+}
+/* Universal property Node_V.CPUSpeed > 0*/
+#define p (Node_V.CPUSpeed > 0)
+never { /* ![]p */
+T0_init :    /* init */
+if 
+:: (1) -> goto T0_init 
+:: (!p) -> goto accept_all
+fi;
+accept_all :    /* 1 */
+skip 
+}

Added: branches/uml-merge/tests/_orchid-avida-marple/expected/tmp-witness.pr
===================================================================
--- branches/uml-merge/tests/_orchid-avida-marple/expected/tmp-witness.pr	                        (rev 0)
+++ branches/uml-merge/tests/_orchid-avida-marple/expected/tmp-witness.pr	2008-07-01 19:45:11 UTC (rev 2695)
@@ -0,0 +1,457 @@
+#define min(x,y) (x<y->x:y)
+#define max(x,y) (x>y->x:y)
+chan wait=[1] of {int,mtype};
+mtype={
+        getSpeed, setSpeed, 
+        sendPredictionUsingBlueTooth, sendPredictionUsingGPRS, 
+        sendPredictionUsingWiFi, ACK, 
+        setDepth, setPrediction, 
+        setUpstreamDepth, setUpstreamSpeed, 
+        getDepth
+};
+typedef Timer_T {
+short propTimer=-1;
+        }
+Timer_T Timer_V;
+
+typedef DigiCamSensor_T {
+        bool timerwait;
+        int speed;
+
+        }
+DigiCamSensor_T DigiCamSensor_V;
+
+chan DigiCamSensor_q=[5] of {mtype};
+chan DigiCamSensor_C=[0] of {bit};
+
+typedef FewestHopNode_T {
+        bool timerwait;
+        int predict;
+        bool received;
+
+        }
+FewestHopNode_T FewestHopNode_V;
+
+chan FewestHopNode_q=[5] of {mtype};
+chan FewestHopNode_C=[0] of {bit};
+chan FewestHopNode_sendPredictionUsingBlueTooth_p1=[5] of {int};
+chan FewestHopNode_sendPredictionUsingGPRS_p1=[5] of {int};
+chan FewestHopNode_sendPredictionUsingWiFi_p1=[5] of {int};
+
+typedef Node_T {
+        bool timerwait;
+        int CPUSpeed;
+        int currentBattery;
+        int pointDepth;
+        int pointSpeed;
+        int predict;
+        int upDepth;
+        int upSpeed;
+
+        }
+Node_T Node_V;
+
+chan Node_q=[5] of {mtype};
+chan Node_C=[0] of {bit};
+chan Node_setDepth_p1=[5] of {int};
+chan Node_setPrediction_p1=[5] of {int};
+chan Node_setSpeed_p1=[5] of {int};
+chan Node_setUpstreamDepth_p1=[5] of {int};
+chan Node_setUpstreamSpeed_p1=[5] of {int};
+
+typedef PressureSensor_T {
+        bool timerwait;
+        int depth;
+
+        }
+PressureSensor_T PressureSensor_V;
+
+chan PressureSensor_q=[5] of {mtype};
+chan PressureSensor_C=[0] of {bit};
+
+typedef ShortestHopNode_T {
+        bool timerwait;
+        int predict;
+        bool received;
+
+        }
+ShortestHopNode_T ShortestHopNode_V;
+
+chan ShortestHopNode_q=[5] of {mtype};
+chan ShortestHopNode_C=[0] of {bit};
+chan ShortestHopNode_sendPredictionUsingBlueTooth_p1=[5] of {int};
+chan ShortestHopNode_sendPredictionUsingGPRS_p1=[5] of {int};
+chan ShortestHopNode_sendPredictionUsingWiFi_p1=[5] of {int};
+
+typedef UpstreamNode_T {
+        bool timerwait;
+        int depth;
+        int speed;
+
+        }
+UpstreamNode_T UpstreamNode_V;
+
+chan UpstreamNode_q=[5] of {mtype};
+chan UpstreamNode_C=[0] of {bit};
+active proctype DigiCamSensor()
+{
+atomic{
+mtype m;
+
+/*Init state*/
+        goto  Idle; skip;};
+/* State Idle */
+Idle:         atomic{skip; printf("in state DigiCamSensor.Idle\n");
+        }
+
+        Idle_G:
+        if
+        :: atomic{DigiCamSensor_q?getSpeed -> 
+           printf ("Transition to DigiCamSensor.State1 (evt:getSpeed()) \n");goto State1; skip;}
+        fi;
+/* State State1 */
+State1:       atomic{skip; printf("in state DigiCamSensor.State1\n");
+        }
+
+        State1_G:
+        if
+        :: atomic{1 -> 
+           DigiCamSensor_V.speed=50;
+           printf ("Transition to DigiCamSensor.State2 (/speed:=50) \n");goto State2; skip;}
+        fi;
+/* State State2 */
+State2:       atomic{skip; printf("in state DigiCamSensor.State2\n");
+        }
+
+        State2_G:
+        if
+        :: atomic{1 -> 
+   atomic{ Node_setSpeed_p1!DigiCamSensor_V.speed; Node_q!setSpeed;};
+           printf ("Transition to DigiCamSensor.Idle (^Node.setSpeed(speed)) \n");goto Idle; skip;}
+        fi;
+exit:      skip
+}
+active proctype FewestHopNode()
+{
+atomic{
+mtype m;
+
+/*Init state*/
+/*Initial actions / messages */
+        FewestHopNode_V.received=0;
+        goto  Idle; skip;};
+/* State Idle */
+Idle:         atomic{skip; printf("in state FewestHopNode.Idle\n");
+        }
+
+        Idle_G:
+        if
+        :: atomic{FewestHopNode_q?sendPredictionUsingWiFi -> 
+                   FewestHopNode_sendPredictionUsingWiFi_p1?FewestHopNode_V.predict
+                   -> 
+           FewestHopNode_V.received=1;
+           printf ("Transition to FewestHopNode.Idle (evt:sendPredictionUsingWiFi(predict)/received:=1) \n");goto Idle; skip;}
+        :: atomic{FewestHopNode_q?sendPredictionUsingGPRS -> 
+                   FewestHopNode_sendPredictionUsingGPRS_p1?FewestHopNode_V.predict
+                   -> 
+           FewestHopNode_V.received=1;
+           printf ("Transition to FewestHopNode.Idle (evt:sendPredictionUsingGPRS(predict)/received:=1) \n");goto Idle; skip;}
+        :: atomic{FewestHopNode_q?sendPredictionUsingBlueTooth -> 
+                   FewestHopNode_sendPredictionUsingBlueTooth_p1?FewestHopNode_V.predict
+                   -> 
+           FewestHopNode_V.received=1;
+           printf ("Transition to FewestHopNode.Idle (evt:sendPredictionUsingBlueTooth(predict)/received:=1) \n");goto Idle; skip;}
+        fi;
+exit:      skip
+}
+active proctype Node()
+{
+atomic{
+mtype m;
+        Node_V.CPUSpeed = 0;
+        Node_V.pointDepth = 0;
+        Node_V.pointSpeed = 0;
+        Node_V.predict = 0;
+        Node_V.upDepth = 0;
+        Node_V.upSpeed = 0;
+/*Init state*/
+        goto  sds0; skip;};
+/* State sds0 */
+sds0:         atomic{skip; printf("in state Node.sds0\n");
+        }
+
+        sds0_G:
+        if
+        :: atomic{1 -> 
+           Node_V.CPUSpeed=100;
+           printf ("Transition to Node.sds2 (/CPUSpeed:=100) \n");goto sds2; skip;}
+        :: atomic{1 -> 
+   atomic{ ShortestHopNode_sendPredictionUsingWiFi_p1!Node_V.predict; ShortestHopNode_q!sendPredictionUsingWiFi;};
+           printf ("Transition to Node.sds2 (^ShortestHopNode.sendPredictionUsingWiFi(predict)) \n");goto sds2; skip;}
+        fi;
+/* State sds1 */
+sds1:         atomic{skip; printf("in state Node.sds1\n");
+        }
+
+        sds1_G:
+        if
+        :: atomic{1 -> 
+           UpstreamNode_q!getDepth;
+           printf ("Transition to Node.sds3 (^UpstreamNode.getDepth) \n");goto sds3; skip;}
+        fi;
+/* State sds10 */
+sds10:        atomic{skip; printf("in state Node.sds10\n");
+        }
+
+        sds10_G:
+        if
+        :: atomic{1 -> 
+           DigiCamSensor_q!getSpeed;
+           printf ("Transition to Node.sds12 (^DigiCamSensor.getSpeed) \n");goto sds12; skip;}
+        fi;
+/* State sds11 */
+sds11:        atomic{skip; printf("in state Node.sds11\n");
+        }
+
+        sds11_G:
+        if
+        :: atomic{1 -> 
+   atomic{ ShortestHopNode_sendPredictionUsingBlueTooth_p1!Node_V.predict; ShortestHopNode_q!sendPredictionUsingBlueTooth;};
+           printf ("Transition to Node.sds0 (^ShortestHopNode.sendPredictionUsingBlueTooth(predict)) \n");goto sds0; skip;}
+        fi;
+/* State sds12 */
+sds12:        atomic{skip; printf("in state Node.sds12\n");
+        }
+
+        sds12_G:
+        if
+        :: atomic{Node_q?setSpeed -> 
+                   Node_setSpeed_p1?Node_V.pointSpeed
+                   -> 
+           printf ("Transition to Node.sds1 (evt:setSpeed(pointSpeed)) \n");goto sds1; skip;}
+        fi;
+/* State sds2 */
+sds2:         atomic{skip; printf("in state Node.sds2\n");
+        }
+
+        sds2_G:
+        if
+        :: atomic{1 -> 
+           Node_V.CPUSpeed=200;
+           printf ("Transition to Node.sds4 (/CPUSpeed:=200) \n");goto sds4; skip;}
+        fi;
+/* State sds3 */
+sds3:         atomic{skip; printf("in state Node.sds3\n");
+        }
+
+        sds3_G:
+        if
+        :: atomic{Node_q?setUpstreamDepth -> 
+                   Node_setUpstreamDepth_p1?Node_V.upDepth
+                   -> 
+           printf ("Transition to Node.sds5 (evt:setUpstreamDepth(upDepth)) \n");goto sds5; skip;}
+        fi;
+/* State sds4 */
+sds4:         atomic{skip; printf("in state Node.sds4\n");
+        }
+
+        sds4_G:
+        if
+        :: atomic{1 -> 
+           Node_V.CPUSpeed=400;
+           printf ("Transition to Node.sds6 (/CPUSpeed:=400) \n");goto sds6; skip;}
+        fi;
+/* State sds5 */
+sds5:         atomic{skip; printf("in state Node.sds5\n");
+        }
+
+        sds5_G:
+        if
+        :: atomic{1 -> 
+           UpstreamNode_q!getSpeed;
+           printf ("Transition to Node.sds7 (^UpstreamNode.getSpeed) \n");goto sds7; skip;}
+        fi;
+/* State sds6 */
+sds6:         atomic{skip; printf("in state Node.sds6\n");
+        }
+
+        sds6_G:
+        if
+        :: atomic{1 -> 
+           PressureSensor_q!getDepth;
+           printf ("Transition to Node.sds8 (^PressureSensor.getDepth) \n");goto sds8; skip;}
+        fi;
+/* State sds7 */
+sds7:         atomic{skip; printf("in state Node.sds7\n");
+        }
+
+        sds7_G:
+        if
+        :: atomic{Node_q?setUpstreamSpeed -> 
+                   Node_setUpstreamSpeed_p1?Node_V.upSpeed
+                   -> 
+           printf ("Transition to Node.sds9 (evt:setUpstreamSpeed(upSpeed)) \n");goto sds9; skip;}
+        fi;
+/* State sds8 */
+sds8:         atomic{skip; printf("in state Node.sds8\n");
+        }
+
+        sds8_G:
+        if
+        :: atomic{Node_q?setDepth -> 
+                   Node_setDepth_p1?Node_V.pointDepth
+                   -> 
+           printf ("Transition to Node.sds10 (evt:setDepth(pointDepth)) \n");goto sds10; skip;}
+        fi;
+/* State sds9 */
+sds9:         atomic{skip; printf("in state Node.sds9\n");
+        }
+
+        sds9_G:
+        if
+        :: atomic{1 -> 
+           Node_V.predict=Node_V.pointDepth+Node_V.pointSpeed+Node_V.upDepth+Node_V.upSpeed;
+           printf ("Transition to Node.sds11 (/predict:=pointDepth+pointSpeed+upDepth+upSpeed) \n");goto sds11; skip;}
+        fi;
+exit:      skip
+}
+active proctype PressureSensor()
+{
+atomic{
+mtype m;
+
+/*Init state*/
+        goto  Idle; skip;};
+/* State Idle */
+Idle:         atomic{skip; printf("in state PressureSensor.Idle\n");
+        }
+
+        Idle_G:
+        if
+        :: atomic{PressureSensor_q?getDepth -> 
+           printf ("Transition to PressureSensor.State1 (evt:getDepth()) \n");goto State1; skip;}
+        fi;
+/* State State1 */
+State1:       atomic{skip; printf("in state PressureSensor.State1\n");
+        }
+
+        State1_G:
+        if
+        :: atomic{1 -> 
+           PressureSensor_V.depth=50;
+           printf ("Transition to PressureSensor.State2 (/depth:=50) \n");goto State2; skip;}
+        fi;
+/* State State2 */
+State2:       atomic{skip; printf("in state PressureSensor.State2\n");
+        }
+
+        State2_G:
+        if
+        :: atomic{1 -> 
+   atomic{ Node_setDepth_p1!PressureSensor_V.depth; Node_q!setDepth;};
+           printf ("Transition to PressureSensor.Idle (^Node.setDepth(depth)) \n");goto Idle; skip;}
+        fi;
+exit:      skip
+}
+active proctype ShortestHopNode()
+{
+atomic{
+mtype m;
+
+/*Init state*/
+/*Initial actions / messages */
+        ShortestHopNode_V.received=0;
+        goto  Idle; skip;};
+/* State Idle */
+Idle:         atomic{skip; printf("in state ShortestHopNode.Idle\n");
+        }
+
+        Idle_G:
+        if
+        :: atomic{ShortestHopNode_q?sendPredictionUsingWiFi -> 
+                   ShortestHopNode_sendPredictionUsingWiFi_p1?ShortestHopNode_V.predict
+                   -> 
+           ShortestHopNode_V.received=1;
+           printf ("Transition to ShortestHopNode.Idle (evt:sendPredictionUsingWiFi(predict)/received:=1) \n");goto Idle; skip;}
+        :: atomic{ShortestHopNode_q?sendPredictionUsingGPRS -> 
+                   ShortestHopNode_sendPredictionUsingGPRS_p1?ShortestHopNode_V.predict
+                   -> 
+           ShortestHopNode_V.received=1;
+           printf ("Transition to ShortestHopNode.Idle (evt:sendPredictionUsingGPRS(predict)/received:=1) \n");goto Idle; skip;}
+        :: atomic{ShortestHopNode_q?sendPredictionUsingBlueTooth -> 
+                   ShortestHopNode_sendPredictionUsingBlueTooth_p1?ShortestHopNode_V.predict
+                   -> 
+           ShortestHopNode_V.received=1;
+           printf ("Transition to ShortestHopNode.Idle (evt:sendPredictionUsingBlueTooth(predict)/received:=1) \n");goto Idle; skip;}
+        fi;
+exit:      skip
+}
+active proctype UpstreamNode()
+{
+atomic{
+mtype m;
+
+/*Init state*/
+        goto  Idle; skip;};
+/* State Idle */
+Idle:         atomic{skip; printf("in state UpstreamNode.Idle\n");
+        }
+
+        Idle_G:
+        if
+        :: atomic{UpstreamNode_q?getSpeed -> 
+           printf ("Transition to UpstreamNode.State3 (evt:getSpeed()) \n");goto State3; skip;}
+        :: atomic{UpstreamNode_q?getDepth -> 
+           printf ("Transition to UpstreamNode.State1 (evt:getDepth()) \n");goto State1; skip;}
+        fi;
+/* State State1 */
+State1:       atomic{skip; printf("in state UpstreamNode.State1\n");
+        }
+
+        State1_G:
+        if
+        :: atomic{1 -> 
+           UpstreamNode_V.depth=50;
+           printf ("Transition to UpstreamNode.State2 (/depth:=50) \n");goto State2; skip;}
+        fi;
+/* State State2 */
+State2:       atomic{skip; printf("in state UpstreamNode.State2\n");
+        }
+
+        State2_G:
+        if
+        :: atomic{1 -> 
+   atomic{ Node_setUpstreamDepth_p1!UpstreamNode_V.depth; Node_q!setUpstreamDepth;};
+           printf ("Transition to UpstreamNode.Idle (^Node.setUpstreamDepth(depth)) \n");goto Idle; skip;}
+        fi;
+/* State State3 */
+State3:       atomic{skip; printf("in state UpstreamNode.State3\n");
+        }
+
+        State3_G:
+        if
+        :: atomic{1 -> 
+           UpstreamNode_V.speed=55;
+           printf ("Transition to UpstreamNode.State4 (/speed:=55) \n");goto State4; skip;}
+        fi;
+/* State State4 */
+State4:       atomic{skip; printf("in state UpstreamNode.State4\n");
+        }
+
+        State4_G:
+        if
+        :: atomic{1 -> 
+   atomic{ Node_setUpstreamSpeed_p1!UpstreamNode_V.speed; Node_q!setUpstreamSpeed;};
+           printf ("Transition to UpstreamNode.Idle (^Node.setUpstreamSpeed(speed)) \n");goto Idle; skip;}
+        fi;
+exit:      skip
+}
+#define p (Node_V.CPUSpeed != 0)
+never { /* !([](!p)) */ 
+T0_init :    /* init */ 
+if 
+:: (1) -> goto T0_init
+:: (p) -> goto accept_all 
+fi; 
+accept_all :    /* 1 */
+skip }

Added: branches/uml-merge/tests/_orchid-avida-marple/test_list
===================================================================
--- branches/uml-merge/tests/_orchid-avida-marple/test_list	                        (rev 0)
+++ branches/uml-merge/tests/_orchid-avida-marple/test_list	2008-07-01 19:45:11 UTC (rev 2695)
@@ -0,0 +1,37 @@
+;--- Begin Test Configuration File (test_list) ---
+[main]
+; Command line arguments to pass to the application
+args =                   
+
+app = %(default_app)s            ; Application path to test
+nonzeroexit = disallow   ; Exit code handling (disallow, allow, or require)
+                         ;  disallow - treat non-zero exit codes as failures
+                         ;  allow - all exit codes are acceptable
+                         ;  require - treat zero exit codes as failures, useful
+                         ;            for creating tests for app error checking
+createdby = Heather Goldsby             ; Who created the test
+email = hjg at msu.edu                 ; Email address for the test's creator
+
+[consistency]
+enabled = yes            ; Is this test a consistency test?
+long = no                ; Is this test a long test?
+
+[performance]
+enabled = no             ; Is this test a performance test?
+long = no                ; Is this test a long test?
+
+; The following variables can be used in constructing setting values by calling
+; them with %(variable_name)s.  For example see 'app' above.
+;
+; builddir 
+; cpus 
+; default_app 
+; mode 
+; perf_repeat 
+; perf_user_margin 
+; perf_wall_margin 
+; svn 
+; svnmetadir 
+; svnversion 
+; testdir 
+;--- End Test Configuration File ---




More information about the Avida-cvs mailing list