@xfsp< executable , 1.0 >:

// timed system< moc: and % system > ThermostatSystem {
@header:
	@ufi = sys::ThermostatSystem;
	@description = "the result of the system compilation";
	@count = 16;

@instance:
	// The Parameters Machine Instance
	timed instance< id:0, multiplicity: [ 0, 1 ] > &exec::#PARAMETERS# inst::#PARAMETERS# /* < ref: 1 > */ {
	//@property:
		//@compiled = spec::ThermostatSystem;
		//@container = null;
	}

	// The System Machine Instance
	timed #prototype instance< id:0, multiplicity: [ 1 ] > &exec::ThermostatSystem prot::ThermostatSystem /* < ref: 2 > */ {
	//@property:
		//@compiled = spec::ThermostatSystem;
		//@container = null;
		@rid#runtime = run::pid#1:ThermostatSystem;
		@start{ |;|
			${ |§|
				${ := std[stm]:>nops:rvalue:statement
					$( std[nop]:>nops:value:data inst::ThermostatSystem.$time /* < ref: 5 > */ )
					$( std[nop]:>nop:rvalue:integer 0 )
				}
				${ := std[stm]:>nops:rvalue:statement
					$( std[nop]:>nops:value:data inst::ThermostatSystem.$delta /* < ref: 8 > */ )
					$( std[nop]:>nop:rvalue:integer 0 )
				}
			}
			${ |and|
				${ init std[stm]:>seval:rvalue:statement
					$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Thermostat /* < ref: 7 > */ )
				}
				${ init std[stm]:>seval:rvalue:statement
					$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Equipment /* < ref: 7 > */ )
				}
			}
		}
	}

@executable:
	timed executable< moc: and % system , id:0, instanciation: [ + ] > &spec::ThermostatSystem exec::#PARAMETERS# {
	@moe:
	}

	#prototype executable< moc: start % state , id:0, instanciation: [ * ] > &spec::ThermostatSystem.Thermostat.q0 exec::ThermostatSystem.Thermostat.q0 {
		//@container = #prototype executable< moc: #STS % statemachine , id:8, instanciation: [ + ] > &spec::ThermostatSystem.Thermostat exec::ThermostatSystem.Thermostat;
		//@prototype = #prototype instance< id:1, multiplicity: [ + ] > &exec::ThermostatSystem.Thermostat.q0 prot::ThermostatSystem.Thermostat.q0;
	@transition:
		transition< id:0 > &spec::ThermostatSystem.Thermostat.q0.t1 t1 --> q0 { /* < ref: 3 > */
			//@container = #prototype executable< moc: start % state , id:0, instanciation: [ * ] > &spec::ThermostatSystem.Thermostat.q0 exec::ThermostatSystem.Thermostat.q0;
		@moe:
			@run{ |;|
				${ input std[stm]:>nops:rvalue:statement
					$( std[nop]:>nops:value:port inst::ThermostatSystem.Thermostat.error /* < ref: 16 > */ )
					$( std[nop]:>nop:lvalue:data inst::ThermostatSystem.Thermostat.z /* < ref: 16 > */ )
				}
				${ |§|
					${ disable#self }
					${ enable#set std[stm]:>seval:rvalue:statement
						$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Thermostat.q0 /* < ref: 14 > */ )
					}
				}
			}
			@opcode#family = input;
			@communication<final>{
				${ input inst::ThermostatSystem.Thermostat.error /* < ref: 16 > */ inst::ThermostatSystem.Thermostat.z /* < ref: 16 > */ }
			}
			@com#internal{
				${ input inst::ThermostatSystem.Thermostat.error /* < ref: 16 > */ inst::ThermostatSystem.Thermostat.z /* < ref: 16 > */ }
			}
			@com#input{
				port< id:2 , route:2 > input inst::ThermostatSystem.Thermostat.error[ parameter var< id:0, ptr:std > integer $0 ]
			}
			@com#input_enabled{
				port< id:2 , route:2 > input inst::ThermostatSystem.Thermostat.error[ parameter var< id:0, ptr:std > integer $0 ]
			}
		}
		transition< id:1 > &spec::ThermostatSystem.Thermostat.q0.t2 t2 --> q0 { /* < ref: 3 > */
			//@container = #prototype executable< moc: start % state , id:0, instanciation: [ * ] > &spec::ThermostatSystem.Thermostat.q0 exec::ThermostatSystem.Thermostat.q0;
		@moe:
			@run{ |;|
				${ input std[stm]:>nops:rvalue:statement
					$( std[nop]:>nops:value:port inst::ThermostatSystem.Thermostat.equip /* < ref: 12 > */ )
					$( std[nop]:>nop:lvalue:data inst::ThermostatSystem.Thermostat.y /* < ref: 12 > */ )
				}
				${ |§|
					${ disable#self }
					${ enable#set std[stm]:>seval:rvalue:statement
						$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Thermostat.q0 /* < ref: 14 > */ )
					}
				}
			}
			@opcode#family = input;
			@communication<final>{
				${ input inst::ThermostatSystem.Thermostat.equip /* < ref: 12 > */ inst::ThermostatSystem.Thermostat.y /* < ref: 12 > */ }
			}
			@com#internal{
				${ input inst::ThermostatSystem.Thermostat.equip /* < ref: 12 > */ inst::ThermostatSystem.Thermostat.y /* < ref: 12 > */ }
			}
			@com#input{
				port< id:1 , route:1 > input inst::ThermostatSystem.Thermostat.equip[ parameter var< id:0, ptr:std > integer $0 ]
			}
			@com#input_enabled{
				port< id:1 , route:1 > input inst::ThermostatSystem.Thermostat.equip[ parameter var< id:0, ptr:std > integer $0 ]
			}
		}
		transition< id:2 > &spec::ThermostatSystem.Thermostat.q0.t3 t3 --> q1 { /* < ref: 3 > */
			//@container = #prototype executable< moc: start % state , id:0, instanciation: [ * ] > &spec::ThermostatSystem.Thermostat.q0 exec::ThermostatSystem.Thermostat.q0;
		@moe:
			@run{ |;|
				${ input std[stm]:>nops:rvalue:statement
					$( std[nop]:>nops:value:port inst::ThermostatSystem.Thermostat.sens /* < ref: 8 > */ )
					$( std[nop]:>nop:lvalue:data inst::ThermostatSystem.Thermostat.t /* < ref: 18 > */ )
				}
				${ |§|
					${ disable#self }
					${ enable#set std[stm]:>seval:rvalue:statement
						$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Thermostat.q1 /* < ref: 4 > */ )
					}
				}
			}
			@opcode#family = input;
			@communication<final>{
				${ input inst::ThermostatSystem.Thermostat.sens /* < ref: 8 > */ inst::ThermostatSystem.Thermostat.t /* < ref: 18 > */ }
			}
			@com#internal{
				${ input inst::ThermostatSystem.Thermostat.sens /* < ref: 8 > */ inst::ThermostatSystem.Thermostat.t /* < ref: 18 > */ }
			}
			@com#input{
				port< id:0 , route:0 > input inst::ThermostatSystem.Thermostat.sens[ parameter var< id:0, ptr:std > integer $0 ]
			}
			@com#input_enabled{
				port< id:0 , route:0 > input inst::ThermostatSystem.Thermostat.sens[ parameter var< id:0, ptr:std > integer $0 ]
			}
		}
	@moe:
		@run{ |/\|
			${ invoke#transition transition::ThermostatSystem.Thermostat.q0.t1 /* < ref: 3 > */ }
			${ invoke#transition transition::ThermostatSystem.Thermostat.q0.t2 /* < ref: 3 > */ }
			${ invoke#transition transition::ThermostatSystem.Thermostat.q0.t3 /* < ref: 3 > */ }
		}
	}

	#prototype executable< moc: simple % state , id:1, instanciation: [ * ] > &spec::ThermostatSystem.Thermostat.q1 exec::ThermostatSystem.Thermostat.q1 {
		//@container = #prototype executable< moc: #STS % statemachine , id:8, instanciation: [ + ] > &spec::ThermostatSystem.Thermostat exec::ThermostatSystem.Thermostat;
		//@prototype = #prototype instance< id:2, multiplicity: [ + ] > &exec::ThermostatSystem.Thermostat.q1 prot::ThermostatSystem.Thermostat.q1;
	@transition:
		transition< id:0 > &spec::ThermostatSystem.Thermostat.q1.t11 t11 --> q2 { /* < ref: 3 > */
			//@container = #prototype executable< moc: simple % state , id:1, instanciation: [ * ] > &spec::ThermostatSystem.Thermostat.q1 exec::ThermostatSystem.Thermostat.q1;
		@moe:
			@run{ |;|
				${ |§|
					${ guard ret[alu]:>seval:rvalue:expression
						$( ret[alu]:>seval:rvalue:expression { < ret[alu]:>seval:rvalue:expression
							$( std[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.Thermostat.t /* < ref: 18 > */ )
							$( std[nop]:>nop:rvalue:integer 20 )
						} )
					}
					${ output std[stm]:>nops:rvalue:statement
						$( std[nop]:>nops:value:port inst::ThermostatSystem.Thermostat.screen /* < ref: 8 > */ )
						$( std[nop]:>nop:rvalue:integer 1 )
					}
				}
				${ |§|
					${ disable#self }
					${ enable#set std[stm]:>seval:rvalue:statement
						$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Thermostat.q2 /* < ref: 8 > */ )
					}
				}
			}
			@opcode#family = guard | output;
			@communication<final>{
				${ output inst::ThermostatSystem.Thermostat.screen /* < ref: 8 > */ const::ThermostatSystem.Thermostat.mode.HEATING /* < ref: 2 > */ }
			}
			@com#internal{
				${ output inst::ThermostatSystem.Thermostat.screen /* < ref: 8 > */ const::ThermostatSystem.Thermostat.mode.HEATING /* < ref: 2 > */ }
			}
			@com#output{
				port< id:0 , route:0 > output inst::ThermostatSystem.Thermostat.screen[ parameter var< id:0, ptr:std > integer $0 ]
			}
		}
		transition< id:1 > &spec::ThermostatSystem.Thermostat.q1.t12 t12 --> q5 { /* < ref: 3 > */
			//@container = #prototype executable< moc: simple % state , id:1, instanciation: [ * ] > &spec::ThermostatSystem.Thermostat.q1 exec::ThermostatSystem.Thermostat.q1;
		@moe:
			@run{ |;|
				${ |§|
					${ guard ret[alu]:>seval:rvalue:expression
						$( ret[alu]:>seval:rvalue:expression { > ret[alu]:>seval:rvalue:expression
							$( std[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.Thermostat.t /* < ref: 18 > */ )
							$( std[nop]:>nop:rvalue:integer 25 )
						} )
					}
					${ output std[stm]:>nops:rvalue:statement
						$( std[nop]:>nops:value:port inst::ThermostatSystem.Thermostat.screen /* < ref: 8 > */ )
						$( std[nop]:>nop:rvalue:integer 2 )
					}
				}
				${ |§|
					${ disable#self }
					${ enable#set std[stm]:>seval:rvalue:statement
						$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Thermostat.q5 /* < ref: 8 > */ )
					}
				}
			}
			@opcode#family = guard | output;
			@communication<final>{
				${ output inst::ThermostatSystem.Thermostat.screen /* < ref: 8 > */ const::ThermostatSystem.Thermostat.mode.COOLING /* < ref: 2 > */ }
			}
			@com#internal{
				${ output inst::ThermostatSystem.Thermostat.screen /* < ref: 8 > */ const::ThermostatSystem.Thermostat.mode.COOLING /* < ref: 2 > */ }
			}
			@com#output{
				port< id:0 , route:0 > output inst::ThermostatSystem.Thermostat.screen[ parameter var< id:0, ptr:std > integer $0 ]
			}
		}
		transition< id:2 > &spec::ThermostatSystem.Thermostat.q1.t13 t13 --> q0 { /* < ref: 3 > */
			//@container = #prototype executable< moc: simple % state , id:1, instanciation: [ * ] > &spec::ThermostatSystem.Thermostat.q1 exec::ThermostatSystem.Thermostat.q1;
		@moe:
			@run{ |;|
				${ |§|
					${ guard ret[alu]:>seval:rvalue:expression
						$( ret[alu]:>seval:rvalue:expression { && ret[alu]:>seval:rvalue:expression
							$( arg[alu]:>seval:rvalue:expression { >= ret[alu]:>seval:rvalue:expression
								$( std[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.Thermostat.t /* < ref: 18 > */ )
								$( std[nop]:>nop:rvalue:integer 20 )
							} )
							$( arg[alu]:>seval:rvalue:expression { <= ret[alu]:>seval:rvalue:expression
								$( std[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.Thermostat.t /* < ref: 18 > */ )
								$( std[nop]:>nop:rvalue:integer 25 )
							} )
						} )
					}
					${ output std[stm]:>nops:rvalue:statement
						$( std[nop]:>nops:value:port inst::ThermostatSystem.Thermostat.screen /* < ref: 8 > */ )
						$( std[nop]:>nop:rvalue:integer 0 )
					}
				}
				${ |§|
					${ disable#self }
					${ enable#set std[stm]:>seval:rvalue:statement
						$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Thermostat.q0 /* < ref: 14 > */ )
					}
				}
			}
			@opcode#family = guard | output;
			@communication<final>{
				${ output inst::ThermostatSystem.Thermostat.screen /* < ref: 8 > */ const::ThermostatSystem.Thermostat.mode.OFF /* < ref: 2 > */ }
			}
			@com#internal{
				${ output inst::ThermostatSystem.Thermostat.screen /* < ref: 8 > */ const::ThermostatSystem.Thermostat.mode.OFF /* < ref: 2 > */ }
			}
			@com#output{
				port< id:0 , route:0 > output inst::ThermostatSystem.Thermostat.screen[ parameter var< id:0, ptr:std > integer $0 ]
			}
		}
	@moe:
		@run{ |/\|
			${ invoke#transition transition::ThermostatSystem.Thermostat.q1.t11 /* < ref: 3 > */ }
			${ invoke#transition transition::ThermostatSystem.Thermostat.q1.t12 /* < ref: 3 > */ }
			${ invoke#transition transition::ThermostatSystem.Thermostat.q1.t13 /* < ref: 3 > */ }
		}
	}

	#prototype executable< moc: simple % state , id:2, instanciation: [ * ] > &spec::ThermostatSystem.Thermostat.q2 exec::ThermostatSystem.Thermostat.q2 {
		//@container = #prototype executable< moc: #STS % statemachine , id:8, instanciation: [ + ] > &spec::ThermostatSystem.Thermostat exec::ThermostatSystem.Thermostat;
		//@prototype = #prototype instance< id:3, multiplicity: [ + ] > &exec::ThermostatSystem.Thermostat.q2 prot::ThermostatSystem.Thermostat.q2;
	@transition:
		transition< id:0 > &spec::ThermostatSystem.Thermostat.q2.t21 t21 --> q2 { /* < ref: 3 > */
			//@container = #prototype executable< moc: simple % state , id:2, instanciation: [ * ] > &spec::ThermostatSystem.Thermostat.q2 exec::ThermostatSystem.Thermostat.q2;
		@moe:
			@run{ |;|
				${ input std[stm]:>nops:rvalue:statement
					$( std[nop]:>nops:value:port inst::ThermostatSystem.Thermostat.error /* < ref: 16 > */ )
					$( std[nop]:>nop:lvalue:data inst::ThermostatSystem.Thermostat.z /* < ref: 16 > */ )
				}
				${ |§|
					${ disable#self }
					${ enable#set std[stm]:>seval:rvalue:statement
						$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Thermostat.q2 /* < ref: 8 > */ )
					}
				}
			}
			@opcode#family = input;
			@communication<final>{
				${ input inst::ThermostatSystem.Thermostat.error /* < ref: 16 > */ inst::ThermostatSystem.Thermostat.z /* < ref: 16 > */ }
			}
			@com#internal{
				${ input inst::ThermostatSystem.Thermostat.error /* < ref: 16 > */ inst::ThermostatSystem.Thermostat.z /* < ref: 16 > */ }
			}
			@com#input{
				port< id:2 , route:2 > input inst::ThermostatSystem.Thermostat.error[ parameter var< id:0, ptr:std > integer $0 ]
			}
			@com#input_enabled{
				port< id:2 , route:2 > input inst::ThermostatSystem.Thermostat.error[ parameter var< id:0, ptr:std > integer $0 ]
			}
		}
		transition< id:1 > &spec::ThermostatSystem.Thermostat.q2.t22 t22 --> q3 { /* < ref: 3 > */
			//@container = #prototype executable< moc: simple % state , id:2, instanciation: [ * ] > &spec::ThermostatSystem.Thermostat.q2 exec::ThermostatSystem.Thermostat.q2;
		@moe:
			@run{ |;|
				${ output std[stm]:>seval:rvalue:statement
					$( std[nop]:>nop:rvalue:port inst::ThermostatSystem.Thermostat.dt /* < ref: 10 > */ )
					$( ret[alu]:>seval:rvalue:expression { - ret[alu]:>seval:rvalue:expression
						$( std[nop]:>nop:rvalue:integer 20 )
						$( std[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.Thermostat.t /* < ref: 18 > */ )
					} )
				}
				${ |§|
					${ disable#self }
					${ enable#set std[stm]:>seval:rvalue:statement
						$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Thermostat.q3 /* < ref: 8 > */ )
					}
				}
			}
			@opcode#family = output;
			@communication<final>{
				${ output inst::ThermostatSystem.Thermostat.dt /* < ref: 10 > */ ${ - ret[alu]:>seval:rvalue:expression $( std[nop]:>nop:rvalue:integer 20 ) $( std[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.Thermostat.t /* < ref: 18 > */ ) } }
			}
			@com#internal{
				${ output inst::ThermostatSystem.Thermostat.dt /* < ref: 10 > */ ${ - ret[alu]:>seval:rvalue:expression $( std[nop]:>nop:rvalue:integer 20 ) $( std[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.Thermostat.t /* < ref: 18 > */ ) } }
			}
			@com#output{
				port< id:1 , route:1 > output inst::ThermostatSystem.Thermostat.dt[ parameter var< id:0, ptr:std > integer $0 ]
			}
		}
	@moe:
		@run{ |/\|
			${ invoke#transition transition::ThermostatSystem.Thermostat.q2.t21 /* < ref: 3 > */ }
			${ invoke#transition transition::ThermostatSystem.Thermostat.q2.t22 /* < ref: 3 > */ }
		}
	}

	#prototype executable< moc: simple % state , id:3, instanciation: [ * ] > &spec::ThermostatSystem.Thermostat.q3 exec::ThermostatSystem.Thermostat.q3 {
		//@container = #prototype executable< moc: #STS % statemachine , id:8, instanciation: [ + ] > &spec::ThermostatSystem.Thermostat exec::ThermostatSystem.Thermostat;
		//@prototype = #prototype instance< id:4, multiplicity: [ + ] > &exec::ThermostatSystem.Thermostat.q3 prot::ThermostatSystem.Thermostat.q3;
	@transition:
		transition< id:0 > &spec::ThermostatSystem.Thermostat.q3.t31 t31 --> q3 { /* < ref: 3 > */
			//@container = #prototype executable< moc: simple % state , id:3, instanciation: [ * ] > &spec::ThermostatSystem.Thermostat.q3 exec::ThermostatSystem.Thermostat.q3;
		@moe:
			@run{ |;|
				${ input std[stm]:>nops:rvalue:statement
					$( std[nop]:>nops:value:port inst::ThermostatSystem.Thermostat.equip /* < ref: 12 > */ )
					$( std[nop]:>nop:lvalue:data inst::ThermostatSystem.Thermostat.y /* < ref: 12 > */ )
				}
				${ |§|
					${ disable#self }
					${ enable#set std[stm]:>seval:rvalue:statement
						$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Thermostat.q3 /* < ref: 8 > */ )
					}
				}
			}
			@opcode#family = input;
			@communication<final>{
				${ input inst::ThermostatSystem.Thermostat.equip /* < ref: 12 > */ inst::ThermostatSystem.Thermostat.y /* < ref: 12 > */ }
			}
			@com#internal{
				${ input inst::ThermostatSystem.Thermostat.equip /* < ref: 12 > */ inst::ThermostatSystem.Thermostat.y /* < ref: 12 > */ }
			}
			@com#input{
				port< id:1 , route:1 > input inst::ThermostatSystem.Thermostat.equip[ parameter var< id:0, ptr:std > integer $0 ]
			}
			@com#input_enabled{
				port< id:1 , route:1 > input inst::ThermostatSystem.Thermostat.equip[ parameter var< id:0, ptr:std > integer $0 ]
			}
		}
		transition< id:1 > &spec::ThermostatSystem.Thermostat.q3.t32 t32 --> q3 { /* < ref: 3 > */
			//@container = #prototype executable< moc: simple % state , id:3, instanciation: [ * ] > &spec::ThermostatSystem.Thermostat.q3 exec::ThermostatSystem.Thermostat.q3;
		@moe:
			@run{ |;|
				${ input std[stm]:>nops:rvalue:statement
					$( std[nop]:>nops:value:port inst::ThermostatSystem.Thermostat.error /* < ref: 16 > */ )
					$( std[nop]:>nop:lvalue:data inst::ThermostatSystem.Thermostat.z /* < ref: 16 > */ )
				}
				${ |§|
					${ disable#self }
					${ enable#set std[stm]:>seval:rvalue:statement
						$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Thermostat.q3 /* < ref: 8 > */ )
					}
				}
			}
			@opcode#family = input;
			@communication<final>{
				${ input inst::ThermostatSystem.Thermostat.error /* < ref: 16 > */ inst::ThermostatSystem.Thermostat.z /* < ref: 16 > */ }
			}
			@com#internal{
				${ input inst::ThermostatSystem.Thermostat.error /* < ref: 16 > */ inst::ThermostatSystem.Thermostat.z /* < ref: 16 > */ }
			}
			@com#input{
				port< id:2 , route:2 > input inst::ThermostatSystem.Thermostat.error[ parameter var< id:0, ptr:std > integer $0 ]
			}
			@com#input_enabled{
				port< id:2 , route:2 > input inst::ThermostatSystem.Thermostat.error[ parameter var< id:0, ptr:std > integer $0 ]
			}
		}
		transition< id:2 > &spec::ThermostatSystem.Thermostat.q3.t33 t33 --> q4 { /* < ref: 3 > */
			//@container = #prototype executable< moc: simple % state , id:3, instanciation: [ * ] > &spec::ThermostatSystem.Thermostat.q3 exec::ThermostatSystem.Thermostat.q3;
		@moe:
			@run{ |;|
				${ input std[stm]:>nops:rvalue:statement
					$( std[nop]:>nops:value:port inst::ThermostatSystem.Thermostat.sens /* < ref: 8 > */ )
					$( std[nop]:>nop:lvalue:data inst::ThermostatSystem.Thermostat.t /* < ref: 18 > */ )
				}
				${ |§|
					${ disable#self }
					${ enable#set std[stm]:>seval:rvalue:statement
						$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Thermostat.q4 /* < ref: 8 > */ )
					}
				}
			}
			@opcode#family = input;
			@communication<final>{
				${ input inst::ThermostatSystem.Thermostat.sens /* < ref: 8 > */ inst::ThermostatSystem.Thermostat.t /* < ref: 18 > */ }
			}
			@com#internal{
				${ input inst::ThermostatSystem.Thermostat.sens /* < ref: 8 > */ inst::ThermostatSystem.Thermostat.t /* < ref: 18 > */ }
			}
			@com#input{
				port< id:0 , route:0 > input inst::ThermostatSystem.Thermostat.sens[ parameter var< id:0, ptr:std > integer $0 ]
			}
			@com#input_enabled{
				port< id:0 , route:0 > input inst::ThermostatSystem.Thermostat.sens[ parameter var< id:0, ptr:std > integer $0 ]
			}
		}
	@moe:
		@run{ |/\|
			${ invoke#transition transition::ThermostatSystem.Thermostat.q3.t31 /* < ref: 3 > */ }
			${ invoke#transition transition::ThermostatSystem.Thermostat.q3.t32 /* < ref: 3 > */ }
			${ invoke#transition transition::ThermostatSystem.Thermostat.q3.t33 /* < ref: 3 > */ }
		}
	}

	#prototype executable< moc: simple % state , id:4, instanciation: [ * ] > &spec::ThermostatSystem.Thermostat.q4 exec::ThermostatSystem.Thermostat.q4 {
		//@container = #prototype executable< moc: #STS % statemachine , id:8, instanciation: [ + ] > &spec::ThermostatSystem.Thermostat exec::ThermostatSystem.Thermostat;
		//@prototype = #prototype instance< id:5, multiplicity: [ + ] > &exec::ThermostatSystem.Thermostat.q4 prot::ThermostatSystem.Thermostat.q4;
	@transition:
		transition< id:0 > &spec::ThermostatSystem.Thermostat.q4.t41 t41 --> q4 { /* < ref: 3 > */
			//@container = #prototype executable< moc: simple % state , id:4, instanciation: [ * ] > &spec::ThermostatSystem.Thermostat.q4 exec::ThermostatSystem.Thermostat.q4;
		@moe:
			@run{ |;|
				${ input std[stm]:>nops:rvalue:statement
					$( std[nop]:>nops:value:port inst::ThermostatSystem.Thermostat.equip /* < ref: 12 > */ )
					$( std[nop]:>nop:lvalue:data inst::ThermostatSystem.Thermostat.y /* < ref: 12 > */ )
				}
				${ |§|
					${ disable#self }
					${ enable#set std[stm]:>seval:rvalue:statement
						$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Thermostat.q4 /* < ref: 8 > */ )
					}
				}
			}
			@opcode#family = input;
			@communication<final>{
				${ input inst::ThermostatSystem.Thermostat.equip /* < ref: 12 > */ inst::ThermostatSystem.Thermostat.y /* < ref: 12 > */ }
			}
			@com#internal{
				${ input inst::ThermostatSystem.Thermostat.equip /* < ref: 12 > */ inst::ThermostatSystem.Thermostat.y /* < ref: 12 > */ }
			}
			@com#input{
				port< id:1 , route:1 > input inst::ThermostatSystem.Thermostat.equip[ parameter var< id:0, ptr:std > integer $0 ]
			}
			@com#input_enabled{
				port< id:1 , route:1 > input inst::ThermostatSystem.Thermostat.equip[ parameter var< id:0, ptr:std > integer $0 ]
			}
		}
		transition< id:1 > &spec::ThermostatSystem.Thermostat.q4.t42 t42 --> q4 { /* < ref: 3 > */
			//@container = #prototype executable< moc: simple % state , id:4, instanciation: [ * ] > &spec::ThermostatSystem.Thermostat.q4 exec::ThermostatSystem.Thermostat.q4;
		@moe:
			@run{ |;|
				${ input std[stm]:>nops:rvalue:statement
					$( std[nop]:>nops:value:port inst::ThermostatSystem.Thermostat.error /* < ref: 16 > */ )
					$( std[nop]:>nop:lvalue:data inst::ThermostatSystem.Thermostat.z /* < ref: 16 > */ )
				}
				${ |§|
					${ disable#self }
					${ enable#set std[stm]:>seval:rvalue:statement
						$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Thermostat.q4 /* < ref: 8 > */ )
					}
				}
			}
			@opcode#family = input;
			@communication<final>{
				${ input inst::ThermostatSystem.Thermostat.error /* < ref: 16 > */ inst::ThermostatSystem.Thermostat.z /* < ref: 16 > */ }
			}
			@com#internal{
				${ input inst::ThermostatSystem.Thermostat.error /* < ref: 16 > */ inst::ThermostatSystem.Thermostat.z /* < ref: 16 > */ }
			}
			@com#input{
				port< id:2 , route:2 > input inst::ThermostatSystem.Thermostat.error[ parameter var< id:0, ptr:std > integer $0 ]
			}
			@com#input_enabled{
				port< id:2 , route:2 > input inst::ThermostatSystem.Thermostat.error[ parameter var< id:0, ptr:std > integer $0 ]
			}
		}
		transition< id:2 > &spec::ThermostatSystem.Thermostat.q4.t43 t43 --> q0 { /* < ref: 3 > */
			//@container = #prototype executable< moc: simple % state , id:4, instanciation: [ * ] > &spec::ThermostatSystem.Thermostat.q4 exec::ThermostatSystem.Thermostat.q4;
		@moe:
			@run{ |;|
				${ |§|
					${ guard ret[alu]:>seval:rvalue:expression
						$( ret[alu]:>seval:rvalue:expression { >= ret[alu]:>seval:rvalue:expression
							$( std[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.Thermostat.t /* < ref: 18 > */ )
							$( std[nop]:>nop:rvalue:integer 20 )
						} )
					}
					${ output std[stm]:>nops:rvalue:statement
						$( std[nop]:>nops:value:port inst::ThermostatSystem.Thermostat.dt /* < ref: 10 > */ )
						$( std[nop]:>nop:rvalue:integer 0 )
					}
				}
				${ |§|
					${ disable#self }
					${ enable#set std[stm]:>seval:rvalue:statement
						$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Thermostat.q0 /* < ref: 14 > */ )
					}
				}
			}
			@opcode#family = guard | output;
			@communication<final>{
				${ output inst::ThermostatSystem.Thermostat.dt /* < ref: 10 > */ 0 }
			}
			@com#internal{
				${ output inst::ThermostatSystem.Thermostat.dt /* < ref: 10 > */ 0 }
			}
			@com#output{
				port< id:1 , route:1 > output inst::ThermostatSystem.Thermostat.dt[ parameter var< id:0, ptr:std > integer $0 ]
			}
		}
		transition< id:3 > &spec::ThermostatSystem.Thermostat.q4.t44 t44 --> q2 { /* < ref: 3 > */
			//@container = #prototype executable< moc: simple % state , id:4, instanciation: [ * ] > &spec::ThermostatSystem.Thermostat.q4 exec::ThermostatSystem.Thermostat.q4;
		@moe:
			@run{ |§|
				${ guard ret[alu]:>seval:rvalue:expression
					$( ret[alu]:>seval:rvalue:expression { < ret[alu]:>seval:rvalue:expression
						$( std[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.Thermostat.t /* < ref: 18 > */ )
						$( std[nop]:>nop:rvalue:integer 20 )
					} )
				}
				${ disable#self }
				${ enable#set std[stm]:>seval:rvalue:statement
					$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Thermostat.q2 /* < ref: 8 > */ )
				}
			}
			@opcode#family = guard;
		}
	@moe:
		@run{ |/\|
			${ invoke#transition transition::ThermostatSystem.Thermostat.q4.t41 /* < ref: 3 > */ }
			${ invoke#transition transition::ThermostatSystem.Thermostat.q4.t42 /* < ref: 3 > */ }
			${ invoke#transition transition::ThermostatSystem.Thermostat.q4.t43 /* < ref: 3 > */ }
			${ invoke#transition transition::ThermostatSystem.Thermostat.q4.t44 /* < ref: 3 > */ }
		}
	}

	#prototype executable< moc: simple % state , id:5, instanciation: [ * ] > &spec::ThermostatSystem.Thermostat.q5 exec::ThermostatSystem.Thermostat.q5 {
		//@container = #prototype executable< moc: #STS % statemachine , id:8, instanciation: [ + ] > &spec::ThermostatSystem.Thermostat exec::ThermostatSystem.Thermostat;
		//@prototype = #prototype instance< id:6, multiplicity: [ + ] > &exec::ThermostatSystem.Thermostat.q5 prot::ThermostatSystem.Thermostat.q5;
	@transition:
		transition< id:0 > &spec::ThermostatSystem.Thermostat.q5.t51 t51 --> q5 { /* < ref: 3 > */
			//@container = #prototype executable< moc: simple % state , id:5, instanciation: [ * ] > &spec::ThermostatSystem.Thermostat.q5 exec::ThermostatSystem.Thermostat.q5;
		@moe:
			@run{ |;|
				${ input std[stm]:>nops:rvalue:statement
					$( std[nop]:>nops:value:port inst::ThermostatSystem.Thermostat.error /* < ref: 16 > */ )
					$( std[nop]:>nop:lvalue:data inst::ThermostatSystem.Thermostat.z /* < ref: 16 > */ )
				}
				${ |§|
					${ disable#self }
					${ enable#set std[stm]:>seval:rvalue:statement
						$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Thermostat.q5 /* < ref: 8 > */ )
					}
				}
			}
			@opcode#family = input;
			@communication<final>{
				${ input inst::ThermostatSystem.Thermostat.error /* < ref: 16 > */ inst::ThermostatSystem.Thermostat.z /* < ref: 16 > */ }
			}
			@com#internal{
				${ input inst::ThermostatSystem.Thermostat.error /* < ref: 16 > */ inst::ThermostatSystem.Thermostat.z /* < ref: 16 > */ }
			}
			@com#input{
				port< id:2 , route:2 > input inst::ThermostatSystem.Thermostat.error[ parameter var< id:0, ptr:std > integer $0 ]
			}
			@com#input_enabled{
				port< id:2 , route:2 > input inst::ThermostatSystem.Thermostat.error[ parameter var< id:0, ptr:std > integer $0 ]
			}
		}
		transition< id:1 > &spec::ThermostatSystem.Thermostat.q5.t52 t52 --> q6 { /* < ref: 3 > */
			//@container = #prototype executable< moc: simple % state , id:5, instanciation: [ * ] > &spec::ThermostatSystem.Thermostat.q5 exec::ThermostatSystem.Thermostat.q5;
		@moe:
			@run{ |;|
				${ output std[stm]:>seval:rvalue:statement
					$( std[nop]:>nop:rvalue:port inst::ThermostatSystem.Thermostat.dt /* < ref: 10 > */ )
					$( ret[alu]:>seval:rvalue:expression { - ret[alu]:>seval:rvalue:expression
						$( std[nop]:>nop:rvalue:integer 25 )
						$( std[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.Thermostat.t /* < ref: 18 > */ )
					} )
				}
				${ |§|
					${ disable#self }
					${ enable#set std[stm]:>seval:rvalue:statement
						$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Thermostat.q6 /* < ref: 8 > */ )
					}
				}
			}
			@opcode#family = output;
			@communication<final>{
				${ output inst::ThermostatSystem.Thermostat.dt /* < ref: 10 > */ ${ - ret[alu]:>seval:rvalue:expression $( std[nop]:>nop:rvalue:integer 25 ) $( std[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.Thermostat.t /* < ref: 18 > */ ) } }
			}
			@com#internal{
				${ output inst::ThermostatSystem.Thermostat.dt /* < ref: 10 > */ ${ - ret[alu]:>seval:rvalue:expression $( std[nop]:>nop:rvalue:integer 25 ) $( std[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.Thermostat.t /* < ref: 18 > */ ) } }
			}
			@com#output{
				port< id:1 , route:1 > output inst::ThermostatSystem.Thermostat.dt[ parameter var< id:0, ptr:std > integer $0 ]
			}
		}
	@moe:
		@run{ |/\|
			${ invoke#transition transition::ThermostatSystem.Thermostat.q5.t51 /* < ref: 3 > */ }
			${ invoke#transition transition::ThermostatSystem.Thermostat.q5.t52 /* < ref: 3 > */ }
		}
	}

	#prototype executable< moc: simple % state , id:6, instanciation: [ * ] > &spec::ThermostatSystem.Thermostat.q6 exec::ThermostatSystem.Thermostat.q6 {
		//@container = #prototype executable< moc: #STS % statemachine , id:8, instanciation: [ + ] > &spec::ThermostatSystem.Thermostat exec::ThermostatSystem.Thermostat;
		//@prototype = #prototype instance< id:7, multiplicity: [ + ] > &exec::ThermostatSystem.Thermostat.q6 prot::ThermostatSystem.Thermostat.q6;
	@transition:
		transition< id:0 > &spec::ThermostatSystem.Thermostat.q6.t61 t61 --> q6 { /* < ref: 3 > */
			//@container = #prototype executable< moc: simple % state , id:6, instanciation: [ * ] > &spec::ThermostatSystem.Thermostat.q6 exec::ThermostatSystem.Thermostat.q6;
		@moe:
			@run{ |;|
				${ input std[stm]:>nops:rvalue:statement
					$( std[nop]:>nops:value:port inst::ThermostatSystem.Thermostat.equip /* < ref: 12 > */ )
					$( std[nop]:>nop:lvalue:data inst::ThermostatSystem.Thermostat.y /* < ref: 12 > */ )
				}
				${ |§|
					${ disable#self }
					${ enable#set std[stm]:>seval:rvalue:statement
						$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Thermostat.q6 /* < ref: 8 > */ )
					}
				}
			}
			@opcode#family = input;
			@communication<final>{
				${ input inst::ThermostatSystem.Thermostat.equip /* < ref: 12 > */ inst::ThermostatSystem.Thermostat.y /* < ref: 12 > */ }
			}
			@com#internal{
				${ input inst::ThermostatSystem.Thermostat.equip /* < ref: 12 > */ inst::ThermostatSystem.Thermostat.y /* < ref: 12 > */ }
			}
			@com#input{
				port< id:1 , route:1 > input inst::ThermostatSystem.Thermostat.equip[ parameter var< id:0, ptr:std > integer $0 ]
			}
			@com#input_enabled{
				port< id:1 , route:1 > input inst::ThermostatSystem.Thermostat.equip[ parameter var< id:0, ptr:std > integer $0 ]
			}
		}
		transition< id:1 > &spec::ThermostatSystem.Thermostat.q6.t62 t62 --> q6 { /* < ref: 3 > */
			//@container = #prototype executable< moc: simple % state , id:6, instanciation: [ * ] > &spec::ThermostatSystem.Thermostat.q6 exec::ThermostatSystem.Thermostat.q6;
		@moe:
			@run{ |;|
				${ input std[stm]:>nops:rvalue:statement
					$( std[nop]:>nops:value:port inst::ThermostatSystem.Thermostat.error /* < ref: 16 > */ )
					$( std[nop]:>nop:lvalue:data inst::ThermostatSystem.Thermostat.z /* < ref: 16 > */ )
				}
				${ |§|
					${ disable#self }
					${ enable#set std[stm]:>seval:rvalue:statement
						$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Thermostat.q6 /* < ref: 8 > */ )
					}
				}
			}
			@opcode#family = input;
			@communication<final>{
				${ input inst::ThermostatSystem.Thermostat.error /* < ref: 16 > */ inst::ThermostatSystem.Thermostat.z /* < ref: 16 > */ }
			}
			@com#internal{
				${ input inst::ThermostatSystem.Thermostat.error /* < ref: 16 > */ inst::ThermostatSystem.Thermostat.z /* < ref: 16 > */ }
			}
			@com#input{
				port< id:2 , route:2 > input inst::ThermostatSystem.Thermostat.error[ parameter var< id:0, ptr:std > integer $0 ]
			}
			@com#input_enabled{
				port< id:2 , route:2 > input inst::ThermostatSystem.Thermostat.error[ parameter var< id:0, ptr:std > integer $0 ]
			}
		}
		transition< id:2 > &spec::ThermostatSystem.Thermostat.q6.t63 t63 --> q7 { /* < ref: 3 > */
			//@container = #prototype executable< moc: simple % state , id:6, instanciation: [ * ] > &spec::ThermostatSystem.Thermostat.q6 exec::ThermostatSystem.Thermostat.q6;
		@moe:
			@run{ |;|
				${ input std[stm]:>nops:rvalue:statement
					$( std[nop]:>nops:value:port inst::ThermostatSystem.Thermostat.sens /* < ref: 8 > */ )
					$( std[nop]:>nop:lvalue:data inst::ThermostatSystem.Thermostat.t /* < ref: 18 > */ )
				}
				${ |§|
					${ disable#self }
					${ enable#set std[stm]:>seval:rvalue:statement
						$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Thermostat.q7 /* < ref: 8 > */ )
					}
				}
			}
			@opcode#family = input;
			@communication<final>{
				${ input inst::ThermostatSystem.Thermostat.sens /* < ref: 8 > */ inst::ThermostatSystem.Thermostat.t /* < ref: 18 > */ }
			}
			@com#internal{
				${ input inst::ThermostatSystem.Thermostat.sens /* < ref: 8 > */ inst::ThermostatSystem.Thermostat.t /* < ref: 18 > */ }
			}
			@com#input{
				port< id:0 , route:0 > input inst::ThermostatSystem.Thermostat.sens[ parameter var< id:0, ptr:std > integer $0 ]
			}
			@com#input_enabled{
				port< id:0 , route:0 > input inst::ThermostatSystem.Thermostat.sens[ parameter var< id:0, ptr:std > integer $0 ]
			}
		}
	@moe:
		@run{ |/\|
			${ invoke#transition transition::ThermostatSystem.Thermostat.q6.t61 /* < ref: 3 > */ }
			${ invoke#transition transition::ThermostatSystem.Thermostat.q6.t62 /* < ref: 3 > */ }
			${ invoke#transition transition::ThermostatSystem.Thermostat.q6.t63 /* < ref: 3 > */ }
		}
	}

	#prototype executable< moc: simple % state , id:7, instanciation: [ * ] > &spec::ThermostatSystem.Thermostat.q7 exec::ThermostatSystem.Thermostat.q7 {
		//@container = #prototype executable< moc: #STS % statemachine , id:8, instanciation: [ + ] > &spec::ThermostatSystem.Thermostat exec::ThermostatSystem.Thermostat;
		//@prototype = #prototype instance< id:8, multiplicity: [ + ] > &exec::ThermostatSystem.Thermostat.q7 prot::ThermostatSystem.Thermostat.q7;
	@transition:
		transition< id:0 > &spec::ThermostatSystem.Thermostat.q7.t71 t71 --> q7 { /* < ref: 3 > */
			//@container = #prototype executable< moc: simple % state , id:7, instanciation: [ * ] > &spec::ThermostatSystem.Thermostat.q7 exec::ThermostatSystem.Thermostat.q7;
		@moe:
			@run{ |;|
				${ input std[stm]:>nops:rvalue:statement
					$( std[nop]:>nops:value:port inst::ThermostatSystem.Thermostat.equip /* < ref: 12 > */ )
					$( std[nop]:>nop:lvalue:data inst::ThermostatSystem.Thermostat.y /* < ref: 12 > */ )
				}
				${ |§|
					${ disable#self }
					${ enable#set std[stm]:>seval:rvalue:statement
						$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Thermostat.q7 /* < ref: 8 > */ )
					}
				}
			}
			@opcode#family = input;
			@communication<final>{
				${ input inst::ThermostatSystem.Thermostat.equip /* < ref: 12 > */ inst::ThermostatSystem.Thermostat.y /* < ref: 12 > */ }
			}
			@com#internal{
				${ input inst::ThermostatSystem.Thermostat.equip /* < ref: 12 > */ inst::ThermostatSystem.Thermostat.y /* < ref: 12 > */ }
			}
			@com#input{
				port< id:1 , route:1 > input inst::ThermostatSystem.Thermostat.equip[ parameter var< id:0, ptr:std > integer $0 ]
			}
			@com#input_enabled{
				port< id:1 , route:1 > input inst::ThermostatSystem.Thermostat.equip[ parameter var< id:0, ptr:std > integer $0 ]
			}
		}
		transition< id:1 > &spec::ThermostatSystem.Thermostat.q7.t72 t72 --> q7 { /* < ref: 3 > */
			//@container = #prototype executable< moc: simple % state , id:7, instanciation: [ * ] > &spec::ThermostatSystem.Thermostat.q7 exec::ThermostatSystem.Thermostat.q7;
		@moe:
			@run{ |;|
				${ input std[stm]:>nops:rvalue:statement
					$( std[nop]:>nops:value:port inst::ThermostatSystem.Thermostat.error /* < ref: 16 > */ )
					$( std[nop]:>nop:lvalue:data inst::ThermostatSystem.Thermostat.z /* < ref: 16 > */ )
				}
				${ |§|
					${ disable#self }
					${ enable#set std[stm]:>seval:rvalue:statement
						$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Thermostat.q7 /* < ref: 8 > */ )
					}
				}
			}
			@opcode#family = input;
			@communication<final>{
				${ input inst::ThermostatSystem.Thermostat.error /* < ref: 16 > */ inst::ThermostatSystem.Thermostat.z /* < ref: 16 > */ }
			}
			@com#internal{
				${ input inst::ThermostatSystem.Thermostat.error /* < ref: 16 > */ inst::ThermostatSystem.Thermostat.z /* < ref: 16 > */ }
			}
			@com#input{
				port< id:2 , route:2 > input inst::ThermostatSystem.Thermostat.error[ parameter var< id:0, ptr:std > integer $0 ]
			}
			@com#input_enabled{
				port< id:2 , route:2 > input inst::ThermostatSystem.Thermostat.error[ parameter var< id:0, ptr:std > integer $0 ]
			}
		}
		transition< id:2 > &spec::ThermostatSystem.Thermostat.q7.t73 t73 --> q0 { /* < ref: 3 > */
			//@container = #prototype executable< moc: simple % state , id:7, instanciation: [ * ] > &spec::ThermostatSystem.Thermostat.q7 exec::ThermostatSystem.Thermostat.q7;
		@moe:
			@run{ |;|
				${ |§|
					${ guard ret[alu]:>seval:rvalue:expression
						$( ret[alu]:>seval:rvalue:expression { <= ret[alu]:>seval:rvalue:expression
							$( std[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.Thermostat.t /* < ref: 18 > */ )
							$( std[nop]:>nop:rvalue:integer 25 )
						} )
					}
					${ output std[stm]:>nops:rvalue:statement
						$( std[nop]:>nops:value:port inst::ThermostatSystem.Thermostat.dt /* < ref: 10 > */ )
						$( std[nop]:>nop:rvalue:integer 0 )
					}
				}
				${ |§|
					${ disable#self }
					${ enable#set std[stm]:>seval:rvalue:statement
						$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Thermostat.q0 /* < ref: 14 > */ )
					}
				}
			}
			@opcode#family = guard | output;
			@communication<final>{
				${ output inst::ThermostatSystem.Thermostat.dt /* < ref: 10 > */ 0 }
			}
			@com#internal{
				${ output inst::ThermostatSystem.Thermostat.dt /* < ref: 10 > */ 0 }
			}
			@com#output{
				port< id:1 , route:1 > output inst::ThermostatSystem.Thermostat.dt[ parameter var< id:0, ptr:std > integer $0 ]
			}
		}
		transition< id:3 > &spec::ThermostatSystem.Thermostat.q7.t74 t74 --> q5 { /* < ref: 3 > */
			//@container = #prototype executable< moc: simple % state , id:7, instanciation: [ * ] > &spec::ThermostatSystem.Thermostat.q7 exec::ThermostatSystem.Thermostat.q7;
		@moe:
			@run{ |§|
				${ guard ret[alu]:>seval:rvalue:expression
					$( ret[alu]:>seval:rvalue:expression { > ret[alu]:>seval:rvalue:expression
						$( std[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.Thermostat.t /* < ref: 18 > */ )
						$( std[nop]:>nop:rvalue:integer 25 )
					} )
				}
				${ disable#self }
				${ enable#set std[stm]:>seval:rvalue:statement
					$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Thermostat.q5 /* < ref: 8 > */ )
				}
			}
			@opcode#family = guard;
		}
	@moe:
		@run{ |/\|
			${ invoke#transition transition::ThermostatSystem.Thermostat.q7.t71 /* < ref: 3 > */ }
			${ invoke#transition transition::ThermostatSystem.Thermostat.q7.t72 /* < ref: 3 > */ }
			${ invoke#transition transition::ThermostatSystem.Thermostat.q7.t73 /* < ref: 3 > */ }
			${ invoke#transition transition::ThermostatSystem.Thermostat.q7.t74 /* < ref: 3 > */ }
		}
	}

	#prototype executable< moc: #STS % statemachine , id:8, instanciation: [ + ] > &spec::ThermostatSystem.Thermostat exec::ThermostatSystem.Thermostat {
		//@container = timed executable< moc: and % system , id:15, instanciation: [ + ] > &spec::ThermostatSystem exec::ThermostatSystem;
		//@prototype = #prototype instance< id:1, multiplicity: [ + ] > &exec::ThermostatSystem.Thermostat prot::ThermostatSystem.Thermostat;
	@type:
		type type::ThermostatSystem.Thermostat.mode enum {
			//@compiled = spec::ThermostatSystem.Thermostat.mode;
		@property:
			@size = 1;   @data_size = 1;   @bit_size = 3;
		@symbol:
			public static const< id:0, ptr:enum > mode const::ThermostatSystem.Thermostat.mode.OFF 'OFF' /* < ref: 2 > */ {
				//@compiled = spec::ThermostatSystem.Thermostat.mode.OFF;
				//@container = exec::ThermostatSystem.Thermostat;
				@value = const::ThermostatSystem.Thermostat.mode.OFF;
			}
			public static const< id:1, ptr:enum > mode const::ThermostatSystem.Thermostat.mode.HEATING 'HEATING' /* < ref: 2 > */ {
				//@compiled = spec::ThermostatSystem.Thermostat.mode.HEATING;
				//@container = exec::ThermostatSystem.Thermostat;
				@value = const::ThermostatSystem.Thermostat.mode.HEATING;
			}
			public static const< id:2, ptr:enum > mode const::ThermostatSystem.Thermostat.mode.COOLING 'COOLING' /* < ref: 2 > */ {
				//@compiled = spec::ThermostatSystem.Thermostat.mode.COOLING;
				//@container = exec::ThermostatSystem.Thermostat;
				@value = const::ThermostatSystem.Thermostat.mode.COOLING;
			}
		}
	@variable:
		const< id:0, ptr:std > integer inst::ThermostatSystem.Thermostat.TMIN 'TMIN' /* < ref: 2 > */ {
			//@compiled = spec::ThermostatSystem.Thermostat.TMIN;
			//@container = exec::ThermostatSystem.Thermostat;
			@value = 20;
		}
		const< id:0, ptr:std > integer inst::ThermostatSystem.Thermostat.TMAX 'TMAX' /* < ref: 2 > */ {
			//@compiled = spec::ThermostatSystem.Thermostat.TMAX;
			//@container = exec::ThermostatSystem.Thermostat;
			@value = 25;
		}

		var< id:0, ptr:std > integer inst::ThermostatSystem.Thermostat.t 't' /* < ref: 18 > */ {
			//@compiled = spec::ThermostatSystem.Thermostat.t;
			//@container = exec::ThermostatSystem.Thermostat;
			@rid#container = run::pid#2:ThermostatSystem.Thermostat;
		}
		var< id:1, ptr:std > integer inst::ThermostatSystem.Thermostat.y 'y' /* < ref: 12 > */ {
			//@compiled = spec::ThermostatSystem.Thermostat.y;
			//@container = exec::ThermostatSystem.Thermostat;
			@rid#container = run::pid#2:ThermostatSystem.Thermostat;
		}
		var< id:2, ptr:std > integer inst::ThermostatSystem.Thermostat.z 'z' /* < ref: 16 > */ {
			//@compiled = spec::ThermostatSystem.Thermostat.z;
			//@container = exec::ThermostatSystem.Thermostat;
			@rid#container = run::pid#2:ThermostatSystem.Thermostat;
		}
	@port:
		public port< id:0 , route:0 > input inst::ThermostatSystem.Thermostat.sens /* < ref: 8 > */ {
			//@compiled = spec::ThermostatSystem.Thermostat.sens;
			//@container = exec::ThermostatSystem.Thermostat;
			@rid#container = run::pid#2:ThermostatSystem.Thermostat;
			@routing#input#data = routing< env , mid:1 > run::pid#1:ThermostatSystem;
		@parameter:
			parameter var< id:0, ptr:std > integer $0;
		}
		public port< id:1 , route:1 > input inst::ThermostatSystem.Thermostat.equip /* < ref: 12 > */ {
			//@compiled = spec::ThermostatSystem.Thermostat.equip;
			//@container = exec::ThermostatSystem.Thermostat;
			@rid#container = run::pid#2:ThermostatSystem.Thermostat;
			@routing#input#data = routing< rdv , mid:4 > run::pid#1:ThermostatSystem;
		@parameter:
			parameter var< id:0, ptr:std > integer $0;
		}
		public port< id:2 , route:2 > input inst::ThermostatSystem.Thermostat.error /* < ref: 16 > */ {
			//@compiled = spec::ThermostatSystem.Thermostat.error;
			//@container = exec::ThermostatSystem.Thermostat;
			@rid#container = run::pid#2:ThermostatSystem.Thermostat;
			@routing#input#data = routing< rdv , mid:3 > run::pid#1:ThermostatSystem;
		@parameter:
			parameter var< id:0, ptr:std > integer $0;
		}
		public port< id:0 , route:0 > output inst::ThermostatSystem.Thermostat.screen /* < ref: 8 > */ {
			//@compiled = spec::ThermostatSystem.Thermostat.screen;
			//@container = exec::ThermostatSystem.Thermostat;
			@rid#container = run::pid#2:ThermostatSystem.Thermostat;
			@routing#output#data = routing< env , mid:1 > run::pid#1:ThermostatSystem;
		@parameter:
			parameter var< id:0, ptr:std > integer $0;
		}
		public port< id:1 , route:1 > output inst::ThermostatSystem.Thermostat.dt /* < ref: 10 > */ {
			//@compiled = spec::ThermostatSystem.Thermostat.dt;
			//@container = exec::ThermostatSystem.Thermostat;
			@rid#container = run::pid#2:ThermostatSystem.Thermostat;
			@routing#output#data = routing< rdv , mid:2 > run::pid#1:ThermostatSystem;
		@parameter:
			parameter var< id:0, ptr:std > integer $0;
		}
		public port< id:2 , route:2 > output inst::ThermostatSystem.Thermostat.test /* < ref: 2 > */ {
			//@compiled = spec::ThermostatSystem.Thermostat.test;
			//@container = exec::ThermostatSystem.Thermostat;
			@rid#container = run::pid#2:ThermostatSystem.Thermostat;
			@routing#output#data = routing< env , mid:0 > run::pid#1:ThermostatSystem;
		@parameter:
			parameter var< id:0, ptr:std > integer $0;
		}
	@router:
		router model::ThermostatSystem.Thermostat /* < ref: 2 > */ {
		@input:
			routing< env , mid:0 > model::ThermostatSystem.Thermostat->inst::ThermostatSystem.Thermostat.sens { /* < ref: 1 > */
			}
			routing< env , mid:0 > model::ThermostatSystem.Thermostat->inst::ThermostatSystem.Thermostat.equip { /* < ref: 1 > */
			}
			routing< env , mid:0 > model::ThermostatSystem.Thermostat->inst::ThermostatSystem.Thermostat.error { /* < ref: 1 > */
			}
		@output:
			routing< env , mid:0 > model::ThermostatSystem.Thermostat->inst::ThermostatSystem.Thermostat.screen { /* < ref: 1 > */
			}
			routing< env , mid:0 > model::ThermostatSystem.Thermostat->inst::ThermostatSystem.Thermostat.dt { /* < ref: 1 > */
			}
			routing< env , mid:0 > model::ThermostatSystem.Thermostat->inst::ThermostatSystem.Thermostat.test { /* < ref: 2 > */
			}
		}

	@router#model:
		router model::ThermostatSystem.Thermostat /* < ref: 2 > */ {
		@input:
			routing< env , mid:0 > model::ThermostatSystem.Thermostat->inst::ThermostatSystem.Thermostat.sens { /* < ref: 1 > */
			}
			routing< env , mid:0 > model::ThermostatSystem.Thermostat->inst::ThermostatSystem.Thermostat.equip { /* < ref: 1 > */
			}
			routing< env , mid:0 > model::ThermostatSystem.Thermostat->inst::ThermostatSystem.Thermostat.error { /* < ref: 1 > */
			}
		@output:
			routing< env , mid:0 > model::ThermostatSystem.Thermostat->inst::ThermostatSystem.Thermostat.screen { /* < ref: 1 > */
			}
			routing< env , mid:0 > model::ThermostatSystem.Thermostat->inst::ThermostatSystem.Thermostat.dt { /* < ref: 1 > */
			}
			routing< env , mid:0 > model::ThermostatSystem.Thermostat->inst::ThermostatSystem.Thermostat.test { /* < ref: 2 > */
			}
		}

	@model:
		#model instance< id:0, multiplicity: [ 1 ], this > &exec::ThermostatSystem.Thermostat model::ThermostatSystem.Thermostat.$this /* < ref: 1 > */ {
		//@property:
			//@compiled = spec::ThermostatSystem.Thermostat;
			//@container = exec::ThermostatSystem.Thermostat;
		}
	@instance:
		#static instance< id:0, multiplicity: [ 1 ], this > &exec::ThermostatSystem.Thermostat prot::ThermostatSystem.Thermostat.$this /* < ref: 1 > */ {
		//@property:
			//@compiled = spec::ThermostatSystem.Thermostat;
			//@container = exec::ThermostatSystem.Thermostat;
			//@model = model::ThermostatSystem.Thermostat.$this;
		}
		#prototype instance< id:1, multiplicity: [ + ] > &exec::ThermostatSystem.Thermostat.q0 prot::ThermostatSystem.Thermostat.q0 /* < ref: 14 > */ {
		//@property:
			//@compiled = spec::ThermostatSystem.Thermostat.q0;
			//@container = exec::ThermostatSystem.Thermostat;
			@rid#runtime = run::pid#3:ThermostatSystem.Thermostat.q0;
		}
		#prototype instance< id:2, multiplicity: [ + ] > &exec::ThermostatSystem.Thermostat.q1 prot::ThermostatSystem.Thermostat.q1 /* < ref: 4 > */ {
		//@property:
			//@compiled = spec::ThermostatSystem.Thermostat.q1;
			//@container = exec::ThermostatSystem.Thermostat;
			@rid#runtime = run::pid#4:ThermostatSystem.Thermostat.q1;
		}
		#prototype instance< id:3, multiplicity: [ + ] > &exec::ThermostatSystem.Thermostat.q2 prot::ThermostatSystem.Thermostat.q2 /* < ref: 8 > */ {
		//@property:
			//@compiled = spec::ThermostatSystem.Thermostat.q2;
			//@container = exec::ThermostatSystem.Thermostat;
			@rid#runtime = run::pid#5:ThermostatSystem.Thermostat.q2;
		}
		#prototype instance< id:4, multiplicity: [ + ] > &exec::ThermostatSystem.Thermostat.q3 prot::ThermostatSystem.Thermostat.q3 /* < ref: 8 > */ {
		//@property:
			//@compiled = spec::ThermostatSystem.Thermostat.q3;
			//@container = exec::ThermostatSystem.Thermostat;
			@rid#runtime = run::pid#6:ThermostatSystem.Thermostat.q3;
		}
		#prototype instance< id:5, multiplicity: [ + ] > &exec::ThermostatSystem.Thermostat.q4 prot::ThermostatSystem.Thermostat.q4 /* < ref: 8 > */ {
		//@property:
			//@compiled = spec::ThermostatSystem.Thermostat.q4;
			//@container = exec::ThermostatSystem.Thermostat;
			@rid#runtime = run::pid#7:ThermostatSystem.Thermostat.q4;
		}
		#prototype instance< id:6, multiplicity: [ + ] > &exec::ThermostatSystem.Thermostat.q5 prot::ThermostatSystem.Thermostat.q5 /* < ref: 8 > */ {
		//@property:
			//@compiled = spec::ThermostatSystem.Thermostat.q5;
			//@container = exec::ThermostatSystem.Thermostat;
			@rid#runtime = run::pid#8:ThermostatSystem.Thermostat.q5;
		}
		#prototype instance< id:7, multiplicity: [ + ] > &exec::ThermostatSystem.Thermostat.q6 prot::ThermostatSystem.Thermostat.q6 /* < ref: 8 > */ {
		//@property:
			//@compiled = spec::ThermostatSystem.Thermostat.q6;
			//@container = exec::ThermostatSystem.Thermostat;
			@rid#runtime = run::pid#9:ThermostatSystem.Thermostat.q6;
		}
		#prototype instance< id:8, multiplicity: [ + ] > &exec::ThermostatSystem.Thermostat.q7 prot::ThermostatSystem.Thermostat.q7 /* < ref: 8 > */ {
		//@property:
			//@compiled = spec::ThermostatSystem.Thermostat.q7;
			//@container = exec::ThermostatSystem.Thermostat;
			@rid#runtime = run::pid#10:ThermostatSystem.Thermostat.q7;
		}
	@moe:
		@init{${ init std[stm]:>seval:rvalue:statement
				$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Thermostat.q0 /* < ref: 14 > */ )
			}
		}
		@enable{
			${ comment "nop<enable> exec::ThermostatSystem.Thermostat.q0" }
		}
		@disable{ |§|
			${ disable#child }
			${ disable#self }
		}
		@run{${ schedule std[stm]:>seval:rvalue:statement
				$( std[dma:rid]:>seval:rvalue:self#rid const::self /* < ref: 4 > */ )
			}
		}
		@schedule{
			${ run prot::ThermostatSystem.Thermostat.q0 /* < ref: 14 > */ }
		}
	}

	#prototype executable< moc: start % state , id:9, instanciation: [ * ] > &spec::ThermostatSystem.Equipment.s0 exec::ThermostatSystem.Equipment.s0 {
		//@container = #prototype executable< moc: #STS % statemachine , id:14, instanciation: [ + ] > &spec::ThermostatSystem.Equipment exec::ThermostatSystem.Equipment;
		//@prototype = #prototype instance< id:1, multiplicity: [ + ] > &exec::ThermostatSystem.Equipment.s0 prot::ThermostatSystem.Equipment.s0;
	@transition:
		transition< id:0 > &spec::ThermostatSystem.Equipment.s0.e1 e1 --> s1 { /* < ref: 3 > */
			//@container = #prototype executable< moc: start % state , id:9, instanciation: [ * ] > &spec::ThermostatSystem.Equipment.s0 exec::ThermostatSystem.Equipment.s0;
		@moe:
			@run{ |;|
				${ input std[stm]:>nops:rvalue:statement
					$( std[nop]:>nops:value:port inst::ThermostatSystem.Equipment.dt /* < ref: 6 > */ )
					$( std[nop]:>nop:lvalue:data inst::ThermostatSystem.Equipment.x /* < ref: 16 > */ )
				}
				${ |§|
					${ := std[stm]:>nops:rvalue:statement
						$( std[nop]:>nops:value:data inst::ThermostatSystem.Equipment.c /* < ref: 19 > */ )
						$( std[nop]:>nop:rvalue:integer 0 )
					}
					${ disable#self }
					${ enable#set std[stm]:>seval:rvalue:statement
						$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Equipment.s1 /* < ref: 4 > */ )
					}
				}
			}
			@opcode#family = basic | input;
			@communication<final>{
				${ input inst::ThermostatSystem.Equipment.dt /* < ref: 6 > */ inst::ThermostatSystem.Equipment.x /* < ref: 16 > */ }
			}
			@com#internal{
				${ input inst::ThermostatSystem.Equipment.dt /* < ref: 6 > */ inst::ThermostatSystem.Equipment.x /* < ref: 16 > */ }
			}
			@com#input{
				port< id:0 , route:0 > input inst::ThermostatSystem.Equipment.dt[ parameter var< id:0, ptr:std > integer $0 ]
			}
			@com#input_enabled{
				port< id:0 , route:0 > input inst::ThermostatSystem.Equipment.dt[ parameter var< id:0, ptr:std > integer $0 ]
			}
		}
	@moe:
		@run{
			${ invoke#transition transition::ThermostatSystem.Equipment.s0.e1 /* < ref: 3 > */ }
		}
	}

	#prototype executable< moc: simple % state , id:10, instanciation: [ * ] > &spec::ThermostatSystem.Equipment.s1 exec::ThermostatSystem.Equipment.s1 {
		//@container = #prototype executable< moc: #STS % statemachine , id:14, instanciation: [ + ] > &spec::ThermostatSystem.Equipment exec::ThermostatSystem.Equipment;
		//@prototype = #prototype instance< id:2, multiplicity: [ + ] > &exec::ThermostatSystem.Equipment.s1 prot::ThermostatSystem.Equipment.s1;
	@transition:
		transition< id:0 > &spec::ThermostatSystem.Equipment.s1.e11 e11 --> s0 { /* < ref: 3 > */
			//@container = #prototype executable< moc: simple % state , id:10, instanciation: [ * ] > &spec::ThermostatSystem.Equipment.s1 exec::ThermostatSystem.Equipment.s1;
		@moe:
			@run{ |;|
				${ |§|
					${ guard ret[alu]:>seval:rvalue:expression
						$( ret[alu]:>seval:rvalue:expression { == ret[alu]:>seval:rvalue:expression
							$( std[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.Equipment.x /* < ref: 16 > */ )
							$( std[nop]:>nop:rvalue:integer 0 )
						} )
					}
					${ := std[stm]:>nops:rvalue:statement
						$( std[nop]:>nops:value:data inst::ThermostatSystem.Equipment.x /* < ref: 16 > */ )
						$( std[nop]:>nop:rvalue:integer 0 )
					}
					${ comment "end<guard>" }
					${ tguard ret[alu]:>seval:rvalue:expression
						$( ret[alu]:>seval:rvalue:expression { <= ret[alu]:>seval:rvalue:expression
							$( std[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.Equipment.c /* < ref: 19 > */ )
							$( std[nop]:>nop:rvalue:integer 2 )
						} )
					}
					${ := std[stm]:>nops:rvalue:statement
						$( std[nop]:>nops:value:data inst::ThermostatSystem.Equipment.c /* < ref: 19 > */ )
						$( std[nop]:>nop:rvalue:integer 0 )
					}
					${ output std[stm]:>nops:rvalue:statement
						$( std[nop]:>nops:value:port inst::ThermostatSystem.Equipment.equip /* < ref: 8 > */ )
						$( std[nop]:>nop:rvalue:integer 0 )
					}
				}
				${ |§|
					${ := std[stm]:>nops:rvalue:statement
						$( std[nop]:>nops:value:data inst::ThermostatSystem.Equipment.isOn /* < ref: 5 > */ )
						$( std[nop]:>nop:rvalue:boolean false )
					}
					${ disable#self }
					${ enable#set std[stm]:>seval:rvalue:statement
						$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Equipment.s0 /* < ref: 10 > */ )
					}
				}
			}
			@opcode#family = basic | guard | output;
			@communication<final>{
				${ output inst::ThermostatSystem.Equipment.equip /* < ref: 8 > */ 0 }
			}
			@com#internal{
				${ output inst::ThermostatSystem.Equipment.equip /* < ref: 8 > */ 0 }
			}
			@com#output{
				port< id:0 , route:0 > output inst::ThermostatSystem.Equipment.equip[ parameter var< id:0, ptr:std > integer $0 ]
			}
		}
		transition< id:1 > &spec::ThermostatSystem.Equipment.s1.e12 e12 --> s2 { /* < ref: 3 > */
			//@container = #prototype executable< moc: simple % state , id:10, instanciation: [ * ] > &spec::ThermostatSystem.Equipment.s1 exec::ThermostatSystem.Equipment.s1;
		@moe:
			@run{ |§|
				${ guard ret[alu]:>seval:rvalue:expression
					$( ret[alu]:>seval:rvalue:expression { > ret[alu]:>seval:rvalue:expression
						$( std[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.Equipment.x /* < ref: 16 > */ )
						$( std[nop]:>nop:rvalue:integer 0 )
					} )
				}
				${ tguard ret[alu]:>seval:rvalue:expression
					$( ret[alu]:>seval:rvalue:expression { <= ret[alu]:>seval:rvalue:expression
						$( std[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.Equipment.c /* < ref: 19 > */ )
						$( std[nop]:>nop:rvalue:integer 2 )
					} )
				}
				${ := std[stm]:>nops:rvalue:statement
					$( std[nop]:>nops:value:data inst::ThermostatSystem.Equipment.c /* < ref: 19 > */ )
					$( std[nop]:>nop:rvalue:integer 0 )
				}
				${ := std[stm]:>nops:rvalue:statement
					$( std[nop]:>nops:value:data inst::ThermostatSystem.Equipment.isOn /* < ref: 5 > */ )
					$( std[nop]:>nop:rvalue:boolean true )
				}
				${ disable#self }
				${ enable#set std[stm]:>seval:rvalue:statement
					$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Equipment.s2 /* < ref: 6 > */ )
				}
			}
			@opcode#family = basic | guard;
		}
		transition< id:2 > &spec::ThermostatSystem.Equipment.s1.e13 e13 --> s4 { /* < ref: 3 > */
			//@container = #prototype executable< moc: simple % state , id:10, instanciation: [ * ] > &spec::ThermostatSystem.Equipment.s1 exec::ThermostatSystem.Equipment.s1;
		@moe:
			@run{ |;|
				${ |§|
					${ tguard ret[alu]:>seval:rvalue:expression
						$( ret[alu]:>seval:rvalue:expression { > ret[alu]:>seval:rvalue:expression
							$( std[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.Equipment.c /* < ref: 19 > */ )
							$( std[nop]:>nop:rvalue:integer 2 )
						} )
					}
					${ output std[stm]:>nops:rvalue:statement
						$( std[nop]:>nops:value:port inst::ThermostatSystem.Equipment.error /* < ref: 8 > */ )
						$( std[nop]:>nop:rvalue:integer 0 )
					}
				}
				${ |§|
					${ disable#self }
					${ enable#set std[stm]:>seval:rvalue:statement
						$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Equipment.s4 /* < ref: 10 > */ )
					}
				}
			}
			@opcode#family = guard | output;
			@communication<final>{
				${ output inst::ThermostatSystem.Equipment.error /* < ref: 8 > */ 0 }
			}
			@com#internal{
				${ output inst::ThermostatSystem.Equipment.error /* < ref: 8 > */ 0 }
			}
			@com#output{
				port< id:1 , route:1 > output inst::ThermostatSystem.Equipment.error[ parameter var< id:0, ptr:std > integer $0 ]
			}
		}
		transition< id:3 > &spec::ThermostatSystem.Equipment.s1.e14 e14 --> s3 { /* < ref: 3 > */
			//@container = #prototype executable< moc: simple % state , id:10, instanciation: [ * ] > &spec::ThermostatSystem.Equipment.s1 exec::ThermostatSystem.Equipment.s1;
		@moe:
			@run{ |§|
				${ guard ret[alu]:>seval:rvalue:expression
					$( ret[alu]:>seval:rvalue:expression { < ret[alu]:>seval:rvalue:expression
						$( std[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.Equipment.x /* < ref: 16 > */ )
						$( std[nop]:>nop:rvalue:integer 0 )
					} )
				}
				${ tguard ret[alu]:>seval:rvalue:expression
					$( ret[alu]:>seval:rvalue:expression { <= ret[alu]:>seval:rvalue:expression
						$( std[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.Equipment.c /* < ref: 19 > */ )
						$( std[nop]:>nop:rvalue:integer 2 )
					} )
				}
				${ := std[stm]:>nops:rvalue:statement
					$( std[nop]:>nops:value:data inst::ThermostatSystem.Equipment.c /* < ref: 19 > */ )
					$( std[nop]:>nop:rvalue:integer 0 )
				}
				${ := std[stm]:>nops:rvalue:statement
					$( std[nop]:>nops:value:data inst::ThermostatSystem.Equipment.isOn /* < ref: 5 > */ )
					$( std[nop]:>nop:rvalue:boolean true )
				}
				${ disable#self }
				${ enable#set std[stm]:>seval:rvalue:statement
					$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Equipment.s3 /* < ref: 6 > */ )
				}
			}
			@opcode#family = basic | guard;
		}
	@moe:
		@run{ |/\|
			${ invoke#transition transition::ThermostatSystem.Equipment.s1.e11 /* < ref: 3 > */ }
			${ invoke#transition transition::ThermostatSystem.Equipment.s1.e12 /* < ref: 3 > */ }
			${ invoke#transition transition::ThermostatSystem.Equipment.s1.e13 /* < ref: 3 > */ }
			${ invoke#transition transition::ThermostatSystem.Equipment.s1.e14 /* < ref: 3 > */ }
		}
	}

	#prototype executable< moc: simple % state , id:11, instanciation: [ * ] > &spec::ThermostatSystem.Equipment.s2 exec::ThermostatSystem.Equipment.s2 {
		//@container = #prototype executable< moc: #STS % statemachine , id:14, instanciation: [ + ] > &spec::ThermostatSystem.Equipment exec::ThermostatSystem.Equipment;
		//@prototype = #prototype instance< id:3, multiplicity: [ + ] > &exec::ThermostatSystem.Equipment.s2 prot::ThermostatSystem.Equipment.s2;
	@transition:
		transition< id:0 > &spec::ThermostatSystem.Equipment.s2.e21 e21 --> s0 { /* < ref: 3 > */
			//@container = #prototype executable< moc: simple % state , id:11, instanciation: [ * ] > &spec::ThermostatSystem.Equipment.s2 exec::ThermostatSystem.Equipment.s2;
		@moe:
			@run{ |§|
				${ disable#self }
				${ enable#set std[stm]:>seval:rvalue:statement
					$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Equipment.s0 /* < ref: 10 > */ )
				}
			}
		}
		transition< id:1 > &spec::ThermostatSystem.Equipment.s2.e22 e22 --> s2 { /* < ref: 3 > */
			//@container = #prototype executable< moc: simple % state , id:11, instanciation: [ * ] > &spec::ThermostatSystem.Equipment.s2 exec::ThermostatSystem.Equipment.s2;
		@moe:
			@run{ |;|
				${ |§|
					${ guard ret[alu]:>seval:rvalue:expression
						$( ret[alu]:>seval:rvalue:expression { > ret[alu]:>seval:rvalue:expression
							$( std[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.Equipment.x /* < ref: 16 > */ )
							$( std[nop]:>nop:rvalue:integer 0 )
						} )
					}
					${ tguard ret[alu]:>seval:rvalue:expression
						$( ret[alu]:>seval:rvalue:expression { <= ret[alu]:>seval:rvalue:expression
							$( std[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.Equipment.c /* < ref: 19 > */ )
							$( std[nop]:>nop:rvalue:integer 1 )
						} )
					}
					${ := std[stm]:>nops:rvalue:statement
						$( std[nop]:>nops:value:data inst::ThermostatSystem.Equipment.c /* < ref: 19 > */ )
						$( std[nop]:>nop:rvalue:integer 0 )
					}
					${ output std[stm]:>nops:rvalue:statement
						$( std[nop]:>nops:value:port inst::ThermostatSystem.Equipment.equip /* < ref: 8 > */ )
						$( std[nop]:>nop:rvalue:integer 4 )
					}
				}
				${ |§|
					${ := std[stm]:>seval:rvalue:statement
						$( std[nop]:>nop:lvalue:data inst::ThermostatSystem.Equipment.x /* < ref: 16 > */ )
						$( ret[alu]:>seval:rvalue:expression { - ret[alu]:>seval:rvalue:expression
							$( std[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.Equipment.x /* < ref: 16 > */ )
							$( std[nop]:>nop:rvalue:integer 4 )
						} )
					}
					${ disable#self }
					${ enable#set std[stm]:>seval:rvalue:statement
						$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Equipment.s2 /* < ref: 6 > */ )
					}
				}
			}
			@opcode#family = basic | guard | output;
			@communication<final>{
				${ output inst::ThermostatSystem.Equipment.equip /* < ref: 8 > */ 4 }
			}
			@com#internal{
				${ output inst::ThermostatSystem.Equipment.equip /* < ref: 8 > */ 4 }
			}
			@com#output{
				port< id:0 , route:0 > output inst::ThermostatSystem.Equipment.equip[ parameter var< id:0, ptr:std > integer $0 ]
			}
		}
		transition< id:2 > &spec::ThermostatSystem.Equipment.s2.e23 e23 --> s4 { /* < ref: 3 > */
			//@container = #prototype executable< moc: simple % state , id:11, instanciation: [ * ] > &spec::ThermostatSystem.Equipment.s2 exec::ThermostatSystem.Equipment.s2;
		@moe:
			@run{ |;|
				${ |§|
					${ tguard ret[alu]:>seval:rvalue:expression
						$( ret[alu]:>seval:rvalue:expression { > ret[alu]:>seval:rvalue:expression
							$( std[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.Equipment.c /* < ref: 19 > */ )
							$( std[nop]:>nop:rvalue:integer 1 )
						} )
					}
					${ output std[stm]:>nops:rvalue:statement
						$( std[nop]:>nops:value:port inst::ThermostatSystem.Equipment.error /* < ref: 8 > */ )
						$( std[nop]:>nop:rvalue:integer 0 )
					}
				}
				${ |§|
					${ disable#self }
					${ enable#set std[stm]:>seval:rvalue:statement
						$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Equipment.s4 /* < ref: 10 > */ )
					}
				}
			}
			@opcode#family = guard | output;
			@communication<final>{
				${ output inst::ThermostatSystem.Equipment.error /* < ref: 8 > */ 0 }
			}
			@com#internal{
				${ output inst::ThermostatSystem.Equipment.error /* < ref: 8 > */ 0 }
			}
			@com#output{
				port< id:1 , route:1 > output inst::ThermostatSystem.Equipment.error[ parameter var< id:0, ptr:std > integer $0 ]
			}
		}
	@moe:
		@run{ |/\|
			${ invoke#transition transition::ThermostatSystem.Equipment.s2.e21 /* < ref: 3 > */ }
			${ invoke#transition transition::ThermostatSystem.Equipment.s2.e22 /* < ref: 3 > */ }
			${ invoke#transition transition::ThermostatSystem.Equipment.s2.e23 /* < ref: 3 > */ }
		}
	}

	#prototype executable< moc: simple % state , id:12, instanciation: [ * ] > &spec::ThermostatSystem.Equipment.s3 exec::ThermostatSystem.Equipment.s3 {
		//@container = #prototype executable< moc: #STS % statemachine , id:14, instanciation: [ + ] > &spec::ThermostatSystem.Equipment exec::ThermostatSystem.Equipment;
		//@prototype = #prototype instance< id:4, multiplicity: [ + ] > &exec::ThermostatSystem.Equipment.s3 prot::ThermostatSystem.Equipment.s3;
	@transition:
		transition< id:0 > &spec::ThermostatSystem.Equipment.s3.e31 e31 --> s0 { /* < ref: 3 > */
			//@container = #prototype executable< moc: simple % state , id:12, instanciation: [ * ] > &spec::ThermostatSystem.Equipment.s3 exec::ThermostatSystem.Equipment.s3;
		@moe:
			@run{ |§|
				${ disable#self }
				${ enable#set std[stm]:>seval:rvalue:statement
					$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Equipment.s0 /* < ref: 10 > */ )
				}
			}
		}
		transition< id:1 > &spec::ThermostatSystem.Equipment.s3.e32 e32 --> s3 { /* < ref: 3 > */
			//@container = #prototype executable< moc: simple % state , id:12, instanciation: [ * ] > &spec::ThermostatSystem.Equipment.s3 exec::ThermostatSystem.Equipment.s3;
		@moe:
			@run{ |;|
				${ |§|
					${ guard ret[alu]:>seval:rvalue:expression
						$( ret[alu]:>seval:rvalue:expression { < ret[alu]:>seval:rvalue:expression
							$( std[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.Equipment.x /* < ref: 16 > */ )
							$( std[nop]:>nop:rvalue:integer 0 )
						} )
					}
					${ tguard ret[alu]:>seval:rvalue:expression
						$( ret[alu]:>seval:rvalue:expression { <= ret[alu]:>seval:rvalue:expression
							$( std[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.Equipment.c /* < ref: 19 > */ )
							$( std[nop]:>nop:rvalue:integer 1 )
						} )
					}
					${ := std[stm]:>nops:rvalue:statement
						$( std[nop]:>nops:value:data inst::ThermostatSystem.Equipment.c /* < ref: 19 > */ )
						$( std[nop]:>nop:rvalue:integer 0 )
					}
					${ output std[stm]:>nops:rvalue:statement
						$( std[nop]:>nops:value:port inst::ThermostatSystem.Equipment.equip /* < ref: 8 > */ )
						$( std[nop]:>nop:rvalue:integer -4 )
					}
				}
				${ |§|
					${ := std[stm]:>seval:rvalue:statement
						$( std[nop]:>nop:lvalue:data inst::ThermostatSystem.Equipment.x /* < ref: 16 > */ )
						$( ret[alu]:>seval:rvalue:expression { + ret[alu]:>seval:rvalue:expression
							$( arg[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.Equipment.x /* < ref: 16 > */ )
							$( arg[nop]:>nop:rvalue:integer 4 )
						} )
					}
					${ disable#self }
					${ enable#set std[stm]:>seval:rvalue:statement
						$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Equipment.s3 /* < ref: 6 > */ )
					}
				}
			}
			@opcode#family = basic | guard | output;
			@communication<final>{
				${ output inst::ThermostatSystem.Equipment.equip /* < ref: 8 > */ -4 }
			}
			@com#internal{
				${ output inst::ThermostatSystem.Equipment.equip /* < ref: 8 > */ -4 }
			}
			@com#output{
				port< id:0 , route:0 > output inst::ThermostatSystem.Equipment.equip[ parameter var< id:0, ptr:std > integer $0 ]
			}
		}
		transition< id:2 > &spec::ThermostatSystem.Equipment.s3.e33 e33 --> s4 { /* < ref: 3 > */
			//@container = #prototype executable< moc: simple % state , id:12, instanciation: [ * ] > &spec::ThermostatSystem.Equipment.s3 exec::ThermostatSystem.Equipment.s3;
		@moe:
			@run{ |;|
				${ |§|
					${ tguard ret[alu]:>seval:rvalue:expression
						$( ret[alu]:>seval:rvalue:expression { > ret[alu]:>seval:rvalue:expression
							$( std[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.Equipment.c /* < ref: 19 > */ )
							$( std[nop]:>nop:rvalue:integer 1 )
						} )
					}
					${ output std[stm]:>nops:rvalue:statement
						$( std[nop]:>nops:value:port inst::ThermostatSystem.Equipment.error /* < ref: 8 > */ )
						$( std[nop]:>nop:rvalue:integer 0 )
					}
				}
				${ |§|
					${ disable#self }
					${ enable#set std[stm]:>seval:rvalue:statement
						$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Equipment.s4 /* < ref: 10 > */ )
					}
				}
			}
			@opcode#family = guard | output;
			@communication<final>{
				${ output inst::ThermostatSystem.Equipment.error /* < ref: 8 > */ 0 }
			}
			@com#internal{
				${ output inst::ThermostatSystem.Equipment.error /* < ref: 8 > */ 0 }
			}
			@com#output{
				port< id:1 , route:1 > output inst::ThermostatSystem.Equipment.error[ parameter var< id:0, ptr:std > integer $0 ]
			}
		}
	@moe:
		@run{ |/\|
			${ invoke#transition transition::ThermostatSystem.Equipment.s3.e31 /* < ref: 3 > */ }
			${ invoke#transition transition::ThermostatSystem.Equipment.s3.e32 /* < ref: 3 > */ }
			${ invoke#transition transition::ThermostatSystem.Equipment.s3.e33 /* < ref: 3 > */ }
		}
	}

	#prototype executable< moc: simple % state , id:13, instanciation: [ * ] > &spec::ThermostatSystem.Equipment.s4 exec::ThermostatSystem.Equipment.s4 {
		//@container = #prototype executable< moc: #STS % statemachine , id:14, instanciation: [ + ] > &spec::ThermostatSystem.Equipment exec::ThermostatSystem.Equipment;
		//@prototype = #prototype instance< id:5, multiplicity: [ + ] > &exec::ThermostatSystem.Equipment.s4 prot::ThermostatSystem.Equipment.s4;
	@transition:
		transition< id:0 > &spec::ThermostatSystem.Equipment.s4.e41 e41 --> s4 { /* < ref: 3 > */
			//@container = #prototype executable< moc: simple % state , id:13, instanciation: [ * ] > &spec::ThermostatSystem.Equipment.s4 exec::ThermostatSystem.Equipment.s4;
		@moe:
			@run{ |;|
				${ input std[stm]:>nops:rvalue:statement
					$( std[nop]:>nops:value:port inst::ThermostatSystem.Equipment.dt /* < ref: 6 > */ )
					$( std[nop]:>nop:lvalue:data inst::ThermostatSystem.Equipment.x /* < ref: 16 > */ )
				}
				${ |§|
					${ disable#self }
					${ enable#set std[stm]:>seval:rvalue:statement
						$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Equipment.s4 /* < ref: 10 > */ )
					}
				}
			}
			@opcode#family = input;
			@communication<final>{
				${ input inst::ThermostatSystem.Equipment.dt /* < ref: 6 > */ inst::ThermostatSystem.Equipment.x /* < ref: 16 > */ }
			}
			@com#internal{
				${ input inst::ThermostatSystem.Equipment.dt /* < ref: 6 > */ inst::ThermostatSystem.Equipment.x /* < ref: 16 > */ }
			}
			@com#input{
				port< id:0 , route:0 > input inst::ThermostatSystem.Equipment.dt[ parameter var< id:0, ptr:std > integer $0 ]
			}
			@com#input_enabled{
				port< id:0 , route:0 > input inst::ThermostatSystem.Equipment.dt[ parameter var< id:0, ptr:std > integer $0 ]
			}
		}
	@moe:
		@run{
			${ invoke#transition transition::ThermostatSystem.Equipment.s4.e41 /* < ref: 3 > */ }
		}
	}

	#prototype executable< moc: #STS % statemachine , id:14, instanciation: [ + ] > &spec::ThermostatSystem.Equipment exec::ThermostatSystem.Equipment {
		//@container = timed executable< moc: and % system , id:15, instanciation: [ + ] > &spec::ThermostatSystem exec::ThermostatSystem;
		//@prototype = #prototype instance< id:2, multiplicity: [ + ] > &exec::ThermostatSystem.Equipment prot::ThermostatSystem.Equipment;
	@variable:
		public const< id:3, ptr:std > integer inst::ThermostatSystem.Equipment.TIMEOUT 'TIMEOUT' /* < ref: 2 > */ {
			//@compiled = spec::ThermostatSystem.Equipment.TIMEOUT;
			//@container = exec::ThermostatSystem.Equipment;
			@value = 0;
		}

		var< id:0, ptr:std > integer inst::ThermostatSystem.Equipment.x 'x' /* < ref: 16 > */ {
			//@compiled = spec::ThermostatSystem.Equipment.x;
			//@container = exec::ThermostatSystem.Equipment;
			@rid#container = run::pid#11:ThermostatSystem.Equipment;
		}
		var< id:1, ptr:std > boolean inst::ThermostatSystem.Equipment.isOn 'isOn' /* < ref: 5 > */ {
			//@compiled = spec::ThermostatSystem.Equipment.isOn;
			//@container = exec::ThermostatSystem.Equipment;
			@rid#container = run::pid#11:ThermostatSystem.Equipment;
		}
		public volatile var< id:2, ptr:std > clock< integer > inst::ThermostatSystem.Equipment.c 'c' /* < ref: 19 > */ {
			//@compiled = spec::ThermostatSystem.Equipment.c;
			//@container = exec::ThermostatSystem.Equipment;
			@rid#container = run::pid#11:ThermostatSystem.Equipment;
			@value = 0;
		}
	@port:
		public port< id:0 , route:0 > input inst::ThermostatSystem.Equipment.dt /* < ref: 6 > */ {
			//@compiled = spec::ThermostatSystem.Equipment.dt;
			//@container = exec::ThermostatSystem.Equipment;
			@rid#container = run::pid#11:ThermostatSystem.Equipment;
			@routing#input#data = routing< rdv , mid:2 > run::pid#1:ThermostatSystem;
		@parameter:
			parameter var< id:0, ptr:std > integer $0;
		}
		public port< id:0 , route:0 > output inst::ThermostatSystem.Equipment.equip /* < ref: 8 > */ {
			//@compiled = spec::ThermostatSystem.Equipment.equip;
			//@container = exec::ThermostatSystem.Equipment;
			@rid#container = run::pid#11:ThermostatSystem.Equipment;
			@routing#output#data = routing< rdv , mid:4 > run::pid#1:ThermostatSystem;
		@parameter:
			parameter var< id:0, ptr:std > integer $0;
		}
		public port< id:1 , route:1 > output inst::ThermostatSystem.Equipment.error /* < ref: 8 > */ {
			//@compiled = spec::ThermostatSystem.Equipment.error;
			//@container = exec::ThermostatSystem.Equipment;
			@rid#container = run::pid#11:ThermostatSystem.Equipment;
			@routing#output#data = routing< rdv , mid:3 > run::pid#1:ThermostatSystem;
		@parameter:
			parameter var< id:0, ptr:std > integer $0;
		}
	@router:
		router model::ThermostatSystem.Equipment /* < ref: 2 > */ {
		@input:
			routing< env , mid:0 > model::ThermostatSystem.Equipment->inst::ThermostatSystem.Equipment.dt { /* < ref: 1 > */
			}
		@output:
			routing< env , mid:0 > model::ThermostatSystem.Equipment->inst::ThermostatSystem.Equipment.equip { /* < ref: 1 > */
			}
			routing< env , mid:0 > model::ThermostatSystem.Equipment->inst::ThermostatSystem.Equipment.error { /* < ref: 1 > */
			}
		}

	@router#model:
		router model::ThermostatSystem.Equipment /* < ref: 2 > */ {
		@input:
			routing< env , mid:0 > model::ThermostatSystem.Equipment->inst::ThermostatSystem.Equipment.dt { /* < ref: 1 > */
			}
		@output:
			routing< env , mid:0 > model::ThermostatSystem.Equipment->inst::ThermostatSystem.Equipment.equip { /* < ref: 1 > */
			}
			routing< env , mid:0 > model::ThermostatSystem.Equipment->inst::ThermostatSystem.Equipment.error { /* < ref: 1 > */
			}
		}

	@model:
		#model instance< id:0, multiplicity: [ 1 ], this > &exec::ThermostatSystem.Equipment model::ThermostatSystem.Equipment.$this /* < ref: 1 > */ {
		//@property:
			//@compiled = spec::ThermostatSystem.Equipment;
			//@container = exec::ThermostatSystem.Equipment;
		}
	@instance:
		#static instance< id:0, multiplicity: [ 1 ], this > &exec::ThermostatSystem.Equipment prot::ThermostatSystem.Equipment.$this /* < ref: 1 > */ {
		//@property:
			//@compiled = spec::ThermostatSystem.Equipment;
			//@container = exec::ThermostatSystem.Equipment;
			//@model = model::ThermostatSystem.Equipment.$this;
		}
		#prototype instance< id:1, multiplicity: [ + ] > &exec::ThermostatSystem.Equipment.s0 prot::ThermostatSystem.Equipment.s0 /* < ref: 10 > */ {
		//@property:
			//@compiled = spec::ThermostatSystem.Equipment.s0;
			//@container = exec::ThermostatSystem.Equipment;
			@rid#runtime = run::pid#12:ThermostatSystem.Equipment.s0;
		}
		#prototype instance< id:2, multiplicity: [ + ] > &exec::ThermostatSystem.Equipment.s1 prot::ThermostatSystem.Equipment.s1 /* < ref: 4 > */ {
		//@property:
			//@compiled = spec::ThermostatSystem.Equipment.s1;
			//@container = exec::ThermostatSystem.Equipment;
			@rid#runtime = run::pid#13:ThermostatSystem.Equipment.s1;
		}
		#prototype instance< id:3, multiplicity: [ + ] > &exec::ThermostatSystem.Equipment.s2 prot::ThermostatSystem.Equipment.s2 /* < ref: 6 > */ {
		//@property:
			//@compiled = spec::ThermostatSystem.Equipment.s2;
			//@container = exec::ThermostatSystem.Equipment;
			@rid#runtime = run::pid#14:ThermostatSystem.Equipment.s2;
		}
		#prototype instance< id:4, multiplicity: [ + ] > &exec::ThermostatSystem.Equipment.s3 prot::ThermostatSystem.Equipment.s3 /* < ref: 6 > */ {
		//@property:
			//@compiled = spec::ThermostatSystem.Equipment.s3;
			//@container = exec::ThermostatSystem.Equipment;
			@rid#runtime = run::pid#15:ThermostatSystem.Equipment.s3;
		}
		#prototype instance< id:5, multiplicity: [ + ] > &exec::ThermostatSystem.Equipment.s4 prot::ThermostatSystem.Equipment.s4 /* < ref: 10 > */ {
		//@property:
			//@compiled = spec::ThermostatSystem.Equipment.s4;
			//@container = exec::ThermostatSystem.Equipment;
			@rid#runtime = run::pid#16:ThermostatSystem.Equipment.s4;
		}
	@moe:
		@create{${ := std[stm]:>nops:rvalue:statement
				$( std[nop]:>nops:value:data inst::ThermostatSystem.Equipment.c /* < ref: 19 > */ )
				$( std[nop]:>nop:rvalue:integer 0 )
			}
		}
		@init{${ init std[stm]:>seval:rvalue:statement
				$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Equipment.s0 /* < ref: 10 > */ )
			}
		}
		@enable{
			${ comment "nop<enable> exec::ThermostatSystem.Equipment.s0" }
		}
		@disable{ |§|
			${ disable#child }
			${ disable#self }
		}
		@run{${ schedule std[stm]:>seval:rvalue:statement
				$( std[dma:rid]:>seval:rvalue:self#rid const::self /* < ref: 4 > */ )
			}
		}
		@schedule{
			${ run prot::ThermostatSystem.Equipment.s0 /* < ref: 10 > */ }
		}
	}

	timed executable< moc: and % system , id:15, instanciation: [ + ] > &spec::ThermostatSystem exec::ThermostatSystem {
		//@prototype = timed #prototype instance< id:0, multiplicity: [ 1 ] > &exec::ThermostatSystem prot::ThermostatSystem;
	@variable:
		var< id:0, ptr:std > time< uinteger > inst::ThermostatSystem.$time '$time' /* < ref: 5 > */ {
			//@compiled = spec::ThermostatSystem.$time;
			//@container = exec::ThermostatSystem;
			@rid#container = run::pid#1:ThermostatSystem;
		}
		unsafe var< id:1, ptr:std > time< uinteger > inst::ThermostatSystem.$delta '$delta' /* < ref: 8 > */ {
			//@compiled = spec::ThermostatSystem.$delta;
			//@container = exec::ThermostatSystem;
			@rid#container = run::pid#1:ThermostatSystem;
		}
	@alias:
		public volatile var< id:2, ptr:std > clock< integer > alias::ThermostatSystem.Equipment.c 'c' /* < ref: 3 > */ {
			//@compiled = spec::ThermostatSystem.Equipment.c;
			//@container = exec::ThermostatSystem;
			@target = public volatile var< id:2, ptr:std > clock< integer > inst::ThermostatSystem.Equipment.c = 0 /* < ref: 19 > */;
			@rid#container = run::pid#11:ThermostatSystem.Equipment;
			@value = 0;
		@path#machine:
			prot::ThermostatSystem.Equipment
		}
	@connection:/* < exec::ThermostatSystem > */
		connector< id:0 , mid:1 , env > inst::ThermostatSystem._#connector#0 /* < ref: 2 > */ {
			//@compiled = spec::ThermostatSystem._#connector#0;
			//@container = exec::ThermostatSystem;
			output Thermostat->screen;
			input Thermostat->sens;
		}
		connector< id:1 , mid:2 , rdv , unicast > inst::ThermostatSystem._#connector#1 /* < ref: 2 > */ {
			//@compiled = spec::ThermostatSystem._#connector#1;
			//@container = exec::ThermostatSystem;
			output Thermostat->dt;
			input Equipment->dt;
		}
		connector< id:2 , mid:3 , rdv , unicast > inst::ThermostatSystem._#connector#2 /* < ref: 2 > */ {
			//@compiled = spec::ThermostatSystem._#connector#2;
			//@container = exec::ThermostatSystem;
			output Equipment->error;
			input Thermostat->error;
		}
		connector< id:3 , mid:4 , rdv , unicast > inst::ThermostatSystem._#connector#3 /* < ref: 2 > */ {
			//@compiled = spec::ThermostatSystem._#connector#3;
			//@container = exec::ThermostatSystem;
			output Equipment->equip;
			input Thermostat->equip;
		}

		@rdv_communication = true;

	@router:
		router inst::ThermostatSystem.$this< exec::ThermostatSystem > /* < ref: 2 > */ {
		}

		router prot::ThermostatSystem.Thermostat /* < ref: 1 > */ {
		@input:
			routing< env , mid:1 > prot::ThermostatSystem.Thermostat->inst::ThermostatSystem.Thermostat.sens { /* < ref: 1 > */
				@connector = inst::ThermostatSystem._#connector#0;
			}
			routing< rdv , mid:4 > prot::ThermostatSystem.Thermostat->inst::ThermostatSystem.Thermostat.equip { /* < ref: 1 > */
				@connector = inst::ThermostatSystem._#connector#3;
			}
			routing< rdv , mid:3 > prot::ThermostatSystem.Thermostat->inst::ThermostatSystem.Thermostat.error { /* < ref: 1 > */
				@connector = inst::ThermostatSystem._#connector#2;
			}
		@output:
			routing< env , mid:1 > prot::ThermostatSystem.Thermostat->inst::ThermostatSystem.Thermostat.screen { /* < ref: 1 > */
				@connector = inst::ThermostatSystem._#connector#0;
			}
			routing< rdv , mid:2 > prot::ThermostatSystem.Thermostat->inst::ThermostatSystem.Thermostat.dt { /* < ref: 1 > */
				@connector = inst::ThermostatSystem._#connector#1;
			}
			routing< env , mid:0 > model::ThermostatSystem.Thermostat->inst::ThermostatSystem.Thermostat.test { /* < ref: 2 > */
			}
		}

		router prot::ThermostatSystem.Equipment /* < ref: 1 > */ {
		@input:
			routing< rdv , mid:2 > prot::ThermostatSystem.Equipment->inst::ThermostatSystem.Equipment.dt { /* < ref: 1 > */
				@connector = inst::ThermostatSystem._#connector#1;
			}
		@output:
			routing< rdv , mid:4 > prot::ThermostatSystem.Equipment->inst::ThermostatSystem.Equipment.equip { /* < ref: 1 > */
				@connector = inst::ThermostatSystem._#connector#3;
			}
			routing< rdv , mid:3 > prot::ThermostatSystem.Equipment->inst::ThermostatSystem.Equipment.error { /* < ref: 1 > */
				@connector = inst::ThermostatSystem._#connector#2;
			}
		}

	@router#model:
		router inst::ThermostatSystem.$this< exec::ThermostatSystem > /* < ref: 2 > */ {
		}

		router model::ThermostatSystem.Thermostat /* < ref: 2 > */ {
		@input:
			routing< env , mid:0 > model::ThermostatSystem.Thermostat->inst::ThermostatSystem.Thermostat.sens { /* < ref: 1 > */
			}
			routing< env , mid:0 > model::ThermostatSystem.Thermostat->inst::ThermostatSystem.Thermostat.equip { /* < ref: 1 > */
			}
			routing< env , mid:0 > model::ThermostatSystem.Thermostat->inst::ThermostatSystem.Thermostat.error { /* < ref: 1 > */
			}
		@output:
			routing< env , mid:0 > model::ThermostatSystem.Thermostat->inst::ThermostatSystem.Thermostat.screen { /* < ref: 1 > */
			}
			routing< env , mid:0 > model::ThermostatSystem.Thermostat->inst::ThermostatSystem.Thermostat.dt { /* < ref: 1 > */
			}
			routing< env , mid:0 > model::ThermostatSystem.Thermostat->inst::ThermostatSystem.Thermostat.test { /* < ref: 2 > */
			}
		}

		router model::ThermostatSystem.Equipment /* < ref: 2 > */ {
		@input:
			routing< env , mid:0 > model::ThermostatSystem.Equipment->inst::ThermostatSystem.Equipment.dt { /* < ref: 1 > */
			}
		@output:
			routing< env , mid:0 > model::ThermostatSystem.Equipment->inst::ThermostatSystem.Equipment.equip { /* < ref: 1 > */
			}
			routing< env , mid:0 > model::ThermostatSystem.Equipment->inst::ThermostatSystem.Equipment.error { /* < ref: 1 > */
			}
		}

	@model:
		timed #model instance< id:0, multiplicity: [ 1 ], this > &exec::ThermostatSystem model::ThermostatSystem.$this /* < ref: 1 > */ {
		//@property:
			//@compiled = spec::ThermostatSystem;
			//@container = exec::ThermostatSystem;
		}
		#model instance< id:1, multiplicity: [ + ] > &exec::ThermostatSystem.Thermostat model::ThermostatSystem.Thermostat /* < ref: 1 > */ {
		//@property:
			//@compiled = spec::ThermostatSystem.Thermostat;
			//@container = exec::ThermostatSystem;
		}
		#model instance< id:2, multiplicity: [ + ] > &exec::ThermostatSystem.Equipment model::ThermostatSystem.Equipment /* < ref: 1 > */ {
		//@property:
			//@compiled = spec::ThermostatSystem.Equipment;
			//@container = exec::ThermostatSystem;
		}
	@instance:
		timed #static instance< id:0, multiplicity: [ 1 ], this > &exec::ThermostatSystem inst::ThermostatSystem.$this /* < ref: 1 > */ {
		//@property:
			//@compiled = spec::ThermostatSystem;
			//@container = exec::ThermostatSystem;
			//@model = model::ThermostatSystem.$this;
		}
		#prototype instance< id:1, multiplicity: [ + ] > &exec::ThermostatSystem.Thermostat prot::ThermostatSystem.Thermostat /* < ref: 7 > */ {
		//@property:
			//@compiled = spec::ThermostatSystem.Thermostat;
			//@container = exec::ThermostatSystem;
			//@model = model::ThermostatSystem.Thermostat;
			@rid#runtime = run::pid#2:ThermostatSystem.Thermostat;
		}
		#prototype instance< id:2, multiplicity: [ + ] > &exec::ThermostatSystem.Equipment prot::ThermostatSystem.Equipment /* < ref: 7 > */ {
		//@property:
			//@compiled = spec::ThermostatSystem.Equipment;
			//@container = exec::ThermostatSystem;
			//@model = model::ThermostatSystem.Equipment;
			@rid#runtime = run::pid#11:ThermostatSystem.Equipment;
			@create{${ := std[stm]:>nops:rvalue:statement
					$( std[nop]:>nops:value:data inst::ThermostatSystem.Equipment.c /* < ref: 19 > */ )
					$( std[nop]:>nop:rvalue:integer 0 )
				}
			}
		}
	@program:
		macro routine< id:0 > &spec::ThermostatSystem.clock#reset routine::ThermostatSystem.clock#reset { /* < ref: 1 > */
			//@container = timed executable< moc: and % system , id:15, instanciation: [ + ] > &spec::ThermostatSystem exec::ThermostatSystem;
		@parameter:
			transient parameter var< id:0, ptr:std > clock< uinteger > inst::ThermostatSystem.clock#reset._c_ '_c_' /* < ref: 2 > */ {
				//@compiled = spec::ThermostatSystem.clock#reset._c_;
				//@container = routine::ThermostatSystem.clock#reset;
			}
		@moe:
			@run{${ := std[stm]:>nops:rvalue:statement
					$( std[nop]:>nops:value:data inst::ThermostatSystem.clock#reset._c_ /* < ref: 2 > */ )
					$( std[nop]:>nop:rvalue:integer 0 )
				}
			 }
		@opcode#family = basic;
		}

		macro routine< id:1 > &spec::ThermostatSystem.clock#update routine::ThermostatSystem.clock#update { /* < ref: 1 > */
			//@container = timed executable< moc: and % system , id:15, instanciation: [ + ] > &spec::ThermostatSystem exec::ThermostatSystem;
		@parameter:
			transient parameter var< id:0, ptr:std > clock< uinteger > inst::ThermostatSystem.clock#update._c_ '_c_' /* < ref: 3 > */ {
				//@compiled = spec::ThermostatSystem.clock#update._c_;
				//@container = routine::ThermostatSystem.clock#update;
			}
		@moe:
			@run{${ := std[stm]:>seval:rvalue:statement
					$( std[nop]:>nop:lvalue:data inst::ThermostatSystem.clock#update._c_ /* < ref: 3 > */ )
					$( ret[alu]:>seval:rvalue:expression { + ret[alu]:>seval:rvalue:expression
						$( arg[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.clock#update._c_ /* < ref: 3 > */ )
						$( arg[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.$delta /* < ref: 8 > */ )
					} )
				}
			 }
		@opcode#family = basic;
		}

	@moe:
		@init{ |;|
			${ |§|
				${ := std[stm]:>nops:rvalue:statement
					$( std[nop]:>nops:value:data inst::ThermostatSystem.$time /* < ref: 5 > */ )
					$( std[nop]:>nop:rvalue:integer 0 )
				}
				${ := std[stm]:>nops:rvalue:statement
					$( std[nop]:>nops:value:data inst::ThermostatSystem.$delta /* < ref: 8 > */ )
					$( std[nop]:>nop:rvalue:integer 0 )
				}
			}
			${ |and|
				${ init std[stm]:>seval:rvalue:statement
					$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Thermostat /* < ref: 7 > */ )
				}
				${ init std[stm]:>seval:rvalue:statement
					$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Equipment /* < ref: 7 > */ )
				}
			}
		}
		@start{ |;|
			${ |§|
				${ := std[stm]:>nops:rvalue:statement
					$( std[nop]:>nops:value:data inst::ThermostatSystem.$time /* < ref: 5 > */ )
					$( std[nop]:>nop:rvalue:integer 0 )
				}
				${ := std[stm]:>nops:rvalue:statement
					$( std[nop]:>nops:value:data inst::ThermostatSystem.$delta /* < ref: 8 > */ )
					$( std[nop]:>nop:rvalue:integer 0 )
				}
			}
			${ |and|
				${ init std[stm]:>seval:rvalue:statement
					$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Thermostat /* < ref: 7 > */ )
				}
				${ init std[stm]:>seval:rvalue:statement
					$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Equipment /* < ref: 7 > */ )
				}
			}
		}
		@enable{ |and|
			${ enable std[stm]:>seval:rvalue:statement
				$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Thermostat /* < ref: 7 > */ )
			}
			${ enable std[stm]:>seval:rvalue:statement
				$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Equipment /* < ref: 7 > */ )
			}
		}
		@disable{ |and|
			${ disable std[stm]:>seval:rvalue:statement
				$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Thermostat /* < ref: 7 > */ )
			}
			${ disable std[stm]:>seval:rvalue:statement
				$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Equipment /* < ref: 7 > */ )
			}
		}
		@abort{ |and|
			${ abort#set std[stm]:>seval:rvalue:statement
				$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Thermostat /* < ref: 7 > */ )
			}
			${ abort#set std[stm]:>seval:rvalue:statement
				$( std[dma:rid]:>seval:rvalue:machine#rid prot::ThermostatSystem.Equipment /* < ref: 7 > */ )
			}
		}
		@irun{ |§|
			${ newfresh std[stm]:>nops:rvalue:statement
				$( std[nop]:>nops:value:data inst::ThermostatSystem.$delta /* < ref: 8 > */ )
			}
			${ tguard ret[alu]:>seval:rvalue:expression
				$( ret[alu]:>seval:rvalue:expression { > ret[alu]:>seval:rvalue:expression
					$( std[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.$delta /* < ref: 8 > */ )
					$( std[nop]:>nop:rvalue:integer 0 )
				} )
			}
			${ := std[stm]:>seval:rvalue:statement
				$( std[nop]:>nop:lvalue:data inst::ThermostatSystem.$time /* < ref: 5 > */ )
				$( ret[alu]:>seval:rvalue:expression { + ret[alu]:>seval:rvalue:expression
					$( arg[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.$time /* < ref: 5 > */ )
					$( arg[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.$delta /* < ref: 8 > */ )
				} )
			}
			${ := std[stm]:>seval:rvalue:statement
				$( std[nop]:>nop:lvalue:data alias::ThermostatSystem.Equipment.c /* < ref: 3 > */ )
				$( ret[alu]:>seval:rvalue:expression { + ret[alu]:>seval:rvalue:expression
					$( arg[dma:rv]:>seval:rvalue:data alias::ThermostatSystem.Equipment.c /* < ref: 3 > */ )
					$( arg[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.$delta /* < ref: 8 > */ )
				} )
			}
		}
		@run{ |/;|
			${ |§|
				${ newfresh std[stm]:>nops:rvalue:statement
					$( std[nop]:>nops:value:data inst::ThermostatSystem.$delta /* < ref: 8 > */ )
				}
				${ tguard ret[alu]:>seval:rvalue:expression
					$( ret[alu]:>seval:rvalue:expression { > ret[alu]:>seval:rvalue:expression
						$( std[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.$delta /* < ref: 8 > */ )
						$( std[nop]:>nop:rvalue:integer 0 )
					} )
				}
				${ := std[stm]:>seval:rvalue:statement
					$( std[nop]:>nop:lvalue:data inst::ThermostatSystem.$time /* < ref: 5 > */ )
					$( ret[alu]:>seval:rvalue:expression { + ret[alu]:>seval:rvalue:expression
						$( arg[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.$time /* < ref: 5 > */ )
						$( arg[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.$delta /* < ref: 8 > */ )
					} )
				}
				${ := std[stm]:>seval:rvalue:statement
					$( std[nop]:>nop:lvalue:data alias::ThermostatSystem.Equipment.c /* < ref: 3 > */ )
					$( ret[alu]:>seval:rvalue:expression { + ret[alu]:>seval:rvalue:expression
						$( arg[dma:rv]:>seval:rvalue:data alias::ThermostatSystem.Equipment.c /* < ref: 3 > */ )
						$( arg[dma:rv]:>seval:rvalue:data inst::ThermostatSystem.$delta /* < ref: 8 > */ )
					} )
				}
			}
			${ schedule std[stm]:>seval:rvalue:statement
				$( std[dma:rid]:>seval:rvalue:self#rid const::self /* < ref: 4 > */ )
			}
		}
		@schedule<final>{ ||i||
			${ run prot::ThermostatSystem.Thermostat /* < ref: 7 > */ }
			${ run prot::ThermostatSystem.Equipment /* < ref: 7 > */ }
		}
		@concurrency{ |i| }
	}

// }
