Diff of /branches/PackMLState/Main_Escape_PLC/Plc Logic/Application/Function Blocks/Puzzle/BalastTankPuzzleStateMachine/svnobj [r31] .. [r32]  Maximize  Restore

Switch to side-by-side view

--- a/branches/PackMLState/Main_Escape_PLC/Plc Logic/Application/Function Blocks/Puzzle/BalastTankPuzzleStateMachine/svnobj
+++ b/branches/PackMLState/Main_Escape_PLC/Plc Logic/Application/Function Blocks/Puzzle/BalastTankPuzzleStateMachine/svnobj
@@ -1,13 +1,14 @@
-Gx_lo}!0…jüoKFÙàÆ1¨*û¬System.StringL{6f9dac99-8de1-4efc-8465-68ac443b7d08}SpecialFuncL{0db3d7bb-cde0-4416-9a7b-ce49a0124323}NoneImplementationL{3b83b776-fb25-43b8-99f2-3c507c9143fc}TextDocument	L{f3878285-8e4f-490b-bb1b-9acbb7eb04db}
+Gx_lM~!0…jüoüK}”&þ)2(Ñ#1System.StringL{6f9dac99-8de1-4efc-8465-68ac443b7d08}SpecialFuncL{0db3d7bb-cde0-4416-9a7b-ce49a0124323}NoneImplementationL{3b83b776-fb25-43b8-99f2-3c507c9143fc}TextDocument	L{f3878285-8e4f-490b-bb1b-9acbb7eb04db}
 TextLinesL{a5de0b0b-1cb5-4913-ac21-9d70293ec00d}Id
longTagText$IF NOT xInit THEN	N	UM				(		sName := 'Normal Operation', ì							dwSupportedStates := PACK_ML.State.All - PACK_ML.State.Suspending - PACK_ML.State.Suspended - PACK_ML.State.UnSuspending - PACK_ML.Holding - PACK_ML.Held - PACK_ML.UnHolding, Ô							dwAllowsLeavingFromStates := PACK_ML.State.Stopped OR PACK_ML.State.Aborted OR PACK_ML.State.Idle, Ö							dwAllowsEnteringIntoStates := PACK_ML.State.Stopped OR PACK_ML.State.Aborted OR PACK_ML.State.Idle, \							eInitialState := PACK_ML.State.Aborted,2							xActive := TRUE); 	xInit := TRUE;	END_IF4IF Client.bReadyToPLC THEN:	CASE Client.iCommandToPLC OF"	0 : 	//Handshake	1 : 	//Lock		IF SysStrCmp(Client.sCommandToPLC, Client.LockCommands[0]) =  0 THEN		 0			//First Lock Function!			;"–		ELSIF SysStrCmp(Client.sCommandToPLC, Client.LockCommands[1]) =  0 THEN		#2			//Second Lock Function$
 			;	%		END_IF&	2 : 	//Key'	3 : 	//IO(	4 : 	//Media)	5 : 	//Hint*	6 : 	//State	+p		IF SysStrCmp(Client.sCommandFromPLC, 'SC') =  0 THEN		,&			StateComplete();-x		ELSIF SysStrCmp(Client.sCommandToPLC, 'Start') =  0 THEN		.			Start();/v		ELSIF SysStrCmp(Client.sCommandToPLC, 'Stop') =  0 THEN		0			Stop();1x		ELSIF SysStrCmp(Client.sCommandToPLC, 'Reset') =  0 THEN		2			Reset();3x		ELSIF SysStrCmp(Client.sCommandToPLC, 'Abort') =  0 THEN		4			Abort();5x		ELSIF SysStrCmp(Client.sCommandToPLC, 'Clear') =  0 THEN		6			Clear();7v		ELSIF SysStrCmp(Client.sCommandToPLC, 'Hold') =  0 THEN		8			Hold();9z		ELSIF SysStrCmp(Client.sCommandToPLC, 'UnHold') =  0 THEN		:			Unhold();	;|		ELSIF SysStrCmp(Client.sCommandToPLC, 'Suspend') =  0 THEN		<			Suspend();=€		ELSIF SysStrCmp(Client.sCommandToPLC, 'UnSuspend') =  0 THEN		>			UnSuspend();?		@	END_CASEA6	Client.iCommandToPLC := 0;B8	Client.sCommandToPLC := '';C:	Client.bReadyToPLC := FALSE;D.CASE UM.CurrentState OFE,PACK_ML.State.Stopped:F	;G,PACK_ML.State.Aborted:H&PACK_ML.State.Idle:I2PACK_ML.State.Complete :	J.PACK_ML.State.Execute :Kˆ	// Work out the angle FROM the x horizontal winding anti-clockwise L(	//in screen space. M	// Nr	// The value returned from the following should be 315. O	// <pre>P*	// x,y -------------Q	//     |  1,1R	//     |    \S	//     |     \T"	//     |     2,2U	// </pre>V W’	// NOTE: Remember that most math has the Y axis as positive above the X.X”    // However, for screens we have Y as positive below. For this reason, Yz    // the Y values are inverted to get the expected results.ZT    //final double deltaY = (p1.y - p2.y);[T    //final double deltaX = (p2.x - p1.x);\    //final double result = Math.toDegrees(Math.atan2(deltaY, deltaX)); ]j    //return (result < 0) ? (360d + result) : result;^d	actualPositionLinear1 :=  AI_DistanceRight - 244;_b	actualPositionLinear2 :=  AI_DistanceLeft - 244;`&	deltaY := 250 - 0;ar	deltaX := actualPositionLinear1 - actualPositionLinear2;bV	angle := OSCAT_BASIC.ATAN2(deltaY,deltaX);c\	targetPositionBoat := angle * 180 / 3.1415;		d@	IF targetPositionBoat <= 0 THENe4		targetPositionBoat := 0;fJ	ELSIF targetPositionBoat >= 360 THENg8		targetPositionBoat := 360;h	END_IFiD	BoatAngle :=  targetPositionBoat;jB	IF Client.ActualStep >= 300 THENkN		AO_AnalogRefrence := AI_DistanceLeft;l
 	ELSEm4		AO_AnalogRefrence := 0;	n4	IF CMMT_ST.AxisError THENo		Abort();pX	IF BoatAngle >= 85 AND BoatAngle <= 95 THENq"		Steady := TRUE;r$		Steady := FALSE;s´	AO_Spare2 := REAL_TO_WORD(817 -((TIME_TO_REAL(SteadyTimer.ET)/TIME_TO_REAL(T#25S))*817));t,	IF SteadyTimer.Q THENu$		StateComplete();vD	IF puzzleTimer.iProcess = 10 THENw‚		SendCommand(Command := CommandType.Media ,Value := 'Ballast');	xB	IF Client.Mode = Mode.Mode1 THENyF		IF puzzleTimer.iProcess = 50 THENzê			SendCommand(Command := CommandType.Hint ,Value := 'Use the terminal to control the right axis to ballast tank.');	{			|8	CASE Client.ActualStep OF		}
 		0:	~,			CASE Client.Mode OFP				Mode.Mode1: // Updown diffrent speed€2					CASE Client.Level OF,						Level.Beginner:	‚4							speed := 100;						ƒ2						Level.Placeholder1:„(							speed := 200;…2						Level.Intermediate:†(							speed := 300;‡2						Level.Placeholder2:ˆ(							speed := 400;‰*						Level.Advanced:Š(							speed := 500;‹					END_CASEŒ<					Client.ActualStep := 100;:				Mode.Mode2:	// Location		Ž					END_CASE		<					Client.ActualStep := 200;<				Mode.Mode3: // Analog					‘H					Client.ActualStep := 300;				 	’						“			END_CASE		”		//10:•<		//	IF CMMT_ST.AxisError THEN–<		//		Client.ActualStep := 11;—		//	ELSE˜D		//		Client.ActualStep := 20;				™		//	END_IF			š		//11:›*		//	CMMT_ST.Reset();œ@		//	Client.ActualStep := 10;					//20:	ž@		//	IF NOT CMMT_ST.Enabled THENŸB		//		Client.ActualStep := 21;			 D		//		Client.ActualStep := 30;				¡		//	END_IF¢		//21:£J		//	enable := CMMT_ST.EnableDrive();¤&		//	IF enable THEN¥<		//		Client.ActualStep := 20;¦<		//		Client.ActualStep := 10;§		//30:	¨H		//	IF NOT CMMT_ST.HomingValid THEN©<		//		Client.ActualStep := 31;ªD		//		Client.ActualStep := 40;				«		//31:¬v		//	home := CMMT_ST.Home(Position := 0,HomingMethod := 0);­*		//	IF home THEN				®h		//		Client.ActualStep := Client.ActualStep := 32;	¯		//32:°H		//	IF CMMT_ST.HomingValid THEN				±>		//		Client.ActualStep := 40;	²		//	END_IF		³
-					´		//40:µH		//	Client.ActualStep := tempStep;	¶		100:·d			bMove := CMMT_ST.MoveAbsolute(Position:= 150 , ¸,				Velocity:= speed, ¹0				Acceleration:= 500, º0				Deceleration:= 500, »"				Jerk:= 1000, ¼X				BufferMode:= MC_BUFFER_MODE.mcBuffered, ½ 				ErrorID=> , ¾(				ErrorString=> );¿ 			IF bMove THENÀ^				Client.ActualStep := Client.ActualStep + 1;Á			END_IFÂ		101:Ã@			IF CMMT_ST.TargetReached THENÄ			END_IF			Å		102:Æd			bMove := CMMT_ST.MoveAbsolute(Position:= 400 , Ç		103:È:				Client.ActualStep := 100;É			END_IF		Ê		200:Ër			CASE OSCAT_BASIC.RDM2(last :=0, low := 1,high := 4) OFÌ				1:ÍF					Client.ActualStep := 210;					Î				2:Ï>					Client.ActualStep := 220;	Ð				3:Ñ>					Client.ActualStep := 230;	Ò				4:Ó>					Client.ActualStep := 240;	Ô			END_CASEÕ"		210: // Point 1Öd			bMove := CMMT_ST.MoveAbsolute(Position:= 100 , ×0			DO_Balance_1 := TRUE;Ø		211:Ù:				Client.ActualStep := 200;Ú4				DO_Balance_1 := FALSE;Û			END_IF	Ü"		220: // Point 2Ýd			bMove := CMMT_ST.MoveAbsolute(Position:= 200 , Þ0			DO_Balance_2 := TRUE;ß		221:à4				DO_Balance_2 := FALSE;á"		230: // Point 3âd			bMove := CMMT_ST.MoveAbsolute(Position:= 300 , ã0			DO_Balance_3 := TRUE;ä		231:å4				DO_Balance_3 := FALSE;æ&		240: // Point 4		ç2				DO_Balance_4 := TRUE;è		241:éB		300: // Move to random locationêÂ			bMove := CMMT_ST.MoveAbsolute(Position:= OSCAT_BASIC.RDM2(last :=0, low := 100,high := 400) , ë`				Client.ActualStep := Client.ActualStep + 10;ì		310:í:				Client.ActualStep := 300;î	END_CASE	ï2PACK_ML.State.Resetting :ð*	CMMT_ST.ResetHalt();ñ&	StateComplete();		ò0PACK_ML.State.Starting :ó<			IF NOT CMMT_ST.Enabled THENô@				Client.ActualStep := 100;			õ			ELSEö@				Client.ActualStep := 10;				÷		10:	øD			IF NOT CMMT_ST.HomingValid THENù:				Client.ActualStep := 110;úB				Client.ActualStep := 300;				ûF			enable := CMMT_ST.EnableDrive();ü"			IF enable THENý6				Client.ActualStep := 0;þ				Abort();ÿ		110:€r			home := CMMT_ST.Home(Position := 0,HomingMethod := 0);&			IF home THEN				‚b				Client.ActualStep := Client.ActualStep + 10;	ƒ		120:„D			IF CMMT_ST.HomingValid THEN				…:				Client.ActualStep := 10;	†		300:‡(			StateComplete();	ˆ4PACK_ML.State.Completing :‰$	Steady :=  False;Š$	StateComplete();	‹0PACK_ML.State.Aborting :Œ0	CMMT_ST.DisableDrive();"	StateComplete();Ž.PACK_ML.State.Stopping:4	CASE Client.ActualStep OF		0:‘<			StopLinear.Execute := TRUE;’6			Client.ActualStep := 10;“
-		10:”B			IF LinearStatus.Stopping THEN;•H				StopLinear.Execute := FALSE;				–:				Client.ActualStep := 20;	—
-		20:˜.PACK_ML.State.Clearing:™8			IF CMMT_ST.AxisError THENš&			CMMT_ST.Reset();›:			Client.ActualStep := 0;			œEND_CASELClient.ActualState := UM.CurrentState;ž>messageQueue(Client := Client);ŸfIF NOT (DI_EmergencyGF AND NOT DI_EmergencyFF) THEN (	// Emergency Abort.¡	Abort();	¢END_IF £HAntiJitter(IN:=NOT Steady,PT:=T#1S);¤^SteadyTimer(IN:=NOT AntiJitter.Q, PT:= T#25S );¥äpuzzleTimer(xStartTimer := UM.CurrentState = PACK_ML.State.Execute ,xPauseTimer := ,xStopTimer:= NOT (UM.CurrentState = PACK_ML.State.Execute),tMaxPuzzleTime := Client.Duration);¦PClient.Progress := puzzleTimer.iProcess;§HIF puzzleTimer.iProcess >= 100 THEN	¨	//Stop();©J// couple axis to functionblocks hereª^LinearStatus (Axis := CMMT_ST, Enable := TRUE);«:StopLinear (Axis := CMMT_ST);¬Interface­L{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}®VFUNCTION_BLOCK BalastTankPuzzleStateMachine¯VAR_IN_OUT°.	Client : PuzzleClient;±END_VAR²VAR³0	UM	: PACK_ML.UnitMode; ´j	xInit				: BOOL := FALSE; // Flag for initializationµ8	puzzleTimer 	: PuzzleTimer;¶P 	moveAbsolute 	: MC_MoveAbsolute_Festo;·<	StopLinear 		: MC_Stop_Festo;¸H	LinearStatus	: MC_ReadStatus_Festo;¹*    //tempStep : INT;º$	enable 			: BOOL;» 	home 			: BOOL;¼"	bMove 			: BOOL;½	speed 			:INT;¾<	actualPositionLinear1 : REAL;¿<	actualPositionLinear2 : REAL;À6	actualPositionBoat : REAL;Á	deltaY : REAL;Â	deltaX : REAL;Ã	angle : REAL;Ä6	targetPositionBoat : REAL;Å~	//GenRdn : OSCAT_BASIC.RDM2(last :=0, low := 100,high := 400);Æx	//GenRdn2 : OSCAT_BASIC.RDM2(last :=0, low := 1,high := 4);Ç0	Steady : BOOL := FALSE;È(	SteadyTimer : TON ;É&	AntiJitter : TON ;Ê	bl : BLINK;Ë	ii: INT;Ì:	messageQueue : MessageQueue;Í"UniqueIdGeneratorÎ2062ÏPOULevelÐL{8e575c5b-1d37-49c6-941b-5c0ec7874787}ÑStandardÒ ChildObjectGuidsÓ8System.Collections.ArrayListÔ,AddAttributeSubsequentÕboolÐÐ-ÐÐ	E
-ÖÐÐ
­AÚÐ-ÐÐ
­BÚÐ-ÐÐ
­CÚÐ-ÐÐ
­DÚÐ-ÐÐ
­EÚÐ-ÐÐ
­FÚÐ-ÐÐ
­GÚÐ-ÐÐ
­HÚÐ-ÐÐ
­IÚÐ-ÐÐ
­JÚÐ-ÐÐ
­KÚÐ-ÐÐ
­LÚÐ-ÐÐ
­MÚÐ-ÐÐ
­NÚÐ-ÐÐ
­OÚÐ-ÐÐ
­PÚÐ-ÐÐ
­QÚÐ-ÐÐ
­RÚÐ-ÐÐ
­SÚÐ- ÐÐ
­TÚÐ-!ÐÐ
­UÚÐ-"ÐÐ
­VÚÐ-#ÐÐ
­WÚÐ-$ÐÐ
­XÚÐ-%ÐÐ
­YÚÐ-&ÐÐ
­ZÚÐ-'ÐÐ
­[ÚÐ-(ÐÐ
­\ÚÐ-)ÐÐ
­]ÚÐ-*ÐÐ
­^ÚÐ-+ÐÐ
­_ÚÐ-,ÐÐ
­`ÚÐ--ÐÐ
­aÚÐ-.ÐÐ
­bÚÐ-/ÐÐ
­cÚÐ-0ÐÐ
­dÚÐ-1ÐÐ
­eÚÐ-2ÐÐ
­fÚÐ-3ÐÐ
­gÚÐ-4ÐÐ
­hÚÐ-5ÐÐ
­iÚÐ-6ÐÐ
­jÚÐ-7ÐÐ
­kÚÐ-8ÐÐ
­lÚÐ-9ÐÐ
­mÚÐ-:ÐÐ
­nÚÐ-;ÐÐ
­oÚÐ-<ÐÐ
­pÚÐ-=ÐÐ
­qÚÐ->ÐÐ
­rÚÐ-%ÐÐ
­sÚÐ-?ÐÐ
­tÚÐ-@ÐÐ
­uÚÐ-ÐÐ
­vÚÐ-AÐÐ
­wÚÐ-BÐÐ
­xÚÐ-CÐÐ
­yÚÐ-ÐÐ
­zÚÐ-ÐÐ
­{ÚÐ-ÐÐ
­|ÚÐ-ÐÐ
­}ÚÐ-ÐÐ
­~ÚÐ-ÐÐ
­ÚÐ-DÐÐ
­€ÚÐ-EÐÐ
­ÚÐ-FÐÐ
­‚ÚÐ-GÐÐ
­ƒÚÐ-FÐÐ
­„ÚÐ-HÐÐ
­…ÚÐ-FÐÐ
­†ÚÐ-IÐÐ
­‡ÚÐ-FÐÐ
­ˆÚÐ-JÐÐ
­ŒÚÐ-KÐÐ
­½ÚÐ-LÐÐ
­¾ÚÐ-MÐÐ
­¿ÚÐ-NÐÐ
­ÀÚÐ-OÐÐ
­ÁÚÐ-PÐÐ
­ÂÚÐ-QÐÐ
­ÃÚÐ-RÐÐ
­ÄÚÐ-SÐÐ
­ÅÚÐ-TÐÐ
­ÆÚÐ-UÐÐ
­ºÚÐ-VÐÐ
­¹ÚÐ-ÐÐ
­ÚÐ-WÐÐ
­’ÚÐ-XÐÐ
­“ÚÐ-YÐÐ
­”ÚÐ-ZÐÐ
­•ÚÐ-[ÐÐ
­–ÚÐ-\ÐÐ
­—ÚÐ-]ÐÐ
­™ÚÐ-ÐÐ
­¬ÚÐ-^ÐÐ
­›ÚÐ-_ÐÐ
­¸ÚÐ-ÐÐ
­œÚÐ-`ÐÐ
­ÚÐ-aÐÐ
­žÚÐ-ÐÐ
­ŸÚÐ-bÐÐ
­ ÚÐ-ÐÐ
­¡ÚÐ-cÐÐ
­¢ÚÐ-ÐÐ
­£ÚÐ-dÐÐ
­¤ÚÐ-eÐÐ
­¥ÚÐ-fÐÐ
­¦ÚÐ-gÐÐ
­§ÚÐ-hÐÐ
­¨ÚÐ-ÐÐ
­«ÚÐ-iÐÐ
­¶ÚÐ-jÐÐ
­&ÚÐ-kÐÐ
­(ÚÐ-lÐÐ
­)ÚÐ-mÐÐ
­'ÚÐ-hÐÐ
­$ÚÐ-ÐÐ
­KÚÐ-nÐÐ
­MÚÐ-oÐÐ
­NÚÐ-hÐÐ
­LÚÐ-ÐÐ
­“ÚÐ-pÐÐ
­–ÚÐ-qÐÐ
­™ÚÐ-lÐÐ
­šÚÐ-rÐÐ
­—ÚÐ-hÐÐ
­›ÚÐ-ÐÐ
­¢ÚÐ-ÐÐ
­¤ÚÐ-ÐÐ
­¥ÚÐ-sÐÐ
­£ÚÐ-ÐÐ
­œÚÐ-tÐÐ
­ÚÐ-uÐÐ
­žÚÐ-hÐÐ
­­ÚÐ-ÐÐ
­˜ÚÐ-ÐÐ
­®ÚÐ-ÐÐ
­³ÚÐ-ÐÐ
­´ÚÐ-vÐÐ
­µÚÐ-wÐÐ
­¶ÚÐ-hÐÐ
­
+					´		//40:µH		//	Client.ActualStep := tempStep;	¶		100:·d			bMove := CMMT_ST.MoveAbsolute(Position:= 150 , ¸,				Velocity:= speed, ¹0				Acceleration:= 500, º0				Deceleration:= 500, »"				Jerk:= 1000, ¼X				BufferMode:= MC_BUFFER_MODE.mcBuffered, ½ 				ErrorID=> , ¾(				ErrorString=> );¿ 			IF bMove THENÀ^				Client.ActualStep := Client.ActualStep + 1;Á			END_IFÂ		101:Ã@			IF CMMT_ST.TargetReached THENÄ			END_IF			Å		102:Æd			bMove := CMMT_ST.MoveAbsolute(Position:= 400 , Ç		103:È:				Client.ActualStep := 100;É			END_IF		Ê		200:Ër			CASE OSCAT_BASIC.RDM2(last :=0, low := 1,high := 4) OFÌ				1:ÍF					Client.ActualStep := 210;					Î				2:Ï>					Client.ActualStep := 220;	Ð				3:Ñ>					Client.ActualStep := 230;	Ò				4:Ó>					Client.ActualStep := 240;	Ô			END_CASEÕ"		210: // Point 1Öd			bMove := CMMT_ST.MoveAbsolute(Position:= 100 , ×0			DO_Balance_1 := TRUE;Ø		211:Ù:				Client.ActualStep := 200;Ú4				DO_Balance_1 := FALSE;Û			END_IF	Ü"		220: // Point 2Ýd			bMove := CMMT_ST.MoveAbsolute(Position:= 200 , Þ0			DO_Balance_2 := TRUE;ß		221:à4				DO_Balance_2 := FALSE;á"		230: // Point 3âd			bMove := CMMT_ST.MoveAbsolute(Position:= 300 , ã0			DO_Balance_3 := TRUE;ä		231:å4				DO_Balance_3 := FALSE;æ&		240: // Point 4		ç2				DO_Balance_4 := TRUE;è		241:éB		300: // Move to random locationêÂ			bMove := CMMT_ST.MoveAbsolute(Position:= OSCAT_BASIC.RDM2(last :=0, low := 100,high := 400) , ë`				Client.ActualStep := Client.ActualStep + 10;ì		310:í:				Client.ActualStep := 300;î	END_CASE	ï2PACK_ML.State.Resetting :ð*	CMMT_ST.ResetHalt();ñ&	StateComplete();		ò0PACK_ML.State.Starting :ó<			IF NOT CMMT_ST.Enabled THENô@				Client.ActualStep := 100;			õ			ELSEö@				Client.ActualStep := 10;				÷		10:	øD			IF NOT CMMT_ST.HomingValid THENù:				Client.ActualStep := 110;úB				Client.ActualStep := 300;				ûF			enable := CMMT_ST.EnableDrive();ü"			IF enable THENý6				Client.ActualStep := 0;þ				Abort();ÿ		110:€r			home := CMMT_ST.Home(Position := 0,HomingMethod := 0);&			IF home THEN				‚b				Client.ActualStep := Client.ActualStep + 10;	ƒ		120:„D			IF CMMT_ST.HomingValid THEN				…:				Client.ActualStep := 10;	†		300:‡(			StateComplete();	ˆ4PACK_ML.State.Completing :‰$	Steady :=  False;Š$	StateComplete();	‹0PACK_ML.State.Aborting :Œ0	CMMT_ST.DisableDrive();"	StateComplete();Ž.PACK_ML.State.Stopping:4	CASE Client.ActualStep OF		0:‘>			StopLinear.Execute := FALSE;’6			Client.ActualStep := 10;“
+		10:”<			StopLinear.Execute := TRUE;•6			Client.ActualStep := 20;–
+		20:—6			IF StopLinear.Done THEN;˜H				StopLinear.Execute := FALSE;				™:				Client.ActualStep := 30;	š
+		30:›.PACK_ML.State.Clearing:œ8			IF CMMT_ST.AxisError THEN&			CMMT_ST.Reset();ž:			Client.ActualStep := 0;			ŸEND_CASE LClient.ActualState := UM.CurrentState;¡>messageQueue(Client := Client);¢fIF NOT (DI_EmergencyGF AND NOT DI_EmergencyFF) THEN£(	// Emergency Abort.¤	Abort();	¥END_IF ¦HAntiJitter(IN:=NOT Steady,PT:=T#1S);§^SteadyTimer(IN:=NOT AntiJitter.Q, PT:= T#25S );¨äpuzzleTimer(xStartTimer := UM.CurrentState = PACK_ML.State.Execute ,xPauseTimer := ,xStopTimer:= NOT (UM.CurrentState = PACK_ML.State.Execute),tMaxPuzzleTime := Client.Duration);©PClient.Progress := puzzleTimer.iProcess;ªHIF puzzleTimer.iProcess >= 100 THEN	«	//Stop();¬J// couple axis to functionblocks here­^LinearStatus (Axis := CMMT_ST, Enable := TRUE);®:StopLinear (Axis := CMMT_ST);¯Interface°L{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}±VFUNCTION_BLOCK BalastTankPuzzleStateMachine²VAR_IN_OUT³.	Client : PuzzleClient;´END_VARµVAR¶0	UM	: PACK_ML.UnitMode; ·j	xInit				: BOOL := FALSE; // Flag for initialization¸8	puzzleTimer 	: PuzzleTimer;¹P 	moveAbsolute 	: MC_MoveAbsolute_Festo;º<	StopLinear 		: MC_Stop_Festo;»H	LinearStatus	: MC_ReadStatus_Festo;¼*    //tempStep : INT;½$	enable 			: BOOL;¾ 	home 			: BOOL;¿"	bMove 			: BOOL;À	speed 			:INT;Á<	actualPositionLinear1 : REAL;Â<	actualPositionLinear2 : REAL;Ã6	actualPositionBoat : REAL;Ä	deltaY : REAL;Å	deltaX : REAL;Æ	angle : REAL;Ç6	targetPositionBoat : REAL;È~	//GenRdn : OSCAT_BASIC.RDM2(last :=0, low := 100,high := 400);Éx	//GenRdn2 : OSCAT_BASIC.RDM2(last :=0, low := 1,high := 4);Ê0	Steady : BOOL := FALSE;Ë(	SteadyTimer : TON ;Ì&	AntiJitter : TON ;Í	bl : BLINK;Î	ii: INT;Ï:	messageQueue : MessageQueue;Ð"UniqueIdGeneratorÑ2066ÒPOULevelÓL{8e575c5b-1d37-49c6-941b-5c0ec7874787}ÔStandardÕ ChildObjectGuidsÖ8System.Collections.ArrayList×,AddAttributeSubsequentØboolÐÐ-ÐÐ	E
+ÚÐÐ
­AÚÐ-ÐÐ
­BÚÐ-ÐÐ
­CÚÐ-ÐÐ
­DÚÐ-ÐÐ
­EÚÐ-ÐÐ
­FÚÐ-ÐÐ
­GÚÐ-ÐÐ
­HÚÐ-ÐÐ
­IÚÐ-ÐÐ
­JÚÐ-ÐÐ
­KÚÐ-ÐÐ
­LÚÐ-ÐÐ
­MÚÐ-ÐÐ
­NÚÐ-ÐÐ
­OÚÐ-ÐÐ
­PÚÐ-ÐÐ
­QÚÐ-ÐÐ
­RÚÐ-ÐÐ
­SÚÐ- ÐÐ
­TÚÐ-!ÐÐ
­UÚÐ-"ÐÐ
­VÚÐ-#ÐÐ
­WÚÐ-$ÐÐ
­XÚÐ-%ÐÐ
­YÚÐ-&ÐÐ
­ZÚÐ-'ÐÐ
­[ÚÐ-(ÐÐ
­\ÚÐ-)ÐÐ
­]ÚÐ-*ÐÐ
­^ÚÐ-+ÐÐ
­_ÚÐ-,ÐÐ
­`ÚÐ--ÐÐ
­aÚÐ-.ÐÐ
­bÚÐ-/ÐÐ
­cÚÐ-0ÐÐ
­dÚÐ-1ÐÐ
­eÚÐ-2ÐÐ
­fÚÐ-3ÐÐ
­gÚÐ-4ÐÐ
­hÚÐ-5ÐÐ
­iÚÐ-6ÐÐ
­jÚÐ-7ÐÐ
­kÚÐ-8ÐÐ
­lÚÐ-9ÐÐ
­mÚÐ-:ÐÐ
­nÚÐ-;ÐÐ
­oÚÐ-<ÐÐ
­pÚÐ-=ÐÐ
­qÚÐ->ÐÐ
­rÚÐ-%ÐÐ
­sÚÐ-?ÐÐ
­tÚÐ-@ÐÐ
­uÚÐ-ÐÐ
­vÚÐ-AÐÐ
­wÚÐ-BÐÐ
­xÚÐ-CÐÐ
­yÚÐ-ÐÐ
­zÚÐ-ÐÐ
­{ÚÐ-ÐÐ
­|ÚÐ-ÐÐ
­}ÚÐ-ÐÐ
­~ÚÐ-ÐÐ
­ÚÐ-DÐÐ
­€ÚÐ-EÐÐ
­ÚÐ-FÐÐ
­‚ÚÐ-GÐÐ
­ƒÚÐ-FÐÐ
­„ÚÐ-HÐÐ
­…ÚÐ-FÐÐ
­†ÚÐ-IÐÐ
­‡ÚÐ-FÐÐ
­ˆÚÐ-JÐÐ
­ŒÚÐ-KÐÐ
­½ÚÐ-LÐÐ
­¾ÚÐ-MÐÐ
­¿ÚÐ-NÐÐ
­ÀÚÐ-OÐÐ
­ÁÚÐ-PÐÐ
­ÂÚÐ-QÐÐ
­ÃÚÐ-RÐÐ
­ÄÚÐ-SÐÐ
­ÅÚÐ-TÐÐ
­ÆÚÐ-UÐÐ
­ºÚÐ-VÐÐ
­¹ÚÐ-ÐÐ
­ÚÐ-WÐÐ
­’ÚÐ-XÐÐ
­“ÚÐ-YÐÐ
­”ÚÐ-ZÐÐ
­•ÚÐ-[ÐÐ
­–ÚÐ-\ÐÐ
­—ÚÐ-]ÐÐ
­™ÚÐ-ÐÐ
­¬ÚÐ-^ÐÐ
­›ÚÐ-_ÐÐ
­¸ÚÐ-ÐÐ
­œÚÐ-`ÐÐ
­ÚÐ-aÐÐ
­žÚÐ-ÐÐ
­ŸÚÐ-bÐÐ
­ ÚÐ-ÐÐ
­¡ÚÐ-cÐÐ
­¢ÚÐ-ÐÐ
­£ÚÐ-dÐÐ
­¤ÚÐ-eÐÐ
­¥ÚÐ-fÐÐ
­¦ÚÐ-gÐÐ
­§ÚÐ-hÐÐ
­¨ÚÐ-ÐÐ
­«ÚÐ-iÐÐ
­¶ÚÐ-jÐÐ
­&ÚÐ-kÐÐ
­(ÚÐ-lÐÐ
­)ÚÐ-mÐÐ
­'ÚÐ-hÐÐ
­$ÚÐ-ÐÐ
­KÚÐ-nÐÐ
­MÚÐ-oÐÐ
­NÚÐ-hÐÐ
­LÚÐ-ÐÐ
­“ÚÐ-pÐÐ
­–ÚÐ-qÐÐ
­™ÚÐ-lÐÐ
­šÚÐ-rÐÐ
­—ÚÐ-hÐÐ
­›ÚÐ-ÐÐ
­¢ÚÐ-ÐÐ
­¤ÚÐ-ÐÐ
­¥ÚÐ-sÐÐ
­£ÚÐ-ÐÐ
­œÚÐ-tÐÐ
­ÚÐ-uÐÐ
­žÚÐ-hÐÐ
­­ÚÐ-ÐÐ
­˜ÚÐ-ÐÐ
­®ÚÐ-ÐÐ
­³ÚÐ-ÐÐ
­´ÚÐ-vÐÐ
­µÚÐ-wÐÐ
­¶ÚÐ-hÐÐ
­
 ÚÐ-xÐÐ
­
ÚÐ-yÐÐ
­ÚÐ-zÐÐ
­ÚÐ-%ÐÐ
­ÚÐ-hÐÐ
­¹ÚÐ-ÐÐ
­¯ÚÐ-{ÐÐ
­°ÚÐ-ÐÐ
­±ÚÐ-ÐÐ
­%ÚÐ-ÐÐ
­´ÚÐ-|ÐÐ
­¸ÚÐ-}ÐÐ
­UÚÐ-~ÐÐ
­ºÚÐ-ÐÐ
­»ÚÐ-€ÐÐ
­¼ÚÐ-ÐÐ
­½ÚÐ-‚ÐÐ
­¾ÚÐ-ƒÐÐ
­¿ÚÐ-„ÐÐ
­ÀÚÐ-…ÐÐ
­ÁÚÐ-†ÐÐ
­ÂÚÐ-‡ÐÐ
­ÃÚÐ-ˆÐÐ
­ÄÚÐ-‰ÐÐ
­ÅÚÐ-ŠÐÐ
­ÆÚÐ-‹ÐÐ
­ÇÚÐ-ŒÐÐ
­ÉÚÐ-ÐÐ
­ÚÐ-€ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-‚ÐÐ
­ÚÐ-ƒÐÐ
­ÚÐ-„ÐÐ
­ÚÐ-…ÐÐ
­ÚÐ-†ÐÐ
­ÚÐ-‡ÐÐ
­ÚÐ-ˆÐÐ
­ÚÐ-‰ÐÐ
­ÚÐ-ŠÐÐ
­ÚÐ-ŽÐÐ
­ÊÚÐ-ÐÐ
­ËÚÐ-ÐÐ
­ÌÚÐ-‘ÐÐ
­ÍÚÐ-’ÐÐ
­ÎÚÐ-“ÐÐ
­ÚÐ-ÐÐ
­ÏÚÐ-”ÐÐ
­XÚÐ-•ÐÐ
­ZÚÐ-–ÐÐ
­[ÚÐ-—ÐÐ
­\ÚÐ-˜ÐÐ
­]ÚÐ-™ÐÐ
­^ÚÐ-?ÐÐ
­_ÚÐ-šÐÐ
­`ÚÐ-›ÐÐ
­aÚÐ-œÐÐ
­’ÚÐ-ÐÐ
­dÚÐ-žÐÐ
­eÚÐ-ŸÐÐ
­fÚÐ-—ÐÐ
­gÚÐ- ÐÐ
­hÚÐ-¡ÐÐ
­‚ÚÐ-{ÐÐ
­…ÚÐ-¢ÐÐ
­†ÚÐ-£ÐÐ
­‡ÚÐ-¤ÐÐ
­ˆÚÐ-¥ÐÐ
­‰ÚÐ-—ÐÐ
­‹ÚÐ-¦ÐÐ
­ƒÚÐ-¡ÐÐ
­„ÚÐ-{ÐÐ
­iÚÐ-§ÐÐ
­jÚÐ-¨ÐÐ
­kÚÐ-©ÐÐ
­lÚÐ-—ÐÐ
­mÚÐ-ªÐÐ
­nÚÐ-™ÐÐ
­vÚÐ-?ÐÐ
­wÚÐ-«ÐÐ
­xÚÐ-¬ÐÐ
­yÚÐ-­ÐÐ
­zÚÐ-®ÐÐ
­{ÚÐ-¡ÐÐ
­|ÚÐ-¯ÐÐ
­}ÚÐ-°ÐÐ
­~ÚÐ-±ÐÐ
­ÚÐ-²ÐÐ
­€ÚÐ-³ÐÐ
­ÚÐ-´ÐÐ
­bÚÐ-µÐÐ
­VÚÐ-?ÐÐ
­ÐÚÐ-¶ÐÐ
­SÚÐ-?ÐÐ
­ÑÚÐ-·ÐÐ
­ÒÚÐ-¸ÐÐ
­ÓÚÐ-¹ÐÐ
­ÔÚÐ-ºÐÐ
­ÕÚÐ-»ÐÐ
­ÖÚÐ-¼ÐÐ
­×ÚÐ-½ÐÐ
­ØÚÐ-¾ÐÐ
­ÙÚÐ-¿ÐÐ
­ÚÚÐ-ÀÐÐ
­ÛÚÐ-ÁÐÐ
­ÜÚÐ-ÂÐÐ
­ÝÚÐ-ÃÐÐ
­ÞÚÐ-ÀÐÐ
­ßÚÐ-ÄÐÐ
­àÚÐ-ÅÐÐ
­áÚÐ-ÆÐÐ
­âÚÐ-¸ÐÐ
­ãÚÐ-¹ÐÐ
­äÚÐ-ºÐÐ
­åÚÐ-»ÐÐ
­æÚÐ-¼ÐÐ
­çÚÐ-½ÐÐ
­èÚÐ-¾ÐÐ
­éÚÐ-¿ÐÐ
­êÚÐ-ÀÐÐ
­ëÚÐ-ÁÐÐ
­ìÚÐ-ÇÐÐ
­íÚÐ-ÃÐÐ
­îÚÐ-ÈÐÐ
­ïÚÐ-ÉÐÐ
­ðÚÐ-ÊÐÐ
­ÊÚÐ-ËÐÐ
­AÚÐ-ÌÐÐ
­GÚÐ-ÍÐÐ
­CÚÐ-ÎÐÐ
­HÚÐ-ÏÐÐ
­DÚÐ-ÐÐÐ
­IÚÐ-ÑÐÐ
­EÚÐ-ÒÐÐ
­JÚÐ-ÓÐÐ
­BÚÐ-ÔÐÐ
­ËÚÐ-{ÐÐ
­ÍÚÐ-ÕÐÐ
­ÓÚÐ-ÖÐÐ
­ÔÚÐ-¸ÐÐ
­ÕÚÐ-¹ÐÐ
­ÖÚÐ-ºÐÐ
­×ÚÐ-»ÐÐ
­ØÚÐ-¼ÐÐ
­ÙÚÐ-½ÐÐ
­ÚÚÐ-¾ÐÐ
­ÚÐ-×ÐÐ
­ÛÚÐ-¿ÐÐ
­ÜÚÐ-ÀÐÐ
­ÒÚÐ-ÁÐÐ
­ÝÚÐ-ØÐÐ
­ßÚÐ-ÃÐÐ
­àÚÐ-ÙÐÐ
­ÚÐ-ÚÐÐ
­ÞÚÐ-ÛÐÐ
­ÏÚÐ-ÜÐÐ
­âÚÐ-ÝÐÐ
­ãÚÐ-¸ÐÐ
­äÚÐ-¹ÐÐ
­åÚÐ-ºÐÐ
­æÚÐ-»ÐÐ
­çÚÐ-¼ÐÐ
­èÚÐ-½ÐÐ
­éÚÐ-¾ÐÐ
­ÚÐ-ÞÐÐ
­êÚÐ-¿ÐÐ
­ëÚÐ-ÀÐÐ
­ìÚÐ-ÁÐÐ
­íÚÐ-ßÐÐ
­îÚÐ-ÃÐÐ
­ÚÐ-àÐÐ
­ïÚÐ-ÙÐÐ
­áÚÐ-ÛÐÐ
­ðÚÐ-áÐÐ
­ÚÐ-âÐÐ
­ñÚÐ-¸ÐÐ
­òÚÐ-¹ÐÐ
­óÚÐ-ºÐÐ
­ôÚÐ-»ÐÐ
­õÚÐ-¼ÐÐ
­öÚÐ-½ÐÐ
­÷ÚÐ-¾ÐÐ
­ÚÐ-ãÐÐ
­øÚÐ-¿ÐÐ
­ùÚÐ-ÀÐÐ
­úÚÐ-ÁÐÐ
­ûÚÐ-äÐÐ
­üÚÐ-ÃÐÐ
­ ÚÐ-åÐÐ
­ýÚÐ-ÙÐÐ
­ÐÚÐ-ÛÐÐ
­þÚÐ-æÐÐ
­
ÚÐ-ÆÐÐ
­ÿÚÐ-¸ÐÐ
­ÚÐ-¹ÐÐ
­ÚÐ-ºÐÐ
­ÚÐ-»ÐÐ
­ÚÐ-¼ÐÐ
­ÚÐ-½ÐÐ
­ÚÐ-¾ÐÐ
­!ÚÐ-çÐÐ
­ÚÐ-¿ÐÐ
­ÚÐ-ÀÐÐ
­ÚÐ-ÁÐÐ
­	ÚÐ-èÐÐ
­
 ÚÐ-ÃÐÐ
­"ÚÐ-çÐÐ
­ÚÐ-ÙÐÐ
­ñÚÐ-ÛÐÐ
­,ÚÐ-éÐÐ
­-ÚÐ-êÐÐ
­.ÚÐ-¸ÐÐ
­/ÚÐ-¹ÐÐ
­0ÚÐ-ºÐÐ
­1ÚÐ-»ÐÐ
­2ÚÐ-¼ÐÐ
­3ÚÐ-½ÐÐ
­4ÚÐ-¾ÐÐ
­6ÚÐ-¿ÐÐ
­7ÚÐ-ëÐÐ
­8ÚÐ-ÁÐÐ
­9ÚÐ-ìÐÐ
­:ÚÐ-ÃÐÐ
­;ÚÐ-íÐÐ
­òÚÐ-ÛÐÐ
­ôÚÐ-îÐÐ
­õÚÐ-ÐÐ
­öÚÐ-ïÐÐ
­ùÚÐ-ðÐÐ
­ûÚÐ-ñÐÐ
­üÚÐ-òÐÐ
­ýÚÐ-|ÐÐ
­þÚÐ-}ÐÐ
­ÿÚÐ-óÐÐ
­ÚÐ-ôÐÐ
­ÚÐ-õÐÐ
­ÚÐ-öÐÐ
­ÚÐ-ÁÐÐ
­ÚÐ-÷ÐÐ
­ÚÐ-øÐÐ
­
-ÚÐ-ùÐÐ
­ÚÐ-õÐÐ
­ÚÐ-úÐÐ
­
ÚÐ-ÛÐÐ
­ÚÐ-?ÐÐ
­ÚÐ-¶ÐÐ
­ÚÐ-ûÐÐ
­ÚÐ-üÐÐ
­ÚÐ-ýÐÐ
­ÚÐ-õÐÐ
­ÚÐ-þÐÐ
­ÚÐ-ÁÐÐ
­ÚÐ-ÿÐÐ
­ÚÐ-€ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-‚ÐÐ
­ÚÐ-ÁÐÐ
­ÚÐ-ƒÐÐ
­ÚÐ-„ÐÐ
­ÚÐ-…ÐÐ
­ÚÐ-ÉÐÐ
­/ÚÐ-³ÐÐ
­0ÚÐ-†ÐÐ
­1ÚÐ-‡ÐÐ
­2ÚÐ-@ÐÐ
­3ÚÐ-ˆÐÐ
­4ÚÐ-‰ÐÐ
­5ÚÐ-ŠÐÐ
­6ÚÐ-ÐÐ
­7ÚÐ-‹ÐÐ
­8ÚÐ-ÐÐ
­9ÚÐ-ŒÐÐ
­;ÚÐ-ÐÐ
­<ÚÐ-ÐÐ
­=ÚÐ-ŽÐÐ
­>ÚÐ-ÐÐ
­?ÚÐ-ÐÐ
­@ÚÐ-ÐÐ
­BÚÐ-‘ÐÐ
­CÚÐ-’ÐÐ
­DÚÐ-“ÐÐ
­EÚÐ-”ÐÐ
­FÚÐ-•ÐÐ
­HÚÐ-–ÐÐ
­IÚÐ-ÄÐÐ
­JÚÐ-—ÐÐ
­KÚÐ-,ÐÐ
­LÚÐ-@ÐÐ
­MÚÐ-ÐÐ
­NÚÐ-˜ÐÐ
­OÚÐ-ÐÐ
­PÚÐ-|ÐÐ
­QÚÐ-}ÐÐ
­RÚÐ-™ÐÐ
­UÚÐ-ÈÐÐ
­VÚÐ-õÐÐ
­WÚÐ-úÐÐ
­XÚÐ-ÄÐÐ
­YÚÐ-?ÐÐ
­ZÚÐ-¶ÐÐ
­[ÚÐ-šÐÐ
­\ÚÐ-›ÐÐ
­`ÚÐ-†ÐÐ
­aÚÐ-‡ÐÐ
­bÚÐ-@ÐÐ
­cÚÐ-œÐÐ
­dÚÐ-ÐÐ
­ÚÐ-ÐÐ
­	ÚÐ-ÐÐ
­eÚÐ-žÐÐ
­fÚÐ-ÐÐ
­¦ÚÐ-ŸÐÐ
­§ÚÐ- ÐÐ
­¨ÚÐ-¡ÐÐ
­jÚÐ-¢ÐÐ
­©ÚÐ-ÐÐ
­«ÚÐ-£ÐÐ
­¬ÚÐ-ÐÐ
­ªÚÐ-¤ÐÐ
­kÚÐ-ÐÐ
­lÚÐ-¥ÐÐ
­mÚÐ-ÐÐ
­nÚÐ-¦ÐÐ
­oÚÐ-ÐÐ
­pÚÐ-§ÐÐ
­qÚÐ-¨ÐÐ
­rÚÐ-ÐÐ
­sÚÐ-©ÐÐ
­tÚÐ-ÐÐ
­uÚÐ-ªÐÐ
­wÚÐ-«Ь­Ð	E
--ÐÐ
­†ÚÐ-®ÐÐ
­‡ÚÐ-¯ÐÐ
­ˆÚÐ-°ÐÐ
­‰ÚÐ-±ÐÐ
­ŠÚÐ-²ÐÐ
­‹ÚÐ-³ÐÐ
­ŒÚÐ-ÐÐ
­ÚÐ-´ÐÐ
­ŽÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-µÐÐ
­‘ÚÐ-VÐÐ
­’ÚÐ-¶ÐÐ
­”ÚÐ-·ÐÐ
­–ÚÐ-¸ÐÐ
­OÚÐ-ÐÐ
­PÚÐ-¹ÐÐ
­—ÚÐ-ÐÐ
­˜ÚÐ-ºÐÐ
­™ÚÐ-»ÐÐ
­šÚÐ-¼ÐÐ
­›ÚÐ-ÐÐ
­œÚÐ-½ÐÐ
­ÚÐ-ÐÐ
­žÚÐ-¾ÐÐ
­ŸÚÐ-¿ÐÐ
­ ÚÐ-ÀÐÐ
­¡ÚÐ-ÐÐ
­¢ÚÐ-ÁÐÐ
­£ÚÐ-ÂÐÐ
­¤ÚÐ-ÃÐÐ
­¦ÚÐ-ÄÐÐ
­*ÚÐ-ÅÐÐ
­@ÚÐ-ÆÐÐ
­§ÚÐ-ÇÐÐ
­•ÚÐ-ÐÐ
­”ÚÐ-ÈÐÐ
­ ÚÐ-ÉÐÐ
­?ÚÐ-ÐÐ
­¨ÚÐ-ÊÐÐ
­©ÚÐ-ËÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÌÐÐ
­«ÚÐ-±ÐÐ
­ÚÐ-ÐÍ-ÎÐÏÐ-ÑÒÓÐÔÕ­
\ No newline at end of file
+ÚÐ-ùÐÐ
­ÚÐ-õÐÐ
­ÚÐ-úÐÐ
­
ÚÐ-ÛÐÐ
­ÚÐ-?ÐÐ
­ÚÐ-¶ÐÐ
­ÚÐ-ûÐÐ
­ÚÐ-üÐÐ
­ÚÐ-ýÐÐ
­ÚÐ-õÐÐ
­ÚÐ-þÐÐ
­ÚÐ-ÁÐÐ
­ÚÐ-ÿÐÐ
­ÚÐ-€ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-‚ÐÐ
­ÚÐ-ÁÐÐ
­ÚÐ-ƒÐÐ
­ÚÐ-„ÐÐ
­ÚÐ-…ÐÐ
­ÚÐ-ÉÐÐ
­/ÚÐ-³ÐÐ
­0ÚÐ-†ÐÐ
­1ÚÐ-‡ÐÐ
­2ÚÐ-@ÐÐ
­3ÚÐ-ˆÐÐ
­4ÚÐ-‰ÐÐ
­5ÚÐ-ŠÐÐ
­6ÚÐ-ÐÐ
­7ÚÐ-‹ÐÐ
­8ÚÐ-ÐÐ
­9ÚÐ-ŒÐÐ
­;ÚÐ-ÐÐ
­<ÚÐ-ÐÐ
­=ÚÐ-ŽÐÐ
­>ÚÐ-ÐÐ
­?ÚÐ-ÐÐ
­@ÚÐ-ÐÐ
­BÚÐ-‘ÐÐ
­CÚÐ-’ÐÐ
­ÚÐ-“ÐÐ
­ÚÐ-”ÐÐ
­ÚÐ-•ÐÐ
­DÚÐ-–ÐÐ
­ÚÐ-{ÐÐ
­EÚÐ-—ÐÐ
­FÚÐ-˜ÐÐ
­HÚÐ-™ÐÐ
­IÚÐ-ÄÐÐ
­JÚÐ-šÐÐ
­KÚÐ-,ÐÐ
­LÚÐ-@ÐÐ
­MÚÐ-ÐÐ
­NÚÐ-›ÐÐ
­OÚÐ-ÐÐ
­PÚÐ-|ÐÐ
­QÚÐ-}ÐÐ
­RÚÐ-œÐÐ
­UÚÐ-ÈÐÐ
­VÚÐ-õÐÐ
­WÚÐ-úÐÐ
­XÚÐ-ÄÐÐ
­YÚÐ-?ÐÐ
­ZÚÐ-¶ÐÐ
­[ÚÐ-ÐÐ
­\ÚÐ-žÐÐ
­`ÚÐ-†ÐÐ
­aÚÐ-‡ÐÐ
­bÚÐ-@ÐÐ
­cÚÐ-ŸÐÐ
­dÚÐ-ÐÐ
­ÚÐ- ÐÐ
­	ÚÐ-ÐÐ
­eÚÐ-¡ÐÐ
­fÚÐ-ÐÐ
­¦ÚÐ-¢ÐÐ
­§ÚÐ-£ÐÐ
­¨ÚÐ-¤ÐÐ
­jÚÐ-¥ÐÐ
­©ÚÐ-ÐÐ
­«ÚÐ-¦ÐÐ
­¬ÚÐ-ÐÐ
­ªÚÐ-§ÐÐ
­kÚÐ-ÐÐ
­lÚÐ-¨ÐÐ
­mÚÐ-ÐÐ
­nÚÐ-©ÐÐ
­oÚÐ-ÐÐ
­pÚÐ-ªÐÐ
­qÚÐ-«ÐÐ
­rÚÐ-ÐÐ
­sÚÐ-¬ÐÐ
­tÚÐ-ÐÐ
­uÚÐ-­ÐÐ
­wÚÐ-®Я°Ð	E
+-ÐÐ
­†ÚÐ-±ÐÐ
­‡ÚÐ-²ÐÐ
­ˆÚÐ-³ÐÐ
­‰ÚÐ-´ÐÐ
­ŠÚÐ-µÐÐ
­‹ÚÐ-¶ÐÐ
­ŒÚÐ-ÐÐ
­ÚÐ-·ÐÐ
­ŽÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-¸ÐÐ
­‘ÚÐ-VÐÐ
­’ÚÐ-¹ÐÐ
­”ÚÐ-ºÐÐ
­–ÚÐ-»ÐÐ
­OÚÐ-ÐÐ
­PÚÐ-¼ÐÐ
­—ÚÐ-ÐÐ
­˜ÚÐ-½ÐÐ
­™ÚÐ-¾ÐÐ
­šÚÐ-¿ÐÐ
­›ÚÐ-ÐÐ
­œÚÐ-ÀÐÐ
­ÚÐ-ÐÐ
­žÚÐ-ÁÐÐ
­ŸÚÐ-ÂÐÐ
­ ÚÐ-ÃÐÐ
­¡ÚÐ-ÐÐ
­¢ÚÐ-ÄÐÐ
­£ÚÐ-ÅÐÐ
­¤ÚÐ-ÆÐÐ
­¦ÚÐ-ÇÐÐ
­*ÚÐ-ÈÐÐ
­@ÚÐ-ÉÐÐ
­§ÚÐ-ÊÐÐ
­•ÚÐ-ÐÐ
­”ÚÐ-ËÐÐ
­ ÚÐ-ÌÐÐ
­?ÚÐ-ÐÐ
­¨ÚÐ-ÍÐÐ
­©ÚÐ-ÎÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÏÐÐ
­«ÚÐ-´ÐÐ
­ÚÐ-ÐÐ-ÑÐÒÓ-ÔÕÖÐ×Ø­
\ No newline at end of file