aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2020-09-06 15:24:39 +0300
committerShlomo Hecht <shlomo@twine-s.com>2020-09-06 15:24:39 +0300
commitdc3e9a8e3936f24d01d85652ff2fb9b8c320261c (patch)
treed58239e55ba1eaf0a27788c0d20f004c72fa6355
parentb68b34d6247175678f76cc40bb60019685740dd9 (diff)
downloadTango-dc3e9a8e3936f24d01d85652ff2fb9b8c320261c.tar.gz
Tango-dc3e9a8e3936f24d01d85652ff2fb9b8c320261c.zip
some fixes in dispenser handling, implement setheaterstate, procedures and stubs updated
-rw-r--r--Software/Embedded_SW/Embedded/Communication/Container.c3
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/Motors/MotorActions.c4
-rw-r--r--Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c9
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_ex.h2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c36
-rw-r--r--Software/Embedded_SW/Embedded/Modules/IDS/IDS_dispenser.c8
-rw-r--r--Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c19
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c19
-rw-r--r--Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c1
-rw-r--r--Software/Stubs Collection/Procedures/EmbeddedParametersBuild.pproj2
-rw-r--r--Software/Stubs Collection/Procedures/FFS Rebuild.pproj1
-rw-r--r--Software/Stubs Collection/stubs/1.tpf3084
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/ArcHead/clean_motor_ls.cs278
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Blowe_RMO_LOG.CSV5399
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Encoder.cs55
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_SSR.cs28
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset.CSV24523
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset1.CSV1600
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset111.CSV29654
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/blower_rpm.cs62
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater.cs2
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_In_new set point.cs34
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Write SYLKO to head eeprom.cs (renamed from Software/Stubs Collection/stubs/Scripts/Write SYLKO to head eeprom.cs)0
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/ElectricalEnclosure/ElectricalEnclosure_Fans1.cs80
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/DO_NOT_WORK_New_Calibrate_Midtank_pressure_sensors.cs266
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/New_Calibrate_Midtank_pressure_sensors.cs393
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/New_Calibrate_Midtank_pressure_sensors1.cs423
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/New_Calibrate_Midtank_pressure_sensors2.cs447
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/midtanksetparams.cs79
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/New_DyeHead/Test_Actuator.cs42
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/New_DyeHead/Test_Lid.cs145
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Get_PowerStep01_Parameters.cs227
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Motor_GMotor_Get_Param_Powerstep01_rev3.cs237
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/fan1-4.cs3
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Head_Type_Indification_2.cs25
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Jig_Tester/JIG_TESTER.cs291
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Jig_Tester/Jig-TesterV 1.0.docxbin0 -> 2159500 bytes
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Jig_Tester/Jig-TesterV 1.1.docxbin0 -> 3989402 bytes
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Jig_Tester/LTFU_Jig.cs10
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Jig_Tester/MidTank_Jig.cs4
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Jig_Tester/RTFU_Jig.cs4
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Main card Watchdog test.cs24
-rw-r--r--Software/Stubs Collection/stubs/Scripts/MidTank Calibration.pproj1
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Priming.pproj1
-rw-r--r--Software/Stubs Collection/stubs/Scripts/Set cleaning sequence.cs23
-rw-r--r--Software/Stubs Collection/stubs/Scripts/WHS_waste_Tank_Calibration_Save_V0.pproj1
-rw-r--r--Software/Stubs Collection/stubs/Scripts/config head type to hed card eeprom.cs118
-rw-r--r--Software/Stubs Collection/stubs/Scripts/progress_test.pproj1
-rw-r--r--Software/Stubs Collection/stubs/Scripts/test halt.cs24
-rw-r--r--Software/Stubs Collection/stubs/embeddedparametersbuild_w_cleaning.cs6
51 files changed, 58925 insertions, 8775 deletions
diff --git a/Software/Embedded_SW/Embedded/Communication/Container.c b/Software/Embedded_SW/Embedded/Communication/Container.c
index b14efbd55..307e4eecb 100644
--- a/Software/Embedded_SW/Embedded/Communication/Container.c
+++ b/Software/Embedded_SW/Embedded/Communication/Container.c
@@ -349,6 +349,9 @@ void receive_callback(char* buffer, size_t length)
case MESSAGE_TYPE__StartEventsNotificationRequest:
StartEventsNotificationRequestFunc(requestContainer);
break;
+ case MESSAGE_TYPE__SetHeaterStateRequest:
+ SetHeaterStateRequestFunc(requestContainer);
+ break;
case MESSAGE_TYPE__StopEventsNotificationRequest:
StopEventsNotificationRequestFunc(requestContainer);
break;
diff --git a/Software/Embedded_SW/Embedded/Drivers/Motors/MotorActions.c b/Software/Embedded_SW/Embedded/Drivers/Motors/MotorActions.c
index 8c12b4ea3..f33edee50 100644
--- a/Software/Embedded_SW/Embedded/Drivers/Motors/MotorActions.c
+++ b/Software/Embedded_SW/Embedded/Drivers/Motors/MotorActions.c
@@ -222,7 +222,7 @@ uint32_t MotorMoveWithCallback (TimerMotors_t MotorId,bool direction, uint32_t S
//SetMotorSpeed (deviceId, parameter);
MotorCallback[MotorId] = callback;
MotorTimeout[MotorId] = 0;
- MotorTimeLag[MotorId] = 40;
+ MotorTimeLag[MotorId] = 20;
MotorTimeLimit[MotorId] = timeout;
if (MotorId ==HARDWARE_MOTOR_TYPE__MOTO_DRYER_LOADARM)
{
@@ -233,7 +233,7 @@ uint32_t MotorMoveWithCallback (TimerMotors_t MotorId,bool direction, uint32_t S
//MotorStop(MotorId,Hard_Hiz );
MotorMove(MotorId,direction,Steps );
- MotorControlId[MotorId] = AddControlCallback(NULL, MotorMoveCallBackFunction, /*eTenMillisecond*/40, MotorControlGetnBusyState,(IfTypeMotors*0x100+MotorId), MotorId, 0 );
+ MotorControlId[MotorId] = AddControlCallback(NULL, MotorMoveCallBackFunction, /*eTenMillisecond*/20, MotorControlGetnBusyState,(IfTypeMotors*0x100+MotorId), MotorId, 0 );
MotorControlCallback[MotorId] = MotorMoveCallBackFunction;
return MotorControlId[MotorId];
}
diff --git a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
index e8e2e4ed0..78398119b 100644
--- a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
+++ b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
@@ -446,6 +446,7 @@ uint16_t FluidLevelWarning = 20,FluidLevelError = 50;
int NumOfSystemAlarms = MAX_SYSTEM_ALARMS;
//bool DispenserInUse[MAX_SYSTEM_DISPENSERS] = {false,false,false,false,false,false,false,false};
bool EventsNotificationRequestAccepted = false;
+char AlarmReasonStr[100];
//read dispensers limit switches. 25 - send warning. up - stop job and send alarm
//Cone missing
//Dyeing head over temperature
@@ -594,7 +595,8 @@ void AlarmHandlingLoadFlags(void)
CheckCurrentAlarms = (AlarmhandlingFlags && 0x0002);
CheckTamperAlarms = (AlarmhandlingFlags && 0x0004);
CheckMotorAlarms = (AlarmhandlingFlags && 0x0008);
- ReportWithPackageFilter(AlarmFilter,"Alarm group setting", __FILE__,__LINE__,0, RpMessage, 1*CheckHardLimitAlarms+2*CheckCurrentAlarms+3*CheckTamperAlarms+4*CheckMotorAlarms, 0);
+ usnprintf(AlarmReasonStr, 100, "Alarm group from EEPPROM Current %d Motor %d Tamper %d",CheckCurrentAlarms,CheckMotorAlarms,CheckTamperAlarms);
+ ReportWithPackageFilter(AlarmFilter,AlarmReasonStr, __FILE__,__LINE__,0, RpMessage, 1*CheckHardLimitAlarms+2*CheckCurrentAlarms+3*CheckTamperAlarms+4*CheckMotorAlarms, 0);
}
void AlarmHandlingSetFlags(bool checkHardLimitAlarms,bool checkCurrentAlarms, bool checkTamperAlarms, bool checkMotorAlarms)
@@ -604,7 +606,9 @@ void AlarmHandlingSetFlags(bool checkHardLimitAlarms,bool checkCurrentAlarms
CheckCurrentAlarms = checkCurrentAlarms;
CheckTamperAlarms = checkTamperAlarms;
CheckMotorAlarms = checkMotorAlarms;
- ReportWithPackageFilter(AlarmFilter,"Alarm group setting", __FILE__,__LINE__,0, RpMessage, 1*CheckHardLimitAlarms+2*CheckCurrentAlarms+3*CheckTamperAlarms+4*CheckMotorAlarms, 0);
+ usnprintf(AlarmReasonStr, 100, "Alarm group setting Current %d Motor %d Tamper %d",CheckCurrentAlarms,CheckMotorAlarms,CheckTamperAlarms);
+ ReportWithPackageFilter(AlarmFilter,AlarmReasonStr, __FILE__,__LINE__,0, RpMessage, 1*CheckHardLimitAlarms+2*CheckCurrentAlarms+3*CheckTamperAlarms+4*CheckMotorAlarms, 0);
+
if (CheckHardLimitAlarms) flags |= 0x1;
if (CheckCurrentAlarms) flags |= 0x2;
if (CheckTamperAlarms) flags |= 0x4;
@@ -615,7 +619,6 @@ void AlarmHandlingSetFlags(bool checkHardLimitAlarms,bool checkCurrentAlarms
AlarmhandlingFlags = flags;
}
}
-char AlarmReasonStr[100];
JobEndReasonEnum getEndReason(uint32_t AlarmId)
{
switch (AlarmItem[AlarmId].AlarmSource)
diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_ex.h b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_ex.h
index 00d5a2a65..c428faea3 100644
--- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_ex.h
+++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_ex.h
@@ -22,6 +22,8 @@ void HeatingTestSendResonse(uint32_t status, bool last,bool heater1Active,bool h
uint32_t HeaterCommandRequestMessage(int HeaterId, bool OnOff, int Temperature);
void HeatingTestRequest(MessageContainer* requestContainer);
void HeatingTestPollRequest(MessageContainer* requestContainer);
+void SetHeaterStateRequestFunc(MessageContainer* requestContainer);
+
bool HeaterCheckReady(void);
bool isHeaterReady(uint8_t HeaterId);
diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
index 56e71b345..783e337cc 100644
--- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
@@ -15,6 +15,8 @@
#include "PMR/Hardware/HardwarePidControlType.pb-c.h"
#include "PMR/Hardware/HardwarePidControl.pb-c.h"
#include "PMR/Hardware/HardwareBlower.pb-c.h"
+#include "PMR/Diagnostics/SetHeaterStateRequest.pb-c.h"
+#include "PMR/Diagnostics/SetHeaterStateResponse.pb-c.h"
#include "PMR/Diagnostics/HeaterType.pb-c.h"
#include "PMR/Diagnostics/HeaterState.pb-c.h"
#include "PMR/common/MessageContainer.pb-c.h"
@@ -638,6 +640,40 @@ int GetFilteredHeaterRead(int HeaterId)
* initialized all global data
*************************************************************************************/
bool HeaterRestarted[HEATER_TYPE_MAX_HEATERS] = {false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false};
+
+void SetHeaterStateRequestFunc(MessageContainer* requestContainer)
+{
+
+ uint32_t status = PASSED;
+ MessageContainer responseContainer;
+
+ SetHeaterStateRequest* request = set_heater_state_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data);
+
+ SetHeaterStateResponse response = SET_HEATER_STATE_RESPONSE__INIT;
+
+ if (request->has_heatertype)
+ {
+ if ((request->has_isactive)&&(request->has_setpoint))
+ status = HeaterCommandRequestMessage(request->heatertype,true,request->setpoint);
+ else
+ status = HeaterCommandRequestMessage(request->heatertype,false,request->setpoint);
+ }
+
+ responseContainer = createContainer(MESSAGE_TYPE__SetHeaterStateResponse, requestContainer->token, true, &response, &set_heater_state_response__pack, &set_heater_state_response__get_packed_size);
+ if (status)
+ {
+ responseContainer.has_error = true;
+ responseContainer.error = (ErrorCode)status;
+ }
+ //-------------------------------------------------------------------------------------------
+ uint8_t* container_buffer = malloc(message_container__get_packed_size(&responseContainer));
+ size_t container_size = message_container__pack(&responseContainer, container_buffer);
+ free(responseContainer.data.data);
+ SendChars((char*)container_buffer, container_size);
+
+ set_heater_state_request__free_unpacked(request,NULL);
+
+}
uint32_t HeaterCommandRequestMessage(int HeaterNum, bool OnOff, int Temperature)
{
//uint32_t status = NOT_SUPPORTED;
diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_dispenser.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_dispenser.c
index 75acec0b6..c8f435cb9 100644
--- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_dispenser.c
+++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_dispenser.c
@@ -354,12 +354,16 @@ void IDS_Dispenser_Content_Calculation (char DispenserId)
//double consumedintimeframe = (double)(CurrentDispenserSpeed[DispenserId]); //pulses only
//consumedintimeframe = 10+DispenserId;
IDS_Dispenser_Data[DispenserId].consumedinnanolitter += (CurrentDispenserSpeed[DispenserId]*4/10);//400 milliseconds ==> speed*4/10
+ if (IDS_Dispenser_Data[DispenserId].consumedinnanolitter<0)
+ IDS_Dispenser_Data[DispenserId].consumedinnanolitter = 0;
//if ((DispenserId == 2)&&(CurrentDispenserSpeed[DispenserId]>0))
- // ReportWithPackageFilter(IDSFilter,"IDS_Dispenser_Data ",__FILE__,DispenserId,(int)IDS_Dispenser_Data[DispenserId].consumedinnanolitter,RpWarning,(int)CurrentDispenserSpeed[DispenserId],0);
+ // ReportWithPackageFilter(IDSFilter,"IDS_Dispenser_Data info",__FILE__,DispenserId,(int)IDS_Dispenser_Data[DispenserId].consumedinnanolitter,RpWarning,(int)CurrentDispenserSpeed[DispenserId],0);
+ //if ((DispenserId == 2)&&(CurrentDispenserSpeed[DispenserId]<0))
+ // ReportWithPackageFilter(IDSFilter,"IDS_Dispenser_Data fill",__FILE__,DispenserId,(int)IDS_Dispenser_Data[DispenserId].consumedinnanolitter,RpWarning,(int)(-1*CurrentDispenserSpeed[DispenserId]),0);
if (IDS_Dispenser_Data[DispenserId].consumedinnanolitter<0)
IDS_Dispenser_Data[DispenserId].consumedinnanolitter = 0;
- if (CurrentDispenserSpeed[DispenserId]>0.1)
+ if (abs(CurrentDispenserSpeed[DispenserId])>0)
{
DispenserDataUpdated = true;
IDS_Dispenser_Data[DispenserId].totalconsumedinnanolitter += (CurrentDispenserSpeed[DispenserId]/10);
diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c
index 327d80eb1..d40f3c00b 100644
--- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c
@@ -452,10 +452,12 @@ c. Go to step 2.a x Segment.BrushStopsCount.
uint32_t DispenserPrepareControlId = 0xFF;
int NumOfActiveDispensers = 0;
int DispenserBuildTimeCounter = 0;
-#define DISPENSER_UP_MOVEMENT
+ double TargetNumberOfStepsPreRun,MaximalPressurePreRun;
int DispenserTotalPrepareSteps[MAX_SYSTEM_DISPENSERS];
bool DispenserLastMovementDown[MAX_SYSTEM_DISPENSERS];
-#define PRESSURE_READ_TIME_GAP 100
+
+ #define PRESSURE_READ_TIME_GAP 100
+
uint32_t InactiveDispenserHome(uint32_t DispenserId, uint32_t ReadValue)
{
if (AutoHoming_Config >= AutoHoming_JobEnd_PowerOn_off)
@@ -582,10 +584,10 @@ bool AdjustDispenserSpeedToPressure(int DispenserId, double RefMaxPressure,doubl
{
DispenserTotalPrepareSteps[i]+=(CurrentDispenserSpeed[i]*PRESSURE_READ_TIME_GAP/eOneSecond);
HW_Motor_Id = DispenserIdToMotorId[i];
-//#ifdef DISPENSER_UP_MOVEMENT
- if (DispenserTotalPrepareSteps[i]<InitialDispenserTimeout)
+
+ if (DispenserTotalPrepareSteps[i]<TargetNumberOfStepsPreRun)
{
- AdjustDispenserSpeedToPressure(i,InitialDispenserPressure,pressure);
+ AdjustDispenserSpeedToPressure(i,MaximalPressurePreRun,pressure);
}
else if (pressure > DispenserPreparePressure*1.2)
{
@@ -597,7 +599,6 @@ bool AdjustDispenserSpeedToPressure(int DispenserId, double RefMaxPressure,doubl
if (AdjustDispenserSpeedToPressure(i,DispenserPreparePressure,pressure) == true)
NumofReadyDispensers++;
}
-//#endif
ReportWithPackageFilter(IDSFilter,"IDS prepare",__FILE__,i,(int)DispenserTotalPrepareSteps[i],RpWarning,(int)(CurrentDispenserSpeed[i]*100),0);
}
}
@@ -758,7 +759,7 @@ bool AdjustDispenserSpeedToPressure(int DispenserId, double RefMaxPressure,doubl
JobTicket* JobTicket = JobDetails;
JobEndSequence = false;
- if ((pressurebuildup>0.1)&&(pressurebuildup<4.0))
+ if ((pressurebuildup>0.1)&&(pressurebuildup<4.5))
{
ReportWithPackageFilter(IDSFilter,"Setting pressure from RML feeder tension",__FILE__,__LINE__,(int)(pressurebuildup*100),RpWarning,(int)(DispenserPreparePressure*100),0);
DispenserPreparePressure = pressurebuildup;
@@ -778,6 +779,8 @@ bool AdjustDispenserSpeedToPressure(int DispenserId, double RefMaxPressure,doubl
CleaningDispenserSpeed = 0;
EnableCleaning = false;
}
+ TargetNumberOfStepsPreRun = InitialDispenserTimeout;
+ MaximalPressurePreRun = InitialDispenserPressure;
for (Motor_i = 0;Motor_i < MAX_SYSTEM_DISPENSERS;Motor_i++)
{
@@ -1840,7 +1843,7 @@ uint32_t IDSSegmentState(void *SegmentDetails, int SegmentId)
DispenserPreSegmentControlId = 0xFF;
}
- IDS_Dispenser_Store_Data ();
+ //IDS_Dispenser_Store_Data ();
for ( Dispenser_i = 0;Dispenser_i < MAX_SYSTEM_DISPENSERS;Dispenser_i++)
{
diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c
index 7295084e3..8856d873a 100644
--- a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c
+++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Progress.c
@@ -898,6 +898,7 @@ void Stub_ProgressRequest(MessageContainer* requestContainer)
uint32_t timeout = 0xFFFFFFFFU;
ROM_WatchdogReloadSet(WATCHDOG0_BASE, timeout);
#endif
+ HeatersEnd();
FRESULT iFResult = Init_Flash_File_System(true);
if(iFResult != FR_OK)
{
@@ -930,6 +931,7 @@ void Stub_ProgressRequest(MessageContainer* requestContainer)
if((request->amount == 0x0CE) && (request->delay == 0x0CE)) //Get Gas Sensor
{
LOG_ERROR(request->delay,"FlashInit");
+ HeatersEnd();
FlashInit();
response.progress = (double)OK;
response.has_progress = true;
diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c b/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c
index a4172185a..cd7c146fe 100644
--- a/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c
+++ b/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c
@@ -373,10 +373,7 @@
}
if (Head_Type == HEAD_TYPE_FLAT)
{
- Report("Thread_Load_Lift_actuators",__FILE__,__LINE__,LOW,RpMessage,false,0);
- //Trigger_Head_Actuators_Stub(ACTOT, ENABLE, UP);
- //Trigger_Head_Actuators_Stub(ACTIN, ENABLE, UP);
- //Trigger_Head_Actuators_Control(ACTOT, LOW,true);//UP
+ Report("Thread_Load_Lift right actuator",__FILE__,__LINE__,LOW,RpMessage,false,0);
Trigger_Head_Actuators_Control(ACTIN, LOW,true);//UP
}
return OK;
@@ -400,11 +397,8 @@
}
if (Head_Type == HEAD_TYPE_FLAT)
{
- Report("Thread_Load_Lift_ OT actuator",__FILE__,__LINE__,LOW,RpMessage,false,0);
+ Report("Thread_Load_Lift left actuator",__FILE__,__LINE__,LOW,RpMessage,false,0);
Trigger_Head_Actuators_Stub(ACTOT, ENABLE, UP);
- //Trigger_Head_Actuators_Stub(ACTIN, ENABLE, UP);
- //Trigger_Head_Actuators_Control(ACTOT, LOW,true);//UP
- //Trigger_Head_Actuators_Control(ACTIN, LOW,true);//UP
}
return OK;
@@ -476,7 +470,7 @@
MotorMovetoLimitSwitch (HARDWARE_MOTOR_TYPE__MOTO_LLOADING,MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LLOADING].directionthreadwize, 250, Motor_Id_to_LS_IdDown[HARDWARE_MOTOR_TYPE__MOTO_LLOADING], Thread_Load_HomingCallback,25000);
if (Head_Type == HEAD_TYPE_FLAT)
{
- Report("Thread_Load_Close_ OT actuator",__FILE__,__LINE__,LOW,RpMessage,true,0);
+ Report("Thread_Load_Close left actuator",__FILE__,__LINE__,LOW,RpMessage,true,0);
Trigger_Head_Actuators_Stub(ACTOT, ENABLE, DOWN);
}
@@ -516,12 +510,7 @@
}
if (Head_Type == HEAD_TYPE_FLAT)
{
- Report("Thread_Load_Close_actuators",__FILE__,__LINE__,LOW,RpMessage,true,0);
-
- //Trigger_Head_Actuators_Control(ACTIN, LOW,false);//DOWN
- //Trigger_Head_Actuators_Stub(ACTOT, ENABLE, DOWN);
-
- //Trigger_Head_Actuators_Stub(ACTIN, ENABLE, DOWN);
+ Report("Thread_Load_Close right actuators",__FILE__,__LINE__,LOW,RpMessage,true,0);
HeadCard_Actuators_Relocate();
}
return OK;
diff --git a/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c b/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c
index e16909c45..c217a68b3 100644
--- a/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c
+++ b/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c
@@ -1401,6 +1401,7 @@ Void jobTask(UArg arg0, UArg arg1)
JobResumed = false;
setmachineActive(false);
SetMachineStatus(MACHINE_STATE__Ready);
+ IDS_Dispenser_Store_Data();
resetIdleCounter();
CurrentJob = NULL;
if (IFS_Clearing_SuctionWaiting == true)
diff --git a/Software/Stubs Collection/Procedures/EmbeddedParametersBuild.pproj b/Software/Stubs Collection/Procedures/EmbeddedParametersBuild.pproj
index 408dfea72..d15843b99 100644
--- a/Software/Stubs Collection/Procedures/EmbeddedParametersBuild.pproj
+++ b/Software/Stubs Collection/Procedures/EmbeddedParametersBuild.pproj
@@ -1 +1 @@
-{"$id":"1","Name":"EmbeddedParametersBuild","Description":"This procedure lets the FSE to define values for cleaning, tamper alarms, initial heating, WCF value and automatic dispenser filling.","Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.IO;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.PMR.EmbeddedParameters;\r\nusing Tango.PMR.IO;\r\nusing Tango.FSE.Procedures;\r\n\r\n\r\npublic class Cleaning\r\n{\r\n\t[Description(\"Actuator Going up time\")]\r\n\tpublic int Tup;\r\n\t[Description(\"Actuator Wait up time\")]\r\n\tpublic int Tdelay1;\r\n\t[Description(\"Actuator Wait Down time\")]\r\n\tpublic int Tdelay2;\r\n}\r\npublic class Advanced\r\n{\r\n\t[Description(\"Automatic heating on machine StartUp\")]\r\n\tpublic bool InitialHeating;\r\n\t[Description(\"Waste pressure buildup factor\")]\r\n\tpublic int WFCF;\r\n\t[Description(\"Auto fill mode on/off\")]\r\n\tpublic bool Autofill;\r\n}\r\n\r\npublic class Program\r\n{\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n\r\n context.AddResult(ResultType.Passed, \"My Value Name\", \"Test for this value has passed.\");\r\n\t\tConfigurationParameters configurationParameters = new ConfigurationParameters();\r\n\r\n\t\tbool AdvancedParams = context.GetInput<bool>(\"AdvancedParameters\");\r\n\t\tAdvanced Advancedparam = new Advanced();\r\n\t\tAdvancedparam.InitialHeating = true;\r\n\t\tAdvancedparam.WFCF = 40;\r\n\t\tAdvancedparam.Autofill = true;\r\n\t\tif (AdvancedParams == true)\r\n \tAdvancedparam =\tcontext.RequestUserInputFor<Advanced>(Advancedparam,\"Advanced parameters input Required\",\"Please fill in the form\");\r\n\r\n\t\tconfigurationParameters.BreakSensorLimit = 10;\r\n\r\n\t\t//how many samples to collect in diagnostics before sending\r\n\t\tconfigurationParameters.DiagnosticCollectionLimit = 3;\r\n\r\n\t\t//how many consecutive readout before declaring DC over/underheat alarm\r\n\t\tconfigurationParameters.OverHeatCountLimit = 3;\r\n\t\tconfigurationParameters.UnderHeatCountLimit = 3;\r\n\r\n\t\t// time of motor activity before opening the valve or after closing the valve, in milliseconds\r\n\t\tconfigurationParameters.CloseValveTimeout = 20;\r\n\t\tconfigurationParameters.OpenValveTimeout = 20;\r\n\r\n\t\t//backlash after filling - target pressure, timoeout, time staps (speed will be added in general parameters)\r\n\t\tconfigurationParameters.InitialDispenserPressure = 0.25; \r\n\t\tconfigurationParameters.InitialDispenserTimeout = 60000; //20 seconds\r\n\t\tconfigurationParameters.InitialDispenserTimeLag = 100;\r\n\r\n\t\t//job prepare - build pressure in dispensers - target pressure, timoeout, time staps, speed\r\n\t\tconfigurationParameters.DispenserBuildPressureSpeed = 950; //no more than 1000\r\n\t\tconfigurationParameters.DispenserBuildPressureLimit = 0.85; \r\n\t\tconfigurationParameters.DispenserBuildPressureTimeout = 180000;\r\n\t\tconfigurationParameters.DispenserBuildPressureLag = 100;\r\n\r\n\t\t//temperature band 1000 = 100% - thresholds for job start around target temprature - AC\r\n\t\tconfigurationParameters.ACHeatersLowerOperationLimit = 995;\r\n\t\tconfigurationParameters.ACHeatersUpperOperationLimit = 1005;\r\n\r\n\t\t//temperature band 1000 = 100% - thresholds for job start around target temprature - DC\r\n\t\tconfigurationParameters.DCHeatersLowerOperationLimit = 978;\r\n\t\tconfigurationParameters.DCHeatersUpperOperationLimit = 1005;\r\n\r\n\t\t// mid tank reading offset to add to the readout (OBSOLETE!)\r\n\t\tconfigurationParameters.MidTankPressureCorrection = 0.0;\r\n\r\n\t\t//waste factor for intersegment pressure building\r\n\t\tconfigurationParameters.DispenserPresegmentWFCF = Advancedparam.WFCF;\r\n\r\n\t\t//how much time to start the WFCF process (pressure buildup) before segment start\r\n\t\tconfigurationParameters.IDSPreSegmentWFCFTimeBeforeSegment = 12000;\r\n\r\n\t\t//flag: start heaters according to saved process parameters upon init?\r\n\t\tconfigurationParameters.StartHeatingOnInitSequence = Advancedparam.InitialHeating;\r\n\r\n\t\t// current test for the heaters - alarm thresholds\r\n\t\tconfigurationParameters.CurrentAlarmLowLimit = 0.78;\r\n\t\tconfigurationParameters.CurrentAlarmHighLimit = 1.07;\r\n\r\n\t\t//currently not in use\r\n\t\tconfigurationParameters.IDSSegmentRefillTimeout = 5000;\r\n\t\tconfigurationParameters.IDSPreSegmentBuildupTime = 5000;\r\n\t\t//cleaning!!!!!!!!!!\r\n\t\tconfigurationParameters.IDSCleaningSpeed = 800;\r\n\t\tconfigurationParameters.IDSCleaningStopBeforeSegmentTime = 10000; //end of presegemnt\r\n\t\tconfigurationParameters.IDSCleaningStartSprayPreSegmentTime =2000; //beginning of presegment\r\n\r\n\t\tbool SetCleaning = context.GetInput<bool>(\"SetCleaningValues\");\r\n Cleaning Clean = new Cleaning();\r\n\t\tClean.Tup = 10;\r\n\t\tClean.Tdelay1 = 98;\r\n\t\tClean.Tdelay2 = 198;//300 milli up, stay 1 sec, stay down 2 sec\r\n\t\tif (SetCleaning == true)\r\n \tClean =\tcontext.RequestUserInputFor<Cleaning>(Clean,\"Cleaning Input Required\",\"Please fill in the form\");\r\n\r\n\t\t// Tup = LeftRockerSpeed/100;\r\n\t\t// Tdelay1 = LeftRockerSpeed%100;\r\n\t\t// Tdelay2 = RightRockerSpeed;\r\n\t\tint LeftRockerSpeed = Clean.Tup*100+Clean.Tdelay1;\r\n\t\tint RightRockerSpeed = Clean.Tdelay2;\r\n\r\n\t\tconfigurationParameters.IDSLeftCleaningMotorSpeed = LeftRockerSpeed;\r\n\t\tconfigurationParameters.IDSRightCleaningMotorSpeed = RightRockerSpeed;\r\n\r\n\t\tconfigurationParameters.SwitchToIdleTimeinSeconds = 3600;\r\n\t\tconfigurationParameters.IdleDrierTemperature = 80;\r\n\t\tconfigurationParameters.IdleHeadTemperature = 80;\r\n\t\tconfigurationParameters.IdleMixerTemperature = 0;\r\n\t\tconfigurationParameters.PowerOffTemperatureLimit = 60;\r\n\r\n\t\t//general parameters, ORDER MUST BE PRESERVED!!!!\r\n\t\t//check the dispensers hard limit alarms\r\n\t\t/*1*/\r\n\t\tDouble checkHardLimitAlarms = new Double();\r\n\t\tcheckHardLimitAlarms = 1.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkHardLimitAlarms);\r\n\r\n\t\t/*2*/\r\n\t\tDouble checkCurrentAlarms = new Double();\r\n\t\tcheckCurrentAlarms = 0.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkCurrentAlarms);\r\n\t\t//check the tamper alarms\r\n\r\n\t\t/*3*/\r\n\t\tDouble checkTamperAlarms = new Double();\r\n\t\tcheckTamperAlarms = context.GetInput<double>(\"CheckTampers\");\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkTamperAlarms);\r\n\r\n\t\t/*4*/\r\n\t\tDouble checkMotorAlarms = new Double();\r\n\t\tcheckMotorAlarms = 1.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkMotorAlarms);\r\n\r\n\t\t/*5*/\r\n\t\tDouble WinderBackToBaseTime = new Double();\r\n\t\tWinderBackToBaseTime = 820.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(WinderBackToBaseTime);\r\n\t\t/*6*/\r\n\t\tDouble DispenserInitialPressureSpeed = new Double();\r\n\t\tDispenserInitialPressureSpeed = 1050.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(DispenserInitialPressureSpeed);\r\n\r\n\t\t/*7*/\r\n\t\tDouble SetDiagnosticMode = new Double();\r\n\t\tSetDiagnosticMode = 3.0;\t\t\r\n\t\tconfigurationParameters.GeneralParameters.Add(SetDiagnosticMode);\r\n\r\n\t\t/*8*/\t\t\r\n\t\tDouble SetAutoFill = new Double();\r\n\t\tSetAutoFill = 3.0;\t\t\r\n\t\tif (Advancedparam.Autofill == false)\r\n\t\t\tSetAutoFill = 0.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(SetAutoFill);\r\n\r\n\t\t//configurationParameters\t= context.RequestUserInputFor<ConfigurationParameters>(configurationParameters,\"ConfigurationParameters Input Required\",\"Please fill in the form\");\r\n\t\t/*Directory.CreateDirectory (\"C:/Temp\");\r\n\t\tFile.WriteAllBytes(\"C:/temp/EmbParam.cfg\",configurationParameters.ToBytes());\r\n\r\n\t\tbyte[] fileBytes1 = File.ReadAllBytes(\"C:/temp/EmbParam.cfg\");*/\r\n\t\tbyte[] fileBytes = configurationParameters.ToBytes();\r\n\r\n\r\n\t\tvar config = ConfigurationParameters.Parser.ParseFrom(fileBytes);\r\n\r\n\t\tcontext.Write( config);\r\n\t\tThread.Sleep(1000);\r\n\r\n\t\r\n\t\tcontext.Write(\"\\n\\n Deleting old file\");\r\n\r\n\t\tDeleteRequest deleteRequest = new DeleteRequest();\r\n\t\tdeleteRequest.Path = \"SYSINFO//EmbParam.cfg\";\r\n\t\tdeleteRequest.Attribute = Tango.PMR.IO.FileAttribute.Unspecified;\r\n\t\tDeleteResponse response5 = context.Send<DeleteResponse>(deleteRequest);\r\n\r\n\r\n\t\tThread.Sleep(1000);\r\n\t\tcontext.Write(\"\\n\\n Loading new file file\");\r\n\r\n\t\tFileUploadRequest fileUploadRequest = new FileUploadRequest();\r\n\t\tfileUploadRequest.Path = \"SYSINFO//EmbParam.cfg\";\r\n\t\tfileUploadRequest.Length = (int)fileBytes.Length;\r\n\t\tFileUploadResponse response2 = context.Send<FileUploadResponse>(fileUploadRequest);\r\n\t\tThread.Sleep(1000);\r\n\t\tlong chunk_size = response2.MaxChunkLength;\r\n\r\n\t\tcontext.Write(\"Chunk size \"+ chunk_size + \" file size \"+ fileBytes.Length +\"\\n\\n\");\r\n\t\tif (chunk_size < fileBytes.Length)\r\n\t\t{\r\n\t\t\tcontext.AddResult(ResultType.Failed, \"Chunk size too small\", chunk_size);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tFileChunkUploadRequest fileChunkUploadRequest = new FileChunkUploadRequest();\r\n\t\t\tfileChunkUploadRequest.UploadID = response2.UploadID;\r\n\t\t\tfileChunkUploadRequest.Buffer = ByteString.CopyFrom(fileBytes);\t\r\n\t\t\tvar response3 = context.Send<FileChunkUploadResponse>(fileChunkUploadRequest);\r\n\t\t\r\n\t\t\t//if (response3.\r\n\r\n\t\t\t// activating the new file\r\n\t\t\tProgressRequest progressRequest = new ProgressRequest();\r\n\t\t\tprogressRequest.Amount = 0xCD;\r\n\t\t\tprogressRequest.Delay = 0xCD;\r\n\t\t\tvar response1 = context.Send<ProgressResponse>(progressRequest);\r\n\t\t\tcontext.AddResult(ResultType.Passed, \"parameters loaded\", chunk_size);\r\n\t\t}\r\n\r\n }\r\n}","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","Name":"Service.csx","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[{"$id":"6","Type":"Selection","SelectionInputs":{"$id":"7","$values":[{"$id":"8","Name":"Enable Tamper Check","Value":"1.0"},{"$id":"9","Name":"Disable Tamper Check","Value":"0.0"}]},"DisplayName":"Check Tamper / Fan alarms","Description":"Check Tamper / Fan alarms (1 -true, 0 - false)","Key":"CheckTampers","Value":"1.0"},{"$id":"10","Type":"Default","SelectionInputs":{"$id":"11","$values":[]},"DisplayName":"Set advanced parameters","Description":"Set advanced parameters","Key":"AdvancedParameters","Value":"false"},{"$id":"12","Type":"Default","SelectionInputs":{"$id":"13","$values":[]},"DisplayName":"Set Cleaning Values","Description":"Set to 1 if you want to update the cleaning values","Key":"SetCleaningValues","Value":"false"}]},"Variables":{"$id":"14","$values":[]},"ReferenceAssemblies":{"$id":"15","$values":[{"$id":"16","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"17","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"18","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"19","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"20","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"21","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"22","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"23","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"24","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"25","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"26","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Resources":{"$id":"27","$values":[]},"Dialogs":{"$id":"28","$values":[]},"ID":"2bd29884-5eb9-4d27-be4e-6cfa31dc9f66","ApartmentState":"MTA"} \ No newline at end of file
+{"$id":"1","Name":"EmbeddedParametersBuild","Description":"This procedure lets the FSE to define values for cleaning, tamper alarms, initial heating, WCF value and automatic dispenser filling.","Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.IO;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.PMR.EmbeddedParameters;\r\nusing Tango.PMR.IO;\r\nusing Tango.FSE.Procedures;\r\n\r\n\r\npublic class Cleaning\r\n{\r\n\t[Description(\"Actuator Going up time\")]\r\n\tpublic int Tup;\r\n\t[Description(\"Actuator Wait up time\")]\r\n\tpublic int Tdelay1;\r\n\t[Description(\"Actuator Wait Down time\")]\r\n\tpublic int Tdelay2;\r\n}\r\npublic class Advanced\r\n{\r\n\t[Description(\"Automatic heating on machine StartUp\")]\r\n\tpublic bool InitialHeating;\r\n\t[Description(\"Waste pressure buildup factor\")]\r\n\tpublic int WFCF;\r\n\t[Description(\"Auto fill mode on/off\")]\r\n\tpublic bool Autofill;\r\n}\r\n\r\npublic class Program\r\n{\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n\r\n context.AddResult(ResultType.Passed, \"My Value Name\", \"Test for this value has passed.\");\r\n\t\tConfigurationParameters configurationParameters = new ConfigurationParameters();\r\n\r\n\t\tbool AdvancedParams = context.GetInput<bool>(\"AdvancedParameters\");\r\n\t\tAdvanced Advancedparam = new Advanced();\r\n\t\tAdvancedparam.InitialHeating = true;\r\n\t\tAdvancedparam.WFCF = 40;\r\n\t\tAdvancedparam.Autofill = true;\r\n\t\tif (AdvancedParams == true)\r\n \tAdvancedparam =\tcontext.RequestUserInputFor<Advanced>(Advancedparam,\"Advanced parameters input Required\",\"Please fill in the form\");\r\n\r\n\t\tconfigurationParameters.BreakSensorLimit = 10;\r\n\r\n\t\t//how many samples to collect in diagnostics before sending\r\n\t\tconfigurationParameters.DiagnosticCollectionLimit = 3;\r\n\r\n\t\t//how many consecutive readout before declaring DC over/underheat alarm\r\n\t\tconfigurationParameters.OverHeatCountLimit = 3;\r\n\t\tconfigurationParameters.UnderHeatCountLimit = 3;\r\n\r\n\t\t// time of motor activity before opening the valve or after closing the valve, in milliseconds\r\n\t\tconfigurationParameters.CloseValveTimeout = 20;\r\n\t\tconfigurationParameters.OpenValveTimeout = 20;\r\n\r\n\t\t//backlash after filling - target pressure, timoeout, time staps (speed will be added in general parameters)\r\n\t\tconfigurationParameters.InitialDispenserPressure = 3.85; //used for initial pre-run maximal pressure\r\n\t\tconfigurationParameters.InitialDispenserTimeout = 120000; ////used for initial pre-run target number of steps\r\n\t\tconfigurationParameters.InitialDispenserTimeLag = 100;\r\n\r\n\t\t//job prepare - build pressure in dispensers - target pressure, timoeout, time staps, speed\r\n\t\tconfigurationParameters.DispenserBuildPressureSpeed = 950; //no more than 1000\r\n\t\tconfigurationParameters.DispenserBuildPressureLimit = 0.85; \r\n\t\tconfigurationParameters.DispenserBuildPressureTimeout = 180000;\r\n\t\tconfigurationParameters.DispenserBuildPressureLag = 100;\r\n\r\n\t\t//temperature band 1000 = 100% - thresholds for job start around target temprature - AC\r\n\t\tconfigurationParameters.ACHeatersLowerOperationLimit = 995;\r\n\t\tconfigurationParameters.ACHeatersUpperOperationLimit = 1005;\r\n\r\n\t\t//temperature band 1000 = 100% - thresholds for job start around target temprature - DC\r\n\t\tconfigurationParameters.DCHeatersLowerOperationLimit = 978;\r\n\t\tconfigurationParameters.DCHeatersUpperOperationLimit = 1005;\r\n\r\n\t\t// mid tank reading offset to add to the readout (OBSOLETE!)\r\n\t\tconfigurationParameters.MidTankPressureCorrection = 0.0;\r\n\r\n\t\t//waste factor for intersegment pressure building\r\n\t\tconfigurationParameters.DispenserPresegmentWFCF = Advancedparam.WFCF;\r\n\r\n\t\t//how much time to start the WFCF process (pressure buildup) before segment start\r\n\t\tconfigurationParameters.IDSPreSegmentWFCFTimeBeforeSegment = 12000;\r\n\r\n\t\t//flag: start heaters according to saved process parameters upon init?\r\n\t\tconfigurationParameters.StartHeatingOnInitSequence = Advancedparam.InitialHeating;\r\n\r\n\t\t// current test for the heaters - alarm thresholds\r\n\t\tconfigurationParameters.CurrentAlarmLowLimit = 0.78;\r\n\t\tconfigurationParameters.CurrentAlarmHighLimit = 1.07;\r\n\r\n\t\t//currently not in use\r\n\t\tconfigurationParameters.IDSSegmentRefillTimeout = 5000;\r\n\t\tconfigurationParameters.IDSPreSegmentBuildupTime = 5000;\r\n\t\t//cleaning!!!!!!!!!!\r\n\t\tconfigurationParameters.IDSCleaningSpeed = 800;\r\n\t\tconfigurationParameters.IDSCleaningStopBeforeSegmentTime = 10000; //end of presegemnt\r\n\t\tconfigurationParameters.IDSCleaningStartSprayPreSegmentTime =2000; //beginning of presegment\r\n\r\n\t\tbool SetCleaning = context.GetInput<bool>(\"SetCleaningValues\");\r\n Cleaning Clean = new Cleaning();\r\n\t\tClean.Tup = 10;\r\n\t\tClean.Tdelay1 = 98;\r\n\t\tClean.Tdelay2 = 198;//300 milli up, stay 1 sec, stay down 2 sec\r\n\t\tif (SetCleaning == true)\r\n \tClean =\tcontext.RequestUserInputFor<Cleaning>(Clean,\"Cleaning Input Required\",\"Please fill in the form\");\r\n\r\n\t\t// Tup = LeftRockerSpeed/100;\r\n\t\t// Tdelay1 = LeftRockerSpeed%100;\r\n\t\t// Tdelay2 = RightRockerSpeed;\r\n\t\tint LeftRockerSpeed = Clean.Tup*100+Clean.Tdelay1;\r\n\t\tint RightRockerSpeed = Clean.Tdelay2;\r\n\r\n\t\tconfigurationParameters.IDSLeftCleaningMotorSpeed = LeftRockerSpeed;\r\n\t\tconfigurationParameters.IDSRightCleaningMotorSpeed = RightRockerSpeed;\r\n\r\n\t\tconfigurationParameters.SwitchToIdleTimeinSeconds = 3600;\r\n\t\tconfigurationParameters.IdleDrierTemperature = 80;\r\n\t\tconfigurationParameters.IdleHeadTemperature = 80;\r\n\t\tconfigurationParameters.IdleMixerTemperature = 0;\r\n\t\tconfigurationParameters.PowerOffTemperatureLimit = 60;\r\n\r\n\t\t//general parameters, ORDER MUST BE PRESERVED!!!!\r\n\t\t//check the dispensers hard limit alarms\r\n\t\t/*1*/\r\n\t\tDouble checkHardLimitAlarms = new Double();\r\n\t\tcheckHardLimitAlarms = 1.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkHardLimitAlarms);\r\n\r\n\t\t/*2*/\r\n\t\tDouble checkCurrentAlarms = new Double();\r\n\t\tcheckCurrentAlarms = 0.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkCurrentAlarms);\r\n\t\t//check the tamper alarms\r\n\r\n\t\t/*3*/\r\n\t\tDouble checkTamperAlarms = new Double();\r\n\t\tcheckTamperAlarms = context.GetInput<double>(\"CheckTampers\");\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkTamperAlarms);\r\n\r\n\t\t/*4*/\r\n\t\tDouble checkMotorAlarms = new Double();\r\n\t\tcheckMotorAlarms = 1.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(checkMotorAlarms);\r\n\r\n\t\t/*5*/\r\n\t\tDouble WinderBackToBaseTime = new Double();\r\n\t\tWinderBackToBaseTime = 820.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(WinderBackToBaseTime);\r\n\t\t/*6*/\r\n\t\tDouble DispenserInitialPressureSpeed = new Double();\r\n\t\tDispenserInitialPressureSpeed = 1050.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(DispenserInitialPressureSpeed);\r\n\r\n\t\t/*7*/\r\n\t\tDouble SetDiagnosticMode = new Double();\r\n\t\tSetDiagnosticMode = 3.0;\t\t\r\n\t\tconfigurationParameters.GeneralParameters.Add(SetDiagnosticMode);\r\n\r\n\t\t/*8*/\t\t\r\n\t\tDouble SetAutoFill = new Double();\r\n\t\tSetAutoFill = 3.0;\t\t\r\n\t\tif (Advancedparam.Autofill == false)\r\n\t\t\tSetAutoFill = 0.0;\r\n\t\tconfigurationParameters.GeneralParameters.Add(SetAutoFill);\r\n\r\n\t\t//configurationParameters\t= context.RequestUserInputFor<ConfigurationParameters>(configurationParameters,\"ConfigurationParameters Input Required\",\"Please fill in the form\");\r\n\t\t/*Directory.CreateDirectory (\"C:/Temp\");\r\n\t\tFile.WriteAllBytes(\"C:/temp/EmbParam.cfg\",configurationParameters.ToBytes());\r\n\r\n\t\tbyte[] fileBytes1 = File.ReadAllBytes(\"C:/temp/EmbParam.cfg\");*/\r\n\t\tbyte[] fileBytes = configurationParameters.ToBytes();\r\n\r\n\r\n\t\tvar config = ConfigurationParameters.Parser.ParseFrom(fileBytes);\r\n\r\n\t\tcontext.Write( config);\r\n\t\tThread.Sleep(1000);\r\n\r\n\t\r\n\t\tcontext.Write(\"\\n\\n Deleting old file\");\r\n\r\n\t\tDeleteRequest deleteRequest = new DeleteRequest();\r\n\t\tdeleteRequest.Path = \"SYSINFO//EmbParam.cfg\";\r\n\t\tdeleteRequest.Attribute = Tango.PMR.IO.FileAttribute.Unspecified;\r\n\t\tDeleteResponse response5 = context.Send<DeleteResponse>(deleteRequest);\r\n\r\n\r\n\t\tThread.Sleep(1000);\r\n\t\tcontext.Write(\"\\n\\n Loading new file file\");\r\n\r\n\t\tFileUploadRequest fileUploadRequest = new FileUploadRequest();\r\n\t\tfileUploadRequest.Path = \"SYSINFO//EmbParam.cfg\";\r\n\t\tfileUploadRequest.Length = (int)fileBytes.Length;\r\n\t\tFileUploadResponse response2 = context.Send<FileUploadResponse>(fileUploadRequest);\r\n\t\tThread.Sleep(1000);\r\n\t\tlong chunk_size = response2.MaxChunkLength;\r\n\r\n\t\tcontext.Write(\"Chunk size \"+ chunk_size + \" file size \"+ fileBytes.Length +\"\\n\\n\");\r\n\t\tif (chunk_size < fileBytes.Length)\r\n\t\t{\r\n\t\t\tcontext.AddResult(ResultType.Failed, \"Chunk size too small\", chunk_size);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tFileChunkUploadRequest fileChunkUploadRequest = new FileChunkUploadRequest();\r\n\t\t\tfileChunkUploadRequest.UploadID = response2.UploadID;\r\n\t\t\tfileChunkUploadRequest.Buffer = ByteString.CopyFrom(fileBytes);\t\r\n\t\t\tvar response3 = context.Send<FileChunkUploadResponse>(fileChunkUploadRequest);\r\n\t\t\r\n\t\t\t//if (response3.\r\n\r\n\t\t\t// activating the new file\r\n\t\t\tProgressRequest progressRequest = new ProgressRequest();\r\n\t\t\tprogressRequest.Amount = 0xCD;\r\n\t\t\tprogressRequest.Delay = 0xCD;\r\n\t\t\tvar response1 = context.Send<ProgressResponse>(progressRequest);\r\n\t\t\tcontext.AddResult(ResultType.Passed, \"parameters loaded\", chunk_size);\r\n\t\t}\r\n\r\n }\r\n}","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","Name":"Service.csx","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[{"$id":"6","Type":"Selection","SelectionInputs":{"$id":"7","$values":[{"$id":"8","Name":"Enable Tamper Check","Value":"1.0"},{"$id":"9","Name":"Disable Tamper Check","Value":"0.0"}]},"DisplayName":"Check Tamper / Fan alarms","Description":"Check Tamper / Fan alarms (1 -true, 0 - false)","Key":"CheckTampers","Value":"1.0"},{"$id":"10","Type":"Default","SelectionInputs":{"$id":"11","$values":[]},"DisplayName":"Set advanced parameters","Description":"Set advanced parameters","Key":"AdvancedParameters","Value":"false"},{"$id":"12","Type":"Default","SelectionInputs":{"$id":"13","$values":[]},"DisplayName":"Set Cleaning Values","Description":"Set to 1 if you want to update the cleaning values","Key":"SetCleaningValues","Value":"false"}]},"Variables":{"$id":"14","$values":[]},"ReferenceAssemblies":{"$id":"15","$values":[{"$id":"16","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"17","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"18","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"19","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"20","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"21","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"22","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"23","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"24","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"25","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"26","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Resources":{"$id":"27","$values":[]},"Dialogs":{"$id":"28","$values":[]},"ID":"2bd29884-5eb9-4d27-be4e-6cfa31dc9f66","ApartmentState":"MTA"} \ No newline at end of file
diff --git a/Software/Stubs Collection/Procedures/FFS Rebuild.pproj b/Software/Stubs Collection/Procedures/FFS Rebuild.pproj
new file mode 100644
index 000000000..2dca7e072
--- /dev/null
+++ b/Software/Stubs Collection/Procedures/FFS Rebuild.pproj
@@ -0,0 +1 @@
+{"$id":"1","Name":"FFS Rebuild","Description":"This procedure formats the flash file system of the embedded system. use it if the embedded storage looks malfunctioning. this call disconnects the tablet and holds the system for one minute.","Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Program\r\n{\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n\t\tStubDancerPositionRequest stubDancerPositionRequest = new StubDancerPositionRequest();\r\n\t\tstring response1 = context.GetInput<string>(\"ValidationPassword\");\r\n List<uint> list = new List<uint>();\r\n\t\tif (response1 == \"Aa123456\")\r\n\t\t{\r\n\t\t\t//CF - initialize FFS\r\n\t\t\tProgressRequest progressRequest = new ProgressRequest();\r\n\t\t\tprogressRequest.Amount = 0xCF;\r\n\t\t\tprogressRequest.Delay = 0xCF;\r\n\t\t\t\r\n\t\t\t\tvar response = context.Send<ProgressResponse>(progressRequest);\r\n\t }\r\n\r\n }\r\n}","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","Name":"Service.csx","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[{"$id":"6","Type":"Default","SelectionInputs":{"$id":"7","$values":[]},"DisplayName":"Validation Password","Description":"Validation Password","Key":"ValidationPassword","Value":"0"}]},"Variables":{"$id":"8","$values":[]},"ReferenceAssemblies":{"$id":"9","$values":[{"$id":"10","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"11","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"12","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"13","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"14","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"15","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"17","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"18","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"19","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"20","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Resources":{"$id":"21","$values":[]},"Dialogs":{"$id":"22","$values":[]},"ID":"23b690b1-bd08-45ba-807b-3faa244ed8c3","ApartmentState":"MTA"} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/1.tpf b/Software/Stubs Collection/stubs/1.tpf
deleted file mode 100644
index 25215919f..000000000
--- a/Software/Stubs Collection/stubs/1.tpf
+++ /dev/null
@@ -1,3084 +0,0 @@
-<?xml version="1.0"?>
-<MachineTechViewProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <Items />
- <Tabs>
- <MachineTechViewProjectTab>
- <Name>Temperatures</Name>
- <Items>
- <TechItem xsi:type="DigitalOutItem">
- <ID>e4892498-fa1a-413c-9dd8-633efaade51c</ID>
- <Left>415</Left>
- <Top>692.74336283185824</Top>
- <Width>160</Width>
- <Height>102.34070796460173</Height>
- <Angle>0</Angle>
- <ItemGuid>6b9cba1d-4acf-4992-97ad-e422bca6ada2</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>a15665e3-af39-42d8-8c06-97d770632e10</ID>
- <Left>928</Left>
- <Top>593.77433628318579</Top>
- <Width>207</Width>
- <Height>184.4159292035398</Height>
- <Angle>0</Angle>
- <ItemGuid>6D6CFA18-5922-4AFE-84B3-2721CE128681</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>DryerAirHeater</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>69.85</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>0ac64716-d30c-489b-939e-a26d06445866</ID>
- <Left>828</Left>
- <Top>682.88053097345</Top>
- <Width>130</Width>
- <Height>100.31415929203541</Height>
- <Angle>0</Angle>
- <ItemGuid>A5DFC2DB-3B36-4377-96A0-D492CE785C00</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>DryerMainHeater</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>92.97</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>181796d8-64f6-420a-8f37-9af9df67d6a9</ID>
- <Left>717</Left>
- <Top>684.46902654867324</Top>
- <Width>127</Width>
- <Height>101.3274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>86808B48-B7F9-43AD-840E-2A6A5987C305</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>DryerSecondaryHeater</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>92.94</CurrentValue>
- <IsActive>true</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>fd2bb3a3-a411-470d-bde7-0beaf84da059</ID>
- <Left>931</Left>
- <Top>83.08407079646031</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone3</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>39.55</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>7e8dd386-cca6-4d07-8a3e-af5403756002</ID>
- <Left>1106</Left>
- <Top>88.1504424778762</Top>
- <Width>200</Width>
- <Height>187.45575221238937</Height>
- <Angle>0</Angle>
- <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone2</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>37.29</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>32a91e5f-27c8-490d-b187-8e39b6626a13</ID>
- <Left>1311</Left>
- <Top>89.163716814159329</Top>
- <Width>157</Width>
- <Height>194.54867256637175</Height>
- <Angle>0</Angle>
- <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone1</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>34.27</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>c844235a-8a29-4c2e-a964-e8f546d2ced7</ID>
- <Left>1140</Left>
- <Top>588.70796460177</Top>
- <Width>173</Width>
- <Height>183.40265486725662</Height>
- <Angle>0</Angle>
- <ItemGuid>42A62A48-F1D5-4BB6-AFEA-6A7DF6DCF626</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>MixerHeater</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>54.669999999999995</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>45b121b5-cf7c-41f7-8089-6d4d6b1ed2c8</ID>
- <Left>751</Left>
- <Top>80.420353982302458</Top>
- <Width>169</Width>
- <Height>197.27876106194645</Height>
- <Angle>0</Angle>
- <ItemGuid>94574D69-46E1-4144-A8B5-D4BF0DA96D18</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone4</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>40.71</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>e6b3eb18-482b-450e-b8a8-d2ac6bba4fd4</ID>
- <Left>547</Left>
- <Top>85.482300884952679</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>D6771DF4-771E-4D62-B6BA-BDE361C0A0F3</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone5</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>43.389999999999993</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>efff2e67-e3a3-4667-9208-4704707d7cda</ID>
- <Left>353</Left>
- <Top>86.69911504424698</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>D2B6CAA0-055E-4871-8D91-A5370F1ACB22</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone6</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>46.809999999999995</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>f9936dba-cef8-41e3-a715-eb629dca1870</ID>
- <Left>265</Left>
- <Top>683.95575221238948</Top>
- <Width>131</Width>
- <Height>109.43362831858394</Height>
- <Angle>0</Angle>
- <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>5f2610dc-3b9d-4302-b8f5-77a5e1c73b8c</ID>
- <Left>1027.9999999999973</Left>
- <Top>291.07079646017547</Top>
- <Width>44</Width>
- <Height>42.557522123893705</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>D</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>eadb5257-47a2-4336-a72a-f2d157fe70cb</ID>
- <Left>907.99999999999909</Left>
- <Top>295.35840707964616</Top>
- <Width>44</Width>
- <Height>42.557522123893705</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>F</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>6c59af66-169a-46e0-89ae-a81e3e619043</ID>
- <Left>785.00000000000159</Left>
- <Top>288.5000000000004</Top>
- <Width>44</Width>
- <Height>42.557522123893705</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>I</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>3b32b9a8-f300-443f-950e-c49f81678bac</ID>
- <Left>624.99999999999966</Left>
- <Top>285.86725663716874</Top>
- <Width>44</Width>
- <Height>42.557522123893705</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>L</Text>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>f6d44793-ed44-46ed-8854-eacbc11af10c</ID>
- <Left>569</Left>
- <Top>688.00884955752213</Top>
- <Width>155</Width>
- <Height>96.261061946902714</Height>
- <Angle>0</Angle>
- <ItemGuid>df38139e-0026-46bc-b72f-df5f9eec80f7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorRecorderItem">
- <ID>43793f93-da64-4409-b583-bca498f641e6</ID>
- <Left>1308</Left>
- <Top>656.59734513274338</Top>
- <Width>203</Width>
- <Height>107.40707964601774</Height>
- <Angle>0</Angle>
- <ColorNumber>-1</ColorNumber>
- <SelectedMonitorsGuids />
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>be9db1fd-d408-4f1c-a15a-d6ffe58fafb6</ID>
- <Left>1292</Left>
- <Top>343.56637168141606</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>188285E5-1493-4BED-8269-91743770A631</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone7</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>50.449999999999996</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>f129ea0d-9abb-437f-928e-1cd1f569db2a</ID>
- <Left>1190.0000000000025</Left>
- <Top>294.69026548672929</Top>
- <Width>39</Width>
- <Height>38.504424778760836</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>C</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>217c677a-3e11-4a7c-959b-616dae1259dd</ID>
- <Left>1369</Left>
- <Top>295.87168141592934</Top>
- <Width>44</Width>
- <Height>42.557522123893705</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>A</Text>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>381f67cf-b7c6-4f6d-b089-37130798a5d8</ID>
- <Left>1107</Left>
- <Top>342.55309734513293</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>461FA2D7-1918-4958-AAA7-37A1A329FA12</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone8</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>48.22</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>3c923a93-4d15-4bbc-b1b3-be1876a77cfc</ID>
- <Left>924</Left>
- <Top>343.56637168141606</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>63E2AFE0-0746-4AAB-AA74-C26EC1F282AE</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone9</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>47.269999999999996</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>26e078e6-df8c-4fbf-b10e-4b3f7c7e9500</ID>
- <Left>359</Left>
- <Top>342.55309734513304</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>2D578A37-D808-40D0-ACE4-4A868EDD6BDC</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone12</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>39.64</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>7a8c3948-bb3d-4eb1-9276-315d34038f91</ID>
- <Left>550</Left>
- <Top>343.56637168141611</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>D41BBB23-6EB5-4743-89DB-9191000B475F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone11</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>45.449999999999996</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>f7d4c8ac-28cb-4779-83ef-3ede5e5a612c</ID>
- <Left>738</Left>
- <Top>344.57964601769908</Top>
- <Width>186</Width>
- <Height>195.56194690265494</Height>
- <Angle>0</Angle>
- <ItemGuid>B4D0A1C8-711C-49A9-82A3-B5B9F35FC131</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone10</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>48.459999999999994</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="ProcessParametersItem">
- <ID>120a9bea-5b5a-4ba4-92f5-40135f49a344</ID>
- <Left>6</Left>
- <Top>535.07522123893818</Top>
- <Width>338</Width>
- <Height>137.80530973451323</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <ProcessParameters>
- <ID>0</ID>
- <Guid>674d92c5-e6f8-4a62-bc62-b8e2fe0882a0</Guid>
- <LastUpdated>2020-01-14T07:44:15.1425366Z</LastUpdated>
- <Name>Process parameters 2</Name>
- <DyeingSpeed>0</DyeingSpeed>
- <MinInkUptake>0</MinInkUptake>
- <MaxInkUptake>0</MaxInkUptake>
- <FeederTension>0</FeederTension>
- <PullerTension>0</PullerTension>
- <WinderTension>0</WinderTension>
- <MixerTemp>0</MixerTemp>
- <HeadZone1Temp>0</HeadZone1Temp>
- <HeadZone2Temp>0</HeadZone2Temp>
- <HeadZone3Temp>0</HeadZone3Temp>
- <HeadZone4Temp>0</HeadZone4Temp>
- <HeadZone5Temp>0</HeadZone5Temp>
- <HeadZone6Temp>0</HeadZone6Temp>
- <DryerAirFlow>7</DryerAirFlow>
- <DryerZone1Temp>0</DryerZone1Temp>
- <DryerZone2Temp>0</DryerZone2Temp>
- <DryerZone3Temp>0</DryerZone3Temp>
- <DryerBufferLength>0</DryerBufferLength>
- <HeadAirFlow>7</HeadAirFlow>
- <TableIndex>0</TableIndex>
- <HeadZone7Temp>0</HeadZone7Temp>
- <HeadZone8Temp>0</HeadZone8Temp>
- <HeadZone9Temp>0</HeadZone9Temp>
- <HeadZone10Temp>0</HeadZone10Temp>
- <HeadZone11Temp>0</HeadZone11Temp>
- <HeadZone12Temp>0</HeadZone12Temp>
- <RBlowerFlow>0</RBlowerFlow>
- <RBlowerTemp>0</RBlowerTemp>
- <LBlowerFlow>0</LBlowerFlow>
- <LBlowerTemp>0</LBlowerTemp>
- <PressureBuildUp>0</PressureBuildUp>
- </ProcessParameters>
- <ParametersIndices>
- <ParameterIndex>
- <Name>Name</Name>
- <Index>0</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dyeing Speed</Name>
- <Index>1</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Min Ink Uptake</Name>
- <Index>2</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Max Ink Uptake</Name>
- <Index>3</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Feeder Tension</Name>
- <Index>4</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Puller Tension</Name>
- <Index>5</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Winder Tension</Name>
- <Index>6</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Mixer Temp</Name>
- <Index>7</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 1 Temp</Name>
- <Index>8</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 2 Temp</Name>
- <Index>9</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 3 Temp</Name>
- <Index>10</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 4 Temp</Name>
- <Index>11</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 5 Temp</Name>
- <Index>12</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 6 Temp</Name>
- <Index>13</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Air Flow</Name>
- <Index>14</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 1 Temp</Name>
- <Index>15</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 2 Temp</Name>
- <Index>16</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 3 Temp</Name>
- <Index>17</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Buffer Length</Name>
- <Index>18</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Air Flow</Name>
- <Index>19</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Process Parameters Tables Group Guid</Name>
- <Index>20</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Table Index</Name>
- <Index>21</Index>
- </ParameterIndex>
- </ParametersIndices>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>e502555c-95b0-4688-b5e3-8becb30fc62c</ID>
- <Left>1458.875</Left>
- <Top>91.7821782178217</Top>
- <Width>200</Width>
- <Height>187.45575221238937</Height>
- <Angle>0</Angle>
- <ItemGuid>F8C1BA7F-F6DF-414D-BAF5-D4CB292F91F6</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeadCoverHeater1</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>283.75</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>0f7a35fc-e363-45b2-948d-ba66f91e4f0d</ID>
- <Left>1457.8333333333333</Left>
- <Top>344.58910891089096</Top>
- <Width>200</Width>
- <Height>187.45575221238937</Height>
- <Angle>0</Angle>
- <ItemGuid>F39B952A-6194-4055-A5CB-A3421BFE0F9B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeadCoverHeater2</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>283.75</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>0214c2bd-98e2-4435-b55f-ec165b0782dd</ID>
- <Left>532</Left>
- <Top>587.69469026548677</Top>
- <Width>163</Width>
- <Height>77.008849557522126</Height>
- <Angle>0</Angle>
- <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>387e9a45-e608-47b8-9f3c-5572d0544e41</ID>
- <Left>708</Left>
- <Top>584.65486725663732</Top>
- <Width>168</Width>
- <Height>84.101769911504334</Height>
- <Angle>0</Angle>
- <ItemGuid>94F3E5A1-413E-4EA0-BDE1-F0625BFF7910</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="BlowerItem">
- <ID>18f62f2f-dbc0-4a3e-8af6-efdffc9562a5</ID>
- <Left>12</Left>
- <Top>699.86283185840716</Top>
- <Width>234</Width>
- <Height>96.2610619469026</Height>
- <Angle>0</Angle>
- <ItemGuid>B6FE07F8-2435-495D-ABFE-358C76812413</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>cb7b89a1-cdb4-408e-acc8-40e8dcb8d6ac</ID>
- <Left>7</Left>
- <Top>5.995575221238937</Top>
- <Width>142</Width>
- <Height>84.101769911504391</Height>
- <Angle>0</Angle>
- <ItemGuid>9F98B9D3-F989-4D03-90E8-721671835E0B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>6be6ca7d-3ca6-4206-9c67-415174b71ace</ID>
- <Left>168</Left>
- <Top>7.3893805309738809</Top>
- <Width>146</Width>
- <Height>83.088495575221259</Height>
- <Angle>0</Angle>
- <ItemGuid>D59EFB38-79D9-446C-BCB5-92D8FDA900E4</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>2dca972d-3c41-4b07-a047-b63a23470a7e</ID>
- <Left>347</Left>
- <Top>574.92035398230325</Top>
- <Width>160</Width>
- <Height>102.34070796460173</Height>
- <Angle>0</Angle>
- <ItemGuid>75f69efe-1c7e-4015-a6eb-2686d4f67a67</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="ProcessParametersItem">
- <ID>38e5d1ac-40a5-4c5f-822c-51813cb15b7b</ID>
- <Left>31</Left>
- <Top>144.3584070796461</Top>
- <Width>310</Width>
- <Height>315.12831858407088</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <ProcessParameters>
- <ID>0</ID>
- <Guid>ce709f03-59be-410d-a928-e942c0c46ce3</Guid>
- <LastUpdated>2020-02-09T12:45:24.1272815Z</LastUpdated>
- <Name>Process parameters 6</Name>
- <DyeingSpeed>50</DyeingSpeed>
- <MinInkUptake>0</MinInkUptake>
- <MaxInkUptake>0</MaxInkUptake>
- <FeederTension>0</FeederTension>
- <PullerTension>5000</PullerTension>
- <WinderTension>5000</WinderTension>
- <MixerTemp>80</MixerTemp>
- <HeadZone1Temp>80</HeadZone1Temp>
- <HeadZone2Temp>90</HeadZone2Temp>
- <HeadZone3Temp>110</HeadZone3Temp>
- <HeadZone4Temp>120</HeadZone4Temp>
- <HeadZone5Temp>120</HeadZone5Temp>
- <HeadZone6Temp>135</HeadZone6Temp>
- <DryerAirFlow>7</DryerAirFlow>
- <DryerZone1Temp>190</DryerZone1Temp>
- <DryerZone2Temp>0</DryerZone2Temp>
- <DryerZone3Temp>0</DryerZone3Temp>
- <DryerBufferLength>0</DryerBufferLength>
- <HeadAirFlow>12</HeadAirFlow>
- <TableIndex>0</TableIndex>
- <HeadZone7Temp>135</HeadZone7Temp>
- <HeadZone8Temp>125</HeadZone8Temp>
- <HeadZone9Temp>135</HeadZone9Temp>
- <HeadZone10Temp>135</HeadZone10Temp>
- <HeadZone11Temp>140</HeadZone11Temp>
- <HeadZone12Temp>140</HeadZone12Temp>
- <RBlowerFlow>0</RBlowerFlow>
- <RBlowerTemp>0</RBlowerTemp>
- <LBlowerFlow>0</LBlowerFlow>
- <LBlowerTemp>0</LBlowerTemp>
- <PressureBuildUp>0</PressureBuildUp>
- </ProcessParameters>
- <ParametersIndices>
- <ParameterIndex>
- <Name>Process Parameters Tables Group Guid</Name>
- <Index>0</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Name</Name>
- <Index>1</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Table Index</Name>
- <Index>2</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dyeing Speed</Name>
- <Index>3</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Min Ink Uptake</Name>
- <Index>4</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Max Ink Uptake</Name>
- <Index>5</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Feeder Tension</Name>
- <Index>6</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Puller Tension</Name>
- <Index>7</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Winder Tension</Name>
- <Index>8</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Mixer Temp</Name>
- <Index>9</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 1 Temp</Name>
- <Index>10</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 2 Temp</Name>
- <Index>11</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 3 Temp</Name>
- <Index>12</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 4 Temp</Name>
- <Index>13</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 5 Temp</Name>
- <Index>14</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 6 Temp</Name>
- <Index>15</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 7 Temp</Name>
- <Index>16</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 8 Temp</Name>
- <Index>17</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 9 Temp</Name>
- <Index>18</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 10 Temp</Name>
- <Index>19</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 11 Temp</Name>
- <Index>20</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 12 Temp</Name>
- <Index>21</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>St Sp Zone 1 Temp</Name>
- <Index>22</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>St Sp Zone 2 Temp</Name>
- <Index>23</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 1 Temp</Name>
- <Index>24</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 2 Temp</Name>
- <Index>25</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 3 Temp</Name>
- <Index>26</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Air Flow</Name>
- <Index>27</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Air Flow</Name>
- <Index>28</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Buffer Length</Name>
- <Index>29</Index>
- </ParameterIndex>
- </ParametersIndices>
- </TechItem>
- <TechItem xsi:type="ProcessParametersItem">
- <ID>d2e09fbf-2ac8-4c32-a4f5-45e50e305098</ID>
- <Left>1016</Left>
- <Top>821.96460176991263</Top>
- <Width>361</Width>
- <Height>233.95575221238948</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <ProcessParameters>
- <ID>0</ID>
- <Guid>9b265a7c-cc48-4c5a-abed-dfa8c8e3099f</Guid>
- <LastUpdated>2020-02-09T13:11:03.3185652Z</LastUpdated>
- <Name>Process parameters 2</Name>
- <DyeingSpeed>0</DyeingSpeed>
- <MinInkUptake>0</MinInkUptake>
- <MaxInkUptake>0</MaxInkUptake>
- <FeederTension>0</FeederTension>
- <PullerTension>0</PullerTension>
- <WinderTension>0</WinderTension>
- <MixerTemp>0</MixerTemp>
- <HeadZone1Temp>0</HeadZone1Temp>
- <HeadZone2Temp>0</HeadZone2Temp>
- <HeadZone3Temp>0</HeadZone3Temp>
- <HeadZone4Temp>0</HeadZone4Temp>
- <HeadZone5Temp>0</HeadZone5Temp>
- <HeadZone6Temp>0</HeadZone6Temp>
- <DryerAirFlow>0</DryerAirFlow>
- <DryerZone1Temp>100</DryerZone1Temp>
- <DryerZone2Temp>0</DryerZone2Temp>
- <DryerZone3Temp>0</DryerZone3Temp>
- <DryerBufferLength>0</DryerBufferLength>
- <HeadAirFlow>0</HeadAirFlow>
- <TableIndex>0</TableIndex>
- <HeadZone7Temp>0</HeadZone7Temp>
- <HeadZone8Temp>0</HeadZone8Temp>
- <HeadZone9Temp>0</HeadZone9Temp>
- <HeadZone10Temp>0</HeadZone10Temp>
- <HeadZone11Temp>0</HeadZone11Temp>
- <HeadZone12Temp>0</HeadZone12Temp>
- <RBlowerFlow>0</RBlowerFlow>
- <RBlowerTemp>0</RBlowerTemp>
- <LBlowerFlow>0</LBlowerFlow>
- <LBlowerTemp>0</LBlowerTemp>
- <PressureBuildUp>0</PressureBuildUp>
- </ProcessParameters>
- <ParametersIndices>
- <ParameterIndex>
- <Name>Name</Name>
- <Index>0</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dyeing Speed</Name>
- <Index>1</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Min Ink Uptake</Name>
- <Index>2</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Max Ink Uptake</Name>
- <Index>3</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Feeder Tension</Name>
- <Index>4</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Puller Tension</Name>
- <Index>5</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Winder Tension</Name>
- <Index>6</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Mixer Temp</Name>
- <Index>7</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 1 Temp</Name>
- <Index>8</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 2 Temp</Name>
- <Index>9</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 3 Temp</Name>
- <Index>10</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 4 Temp</Name>
- <Index>11</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 5 Temp</Name>
- <Index>12</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Zone 6 Temp</Name>
- <Index>13</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Air Flow</Name>
- <Index>14</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 1 Temp</Name>
- <Index>15</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 2 Temp</Name>
- <Index>16</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Zone 3 Temp</Name>
- <Index>17</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Dryer Buffer Length</Name>
- <Index>18</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Head Air Flow</Name>
- <Index>19</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Process Parameters Tables Group Guid</Name>
- <Index>20</Index>
- </ParameterIndex>
- <ParameterIndex>
- <Name>Table Index</Name>
- <Index>21</Index>
- </ParameterIndex>
- </ParametersIndices>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>11f4748e-ed30-48d6-a08a-afeaa0277e2e</ID>
- <Left>330</Left>
- <Top>12.154867256637203</Top>
- <Width>205</Width>
- <Height>90.181415929203524</Height>
- <Angle>0</Angle>
- <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC02</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>dcf78507-ea09-4529-b635-ec1eeed31141</ID>
- <Left>145</Left>
- <Top>842.58849557522137</Top>
- <Width>357</Width>
- <Height>215.82743362831855</Height>
- <Angle>0</Angle>
- <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1275</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>85762a06-25d4-457a-9974-7eab916d65c5</ID>
- <Left>540</Left>
- <Top>4.0486725663717493</Top>
- <Width>205</Width>
- <Height>90.181415929203524</Height>
- <Angle>0</Angle>
- <ItemGuid>055D0A38-09BD-490D-9852-12B06A4B22F2</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>Thread</Name>
- <Items>
- <TechItem xsi:type="MonitorItem">
- <ID>50bae43f-8b1a-4279-9238-b976a0c72af3</ID>
- <Left>1530</Left>
- <Top>193.19911504424795</Top>
- <Width>169</Width>
- <Height>181.37610619469029</Height>
- <Angle>0</Angle>
- <ItemGuid>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>68eef943-2151-4df5-be61-044c3865606e</ID>
- <Left>1172</Left>
- <Top>145.78318584070678</Top>
- <Width>175</Width>
- <Height>167.827433628319</Height>
- <Angle>0</Angle>
- <ItemGuid>96B89605-F999-43FE-A1CD-2645BFB33A36</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>6be024c6-3d1b-4267-9b77-44473aba56b7</ID>
- <Left>988</Left>
- <Top>143.32300884955998</Top>
- <Width>190</Width>
- <Height>167.09734513274049</Height>
- <Angle>0</Angle>
- <ItemGuid>FC60060A-3736-4910-B41A-FF6DABDF0E9E</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>7c720f3b-00e1-49dd-92f9-fdd1e9686623</ID>
- <Left>817</Left>
- <Top>142.42035398230098</Top>
- <Width>169</Width>
- <Height>168.31858407079625</Height>
- <Angle>0</Angle>
- <ItemGuid>4CE6A82E-D841-4D33-BBB2-11F0743A441C</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>3ebd6759-521b-4ed1-a353-ee1ad7801f28</ID>
- <Left>922</Left>
- <Top>516.43362831858417</Top>
- <Width>439</Width>
- <Height>304.995575221239</Height>
- <Angle>0</Angle>
- <ItemGuid>D126DB23-784B-4F0C-8F88-D89A65A7549F</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1460</Duration>
- <Min>0</Min>
- <Max>16384</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>1</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>984b4126-3dda-4624-a79f-0646eb0e1358</ID>
- <Left>465</Left>
- <Top>515.420353982301</Top>
- <Width>439</Width>
- <Height>304.995575221239</Height>
- <Angle>0</Angle>
- <ItemGuid>10102BC3-0EAE-47FF-A8E5-8640780CAA3D</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1516</Duration>
- <Min>0</Min>
- <Max>16384</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>1</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>8ebc3ab7-a02d-4b12-93b3-2563443831d7</ID>
- <Left>15</Left>
- <Top>518.46017699115032</Top>
- <Width>439</Width>
- <Height>304.995575221239</Height>
- <Angle>0</Angle>
- <ItemGuid>C0BCCD5C-346B-4C4A-A080-39D28E9E1A0C</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1398</Duration>
- <Min>0</Min>
- <Max>16384</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>1</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>acafb268-5e97-4277-8dc8-173250a9e3f8</ID>
- <Left>12</Left>
- <Top>13.849557522123973</Top>
- <Width>439</Width>
- <Height>304.995575221239</Height>
- <Angle>0</Angle>
- <ItemGuid>9FBC5460-BA59-486B-8D85-BD7D8A959F98</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1273</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>1</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>be4cb8d9-b516-4604-a6a5-1638cbc50251</ID>
- <Left>860</Left>
- <Top>-24.18584070796669</Top>
- <Width>345</Width>
- <Height>169.21681415929209</Height>
- <Angle>0</Angle>
- <ItemGuid>4CE6A82E-D841-4D33-BBB2-11F0743A441C</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>514</Duration>
- <Min>0</Min>
- <Max>100000</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>1</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>75b99507-4eba-4b11-b52e-26732d4c5479</ID>
- <Left>19</Left>
- <Top>324.14159292035305</Top>
- <Width>429</Width>
- <Height>193.26548672566258</Height>
- <Angle>0</Angle>
- <ItemGuid>F1DF490B-0577-4FA7-ACA1-0EEF4F934E8F</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1398</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>4</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>a30e48de-be76-4230-92d0-d27d6f37b940</ID>
- <Left>474</Left>
- <Top>320.03097345132551</Top>
- <Width>429</Width>
- <Height>193.26548672566258</Height>
- <Angle>0</Angle>
- <ItemGuid>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1398</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>4</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>5ac4b368-093a-4192-98d4-e9d24f229b13</ID>
- <Left>928</Left>
- <Top>321.64601769912122</Top>
- <Width>429</Width>
- <Height>193.26548672566258</Height>
- <Angle>0</Angle>
- <ItemGuid>84CF23C9-D20D-4C08-BE1D-80201FC43C06</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1398</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>4</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="MonitorRecorderItem">
- <ID>9c34dc69-cfaa-48b4-9d02-8f0d9bba79dd</ID>
- <Left>1303</Left>
- <Top>34.380530973454768</Top>
- <Width>176</Width>
- <Height>83.05309734512457</Height>
- <Angle>0</Angle>
- <ColorNumber>-1</ColorNumber>
- <SelectedMonitorsGuids>
- <string>89B7B89D-8050-4188-B568-35B1910CFB6F</string>
- <string>96B89605-F999-43FE-A1CD-2645BFB33A36</string>
- <string>84CF23C9-D20D-4C08-BE1D-80201FC43C06</string>
- <string>FC60060A-3736-4910-B41A-FF6DABDF0E9E</string>
- <string>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</string>
- <string>9ADF7823-B293-4275-9999-F62474D246AA</string>
- <string>4CE6A82E-D841-4D33-BBB2-11F0743A441C</string>
- <string>F1DF490B-0577-4FA7-ACA1-0EEF4F934E8F</string>
- </SelectedMonitorsGuids>
- </TechItem>
- <TechItem xsi:type="ThreadMotionItem">
- <ID>be5b2c37-4481-4293-b957-bf65d8516fee</ID>
- <Left>464</Left>
- <Top>21.274336283185846</Top>
- <Width>315</Width>
- <Height>177.3230088495576</Height>
- <Angle>0</Angle>
- <ColorNumber>-1</ColorNumber>
- <Speed>20</Speed>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>aace77b8-02ca-4c88-abc1-590fc2592b99</ID>
- <Left>1355</Left>
- <Top>146.70796460176933</Top>
- <Width>175</Width>
- <Height>167.827433628319</Height>
- <Angle>0</Angle>
- <ItemGuid>89B7B89D-8050-4188-B568-35B1910CFB6F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>Dispensers</Name>
- <Items>
- <TechItem xsi:type="DispenserItem">
- <ID>dce78f33-c966-4848-8c6e-a4a01dbc7577</ID>
- <Left>1322.1428571428571</Left>
- <Top>214.15929203538531</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>2CC8E461-E91F-4D4C-A402-922477F06C87</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>800</Speed>
- <DisplayName>Dispenser 1</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>2d03fc19-0502-43e1-a3ff-4012a612112b</ID>
- <Left>1149</Left>
- <Top>218.48230088495342</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>C8D8FE90-0375-44A2-A6D1-E997789E065C</ItemGuid>
- <ColorNumber>-16724737</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 2</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>81958374-3fa3-48b3-a554-5653fe1934b1</ID>
- <Left>959</Left>
- <Top>210.32743362830422</Top>
- <Width>156</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>08ED9044-CAD6-4492-94B2-C07206E0164B</ItemGuid>
- <ColorNumber>-65325</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 3</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>8fead411-7198-4428-a364-e32f3035ed94</ID>
- <Left>775</Left>
- <Top>206.42920353980952</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>179F34BB-3252-4D3A-965C-E6EB43D6FE7C</ItemGuid>
- <ColorNumber>-524544</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 4</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>31bfa89f-e64d-4a3b-8585-c4a1b2e5a139</ID>
- <Left>585</Left>
- <Top>208.47345132741418</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>716B35CF-46E0-47D5-AF85-5233D212568F</ItemGuid>
- <ColorNumber>-2108246</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 5</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>c2bff5f3-6dc9-4b07-87ba-9e3a5814804e</ID>
- <Left>372</Left>
- <Top>216.75221238937439</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>99528449-4D76-4874-AB95-522951560E01</ItemGuid>
- <ColorNumber>-263685</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 6</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>071281a5-3569-4a62-8b68-7bea850a3c07</ID>
- <Left>217</Left>
- <Top>211.63716814158107</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>E8ED07E2-7C36-459C-B9E5-6A23A1E24F03</ItemGuid>
- <ColorNumber>-723724</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 7</DisplayName>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>7b703b9a-a626-4ae5-8e31-fa1cfe5718f4</ID>
- <Left>45</Left>
- <Top>216.04867256635521</Top>
- <Width>159</Width>
- <Height>215.8274336283186</Height>
- <Angle>0</Angle>
- <ItemGuid>8A957565-4165-49F7-854D-D21F95FFBE1B</ItemGuid>
- <ColorNumber>-724238</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 8</DisplayName>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>caca40a2-310c-452e-adcf-c28ee38f6bdc</ID>
- <Left>1305</Left>
- <Top>31.606194690259713</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid>
- <ColorNumber>-15856114</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>af52d36f-27a2-4a31-8ceb-9c43fedbed22</ID>
- <Left>1127</Left>
- <Top>32.535398230081626</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-15293470</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>d40eada8-d22a-4521-bd2a-d998ed93106f</ID>
- <Left>955</Left>
- <Top>32.61946902653176</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid>
- <ColorNumber>-1570857</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>b2d6364d-8b5c-43d2-8838-927c85b017b1</ID>
- <Left>774</Left>
- <Top>31.960176991142362</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid>
- <ColorNumber>-1379575</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>3980e685-73b3-4af1-9593-9235be147322</ID>
- <Left>596</Left>
- <Top>32.889380530964274</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid>
- <ColorNumber>-7763381</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>51465293-58d5-40a4-8302-81856f8b4f47</ID>
- <Left>424</Left>
- <Top>32.973451327414409</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>AF3FD56C-95BF-4DE1-8EDC-8426B0DB2A26</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>c2a8c5b2-891b-4f9f-862c-c1c294366c78</ID>
- <Left>252</Left>
- <Top>31.703539823006281</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>60DA9EA3-C8A6-4D41-8AD8-3EB1BAA79CC9</ItemGuid>
- <ColorNumber>-8391822</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>9618e441-8973-4e16-a90b-06ce5798bd29</ID>
- <Left>80</Left>
- <Top>31.787610619456416</Top>
- <Width>150</Width>
- <Height>156.04424778761069</Height>
- <Angle>0</Angle>
- <ItemGuid>EF66F95A-E166-4FA2-B1AF-D6F55621817A</ItemGuid>
- <ColorNumber>-2186185</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>bce8c8e8-a317-4991-9aa7-cd99a45d1509</ID>
- <Left>28.22352941176473</Left>
- <Top>682.03174474303751</Top>
- <Width>247</Width>
- <Height>122.24778761061873</Height>
- <Angle>0</Angle>
- <ItemGuid>66cc8510-db9c-4e13-9151-01e705ec04de</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>72a23702-31bb-4ab8-aee5-2a02bcb1270b</ID>
- <Left>235.16470588235291</Left>
- <Top>699.99460095802579</Top>
- <Width>200</Width>
- <Height>94.15929203539747</Height>
- <Angle>0</Angle>
- <ItemGuid>36ba0ba4-e41d-45ff-8f68-1699e00c7107</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="ControllerItem">
- <ID>2dd6ff17-e515-4d8f-814f-a9683f404a8e</ID>
- <Left>140</Left>
- <Top>867.73893805310092</Top>
- <Width>160</Width>
- <Height>85.49115044247776</Height>
- <Angle>0</Angle>
- <ItemGuid>78482AA4-3DF6-421F-944C-64328D3C3EF2</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <OptimalRangeMinimum>0</OptimalRangeMinimum>
- <OptimalRangeMaximum>70</OptimalRangeMaximum>
- <IsSetToDefault>true</IsSetToDefault>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>06843009-1da0-4811-8e77-50576d0edcb1</ID>
- <Left>507</Left>
- <Top>792.77433628318749</Top>
- <Width>219</Width>
- <Height>125.75221238938025</Height>
- <Angle>0</Angle>
- <ItemGuid>0c5dc1e9-da17-4ff8-86aa-6b39fd796ba9</ItemGuid>
- <ColorNumber>-16777216</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>935dddd0-0c6f-4766-8173-f9118006a12b</ID>
- <Left>1303</Left>
- <Top>475.87168141593065</Top>
- <Width>160</Width>
- <Height>124.6504424778754</Height>
- <Angle>0</Angle>
- <ItemGuid>B2164815-FBF3-4CF8-81D8-20F719626664</ItemGuid>
- <ColorNumber>-15856114</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MultiGraphItem">
- <ID>97e39a59-dba8-4e42-a124-b37de9453baf</ID>
- <Left>370</Left>
- <Top>781.46902654866153</Top>
- <Width>710</Width>
- <Height>401.24778761063465</Height>
- <Angle>0</Angle>
- <ItemGuid>D023F15D-3555-48E9-A9E9-5DF99F60D791</ItemGuid>
- <ColorNumber>0</ColorNumber>
- <Duration>1956</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>46bdfce3-1c69-45dd-bbe9-582d1ac1e6f2</ID>
- <Left>1128</Left>
- <Top>482.80530973451141</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>0FE216B2-A097-4F2C-B465-08593F2532B3</ItemGuid>
- <ColorNumber>-15293470</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>429154a5-9a16-4423-85ca-ee4bae9aec3c</ID>
- <Left>968</Left>
- <Top>481.35398230088504</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>3271FD82-46D3-4789-B612-564967826C75</ItemGuid>
- <ColorNumber>-1570857</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>0f6ab8e8-99a7-4468-bde8-690a63467688</ID>
- <Left>766</Left>
- <Top>476.07964601769811</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>FBB806E7-42FA-4BAA-BDA1-3B8B07913AAD</ItemGuid>
- <ColorNumber>-1379575</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>bc0ac903-9c1f-4580-8b9e-670a76350473</ID>
- <Left>586</Left>
- <Top>474.38938053097161</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>436A22BB-AF79-4CB2-8A7D-DD4D9E54A81E</ItemGuid>
- <ColorNumber>-7763381</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>f9c960b2-b93e-46d5-b892-30337c0b55af</ID>
- <Left>391</Left>
- <Top>474.87168141592781</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>89EA6CC8-5363-4BEC-A370-D906611087A7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>5ac157ab-2d53-4307-bf0b-b069854701ac</ID>
- <Left>226</Left>
- <Top>471.66814159292005</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>D5EBE52B-E2DF-4C97-80B1-F111F6B15854</ItemGuid>
- <ColorNumber>-8391822</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>65a19d7e-c524-48a0-bd70-28b99b113dd1</ID>
- <Left>69</Left>
- <Top>473.97787610619389</Top>
- <Width>140</Width>
- <Height>117.32300884955743</Height>
- <Angle>0</Angle>
- <ItemGuid>FE521D1B-A0EA-4FEA-AE64-33998A6CE138</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>5bf7a681-ee47-477e-8b47-ba7a2eb6e115</ID>
- <Left>1130</Left>
- <Top>624.9557522123913</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>3174ADCF-5793-4B5A-A3C6-B96E146A903D</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>29b17a4b-fd4e-49cc-a3cd-418730176bf7</ID>
- <Left>969</Left>
- <Top>625.95575221239</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>AD50C358-5BAF-4A2F-8593-51A22C85B3D1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>21a5429f-c3a2-4e3b-ae77-c5538f30130d</ID>
- <Left>775</Left>
- <Top>623.66814159292062</Top>
- <Width>144</Width>
- <Height>82.535398230087083</Height>
- <Angle>0</Angle>
- <ItemGuid>E2F0FC31-CE7E-416B-ACEA-8EB6CA9B850B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>96a46b0c-37b1-4457-93fb-b3dc301c5743</ID>
- <Left>588</Left>
- <Top>625.06637168141322</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C09F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>d4ad8603-9929-415f-9990-1869fcff36e4</ID>
- <Left>1310</Left>
- <Top>628.69469026548632</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>84682E90-6926-42AA-BF8C-2CCCF5C26C97</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>25249d78-ee37-42a8-b5aa-96f60e97c3ea</ID>
- <Left>20.870588235294122</Left>
- <Top>784.26605504587133</Top>
- <Width>327</Width>
- <Height>108.53097345133028</Height>
- <Angle>0</Angle>
- <ItemGuid>8B1FCBC3-FEEA-4F87-B56F-CE5D28B7ACA4</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>fc1d62f7-d13b-4a7b-8f9f-c687c987c7a9</ID>
- <Left>1065</Left>
- <Top>788.41592920352355</Top>
- <Width>370</Width>
- <Height>362.10619469026585</Height>
- <Angle>0</Angle>
- <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1426</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>3</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>cc99a514-1498-4b93-a4eb-4e0a2a2e9de6</ID>
- <Left>628</Left>
- <Top>765.4469026548752</Top>
- <Width>394</Width>
- <Height>372.88495575221242</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1282</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>1</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>cdddd48e-422d-48f4-8397-5032c3705fdb</ID>
- <Left>1069</Left>
- <Top>698.04867256637226</Top>
- <Width>382</Width>
- <Height>136.79203539823016</Height>
- <Angle>0</Angle>
- <ItemGuid>04C58CA0-9719-4BB0-8D3B-D4C71129D8E4</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>ee6d4c5a-ca5b-4557-8012-dacf700cdc08</ID>
- <Left>231</Left>
- <Top>624.06637168142413</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C010</ItemGuid>
- <ColorNumber>-8391822</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>20576bb2-202f-4170-9af5-f3c18b410112</ID>
- <Left>77</Left>
- <Top>624.46460176991513</Top>
- <Width>144</Width>
- <Height>80.495575221237516</Height>
- <Angle>0</Angle>
- <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C011</ItemGuid>
- <ColorNumber>-2186185</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>Thread insertion</Name>
- <Items>
- <TechItem xsi:type="MotorItem">
- <ID>443a977c-8e89-4a56-82e4-684bac7945c9</ID>
- <Left>25</Left>
- <Top>22.761061946902203</Top>
- <Width>247</Width>
- <Height>172.25663716814159</Height>
- <Angle>0</Angle>
- <ItemGuid>08d15ca1-d7d1-460f-8f37-42c37c287cd1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>a821b716-cb7d-4951-84ee-e56955431099</ID>
- <Left>355</Left>
- <Top>20.592920353981697</Top>
- <Width>260</Width>
- <Height>153.00442477876106</Height>
- <Angle>0</Angle>
- <ItemGuid>b90a4e78-ebbf-44db-829b-949517d6400b</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>350</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>e36e321b-d48d-4199-a1ee-75ac18e9de1e</ID>
- <Left>694</Left>
- <Top>19.367256637167998</Top>
- <Width>217</Width>
- <Height>155.26106194690203</Height>
- <Angle>0</Angle>
- <ItemGuid>b7c1aea4-32c1-41cb-bca3-4aa665529b49</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>350</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>8790db03-4dfd-4d49-aec0-706babb55af9</ID>
- <Left>396</Left>
- <Top>244.37610619468319</Top>
- <Width>240</Width>
- <Height>172.30973451327589</Height>
- <Angle>0</Angle>
- <ItemGuid>2d3eaca5-4dfd-40d9-9d1f-aa4ae794eddc</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>69ebcb28-13d9-41b3-a9ef-b2be51584141</ID>
- <Left>36</Left>
- <Top>245.4955752212249</Top>
- <Width>255</Width>
- <Height>170.15044247787392</Height>
- <Angle>0</Angle>
- <ItemGuid>c6099065-a735-4cc5-b575-c31a45bb9262</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>400</Speed>
- </TechItem>
- <TechItem xsi:type="ThreadMotionItem">
- <ID>4d562029-3fdf-40a4-a5a7-9a322253c912</ID>
- <Left>1168</Left>
- <Top>47.305309734517039</Top>
- <Width>304</Width>
- <Height>167.26548672566202</Height>
- <Angle>0</Angle>
- <ColorNumber>-1</ColorNumber>
- <Speed>40</Speed>
- </TechItem>
- <TechItem xsi:type="BreakSensorItem">
- <ID>92607e12-2dd6-41c9-8f89-f051f386b734</ID>
- <Left>1316</Left>
- <Top>380.876106194693</Top>
- <Width>240</Width>
- <Height>144.699115044238</Height>
- <Angle>0</Angle>
- <ItemGuid>DCE08A06-6711-43AE-AB7C-EADD5AB70EE0</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>7b5b6896-f626-4e59-a5cf-2600e603c0f6</ID>
- <Left>723</Left>
- <Top>241.30530973452125</Top>
- <Width>237</Width>
- <Height>179.22123893805463</Height>
- <Angle>0</Angle>
- <ItemGuid>7b6d0a93-5a91-4e1f-af47-353afd8b5ea6</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>20</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>2052a2d3-843c-4a1c-87fd-acd0832fd1b9</ID>
- <Left>85</Left>
- <Top>589.09734513273827</Top>
- <Width>220</Width>
- <Height>168.473451327436</Height>
- <Angle>0</Angle>
- <ItemGuid>c9482395-35e6-4340-8dab-83d5dfe907a7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>2200</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>339b7d00-d688-41cf-926a-8171d5e62740</ID>
- <Left>403</Left>
- <Top>591.712389380534</Top>
- <Width>240</Width>
- <Height>159.84070796460173</Height>
- <Angle>0</Angle>
- <ItemGuid>f3b5076e-cba3-4ad2-b3cc-0c4e907bd9ef</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>400</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>7644a8f9-00a2-4e37-8f48-0667b1541114</ID>
- <Left>1047</Left>
- <Top>251.86283185840875</Top>
- <Width>233</Width>
- <Height>159.57079646017985</Height>
- <Angle>0</Angle>
- <ItemGuid>bda5aa4d-13aa-4259-92e5-b969276cb2b1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>c706d31b-48b0-44cc-a9c4-11d3acdcf667</ID>
- <Left>535</Left>
- <Top>441.07493391564333</Top>
- <Width>269</Width>
- <Height>127.67256637168134</Height>
- <Angle>0</Angle>
- <ItemGuid>2a454081-bd5e-41de-ae5d-97aefe1d76de</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>7ccff69d-50f9-4e9b-a997-72a67917df5e</ID>
- <Left>727</Left>
- <Top>590.61504424779025</Top>
- <Width>241</Width>
- <Height>154.99115044247867</Height>
- <Angle>0</Angle>
- <ItemGuid>7c03f12f-ab2a-4421-8575-aefd6dec0001</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- </TechItem>
- <TechItem xsi:type="MotorItem">
- <ID>a88a74cb-418b-4ed0-89ec-c42ff560528e</ID>
- <Left>1073</Left>
- <Top>593.7123893805292</Top>
- <Width>227</Width>
- <Height>145.08849557522183</Height>
- <Angle>0</Angle>
- <ItemGuid>4d097acc-df45-46af-bb7e-3d177ab27a9b</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>2</Speed>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>37267035-ae9d-4c72-a04f-215f754d0900</ID>
- <Left>283</Left>
- <Top>451.07079646016848</Top>
- <Width>240</Width>
- <Height>116.10176991150968</Height>
- <Angle>0</Angle>
- <ItemGuid>8a65badb-3d7d-4b7b-8dcd-783e443b0689</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>ca4a5397-68a1-4a2f-b614-80132cd513ee</ID>
- <Left>52</Left>
- <Top>452.20353982301083</Top>
- <Width>240</Width>
- <Height>116.10176991150968</Height>
- <Angle>0</Angle>
- <ItemGuid>6f48e18c-d472-425a-ba7e-633630605e11</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>Head graphs</Name>
- <Items>
- <TechItem xsi:type="SingleGraphItem">
- <ID>ffe980da-dbbe-4bac-9595-46f587e9df00</ID>
- <Left>3</Left>
- <Top>5.8097345132742362</Top>
- <Width>363</Width>
- <Height>157.76991150442467</Height>
- <Angle>0</Angle>
- <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448FB</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>81b78212-14d8-4a66-bf3a-eeea9900e0d6</ID>
- <Left>371</Left>
- <Top>21.075221238938013</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>AA1CF164-76FE-49C6-AA73-0EBA29816E92</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>3941a557-05e6-4c1b-bb98-4f2a59892431</ID>
- <Left>517</Left>
- <Top>11.517699115044195</Top>
- <Width>103</Width>
- <Height>113.4867256637167</Height>
- <Angle>0</Angle>
- <ItemGuid>188285E5-1493-4BED-8269-91743770A631</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone7</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>77.96</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>7e0942e7-a87a-402a-b580-5091ed6b29ee</ID>
- <Left>8</Left>
- <Top>276.6194690265491</Top>
- <Width>357</Width>
- <Height>143.58407079645986</Height>
- <Angle>0</Angle>
- <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44809</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>064bd571-4250-4ea3-8ed5-96f1ddc8fe6b</ID>
- <Left>374</Left>
- <Top>280.73893805309746</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>8FEB7F10-E1FB-465A-A987-6E8659C2186A</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>4845ec5b-067b-43c2-aaf1-314dcb358a7c</ID>
- <Left>519</Left>
- <Top>283.3407079646019</Top>
- <Width>103</Width>
- <Height>121.59292035398221</Height>
- <Angle>0</Angle>
- <ItemGuid>63E2AFE0-0746-4AAB-AA74-C26EC1F282AE</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone9</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>78.1</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>85b25b0b-cd3d-4a8a-88f5-f832623d7ec2</ID>
- <Left>8.75</Left>
- <Top>704.87334618417651</Top>
- <Width>350</Width>
- <Height>152.70353982300856</Height>
- <Angle>0</Angle>
- <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44812</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>85e9ecc2-3bce-4055-89a9-1712752898a9</ID>
- <Left>375.66666666666663</Left>
- <Top>902.19714360816624</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>500698E0-5623-4A47-9537-FCAAF5D0B725</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>8d9b0d4b-ac5e-4c17-b7eb-4d59825064c7</ID>
- <Left>523.04166666666652</Left>
- <Top>895.90015771488663</Top>
- <Width>103</Width>
- <Height>121.59292035398221</Height>
- <Angle>0</Angle>
- <ItemGuid>F39B952A-6194-4055-A5CB-A3421BFE0F9B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeadCoverHeater2</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>283.75</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>63ccee8d-ce38-4c69-b8d1-141f320d11f9</ID>
- <Left>6</Left>
- <Top>563.37610619469046</Top>
- <Width>358</Width>
- <Height>141.55752212389359</Height>
- <Angle>0</Angle>
- <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44811</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>5ed86083-bdd6-4648-b7ca-f17fa97f034a</ID>
- <Left>379</Left>
- <Top>573.57522123893818</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>C113AA1D-25F5-4095-A1F3-18BEDFC0EEEE</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>8269194e-5348-4367-8ae9-e6c0647febaf</ID>
- <Left>523</Left>
- <Top>571.1106194690268</Top>
- <Width>103</Width>
- <Height>116.52654867256626</Height>
- <Angle>0</Angle>
- <ItemGuid>D41BBB23-6EB5-4743-89DB-9191000B475F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone11</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>74.32</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>182492d7-b240-4162-b8ec-39996eec3cc7</ID>
- <Left>9</Left>
- <Top>418.47787610619497</Top>
- <Width>353</Width>
- <Height>145.61061946902635</Height>
- <Angle>0</Angle>
- <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44810</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>e8130372-e0ee-4c1c-a43d-4ab15ff57bd8</ID>
- <Left>378</Left>
- <Top>430.703539823009</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>DCCCCF68-5895-40BE-9E90-1FA35E44D2E4</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>af0d953f-45de-4c0d-9eeb-d7a5c17681e4</ID>
- <Left>519</Left>
- <Top>428.23893805309746</Top>
- <Width>103</Width>
- <Height>121.59292035398221</Height>
- <Angle>0</Angle>
- <ItemGuid>B4D0A1C8-711C-49A9-82A3-B5B9F35FC131</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone10</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>74.7</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>00dda04e-1853-422f-ac47-29bdbab642d7</ID>
- <Left>7</Left>
- <Top>142.86725663716828</Top>
- <Width>357</Width>
- <Height>152.70353982300867</Height>
- <Angle>0</Angle>
- <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E44808</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>e7935033-56c6-42a4-a2b3-f5eedb0a11e7</ID>
- <Left>382</Left>
- <Top>151.03982300884968</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>E772ECA1-24EB-446A-AB28-F5E3D853B9F6</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>b339a7c0-7555-4e54-9834-6193ed7c2b7a</ID>
- <Left>519</Left>
- <Top>147.561946902655</Top>
- <Width>104</Width>
- <Height>109.43362831858406</Height>
- <Angle>0</Angle>
- <ItemGuid>461FA2D7-1918-4958-AAA7-37A1A329FA12</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone8</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>79.4</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>40d16753-8448-4af9-8fbd-98c1ed301de5</ID>
- <Left>623</Left>
- <Top>117.5353982300885</Top>
- <Width>363</Width>
- <Height>157.76991150442467</Height>
- <Angle>0</Angle>
- <ItemGuid>D7585119-4A42-4370-8F1E-F3E62553E588</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>b3826c8e-1d82-4f4f-ad9f-d88f257dffb2</ID>
- <Left>1005</Left>
- <Top>12.221238938053205</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>d59b64f7-a8cf-4a2b-935a-943ae35fb78c</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>d3631074-68c4-4377-b0c5-9213a6b1b2c0</ID>
- <Left>1148</Left>
- <Top>293.47345132743362</Top>
- <Width>103</Width>
- <Height>113.4867256637167</Height>
- <Angle>0</Angle>
- <ItemGuid>8E764A14-0F84-4FEC-928B-32A2509CAD57</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone3</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>70.97</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>99af8946-4971-4913-9382-705c4e05b7ce</ID>
- <Left>621</Left>
- <Top>275.60619469026591</Top>
- <Width>363</Width>
- <Height>157.76991150442467</Height>
- <Angle>0</Angle>
- <ItemGuid>098F7CAB-030C-46B0-B2B8-A85AF2253032</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>233f0076-7595-4ecb-8496-41eeb7b457ea</ID>
- <Left>993</Left>
- <Top>279.72566371681404</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>9de55ec4-201f-4f62-9003-f63ebea06f8f</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>f815ebb5-61af-45ff-8109-5f5e717a5c4d</ID>
- <Left>1146</Left>
- <Top>14.823008849557596</Top>
- <Width>103</Width>
- <Height>113.4867256637167</Height>
- <Angle>0</Angle>
- <ItemGuid>27E7BB74-81C3-4EF2-80AE-962F111C441F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone1</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>57.9</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>7b7d9bea-29df-4f94-8ab6-2a6d7105bccf</ID>
- <Left>627</Left>
- <Top>6.07522123893807</Top>
- <Width>363</Width>
- <Height>157.76991150442467</Height>
- <Angle>0</Angle>
- <ItemGuid>A8DB1D27-6B25-4FB4-A3F5-46A29BA51955</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>72d7192b-dd27-4064-9f5f-90062388a81c</ID>
- <Left>1003</Left>
- <Top>151.03982300884974</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>df38139e-0026-46bc-b72f-df5f9eec80f7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>915f8dfc-5407-43ca-a0c7-d774867dfb5f</ID>
- <Left>1145</Left>
- <Top>153.64159292035396</Top>
- <Width>103</Width>
- <Height>113.4867256637167</Height>
- <Angle>0</Angle>
- <ItemGuid>B4EE8CC0-EE2B-4ABE-BF09-9226860E756B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone2</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>67.04</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>64fba32f-3c03-42b3-b1ed-e2bdbe454bd6</ID>
- <Left>630</Left>
- <Top>535.00442477876129</Top>
- <Width>363</Width>
- <Height>157.76991150442467</Height>
- <Angle>0</Angle>
- <ItemGuid>246C2551-5EFD-48E9-94F6-6313C5E5018F</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>5f451443-fab2-4bf6-8f21-5e038ca2c726</ID>
- <Left>1008</Left>
- <Top>707.327433628319</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>16D0DEF7-A2E0-4163-9F4B-FBEC2573BCC7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>e5c1becb-1402-45fa-b252-60a03d4401cc</ID>
- <Left>1150</Left>
- <Top>716.00884955752235</Top>
- <Width>103</Width>
- <Height>113.4867256637167</Height>
- <Angle>0</Angle>
- <ItemGuid>D2B6CAA0-055E-4871-8D91-A5370F1ACB22</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone6</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>73.69</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>4f3b4ecd-759a-4ba5-80f3-74cc485d7085</ID>
- <Left>629</Left>
- <Top>387.066371681416</Top>
- <Width>363</Width>
- <Height>157.76991150442467</Height>
- <Angle>0</Angle>
- <ItemGuid>6C0C1AB0-3EE9-40D7-8424-A79436FBC804</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>665593d6-e689-459e-94f9-2cdcce6150ac</ID>
- <Left>1004</Left>
- <Top>562.42920353982311</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>d28bfa3c-edce-4f19-a296-3da251fcc0e2</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>42b4b029-e8bc-4156-b6c1-bb64aae83f9e</ID>
- <Left>1149</Left>
- <Top>571.1106194690268</Top>
- <Width>103</Width>
- <Height>113.4867256637167</Height>
- <Angle>0</Angle>
- <ItemGuid>D6771DF4-771E-4D62-B6BA-BDE361C0A0F3</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone5</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>72.69</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>60dff2b2-7ddc-47a9-90b1-3f45968c1790</ID>
- <Left>630</Left>
- <Top>692.06194690265511</Top>
- <Width>363</Width>
- <Height>157.76991150442467</Height>
- <Angle>0</Angle>
- <ItemGuid>DACEBF90-E2B4-4CC9-A973-B8B429AA0089</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>b53a74f3-8e91-40ce-b980-c5b237baeee9</ID>
- <Left>1002</Left>
- <Top>413.47787610619491</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>81a3ae80-f4ea-4857-bc4e-2055d3b5fbc7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>8c438e59-d87c-46d2-8050-acc8a0c455d7</ID>
- <Left>1148</Left>
- <Top>434.31858407079636</Top>
- <Width>103</Width>
- <Height>113.4867256637167</Height>
- <Angle>0</Angle>
- <ItemGuid>94574D69-46E1-4144-A8B5-D4BF0DA96D18</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone4</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>73.54</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>f786b4da-3291-4ccb-a280-196fd8697ac1</ID>
- <Left>5.7499999999999858</Left>
- <Top>866.06435643564362</Top>
- <Width>350</Width>
- <Height>152.70353982300856</Height>
- <Angle>0</Angle>
- <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448DD</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>584c7f29-49cc-4845-a7ab-09239bd3a986</ID>
- <Left>377.875</Left>
- <Top>735.75944098834611</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>96A8AF31-B489-4FA2-BF99-C66D7DEC94C8</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>5c6da8d4-bd2e-44cc-8d99-a6b8bca7df3f</ID>
- <Left>524.20833333333337</Left>
- <Top>721.52681153071046</Top>
- <Width>103</Width>
- <Height>121.59292035398221</Height>
- <Angle>0</Angle>
- <ItemGuid>2D578A37-D808-40D0-ACE4-4A868EDD6BDC</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeaterZone12</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>72.72</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>05eab3d7-3af6-4d3f-b3b3-468eeb77a503</ID>
- <Left>644.29166666666674</Left>
- <Top>874.00000000000011</Top>
- <Width>350</Width>
- <Height>152.70353982300856</Height>
- <Angle>0</Angle>
- <ItemGuid>0E4783A1-B8DE-451E-B357-322C39E448CC</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>2962</Duration>
- <Min>0</Min>
- <Max>300</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="PidItem">
- <ID>c1f48bf1-9cb3-475a-b152-e8b9a211b694</ID>
- <Left>1010.1666666666667</Left>
- <Top>895.60597564181194</Top>
- <Width>128</Width>
- <Height>91.469026548670342</Height>
- <Angle>0</Angle>
- <ItemGuid>7FCA67CB-785B-49F7-B9F2-191E3ACC6CB7</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="HeaterItem">
- <ID>c5fbeda2-230d-40e4-9d52-5b3236e0c561</ID>
- <Left>1161.708333333333</Left>
- <Top>885.907999649522</Top>
- <Width>103</Width>
- <Height>121.59292035398221</Height>
- <Angle>0</Angle>
- <ItemGuid>F8C1BA7F-F6DF-414D-BAF5-D4CB292F91F6</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <HeaterState>
- <HeaterType>HeadCoverHeater1</HeaterType>
- <SetPoint>0</SetPoint>
- <CurrentValue>283.75</CurrentValue>
- <IsActive>false</IsActive>
- <IsRampingUp>false</IsRampingUp>
- <IsInSetPoint>true</IsInSetPoint>
- </HeaterState>
- <SetPoint>0</SetPoint>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>waste</Name>
- <Items>
- <TechItem xsi:type="DigitalOutItem">
- <ID>bb9bf273-0a3d-4202-98ce-37a5f206ed75</ID>
- <Left>119</Left>
- <Top>68.898230088495609</Top>
- <Width>339</Width>
- <Height>184.4159292035398</Height>
- <Angle>0</Angle>
- <ItemGuid>7e1f53ec-8176-4efa-ac3d-c8f2436e60d1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>59678a51-f995-4952-b250-e449f1fcbeac</ID>
- <Left>468</Left>
- <Top>80.336283185839477</Top>
- <Width>280</Width>
- <Height>166.17699115044252</Height>
- <Angle>0</Angle>
- <ItemGuid>78db28d0-0407-4942-bb62-c44da81c4f9e</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalInItem">
- <ID>8f9ff579-0e9d-4f48-8ed0-6fa563f2aba7</ID>
- <Left>873</Left>
- <Top>63.831858407079665</Top>
- <Width>174</Width>
- <Height>133.75221238938059</Height>
- <Angle>0</Angle>
- <ItemGuid>06bd7c0b-5aef-445a-86c0-853becf8594b</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalInItem">
- <ID>70d1bd1e-acdb-436a-b205-6eeb9d137120</ID>
- <Left>1070</Left>
- <Top>70.106194690265909</Top>
- <Width>221</Width>
- <Height>123.61946902654864</Height>
- <Angle>0</Angle>
- <ItemGuid>4048bf02-27dc-4049-9284-fe913a7e0ebe</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalInItem">
- <ID>dcc7ce16-5b89-4ff8-acd5-7fb0b9ebb6d1</ID>
- <Left>877</Left>
- <Top>248.24778761061947</Top>
- <Width>186</Width>
- <Height>126.65929203539827</Height>
- <Angle>0</Angle>
- <ItemGuid>00ea1771-efee-4f3e-a0d2-8b2a4214e9fd</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>2b99bbf7-94da-4bb2-acc9-91b35e543c5d</ID>
- <Left>897</Left>
- <Top>358.69469026548683</Top>
- <Width>147</Width>
- <Height>69.9159292035398</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>Waste lower presence</Text>
- </TechItem>
- <TechItem xsi:type="DigitalInItem">
- <ID>c150533c-abe4-4edf-b6ad-fa475b133142</ID>
- <Left>1112</Left>
- <Top>253.66814159291806</Top>
- <Width>186</Width>
- <Height>126.65929203539827</Height>
- <Angle>0</Angle>
- <ItemGuid>d2f266e3-779b-4dfe-b513-26ce61c529a4</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>d96f2a6d-0ccb-401e-8931-09086ca81fae</ID>
- <Left>1143</Left>
- <Top>366.78318584070507</Top>
- <Width>147</Width>
- <Height>69.9159292035398</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>Waste middle presence</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>bb9847ba-9671-4613-bf23-a0c637ebc79d</ID>
- <Left>151</Left>
- <Top>271.55309734513281</Top>
- <Width>200</Width>
- <Height>63.836283185840671</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>pump</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>d13a2df4-3f54-4c31-8f9a-ee7810fb6af5</ID>
- <Left>504</Left>
- <Top>283.71238938053096</Top>
- <Width>192</Width>
- <Height>67.88938053097354</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>valve</Text>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>a79322a7-fbb8-469b-a4d9-a0ffb3c17a5d</ID>
- <Left>639</Left>
- <Top>358.69469026548683</Top>
- <Width>134</Width>
- <Height>99.300884955752167</Height>
- <Angle>0</Angle>
- <ItemGuid>94F3E5A1-413E-4EA0-BDE1-F0625BFF7910</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>979459b4-b609-487f-b6d7-55f435659658</ID>
- <Left>1027</Left>
- <Top>391.93362831858775</Top>
- <Width>118</Width>
- <Height>93.221238938053034</Height>
- <Angle>0</Angle>
- <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>8b11bfca-091d-4461-8713-ba2fd9c8484e</ID>
- <Left>432</Left>
- <Top>511.69911504424789</Top>
- <Width>461</Width>
- <Height>250.27876106194691</Height>
- <Angle>0</Angle>
- <ItemGuid>94F3E5A1-413E-4EA0-BDE1-F0625BFF7910</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>419</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>8aa4b451-71d6-429c-94e4-2581e3c62a7a</ID>
- <Left>956</Left>
- <Top>513.80973451327361</Top>
- <Width>461</Width>
- <Height>250.27876106194691</Height>
- <Angle>0</Angle>
- <ItemGuid>FE0D0A56-5795-4C5A-8E09-939FBB35C441</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>419</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>2</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="BlowerItem">
- <ID>1f85047c-0b3e-49c6-a80a-c2585de00a81</ID>
- <Left>288</Left>
- <Top>366.80088495575222</Top>
- <Width>217</Width>
- <Height>97.2743362831859</Height>
- <Angle>0</Angle>
- <ItemGuid>B6FE07F8-2435-495D-ABFE-358C76812413</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>c296a84d-7af4-4a26-9a35-0b82d378edce</ID>
- <Left>41</Left>
- <Top>351.6017699115045</Top>
- <Width>209</Width>
- <Height>120.57964601769913</Height>
- <Angle>0</Angle>
- <ItemGuid>1778C1A7-AFB5-42F9-9E00-E80D30D9FC0A</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="ControllerItem">
- <ID>ab6714cc-04d8-471f-a263-db28c30e229d</ID>
- <Left>59</Left>
- <Top>550.2035398230089</Top>
- <Width>294</Width>
- <Height>171.24336283185835</Height>
- <Angle>0</Angle>
- <ItemGuid>78482AA4-3DF6-421F-944C-64328D3C3EF2</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <OptimalRangeMinimum>0</OptimalRangeMinimum>
- <OptimalRangeMaximum>7000</OptimalRangeMaximum>
- <IsSetToDefault>true</IsSetToDefault>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>cde1d5a8-7238-44b8-8d4e-30a2dba70c12</ID>
- <Left>1294</Left>
- <Top>166.17256637168146</Top>
- <Width>217</Width>
- <Height>132.73893805309734</Height>
- <Angle>0</Angle>
- <ItemGuid>2a454081-bd5e-41de-ae5d-97aefe1d76de</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>disp</Name>
- <Items>
- <TechItem xsi:type="SingleGraphItem">
- <ID>f9531a72-3742-47a7-86bb-b589f8b3eb55</ID>
- <Left>123</Left>
- <Top>128.33628318584061</Top>
- <Width>390</Width>
- <Height>249.67699115047321</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>3600</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>3</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>aae29286-81b3-476a-9f58-c0fd246cae96</ID>
- <Left>880</Left>
- <Top>158.81415929204155</Top>
- <Width>442</Width>
- <Height>241.88495575221771</Height>
- <Angle>0</Angle>
- <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>3600</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>3</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>7d94c7c4-1288-4f9d-b0e6-a06794829642</ID>
- <Left>1055</Left>
- <Top>14.181415929203524</Top>
- <Width>161</Width>
- <Height>111.46017699115049</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>Y</Text>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>c95f9ad1-b607-4606-8217-400bea76f3d6</ID>
- <Left>384</Left>
- <Top>23.991150442480944</Top>
- <Width>161</Width>
- <Height>111.46017699115049</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>C</Text>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>8f141fa5-fb24-4557-adcf-a6aa55a28fb4</ID>
- <Left>121</Left>
- <Top>-8.8495575221214722</Top>
- <Width>169</Width>
- <Height>132.73893805309734</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>3</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>7eab018a-ef43-4bca-a6cf-857d69767bba</ID>
- <Left>839</Left>
- <Top>-4.7079646017762684</Top>
- <Width>169</Width>
- <Height>132.73893805309734</Height>
- <Angle>0</Angle>
- <ItemGuid>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>3</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorRecorderItem">
- <ID>2a9e89d4-5d60-4a83-9527-cb77fdf35c14</ID>
- <Left>1276</Left>
- <Top>22.287610619469035</Top>
- <Width>187</Width>
- <Height>102.34070796460179</Height>
- <Angle>0</Angle>
- <ColorNumber>-1</ColorNumber>
- <SelectedMonitorsGuids>
- <string>1F0F907A-EC16-4386-AFC8-B2B156F2A822</string>
- <string>A499E5E0-A812-4032-8F96-B38C6762C4BD</string>
- <string>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</string>
- <string>F33667BD-D9FA-4DC7-BC2C-0E89E60AE4BE</string>
- <string>19645882-6587-4A50-BD85-AF06617DC654</string>
- <string>96B89605-F999-43FE-A1CD-2645BFB33A36</string>
- <string>84CF23C9-D20D-4C08-BE1D-80201FC43C06</string>
- <string>C0BCCD5C-346B-4C4A-A080-39D28E9E1A0C</string>
- <string>10102BC3-0EAE-47FF-A8E5-8640780CAA3D</string>
- <string>FC60060A-3736-4910-B41A-FF6DABDF0E9E</string>
- <string>5F12B974-2C9E-4DDD-9B20-733251A5D7E6</string>
- <string>D126DB23-784B-4F0C-8F88-D89A65A7549F</string>
- </SelectedMonitorsGuids>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>6d2e7962-b3ae-4682-b20e-9654f48dcffe</ID>
- <Left>587</Left>
- <Top>5.0619469026548813</Top>
- <Width>155</Width>
- <Height>131.72566371681415</Height>
- <Angle>0</Angle>
- <ItemGuid>2CC8E461-E91F-4D4C-A402-922477F06C87</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>500</Speed>
- <DisplayName>Dispenser 1</DisplayName>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>5ee2718f-f068-427b-a31e-d586c7d7682c</ID>
- <Left>131</Left>
- <Top>552.94690265486338</Top>
- <Width>390</Width>
- <Height>249.67699115047321</Height>
- <Angle>0</Angle>
- <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>3600</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>3</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>1c254a92-c075-453f-9667-cdcc91cf8e6a</ID>
- <Left>399</Left>
- <Top>455.67256637168265</Top>
- <Width>161</Width>
- <Height>111.46017699115049</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>K</Text>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>d1087b1a-c36b-4242-96f5-07c2bb602cc4</ID>
- <Left>145</Left>
- <Top>409.52212389380446</Top>
- <Width>169</Width>
- <Height>132.73893805309734</Height>
- <Angle>0</Angle>
- <ItemGuid>1F0F907A-EC16-4386-AFC8-B2B156F2A822</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>3</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>53fe93a2-88a5-4d4d-9cd5-eb4d8a8fefae</ID>
- <Left>604</Left>
- <Top>561.16371681414739</Top>
- <Width>390</Width>
- <Height>249.67699115047321</Height>
- <Angle>0</Angle>
- <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>3600</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>3</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>0bef6e9d-6da0-4f06-9e1a-c00142bde4c1</ID>
- <Left>832</Left>
- <Top>440.91150442477635</Top>
- <Width>161</Width>
- <Height>111.46017699115049</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>M</Text>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>762c5a97-a3bc-45b4-aa9f-0b50afa9cb9b</ID>
- <Left>633</Left>
- <Top>434.0132743362783</Top>
- <Width>169</Width>
- <Height>132.73893805309734</Height>
- <Angle>0</Angle>
- <ItemGuid>6B1DF4B0-BCC2-400C-A3B7-31C5119A55BB</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>3</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>be584f80-3250-494c-87fc-250d6deae051</ID>
- <Left>1045</Left>
- <Top>559.4070796459921</Top>
- <Width>390</Width>
- <Height>249.67699115047321</Height>
- <Angle>0</Angle>
- <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>3600</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>3</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>39f6a02c-c4d9-47d0-b92d-bdea0ed5d3ce</ID>
- <Left>1056</Left>
- <Top>435.43805309733875</Top>
- <Width>169</Width>
- <Height>132.73893805309734</Height>
- <Angle>0</Angle>
- <ItemGuid>19645882-6587-4A50-BD85-AF06617DC654</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>3</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="TextItem">
- <ID>5b924929-9b16-4598-94cc-b2f4bca26798</ID>
- <Left>1304</Left>
- <Top>448.0884955752224</Top>
- <Width>161</Width>
- <Height>111.46017699115049</Height>
- <Angle>0</Angle>
- <ColorNumber>-14774017</ColorNumber>
- <Text>TI</Text>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>89ae1fa5-1ad1-469e-ae76-0a29c35805cd</ID>
- <Left>588</Left>
- <Top>317.1504424778762</Top>
- <Width>283</Width>
- <Height>74.982300884955748</Height>
- <Angle>0</Angle>
- <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>c218cf34-74c2-41bb-8c3b-3030abce451a</ID>
- <Left>1363</Left>
- <Top>384.02654867256643</Top>
- <Width>156</Width>
- <Height>94.234513274336337</Height>
- <Angle>0</Angle>
- <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>75af30c6-d7f8-4745-bfb5-d6dc5d50479a</ID>
- <Left>767</Left>
- <Top>362.74778761061958</Top>
- <Width>283</Width>
- <Height>74.982300884955748</Height>
- <Angle>0</Angle>
- <ItemGuid>E144A221-4859-4DC3-9A7E-4A2969FB0826</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>df1fd958-fd8a-4b00-98e1-679455494d60</ID>
- <Left>309</Left>
- <Top>13.168141592920392</Top>
- <Width>112</Width>
- <Height>107.40707964601768</Height>
- <Angle>0</Angle>
- <ItemGuid>3174ADCF-5793-4B5A-A3C6-B96E146A903D</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>f07225b3-1522-4cb6-9ba8-5b9697f05467</ID>
- <Left>1180</Left>
- <Top>60.7920353982301</Top>
- <Width>102</Width>
- <Height>88.1548672566372</Height>
- <Angle>0</Angle>
- <ItemGuid>E2F0FC31-CE7E-416B-ACEA-8EB6CA9B850B</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>45b87322-e1f5-42eb-88c6-71c2eeb2899a</ID>
- <Left>1258</Left>
- <Top>463.06194690265494</Top>
- <Width>88</Width>
- <Height>75.995575221239</Height>
- <Angle>0</Angle>
- <ItemGuid>37872FE8-D68A-45BC-A441-372B7805C09F</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>0c1c25e8-3ce3-4994-bbb9-bd6b2367a413</ID>
- <Left>810</Left>
- <Top>462.04867256637175</Top>
- <Width>77</Width>
- <Height>80.048672566371636</Height>
- <Angle>0</Angle>
- <ItemGuid>AD50C358-5BAF-4A2F-8593-51A22C85B3D1</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="MonitorItem">
- <ID>fa2f697e-b229-418a-bae6-78b92bf0458b</ID>
- <Left>336</Left>
- <Top>428.61061946902663</Top>
- <Width>95</Width>
- <Height>96.261061946902657</Height>
- <Angle>0</Angle>
- <ItemGuid>84682E90-6926-42AA-BF8C-2CCCF5C26C97</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>0</DecimalPoints>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- <MachineTechViewProjectTab>
- <Name>Priming</Name>
- <Items>
- <TechItem xsi:type="MonitorItem">
- <ID>ea45a516-9dac-4c9a-9261-0c44e22aa065</ID>
- <Left>808</Left>
- <Top>155.02654867256638</Top>
- <Width>219</Width>
- <Height>200.62831858407088</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <UpdateInterval>10</UpdateInterval>
- <DecimalPoints>2</DecimalPoints>
- </TechItem>
- <TechItem xsi:type="DispenserItem">
- <ID>3e2cb7dc-a5f3-4ba6-a520-2bae8ff0e4a8</ID>
- <Left>832</Left>
- <Top>451.91592920353986</Top>
- <Width>332</Width>
- <Height>326.27433628318596</Height>
- <Angle>0</Angle>
- <ItemGuid>C8D8FE90-0375-44A2-A6D1-E997789E065C</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- <Speed>1200</Speed>
- <DisplayName>Dispenser 2</DisplayName>
- </TechItem>
- <TechItem xsi:type="SingleGraphItem">
- <ID>6f8dfd8d-ed50-4923-b908-e0b5bc5d6ae5</ID>
- <Left>154</Left>
- <Top>131.72123893805315</Top>
- <Width>474</Width>
- <Height>410.37610619469024</Height>
- <Angle>0</Angle>
- <ItemGuid>A499E5E0-A812-4032-8F96-B38C6762C4BD</ItemGuid>
- <ColorNumber>-14774017</ColorNumber>
- <Duration>1942</Duration>
- <Min>0</Min>
- <Max>100</Max>
- <UseAutoRange>true</UseAutoRange>
- <DecimalPlaces>1</DecimalPlaces>
- </TechItem>
- <TechItem xsi:type="ValveItem">
- <ID>604e031b-89c3-4c9d-90ef-7b861a77e5e0</ID>
- <Left>243</Left>
- <Top>595.80088495575228</Top>
- <Width>497</Width>
- <Height>189.48230088495575</Height>
- <Angle>0</Angle>
- <ItemGuid>8B1FCBC3-FEEA-4F87-B56F-CE5D28B7ACA4</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- <TechItem xsi:type="DigitalOutItem">
- <ID>c414ae0e-323a-48c1-9165-2c05cc4234c6</ID>
- <Left>1291</Left>
- <Top>584.65486725663732</Top>
- <Width>200</Width>
- <Height>171.24336283185835</Height>
- <Angle>0</Angle>
- <ItemGuid>0bd10306-2944-4cda-bc59-0264da2883d2</ItemGuid>
- <ColorNumber>-1</ColorNumber>
- </TechItem>
- </Items>
- </MachineTechViewProjectTab>
- </Tabs>
- <SelectedTabIndex>0</SelectedTabIndex>
-</MachineTechViewProject> \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/ArcHead/clean_motor_ls.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/ArcHead/clean_motor_ls.cs
new file mode 100644
index 000000000..2a0fc12cf
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/ArcHead/clean_motor_ls.cs
@@ -0,0 +1,278 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+
+
+const Int32 LS_FRONT=0X460110;
+const Int32 LS_REAR=0X460120;
+const Int32 LS_UPPER=0X460140;
+const Int32 LS_SPARE=0X460180;
+
+const Int32 DyeingHeadLid_Motor = 2;
+
+const Int32 F1_MOTO_DH_LID_A1_TX_00 = 0x600002F0 ;
+const Int32 F1_MOTO_DH_LID_A1_TX_01 = 0x600002F2 ;
+const Int32 F1_MOTO_DH_LID_A1_RX_00 = 0x600002F4 ;
+const Int32 F1_MOTO_DH_LID_A1_RX_01 = 0x600002F6 ;
+
+//---------------------Start Command ----------------
+const Int32 CMD_RUN = 0; //Run on Pulse Per Secound .positive run Up and negative run Down
+const Int32 CMD_STOP= 1; //0;Hard stop(Defualt);1-Soft stop;2-Hard Hiz;3-Soft Hiz
+const Int32 CMD_HOME= 2; //Run until home .positive run Up and negative run Down
+const Int32 CMD_DLY = 3; //delay in Seconds .
+const Int32 CMD_MOVE= 4; //Move step. positive move Up and negative move Down
+const Int32 CMD_MAX_SPEED = 5; //set Maximum speed.motor will stop before that command
+
+const Int32 CMD_LOOP_NM=6; //NUMBER OF counter
+const Int32 CMD_LOOP= 7; //jump up(+) or down(-) command u
+const Int32 CMD_END = 13; //end loop .
+
+
+const Int32 x_STEP_MODE = 0x16;
+const Int32 x_STATUS = 0x19;
+const Int32 x_GET_PARAM = 0x20;
+const Int32 x_POWERSTEP01_STATUS = 0x1B;
+
+
+//-------------------------------------------- Flow Test Double PBU ------------------------------------------------
+
+Int32[] Start_Table = new int []
+{
+ CMD_RUN,-40,
+ CMD_DLY,200,
+ CMD_STOP,0,
+ CMD_DLY,10,
+ CMD_HOME,40,
+ CMD_END,3,
+};
+
+////////////////////////////////////
+
+public void OnExecute(StubManager stubManager)
+{
+Int32 COMMAND=0;
+Int32 Data=0;
+Int32 Index=0;
+Int32 speed=0;
+Int32 Loop_cnt=1;
+Int32 j=0;
+
+
+
+ var stopwatch = new Stopwatch();
+ stopwatch.Start();
+
+ long elapsed_time = stopwatch.ElapsedMilliseconds;
+ stubManager.WriteLine(elapsed_time);
+
+ while (j!=-1)
+ {
+ {
+ COMMAND=Start_Table[j];
+ Data=Start_Table[j+1];
+
+ switch (COMMAND)
+ {
+ case CMD_RUN:
+ stubManager.WriteLine("CMD_RUN");
+ Motor_Run(Data);
+ break;
+
+ case CMD_STOP:
+ stubManager.WriteLine("CMD_stop");
+ Motor_Stop(Data);
+ break;
+
+ case CMD_DLY:
+ stubManager.WriteLine("CMD_delay");
+
+ for (;Data>0;Data--)
+ {
+ Thread.Sleep(100); //100msec delay
+ stubManager.WriteLine("CMD_delay " + Data );
+ }
+ break;
+
+
+ case CMD_MOVE:
+ stubManager.WriteLine("CMD_move");
+
+ Motor_Move(Data);
+ break;
+
+ case CMD_END:
+ stubManager.WriteLine("CMD_end");
+
+ j=-3;
+ break;
+
+ case CMD_MAX_SPEED:
+ stubManager.WriteLine("CMD_MAX_SPEED");
+
+ Motor_Max_speed(Data);
+ break;
+
+ case CMD_HOME:
+ stubManager.WriteLine("CMD_home");
+
+ Move_Home(Data);
+ break;
+
+
+ case CMD_LOOP_NM:
+ stubManager.WriteLine("LOOP_NM" + Data );
+
+ Loop_cnt=Data-1;
+ break;
+
+ case CMD_LOOP:
+ stubManager.WriteLine("CMD_loop");
+
+ if (Loop_cnt!=0)
+ {
+ j = j+2*Data;
+ Loop_cnt-- ;
+ }
+ break;
+
+ default:
+ break;
+
+ }
+
+ j = j + 2;
+
+
+ }
+
+ }
+
+}
+Int32 Motor_Max_speed(Int32 speed)
+{
+ UInt32 i=Convert.ToUInt32((speed *4/61)*256*256 ) ;
+ stubManager.WriteHex(i,8);
+
+ stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,0); //hold motor
+
+
+ Motor_SetParam(F1_MOTO_DH_LID_A1_TX_01,F1_MOTO_DH_LID_A1_TX_00,0x07,i); //set max speed
+
+ return 1;
+}
+
+
+int Motor_SetParam(Int32 HighAdr, Int32 LowAdr, Int32 ParaAddr, uint ParaData1)
+{
+
+ Int32 Temp = 0;
+ Temp = (ParaAddr << 8 ) + ( (Int32) ParaData1 >> 24);
+
+ stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,HighAdr, (Temp & 0xffff));
+ Temp = ((Int32)ParaData1 >> 8) & 0xffff;
+ stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,LowAdr, (Temp));
+
+ return 1;
+}
+
+Int32 Move_Home(Int32 speed)
+{
+ Int32 Bit = 1;
+ if (speed <0 )
+ stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, false, (-speed) );
+ else
+ stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, true, speed);
+ int i=0;
+ while ((Bit != 0x0)&& (i<20000) ) //wait until Limit Switch or timeout 200*50msec=10sec
+ {
+ Bit=read_pio (LS_FRONT); // read LS_FRONT
+ Thread.Sleep(20);
+ i++;
+ }
+ stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,0); //hold motor
+ return 0;
+}
+
+Int32 read_pio(Int32 i2c_input)
+{
+ Int32 temp=0;
+ var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,i2c_input); // read break
+
+ temp = (Int32) (response.Progress);
+ stubManager.WriteHex(temp, 4);
+ stubManager.WriteLine(" ");
+ temp =temp & (i2c_input& 0xff); //if break ok
+
+ return temp;
+}
+
+
+
+//////////////////////////////////////////////////////////////
+Int32 Motor_Move (Int32 position)
+
+ {
+ Int32 x=16;
+ var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,DyeingHeadLid_Motor, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0);
+
+ response.RecivedData=response.RecivedData & 0x0007;
+ if (response.RecivedData == 0)
+ x=1;
+ if (response.RecivedData == 1)
+ x=2;
+ if (response.RecivedData == 2)
+ x=4;
+ if (response.RecivedData == 3)
+ x=8;
+
+
+ int i=0;
+ if (position<0 )
+ stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,DyeingHeadLid_Motor, false, (-position * x) );
+ else
+ stubManager.Run<StubMotorMovResponse>("StubMotorMovRequest" ,DyeingHeadLid_Motor, true, position * x);
+
+ Thread.Sleep(100); //100msec delay
+
+ while (i==0)
+ {
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,DyeingHeadLid_Motor, (x_GET_PARAM | x_POWERSTEP01_STATUS)<<16, 0, 0);
+
+ stubManager.WriteHex(response.RecivedData,4);
+ response.RecivedData=response.RecivedData & 0x0002;
+ if (response.RecivedData==0x0002)
+ i=1;
+ Thread.Sleep(100); //100msec delay
+
+
+ }
+ return 0;
+ }
+
+//////////////////////////////////////////////////////////////
+Int32 Motor_Run (Int32 speed)
+
+ {
+ if (speed<0 )
+ stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, false, (-speed) );
+ else
+ stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, true, speed);
+ return 0;
+ }
+
+//---------------------------------------
+
+ Int32 Motor_Stop(Int32 Stop_Value )
+{
+ stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor, Stop_Value);
+ return 1;
+}
+
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Blowe_RMO_LOG.CSV b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Blowe_RMO_LOG.CSV
index 414b0f976..c6461ea3e 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Blowe_RMO_LOG.CSV
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Blowe_RMO_LOG.CSV
@@ -1,5401 +1,2 @@
,RPM
0,2688
-1,2688
-2,2675
-3,2688
-4,2688
-5,2688
-6,2688
-7,2688
-8,2688
-9,2688
-10,2688
-11,2688
-12,2700
-13,2688
-14,2675
-15,2688
-16,2688
-17,2688
-18,2688
-19,2688
-20,2688
-21,2688
-22,2688
-23,2675
-24,2688
-25,2688
-26,2688
-27,2688
-28,2688
-29,2688
-30,2688
-31,2688
-32,2688
-33,2688
-34,2688
-35,2688
-36,2688
-37,2688
-38,2688
-39,2675
-40,2688
-41,2688
-42,2688
-43,2675
-44,2688
-45,2688
-46,2688
-47,2688
-48,2688
-49,2688
-50,2688
-51,2688
-52,2688
-53,2688
-54,2688
-55,2688
-56,2675
-57,2675
-58,2688
-59,2688
-60,2688
-61,2688
-62,2688
-63,2688
-64,2688
-65,2675
-66,2688
-67,2688
-68,2688
-69,2688
-70,2675
-71,2688
-72,2688
-73,2688
-74,2688
-75,2688
-76,2688
-77,2688
-78,2688
-79,2688
-80,2688
-81,2688
-82,2688
-83,2688
-84,2688
-85,2688
-86,2688
-87,2688
-88,2688
-89,2688
-90,2688
-91,2688
-92,2688
-93,2688
-94,2675
-95,2688
-96,2688
-97,2688
-98,2688
-99,2688
-100,2688
-101,2688
-102,2688
-103,2688
-104,2688
-105,2688
-106,2688
-107,2688
-108,2688
-109,2688
-110,2688
-111,2688
-112,2688
-113,2688
-114,2675
-115,2688
-116,2688
-117,2688
-118,2675
-119,2688
-120,2688
-121,2675
-122,2688
-123,2688
-124,2688
-125,2688
-126,2688
-127,2688
-128,2688
-129,2688
-130,2688
-131,2675
-132,2688
-133,2688
-134,2688
-135,2688
-136,2688
-137,2688
-138,2688
-139,2688
-140,2688
-141,2688
-142,2688
-143,2688
-144,2688
-145,2688
-146,2688
-147,2688
-148,2688
-149,2688
-150,2675
-151,2688
-152,2688
-153,2675
-154,2688
-155,2688
-156,2688
-157,2688
-158,2688
-159,2675
-160,2688
-161,2688
-162,2688
-163,2688
-164,2675
-165,2688
-166,2688
-167,2688
-168,2688
-169,2688
-170,2688
-171,2688
-172,2688
-173,2688
-174,2688
-175,2675
-176,2688
-177,2688
-178,2688
-179,2688
-180,2688
-181,2675
-182,2688
-183,2688
-184,2688
-185,2688
-186,2688
-187,2675
-188,2675
-189,2688
-190,2688
-191,2688
-192,2688
-193,2675
-194,2688
-195,2688
-196,2688
-197,2688
-198,2675
-199,2688
-200,2688
-201,2700
-202,2688
-203,2688
-204,2688
-205,2688
-206,2675
-207,2688
-208,2675
-209,2688
-210,2675
-211,2688
-212,2688
-213,2675
-214,2688
-215,2688
-216,2688
-217,2688
-218,2675
-219,2688
-220,2688
-221,2688
-222,2688
-223,2688
-224,2688
-225,2688
-226,2675
-227,2688
-228,2688
-229,2675
-230,2688
-231,2675
-232,2688
-233,2688
-234,2688
-235,2688
-236,2688
-237,2688
-238,2688
-239,2688
-240,2688
-241,2688
-242,2688
-243,2688
-244,2688
-245,2688
-246,2688
-247,2688
-248,2688
-249,2688
-250,2675
-251,2688
-252,2688
-253,2688
-254,2688
-255,2688
-256,2675
-257,2688
-258,2688
-259,2688
-260,2688
-261,2688
-262,2688
-263,2688
-264,2688
-265,2688
-266,2688
-267,2688
-268,2688
-269,2688
-270,2688
-271,2688
-272,2688
-273,2688
-274,2688
-275,2688
-276,2688
-277,2688
-278,2688
-279,2688
-280,2688
-281,2688
-282,2688
-283,2688
-284,2675
-285,2675
-286,2688
-287,2688
-288,2688
-289,2688
-290,2688
-291,2688
-292,2688
-293,2688
-294,2688
-295,2688
-296,2675
-297,2688
-298,2688
-299,2688
-300,2688
-301,2688
-302,2688
-303,2688
-304,2688
-305,2688
-306,2688
-307,2688
-308,2688
-309,2688
-310,2675
-311,2688
-312,2688
-313,2688
-314,2675
-315,2688
-316,2688
-317,2688
-318,2688
-319,2688
-320,2688
-321,2688
-322,2688
-323,2688
-324,2688
-325,2688
-326,2688
-327,2688
-328,2688
-329,2688
-330,2688
-331,2688
-332,2688
-333,2688
-334,2700
-335,2688
-336,2688
-337,2688
-338,2688
-339,2688
-340,2700
-341,2688
-342,2688
-343,2688
-344,2688
-345,2700
-346,2688
-347,2675
-348,2688
-349,2688
-350,2675
-351,2688
-352,2688
-353,2688
-354,2688
-355,2688
-356,2688
-357,2688
-358,2688
-359,2688
-360,2688
-361,2688
-362,2688
-363,2688
-364,2688
-365,2688
-366,2688
-367,2688
-368,2688
-369,2688
-370,2688
-371,2675
-372,2700
-373,2688
-374,2688
-375,2675
-376,2688
-377,2688
-378,2688
-379,2688
-380,2688
-381,2688
-382,2688
-383,2688
-384,2688
-385,2688
-386,2688
-387,2688
-388,2688
-389,2675
-390,2688
-391,2688
-392,2675
-393,2688
-394,2688
-395,2688
-396,2700
-397,2688
-398,2688
-399,2688
-400,2688
-401,2688
-402,2688
-403,2688
-404,2688
-405,2688
-406,2688
-407,2688
-408,2688
-409,2688
-410,2688
-411,2688
-412,2688
-413,2688
-414,2688
-415,2688
-416,2688
-417,2688
-418,2688
-419,2688
-420,2688
-421,2688
-422,2688
-423,2688
-424,2688
-425,2688
-426,2688
-427,2688
-428,2688
-429,2675
-430,2700
-431,2675
-432,2688
-433,2688
-434,2688
-435,2688
-436,2688
-437,2688
-438,2688
-439,2688
-440,2688
-441,2688
-442,2675
-443,2688
-444,2688
-445,2688
-446,2688
-447,2688
-448,2675
-449,2675
-450,2675
-451,2688
-452,2688
-453,2688
-454,2688
-455,2688
-456,2688
-457,2688
-458,2688
-459,2688
-460,2688
-461,2688
-462,2688
-463,2688
-464,2688
-465,2688
-466,2688
-467,2688
-468,2688
-469,2688
-470,2688
-471,2688
-472,2688
-473,2688
-474,2688
-475,2688
-476,2688
-477,2675
-478,2688
-479,2688
-480,2688
-481,2688
-482,2688
-483,2688
-484,2688
-485,2688
-486,2688
-487,2688
-488,2688
-489,2688
-490,2688
-491,2688
-492,2688
-493,2688
-494,2688
-495,2688
-496,2688
-497,2688
-498,2688
-499,2688
-500,2675
-501,2688
-502,2675
-503,2688
-504,2688
-505,2688
-506,2688
-507,2688
-508,2688
-509,2688
-510,2688
-511,2688
-512,2688
-513,2688
-514,2688
-515,2688
-516,2700
-517,2688
-518,2688
-519,2688
-520,2688
-521,2688
-522,2688
-523,2688
-524,2675
-525,2688
-526,2688
-527,2675
-528,2688
-529,2675
-530,2688
-531,2688
-532,2688
-533,2688
-534,2688
-535,2688
-536,2688
-537,2688
-538,2688
-539,2688
-540,2688
-541,2688
-542,2688
-543,2688
-544,2688
-545,2688
-546,2688
-547,2688
-548,2688
-549,2688
-550,2688
-551,2688
-552,2688
-553,2688
-554,2688
-555,2688
-556,2688
-557,2675
-558,2688
-559,2688
-560,2700
-561,2688
-562,2688
-563,2688
-564,2688
-565,2688
-566,2688
-567,2688
-568,2675
-569,2688
-570,2688
-571,2688
-572,2688
-573,2688
-574,2688
-575,2688
-576,2688
-577,2688
-578,2688
-579,2688
-580,2688
-581,2688
-582,2675
-583,2675
-584,2688
-585,2675
-586,2688
-587,2688
-588,2688
-589,2688
-590,2688
-591,2688
-592,2688
-593,2688
-594,2688
-595,2688
-596,2688
-597,2688
-598,2688
-599,2688
-600,2688
-601,2675
-602,2688
-603,2688
-604,2688
-605,2688
-606,2688
-607,2688
-608,2688
-609,2688
-610,2688
-611,2688
-612,2688
-613,2688
-614,2688
-615,2688
-616,2688
-617,2688
-618,2688
-619,2688
-620,2688
-621,2688
-622,2688
-623,2688
-624,2675
-625,2688
-626,2688
-627,2688
-628,2688
-629,2675
-630,2688
-631,2675
-632,2688
-633,2688
-634,2688
-635,2675
-636,2675
-637,2688
-638,2688
-639,2688
-640,2688
-641,2688
-642,2688
-643,2688
-644,2688
-645,2688
-646,2688
-647,2675
-648,2688
-649,2688
-650,2688
-651,2688
-652,2688
-653,2675
-654,2688
-655,2688
-656,2688
-657,2688
-658,2688
-659,2688
-660,2688
-661,2688
-662,2688
-663,2688
-664,2688
-665,2675
-666,2688
-667,2675
-668,2688
-669,2688
-670,2688
-671,2688
-672,2688
-673,2688
-674,2688
-675,2688
-676,2675
-677,2688
-678,2688
-679,2688
-680,2675
-681,2675
-682,2688
-683,2688
-684,2688
-685,2688
-686,2688
-687,2688
-688,2688
-689,2688
-690,2688
-691,2688
-692,2688
-693,2688
-694,2688
-695,2688
-696,2688
-697,2688
-698,2688
-699,2688
-700,2688
-701,2688
-702,2688
-703,2688
-704,2688
-705,2688
-706,2688
-707,2675
-708,2688
-709,2688
-710,2688
-711,2688
-712,2688
-713,2675
-714,2688
-715,2688
-716,2688
-717,2675
-718,2688
-719,2688
-720,2688
-721,2688
-722,2688
-723,2688
-724,2688
-725,2688
-726,2688
-727,2688
-728,2675
-729,2688
-730,2688
-731,2688
-732,2675
-733,2675
-734,2675
-735,2688
-736,2688
-737,2675
-738,2688
-739,2688
-740,2688
-741,2688
-742,2688
-743,2688
-744,2688
-745,2688
-746,2688
-747,2688
-748,2688
-749,2688
-750,2688
-751,2688
-752,2688
-753,2688
-754,2688
-755,2688
-756,2688
-757,2688
-758,2688
-759,2688
-760,2688
-761,2688
-762,2688
-763,2688
-764,2688
-765,2675
-766,2688
-767,2688
-768,2688
-769,2688
-770,2688
-771,2688
-772,2688
-773,2688
-774,2688
-775,2675
-776,2688
-777,2688
-778,2688
-779,2688
-780,2700
-781,2688
-782,2688
-783,2688
-784,2688
-785,2688
-786,2688
-787,2688
-788,2688
-789,2675
-790,2688
-791,2688
-792,2688
-793,2688
-794,2688
-795,2688
-796,2675
-797,2688
-798,2688
-799,2688
-800,2675
-801,2688
-802,2688
-803,2688
-804,2688
-805,2675
-806,2688
-807,2688
-808,2688
-809,2688
-810,2688
-811,2688
-812,2688
-813,2688
-814,2688
-815,2688
-816,2688
-817,2688
-818,2688
-819,2688
-820,2688
-821,2688
-822,2688
-823,2688
-824,2675
-825,2688
-826,2688
-827,2688
-828,2688
-829,2688
-830,2688
-831,2675
-832,2688
-833,2688
-834,2688
-835,2688
-836,2688
-837,2688
-838,2688
-839,2688
-840,2688
-841,2688
-842,2688
-843,2688
-844,2675
-845,2688
-846,2675
-847,2688
-848,2688
-849,2675
-850,2688
-851,2688
-852,2688
-853,2688
-854,2688
-855,2688
-856,2688
-857,2688
-858,2688
-859,2688
-860,2688
-861,2688
-862,2688
-863,2688
-864,2688
-865,2688
-866,2688
-867,2688
-868,2688
-869,2675
-870,2688
-871,2688
-872,2688
-873,2688
-874,2688
-875,2688
-876,2688
-877,2688
-878,2688
-879,2688
-880,2688
-881,2688
-882,2700
-883,2688
-884,2675
-885,2688
-886,2675
-887,2688
-888,2688
-889,2688
-890,2688
-891,2688
-892,2688
-893,2688
-894,2688
-895,2688
-896,2688
-897,2688
-898,2688
-899,2675
-900,2688
-901,2688
-902,2675
-903,2688
-904,2688
-905,2688
-906,2675
-907,2688
-908,2688
-909,2688
-910,2688
-911,2688
-912,2688
-913,2688
-914,2688
-915,2675
-916,2688
-917,2675
-918,2688
-919,2688
-920,2688
-921,2688
-922,2675
-923,2688
-924,2688
-925,2688
-926,2688
-927,2688
-928,2688
-929,2688
-930,2688
-931,2688
-932,2675
-933,2688
-934,2688
-935,2688
-936,2688
-937,2688
-938,2688
-939,2688
-940,2688
-941,2688
-942,2688
-943,2688
-944,2675
-945,2688
-946,2688
-947,2688
-948,2688
-949,2688
-950,2688
-951,2688
-952,2688
-953,2688
-954,2688
-955,2688
-956,2688
-957,2688
-958,2688
-959,2688
-960,2688
-961,2688
-962,2688
-963,2688
-964,2688
-965,2688
-966,2688
-967,2688
-968,2688
-969,2675
-970,2688
-971,2688
-972,2688
-973,2688
-974,2688
-975,2688
-976,2688
-977,2688
-978,2688
-979,2688
-980,2675
-981,2688
-982,2688
-983,2688
-984,2688
-985,2688
-986,2688
-987,2688
-988,2688
-989,2688
-990,2688
-991,2688
-992,2688
-993,2688
-994,2688
-995,2688
-996,2688
-997,2688
-998,2688
-999,2688
-1000,2688
-1001,2688
-1002,2688
-1003,2688
-1004,2688
-1005,2688
-1006,2688
-1007,2688
-1008,2688
-1009,2688
-1010,2688
-1011,2688
-1012,2688
-1013,2688
-1014,2688
-1015,2675
-1016,2688
-1017,2688
-1018,2688
-1019,2675
-1020,2675
-1021,2688
-1022,2675
-1023,2675
-1024,2688
-1025,2688
-1026,2675
-1027,2688
-1028,2688
-1029,2688
-1030,2688
-1031,2688
-1032,2688
-1033,2688
-1034,2688
-1035,2688
-1036,2688
-1037,2688
-1038,2688
-1039,2688
-1040,2688
-1041,2688
-1042,2688
-1043,2688
-1044,2688
-1045,2688
-1046,2688
-1047,2688
-1048,2688
-1049,2688
-1050,2688
-1051,2688
-1052,2688
-1053,2688
-1054,2688
-1055,2675
-1056,2688
-1057,2688
-1058,2688
-1059,2675
-1060,2675
-1061,2688
-1062,2675
-1063,2688
-1064,2688
-1065,2688
-1066,2688
-1067,2688
-1068,2688
-1069,2688
-1070,2675
-1071,2688
-1072,2688
-1073,2688
-1074,2688
-1075,2688
-1076,2688
-1077,2688
-1078,2688
-1079,2688
-1080,2688
-1081,2688
-1082,2688
-1083,2688
-1084,2675
-1085,2688
-1086,2688
-1087,2688
-1088,2688
-1089,2688
-1090,2688
-1091,2688
-1092,2688
-1093,2688
-1094,2688
-1095,2688
-1096,2688
-1097,2688
-1098,2688
-1099,2688
-1100,2675
-1101,2688
-1102,2688
-1103,2688
-1104,2688
-1105,2675
-1106,2688
-1107,2688
-1108,2675
-1109,2688
-1110,2688
-1111,2688
-1112,2688
-1113,2688
-1114,2688
-1115,2675
-1116,2688
-1117,2688
-1118,2688
-1119,2688
-1120,2688
-1121,2688
-1122,2688
-1123,2688
-1124,2688
-1125,2688
-1126,2688
-1127,2688
-1128,2688
-1129,2688
-1130,2688
-1131,2688
-1132,2688
-1133,2688
-1134,2688
-1135,2675
-1136,2688
-1137,2688
-1138,2688
-1139,2688
-1140,2688
-1141,2688
-1142,2688
-1143,2688
-1144,2688
-1145,2688
-1146,2688
-1147,2688
-1148,2675
-1149,2688
-1150,2688
-1151,2688
-1152,2688
-1153,2688
-1154,2688
-1155,2688
-1156,2688
-1157,2688
-1158,2688
-1159,2688
-1160,2688
-1161,2688
-1162,2688
-1163,2688
-1164,2688
-1165,2688
-1166,2688
-1167,2675
-1168,2688
-1169,2688
-1170,2688
-1171,2688
-1172,2688
-1173,2688
-1174,2688
-1175,2688
-1176,2675
-1177,2688
-1178,2675
-1179,2675
-1180,2688
-1181,2688
-1182,2688
-1183,2688
-1184,2688
-1185,2688
-1186,2688
-1187,2675
-1188,2688
-1189,2688
-1190,2675
-1191,2688
-1192,2675
-1193,2688
-1194,2688
-1195,2688
-1196,2688
-1197,2688
-1198,2688
-1199,2688
-1200,2688
-1201,2688
-1202,2688
-1203,2688
-1204,2688
-1205,2688
-1206,2688
-1207,2675
-1208,2688
-1209,2688
-1210,2688
-1211,2688
-1212,2688
-1213,2688
-1214,2688
-1215,2688
-1216,2688
-1217,2688
-1218,2688
-1219,2688
-1220,2688
-1221,2688
-1222,2688
-1223,2700
-1224,2688
-1225,2688
-1226,2688
-1227,2675
-1228,2688
-1229,2688
-1230,2688
-1231,2688
-1232,2688
-1233,2688
-1234,2688
-1235,2688
-1236,2688
-1237,2688
-1238,2688
-1239,2688
-1240,2675
-1241,2688
-1242,2688
-1243,2688
-1244,2688
-1245,2675
-1246,2675
-1247,2688
-1248,2688
-1249,2688
-1250,2688
-1251,2688
-1252,2688
-1253,2688
-1254,2675
-1255,2688
-1256,2688
-1257,2700
-1258,2688
-1259,2688
-1260,2688
-1261,2688
-1262,2688
-1263,2688
-1264,2688
-1265,2688
-1266,2688
-1267,2688
-1268,2688
-1269,2688
-1270,2688
-1271,2688
-1272,2688
-1273,2688
-1274,2688
-1275,2675
-1276,2688
-1277,2688
-1278,2688
-1279,2688
-1280,2688
-1281,2688
-1282,2688
-1283,2688
-1284,2675
-1285,2688
-1286,2688
-1287,2675
-1288,2688
-1289,2688
-1290,2688
-1291,2688
-1292,2688
-1293,2688
-1294,2675
-1295,2688
-1296,2688
-1297,2688
-1298,2688
-1299,2688
-1300,2688
-1301,2688
-1302,2688
-1303,2688
-1304,2688
-1305,2688
-1306,2688
-1307,2688
-1308,2688
-1309,2688
-1310,2675
-1311,2688
-1312,2688
-1313,2700
-1314,2688
-1315,2675
-1316,2688
-1317,2688
-1318,2688
-1319,2688
-1320,2688
-1321,2688
-1322,2675
-1323,2688
-1324,2688
-1325,2688
-1326,2688
-1327,2688
-1328,2688
-1329,2688
-1330,2688
-1331,2688
-1332,2688
-1333,2688
-1334,2688
-1335,2688
-1336,2688
-1337,2688
-1338,2688
-1339,2688
-1340,2688
-1341,2688
-1342,2688
-1343,2688
-1344,2688
-1345,2688
-1346,2688
-1347,2688
-1348,2688
-1349,2688
-1350,2688
-1351,2688
-1352,2675
-1353,2688
-1354,2675
-1355,2688
-1356,2688
-1357,2688
-1358,2688
-1359,2688
-1360,2688
-1361,2688
-1362,2688
-1363,2688
-1364,2688
-1365,2688
-1366,2675
-1367,2675
-1368,2675
-1369,2688
-1370,2675
-1371,2688
-1372,2688
-1373,2688
-1374,2688
-1375,2688
-1376,2688
-1377,2688
-1378,2688
-1379,2688
-1380,2688
-1381,2688
-1382,2688
-1383,2688
-1384,2688
-1385,2688
-1386,2688
-1387,2688
-1388,2688
-1389,2688
-1390,2688
-1391,2688
-1392,2688
-1393,2688
-1394,2688
-1395,2688
-1396,2675
-1397,2688
-1398,2688
-1399,2688
-1400,2675
-1401,2688
-1402,2688
-1403,2688
-1404,2688
-1405,2688
-1406,2688
-1407,2688
-1408,2688
-1409,2688
-1410,2700
-1411,2688
-1412,2675
-1413,2688
-1414,2688
-1415,2688
-1416,2700
-1417,2688
-1418,2688
-1419,2688
-1420,2688
-1421,2688
-1422,2688
-1423,2688
-1424,2688
-1425,2688
-1426,2688
-1427,2688
-1428,2688
-1429,2688
-1430,2688
-1431,2688
-1432,2688
-1433,2675
-1434,2688
-1435,2688
-1436,2675
-1437,2688
-1438,2688
-1439,2688
-1440,2688
-1441,2688
-1442,2688
-1443,2688
-1444,2688
-1445,2688
-1446,2688
-1447,2688
-1448,2688
-1449,2688
-1450,2688
-1451,2688
-1452,2688
-1453,2688
-1454,2688
-1455,2688
-1456,2675
-1457,2688
-1458,2688
-1459,2688
-1460,2688
-1461,2688
-1462,2675
-1463,2688
-1464,2688
-1465,2688
-1466,2675
-1467,2688
-1468,2688
-1469,2688
-1470,2688
-1471,2688
-1472,2688
-1473,2688
-1474,2675
-1475,2688
-1476,2688
-1477,2675
-1478,2675
-1479,2688
-1480,2688
-1481,2688
-1482,2688
-1483,2688
-1484,2688
-1485,2688
-1486,2688
-1487,2688
-1488,2688
-1489,2688
-1490,2688
-1491,2688
-1492,2688
-1493,2688
-1494,2688
-1495,2688
-1496,2688
-1497,2688
-1498,2688
-1499,2688
-1500,2688
-1501,2688
-1502,2688
-1503,2688
-1504,2688
-1505,2688
-1506,2688
-1507,2688
-1508,2688
-1509,2688
-1510,2688
-1511,2675
-1512,2688
-1513,2688
-1514,2688
-1515,2688
-1516,2688
-1517,2688
-1518,2688
-1519,2688
-1520,2688
-1521,2688
-1522,2688
-1523,2688
-1524,2688
-1525,2688
-1526,2688
-1527,2688
-1528,2688
-1529,2688
-1530,2688
-1531,2688
-1532,2688
-1533,2688
-1534,2688
-1535,2675
-1536,2675
-1537,2688
-1538,2688
-1539,2688
-1540,2688
-1541,2688
-1542,2675
-1543,2688
-1544,2688
-1545,2688
-1546,2688
-1547,2688
-1548,2688
-1549,2688
-1550,2688
-1551,2688
-1552,2688
-1553,2688
-1554,2688
-1555,2688
-1556,2688
-1557,2688
-1558,2688
-1559,2688
-1560,2688
-1561,2688
-1562,2688
-1563,2675
-1564,2675
-1565,2688
-1566,2688
-1567,2688
-1568,2688
-1569,2688
-1570,2688
-1571,2688
-1572,2688
-1573,2688
-1574,2675
-1575,2688
-1576,2688
-1577,2675
-1578,2688
-1579,2688
-1580,2688
-1581,2688
-1582,2675
-1583,2688
-1584,2688
-1585,2688
-1586,2688
-1587,2688
-1588,2688
-1589,2688
-1590,2688
-1591,2688
-1592,2675
-1593,2688
-1594,2688
-1595,2688
-1596,2688
-1597,2688
-1598,2688
-1599,2688
-1600,2688
-1601,2688
-1602,2688
-1603,2688
-1604,2675
-1605,2688
-1606,2688
-1607,2688
-1608,2688
-1609,2688
-1610,2675
-1611,2688
-1612,2688
-1613,2688
-1614,2675
-1615,2688
-1616,2688
-1617,2688
-1618,2688
-1619,2688
-1620,2688
-1621,2688
-1622,2688
-1623,2688
-1624,2688
-1625,2688
-1626,2688
-1627,2688
-1628,2688
-1629,2688
-1630,2688
-1631,2688
-1632,2675
-1633,2688
-1634,2688
-1635,2675
-1636,2688
-1637,2688
-1638,2688
-1639,2688
-1640,2688
-1641,2688
-1642,2675
-1643,2688
-1644,2688
-1645,2688
-1646,2688
-1647,2688
-1648,2688
-1649,2688
-1650,2688
-1651,2688
-1652,2688
-1653,2688
-1654,2688
-1655,2688
-1656,2688
-1657,2688
-1658,2688
-1659,2688
-1660,2688
-1661,2688
-1662,2688
-1663,2688
-1664,2688
-1665,2688
-1666,2688
-1667,2688
-1668,2688
-1669,2688
-1670,2688
-1671,2688
-1672,2688
-1673,2688
-1674,2688
-1675,2688
-1676,2688
-1677,2688
-1678,2688
-1679,2688
-1680,2688
-1681,2688
-1682,2688
-1683,2688
-1684,2675
-1685,2688
-1686,2688
-1687,2688
-1688,2688
-1689,2688
-1690,2688
-1691,2688
-1692,2675
-1693,2688
-1694,2688
-1695,2688
-1696,2688
-1697,2688
-1698,2688
-1699,2688
-1700,2688
-1701,2675
-1702,2688
-1703,2688
-1704,2700
-1705,2688
-1706,2688
-1707,2688
-1708,2688
-1709,2688
-1710,2688
-1711,2688
-1712,2675
-1713,2688
-1714,2688
-1715,2688
-1716,2688
-1717,2688
-1718,2688
-1719,2688
-1720,2688
-1721,2688
-1722,2688
-1723,2688
-1724,2675
-1725,2688
-1726,2688
-1727,2688
-1728,2688
-1729,2688
-1730,2688
-1731,2688
-1732,2688
-1733,2688
-1734,2688
-1735,2688
-1736,2688
-1737,2688
-1738,2688
-1739,2688
-1740,2688
-1741,2688
-1742,2700
-1743,2688
-1744,2688
-1745,2688
-1746,2688
-1747,2688
-1748,2688
-1749,2688
-1750,2688
-1751,2688
-1752,2688
-1753,2688
-1754,2688
-1755,2688
-1756,2675
-1757,2688
-1758,2688
-1759,2688
-1760,2688
-1761,2675
-1762,2688
-1763,2688
-1764,2688
-1765,2675
-1766,2688
-1767,2688
-1768,2688
-1769,2688
-1770,2688
-1771,2688
-1772,2688
-1773,2688
-1774,2688
-1775,2688
-1776,2675
-1777,2688
-1778,2688
-1779,2688
-1780,2688
-1781,2688
-1782,2688
-1783,2688
-1784,2675
-1785,2688
-1786,2688
-1787,2688
-1788,2675
-1789,2688
-1790,2688
-1791,2688
-1792,2675
-1793,2675
-1794,2688
-1795,2688
-1796,2688
-1797,2688
-1798,2675
-1799,2688
-1800,2688
-1801,2688
-1802,2688
-1803,2688
-1804,2688
-1805,2688
-1806,2688
-1807,2688
-1808,2688
-1809,2688
-1810,2688
-1811,2688
-1812,2688
-1813,2688
-1814,2688
-1815,2688
-1816,2688
-1817,2688
-1818,2688
-1819,2675
-1820,2688
-1821,2688
-1822,2688
-1823,2688
-1824,2688
-1825,2688
-1826,2688
-1827,2688
-1828,2688
-1829,2688
-1830,2688
-1831,2688
-1832,2688
-1833,2688
-1834,2688
-1835,2688
-1836,2688
-1837,2688
-1838,2688
-1839,2688
-1840,2688
-1841,2688
-1842,2688
-1843,2688
-1844,2688
-1845,2688
-1846,2675
-1847,2688
-1848,2688
-1849,2688
-1850,2688
-1851,2688
-1852,2688
-1853,2688
-1854,2688
-1855,2688
-1856,2688
-1857,2688
-1858,2688
-1859,2688
-1860,2688
-1861,2688
-1862,2688
-1863,2688
-1864,2688
-1865,2688
-1866,2688
-1867,2688
-1868,2688
-1869,2688
-1870,2688
-1871,2688
-1872,2688
-1873,2688
-1874,2688
-1875,2688
-1876,2688
-1877,2700
-1878,2675
-1879,2688
-1880,2675
-1881,2688
-1882,2688
-1883,2688
-1884,2688
-1885,2688
-1886,2688
-1887,2688
-1888,2688
-1889,2700
-1890,2688
-1891,2688
-1892,2688
-1893,2675
-1894,2688
-1895,2688
-1896,2688
-1897,2688
-1898,2688
-1899,2688
-1900,2688
-1901,2688
-1902,2688
-1903,2688
-1904,2688
-1905,2688
-1906,2688
-1907,2688
-1908,2688
-1909,2688
-1910,2675
-1911,2688
-1912,2688
-1913,2675
-1914,2688
-1915,2688
-1916,2688
-1917,2688
-1918,2688
-1919,2688
-1920,2688
-1921,2688
-1922,2688
-1923,2688
-1924,2688
-1925,2688
-1926,2688
-1927,2688
-1928,2688
-1929,2675
-1930,2688
-1931,2688
-1932,2688
-1933,2675
-1934,2688
-1935,2688
-1936,2688
-1937,2688
-1938,2688
-1939,2688
-1940,2675
-1941,2688
-1942,2688
-1943,2688
-1944,2688
-1945,2688
-1946,2688
-1947,2688
-1948,2688
-1949,2688
-1950,2688
-1951,2688
-1952,2688
-1953,2688
-1954,2688
-1955,2688
-1956,2688
-1957,2688
-1958,2688
-1959,2688
-1960,2688
-1961,2688
-1962,2688
-1963,2688
-1964,2688
-1965,2675
-1966,2688
-1967,2688
-1968,2688
-1969,2688
-1970,2688
-1971,2688
-1972,2688
-1973,2675
-1974,2688
-1975,2688
-1976,2688
-1977,2675
-1978,2688
-1979,2688
-1980,2688
-1981,2688
-1982,2688
-1983,2688
-1984,2688
-1985,2675
-1986,2688
-1987,2688
-1988,2688
-1989,2688
-1990,2675
-1991,2688
-1992,2688
-1993,2688
-1994,2675
-1995,2675
-1996,2688
-1997,2688
-1998,2688
-1999,2675
-2000,2688
-2001,2688
-2002,2688
-2003,2688
-2004,2688
-2005,2688
-2006,2688
-2007,2688
-2008,2688
-2009,2688
-2010,2688
-2011,2688
-2012,2688
-2013,2688
-2014,2688
-2015,2688
-2016,2688
-2017,2688
-2018,2688
-2019,2688
-2020,2675
-2021,2675
-2022,2675
-2023,2688
-2024,2688
-2025,2688
-2026,2688
-2027,2688
-2028,2675
-2029,2688
-2030,2688
-2031,2688
-2032,2675
-2033,2688
-2034,2688
-2035,2688
-2036,2688
-2037,2688
-2038,2688
-2039,2675
-2040,2688
-2041,2688
-2042,2675
-2043,2688
-2044,2688
-2045,2688
-2046,2688
-2047,2700
-2048,2688
-2049,2675
-2050,2688
-2051,2688
-2052,2688
-2053,2688
-2054,2688
-2055,2675
-2056,2688
-2057,2688
-2058,2688
-2059,2688
-2060,2688
-2061,2688
-2062,2688
-2063,2688
-2064,2675
-2065,2675
-2066,2700
-2067,2688
-2068,2688
-2069,2688
-2070,2688
-2071,2688
-2072,2688
-2073,2688
-2074,2688
-2075,2688
-2076,2688
-2077,2688
-2078,2688
-2079,2688
-2080,2688
-2081,2688
-2082,2688
-2083,2688
-2084,2675
-2085,2688
-2086,2688
-2087,2688
-2088,2688
-2089,2688
-2090,2688
-2091,2688
-2092,2688
-2093,2688
-2094,2688
-2095,2688
-2096,2688
-2097,2688
-2098,2688
-2099,2688
-2100,2688
-2101,2688
-2102,2688
-2103,2688
-2104,2688
-2105,2688
-2106,2688
-2107,2688
-2108,2688
-2109,2688
-2110,2688
-2111,2688
-2112,2688
-2113,2688
-2114,2688
-2115,2688
-2116,2688
-2117,2688
-2118,2688
-2119,2688
-2120,2688
-2121,2688
-2122,2688
-2123,2688
-2124,2688
-2125,2688
-2126,2688
-2127,2688
-2128,2688
-2129,2688
-2130,2675
-2131,2688
-2132,2688
-2133,2688
-2134,2688
-2135,2688
-2136,2688
-2137,2688
-2138,2688
-2139,2688
-2140,2688
-2141,2688
-2142,2688
-2143,2688
-2144,2688
-2145,2688
-2146,2688
-2147,2688
-2148,2688
-2149,2688
-2150,2688
-2151,2688
-2152,2688
-2153,2688
-2154,2688
-2155,2688
-2156,2688
-2157,2688
-2158,2688
-2159,2688
-2160,2688
-2161,2688
-2162,2675
-2163,2688
-2164,2688
-2165,2688
-2166,2688
-2167,2688
-2168,2688
-2169,2688
-2170,2688
-2171,2688
-2172,2688
-2173,2675
-2174,2688
-2175,2688
-2176,2688
-2177,2688
-2178,2688
-2179,2688
-2180,2688
-2181,2675
-2182,2688
-2183,2688
-2184,2688
-2185,2688
-2186,2688
-2187,2688
-2188,2688
-2189,2688
-2190,2688
-2191,2688
-2192,2688
-2193,2688
-2194,2688
-2195,2675
-2196,2688
-2197,2688
-2198,2688
-2199,2688
-2200,2675
-2201,2688
-2202,2688
-2203,2688
-2204,2688
-2205,2688
-2206,2675
-2207,2688
-2208,2688
-2209,2675
-2210,2688
-2211,2688
-2212,2688
-2213,2688
-2214,2688
-2215,2688
-2216,2688
-2217,2688
-2218,2688
-2219,2688
-2220,2688
-2221,2688
-2222,2688
-2223,2688
-2224,2688
-2225,2675
-2226,2675
-2227,2688
-2228,2688
-2229,2688
-2230,2688
-2231,2688
-2232,2688
-2233,2688
-2234,2688
-2235,2688
-2236,2688
-2237,2688
-2238,2688
-2239,2688
-2240,2688
-2241,2688
-2242,2688
-2243,2688
-2244,2688
-2245,2688
-2246,2688
-2247,2688
-2248,2688
-2249,2688
-2250,2688
-2251,2688
-2252,2688
-2253,2688
-2254,2688
-2255,2688
-2256,2688
-2257,2675
-2258,2688
-2259,2688
-2260,2688
-2261,2688
-2262,2688
-2263,2688
-2264,2688
-2265,2688
-2266,2688
-2267,2688
-2268,2688
-2269,2688
-2270,2688
-2271,2675
-2272,2688
-2273,2688
-2274,2688
-2275,2675
-2276,2688
-2277,2688
-2278,2688
-2279,2688
-2280,2688
-2281,2688
-2282,2688
-2283,2688
-2284,2688
-2285,2688
-2286,2688
-2287,2675
-2288,2688
-2289,2688
-2290,2688
-2291,2688
-2292,2688
-2293,2688
-2294,2700
-2295,2688
-2296,2688
-2297,2688
-2298,2688
-2299,2688
-2300,2675
-2301,2688
-2302,2688
-2303,2688
-2304,2688
-2305,2688
-2306,2688
-2307,2688
-2308,2688
-2309,2688
-2310,2688
-2311,2688
-2312,2688
-2313,2688
-2314,2688
-2315,2675
-2316,2675
-2317,2688
-2318,2688
-2319,2688
-2320,2688
-2321,2688
-2322,2688
-2323,2688
-2324,2688
-2325,2688
-2326,2675
-2327,2688
-2328,2688
-2329,2688
-2330,2688
-2331,2688
-2332,2675
-2333,2675
-2334,2688
-2335,2688
-2336,2688
-2337,2688
-2338,2688
-2339,2688
-2340,2688
-2341,2688
-2342,2688
-2343,2688
-2344,2688
-2345,2688
-2346,2688
-2347,2688
-2348,2675
-2349,2688
-2350,2688
-2351,2675
-2352,2688
-2353,2688
-2354,2688
-2355,2688
-2356,2688
-2357,2688
-2358,2688
-2359,2675
-2360,2688
-2361,2688
-2362,2688
-2363,2688
-2364,2688
-2365,2675
-2366,2688
-2367,2688
-2368,2688
-2369,2688
-2370,2675
-2371,2675
-2372,2688
-2373,2688
-2374,2688
-2375,2688
-2376,2675
-2377,2688
-2378,2675
-2379,2688
-2380,2688
-2381,2688
-2382,2688
-2383,2675
-2384,2675
-2385,2688
-2386,2688
-2387,2688
-2388,2688
-2389,2688
-2390,2688
-2391,2688
-2392,2688
-2393,2688
-2394,2688
-2395,2688
-2396,2688
-2397,2688
-2398,2688
-2399,2688
-2400,2688
-2401,2688
-2402,2688
-2403,2688
-2404,2688
-2405,2688
-2406,2688
-2407,2688
-2408,2688
-2409,2675
-2410,2688
-2411,2688
-2412,2688
-2413,2688
-2414,2675
-2415,2688
-2416,2688
-2417,2688
-2418,2688
-2419,2688
-2420,2688
-2421,2688
-2422,2688
-2423,2688
-2424,2688
-2425,2688
-2426,2688
-2427,2688
-2428,2688
-2429,2688
-2430,2688
-2431,2688
-2432,2700
-2433,2688
-2434,2688
-2435,2688
-2436,2688
-2437,2688
-2438,2675
-2439,2688
-2440,2688
-2441,2688
-2442,2688
-2443,2688
-2444,2688
-2445,2688
-2446,2688
-2447,2688
-2448,2688
-2449,2688
-2450,2688
-2451,2688
-2452,2688
-2453,2688
-2454,2688
-2455,2688
-2456,2688
-2457,2688
-2458,2688
-2459,2675
-2460,2688
-2461,2688
-2462,2688
-2463,2675
-2464,2700
-2465,2688
-2466,2675
-2467,2688
-2468,2688
-2469,2688
-2470,2688
-2471,2688
-2472,2688
-2473,2688
-2474,2688
-2475,2688
-2476,2688
-2477,2688
-2478,2675
-2479,2688
-2480,2688
-2481,2688
-2482,2688
-2483,2688
-2484,2688
-2485,2688
-2486,2675
-2487,2688
-2488,2688
-2489,2688
-2490,2688
-2491,2688
-2492,2688
-2493,2688
-2494,2688
-2495,2688
-2496,2688
-2497,2688
-2498,2688
-2499,2675
-2500,2688
-2501,2688
-2502,2675
-2503,2675
-2504,2688
-2505,2688
-2506,2688
-2507,2688
-2508,2688
-2509,2688
-2510,2675
-2511,2688
-2512,2688
-2513,2688
-2514,2675
-2515,2688
-2516,2688
-2517,2688
-2518,2688
-2519,2688
-2520,2675
-2521,2688
-2522,2688
-2523,2688
-2524,2675
-2525,2688
-2526,2688
-2527,2688
-2528,2688
-2529,2688
-2530,2688
-2531,2688
-2532,2688
-2533,2688
-2534,2688
-2535,2688
-2536,2675
-2537,2688
-2538,2688
-2539,2688
-2540,2688
-2541,2688
-2542,2675
-2543,2688
-2544,2688
-2545,2688
-2546,2688
-2547,2675
-2548,2688
-2549,2675
-2550,2688
-2551,2688
-2552,2688
-2553,2688
-2554,2688
-2555,2688
-2556,2700
-2557,2688
-2558,2688
-2559,2688
-2560,2688
-2561,2688
-2562,2675
-2563,2688
-2564,2688
-2565,2688
-2566,2688
-2567,2688
-2568,2688
-2569,2688
-2570,2688
-2571,2688
-2572,2688
-2573,2688
-2574,2688
-2575,2688
-2576,2688
-2577,2688
-2578,2688
-2579,2688
-2580,2688
-2581,2688
-2582,2688
-2583,2688
-2584,2688
-2585,2688
-2586,2688
-2587,2688
-2588,2688
-2589,2688
-2590,2688
-2591,2688
-2592,2688
-2593,2688
-2594,2688
-2595,2688
-2596,2688
-2597,2688
-2598,2688
-2599,2688
-2600,2688
-2601,2688
-2602,2675
-2603,2675
-2604,2688
-2605,2688
-2606,2688
-2607,2688
-2608,2688
-2609,2700
-2610,2688
-2611,2688
-2612,2688
-2613,2675
-2614,2688
-2615,2688
-2616,2688
-2617,2688
-2618,2688
-2619,2688
-2620,2688
-2621,2688
-2622,2688
-2623,2688
-2624,2688
-2625,2688
-2626,2688
-2627,2688
-2628,2688
-2629,2688
-2630,2688
-2631,2688
-2632,2688
-2633,2688
-2634,2688
-2635,2688
-2636,2688
-2637,2688
-2638,2688
-2639,2688
-2640,2688
-2641,2688
-2642,2688
-2643,2688
-2644,2688
-2645,2688
-2646,2688
-2647,2675
-2648,2688
-2649,2688
-2650,2675
-2651,2688
-2652,2688
-2653,2688
-2654,2688
-2655,2688
-2656,2688
-2657,2688
-2658,2688
-2659,2688
-2660,2688
-2661,2688
-2662,2688
-2663,2675
-2664,2688
-2665,2688
-2666,2688
-2667,2675
-2668,2688
-2669,2688
-2670,2688
-2671,2688
-2672,2675
-2673,2688
-2674,2688
-2675,2675
-2676,2688
-2677,2688
-2678,2688
-2679,2688
-2680,2688
-2681,2688
-2682,2688
-2683,2688
-2684,2675
-2685,2688
-2686,2688
-2687,2688
-2688,2688
-2689,2688
-2690,2688
-2691,2688
-2692,2688
-2693,2688
-2694,2675
-2695,2688
-2696,2688
-2697,2688
-2698,2688
-2699,2688
-2700,2675
-2701,2688
-2702,2688
-2703,2675
-2704,2688
-2705,2688
-2706,2688
-2707,2675
-2708,2688
-2709,2688
-2710,2688
-2711,2688
-2712,2688
-2713,2688
-2714,2688
-2715,2675
-2716,2675
-2717,2688
-2718,2688
-2719,2688
-2720,2688
-2721,2688
-2722,2688
-2723,2688
-2724,2688
-2725,2688
-2726,2688
-2727,2688
-2728,2688
-2729,2675
-2730,2688
-2731,2675
-2732,2688
-2733,2688
-2734,2688
-2735,2688
-2736,2688
-2737,2688
-2738,2688
-2739,2688
-2740,2688
-2741,2688
-2742,2688
-2743,2688
-2744,2688
-2745,2688
-2746,2688
-2747,2688
-2748,2688
-2749,2688
-2750,2688
-2751,2688
-2752,2688
-2753,2688
-2754,2675
-2755,2688
-2756,2675
-2757,2688
-2758,2675
-2759,2688
-2760,2688
-2761,2688
-2762,2688
-2763,2688
-2764,2688
-2765,2675
-2766,2675
-2767,2688
-2768,2688
-2769,2688
-2770,2688
-2771,2688
-2772,2688
-2773,2688
-2774,2688
-2775,2688
-2776,2688
-2777,2688
-2778,2688
-2779,2688
-2780,2688
-2781,2688
-2782,2688
-2783,2675
-2784,2688
-2785,2688
-2786,2688
-2787,2688
-2788,2688
-2789,2688
-2790,2675
-2791,2688
-2792,2688
-2793,2688
-2794,2688
-2795,2688
-2796,2688
-2797,2688
-2798,2688
-2799,2688
-2800,2688
-2801,2688
-2802,2688
-2803,2688
-2804,2688
-2805,2688
-2806,2688
-2807,2688
-2808,2688
-2809,2688
-2810,2688
-2811,2675
-2812,2688
-2813,2688
-2814,2675
-2815,2688
-2816,2688
-2817,2675
-2818,2688
-2819,2688
-2820,2688
-2821,2688
-2822,2688
-2823,2688
-2824,2675
-2825,2688
-2826,2688
-2827,2688
-2828,2688
-2829,2688
-2830,2688
-2831,2688
-2832,2688
-2833,2688
-2834,2688
-2835,2688
-2836,2688
-2837,2675
-2838,2688
-2839,2675
-2840,2688
-2841,2688
-2842,2688
-2843,2688
-2844,2688
-2845,2688
-2846,2688
-2847,2688
-2848,2688
-2849,2688
-2850,2688
-2851,2688
-2852,2688
-2853,2688
-2854,2688
-2855,2688
-2856,2688
-2857,2688
-2858,2688
-2859,2675
-2860,2688
-2861,2688
-2862,2675
-2863,2688
-2864,2688
-2865,2675
-2866,2688
-2867,2688
-2868,2688
-2869,2688
-2870,2688
-2871,2688
-2872,2688
-2873,2688
-2874,2688
-2875,2688
-2876,2688
-2877,2675
-2878,2688
-2879,2688
-2880,2688
-2881,2688
-2882,2688
-2883,2688
-2884,2688
-2885,2688
-2886,2688
-2887,2688
-2888,2688
-2889,2688
-2890,2688
-2891,2688
-2892,2688
-2893,2688
-2894,2688
-2895,2688
-2896,2688
-2897,2688
-2898,2688
-2899,2688
-2900,2688
-2901,2688
-2902,2688
-2903,2688
-2904,2688
-2905,2688
-2906,2688
-2907,2688
-2908,2688
-2909,2688
-2910,2688
-2911,2688
-2912,2688
-2913,2688
-2914,2688
-2915,2688
-2916,2688
-2917,2675
-2918,2688
-2919,2688
-2920,2688
-2921,2688
-2922,2688
-2923,2675
-2924,2688
-2925,2688
-2926,2688
-2927,2688
-2928,2688
-2929,2688
-2930,2675
-2931,2688
-2932,2688
-2933,2688
-2934,2688
-2935,2700
-2936,2688
-2937,2688
-2938,2688
-2939,2688
-2940,2675
-2941,2688
-2942,2688
-2943,2688
-2944,2688
-2945,2675
-2946,2688
-2947,2688
-2948,2688
-2949,2688
-2950,2688
-2951,2688
-2952,2688
-2953,2688
-2954,2688
-2955,2688
-2956,2688
-2957,2688
-2958,2688
-2959,2688
-2960,2688
-2961,2688
-2962,2688
-2963,2688
-2964,2675
-2965,2688
-2966,2688
-2967,2675
-2968,2688
-2969,2688
-2970,2688
-2971,2688
-2972,2688
-2973,2688
-2974,2688
-2975,2688
-2976,2688
-2977,2688
-2978,2675
-2979,2688
-2980,2688
-2981,2688
-2982,2688
-2983,2688
-2984,2688
-2985,2688
-2986,2688
-2987,2688
-2988,2688
-2989,2688
-2990,2688
-2991,2688
-2992,2688
-2993,2688
-2994,2688
-2995,2688
-2996,2688
-2997,2688
-2998,2688
-2999,2688
-3000,2688
-3001,2688
-3002,2688
-3003,2688
-3004,2688
-3005,2688
-3006,2688
-3007,2688
-3008,2688
-3009,2688
-3010,2688
-3011,2688
-3012,2688
-3013,2688
-3014,2688
-3015,2688
-3016,2688
-3017,2688
-3018,2688
-3019,2675
-3020,2688
-3021,2688
-3022,2688
-3023,2700
-3024,2688
-3025,2688
-3026,2688
-3027,2688
-3028,2688
-3029,2688
-3030,2688
-3031,2688
-3032,2688
-3033,2688
-3034,2688
-3035,2688
-3036,2688
-3037,2688
-3038,2688
-3039,2688
-3040,2688
-3041,2688
-3042,2700
-3043,2688
-3044,2675
-3045,2688
-3046,2688
-3047,2688
-3048,2688
-3049,2688
-3050,2688
-3051,2688
-3052,2675
-3053,2688
-3054,2675
-3055,2688
-3056,2688
-3057,2688
-3058,2688
-3059,2675
-3060,2688
-3061,2688
-3062,2688
-3063,2675
-3064,2688
-3065,2688
-3066,2688
-3067,2675
-3068,2688
-3069,2688
-3070,2688
-3071,2688
-3072,2688
-3073,2675
-3074,2688
-3075,2688
-3076,2675
-3077,2688
-3078,2688
-3079,2688
-3080,2688
-3081,2688
-3082,2688
-3083,2688
-3084,2688
-3085,2688
-3086,2675
-3087,2688
-3088,2688
-3089,2688
-3090,2688
-3091,2688
-3092,2688
-3093,2688
-3094,2688
-3095,2688
-3096,2688
-3097,2688
-3098,2688
-3099,2675
-3100,2675
-3101,2688
-3102,2688
-3103,2688
-3104,2688
-3105,2688
-3106,2688
-3107,2688
-3108,2688
-3109,2688
-3110,2675
-3111,2688
-3112,2688
-3113,2688
-3114,2688
-3115,2688
-3116,2688
-3117,2675
-3118,2688
-3119,2688
-3120,2688
-3121,2688
-3122,2688
-3123,2688
-3124,2675
-3125,2688
-3126,2688
-3127,2688
-3128,2688
-3129,2688
-3130,2688
-3131,2688
-3132,2675
-3133,2700
-3134,2688
-3135,2688
-3136,2688
-3137,2675
-3138,2688
-3139,2675
-3140,2688
-3141,2688
-3142,2688
-3143,2675
-3144,2688
-3145,2688
-3146,2688
-3147,2688
-3148,2688
-3149,2688
-3150,2688
-3151,2688
-3152,2688
-3153,2688
-3154,2688
-3155,2688
-3156,2688
-3157,2688
-3158,2688
-3159,2688
-3160,2688
-3161,2688
-3162,2688
-3163,2688
-3164,2688
-3165,2688
-3166,2688
-3167,2688
-3168,2700
-3169,2688
-3170,2675
-3171,2688
-3172,2688
-3173,2688
-3174,2675
-3175,2688
-3176,2675
-3177,2688
-3178,2688
-3179,2688
-3180,2688
-3181,2688
-3182,2675
-3183,2688
-3184,2688
-3185,2688
-3186,2688
-3187,2688
-3188,2688
-3189,2688
-3190,2688
-3191,2688
-3192,2688
-3193,2675
-3194,2688
-3195,2688
-3196,2688
-3197,2675
-3198,2688
-3199,2688
-3200,2675
-3201,2688
-3202,2688
-3203,2688
-3204,2688
-3205,2688
-3206,2675
-3207,2688
-3208,2688
-3209,2688
-3210,2688
-3211,2688
-3212,2688
-3213,2688
-3214,2688
-3215,2688
-3216,2688
-3217,2688
-3218,2688
-3219,2688
-3220,2688
-3221,2688
-3222,2675
-3223,2688
-3224,2675
-3225,2688
-3226,2688
-3227,2688
-3228,2688
-3229,2688
-3230,2688
-3231,2688
-3232,2688
-3233,2688
-3234,2688
-3235,2688
-3236,2688
-3237,2688
-3238,2688
-3239,2688
-3240,2688
-3241,2688
-3242,2688
-3243,2688
-3244,2675
-3245,2688
-3246,2688
-3247,2688
-3248,2688
-3249,2688
-3250,2688
-3251,2688
-3252,2688
-3253,2688
-3254,2688
-3255,2688
-3256,2688
-3257,2688
-3258,2688
-3259,2688
-3260,2688
-3261,2688
-3262,2688
-3263,2688
-3264,2688
-3265,2688
-3266,2688
-3267,2688
-3268,2675
-3269,2688
-3270,2688
-3271,2688
-3272,2688
-3273,2688
-3274,2675
-3275,2688
-3276,2688
-3277,2688
-3278,2688
-3279,2688
-3280,2688
-3281,2688
-3282,2688
-3283,2688
-3284,2688
-3285,2688
-3286,2675
-3287,2688
-3288,2688
-3289,2688
-3290,2688
-3291,2688
-3292,2688
-3293,2688
-3294,2675
-3295,2688
-3296,2688
-3297,2688
-3298,2688
-3299,2688
-3300,2688
-3301,2688
-3302,2688
-3303,2688
-3304,2688
-3305,2688
-3306,2688
-3307,2688
-3308,2688
-3309,2688
-3310,2688
-3311,2675
-3312,2688
-3313,2675
-3314,2688
-3315,2675
-3316,2688
-3317,2688
-3318,2688
-3319,2688
-3320,2688
-3321,2688
-3322,2675
-3323,2675
-3324,2688
-3325,2688
-3326,2688
-3327,2688
-3328,2688
-3329,2688
-3330,2675
-3331,2688
-3332,2688
-3333,2688
-3334,2675
-3335,2688
-3336,2688
-3337,2688
-3338,2688
-3339,2688
-3340,2688
-3341,2688
-3342,2688
-3343,2688
-3344,2688
-3345,2688
-3346,2688
-3347,2688
-3348,2675
-3349,2688
-3350,2688
-3351,2688
-3352,2688
-3353,2688
-3354,2688
-3355,2675
-3356,2675
-3357,2675
-3358,2688
-3359,2688
-3360,2688
-3361,2688
-3362,2688
-3363,2688
-3364,2688
-3365,2688
-3366,2688
-3367,2688
-3368,2688
-3369,2675
-3370,2688
-3371,2688
-3372,2688
-3373,2688
-3374,2688
-3375,2688
-3376,2688
-3377,2688
-3378,2688
-3379,2688
-3380,2688
-3381,2688
-3382,2688
-3383,2675
-3384,2688
-3385,2688
-3386,2688
-3387,2688
-3388,2688
-3389,2688
-3390,2675
-3391,2688
-3392,2688
-3393,2688
-3394,2688
-3395,2688
-3396,2675
-3397,2688
-3398,2688
-3399,2675
-3400,2688
-3401,2688
-3402,2675
-3403,2688
-3404,2688
-3405,2688
-3406,2675
-3407,2688
-3408,2675
-3409,2688
-3410,2688
-3411,2675
-3412,2688
-3413,2688
-3414,2688
-3415,2688
-3416,2688
-3417,2688
-3418,2688
-3419,2675
-3420,2688
-3421,2688
-3422,2688
-3423,2675
-3424,2688
-3425,2688
-3426,2688
-3427,2700
-3428,2688
-3429,2675
-3430,2675
-3431,2688
-3432,2688
-3433,2688
-3434,2688
-3435,2688
-3436,2688
-3437,2688
-3438,2688
-3439,2688
-3440,2688
-3441,2688
-3442,2688
-3443,2675
-3444,2688
-3445,2675
-3446,2688
-3447,2688
-3448,2688
-3449,2688
-3450,2688
-3451,2675
-3452,2688
-3453,2688
-3454,2688
-3455,2688
-3456,2688
-3457,2675
-3458,2688
-3459,2688
-3460,2675
-3461,2675
-3462,2688
-3463,2688
-3464,2688
-3465,2688
-3466,2688
-3467,2688
-3468,2688
-3469,2688
-3470,2688
-3471,2688
-3472,2688
-3473,2688
-3474,2688
-3475,2688
-3476,2688
-3477,2688
-3478,2688
-3479,2688
-3480,2688
-3481,2675
-3482,2688
-3483,2675
-3484,2688
-3485,2688
-3486,2688
-3487,2688
-3488,2688
-3489,2675
-3490,2688
-3491,2675
-3492,2675
-3493,2688
-3494,2688
-3495,2688
-3496,2688
-3497,2688
-3498,2688
-3499,2675
-3500,2688
-3501,2688
-3502,2688
-3503,2688
-3504,2688
-3505,2688
-3506,2688
-3507,2688
-3508,2688
-3509,2688
-3510,2688
-3511,2675
-3512,2688
-3513,2688
-3514,2688
-3515,2688
-3516,2688
-3517,2688
-3518,2688
-3519,2688
-3520,2688
-3521,2675
-3522,2675
-3523,2688
-3524,2688
-3525,2688
-3526,2688
-3527,2675
-3528,2688
-3529,2688
-3530,2688
-3531,2688
-3532,2688
-3533,2688
-3534,2688
-3535,2688
-3536,2688
-3537,2688
-3538,2688
-3539,2675
-3540,2688
-3541,2675
-3542,2675
-3543,2688
-3544,2688
-3545,2688
-3546,2688
-3547,2688
-3548,2688
-3549,2688
-3550,2688
-3551,2688
-3552,2675
-3553,2688
-3554,2688
-3555,2675
-3556,2688
-3557,2675
-3558,2688
-3559,2688
-3560,2688
-3561,2688
-3562,2688
-3563,2688
-3564,2688
-3565,2688
-3566,2688
-3567,2688
-3568,2675
-3569,2688
-3570,2688
-3571,2688
-3572,2688
-3573,2675
-3574,2675
-3575,2688
-3576,2688
-3577,2688
-3578,2688
-3579,2688
-3580,2688
-3581,2688
-3582,2688
-3583,2688
-3584,2688
-3585,2688
-3586,2675
-3587,2688
-3588,2688
-3589,2688
-3590,2688
-3591,2688
-3592,2688
-3593,2688
-3594,2688
-3595,2688
-3596,2688
-3597,2688
-3598,2675
-3599,2688
-3600,2688
-3601,2675
-3602,2688
-3603,2675
-3604,2675
-3605,2675
-3606,2688
-3607,2675
-3608,2688
-3609,2688
-3610,2688
-3611,2688
-3612,2688
-3613,2688
-3614,2688
-3615,2688
-3616,2688
-3617,2675
-3618,2688
-3619,2688
-3620,2675
-3621,2688
-3622,2688
-3623,2688
-3624,2688
-3625,2688
-3626,2688
-3627,2688
-3628,2688
-3629,2688
-3630,2688
-3631,2688
-3632,2688
-3633,2688
-3634,2688
-3635,2688
-3636,2688
-3637,2688
-3638,2688
-3639,2675
-3640,2688
-3641,2688
-3642,2688
-3643,2688
-3644,2688
-3645,2688
-3646,2688
-3647,2688
-3648,2688
-3649,2688
-3650,2688
-3651,2688
-3652,2688
-3653,2688
-3654,2688
-3655,2688
-3656,2688
-3657,2675
-3658,2688
-3659,2688
-3660,2688
-3661,2688
-3662,2688
-3663,2688
-3664,2675
-3665,2688
-3666,2688
-3667,2688
-3668,2688
-3669,2688
-3670,2688
-3671,2688
-3672,2688
-3673,2688
-3674,2688
-3675,2688
-3676,2688
-3677,2688
-3678,2688
-3679,2688
-3680,2688
-3681,2688
-3682,2688
-3683,2688
-3684,2675
-3685,2688
-3686,2688
-3687,2688
-3688,2688
-3689,2688
-3690,2675
-3691,2688
-3692,2688
-3693,2688
-3694,2688
-3695,2688
-3696,2688
-3697,2688
-3698,2688
-3699,2688
-3700,2688
-3701,2688
-3702,2688
-3703,2675
-3704,2688
-3705,2688
-3706,2688
-3707,2688
-3708,2688
-3709,2675
-3710,2688
-3711,2688
-3712,2688
-3713,2688
-3714,2688
-3715,2688
-3716,2688
-3717,2688
-3718,2688
-3719,2700
-3720,2688
-3721,2675
-3722,2688
-3723,2675
-3724,2688
-3725,2688
-3726,2688
-3727,2675
-3728,2688
-3729,2688
-3730,2688
-3731,2675
-3732,2688
-3733,2688
-3734,2688
-3735,2688
-3736,2688
-3737,2675
-3738,2688
-3739,2688
-3740,2688
-3741,2688
-3742,2688
-3743,2688
-3744,2688
-3745,2688
-3746,2688
-3747,2688
-3748,2688
-3749,2675
-3750,2688
-3751,2688
-3752,2688
-3753,2688
-3754,2688
-3755,2688
-3756,2688
-3757,2675
-3758,2688
-3759,2688
-3760,2688
-3761,2688
-3762,2688
-3763,2688
-3764,2688
-3765,2688
-3766,2688
-3767,2675
-3768,2688
-3769,2688
-3770,2688
-3771,2688
-3772,2688
-3773,2688
-3774,2688
-3775,2688
-3776,2688
-3777,2688
-3778,2688
-3779,2688
-3780,2688
-3781,2688
-3782,2688
-3783,2688
-3784,2688
-3785,2688
-3786,2688
-3787,2688
-3788,2688
-3789,2688
-3790,2688
-3791,2688
-3792,2688
-3793,2688
-3794,2688
-3795,2688
-3796,2688
-3797,2688
-3798,2688
-3799,2688
-3800,2688
-3801,2688
-3802,2675
-3803,2688
-3804,2688
-3805,2688
-3806,2688
-3807,2688
-3808,2688
-3809,2688
-3810,2688
-3811,2688
-3812,2688
-3813,2688
-3814,2688
-3815,2688
-3816,2688
-3817,2688
-3818,2675
-3819,2688
-3820,2688
-3821,2688
-3822,2688
-3823,2688
-3824,2688
-3825,2675
-3826,2688
-3827,2688
-3828,2688
-3829,2688
-3830,2688
-3831,2688
-3832,2688
-3833,2688
-3834,2688
-3835,2688
-3836,2688
-3837,2688
-3838,2688
-3839,2688
-3840,2688
-3841,2675
-3842,2688
-3843,2675
-3844,2688
-3845,2675
-3846,2688
-3847,2688
-3848,2675
-3849,2675
-3850,2688
-3851,2688
-3852,2688
-3853,2688
-3854,2688
-3855,2688
-3856,2675
-3857,2688
-3858,2688
-3859,2688
-3860,2688
-3861,2688
-3862,2675
-3863,2688
-3864,2688
-3865,2688
-3866,2688
-3867,2675
-3868,2688
-3869,2688
-3870,2688
-3871,2688
-3872,2675
-3873,2688
-3874,2688
-3875,2675
-3876,2688
-3877,2688
-3878,2688
-3879,2688
-3880,2688
-3881,2688
-3882,2688
-3883,2688
-3884,2688
-3885,2688
-3886,2688
-3887,2688
-3888,2688
-3889,2688
-3890,2688
-3891,2688
-3892,2688
-3893,2688
-3894,2688
-3895,2688
-3896,2688
-3897,2688
-3898,2688
-3899,2688
-3900,2700
-3901,2688
-3902,2688
-3903,2688
-3904,2688
-3905,2688
-3906,2688
-3907,2675
-3908,2688
-3909,2675
-3910,2688
-3911,2688
-3912,2688
-3913,2688
-3914,2688
-3915,2688
-3916,2688
-3917,2688
-3918,2688
-3919,2675
-3920,2688
-3921,2688
-3922,2688
-3923,2688
-3924,2688
-3925,2688
-3926,2688
-3927,2688
-3928,2688
-3929,2688
-3930,2688
-3931,2688
-3932,2688
-3933,2688
-3934,2688
-3935,2688
-3936,2688
-3937,2675
-3938,2675
-3939,2688
-3940,2688
-3941,2688
-3942,2675
-3943,2688
-3944,2688
-3945,2688
-3946,2688
-3947,2688
-3948,2675
-3949,2675
-3950,2688
-3951,2688
-3952,2688
-3953,2688
-3954,2688
-3955,2688
-3956,2688
-3957,2688
-3958,2688
-3959,2688
-3960,2688
-3961,2675
-3962,2688
-3963,2688
-3964,2688
-3965,2688
-3966,2700
-3967,2688
-3968,2688
-3969,2688
-3970,2688
-3971,2688
-3972,2688
-3973,2688
-3974,2675
-3975,2675
-3976,2688
-3977,2688
-3978,2688
-3979,2688
-3980,2688
-3981,2688
-3982,2688
-3983,2688
-3984,2688
-3985,2675
-3986,2675
-3987,2688
-3988,2688
-3989,2688
-3990,2688
-3991,2688
-3992,2688
-3993,2688
-3994,2688
-3995,2688
-3996,2688
-3997,2688
-3998,2688
-3999,2688
-4000,2688
-4001,2688
-4002,2688
-4003,2688
-4004,2688
-4005,2675
-4006,2688
-4007,2688
-4008,2688
-4009,2688
-4010,2688
-4011,2688
-4012,2675
-4013,2688
-4014,2688
-4015,2688
-4016,2688
-4017,2688
-4018,2688
-4019,2688
-4020,2675
-4021,2675
-4022,2688
-4023,2688
-4024,2688
-4025,2688
-4026,2688
-4027,2688
-4028,2688
-4029,2688
-4030,2688
-4031,2688
-4032,2688
-4033,2688
-4034,2688
-4035,2688
-4036,2688
-4037,2688
-4038,2688
-4039,2688
-4040,2675
-4041,2688
-4042,2688
-4043,2675
-4044,2688
-4045,2688
-4046,2688
-4047,2688
-4048,2688
-4049,2688
-4050,2675
-4051,2688
-4052,2688
-4053,2688
-4054,2688
-4055,2688
-4056,2688
-4057,2688
-4058,2688
-4059,2688
-4060,2688
-4061,2688
-4062,2675
-4063,2700
-4064,2688
-4065,2688
-4066,2688
-4067,2688
-4068,2675
-4069,2688
-4070,2675
-4071,2688
-4072,2688
-4073,2688
-4074,2688
-4075,2688
-4076,2688
-4077,2688
-4078,2688
-4079,2688
-4080,2688
-4081,2688
-4082,2700
-4083,2688
-4084,2700
-4085,2688
-4086,2688
-4087,2688
-4088,2688
-4089,2675
-4090,2688
-4091,2688
-4092,2688
-4093,2688
-4094,2688
-4095,2688
-4096,2688
-4097,2688
-4098,2688
-4099,2688
-4100,2688
-4101,2688
-4102,2688
-4103,2688
-4104,2688
-4105,2688
-4106,2688
-4107,2700
-4108,2688
-4109,2688
-4110,2688
-4111,2688
-4112,2675
-4113,2675
-4114,2688
-4115,2688
-4116,2688
-4117,2688
-4118,2688
-4119,2688
-4120,2700
-4121,2688
-4122,2688
-4123,2688
-4124,2688
-4125,2688
-4126,2688
-4127,2688
-4128,2688
-4129,2675
-4130,2688
-4131,2688
-4132,2688
-4133,2688
-4134,2688
-4135,2688
-4136,2688
-4137,2675
-4138,2688
-4139,2675
-4140,2688
-4141,2688
-4142,2688
-4143,2688
-4144,2675
-4145,2688
-4146,2688
-4147,2675
-4148,2688
-4149,2688
-4150,2688
-4151,2688
-4152,2688
-4153,2700
-4154,2675
-4155,2688
-4156,2675
-4157,2675
-4158,2688
-4159,2688
-4160,2688
-4161,2675
-4162,2688
-4163,2688
-4164,2688
-4165,2688
-4166,2688
-4167,2688
-4168,2688
-4169,2675
-4170,2688
-4171,2688
-4172,2688
-4173,2688
-4174,2688
-4175,2688
-4176,2688
-4177,2675
-4178,2688
-4179,2688
-4180,2688
-4181,2688
-4182,2675
-4183,2688
-4184,2688
-4185,2688
-4186,2688
-4187,2688
-4188,2688
-4189,2688
-4190,2688
-4191,2688
-4192,2688
-4193,2688
-4194,2675
-4195,2688
-4196,2688
-4197,2688
-4198,2688
-4199,2688
-4200,2688
-4201,2688
-4202,2675
-4203,2688
-4204,2688
-4205,2688
-4206,2675
-4207,2688
-4208,2688
-4209,2688
-4210,2688
-4211,2688
-4212,2688
-4213,2688
-4214,2688
-4215,2675
-4216,2675
-4217,2688
-4218,2675
-4219,2688
-4220,2688
-4221,2688
-4222,2688
-4223,2688
-4224,2688
-4225,2688
-4226,2688
-4227,2688
-4228,2688
-4229,2688
-4230,2688
-4231,2675
-4232,2688
-4233,2688
-4234,2675
-4235,2675
-4236,2688
-4237,2688
-4238,2688
-4239,2688
-4240,2675
-4241,2688
-4242,2688
-4243,2675
-4244,2688
-4245,2688
-4246,2688
-4247,2688
-4248,2688
-4249,2688
-4250,2700
-4251,2675
-4252,2688
-4253,2688
-4254,2688
-4255,2688
-4256,2688
-4257,2688
-4258,2688
-4259,2688
-4260,2688
-4261,2688
-4262,2688
-4263,2688
-4264,2688
-4265,2675
-4266,2688
-4267,2688
-4268,2688
-4269,2688
-4270,2688
-4271,2675
-4272,2688
-4273,2700
-4274,2688
-4275,2675
-4276,2688
-4277,2688
-4278,2688
-4279,2688
-4280,2675
-4281,2688
-4282,2688
-4283,2688
-4284,2688
-4285,2675
-4286,2688
-4287,2688
-4288,2675
-4289,2688
-4290,2675
-4291,2688
-4292,2688
-4293,2688
-4294,2688
-4295,2688
-4296,2688
-4297,2688
-4298,2688
-4299,2688
-4300,2688
-4301,2688
-4302,2688
-4303,2688
-4304,2688
-4305,2688
-4306,2688
-4307,2675
-4308,2675
-4309,2688
-4310,2688
-4311,2688
-4312,2675
-4313,2675
-4314,2688
-4315,2688
-4316,2688
-4317,2688
-4318,2688
-4319,2675
-4320,2688
-4321,2688
-4322,2688
-4323,2688
-4324,2675
-4325,2688
-4326,2688
-4327,2688
-4328,2688
-4329,2688
-4330,2675
-4331,2688
-4332,2688
-4333,2688
-4334,2688
-4335,2688
-4336,2688
-4337,2700
-4338,2688
-4339,2688
-4340,2688
-4341,2688
-4342,2688
-4343,2700
-4344,2688
-4345,2675
-4346,2688
-4347,2688
-4348,2675
-4349,2675
-4350,2688
-4351,2688
-4352,2688
-4353,2688
-4354,2688
-4355,2688
-4356,2688
-4357,2688
-4358,2688
-4359,2688
-4360,2688
-4361,2688
-4362,2688
-4363,2688
-4364,2688
-4365,2688
-4366,2688
-4367,2688
-4368,2688
-4369,2688
-4370,2688
-4371,2688
-4372,2688
-4373,2675
-4374,2675
-4375,2688
-4376,2688
-4377,2675
-4378,2688
-4379,2688
-4380,2688
-4381,2688
-4382,2688
-4383,2688
-4384,2688
-4385,2688
-4386,2675
-4387,2688
-4388,2688
-4389,2688
-4390,2688
-4391,2688
-4392,2688
-4393,2688
-4394,2688
-4395,2688
-4396,2688
-4397,2688
-4398,2700
-4399,2688
-4400,2688
-4401,2688
-4402,2688
-4403,2688
-4404,2688
-4405,2688
-4406,2688
-4407,2688
-4408,2675
-4409,2688
-4410,2688
-4411,2688
-4412,2688
-4413,2688
-4414,2688
-4415,2675
-4416,2688
-4417,2688
-4418,2688
-4419,2688
-4420,2688
-4421,2688
-4422,2688
-4423,2688
-4424,2688
-4425,2688
-4426,2688
-4427,2688
-4428,2688
-4429,2688
-4430,2688
-4431,2688
-4432,2688
-4433,2688
-4434,2688
-4435,2688
-4436,2688
-4437,2688
-4438,2688
-4439,2688
-4440,2688
-4441,2688
-4442,2688
-4443,2675
-4444,2688
-4445,2675
-4446,2675
-4447,2688
-4448,2688
-4449,2688
-4450,2688
-4451,2675
-4452,2688
-4453,2688
-4454,2675
-4455,2688
-4456,2688
-4457,2688
-4458,2688
-4459,2688
-4460,2688
-4461,2688
-4462,2688
-4463,2688
-4464,2688
-4465,2688
-4466,2688
-4467,2688
-4468,2688
-4469,2688
-4470,2688
-4471,2688
-4472,2688
-4473,2688
-4474,2688
-4475,2688
-4476,2675
-4477,2688
-4478,2688
-4479,2688
-4480,2688
-4481,2688
-4482,2688
-4483,2688
-4484,2688
-4485,2688
-4486,2688
-4487,2688
-4488,2688
-4489,2688
-4490,2688
-4491,2688
-4492,2675
-4493,2688
-4494,2688
-4495,2688
-4496,2688
-4497,2688
-4498,2688
-4499,2688
-4500,2688
-4501,2688
-4502,2688
-4503,2688
-4504,2688
-4505,2688
-4506,2688
-4507,2688
-4508,2688
-4509,2688
-4510,2688
-4511,2688
-4512,2688
-4513,2688
-4514,2688
-4515,2675
-4516,2688
-4517,2675
-4518,2688
-4519,2688
-4520,2688
-4521,2688
-4522,2688
-4523,2688
-4524,2688
-4525,2688
-4526,2688
-4527,2688
-4528,2688
-4529,2688
-4530,2688
-4531,2688
-4532,2688
-4533,2688
-4534,2688
-4535,2688
-4536,2688
-4537,2675
-4538,2675
-4539,2688
-4540,2688
-4541,2688
-4542,2688
-4543,2688
-4544,2688
-4545,2688
-4546,2688
-4547,2688
-4548,2688
-4549,2688
-4550,2688
-4551,2688
-4552,2688
-4553,2688
-4554,2675
-4555,2688
-4556,2688
-4557,2688
-4558,2688
-4559,2688
-4560,2688
-4561,2688
-4562,2688
-4563,2688
-4564,2688
-4565,2675
-4566,2688
-4567,2688
-4568,2688
-4569,2688
-4570,2688
-4571,2688
-4572,2688
-4573,2688
-4574,2688
-4575,2688
-4576,2688
-4577,2688
-4578,2700
-4579,2688
-4580,2688
-4581,2688
-4582,2688
-4583,2688
-4584,2688
-4585,2688
-4586,2688
-4587,2688
-4588,2688
-4589,2675
-4590,2675
-4591,2675
-4592,2688
-4593,2688
-4594,2688
-4595,2688
-4596,2688
-4597,2688
-4598,2688
-4599,2688
-4600,2688
-4601,2688
-4602,2688
-4603,2688
-4604,2688
-4605,2688
-4606,2700
-4607,2688
-4608,2688
-4609,2688
-4610,2688
-4611,2688
-4612,2688
-4613,2688
-4614,2688
-4615,2675
-4616,2688
-4617,2688
-4618,2688
-4619,2688
-4620,2688
-4621,2688
-4622,2688
-4623,2688
-4624,2688
-4625,2688
-4626,2688
-4627,2688
-4628,2688
-4629,2688
-4630,2688
-4631,2688
-4632,2688
-4633,2688
-4634,2688
-4635,2688
-4636,2688
-4637,2688
-4638,2688
-4639,2688
-4640,2688
-4641,2688
-4642,2688
-4643,2688
-4644,2688
-4645,2688
-4646,2688
-4647,2688
-4648,2688
-4649,2688
-4650,2688
-4651,2688
-4652,2688
-4653,2688
-4654,2688
-4655,2688
-4656,2688
-4657,2688
-4658,2688
-4659,2688
-4660,2675
-4661,2688
-4662,2688
-4663,2688
-4664,2688
-4665,2688
-4666,2675
-4667,2688
-4668,2688
-4669,2688
-4670,2688
-4671,2688
-4672,2688
-4673,2688
-4674,2688
-4675,2688
-4676,2688
-4677,2688
-4678,2688
-4679,2688
-4680,2688
-4681,2688
-4682,2688
-4683,2688
-4684,2688
-4685,2688
-4686,2688
-4687,2675
-4688,2688
-4689,2688
-4690,2688
-4691,2688
-4692,2688
-4693,2688
-4694,2700
-4695,2675
-4696,2688
-4697,2688
-4698,2688
-4699,2675
-4700,2688
-4701,2675
-4702,2688
-4703,2688
-4704,2688
-4705,2688
-4706,2675
-4707,2688
-4708,2688
-4709,2688
-4710,2688
-4711,2688
-4712,2675
-4713,2688
-4714,2688
-4715,2688
-4716,2688
-4717,2688
-4718,2688
-4719,2688
-4720,2688
-4721,2688
-4722,2688
-4723,2688
-4724,2688
-4725,2675
-4726,2688
-4727,2688
-4728,2675
-4729,2688
-4730,2688
-4731,2688
-4732,2688
-4733,2688
-4734,2688
-4735,2688
-4736,2688
-4737,2688
-4738,2688
-4739,2688
-4740,2688
-4741,2688
-4742,2688
-4743,2688
-4744,2688
-4745,2688
-4746,2688
-4747,2688
-4748,2688
-4749,2688
-4750,2688
-4751,2688
-4752,2688
-4753,2688
-4754,2688
-4755,2688
-4756,2688
-4757,2688
-4758,2688
-4759,2688
-4760,2688
-4761,2688
-4762,2688
-4763,2688
-4764,2688
-4765,2688
-4766,2688
-4767,2688
-4768,2688
-4769,2688
-4770,2688
-4771,2675
-4772,2688
-4773,2688
-4774,2688
-4775,2688
-4776,2688
-4777,2688
-4778,2688
-4779,2688
-4780,2688
-4781,2688
-4782,2688
-4783,2675
-4784,2688
-4785,2688
-4786,2688
-4787,2675
-4788,2688
-4789,2688
-4790,2688
-4791,2688
-4792,2688
-4793,2688
-4794,2688
-4795,2688
-4796,2688
-4797,2688
-4798,2688
-4799,2688
-4800,2688
-4801,2688
-4802,2688
-4803,2700
-4804,2688
-4805,2688
-4806,2688
-4807,2688
-4808,2688
-4809,2688
-4810,2688
-4811,2688
-4812,2688
-4813,2688
-4814,2688
-4815,2688
-4816,2688
-4817,2675
-4818,2688
-4819,2688
-4820,2688
-4821,2675
-4822,2688
-4823,2688
-4824,2688
-4825,2688
-4826,2688
-4827,2675
-4828,2688
-4829,2688
-4830,2688
-4831,2688
-4832,2688
-4833,2675
-4834,2688
-4835,2688
-4836,2688
-4837,2688
-4838,2688
-4839,2688
-4840,2688
-4841,2688
-4842,2675
-4843,2688
-4844,2688
-4845,2688
-4846,2688
-4847,2688
-4848,2688
-4849,2675
-4850,2688
-4851,2675
-4852,2688
-4853,2688
-4854,2688
-4855,2688
-4856,2688
-4857,2688
-4858,2688
-4859,2688
-4860,2688
-4861,2688
-4862,2688
-4863,2688
-4864,2688
-4865,2688
-4866,2688
-4867,2675
-4868,2688
-4869,2688
-4870,2688
-4871,2675
-4872,2688
-4873,2675
-4874,2675
-4875,2688
-4876,2688
-4877,2688
-4878,2688
-4879,2688
-4880,2688
-4881,2688
-4882,2688
-4883,2688
-4884,2688
-4885,2688
-4886,2688
-4887,2688
-4888,2688
-4889,2688
-4890,2688
-4891,2688
-4892,2688
-4893,2688
-4894,2688
-4895,2688
-4896,2688
-4897,2688
-4898,2688
-4899,2688
-4900,2688
-4901,2688
-4902,2675
-4903,2688
-4904,2688
-4905,2688
-4906,2688
-4907,2688
-4908,2688
-4909,2688
-4910,2688
-4911,2688
-4912,2688
-4913,2688
-4914,2688
-4915,2688
-4916,2688
-4917,2688
-4918,2688
-4919,2688
-4920,2688
-4921,2688
-4922,2688
-4923,2688
-4924,2688
-4925,2688
-4926,2688
-4927,2688
-4928,2688
-4929,2688
-4930,2688
-4931,2688
-4932,2688
-4933,2688
-4934,2688
-4935,2675
-4936,2675
-4937,2688
-4938,2688
-4939,2688
-4940,2688
-4941,2688
-4942,2688
-4943,2688
-4944,2675
-4945,2675
-4946,2688
-4947,2675
-4948,2688
-4949,2675
-4950,2688
-4951,2688
-4952,2688
-4953,2688
-4954,2688
-4955,2688
-4956,2675
-4957,2688
-4958,2688
-4959,2688
-4960,2675
-4961,2688
-4962,2688
-4963,2688
-4964,2688
-4965,2688
-4966,2675
-4967,2688
-4968,2688
-4969,2675
-4970,2688
-4971,2688
-4972,2688
-4973,2688
-4974,2688
-4975,2688
-4976,2675
-4977,2688
-4978,2688
-4979,2688
-4980,2688
-4981,2688
-4982,2688
-4983,2688
-4984,2675
-4985,2688
-4986,2688
-4987,2688
-4988,2688
-4989,2675
-4990,2688
-4991,2675
-4992,2688
-4993,2688
-4994,2675
-4995,2688
-4996,2688
-4997,2688
-4998,2688
-4999,2688
-5000,2675
-5001,2688
-5002,2688
-5003,2688
-5004,2688
-5005,2675
-5006,2700
-5007,2688
-5008,2688
-5009,2688
-5010,2688
-5011,2688
-5012,2688
-5013,2688
-5014,2688
-5015,2675
-5016,2688
-5017,2688
-5018,2688
-5019,2688
-5020,2688
-5021,2675
-5022,2688
-5023,2688
-5024,2688
-5025,2688
-5026,2688
-5027,2675
-5028,2688
-5029,2688
-5030,2688
-5031,2688
-5032,2688
-5033,2688
-5034,2688
-5035,2688
-5036,2688
-5037,2688
-5038,2688
-5039,2688
-5040,2688
-5041,2688
-5042,2688
-5043,2688
-5044,2688
-5045,2688
-5046,2688
-5047,2688
-5048,2688
-5049,2688
-5050,2688
-5051,2688
-5052,2688
-5053,2688
-5054,2688
-5055,2688
-5056,2688
-5057,2688
-5058,2688
-5059,2688
-5060,2675
-5061,2688
-5062,2688
-5063,2688
-5064,2688
-5065,2688
-5066,2688
-5067,2688
-5068,2675
-5069,2675
-5070,2688
-5071,2688
-5072,2688
-5073,2688
-5074,2688
-5075,2688
-5076,2688
-5077,2688
-5078,2688
-5079,2675
-5080,2675
-5081,2688
-5082,2688
-5083,2688
-5084,2688
-5085,2688
-5086,2688
-5087,2688
-5088,2675
-5089,2688
-5090,2688
-5091,2688
-5092,2688
-5093,2688
-5094,2688
-5095,2688
-5096,2688
-5097,2675
-5098,2688
-5099,2688
-5100,2688
-5101,2688
-5102,2688
-5103,2688
-5104,2688
-5105,2688
-5106,2688
-5107,2688
-5108,2688
-5109,2675
-5110,2688
-5111,2688
-5112,2688
-5113,2688
-5114,2688
-5115,2688
-5116,2675
-5117,2688
-5118,2688
-5119,2688
-5120,2688
-5121,2688
-5122,2688
-5123,2688
-5124,2688
-5125,2688
-5126,2675
-5127,2700
-5128,2688
-5129,2688
-5130,2688
-5131,2688
-5132,2688
-5133,2688
-5134,2688
-5135,2688
-5136,2688
-5137,2688
-5138,2688
-5139,2688
-5140,2688
-5141,2688
-5142,2688
-5143,2688
-5144,2688
-5145,2688
-5146,2675
-5147,2688
-5148,2688
-5149,2688
-5150,2688
-5151,2688
-5152,2675
-5153,2688
-5154,2688
-5155,2688
-5156,2688
-5157,2688
-5158,2688
-5159,2675
-5160,2688
-5161,2688
-5162,2688
-5163,2688
-5164,2688
-5165,2675
-5166,2688
-5167,2675
-5168,2688
-5169,2675
-5170,2688
-5171,2688
-5172,2688
-5173,2688
-5174,2688
-5175,2675
-5176,2675
-5177,2675
-5178,2688
-5179,2675
-5180,2688
-5181,2688
-5182,2675
-5183,2688
-5184,2688
-5185,2688
-5186,2688
-5187,2688
-5188,2688
-5189,2688
-5190,2688
-5191,2688
-5192,2688
-5193,2688
-5194,2688
-5195,2675
-5196,2688
-5197,2688
-5198,2688
-5199,2688
-5200,2675
-5201,2675
-5202,2688
-5203,2688
-5204,2688
-5205,2688
-5206,2688
-5207,2688
-5208,2675
-5209,2688
-5210,2688
-5211,2688
-5212,2688
-5213,2688
-5214,2688
-5215,2688
-5216,2688
-5217,2688
-5218,2688
-5219,2688
-5220,2688
-5221,2675
-5222,2688
-5223,2688
-5224,2688
-5225,2688
-5226,2688
-5227,2688
-5228,2688
-5229,2688
-5230,2688
-5231,2675
-5232,2688
-5233,2688
-5234,2688
-5235,2688
-5236,2688
-5237,2688
-5238,2688
-5239,2688
-5240,2675
-5241,2688
-5242,2688
-5243,2688
-5244,2688
-5245,2688
-5246,2688
-5247,2688
-5248,2688
-5249,2688
-5250,2688
-5251,2688
-5252,2688
-5253,2688
-5254,2688
-5255,2688
-5256,2688
-5257,2688
-5258,2688
-5259,2688
-5260,2675
-5261,2688
-5262,2688
-5263,2688
-5264,2688
-5265,2688
-5266,2675
-5267,2688
-5268,2688
-5269,2688
-5270,2688
-5271,2688
-5272,2675
-5273,2688
-5274,2688
-5275,2688
-5276,2688
-5277,2688
-5278,2688
-5279,2688
-5280,2688
-5281,2688
-5282,2688
-5283,2688
-5284,2688
-5285,2688
-5286,2675
-5287,2675
-5288,2688
-5289,2688
-5290,2688
-5291,2688
-5292,2688
-5293,2688
-5294,2688
-5295,2688
-5296,2688
-5297,2688
-5298,2688
-5299,2688
-5300,2688
-5301,2688
-5302,2688
-5303,2688
-5304,2688
-5305,2675
-5306,2688
-5307,2688
-5308,2688
-5309,2688
-5310,2688
-5311,2688
-5312,2688
-5313,2688
-5314,2688
-5315,2688
-5316,2688
-5317,2688
-5318,2688
-5319,2688
-5320,2688
-5321,2688
-5322,2688
-5323,2688
-5324,2688
-5325,2688
-5326,2688
-5327,2688
-5328,2688
-5329,2688
-5330,2675
-5331,2688
-5332,2688
-5333,2688
-5334,2688
-5335,2688
-5336,2688
-5337,2688
-5338,2688
-5339,2688
-5340,2688
-5341,2688
-5342,2688
-5343,2688
-5344,2688
-5345,2688
-5346,2688
-5347,2688
-5348,2688
-5349,2688
-5350,2675
-5351,2688
-5352,2675
-5353,2688
-5354,2688
-5355,2688
-5356,2688
-5357,2675
-5358,2688
-5359,2688
-5360,2688
-5361,2688
-5362,2688
-5363,2675
-5364,2688
-5365,2688
-5366,2688
-5367,2675
-5368,2688
-5369,2688
-5370,2688
-5371,2688
-5372,2688
-5373,2688
-5374,2688
-5375,2688
-5376,2688
-5377,2688
-5378,2688
-5379,2688
-5380,2688
-5381,2688
-5382,2688
-5383,2675
-5384,2688
-5385,2688
-5386,2688
-5387,2688
-5388,2688
-5389,2688
-5390,2688
-5391,2688
-5392,2688
-5393,2688
-5394,2688
-5395,2688
-5396,2688
-5397,2688
-5398,2688
-5399,2675
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Encoder.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Encoder.cs
new file mode 100644
index 000000000..d2eb00cb6
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Encoder.cs
@@ -0,0 +1,55 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+
+include "..\..\Defines\Tango_Defines_Basic.cs"
+include "Tango_Defines_SSI.cs"
+//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_Basic.cs"
+//include "C:\To_Backup\Mulberry\Mulberry_current\Customers\Twine\Tango\LAB_Tests\Main_PCB\ATP_Test\Scripts\Defines\Tango_Defines_SSI.cs"
+
+
+public void OnExecute(StubManager stubManager)
+{
+ int k = 0;
+ Fpga_Read_Reg(FPGA1, F1_Prescaler1_reg1, 0);
+ Fpga_Read_Reg(FPGA1, F1_Prescaler1_reg2, 0);
+
+ //Set output clock frequency to about 200 kHz
+ Fpga_Write_Reg(FPGA1, F1_Prescaler1_reg1, 0x0024, 0);
+ Fpga_Write_Reg(FPGA1, F1_Prescaler1_reg2, 0x0024, 0);
+
+ Fpga_Read_Reg(FPGA1, F1_Prescaler1_reg1, 0);
+ Fpga_Read_Reg(FPGA1, F1_Prescaler1_reg2, 0);
+
+ for (int i = 0; i < 1000; i++)
+ {
+
+ stubManager.Write(ReadEncoder_Dryer() +"\n");
+
+ Thread.Sleep(100);
+ }
+
+
+}
+
+Int32 ReadEncoder_Dryer()
+{
+ Int32 temp;
+ Int32 temp1;
+ stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x6000019e, 0x0000); //triggers a TX transmission
+
+ var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000190);
+ var response1 = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000192);
+
+ temp = Convert.ToInt32 (((((response1.Value <<16) + response.Value)>>10 ) & 0x3fff));
+
+ return temp;
+}
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_SSR.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_SSR.cs
index b059a170f..b092d6a20 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_SSR.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_SSR.cs
@@ -26,17 +26,16 @@ float temp1=4096*95*5;
stubManager.WriteHex(response.TemperatureCMultBy100,4);
SetBit (FPGA2, F2_CTRL, 10, 1);
stubManager.Write("\tTesting SSR no. 1\t");
- Thread.Sleep(1000);
-
-
+ Thread.Sleep(10000);
+
var response1 = stubManager.Run<StubIntADCReadResponse>("StubIntADCReadRequest" ,16);
temp=Convert.ToUInt32 (response1.SamplingInBits);
- temp=temp*800*3*100;
+
+ temp=temp*2400*60*100;
temp=temp/(4096*95*50);
- stubManager.Write("Current = "+ temp + "A\n");
- temp=temp*60;
- stubManager.Write("Voltage = "+ temp + " Volt\n");
+ stubManager.Write("Voltage = "+ temp + "Volt/n");
+ stubManager.Write("Current = "+ temp*100/6 + "mA/n");
SetBit (FPGA2, F2_CTRL, 10, 0);
@@ -50,17 +49,16 @@ var response1 = stubManager.Run<StubIntADCReadResponse>("StubIntADCReadRequest"
stubManager.WriteHex(response.TemperatureCMultBy100,4);
SetBit (FPGA2, F2_CTRL, 9, 1);
stubManager.Write("\tTesting SSR no. 2\t");
- Thread.Sleep(1000);
+ Thread.Sleep(10000);
-response1 = stubManager.Run<StubIntADCReadResponse>("StubIntADCReadRequest" ,17);
+ response1 = stubManager.Run<StubIntADCReadResponse>("StubIntADCReadRequest" ,17);
temp=Convert.ToUInt32 (response1.SamplingInBits);
- stubManager.WriteLine(temp);
- temp=temp*800*3*100;
- temp=temp/(4096*95*120);
- stubManager.Write("Current = "+ temp + "A\n");
- temp=temp*120;
- stubManager.Write("Voltage = "+ temp + " Volt\n");
+
+ temp=temp*2400*1000;
+ temp=temp/(4096*95*100);
+ stubManager.Write("Current = "+ temp*100/6 + "mA/n");
+
SetBit (FPGA2, F2_CTRL, 9, 0);
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset.CSV b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset.CSV
index daadff892..de439d914 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset.CSV
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset.CSV
@@ -1,6 +1,1796 @@
-24/06/2020 9:51:30
+03/09/2020 22:34:12
Heating to 190
-24/06/2020 9:51:30
+03/09/2020 22:34:12
+ 59
+ 59
+ 59
+ 59
+ 59
+ 59
+ 59
+ 59
+ 59
+ 59
+ 59
+ 59
+ 59
+ 59
+ 59
+ 60
+ 60
+ 60
+ 60
+ 61
+ 61
+ 61
+ 62
+ 62
+ 63
+ 63
+ 64
+ 64
+ 65
+ 65
+ 66
+ 66
+ 67
+ 67
+ 68
+ 68
+ 69
+ 69
+ 70
+ 71
+ 71
+ 72
+ 72
+ 73
+ 73
+ 74
+ 74
+ 75
+ 75
+ 76
+ 76
+ 77
+ 78
+ 78
+ 79
+ 80
+ 80
+ 81
+ 81
+ 82
+ 82
+ 83
+ 83
+ 84
+ 84
+ 85
+ 85
+ 86
+ 86
+ 87
+ 87
+ 88
+ 88
+ 89
+ 89
+ 89
+ 90
+ 90
+ 91
+ 91
+ 92
+ 92
+ 93
+ 93
+ 93
+ 94
+ 94
+ 95
+ 95
+ 96
+ 96
+ 97
+ 97
+ 98
+ 98
+ 98
+ 99
+ 99
+ 99
+ 100
+ 101
+ 101
+ 101
+ 102
+ 102
+ 102
+ 103
+ 103
+ 103
+ 104
+ 104
+ 105
+ 105
+ 105
+ 106
+ 106
+ 106
+ 107
+ 107
+ 107
+ 108
+ 108
+ 108
+ 109
+ 109
+ 109
+ 110
+ 110
+ 110
+ 111
+ 111
+ 111
+ 112
+ 112
+ 112
+ 112
+ 113
+ 113
+ 113
+ 114
+ 114
+ 114
+ 115
+ 115
+ 115
+ 115
+ 116
+ 116
+ 117
+ 117
+ 117
+ 117
+ 118
+ 118
+ 118
+ 119
+ 119
+ 119
+ 119
+ 120
+ 120
+ 120
+ 120
+ 121
+ 121
+ 121
+ 122
+ 122
+ 122
+ 122
+ 123
+ 123
+ 123
+ 124
+ 124
+ 124
+ 124
+ 125
+ 125
+ 125
+ 125
+ 125
+ 126
+ 126
+ 126
+ 126
+ 127
+ 127
+ 127
+ 127
+ 128
+ 128
+ 128
+ 128
+ 129
+ 129
+ 129
+ 129
+ 129
+ 130
+ 130
+ 130
+ 130
+ 131
+ 131
+ 131
+ 131
+ 132
+ 132
+ 132
+ 132
+ 132
+ 133
+ 133
+ 133
+ 133
+ 134
+ 134
+ 134
+ 134
+ 134
+ 135
+ 135
+ 135
+ 135
+ 136
+ 136
+ 136
+ 136
+ 137
+ 137
+ 137
+ 137
+ 137
+ 138
+ 138
+ 138
+ 138
+ 138
+ 139
+ 139
+ 139
+ 139
+ 139
+ 140
+ 140
+ 140
+ 140
+ 140
+ 141
+ 141
+ 141
+ 141
+ 142
+ 142
+ 142
+ 142
+ 142
+ 143
+ 143
+ 143
+ 143
+ 143
+ 144
+ 144
+ 144
+ 144
+ 144
+ 145
+ 145
+ 145
+ 145
+ 145
+ 145
+ 146
+ 146
+ 146
+ 146
+ 147
+ 147
+ 147
+ 147
+ 147
+ 147
+ 148
+ 148
+ 148
+ 148
+ 148
+ 149
+ 149
+ 149
+ 149
+ 149
+ 149
+ 150
+ 150
+ 150
+ 150
+ 150
+ 151
+ 151
+ 151
+ 151
+ 151
+ 152
+ 152
+ 152
+ 152
+ 152
+ 152
+ 153
+ 153
+ 153
+ 153
+ 153
+ 153
+ 154
+ 154
+ 154
+ 154
+ 154
+ 155
+ 155
+ 155
+ 155
+ 155
+ 155
+ 156
+ 156
+ 156
+ 156
+ 156
+ 157
+ 157
+ 157
+ 157
+ 157
+ 157
+ 158
+ 158
+ 158
+ 158
+ 158
+ 158
+ 159
+ 159
+ 159
+ 159
+ 159
+ 159
+ 160
+ 160
+ 160
+ 160
+ 160
+ 160
+ 161
+ 161
+ 161
+ 161
+ 161
+ 161
+ 162
+ 162
+ 162
+ 162
+ 162
+ 162
+ 163
+ 163
+ 163
+ 163
+ 163
+ 163
+ 164
+ 164
+ 164
+ 164
+ 164
+ 164
+ 165
+ 165
+ 165
+ 165
+ 165
+ 165
+ 166
+ 166
+ 166
+ 166
+ 166
+ 166
+ 166
+ 167
+ 167
+ 167
+ 167
+ 167
+ 167
+ 167
+ 168
+ 168
+ 168
+ 168
+ 168
+ 168
+ 168
+ 169
+ 169
+ 169
+ 169
+ 169
+ 170
+ 170
+ 170
+ 170
+ 170
+ 170
+ 170
+ 171
+ 171
+ 171
+ 171
+ 171
+ 171
+ 171
+ 172
+ 172
+ 172
+ 172
+ 172
+ 172
+ 172
+ 173
+ 173
+ 173
+ 173
+ 173
+ 173
+ 174
+ 174
+ 174
+ 174
+ 174
+ 174
+ 175
+ 175
+ 175
+ 175
+ 175
+ 175
+ 175
+ 176
+ 176
+ 176
+ 176
+ 176
+ 176
+ 176
+ 176
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 178
+ 178
+ 178
+ 178
+ 178
+ 178
+ 178
+ 178
+ 178
+ 179
+ 179
+ 179
+ 179
+ 179
+ 179
+ 179
+ 179
+ 179
+ 180
+ 180
+ 180
+ 180
+ 180
+ 180
+ 180
+ 180
+ 181
+ 181
+ 181
+ 181
+ 181
+ 181
+ 181
+ 181
+ 182
+ 182
+ 182
+ 182
+ 182
+ 182
+ 182
+ 183
+ 183
+ 183
+ 183
+ 183
+ 183
+ 183
+ 184
+ 184
+ 184
+ 184
+ 184
+ 184
+ 184
+ 185
+ 185
+ 185
+ 185
+ 185
+ 185
+ 185
+ 186
+ 186
+ 186
+ 186
+ 186
+ 186
+ 186
+ 187
+ 187
+ 187
+ 187
+ 187
+ 187
+ 187
+ 188
+ 188
+ 188
+ 188
+ 188
+ 188
+ 188
+ 188
+ 189
+03/09/2020 22:43:52
+cooling down
+03/09/2020 22:45:53
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 189
+ 189
+ 189
+ 189
+ 189
+ 189
+ 189
+ 188
+ 188
+ 188
+ 188
+ 187
+ 187
+ 187
+ 187
+ 186
+ 186
+ 186
+ 186
+ 185
+ 185
+ 185
+ 184
+ 184
+ 183
+ 183
+ 183
+ 182
+ 182
+ 182
+ 181
+ 181
+ 181
+ 180
+ 180
+ 180
+ 179
+ 179
+ 179
+ 178
+ 178
+ 177
+ 177
+ 177
+ 176
+ 176
+ 175
+ 175
+ 175
+ 174
+ 174
+ 174
+ 173
+ 173
+ 173
+ 173
+ 172
+ 172
+ 172
+ 171
+ 171
+ 171
+ 170
+ 170
+ 170
+ 169
+ 169
+ 169
+ 168
+ 168
+ 168
+ 167
+ 167
+ 167
+ 167
+ 166
+ 166
+ 166
+ 165
+ 165
+ 165
+ 165
+ 164
+ 164
+ 164
+ 163
+ 163
+ 163
+ 163
+ 162
+ 162
+ 162
+ 162
+ 161
+ 161
+ 161
+ 161
+ 160
+ 160
+ 160
+ 160
+ 160
+ 159
+ 159
+ 159
+ 159
+ 158
+ 158
+ 158
+ 158
+ 157
+ 157
+ 157
+ 157
+ 157
+ 156
+ 156
+ 156
+ 156
+ 156
+ 155
+ 155
+ 155
+ 155
+ 155
+ 154
+ 154
+ 154
+ 154
+ 154
+ 153
+ 153
+ 153
+ 153
+ 153
+ 152
+ 152
+ 152
+ 152
+ 152
+ 152
+ 151
+ 151
+ 151
+ 151
+ 151
+ 151
+ 150
+ 150
+ 150
+ 150
+ 150
+ 150
+ 149
+ 149
+ 149
+ 149
+ 149
+ 149
+ 149
+ 148
+ 148
+ 148
+ 148
+ 148
+ 148
+ 148
+ 147
+ 147
+ 147
+ 147
+ 147
+ 147
+ 147
+ 146
+ 146
+ 146
+ 146
+ 146
+ 146
+ 146
+ 145
+ 145
+ 145
+ 145
+ 145
+ 145
+ 145
+ 145
+ 144
+ 144
+ 144
+ 144
+ 144
+ 144
+ 144
+ 143
+ 143
+ 143
+ 143
+ 143
+ 143
+ 143
+ 143
+ 143
+ 142
+ 142
+ 142
+ 142
+ 142
+ 142
+ 142
+ 142
+ 142
+ 142
+ 141
+ 141
+ 141
+ 141
+ 141
+ 141
+ 141
+ 141
+ 140
+ 140
+ 140
+ 140
+ 140
+ 140
+ 140
+ 140
+ 140
+ 140
+ 139
+ 139
+ 139
+ 139
+ 139
+ 139
+ 139
+ 139
+ 139
+ 139
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
99
99
99
@@ -8,34 +1798,3287 @@ Heating to 190
99
99
99
+ 99
+ 99
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
98
98
98
98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 59
+04/09/2020 0:00:34
+Heating to 190
+04/09/2020 0:00:34
+ 59
+ 59
+ 59
+ 59
+ 59
+ 59
+ 59
+ 59
+ 59
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 61
+ 61
+ 61
+ 61
+ 62
+ 62
+ 62
+ 63
+ 63
+ 64
+ 64
+ 65
+ 65
+ 65
+ 66
+ 66
+ 67
+ 67
+ 68
+ 69
+ 69
+ 70
+ 70
+ 71
+ 71
+ 72
+ 72
+ 73
+ 73
+ 74
+ 75
+ 75
+ 76
+ 76
+ 77
+ 77
+ 78
+ 78
+ 79
+ 79
+ 80
+ 80
+ 81
+ 81
+ 82
+ 82
+ 83
+ 83
+ 84
+ 84
+ 85
+ 85
+ 86
+ 87
+ 87
+ 88
+ 88
+ 89
+ 89
+ 90
+ 90
+ 91
+ 91
+ 92
+ 92
+ 92
+ 93
+ 93
+ 94
+ 94
+ 95
+ 95
+ 96
+ 96
+ 97
+ 97
+ 97
+ 98
+ 98
99
99
99
100
100
- 100
+ 101
+ 101
101
102
+ 102
+ 103
103
103
104
104
105
105
+ 105
+ 106
106
106
107
107
+ 107
+ 108
108
108
109
109
110
110
+ 110
+ 111
111
111
112
@@ -43,6 +5086,9 @@ Heating to 190
112
113
113
+ 113
+ 114
+ 114
114
114
115
@@ -50,8 +5096,12 @@ Heating to 190
116
116
116
+ 116
117
117
+ 117
+ 118
+ 118
118
118
119
@@ -59,45 +5109,65 @@ Heating to 190
119
120
120
+ 120
+ 120
+ 121
121
121
121
122
122
+ 122
+ 123
123
123
123
124
124
+ 124
+ 124
+ 125
125
125
125
126
126
126
+ 126
127
127
127
128
128
+ 128
+ 128
+ 129
129
129
129
130
130
130
+ 130
+ 130
131
131
131
+ 131
+ 132
132
132
132
133
133
133
+ 133
+ 134
134
134
134
+ 134
+ 135
135
135
135
@@ -108,12 +5178,18 @@ Heating to 190
137
137
137
+ 137
+ 137
+ 138
+ 138
138
138
138
139
139
139
+ 139
+ 140
140
140
140
@@ -121,12 +5197,18 @@ Heating to 190
141
141
141
+ 141
+ 142
142
142
142
+ 142
+ 143
143
143
143
+ 143
+ 144
144
144
144
@@ -138,6 +5220,10 @@ Heating to 190
146
146
146
+ 146
+ 146
+ 147
+ 147
147
147
147
@@ -146,6 +5232,7 @@ Heating to 190
148
148
148
+ 148
149
149
149
@@ -154,10 +5241,16 @@ Heating to 190
150
150
150
+ 150
+ 150
+ 151
151
151
151
151
+ 151
+ 152
+ 152
152
152
152
@@ -171,10 +5264,15 @@ Heating to 190
154
154
154
+ 154
+ 154
+ 155
155
155
155
155
+ 155
+ 156
156
156
156
@@ -184,6 +5282,8 @@ Heating to 190
157
157
157
+ 157
+ 158
158
158
158
@@ -193,11 +5293,15 @@ Heating to 190
159
159
159
+ 159
+ 159
160
160
160
160
160
+ 160
+ 161
161
161
161
@@ -208,6 +5312,7 @@ Heating to 190
162
162
162
+ 162
163
163
163
@@ -218,6 +5323,9 @@ Heating to 190
164
164
164
+ 164
+ 165
+ 165
165
165
165
@@ -228,6 +5336,9 @@ Heating to 190
166
166
166
+ 166
+ 167
+ 167
167
167
167
@@ -243,6 +5354,9 @@ Heating to 190
169
169
169
+ 169
+ 170
+ 170
170
170
170
@@ -259,6 +5373,8 @@ Heating to 190
172
172
172
+ 172
+ 172
173
173
173
@@ -271,6 +5387,8 @@ Heating to 190
174
174
174
+ 174
+ 175
175
175
175
@@ -282,6 +5400,9 @@ Heating to 190
176
176
176
+ 176
+ 176
+ 176
177
177
177
@@ -316,6 +5437,4982 @@ Heating to 190
180
180
180
+ 181
+ 181
+ 181
+ 181
+ 181
+ 181
+ 181
+ 181
+ 182
+ 182
+ 182
+ 182
+ 182
+ 182
+ 183
+ 183
+ 183
+ 183
+ 183
+ 183
+ 183
+ 184
+ 184
+ 184
+ 184
+ 184
+ 184
+ 184
+ 185
+ 185
+ 185
+ 185
+ 185
+ 185
+ 185
+ 186
+ 186
+ 186
+ 186
+ 186
+ 186
+ 186
+ 187
+ 187
+ 187
+ 187
+ 187
+ 187
+ 187
+ 188
+ 188
+ 188
+ 188
+ 188
+ 188
+ 188
+ 188
+ 189
+04/09/2020 0:10:05
+cooling down
+04/09/2020 0:12:05
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 189
+ 189
+ 189
+ 189
+ 189
+ 189
+ 189
+ 188
+ 188
+ 188
+ 188
+ 187
+ 187
+ 187
+ 187
+ 186
+ 186
+ 186
+ 185
+ 185
+ 185
+ 184
+ 184
+ 184
+ 183
+ 183
+ 183
+ 182
+ 182
+ 181
+ 181
+ 181
+ 180
+ 180
+ 180
+ 179
+ 179
+ 179
+ 178
+ 178
+ 178
+ 177
+ 177
+ 177
+ 176
+ 176
+ 175
+ 175
+ 175
+ 174
+ 174
+ 174
+ 173
+ 173
+ 173
+ 172
+ 172
+ 172
+ 171
+ 171
+ 171
+ 170
+ 170
+ 169
+ 169
+ 169
+ 169
+ 168
+ 168
+ 168
+ 167
+ 167
+ 167
+ 167
+ 166
+ 166
+ 166
+ 165
+ 165
+ 165
+ 165
+ 164
+ 164
+ 164
+ 163
+ 163
+ 163
+ 163
+ 162
+ 162
+ 162
+ 162
+ 161
+ 161
+ 161
+ 161
+ 160
+ 160
+ 160
+ 160
+ 160
+ 159
+ 159
+ 159
+ 158
+ 158
+ 158
+ 158
+ 158
+ 157
+ 157
+ 157
+ 157
+ 157
+ 156
+ 156
+ 156
+ 156
+ 156
+ 155
+ 155
+ 155
+ 155
+ 154
+ 154
+ 154
+ 154
+ 154
+ 154
+ 153
+ 153
+ 153
+ 153
+ 153
+ 152
+ 152
+ 152
+ 152
+ 152
+ 151
+ 151
+ 151
+ 151
+ 151
+ 151
+ 150
+ 150
+ 150
+ 150
+ 150
+ 150
+ 150
+ 149
+ 149
+ 149
+ 149
+ 149
+ 149
+ 148
+ 148
+ 148
+ 148
+ 148
+ 148
+ 148
+ 147
+ 147
+ 147
+ 147
+ 147
+ 147
+ 146
+ 146
+ 146
+ 146
+ 146
+ 146
+ 146
+ 146
+ 145
+ 145
+ 145
+ 145
+ 145
+ 145
+ 145
+ 145
+ 144
+ 144
+ 144
+ 144
+ 144
+ 144
+ 144
+ 143
+ 143
+ 143
+ 143
+ 143
+ 143
+ 143
+ 143
+ 143
+ 142
+ 142
+ 142
+ 142
+ 142
+ 142
+ 142
+ 142
+ 141
+ 141
+ 141
+ 141
+ 141
+ 141
+ 141
+ 141
+ 141
+ 141
+ 140
+ 140
+ 140
+ 140
+ 140
+ 140
+ 140
+ 140
+ 140
+ 139
+ 139
+ 139
+ 139
+ 139
+ 139
+ 139
+ 139
+ 139
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 59
+04/09/2020 1:27:04
+Heating to 190
+04/09/2020 1:27:04
+ 59
+ 59
+ 59
+ 59
+ 59
+ 59
+ 59
+ 59
+ 59
+ 59
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 61
+ 61
+ 61
+ 62
+ 62
+ 63
+ 63
+ 63
+ 64
+ 64
+ 65
+ 65
+ 66
+ 66
+ 67
+ 67
+ 68
+ 68
+ 69
+ 69
+ 70
+ 70
+ 71
+ 71
+ 72
+ 72
+ 73
+ 74
+ 74
+ 75
+ 75
+ 76
+ 76
+ 77
+ 77
+ 78
+ 78
+ 79
+ 80
+ 80
+ 81
+ 81
+ 82
+ 82
+ 83
+ 83
+ 84
+ 84
+ 85
+ 85
+ 86
+ 86
+ 87
+ 87
+ 88
+ 88
+ 89
+ 89
+ 89
+ 90
+ 90
+ 91
+ 91
+ 92
+ 92
+ 93
+ 93
+ 94
+ 94
+ 94
+ 95
+ 95
+ 96
+ 96
+ 96
+ 97
+ 97
+ 98
+ 98
+ 98
+ 99
+ 99
+ 100
+ 100
+ 100
+ 101
+ 101
+ 102
+ 102
+ 102
+ 103
+ 103
+ 104
+ 104
+ 104
+ 105
+ 105
+ 105
+ 106
+ 106
+ 106
+ 107
+ 107
+ 107
+ 108
+ 108
+ 108
+ 109
+ 109
+ 109
+ 110
+ 110
+ 110
+ 111
+ 111
+ 111
+ 112
+ 112
+ 112
+ 113
+ 113
+ 113
+ 114
+ 114
+ 114
+ 114
+ 115
+ 115
+ 115
+ 116
+ 116
+ 117
+ 117
+ 117
+ 117
+ 118
+ 118
+ 118
+ 119
+ 119
+ 119
+ 119
+ 120
+ 120
+ 120
+ 121
+ 121
+ 121
+ 121
+ 122
+ 122
+ 122
+ 122
+ 123
+ 123
+ 123
+ 124
+ 124
+ 124
+ 124
+ 125
+ 125
+ 125
+ 125
+ 126
+ 126
+ 126
+ 126
+ 127
+ 127
+ 127
+ 127
+ 128
+ 128
+ 128
+ 128
+ 129
+ 129
+ 129
+ 129
+ 130
+ 130
+ 130
+ 130
+ 131
+ 131
+ 131
+ 131
+ 131
+ 132
+ 132
+ 132
+ 132
+ 133
+ 133
+ 133
+ 133
+ 134
+ 134
+ 134
+ 134
+ 135
+ 135
+ 135
+ 135
+ 135
+ 136
+ 136
+ 136
+ 136
+ 137
+ 137
+ 137
+ 137
+ 137
+ 138
+ 138
+ 138
+ 138
+ 138
+ 139
+ 139
+ 139
+ 139
+ 140
+ 140
+ 140
+ 140
+ 140
+ 141
+ 141
+ 141
+ 141
+ 141
+ 142
+ 142
+ 142
+ 142
+ 142
+ 143
+ 143
+ 143
+ 143
+ 143
+ 144
+ 144
+ 144
+ 144
+ 144
+ 145
+ 145
+ 145
+ 145
+ 145
+ 146
+ 146
+ 146
+ 146
+ 147
+ 147
+ 147
+ 147
+ 147
+ 148
+ 148
+ 148
+ 148
+ 148
+ 148
+ 149
+ 149
+ 149
+ 149
+ 149
+ 150
+ 150
+ 150
+ 150
+ 150
+ 150
+ 151
+ 151
+ 151
+ 151
+ 151
+ 152
+ 152
+ 152
+ 152
+ 152
+ 153
+ 153
+ 153
+ 153
+ 153
+ 153
+ 154
+ 154
+ 154
+ 154
+ 154
+ 155
+ 155
+ 155
+ 155
+ 155
+ 155
+ 156
+ 156
+ 156
+ 156
+ 156
+ 156
+ 157
+ 157
+ 157
+ 157
+ 157
+ 157
+ 158
+ 158
+ 158
+ 158
+ 158
+ 158
+ 159
+ 159
+ 159
+ 159
+ 159
+ 159
+ 160
+ 160
+ 160
+ 160
+ 160
+ 160
+ 161
+ 161
+ 161
+ 161
+ 161
+ 161
+ 162
+ 162
+ 162
+ 162
+ 162
+ 162
+ 163
+ 163
+ 163
+ 163
+ 163
+ 163
+ 163
+ 164
+ 164
+ 164
+ 164
+ 164
+ 164
+ 165
+ 165
+ 165
+ 165
+ 165
+ 165
+ 166
+ 166
+ 166
+ 166
+ 166
+ 166
+ 166
+ 167
+ 167
+ 167
+ 167
+ 167
+ 168
+ 168
+ 168
+ 168
+ 168
+ 168
+ 168
+ 169
+ 169
+ 169
+ 169
+ 169
+ 169
+ 169
+ 170
+ 170
+ 170
+ 170
+ 170
+ 170
+ 171
+ 171
+ 171
+ 171
+ 171
+ 171
+ 171
+ 172
+ 172
+ 172
+ 172
+ 172
+ 172
+ 172
+ 173
+ 173
+ 173
+ 173
+ 173
+ 173
+ 173
+ 174
+ 174
+ 174
+ 174
+ 174
+ 174
+ 174
+ 175
+ 175
+ 175
+ 175
+ 175
+ 175
+ 175
+ 176
+ 176
+ 176
+ 176
+ 176
+ 176
+ 176
+ 176
+ 176
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 178
+ 178
+ 178
+ 178
+ 178
+ 178
+ 178
+ 178
+ 178
+ 178
+ 179
+ 179
+ 179
+ 179
+ 179
+ 179
+ 179
+ 179
+ 179
+ 179
+ 180
+ 180
+ 180
+ 180
+ 180
+ 180
+ 180
180
181
181
@@ -345,6 +10442,9 @@ Heating to 190
184
184
184
+ 184
+ 184
+ 185
185
185
185
@@ -374,10 +10474,9 @@ Heating to 190
188
188
189
-24/06/2020 9:57:48
+04/09/2020 1:36:30
cooling down
-24/06/2020 9:59:48
- 190
+04/09/2020 1:38:30
190
190
190
@@ -410,7 +10509,6 @@ cooling down
186
186
186
- 186
185
185
185
@@ -423,7 +10521,7 @@ cooling down
182
182
182
- 182
+ 181
181
181
180
@@ -441,6 +10539,4992 @@ cooling down
176
176
176
+ 175
+ 175
+ 175
+ 174
+ 174
+ 174
+ 173
+ 173
+ 173
+ 172
+ 172
+ 172
+ 171
+ 171
+ 171
+ 170
+ 170
+ 169
+ 169
+ 169
+ 169
+ 168
+ 168
+ 168
+ 167
+ 167
+ 167
+ 167
+ 166
+ 166
+ 166
+ 165
+ 165
+ 165
+ 165
+ 164
+ 164
+ 164
+ 164
+ 163
+ 163
+ 163
+ 163
+ 162
+ 162
+ 162
+ 162
+ 161
+ 161
+ 161
+ 161
+ 160
+ 160
+ 160
+ 160
+ 160
+ 159
+ 159
+ 159
+ 159
+ 158
+ 158
+ 158
+ 158
+ 158
+ 157
+ 157
+ 157
+ 157
+ 157
+ 156
+ 156
+ 156
+ 156
+ 156
+ 155
+ 155
+ 155
+ 155
+ 155
+ 154
+ 154
+ 154
+ 154
+ 154
+ 153
+ 153
+ 153
+ 153
+ 153
+ 153
+ 152
+ 152
+ 152
+ 152
+ 152
+ 151
+ 151
+ 151
+ 151
+ 151
+ 151
+ 150
+ 150
+ 150
+ 150
+ 150
+ 150
+ 149
+ 149
+ 149
+ 149
+ 149
+ 149
+ 149
+ 148
+ 148
+ 148
+ 148
+ 148
+ 148
+ 148
+ 147
+ 147
+ 147
+ 147
+ 147
+ 147
+ 147
+ 146
+ 146
+ 146
+ 146
+ 146
+ 146
+ 146
+ 146
+ 145
+ 145
+ 145
+ 145
+ 145
+ 145
+ 145
+ 145
+ 144
+ 144
+ 144
+ 144
+ 144
+ 144
+ 144
+ 144
+ 144
+ 143
+ 143
+ 143
+ 143
+ 143
+ 143
+ 143
+ 143
+ 142
+ 142
+ 142
+ 142
+ 142
+ 142
+ 142
+ 142
+ 142
+ 142
+ 141
+ 141
+ 141
+ 141
+ 141
+ 141
+ 141
+ 141
+ 140
+ 140
+ 140
+ 140
+ 140
+ 140
+ 140
+ 140
+ 140
+ 140
+ 139
+ 139
+ 139
+ 139
+ 139
+ 139
+ 139
+ 139
+ 139
+ 139
+ 139
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 59
+04/09/2020 2:53:13
+Heating to 190
+04/09/2020 2:53:13
+ 59
+ 59
+ 59
+ 59
+ 59
+ 59
+ 59
+ 59
+ 59
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 61
+ 61
+ 61
+ 61
+ 62
+ 62
+ 63
+ 63
+ 63
+ 64
+ 64
+ 65
+ 65
+ 66
+ 66
+ 67
+ 67
+ 68
+ 68
+ 69
+ 69
+ 70
+ 70
+ 71
+ 71
+ 72
+ 72
+ 73
+ 73
+ 74
+ 75
+ 75
+ 76
+ 76
+ 77
+ 78
+ 78
+ 79
+ 79
+ 80
+ 80
+ 81
+ 81
+ 82
+ 82
+ 83
+ 83
+ 84
+ 84
+ 85
+ 85
+ 86
+ 86
+ 87
+ 87
+ 88
+ 88
+ 89
+ 89
+ 90
+ 90
+ 90
+ 91
+ 91
+ 92
+ 92
+ 93
+ 93
+ 93
+ 94
+ 94
+ 95
+ 95
+ 96
+ 96
+ 96
+ 97
+ 97
+ 98
+ 98
+ 98
+ 99
+ 99
+ 99
+ 100
+ 100
+ 101
+ 101
+ 101
+ 102
+ 102
+ 102
+ 103
+ 103
+ 103
+ 104
+ 104
+ 105
+ 105
+ 105
+ 106
+ 106
+ 106
+ 107
+ 107
+ 107
+ 108
+ 108
+ 108
+ 109
+ 109
+ 109
+ 109
+ 110
+ 110
+ 110
+ 111
+ 111
+ 111
+ 112
+ 112
+ 112
+ 113
+ 113
+ 113
+ 113
+ 114
+ 114
+ 114
+ 115
+ 115
+ 115
+ 115
+ 116
+ 116
+ 116
+ 117
+ 117
+ 117
+ 117
+ 118
+ 118
+ 118
+ 119
+ 119
+ 119
+ 119
+ 120
+ 120
+ 120
+ 121
+ 121
+ 121
+ 121
+ 122
+ 122
+ 122
+ 122
+ 123
+ 123
+ 123
+ 123
+ 124
+ 124
+ 124
+ 124
+ 125
+ 125
+ 125
+ 125
+ 126
+ 126
+ 126
+ 126
+ 127
+ 127
+ 127
+ 127
+ 128
+ 128
+ 128
+ 128
+ 129
+ 129
+ 129
+ 129
+ 130
+ 130
+ 130
+ 130
+ 130
+ 131
+ 131
+ 131
+ 131
+ 132
+ 132
+ 132
+ 132
+ 132
+ 133
+ 133
+ 133
+ 133
+ 134
+ 134
+ 134
+ 134
+ 134
+ 135
+ 135
+ 135
+ 135
+ 135
+ 136
+ 136
+ 136
+ 136
+ 136
+ 137
+ 137
+ 137
+ 137
+ 138
+ 138
+ 138
+ 138
+ 138
+ 139
+ 139
+ 139
+ 139
+ 139
+ 140
+ 140
+ 140
+ 140
+ 140
+ 141
+ 141
+ 141
+ 141
+ 141
+ 142
+ 142
+ 142
+ 142
+ 142
+ 142
+ 143
+ 143
+ 143
+ 143
+ 143
+ 144
+ 144
+ 144
+ 144
+ 144
+ 145
+ 145
+ 145
+ 145
+ 145
+ 146
+ 146
+ 146
+ 146
+ 146
+ 147
+ 147
+ 147
+ 147
+ 147
+ 147
+ 148
+ 148
+ 148
+ 148
+ 148
+ 149
+ 149
+ 149
+ 149
+ 149
+ 149
+ 150
+ 150
+ 150
+ 150
+ 150
+ 151
+ 151
+ 151
+ 151
+ 151
+ 151
+ 152
+ 152
+ 152
+ 152
+ 152
+ 152
+ 153
+ 153
+ 153
+ 153
+ 153
+ 153
+ 154
+ 154
+ 154
+ 154
+ 154
+ 154
+ 155
+ 155
+ 155
+ 155
+ 155
+ 155
+ 156
+ 156
+ 156
+ 156
+ 156
+ 156
+ 156
+ 157
+ 157
+ 157
+ 157
+ 157
+ 157
+ 158
+ 158
+ 158
+ 158
+ 158
+ 158
+ 159
+ 159
+ 159
+ 159
+ 159
+ 159
+ 160
+ 160
+ 160
+ 160
+ 160
+ 160
+ 161
+ 161
+ 161
+ 161
+ 161
+ 161
+ 161
+ 162
+ 162
+ 162
+ 162
+ 162
+ 162
+ 163
+ 163
+ 163
+ 163
+ 163
+ 163
+ 163
+ 164
+ 164
+ 164
+ 164
+ 164
+ 164
+ 165
+ 165
+ 165
+ 165
+ 165
+ 165
+ 165
+ 166
+ 166
+ 166
+ 166
+ 166
+ 166
+ 167
+ 167
+ 167
+ 167
+ 167
+ 167
+ 168
+ 168
+ 168
+ 168
+ 168
+ 168
+ 168
+ 169
+ 169
+ 169
+ 169
+ 169
+ 169
+ 169
+ 170
+ 170
+ 170
+ 170
+ 170
+ 170
+ 170
+ 171
+ 171
+ 171
+ 171
+ 171
+ 171
+ 171
+ 172
+ 172
+ 172
+ 172
+ 172
+ 172
+ 172
+ 173
+ 173
+ 173
+ 173
+ 173
+ 173
+ 173
+ 174
+ 174
+ 174
+ 174
+ 174
+ 174
+ 174
+ 175
+ 175
+ 175
+ 175
+ 175
+ 175
+ 175
+ 176
+ 176
+ 176
+ 176
+ 176
+ 176
+ 176
+ 176
+ 176
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 178
+ 178
+ 178
+ 178
+ 178
+ 178
+ 178
+ 178
+ 178
+ 178
+ 179
+ 179
+ 179
+ 179
+ 179
+ 179
+ 179
+ 179
+ 179
+ 180
+ 180
+ 180
+ 180
+ 180
+ 180
+ 180
+ 180
+ 180
+ 181
+ 181
+ 181
+ 181
+ 181
+ 181
+ 181
+ 181
+ 182
+ 182
+ 182
+ 182
+ 182
+ 182
+ 182
+ 183
+ 183
+ 183
+ 183
+ 183
+ 183
+ 183
+ 184
+ 184
+ 184
+ 184
+ 184
+ 184
+ 184
+ 184
+ 184
+ 185
+ 185
+ 185
+ 185
+ 185
+ 185
+ 185
+ 186
+ 186
+ 186
+ 186
+ 186
+ 186
+ 186
+ 186
+ 187
+ 187
+ 187
+ 187
+ 187
+ 187
+ 187
+ 188
+ 188
+ 188
+ 188
+ 188
+ 188
+ 188
+ 188
+ 189
+04/09/2020 3:02:59
+cooling down
+04/09/2020 3:04:59
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 189
+ 189
+ 189
+ 189
+ 189
+ 189
+ 189
+ 188
+ 188
+ 188
+ 188
+ 187
+ 187
+ 187
+ 187
+ 186
+ 186
+ 186
+ 186
+ 185
+ 185
+ 185
+ 184
+ 184
+ 184
+ 183
+ 183
+ 183
+ 182
+ 182
+ 182
+ 181
+ 181
+ 181
+ 180
+ 180
+ 180
+ 179
+ 179
+ 179
+ 178
+ 178
+ 178
+ 177
+ 177
+ 177
+ 176
+ 176
176
175
175
@@ -451,6 +15535,5046 @@ cooling down
173
173
173
+ 172
+ 172
+ 172
+ 171
+ 171
+ 170
+ 170
+ 170
+ 170
+ 169
+ 169
+ 169
+ 168
+ 168
+ 168
+ 167
+ 167
+ 167
+ 167
+ 166
+ 166
+ 166
+ 166
+ 165
+ 165
+ 165
+ 165
+ 164
+ 164
+ 164
+ 163
+ 163
+ 163
+ 163
+ 162
+ 162
+ 162
+ 162
+ 162
+ 161
+ 161
+ 161
+ 161
+ 160
+ 160
+ 160
+ 160
+ 159
+ 159
+ 159
+ 159
+ 159
+ 158
+ 158
+ 158
+ 158
+ 158
+ 157
+ 157
+ 157
+ 157
+ 157
+ 156
+ 156
+ 156
+ 156
+ 156
+ 155
+ 155
+ 155
+ 155
+ 155
+ 154
+ 154
+ 154
+ 154
+ 154
+ 154
+ 153
+ 153
+ 153
+ 153
+ 153
+ 152
+ 152
+ 152
+ 152
+ 152
+ 151
+ 151
+ 151
+ 151
+ 151
+ 151
+ 151
+ 150
+ 150
+ 150
+ 150
+ 150
+ 150
+ 149
+ 149
+ 149
+ 149
+ 149
+ 149
+ 149
+ 148
+ 148
+ 148
+ 148
+ 148
+ 148
+ 148
+ 147
+ 147
+ 147
+ 147
+ 147
+ 147
+ 147
+ 147
+ 146
+ 146
+ 146
+ 146
+ 146
+ 146
+ 146
+ 146
+ 145
+ 145
+ 145
+ 145
+ 145
+ 145
+ 145
+ 145
+ 144
+ 144
+ 144
+ 144
+ 144
+ 144
+ 144
+ 144
+ 144
+ 143
+ 143
+ 143
+ 143
+ 143
+ 143
+ 143
+ 143
+ 142
+ 142
+ 142
+ 142
+ 142
+ 142
+ 142
+ 142
+ 142
+ 141
+ 141
+ 141
+ 141
+ 141
+ 141
+ 141
+ 141
+ 141
+ 141
+ 140
+ 140
+ 140
+ 140
+ 140
+ 140
+ 140
+ 140
+ 140
+ 140
+ 139
+ 139
+ 139
+ 139
+ 139
+ 139
+ 139
+ 139
+ 139
+ 139
+ 139
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 59
+04/09/2020 4:20:17
+Heating to 190
+04/09/2020 4:20:17
+ 59
+ 59
+ 59
+ 59
+ 59
+ 59
+ 59
+ 59
+ 59
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 61
+ 61
+ 61
+ 61
+ 62
+ 62
+ 62
+ 63
+ 63
+ 64
+ 64
+ 64
+ 65
+ 65
+ 66
+ 66
+ 67
+ 67
+ 68
+ 68
+ 69
+ 69
+ 70
+ 70
+ 71
+ 71
+ 72
+ 72
+ 73
+ 74
+ 74
+ 75
+ 75
+ 76
+ 76
+ 77
+ 77
+ 78
+ 78
+ 79
+ 79
+ 80
+ 80
+ 81
+ 81
+ 82
+ 82
+ 83
+ 83
+ 84
+ 84
+ 85
+ 85
+ 86
+ 86
+ 87
+ 87
+ 88
+ 88
+ 89
+ 89
+ 89
+ 90
+ 90
+ 91
+ 91
+ 92
+ 92
+ 93
+ 93
+ 93
+ 94
+ 94
+ 95
+ 95
+ 95
+ 96
+ 96
+ 97
+ 97
+ 97
+ 98
+ 98
+ 99
+ 99
+ 99
+ 100
+ 100
+ 100
+ 101
+ 101
+ 102
+ 102
+ 102
+ 103
+ 103
+ 103
+ 104
+ 104
+ 104
+ 105
+ 105
+ 105
+ 106
+ 106
+ 107
+ 107
+ 107
+ 108
+ 108
+ 108
+ 109
+ 109
+ 109
+ 110
+ 110
+ 110
+ 111
+ 111
+ 111
+ 112
+ 112
+ 112
+ 112
+ 113
+ 113
+ 113
+ 114
+ 114
+ 114
+ 115
+ 115
+ 115
+ 115
+ 116
+ 116
+ 116
+ 117
+ 117
+ 117
+ 117
+ 118
+ 118
+ 118
+ 118
+ 119
+ 119
+ 119
+ 120
+ 120
+ 120
+ 120
+ 121
+ 121
+ 121
+ 121
+ 122
+ 122
+ 122
+ 122
+ 123
+ 123
+ 123
+ 123
+ 124
+ 124
+ 124
+ 124
+ 125
+ 125
+ 125
+ 125
+ 126
+ 126
+ 126
+ 126
+ 127
+ 127
+ 127
+ 127
+ 127
+ 128
+ 128
+ 128
+ 128
+ 129
+ 129
+ 129
+ 129
+ 130
+ 130
+ 130
+ 130
+ 130
+ 131
+ 131
+ 131
+ 131
+ 132
+ 132
+ 132
+ 132
+ 132
+ 133
+ 133
+ 133
+ 133
+ 133
+ 134
+ 134
+ 134
+ 134
+ 134
+ 135
+ 135
+ 135
+ 135
+ 136
+ 136
+ 136
+ 136
+ 136
+ 137
+ 137
+ 137
+ 137
+ 137
+ 138
+ 138
+ 138
+ 138
+ 138
+ 139
+ 139
+ 139
+ 139
+ 139
+ 140
+ 140
+ 140
+ 140
+ 140
+ 141
+ 141
+ 141
+ 141
+ 142
+ 142
+ 142
+ 142
+ 142
+ 142
+ 143
+ 143
+ 143
+ 143
+ 143
+ 144
+ 144
+ 144
+ 144
+ 144
+ 144
+ 145
+ 145
+ 145
+ 145
+ 145
+ 146
+ 146
+ 146
+ 146
+ 146
+ 146
+ 147
+ 147
+ 147
+ 147
+ 147
+ 148
+ 148
+ 148
+ 148
+ 148
+ 148
+ 149
+ 149
+ 149
+ 149
+ 149
+ 149
+ 150
+ 150
+ 150
+ 150
+ 150
+ 150
+ 151
+ 151
+ 151
+ 151
+ 151
+ 152
+ 152
+ 152
+ 152
+ 152
+ 152
+ 153
+ 153
+ 153
+ 153
+ 153
+ 153
+ 154
+ 154
+ 154
+ 154
+ 154
+ 154
+ 155
+ 155
+ 155
+ 155
+ 155
+ 156
+ 156
+ 156
+ 156
+ 156
+ 156
+ 156
+ 157
+ 157
+ 157
+ 157
+ 157
+ 157
+ 158
+ 158
+ 158
+ 158
+ 158
+ 158
+ 158
+ 159
+ 159
+ 159
+ 159
+ 159
+ 159
+ 160
+ 160
+ 160
+ 160
+ 160
+ 160
+ 160
+ 161
+ 161
+ 161
+ 161
+ 161
+ 161
+ 161
+ 162
+ 162
+ 162
+ 162
+ 162
+ 162
+ 163
+ 163
+ 163
+ 163
+ 163
+ 163
+ 163
+ 164
+ 164
+ 164
+ 164
+ 164
+ 164
+ 164
+ 165
+ 165
+ 165
+ 165
+ 165
+ 166
+ 166
+ 166
+ 166
+ 166
+ 166
+ 166
+ 167
+ 167
+ 167
+ 167
+ 167
+ 167
+ 167
+ 168
+ 168
+ 168
+ 168
+ 168
+ 168
+ 168
+ 169
+ 169
+ 169
+ 169
+ 169
+ 169
+ 169
+ 170
+ 170
+ 170
+ 170
+ 170
+ 170
+ 170
+ 171
+ 171
+ 171
+ 171
+ 171
+ 171
+ 171
+ 172
+ 172
+ 172
+ 172
+ 172
+ 172
+ 172
+ 173
+ 173
+ 173
+ 173
+ 173
+ 173
+ 173
+ 174
+ 174
+ 174
+ 174
+ 174
+ 174
+ 174
+ 175
+ 175
+ 175
+ 175
+ 175
+ 175
+ 175
+ 175
+ 176
+ 176
+ 176
+ 176
+ 176
+ 176
+ 176
+ 176
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 178
+ 178
+ 178
+ 178
+ 178
+ 178
+ 178
+ 178
+ 178
+ 178
+ 178
+ 179
+ 179
+ 179
+ 179
+ 179
+ 179
+ 179
+ 179
+ 179
+ 179
+ 180
+ 180
+ 180
+ 180
+ 180
+ 180
+ 180
+ 180
+ 181
+ 181
+ 181
+ 181
+ 181
+ 181
+ 181
+ 181
+ 181
+ 182
+ 182
+ 182
+ 182
+ 182
+ 182
+ 182
+ 182
+ 183
+ 183
+ 183
+ 183
+ 183
+ 183
+ 183
+ 184
+ 184
+ 184
+ 184
+ 184
+ 184
+ 184
+ 185
+ 185
+ 185
+ 185
+ 185
+ 185
+ 185
+ 186
+ 186
+ 186
+ 186
+ 186
+ 186
+ 186
+ 186
+ 187
+ 187
+ 187
+ 187
+ 187
+ 187
+ 187
+ 187
+ 188
+ 188
+ 188
+ 188
+ 188
+ 188
+ 188
+ 188
+ 189
+04/09/2020 4:30:11
+cooling down
+04/09/2020 4:32:11
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 189
+ 189
+ 189
+ 189
+ 189
+ 189
+ 189
+ 188
+ 188
+ 188
+ 188
+ 187
+ 187
+ 187
+ 187
+ 186
+ 186
+ 186
+ 186
+ 185
+ 185
+ 185
+ 184
+ 184
+ 184
+ 183
+ 183
+ 183
+ 182
+ 182
+ 182
+ 181
+ 181
+ 181
+ 180
+ 180
+ 180
+ 179
+ 179
+ 179
+ 178
+ 178
+ 178
+ 177
+ 177
+ 177
+ 176
+ 176
+ 176
+ 175
+ 175
+ 175
+ 174
+ 174
+ 174
+ 173
+ 173
173
172
172
@@ -465,7 +20589,6 @@ cooling down
169
169
169
- 169
168
168
168
@@ -476,7 +20599,6 @@ cooling down
166
166
166
- 166
165
165
165
@@ -489,7 +20611,6 @@ cooling down
163
163
163
- 163
162
162
162
@@ -512,8 +20633,6 @@ cooling down
158
158
158
- 158
- 158
157
157
157
@@ -542,15 +20661,12 @@ cooling down
153
153
153
- 153
152
152
152
152
152
152
- 152
- 151
151
151
151
@@ -569,8 +20685,6 @@ cooling down
149
149
149
- 149
- 149
148
148
148
@@ -579,8 +20693,6 @@ cooling down
148
148
148
- 148
- 147
147
147
147
@@ -588,8 +20700,6 @@ cooling down
147
147
147
- 147
- 146
146
146
146
@@ -606,8 +20716,6 @@ cooling down
145
145
145
- 145
- 144
144
144
144
@@ -626,9 +20734,6 @@ cooling down
143
143
143
- 143
- 142
- 142
142
142
142
@@ -656,3 +20761,4367 @@ cooling down
140
140
140
+ 140
+ 140
+ 140
+ 139
+ 139
+ 139
+ 139
+ 139
+ 139
+ 139
+ 139
+ 139
+ 139
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 59
+04/09/2020 5:47:35
+Heating to 190
+04/09/2020 5:47:35
+ 59
+ 59
+ 59
+ 59
+ 59
+ 59
+ 59
+ 59
+ 59
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 61
+ 61
+ 61
+ 62
+ 62
+ 62
+ 63
+ 63
+ 63
+ 64
+ 64
+ 65
+ 65
+ 66
+ 66
+ 67
+ 67
+ 68
+ 68
+ 69
+ 69
+ 70
+ 70
+ 71
+ 71
+ 72
+ 72
+ 73
+ 73
+ 74
+ 75
+ 75
+ 76
+ 76
+ 77
+ 77
+ 78
+ 78
+ 79
+ 79
+ 80
+ 80
+ 81
+ 81
+ 82
+ 82
+ 83
+ 83
+ 84
+ 84
+ 85
+ 85
+ 86
+ 86
+ 87
+ 87
+ 88
+ 88
+ 88
+ 89
+ 90
+ 90
+ 91
+ 91
+ 92
+ 92
+ 92
+ 93
+ 93
+ 94
+ 94
+ 94
+ 95
+ 95
+ 96
+ 96
+ 96
+ 97
+ 97
+ 98
+ 98
+ 98
+ 99
+ 99
+ 100
+ 100
+ 100
+ 101
+ 101
+ 101
+ 102
+ 102
+ 102
+ 103
+ 103
+ 104
+ 104
+ 104
+ 105
+ 105
+ 105
+ 106
+ 106
+ 106
+ 107
+ 107
+ 107
+ 108
+ 108
+ 108
+ 109
+ 109
+ 109
+ 109
+ 110
+ 110
+ 110
+ 111
+ 111
+ 111
+ 112
+ 112
+ 112
+ 113
+ 113
+ 113
+ 113
+ 114
+ 114
+ 114
+ 115
+ 115
+ 115
+ 115
+ 116
+ 116
+ 116
+ 117
+ 117
+ 117
+ 117
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset1.CSV b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset1.CSV
new file mode 100644
index 000000000..6d1a7862c
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset1.CSV
@@ -0,0 +1,1600 @@
+06/07/2020 9:43:12
+Heating to 190
+06/07/2020 9:43:12
+ 23
+ 23
+ 23
+ 23
+ 23
+ 23
+ 23
+ 23
+ 23
+ 23
+ 23
+ 23
+ 23
+ 23
+ 23
+ 23
+ 23
+ 23
+ 23
+ 23
+ 23
+ 23
+ 23
+ 23
+ 23
+ 23
+ 24
+ 24
+ 24
+ 24
+ 24
+ 24
+ 25
+ 25
+ 25
+ 26
+ 26
+ 26
+ 27
+ 27
+ 28
+ 28
+ 29
+ 29
+ 30
+ 30
+ 31
+ 31
+ 32
+ 32
+ 33
+ 33
+ 34
+ 34
+ 35
+ 35
+ 36
+ 37
+ 37
+ 38
+ 38
+ 39
+ 39
+ 40
+ 41
+ 41
+ 42
+ 42
+ 43
+ 43
+ 44
+ 44
+ 45
+ 46
+ 46
+ 47
+ 47
+ 48
+ 48
+ 49
+ 49
+ 50
+ 50
+ 51
+ 52
+ 52
+ 53
+ 53
+ 54
+ 54
+ 55
+ 55
+ 56
+ 56
+ 56
+ 57
+ 57
+ 58
+ 58
+ 59
+ 59
+ 60
+ 60
+ 60
+ 61
+ 61
+ 62
+ 62
+ 63
+ 63
+ 63
+ 64
+ 64
+ 65
+ 65
+ 65
+ 66
+ 66
+ 66
+ 67
+ 67
+ 68
+ 68
+ 68
+ 69
+ 69
+ 69
+ 70
+ 70
+ 71
+ 71
+ 71
+ 72
+ 72
+ 72
+ 73
+ 73
+ 73
+ 74
+ 74
+ 74
+ 75
+ 75
+ 75
+ 76
+ 76
+ 76
+ 77
+ 77
+ 77
+ 78
+ 78
+ 78
+ 79
+ 79
+ 79
+ 79
+ 80
+ 80
+ 80
+ 81
+ 81
+ 81
+ 82
+ 82
+ 82
+ 82
+ 83
+ 83
+ 83
+ 84
+ 84
+ 84
+ 84
+ 85
+ 85
+ 85
+ 86
+ 86
+ 86
+ 86
+ 87
+ 87
+ 87
+ 88
+ 88
+ 88
+ 88
+ 89
+ 89
+ 89
+ 89
+ 90
+ 90
+ 90
+ 91
+ 91
+ 91
+ 92
+ 92
+ 92
+ 92
+ 93
+ 93
+ 93
+ 93
+ 94
+ 94
+ 94
+ 94
+ 95
+ 95
+ 95
+ 95
+ 96
+ 96
+ 96
+ 96
+ 97
+ 97
+ 97
+ 97
+ 98
+ 98
+ 98
+ 98
+ 98
+ 99
+ 99
+ 99
+ 99
+ 100
+ 100
+ 100
+ 100
+ 101
+ 101
+ 101
+ 101
+ 102
+ 102
+ 102
+ 102
+ 102
+ 103
+ 103
+ 103
+ 103
+ 104
+ 104
+ 104
+ 104
+ 105
+ 105
+ 105
+ 105
+ 105
+ 106
+ 106
+ 106
+ 106
+ 106
+ 107
+ 107
+ 107
+ 107
+ 107
+ 108
+ 108
+ 108
+ 108
+ 108
+ 109
+ 109
+ 109
+ 109
+ 110
+ 110
+ 110
+ 110
+ 110
+ 111
+ 111
+ 111
+ 111
+ 111
+ 112
+ 112
+ 112
+ 112
+ 112
+ 113
+ 113
+ 113
+ 113
+ 113
+ 114
+ 114
+ 114
+ 114
+ 114
+ 115
+ 115
+ 115
+ 115
+ 115
+ 116
+ 116
+ 116
+ 116
+ 116
+ 117
+ 117
+ 117
+ 117
+ 117
+ 118
+ 118
+ 118
+ 118
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 120
+ 120
+ 120
+ 120
+ 120
+ 121
+ 121
+ 121
+ 121
+ 121
+ 122
+ 122
+ 122
+ 122
+ 122
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 124
+ 124
+ 124
+ 124
+ 124
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 126
+ 126
+ 126
+ 126
+ 126
+ 127
+ 127
+ 127
+ 127
+ 127
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 129
+ 129
+ 129
+ 129
+ 129
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 133
+ 133
+ 133
+ 133
+ 133
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 139
+ 139
+ 139
+ 139
+ 139
+ 139
+ 140
+ 140
+ 140
+ 140
+ 140
+ 140
+ 141
+ 141
+ 141
+ 141
+ 141
+ 141
+ 142
+ 142
+ 142
+ 142
+ 142
+ 142
+ 143
+ 143
+ 143
+ 143
+ 143
+ 143
+ 144
+ 144
+ 144
+ 144
+ 144
+ 144
+ 145
+ 145
+ 145
+ 145
+ 145
+ 145
+ 145
+ 146
+ 146
+ 146
+ 146
+ 146
+ 146
+ 147
+ 147
+ 147
+ 147
+ 147
+ 147
+ 147
+ 148
+ 148
+ 148
+ 148
+ 148
+ 148
+ 149
+ 149
+ 149
+ 149
+ 149
+ 149
+ 150
+ 150
+ 150
+ 150
+ 150
+ 150
+ 150
+ 151
+ 151
+ 151
+ 151
+ 151
+ 151
+ 151
+ 152
+ 152
+ 152
+ 152
+ 152
+ 152
+ 152
+ 153
+ 153
+ 153
+ 153
+ 153
+ 153
+ 153
+ 154
+ 154
+ 154
+ 154
+ 154
+ 154
+ 155
+ 155
+ 155
+ 155
+ 155
+ 155
+ 155
+ 156
+ 156
+ 156
+ 156
+ 156
+ 156
+ 156
+ 157
+ 157
+ 157
+ 157
+ 157
+ 157
+ 157
+ 158
+ 158
+ 158
+ 158
+ 158
+ 158
+ 158
+ 159
+ 159
+ 159
+ 159
+ 159
+ 159
+ 160
+ 160
+ 160
+ 160
+ 160
+ 160
+ 160
+ 161
+ 161
+ 161
+ 161
+ 161
+ 161
+ 161
+ 162
+ 162
+ 162
+ 162
+ 162
+ 162
+ 162
+ 163
+ 163
+ 163
+ 163
+ 163
+ 163
+ 163
+ 164
+ 164
+ 164
+ 164
+ 164
+ 164
+ 164
+ 165
+ 165
+ 165
+ 165
+ 165
+ 165
+ 165
+ 166
+ 166
+ 166
+ 166
+ 166
+ 166
+ 166
+ 166
+ 167
+ 167
+ 167
+ 167
+ 167
+ 167
+ 167
+ 167
+ 168
+ 168
+ 168
+ 168
+ 168
+ 168
+ 168
+ 169
+ 169
+ 169
+ 169
+ 169
+ 169
+ 169
+ 170
+ 170
+ 170
+ 170
+ 170
+ 170
+ 170
+ 170
+ 171
+ 171
+ 171
+ 171
+ 171
+ 171
+ 171
+ 172
+ 172
+ 172
+ 172
+ 172
+ 172
+ 172
+ 172
+ 173
+ 173
+ 173
+ 173
+ 173
+ 173
+ 173
+ 174
+ 174
+ 174
+ 174
+ 174
+ 174
+ 174
+ 175
+ 175
+ 175
+ 175
+ 175
+ 175
+ 175
+ 175
+ 176
+ 176
+ 176
+ 176
+ 176
+ 176
+ 176
+ 176
+ 176
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 178
+ 178
+ 178
+ 178
+ 178
+ 178
+ 178
+ 178
+ 178
+ 178
+ 178
+ 179
+ 179
+ 179
+ 179
+ 179
+ 179
+ 179
+ 179
+ 179
+ 179
+ 180
+ 180
+ 180
+ 180
+ 180
+ 180
+ 180
+ 180
+ 180
+ 180
+ 181
+ 181
+ 181
+ 181
+ 181
+ 181
+ 181
+ 181
+ 181
+ 181
+ 182
+ 182
+ 182
+ 182
+ 182
+ 182
+ 182
+ 182
+ 182
+ 182
+ 183
+ 183
+ 183
+ 183
+ 183
+ 183
+ 183
+ 183
+ 183
+ 183
+ 184
+ 184
+ 184
+ 184
+ 184
+ 184
+ 184
+ 184
+ 184
+ 185
+ 185
+ 185
+ 185
+ 185
+ 185
+ 185
+ 185
+ 185
+ 185
+ 186
+ 186
+ 186
+ 186
+ 186
+ 186
+ 186
+ 186
+ 186
+ 187
+ 187
+ 187
+ 187
+ 187
+ 187
+ 187
+ 187
+ 187
+ 188
+ 188
+ 188
+ 188
+ 188
+ 188
+ 188
+ 188
+ 188
+ 188
+ 189
+06/07/2020 9:56:54
+cooling down
+06/07/2020 9:58:54
+ 191
+ 191
+ 191
+ 191
+ 191
+ 191
+ 191
+ 191
+ 191
+ 191
+ 191
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 190
+ 189
+ 189
+ 189
+ 189
+ 188
+ 188
+ 188
+ 188
+ 187
+ 187
+ 186
+ 186
+ 186
+ 185
+ 185
+ 185
+ 184
+ 184
+ 184
+ 183
+ 183
+ 183
+ 182
+ 182
+ 182
+ 181
+ 181
+ 181
+ 180
+ 180
+ 179
+ 179
+ 179
+ 178
+ 178
+ 178
+ 177
+ 177
+ 177
+ 176
+ 176
+ 175
+ 175
+ 175
+ 174
+ 174
+ 174
+ 173
+ 173
+ 173
+ 172
+ 172
+ 172
+ 171
+ 171
+ 171
+ 170
+ 170
+ 170
+ 169
+ 169
+ 169
+ 168
+ 168
+ 168
+ 167
+ 167
+ 167
+ 167
+ 166
+ 166
+ 166
+ 165
+ 165
+ 165
+ 164
+ 164
+ 164
+ 164
+ 163
+ 163
+ 163
+ 162
+ 162
+ 162
+ 161
+ 161
+ 161
+ 161
+ 160
+ 160
+ 160
+ 160
+ 159
+ 159
+ 159
+ 159
+ 158
+ 158
+ 158
+ 158
+ 157
+ 157
+ 157
+ 157
+ 157
+ 156
+ 156
+ 156
+ 156
+ 155
+ 155
+ 155
+ 155
+ 155
+ 154
+ 154
+ 154
+ 154
+ 153
+ 153
+ 153
+ 153
+ 153
+ 152
+ 152
+ 152
+ 152
+ 152
+ 152
+ 151
+ 151
+ 151
+ 151
+ 151
+ 150
+ 150
+ 150
+ 150
+ 150
+ 149
+ 149
+ 149
+ 149
+ 149
+ 149
+ 148
+ 148
+ 148
+ 148
+ 148
+ 148
+ 147
+ 147
+ 147
+ 147
+ 147
+ 147
+ 146
+ 146
+ 146
+ 146
+ 146
+ 146
+ 145
+ 145
+ 145
+ 145
+ 145
+ 145
+ 145
+ 144
+ 144
+ 144
+ 144
+ 144
+ 144
+ 144
+ 143
+ 143
+ 143
+ 143
+ 143
+ 143
+ 143
+ 142
+ 142
+ 142
+ 142
+ 142
+ 142
+ 142
+ 142
+ 141
+ 141
+ 141
+ 141
+ 141
+ 141
+ 141
+ 141
+ 141
+ 140
+ 140
+ 140
+ 140
+ 140
+ 140
+ 140
+ 140
+ 139
+ 139
+ 139
+ 139
+ 139
+ 139
+ 139
+ 139
+ 139
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset111.CSV b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset111.CSV
new file mode 100644
index 000000000..4ab057b1c
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/Dryer_Tset111.CSV
@@ -0,0 +1,29654 @@
+16/08/2020 18:49:18
+Heating to 190
+16/08/2020 18:49:18
+ 24
+ 24
+ 24
+ 24
+ 24
+ 24
+ 24
+ 24
+ 24
+ 24
+ 24
+ 24
+ 24
+ 25
+ 25
+ 25
+ 25
+ 25
+ 26
+ 26
+ 26
+ 26
+ 27
+ 27
+ 27
+ 28
+ 28
+ 29
+ 29
+ 29
+ 30
+ 30
+ 31
+ 31
+ 32
+ 32
+ 33
+ 33
+ 33
+ 34
+ 34
+ 35
+ 36
+ 36
+ 37
+ 38
+ 38
+ 39
+ 39
+ 40
+ 40
+ 41
+ 41
+ 42
+ 42
+ 43
+ 43
+ 44
+ 44
+ 45
+ 45
+ 46
+ 46
+ 47
+ 47
+ 48
+ 48
+ 49
+ 49
+ 50
+ 50
+ 51
+ 51
+ 52
+ 52
+ 53
+ 53
+ 53
+ 54
+ 54
+ 55
+ 55
+ 56
+ 56
+ 57
+ 57
+ 57
+ 58
+ 58
+ 59
+ 59
+ 60
+ 60
+ 60
+ 61
+ 61
+ 62
+ 62
+ 63
+ 63
+ 63
+ 64
+ 64
+ 65
+ 65
+ 66
+ 66
+ 66
+ 67
+ 67
+ 67
+ 68
+ 68
+ 69
+ 69
+ 69
+ 70
+ 70
+ 70
+ 71
+ 71
+ 71
+ 72
+ 72
+ 72
+ 73
+ 73
+ 73
+ 74
+ 74
+ 74
+ 75
+ 75
+ 75
+ 76
+ 76
+ 76
+ 77
+ 77
+ 77
+ 78
+ 78
+ 78
+ 79
+ 79
+ 79
+ 79
+ 80
+ 80
+ 80
+ 81
+ 81
+ 81
+ 81
+ 82
+ 82
+ 82
+ 83
+ 83
+ 83
+ 84
+ 84
+ 84
+ 84
+ 85
+ 85
+ 85
+ 85
+ 86
+ 86
+ 86
+ 87
+ 87
+ 87
+ 87
+ 88
+ 88
+ 88
+ 88
+ 89
+ 89
+ 89
+ 89
+ 90
+ 90
+ 90
+ 91
+ 91
+ 91
+ 91
+ 92
+ 92
+ 92
+ 92
+ 93
+ 93
+ 93
+ 93
+ 94
+ 94
+ 94
+ 94
+ 95
+ 95
+ 95
+ 95
+ 95
+ 96
+ 96
+ 96
+ 96
+ 97
+ 97
+ 97
+ 97
+ 98
+ 98
+ 98
+ 98
+ 98
+ 99
+ 99
+ 99
+ 99
+ 100
+ 100
+ 100
+ 100
+ 100
+ 101
+ 101
+ 101
+ 101
+ 102
+ 102
+ 102
+ 102
+ 102
+ 103
+ 103
+ 103
+ 103
+ 104
+ 104
+ 104
+ 104
+ 104
+ 105
+ 105
+ 105
+ 105
+ 105
+ 106
+ 106
+ 106
+ 106
+ 106
+ 107
+ 107
+ 107
+ 107
+ 107
+ 108
+ 108
+ 108
+ 108
+ 108
+ 109
+ 109
+ 109
+ 109
+ 110
+ 110
+ 110
+ 110
+ 110
+ 111
+ 111
+ 111
+ 111
+ 111
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 113
+ 113
+ 113
+ 113
+ 113
+ 114
+ 114
+ 114
+ 114
+ 114
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 116
+ 116
+ 116
+ 116
+ 116
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 118
+ 118
+ 118
+ 118
+ 118
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 121
+ 121
+ 121
+ 121
+ 121
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 132
+ 132
+ 132
+ 132
+ 132
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 139
+ 139
+ 139
+ 139
+ 139
+ 139
+ 139
+ 140
+ 140
+ 140
+ 140
+ 140
+ 140
+ 140
+ 141
+ 141
+ 141
+ 141
+ 141
+ 141
+ 141
+ 142
+ 142
+ 142
+ 142
+ 142
+ 142
+ 142
+ 143
+ 143
+ 143
+ 143
+ 143
+ 143
+ 143
+ 143
+ 144
+ 144
+ 144
+ 144
+ 144
+ 144
+ 144
+ 145
+ 145
+ 145
+ 145
+ 145
+ 145
+ 146
+ 146
+ 146
+ 146
+ 146
+ 146
+ 146
+ 147
+ 147
+ 147
+ 147
+ 147
+ 147
+ 147
+ 147
+ 148
+ 148
+ 148
+ 148
+ 148
+ 148
+ 148
+ 148
+ 149
+ 149
+ 149
+ 149
+ 149
+ 149
+ 149
+ 150
+ 150
+ 150
+ 150
+ 150
+ 150
+ 150
+ 150
+ 151
+ 151
+ 151
+ 151
+ 151
+ 151
+ 151
+ 151
+ 152
+ 152
+ 152
+ 152
+ 152
+ 152
+ 152
+ 152
+ 153
+ 153
+ 153
+ 153
+ 153
+ 153
+ 154
+ 154
+ 154
+ 154
+ 154
+ 154
+ 154
+ 154
+ 155
+ 155
+ 155
+ 155
+ 155
+ 155
+ 155
+ 155
+ 155
+ 156
+ 156
+ 156
+ 156
+ 156
+ 156
+ 156
+ 156
+ 156
+ 157
+ 157
+ 157
+ 157
+ 157
+ 157
+ 157
+ 157
+ 157
+ 158
+ 158
+ 158
+ 158
+ 158
+ 158
+ 158
+ 158
+ 158
+ 159
+ 159
+ 159
+ 159
+ 159
+ 159
+ 159
+ 159
+ 159
+ 160
+ 160
+ 160
+ 160
+ 160
+ 160
+ 160
+ 160
+ 160
+ 161
+ 161
+ 161
+ 161
+ 161
+ 161
+ 161
+ 161
+ 161
+ 162
+ 162
+ 162
+ 162
+ 162
+ 162
+ 162
+ 162
+ 163
+ 163
+ 163
+ 163
+ 163
+ 163
+ 163
+ 163
+ 164
+ 164
+ 164
+ 164
+ 164
+ 164
+ 164
+ 164
+ 164
+ 165
+ 165
+ 165
+ 165
+ 165
+ 165
+ 165
+ 165
+ 165
+ 166
+ 166
+ 166
+ 166
+ 166
+ 166
+ 166
+ 166
+ 167
+ 167
+ 167
+ 167
+ 167
+ 167
+ 167
+ 167
+ 167
+ 168
+ 168
+ 168
+ 168
+ 168
+ 168
+ 168
+ 168
+ 168
+ 169
+ 169
+ 169
+ 169
+ 169
+ 169
+ 169
+ 169
+ 169
+ 170
+ 170
+ 170
+ 170
+ 170
+ 170
+ 170
+ 170
+ 170
+ 171
+ 171
+ 171
+ 171
+ 171
+ 171
+ 171
+ 171
+ 171
+ 172
+ 172
+ 172
+ 172
+ 172
+ 172
+ 172
+ 172
+ 172
+ 173
+ 173
+ 173
+ 173
+ 173
+ 173
+ 173
+ 173
+ 173
+ 174
+ 174
+ 174
+ 174
+ 174
+ 174
+ 174
+ 174
+ 174
+ 174
+ 175
+ 175
+ 175
+ 175
+ 175
+ 175
+ 175
+ 175
+ 175
+ 175
+ 176
+ 176
+ 176
+ 176
+ 176
+ 176
+ 176
+ 176
+ 176
+ 176
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 178
+ 178
+ 178
+ 178
+ 178
+ 178
+ 178
+ 178
+ 178
+ 178
+ 179
+ 179
+ 179
+ 179
+ 179
+ 179
+ 179
+ 179
+ 179
+ 180
+ 180
+ 180
+ 180
+ 180
+ 180
+ 180
+ 180
+ 180
+ 180
+ 181
+ 181
+ 181
+ 181
+ 181
+ 181
+ 181
+ 181
+ 181
+ 182
+ 182
+ 182
+ 182
+ 182
+ 182
+ 182
+ 182
+ 182
+ 183
+ 183
+ 183
+ 183
+ 183
+ 183
+ 183
+ 183
+ 183
+ 183
+ 184
+ 184
+ 184
+ 184
+ 184
+ 184
+ 184
+ 184
+ 184
+ 185
+ 185
+ 185
+ 185
+ 185
+ 185
+ 185
+ 185
+ 185
+ 185
+ 186
+ 186
+ 186
+ 186
+ 186
+ 186
+ 186
+ 186
+ 186
+ 186
+ 187
+ 187
+ 187
+ 187
+ 187
+ 187
+ 187
+ 187
+ 187
+ 188
+ 188
+ 188
+ 188
+ 188
+ 188
+ 188
+ 188
+ 188
+ 188
+ 189
+16/08/2020 19:04:08
+cooling down
+16/08/2020 19:06:08
+ 193
+ 193
+ 193
+ 193
+ 193
+ 193
+ 192
+ 192
+ 192
+ 192
+ 192
+ 192
+ 192
+ 192
+ 191
+ 191
+ 191
+ 191
+ 191
+ 191
+ 190
+ 190
+ 190
+ 190
+ 190
+ 189
+ 189
+ 189
+ 189
+ 188
+ 188
+ 188
+ 188
+ 187
+ 187
+ 187
+ 186
+ 186
+ 186
+ 185
+ 185
+ 185
+ 185
+ 184
+ 184
+ 184
+ 183
+ 183
+ 183
+ 182
+ 182
+ 182
+ 181
+ 181
+ 181
+ 180
+ 180
+ 180
+ 179
+ 179
+ 179
+ 178
+ 178
+ 178
+ 178
+ 177
+ 177
+ 176
+ 176
+ 176
+ 175
+ 175
+ 175
+ 174
+ 174
+ 174
+ 174
+ 173
+ 173
+ 173
+ 172
+ 172
+ 172
+ 171
+ 171
+ 171
+ 171
+ 170
+ 170
+ 170
+ 169
+ 169
+ 169
+ 169
+ 168
+ 168
+ 168
+ 167
+ 167
+ 167
+ 167
+ 166
+ 166
+ 166
+ 166
+ 165
+ 165
+ 165
+ 165
+ 164
+ 164
+ 164
+ 164
+ 163
+ 163
+ 163
+ 163
+ 162
+ 162
+ 162
+ 162
+ 161
+ 161
+ 161
+ 161
+ 160
+ 160
+ 160
+ 160
+ 159
+ 159
+ 159
+ 159
+ 158
+ 158
+ 158
+ 158
+ 158
+ 157
+ 157
+ 157
+ 157
+ 157
+ 156
+ 156
+ 156
+ 156
+ 156
+ 155
+ 155
+ 155
+ 155
+ 155
+ 154
+ 154
+ 154
+ 154
+ 154
+ 153
+ 153
+ 153
+ 153
+ 153
+ 153
+ 152
+ 152
+ 152
+ 152
+ 152
+ 151
+ 151
+ 151
+ 151
+ 151
+ 151
+ 150
+ 150
+ 150
+ 150
+ 150
+ 150
+ 149
+ 149
+ 149
+ 149
+ 149
+ 149
+ 149
+ 148
+ 148
+ 148
+ 148
+ 148
+ 148
+ 147
+ 147
+ 147
+ 147
+ 147
+ 147
+ 146
+ 146
+ 146
+ 146
+ 146
+ 146
+ 146
+ 146
+ 145
+ 145
+ 145
+ 145
+ 145
+ 145
+ 145
+ 144
+ 144
+ 144
+ 144
+ 144
+ 144
+ 144
+ 144
+ 143
+ 143
+ 143
+ 143
+ 143
+ 143
+ 143
+ 143
+ 142
+ 142
+ 142
+ 142
+ 142
+ 142
+ 142
+ 142
+ 141
+ 141
+ 141
+ 141
+ 141
+ 141
+ 141
+ 141
+ 141
+ 140
+ 140
+ 140
+ 140
+ 140
+ 140
+ 140
+ 140
+ 140
+ 139
+ 139
+ 139
+ 139
+ 139
+ 139
+ 139
+ 139
+ 139
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 138
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 137
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 136
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 135
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 134
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 133
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 132
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 131
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 130
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 129
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 128
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 127
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 126
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 125
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 124
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 123
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 122
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 121
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 120
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 119
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 118
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 117
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 116
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 115
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 114
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 113
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 112
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 111
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 110
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 109
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 108
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 107
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 106
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 105
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 104
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 103
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 102
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 101
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 100
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 99
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 98
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 97
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 96
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 95
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 94
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 93
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 92
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 91
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 90
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 89
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 88
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 87
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 86
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 85
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 84
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 83
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 82
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 81
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 80
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 79
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 78
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 77
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 76
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 75
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 74
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 73
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 72
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 71
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 70
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 69
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 68
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 67
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 66
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 65
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 64
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 63
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 62
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 61
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 59
+16/08/2020 20:12:40
+Heating to 190
+16/08/2020 20:12:40
+ 59
+ 59
+ 59
+ 59
+ 59
+ 59
+ 59
+ 59
+ 59
+ 59
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 60
+ 61
+ 61
+ 61
+ 61
+ 62
+ 62
+ 62
+ 62
+ 63
+ 63
+ 64
+ 64
+ 64
+ 65
+ 65
+ 66
+ 66
+ 66
+ 67
+ 67
+ 68
+ 68
+ 69
+ 69
+ 70
+ 70
+ 71
+ 71
+ 71
+ 72
+ 72
+ 73
+ 73
+ 74
+ 74
+ 75
+ 75
+ 76
+ 76
+ 77
+ 77
+ 78
+ 78
+ 79
+ 80
+ 80
+ 81
+ 81
+ 82
+ 82
+ 82
+ 83
+ 83
+ 84
+ 84
+ 85
+ 85
+ 86
+ 86
+ 87
+ 87
+ 87
+ 88
+ 88
+ 89
+ 89
+ 90
+ 90
+ 90
+ 91
+ 91
+ 92
+ 92
+ 93
+ 93
+ 93
+ 94
+ 94
+ 95
+ 95
+ 95
+ 96
+ 96
+ 97
+ 97
+ 97
+ 98
+ 98
+ 98
+ 99
+ 99
+ 99
+ 100
+ 100
+ 101
+ 101
+ 101
+ 102
+ 102
+ 102
+ 103
+ 103
+ 103
+ 104
+ 104
+ 104
+ 105
+ 105
+ 105
+ 106
+ 106
+ 106
+ 107
+ 107
+ 107
+ 108
+ 108
+ 108
+ 109
+ 109
+ 109
+ 109
+ 110
+ 110
+ 110
+ 111
+ 111
+ 111
+ 112
+ 112
+ 113
+ 113
+ 113
+ 113
+ 114
+ 114
+ 114
+ 115
+ 115
+ 115
+ 115
+ 116
+ 116
+ 116
+ 116
+ 117
+ 117
+ 117
+ 118
+ 118
+ 118
+ 118
+ 119
+ 119
+ 119
+ 119
+ 120
+ 120
+ 120
+ 120
+ 121
+ 121
+ 121
+ 121
+ 122
+ 122
+ 122
+ 122
+ 123
+ 123
+ 123
+ 123
+ 124
+ 124
+ 124
+ 124
+ 125
+ 125
+ 125
+ 125
+ 126
+ 126
+ 126
+ 126
+ 126
+ 127
+ 127
+ 127
+ 127
+ 128
+ 128
+ 128
+ 128
+ 129
+ 129
+ 129
+ 129
+ 129
+ 130
+ 130
+ 130
+ 130
+ 131
+ 131
+ 131
+ 131
+ 131
+ 132
+ 132
+ 132
+ 132
+ 133
+ 133
+ 133
+ 133
+ 134
+ 134
+ 134
+ 134
+ 134
+ 135
+ 135
+ 135
+ 135
+ 135
+ 136
+ 136
+ 136
+ 136
+ 136
+ 137
+ 137
+ 137
+ 137
+ 137
+ 138
+ 138
+ 138
+ 138
+ 138
+ 139
+ 139
+ 139
+ 139
+ 139
+ 140
+ 140
+ 140
+ 140
+ 140
+ 140
+ 141
+ 141
+ 141
+ 141
+ 141
+ 142
+ 142
+ 142
+ 142
+ 142
+ 142
+ 143
+ 143
+ 143
+ 143
+ 143
+ 144
+ 144
+ 144
+ 144
+ 144
+ 144
+ 145
+ 145
+ 145
+ 145
+ 145
+ 145
+ 146
+ 146
+ 146
+ 146
+ 146
+ 146
+ 147
+ 147
+ 147
+ 147
+ 147
+ 147
+ 148
+ 148
+ 148
+ 148
+ 148
+ 148
+ 149
+ 149
+ 149
+ 149
+ 149
+ 149
+ 150
+ 150
+ 150
+ 150
+ 150
+ 150
+ 151
+ 151
+ 151
+ 151
+ 151
+ 151
+ 151
+ 152
+ 152
+ 152
+ 152
+ 152
+ 152
+ 153
+ 153
+ 153
+ 153
+ 153
+ 153
+ 154
+ 154
+ 154
+ 154
+ 154
+ 154
+ 155
+ 155
+ 155
+ 155
+ 155
+ 155
+ 156
+ 156
+ 156
+ 156
+ 156
+ 156
+ 156
+ 157
+ 157
+ 157
+ 157
+ 157
+ 157
+ 157
+ 158
+ 158
+ 158
+ 158
+ 158
+ 158
+ 159
+ 159
+ 159
+ 159
+ 159
+ 159
+ 159
+ 160
+ 160
+ 160
+ 160
+ 160
+ 160
+ 160
+ 161
+ 161
+ 161
+ 161
+ 161
+ 161
+ 161
+ 162
+ 162
+ 162
+ 162
+ 162
+ 162
+ 162
+ 163
+ 163
+ 163
+ 163
+ 163
+ 163
+ 163
+ 164
+ 164
+ 164
+ 164
+ 164
+ 164
+ 164
+ 164
+ 165
+ 165
+ 165
+ 165
+ 165
+ 165
+ 165
+ 166
+ 166
+ 166
+ 166
+ 166
+ 166
+ 166
+ 166
+ 167
+ 167
+ 167
+ 167
+ 167
+ 167
+ 167
+ 168
+ 168
+ 168
+ 168
+ 168
+ 168
+ 168
+ 169
+ 169
+ 169
+ 169
+ 169
+ 169
+ 169
+ 169
+ 170
+ 170
+ 170
+ 170
+ 170
+ 170
+ 170
+ 171
+ 171
+ 171
+ 171
+ 171
+ 171
+ 171
+ 171
+ 172
+ 172
+ 172
+ 172
+ 172
+ 172
+ 172
+ 173
+ 173
+ 173
+ 173
+ 173
+ 173
+ 173
+ 173
+ 173
+ 174
+ 174
+ 174
+ 174
+ 174
+ 174
+ 174
+ 174
+ 175
+ 175
+ 175
+ 175
+ 175
+ 175
+ 175
+ 175
+ 176
+ 176
+ 176
+ 176
+ 176
+ 176
+ 176
+ 176
+ 176
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 177
+ 178
+ 178
+ 178
+ 178
+ 178
+ 178
+ 178
+ 178
+ 178
+ 178
+ 178
+ 179
+ 179
+ 179
+ 179
+ 179
+ 179
+ 179
+ 179
+ 179
+ 180
+ 180
+ 180
+ 180
+ 180
+ 180
+ 180
+ 180
+ 180
+ 181
+ 181
+ 181
+ 181
+ 181
+ 181
+ 181
+ 181
+ 181
+ 182
+ 182
+ 182
+ 182
+ 182
+ 182
+ 182
+ 182
+ 182
+ 183
+ 183
+ 183
+ 183
+ 183
+ 183
+ 183
+ 183
+ 184
+ 184
+ 184
+ 184
+ 184
+ 184
+ 184
+ 184
+ 185
+ 185
+ 185
+ 185
+ 185
+ 185
+ 185
+ 185
+ 185
+ 186
+ 186
+ 186
+ 186
+ 186
+ 186
+ 186
+ 186
+ 187
+ 187
+ 187
+ 187
+ 187
+ 187
+ 187
+ 187
+ 187
+ 188
+ 188
+ 188
+ 188
+ 188
+ 188
+ 188
+ 189
+16/08/2020 20:23:12
+cooling down
+17/08/2020 0:35:05
+ 42
+17/08/2020 0:35:06
+Heating to 190
+17/08/2020 0:35:06
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 42
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 41
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 40
+ 39
+ 40
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 39
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 38
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 37
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 36
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 35
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 34
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 33
+ 32
+ 33
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 31
+ 32
+ 32
+ 32
+ 31
+ 31
+ 31
+ 32
+ 31
+ 31
+ 31
+ 31
+ 32
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 31
+ 30
+ 30
+ 31
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 29
+ 30
+ 30
+ 30
+ 30
+ 30
+ 30
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
+ 29
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/blower_rpm.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/blower_rpm.cs
new file mode 100644
index 000000000..13e6af513
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/blower_rpm.cs
@@ -0,0 +1,62 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+
+include "..\..\Defines\Tango_Defines_Basic.cs"
+include "Tango_Defines_SSR.cs"
+include "Tango_Defines_Tacho.cs"
+
+const int Time_Test_On_Second= 60*30*3 ; //1.5 hour
+const string File_Name = @"P:\Scripts\Assemblies\Dryer\Blowe_RMO_LOG.CSV"; //3 hour
+
+
+public void OnExecute(StubManager stubManager)
+{
+
+
+/*
+ const int LOW = 75;//0 - 100%
+ var response = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x112, 0xFF);//Freq 8 bit
+ var response1 = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x3EC, LOW+1);//Low 8 bit
+ var response2 = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000400 | 0x3EE, 101 - LOW);//High 8 bit
+*/
+
+
+
+
+
+
+
+ var RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg8, 0);
+ UInt32 temp;
+
+
+// stubManager.WriteToFile(File_Name,",RPM ");
+
+
+ for (int i=0;i<Time_Test_On_Second;i++)
+
+ {
+
+ Thread.Sleep(1000);
+ RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg8, 0);
+ temp=60/12; //60 sec
+ temp=temp *29166667;
+ temp=temp/RetVal.Value;
+ temp=temp/250;
+// stubManager.AppendToFile(File_Name,i+ ","+ temp );
+
+ stubManager.Write("Fan5 Speed- \t"+temp + "\n");
+// stubManager.WriteHex(RetVal.Value,4);
+
+ }
+
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater.cs
index c9945fb1e..1977c13a6 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dryer/test_dryer_heater.cs
@@ -21,7 +21,7 @@ public void OnExecute(StubManager stubManager)
stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,3,true, 2200);
- for (int i=0;i<5;i++)
+ for (int i=0;i<10;i++)
{
stubManager.WriteLine("--------------------loop number " + i +" ---------------------" );
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_In_new set point.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_In_new set point.cs
new file mode 100644
index 000000000..dc5d5af07
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Actuator_In_new set point.cs
@@ -0,0 +1,34 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+
+public void OnExecute(StubManager stubManager)
+{
+int Delay_UP=200; //msec
+int Delay_stop=500;
+int Delay_limit=1000;
+
+ stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN down up to limit switch
+ Thread.Sleep(2000);
+// while (true)
+// {
+
+ stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf003); //mov ACTUATOR-IN up
+ Thread.Sleep(Delay_UP);
+ stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf008); //stop ACTUATOR-IN
+ Thread.Sleep(Delay_stop);
+ // stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN down up to limit switch
+// Thread.Sleep(Delay_limit);
+
+ // }
+
+
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Write SYLKO to head eeprom.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Write SYLKO to head eeprom.cs
index d7729ca2f..d7729ca2f 100644
--- a/Software/Stubs Collection/stubs/Scripts/Write SYLKO to head eeprom.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/Dye head/Write SYLKO to head eeprom.cs
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/ElectricalEnclosure/ElectricalEnclosure_Fans1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/ElectricalEnclosure/ElectricalEnclosure_Fans1.cs
index af5a07543..ba39cb2b0 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/ElectricalEnclosure/ElectricalEnclosure_Fans1.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/ElectricalEnclosure/ElectricalEnclosure_Fans1.cs
@@ -73,7 +73,7 @@ public void OnExecute(StubManager stubManager)
for (int i = 0; i<1000; i++)
{
- stubManager.Write("----------------------------------------\n");
+ stubManager.Write("\n----------------------------------------\n");
// Fpga_Read_Reg(FPGA1, F1_Tacho_reg0, 0); stubManager.Write("\n");
// Fpga_Read_Reg(FPGA1, F1_Tacho_reg1, 1); stubManager.Write("\n");
// Fpga_Read_Reg(FPGA1, F1_Tacho_reg2, 1); stubManager.Write("\n");
@@ -83,61 +83,85 @@ public void OnExecute(StubManager stubManager)
var RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg0, 0);
stubManager.Write("\nFan5 Speed-");
stubManager.WriteHex(RetVal.Value,4);
-
-
+ if (RetVal.Value>0x440 && RetVal.Value<0x4d0)
+ stubManager.Write("\t Pass");
+ else
+ stubManager.Write("\t Fail");
RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg1, 0);
stubManager.Write("\nFan1 Speed-");
stubManager.WriteHex(RetVal.Value,4);
+ if (RetVal.Value>0x220 && RetVal.Value<0x300)
+ stubManager.Write("\t Pass");
+ else
+ stubManager.Write("\t Fail");
+
+
+
- RetVal = Fpga_Read_Reg(FPGA1, F1_gpi_FANS, 0);
- Temp1=RetVal.Value & 0x0001;
- if (Temp1 !=0x0001)
- stubManager.Write("\tFan1 Running ");
- else
- stubManager.Write("\tFan1 Stop");
+// RetVal = Fpga_Read_Reg(FPGA1, F1_gpi_FANS, 0);
+// Temp1=RetVal.Value & 0x0001;
+// if (Temp1 !=0x0001)
+// stubManager.Write("\tFan1 Running ");
+// else
+// stubManager.Write("\tFan1 Stop");
RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg2, 0);
stubManager.Write("\nFan2 Speed-");
stubManager.WriteHex(RetVal.Value,4);
+ if (RetVal.Value>0x220 && RetVal.Value<0x300)
+ stubManager.Write("\t Pass");
+ else
+ stubManager.Write("\t Fail");
+
- Temp1=RetVal.Value & 0x0002;
- if (Temp1 !=0x0002)
- stubManager.Write("\tFan2 Running ");
- else
- stubManager.Write("\tFan2 Stop");
+// Temp1=RetVal.Value & 0x0002;
+// if (Temp1 !=0x0002)
+// stubManager.Write("\tFan2 Running ");
+// else
+// stubManager.Write("\tFan2 Stop");
RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg3, 0);
stubManager.Write("\nFan3 Speed-");
stubManager.WriteHex(RetVal.Value,4);
+ if (RetVal.Value>0x220 && RetVal.Value<0x300)
+ stubManager.Write("\t Pass");
+ else
+ stubManager.Write("\t Fail");
+
- Temp1=RetVal.Value & 0x0004;
- if (Temp1 !=0x0004)
- stubManager.Write("\tFan3 Running ");
- else
- stubManager.Write("\tFan3 Stop");
+// Temp1=RetVal.Value & 0x0004;
+// if (Temp1 !=0x0004)
+// stubManager.Write("\tFan3 Running ");
+// else
+// stubManager.Write("\tFan3 Stop");
RetVal=Fpga_Read_Reg(FPGA1, F1_Tacho_reg4, 0);
stubManager.Write("\nFan4 Speed-");
stubManager.WriteHex(RetVal.Value,4);
+ if (RetVal.Value>0x220 && RetVal.Value<0x300)
+ stubManager.Write("\t Pass");
+ else
+ stubManager.Write("\t Fail");
+
- Temp1=RetVal.Value & 0x0008;
- if (Temp1 !=0x0008)
- stubManager.Write("\tFan4 Running ");
- else
- stubManager.Write("\tFan4 Stop");
+// Temp1=RetVal.Value & 0x0008;
+// if (Temp1 !=0x0008)
+// stubManager.Write("\tFan4 Running ");
+// else
+// stubManager.Write("\tFan4 Stop");
- Fpga_Read_Reg(FPGA1, F1_Tacho_reg5, 1); stubManager.Write("\n");
- Fpga_Read_Reg(FPGA1, F1_Tacho_reg6, 1); stubManager.Write("\n");
- Fpga_Read_Reg(FPGA1, F1_Tacho_reg7, 1); stubManager.Write("\n");
- Fpga_Read_Reg(FPGA2, F2_Tacho_reg0, 1); stubManager.Write("\n");
+// Fpga_Read_Reg(FPGA1, F1_Tacho_reg5, 1); stubManager.Write("\n");
+// Fpga_Read_Reg(FPGA1, F1_Tacho_reg6, 1); stubManager.Write("\n");
+// Fpga_Read_Reg(FPGA1, F1_Tacho_reg7, 1); stubManager.Write("\n");
+// Fpga_Read_Reg(FPGA2, F2_Tacho_reg0, 1); stubManager.Write("\n");
//stubManager.Write("\n\n");
Thread.Sleep(1000);
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/DO_NOT_WORK_New_Calibrate_Midtank_pressure_sensors.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/DO_NOT_WORK_New_Calibrate_Midtank_pressure_sensors.cs
index 254a3143b..2acbe7d71 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/DO_NOT_WORK_New_Calibrate_Midtank_pressure_sensors.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/DO_NOT_WORK_New_Calibrate_Midtank_pressure_sensors.cs
@@ -13,6 +13,7 @@ using Tango.PMR.EmbeddedParameters;
using Tango.Stubs;
//----------------------
+const double Slop=0.92;
const double MIN_SLOP=0.7;
const double MAX_SLOP=1.4;
const double ERROR_SLOP=-1;
@@ -39,6 +40,7 @@ private const string FILE_PATH = @"C:\MidTankLog\";
string File_name;
double [,] voltage_array = new double[9,9];
string [] Parameter = new string[5] {"\t","Empty [V]","100cc [V]","800cc [V]"," b [L/V] "};
+ double Full_Cartridge=1; // 1 litter less 100 cc
//----------------------
const Int32 I2C_ID = 2;
@@ -58,9 +60,11 @@ const Int32 I2C_ID = 2;
public void OnExecute(StubManager stubManager)
{
Int32 midtankno = 0;
- double Slop;
- double Zero_Point;
-
+ double Full_Point=0; //on Voltage
+ double resualt;
+ double Sum=0 ;
+ double Old_Sum=0 ;
+
if (!Directory.Exists(FILE_PATH))
{
@@ -73,9 +77,9 @@ public void OnExecute(StubManager stubManager)
stubManager.Write("\n");
Machine_SN = response;
stubManager.WriteLine(Machine_SN);
- File_name= FILE_PATH +Machine_SN + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".LOG";
+ File_name= FILE_PATH +Machine_SN + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".csv";
stubManager.Write(File_name);
- stubManager.WriteToFile(File_name,"MidTank S/N:" + Machine_SN);
+ stubManager.WriteToFile(File_name,"MidTank S/N:," + Machine_SN);
// voltage_array[1,0]=1;
// voltage_array[2,0]=2;
@@ -91,59 +95,79 @@ public void OnExecute(StubManager stubManager)
var response1 = stubManager.ShowResponseWindow("Enter Midtank number to calibrate (1-8):", "");
stubManager.WriteLine(response1);
midtankno = Int32.Parse(response1);
- stubManager.WriteToFile(File_name,"MidTank Number:\t" + response1);
+ stubManager.AppendToFile(File_name,"MidTank Number:\t" + response1);
- string box_msg = "Please Insert cartridge ";
+ string box_msg = "Please Insert cartridge with 1000cc except Lubbricant add 500cc only ";
// string box_title = "Midatnk empty";
// MessageBox.Show(box_msg, box_title);
MessageBox.Show(box_msg);
- open_valve(midtankno,1,1) ; //open Air valve
- open_valve(midtankno,0,1) ; //open Ink valve
-
-
-
-
-
-
-
-
+ open_valve(midtankno,1,1) ; //open Air valve
+ open_valve(midtankno,0,1) ; //open Ink valve
+ Int32 i=0;
+ while (i<60*15) //check for 15 minitus
+ {
+ Sum=0;
+ for (Int32 j=0;j<30;j++)
+ {
+ resualt=read_pressure_sensor(midtankno);
+ stubManager.AppendToFile(File_name,resualt+",mV");
+ Sum=Sum+resualt;
+ Thread.Sleep(1000);
+ }
+ i=i+1;
+ if (Sum>Old_Sum)
+ Old_Sum=Sum-Old_Sum;
+ else
+ Old_Sum=Old_Sum-Sum;
+
+ if ( Old_Sum <0.02)
+ i=60*15; //end
+ Old_Sum=Sum;
+ }
+ Full_Point=Sum/30;
+ box_msg = "Send file" + File_name +"to Mati";
+ MessageBox.Show(box_msg);
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0x000f); // open all valve air of midtank and close all ink of midtank
- Thread.Sleep(500);
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0x00ff); // open all valve air of midtank and close all ink of midtank
- Thread.Sleep(500);
- stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0x0fff); // open all valve air of midtank and close all ink of midtank
- Thread.Sleep(500);
- stubManager.Run<StubFpgaWriteRegResponse>("stubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0xffff); // open all valve air and ink of midtank
- Thread.Sleep(2500);
+ // stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0x000f); // open all valve air of midtank and close all ink of midtank
+ // Thread.Sleep(500);
+ // stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0x00ff); // open all valve air of midtank and close all ink of midtank
+ // Thread.Sleep(500);
+ // stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0x0fff); // open all valve air of midtank and close all ink of midtank
+ // Thread.Sleep(500);
+ // stubManager.Run<StubFpgaWriteRegResponse>("stubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0xffff); // open all valve air and ink of midtank
+ //
+ // Thread.Sleep(2500);
- Thread.Sleep(1000);
+ // Thread.Sleep(1000);
- read_pressure_sensor(1);
+ // read_pressure_sensor(1);
- box_msg ="Insert 100cc of appropriate ink/lube to each midtank\n\t1.black ink\n\t2. Magenta ink\n\t3. Transparent ink\n\t4. Cleaner\n\t5. Cyan ink\n\t6. Yellow ink\n\t7. Spot color\n\t8. Lubricant/n";
- MessageBox.Show(box_msg);
-
- read_pressure_sensor(2);
+ // box_msg ="Insert 100cc of appropriate ink/lube to each midtank\n\t1.black ink\n\t2. Magenta ink\n\t3. Transparent ink\n\t4. Cleaner\n\t5. Cyan ink\n\t6. Yellow ink\n\t7. Spot color\n\t8. Lubricant/n";
+ // MessageBox.Show(box_msg);
+//
+ // read_pressure_sensor(2);
// voltage_array[3,2]=2.5;
- box_msg = "Add another 700cc for ink and TI \nFor Lubbricant add 500cc only.";
- MessageBox.Show(box_msg);
- read_pressure_sensor(3);
- stubManager.Run<StubFpgaWriteRegResponse>("stubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0x0000); // close all valve air and ink of midtank
+// box_msg = "Add another 700cc for ink and TI \nFor Lubbricant add 500cc only.";
+// MessageBox.Show(box_msg);
+// read_pressure_sensor(3);
+// stubManager.Run<StubFpgaWriteRegResponse>("stubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0x0000); // close all valve air and ink of midtank
// voltage_array[3,3]=4.5;
+ close_valve(midtankno,1,1) ; //close Air valve
+ close_valve(midtankno,0,1) ; //close Ink valve
- calc_slop();
- print_table();
+// calc_slop();
+// print_table();
- insert_slop_t_eeprom();
+// insert_slop_t_eeprom(Full_Point, midtankno);
+ insert_slop_t_eeprom(Full_Point, midtankno);
box_msg ="Turn Power Off and On to finish the calibration.";
MessageBox.Show(box_msg);
@@ -178,54 +202,55 @@ int calc_slop()
}
- int insert_slop_t_eeprom()
+ int insert_slop_t_eeprom( double FullPoint,Int32 midtankno)
{
- stubManager.Write("\n ");
+// stubManager.Write("\n ");
MidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest();
- for (uint i=1;i<9;i++)
- {
- if (voltage_array[i,4]!= ERROR_SLOP)
- {
+// for (uint i=1;i<9;i++)
+// {
+// if (voltage_array[i,4]!= ERROR_SLOP)
+// {
MidTankData midTankData = new MidTankData();
- midTankData.MidTankId = i-1;
- midTankData.InitialOffsetA = voltage_array[i,2];
- midTankData.SlopeB = voltage_array[i,4];
+ midTankData.MidTankId = Convert.ToUInt32 (midtankno-1);
+ midTankData.InitialOffsetA =FullPoint - (Full_Cartridge-0.1)/Slop;
+ midTankData.SlopeB = Slop;
- stubManager.Write("\nMidtank No:" + i+ "=\tA="+voltage_array[i,2]+"\tSlop="+voltage_array[i,4]);
+ stubManager.Write("\nMidtank No:" + midtankno + "=\tVoltage Zero is ="+(FullPoint - (Full_Cartridge-0.1)/Slop)+"\tSlop="+ Slop);
+ stubManager.AppendToFile(File_name,"\nMidtank No:" + midtankno + "=\tVoltage Zero is ="+(FullPoint - (Full_Cartridge-0.1)/Slop)+"\tSlop="+ Slop);
midTankDataSetupRequest.MidTankInfo.Add(midTankData);
- }
+ // }
var response = stubManager.Run<MidTankDataSetupResponse>(midTankDataSetupRequest);
- }
+ //}
return 1;
}
+//
+//
+//int print_table()
+// {
+//
+// for (uint i=0;i<5;i++)
+// {
+// stubManager.AppendToFile(File_name,Parameter[i]+"\t"+voltage_array[1,i]+"\t"+voltage_array[2,i]+"\t"+voltage_array[3,i]+"\t"+voltage_array[4,i]+"\t"+voltage_array[5,i]+"\t"+voltage_array[6,i]+"\t"+voltage_array[7,i]+"\t"+voltage_array[8,i]) ;
+// }
+//
+//
+// return 1;
+//
+// }
-
-int print_table()
- {
-
- for (uint i=0;i<5;i++)
- {
- stubManager.AppendToFile(File_name,Parameter[i]+"\t"+voltage_array[1,i]+"\t"+voltage_array[2,i]+"\t"+voltage_array[3,i]+"\t"+voltage_array[4,i]+"\t"+voltage_array[5,i]+"\t"+voltage_array[6,i]+"\t"+voltage_array[7,i]+"\t"+voltage_array[8,i]) ;
- }
-
-
- return 1;
-
- }
-
-
+//start mat
int adc_configuration(uint I2C_Slave_Add,uint channel )
{
@@ -261,7 +286,7 @@ int adc_set_for_read_ch(uint I2C_Slave_Add)
-int adc_read_ch(uint I2C_Slave_Add,uint table_index_x,uint table_index_y)
+double adc_read_ch(uint I2C_Slave_Add)
{
StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
stubI2CReadBytesRequest.I2CId = I2C_ID;
@@ -281,67 +306,80 @@ int adc_read_ch(uint I2C_Slave_Add,uint table_index_x,uint table_index_y)
temp=temp & 0x0fff;
calc = (double)temp *2.5 / 4096.0;
- stubManager.Write("ADC [volts]:\t");
- stubManager.Write(calc+"\t");
+// stubManager.Write("ADC [volts]:\t");
+// stubManager.Write(calc+"\t");
calc1 = (1.96- calc) * 4.64 + 1.96;
stubManager.Write("Vsensor [volts]:\t");
- stubManager.Write(calc1);
+ stubManager.Write(calc1 + "\n");
- voltage_array[table_index_x,table_index_y]=calc1;
+ // voltage_array[table_index_x,table_index_y]=calc1;
- return 1;
+ return calc1;
}
-int read_pressure_sensor(uint i )
+double read_pressure_sensor(Int32 i )
{
-
- stubManager.Write("\n-----------MIDTANK_PRESSESENS-------test_no= "+i);
-
- stubManager.Write("\n1_1= ");
+double resualt =0 ;
+ switch (i)
+ {
+ case 1:
+ adc_configuration(0x44,0x20); //a2d_address 0x44 channel channel 2
+ adc_set_for_read_ch(0x44);
+ resualt=adc_read_ch(0x44);
+ break;
- adc_configuration(0x44,0x20); //a2d_address 0x44 channel channel 2
- adc_set_for_read_ch(0x44);
- adc_read_ch(0x44,1,i);
-
- stubManager.Write("\n2_1= ");
- adc_configuration(0x44,0x08); //a2d_address 0x44 channel channel 4
- adc_set_for_read_ch(0x44);
- adc_read_ch(0x44,2,i);
-
- stubManager.Write("\n3_1= ");
- adc_configuration(0x46,0x80); //a2d_address 0x46 channel channel 0
- adc_set_for_read_ch(0x46);
- adc_read_ch(0x46,3,i);
-
- stubManager.Write("\n4_1= ");
- adc_configuration(0x46,0x20); //a2d_address 0x46 channel channel 2
- adc_set_for_read_ch(0x46);
- adc_read_ch(0x46,4,i);
+ case 2:
+ adc_configuration(0x44,0x08); //a2d_address 0x44 channel channel 4
+ adc_set_for_read_ch(0x44);
+ resualt=adc_read_ch(0x44);
+ break;
- stubManager.Write("\n1_2= ");
- adc_configuration(0x44,0x10); //a2d_address 0x44 channel channel 3
- adc_set_for_read_ch(0x44);
- adc_read_ch(0x44,5,i);
-
- stubManager.Write("\n2_2= ");
- adc_configuration(0x44,0x04); //a2d_address 0x44 channel channel 5
- adc_set_for_read_ch(0x44);
- adc_read_ch(0x44,6,i);
-
- stubManager.Write("\n3_2= ");
- adc_configuration(0x46,0x40); //a2d_address 0x46 channel channel 1
- adc_set_for_read_ch(0x46);
- adc_read_ch(0x46,7,i);
+ case 3:
+ adc_configuration(0x46,0x80); //a2d_address 0x46 channel channel 0
+ adc_set_for_read_ch(0x46);
+ resualt=adc_read_ch(0x46);
+ break;
+
+ case 4:
+ adc_configuration(0x46,0x20); //a2d_address 0x46 channel channel 2
+ adc_set_for_read_ch(0x46);
+ resualt=adc_read_ch(0x46);
+ break;
+
+ case 5:
+ adc_configuration(0x44,0x10); //a2d_address 0x44 channel channel 3
+ adc_set_for_read_ch(0x44);
+ resualt=adc_read_ch(0x44);
+ break;
+
+ case 6:
+ adc_configuration(0x44,0x04); //a2d_address 0x44 channel channel 5
+ adc_set_for_read_ch(0x44);
+ resualt=adc_read_ch(0x44);
+ break;
+
+ case 7:
+ adc_configuration(0x46,0x40); //a2d_address 0x46 channel channel 1
+ adc_set_for_read_ch(0x46);
+ resualt=adc_read_ch(0x46);
+ break;
+
+ case 8:
+ adc_configuration(0x46,0x10); //a2d_address 0x46 channel channel 3
+ adc_set_for_read_ch(0x46);
+ resualt=adc_read_ch(0x46);
+ break;
+
+ default:
+ stubManager.Write("Error");
- stubManager.Write("\n4_2= ");
- adc_configuration(0x46,0x10); //a2d_address 0x46 channel channel 3
- adc_set_for_read_ch(0x46);
- adc_read_ch(0x46,8,i);
+ break;
+ }
- return 1;
+ return resualt;
}
-//strat mat
+
//--------------------------------
int open_valve (int valve_nm,int valve_type,int check_valve) //valve_type=0 is Air ,1 is Ink ; check_valve=1 send feedbak
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/New_Calibrate_Midtank_pressure_sensors.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/New_Calibrate_Midtank_pressure_sensors.cs
new file mode 100644
index 000000000..62d0e017f
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/New_Calibrate_Midtank_pressure_sensors.cs
@@ -0,0 +1,393 @@
+using System;
+using System.IO;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.PMR.EmbeddedParameters;
+using Tango.Stubs;
+
+//----------------------
+const double MIN_SLOP=0.7;
+const double MAX_SLOP=1.4;
+const double ERROR_SLOP=-1;
+const double MIN_50cc_on_volt=2.3;
+const double MAX_50cc_on_volt=3.2;
+const double ERROR_50cc_on_volt=-1;
+
+int [] Convert_Midtank_No = new Int32 [8] {1,3,5,7,2,4,6,8};
+uint [,] ADC_Add_Chnl = new uint [8,2] {
+ {0x44,0x20},
+ {0x44,0x08},
+ {0x46,0x80},
+ {0x46,0x20},
+ {0x44,0x10},
+ {0x44,0x04},
+ {0x46,0x40},
+ {0x46,0x10},
+ };
+
+
+const Int32 F3_VALVE_OUT = 0x600008E2 ;
+string Machine_SN ;
+private const string FILE_PATH = @"C:\MidTankLog\";
+string File_name;
+double Full_Cartridge=1000; // on CC
+double Slop=0.92;
+
+//----------------------
+const Int32 I2C_ID = 2;
+//const Int32 I2C_Slave_Add = 0x46; //must be 0x40, 0x44 or 0x46
+//----------------------
+
+
+public void OnExecute(StubManager stubManager)
+{
+ Int32 midtankno = 0;
+ double Full_Point=0; //on Voltage
+ double resualt;
+ double Sum=0 ;
+ double Old_Sum=0 ;
+
+
+ if (!Directory.Exists(FILE_PATH))
+ {
+ Directory.CreateDirectory(FILE_PATH);
+ }
+
+
+
+ var response = stubManager.ShowResponseWindow("Enter Midtank S/N: ", "");
+ stubManager.Write("\n");
+ Machine_SN = response;
+ stubManager.WriteLine(Machine_SN);
+ File_name= FILE_PATH +Machine_SN + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".csv";
+ stubManager.Write(File_name);
+ stubManager.WriteToFile(File_name,"MidTank S/N:," + Machine_SN);
+
+
+ var response1 = stubManager.ShowResponseWindow("Enter Midtank number to calibrate (1-8):", "");
+ stubManager.WriteLine(response1);
+ midtankno = Int32.Parse(response1);
+ stubManager.AppendToFile(File_name,"MidTank Number:\t" + response1);
+ if (midtankno==8)
+ Slop=1;
+ else
+ Slop=0.92;
+
+ var response10 = stubManager.ShowResponseWindow("Enter Cartridge Valume on CC (500-1500):", "");
+ stubManager.WriteLine(response10);
+ Full_Cartridge = double.Parse(response10);
+ stubManager.AppendToFile(File_name,"Cartridge Valume:\t" + response10);
+ stubManager.AppendToFile(File_name,"Slop value:\t" + Slop);
+
+
+ DialogResult result = MessageBox.Show("Are you sure to calibrate Midtank No: "+ midtankno + " with "+ Full_Cartridge +" CC" , "Warning",MessageBoxButtons.YesNo);
+ if(result == DialogResult.Yes)
+ {
+
+
+
+ string box_msg = "Please Insert cartridge ";
+
+ MessageBox.Show(box_msg);
+
+ open_valve(midtankno,1,1) ; //open Air valve
+ open_valve(midtankno,0,1) ; //open Ink valve
+ Int32 i=0;
+ while (i<60*15) //check for 15 minitus
+ {
+ Sum=0;
+ for (Int32 j=0;j<30;j++)
+ {
+ resualt=read_pressure_sensor(midtankno);
+ stubManager.AppendToFile(File_name,resualt+",V");
+ Sum=Sum+resualt;
+ Thread.Sleep(1000);
+ }
+ i=i+1;
+ if (Sum>Old_Sum)
+ Old_Sum=Sum-Old_Sum;
+ else
+ Old_Sum=Old_Sum-Sum;
+
+ if ( Old_Sum <0.02)
+ i=60*15; //end
+ Old_Sum=Sum;
+ }
+ Full_Point=Sum/30;
+
+
+ close_valve(midtankno,1,1) ; //close Air valve
+ close_valve(midtankno,0,1) ; //close Ink valve
+
+
+ insert_slop_t_eeprom(Full_Point, midtankno);
+ box_msg ="Turn Power Off and On to finish the calibration.";
+ MessageBox.Show(box_msg);
+ }
+
+
+}
+
+
+ int insert_slop_t_eeprom( double FullPoint,Int32 midtankno)
+{
+// stubManager.Write("\n ");
+
+ MidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest();
+
+ MidTankData midTankData = new MidTankData();
+ midTankData.MidTankId = Convert.ToUInt32 (midtankno-1);
+ midTankData.InitialOffsetA =FullPoint - (Full_Cartridge/1000-0.1)/Slop;
+ midTankData.SlopeB = Slop;
+
+ stubManager.Write("\nMidtank No:" + midtankno + "=\tVoltage Zero is ="+(FullPoint - (Full_Cartridge/1000-0.1)/Slop)+"\tSlop="+ Slop);
+ stubManager.AppendToFile(File_name,"\nMidtank No:" + midtankno + "=\tVoltage Zero is ="+(FullPoint - (Full_Cartridge/1000-0.1)/Slop)+"\tSlop="+ Slop);
+
+
+ midTankDataSetupRequest.MidTankInfo.Add(midTankData);
+
+
+var response = stubManager.Run<MidTankDataSetupResponse>(midTankDataSetupRequest);
+
+return 1;
+}
+
+
+int adc_configuration(uint I2C_Slave_Add,uint channel )
+ {
+ StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
+ stubI2CWriteBytesRequest.I2CId = I2C_ID;
+ stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
+
+ UInt32 uInt32 = new UInt32();
+ stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);//Byte 0 to write
+ stubI2CWriteBytesRequest.BytesTWrite.Add(channel);//Byte 1 to Write, must be 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02 or 0x01 for different channels
+ stubI2CWriteBytesRequest.BytesTWrite.Add(0x80);//Byte 2 to Write
+
+ var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
+
+ return 1;
+ }
+
+
+int adc_set_for_read_ch(uint I2C_Slave_Add)
+ {
+ StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
+ stubI2CWriteBytesRequest.I2CId = I2C_ID;
+ stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
+
+ UInt32 uInt32 = new UInt32();
+ stubI2CWriteBytesRequest.BytesTWrite.Add(0x01);//Byte 0 to write
+
+ var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
+
+ return 1;
+ }
+
+
+
+
+double adc_read_ch(uint I2C_Slave_Add)
+ {
+ StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
+ stubI2CReadBytesRequest.I2CId = I2C_ID;
+ stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add;
+ stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read
+
+ var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
+ uint temph=0;
+ uint templ=0;
+ uint temp;
+ double calc;
+ double calc1;
+ double calc2;
+ temph=response1.ReadBytes[0];
+ templ=response1.ReadBytes[1];
+ temp = (temph << 8) | templ;
+ temp=temp & 0x0fff;
+
+ calc = (double)temp *2.5 / 4096.0;
+
+ calc1 = (1.96- calc) * 4.64 + 1.96;
+ stubManager.Write("Vsensor [volts]:\t");
+ stubManager.Write(calc1 + "\n");
+
+
+ return calc1;
+ }
+
+double read_pressure_sensor(Int32 i )
+ {
+double resualt =0 ;
+ switch (i)
+ {
+ case 1:
+ adc_configuration(0x44,0x20); //a2d_address 0x44 channel channel 2
+ adc_set_for_read_ch(0x44);
+ resualt=adc_read_ch(0x44);
+ break;
+
+ case 2:
+ adc_configuration(0x44,0x08); //a2d_address 0x44 channel channel 4
+ adc_set_for_read_ch(0x44);
+ resualt=adc_read_ch(0x44);
+ break;
+
+ case 3:
+ adc_configuration(0x46,0x80); //a2d_address 0x46 channel channel 0
+ adc_set_for_read_ch(0x46);
+ resualt=adc_read_ch(0x46);
+ break;
+
+ case 4:
+ adc_configuration(0x46,0x20); //a2d_address 0x46 channel channel 2
+ adc_set_for_read_ch(0x46);
+ resualt=adc_read_ch(0x46);
+ break;
+
+ case 5:
+ adc_configuration(0x44,0x10); //a2d_address 0x44 channel channel 3
+ adc_set_for_read_ch(0x44);
+ resualt=adc_read_ch(0x44);
+ break;
+
+ case 6:
+ adc_configuration(0x44,0x04); //a2d_address 0x44 channel channel 5
+ adc_set_for_read_ch(0x44);
+ resualt=adc_read_ch(0x44);
+ break;
+
+ case 7:
+ adc_configuration(0x46,0x40); //a2d_address 0x46 channel channel 1
+ adc_set_for_read_ch(0x46);
+ resualt=adc_read_ch(0x46);
+ break;
+
+ case 8:
+ adc_configuration(0x46,0x10); //a2d_address 0x46 channel channel 3
+ adc_set_for_read_ch(0x46);
+ resualt=adc_read_ch(0x46);
+ break;
+
+ default:
+ stubManager.Write("Error");
+
+ break;
+ }
+
+ return resualt;
+ }
+
+
+//--------------------------------
+int open_valve (int valve_nm,int valve_type,int check_valve) //valve_type=0 is Air ,1 is Ink ; check_valve=1 send feedbak
+{
+ int temp1=Convert_Midtank_No[valve_nm-1] ;
+
+ string temp;
+ SetBit (F3_VALVE_OUT,(((valve_type+1)*8)- temp1), 1);
+
+ if (check_valve!=0)
+ {
+ temp="Air";
+ if (valve_type==1)
+ temp="Ink";
+
+ DialogResult result = MessageBox.Show("Did " + temp + "Valve of Midtank " + valve_nm +" open?", "Warning",MessageBoxButtons.YesNo);
+ if(result == DialogResult.No)
+ {
+// Units_status[(valve_nm-1)*3+valve_type,1]="Fail";
+ stubManager.Write(temp +"Valve\tFail\n");
+ return 0;
+ }
+ else
+ {
+// Units_status[(valve_nm-1)*3+valve_type,1]="Pass";
+ stubManager.Write(temp +"Valve\tOpen\n");
+ return 1;
+ }
+
+ }
+ return 1;
+
+}
+//--------------------------------
+int close_valve (int valve_nm,int valve_type,int check_valve)
+{
+ int temp1=Convert_Midtank_No[valve_nm-1];
+
+ string temp;
+ SetBit (F3_VALVE_OUT,(((valve_type+1)*8)- temp1), 0);
+ if (check_valve!=0)
+ {
+ temp="Air";
+ if (valve_type==1)
+ temp="Ink";
+
+ DialogResult result = MessageBox.Show("Did " + temp +" Valve of Midtank " + valve_nm +" close?", "Warning",MessageBoxButtons.YesNo);
+ if(result == DialogResult.No)
+ {
+// Units_status[(valve_nm-1)*3+valve_type,1]="Fail";
+ stubManager.Write(temp +"Valve\tFail\n");
+ return 0;
+ }
+ else
+ {
+// Units_status[(valve_nm-1)*3+valve_type,1]="Pass";
+ stubManager.Write(temp +"Valve\tclose\n");
+ return 1;
+ }
+ }
+ return 1;
+
+}
+
+public Int32 SetBit(Int32 Adr, Int32 BitNo, Int32 Bit)
+{
+ Int32 BitMask;
+ var RetVal = Fpga_Read_Reg(Adr);
+ Int32 RV = (Int32) RetVal.Value;
+
+ if (Bit == 0x1)
+ {
+ BitMask = 0x1 << BitNo;
+ RV = RV | BitMask;
+ Fpga_Write_Reg( Adr, RV );
+ }
+ else if (Bit == 0x0)
+ {
+ BitMask = ~(0x1 << BitNo);
+ RV = RV & BitMask;
+ Fpga_Write_Reg(Adr, RV );
+ }
+ return 1;
+}
+
+int Fpga_Write_Reg(Int32 Addr, Int32 Data)
+{
+ var response = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,Addr, Data);
+
+ return 1;
+}
+
+
+
+StubFpgaReadRegResponse Fpga_Read_Reg(Int32 Addr)
+{
+ var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,Addr);
+ response.Value = response.Value & 0xffff;
+
+ return response;
+}
+
+
+
+
+//end mati \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/New_Calibrate_Midtank_pressure_sensors1.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/New_Calibrate_Midtank_pressure_sensors1.cs
new file mode 100644
index 000000000..9edb49e03
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/New_Calibrate_Midtank_pressure_sensors1.cs
@@ -0,0 +1,423 @@
+using System;
+using System.IO;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.PMR.EmbeddedParameters;
+using Tango.Stubs;
+
+//----------------------
+const double MIN_SLOP=0.7;
+const double MAX_SLOP=1.4;
+const double ERROR_SLOP=-1;
+const double MIN_50cc_on_volt=2.3;
+const double MAX_50cc_on_volt=3.2;
+const double ERROR_50cc_on_volt=-1;
+
+int [] Convert_Midtank_No = new Int32 [8] {1,3,5,7,2,4,6,8};
+uint [,] ADC_Add_Chnl = new uint [8,2] {
+ {0x44,0x20},
+ {0x44,0x08},
+ {0x46,0x80},
+ {0x46,0x20},
+ {0x44,0x10},
+ {0x44,0x04},
+ {0x46,0x40},
+ {0x46,0x10},
+ };
+
+
+const Int32 F3_VALVE_OUT = 0x600008E2 ;
+string Machine_SN ;
+private const string FILE_PATH = @"C:\MidTankLog\";
+string File_name;
+double Full_Cartridge=1000; // on CC
+double Slop=0.92;
+
+//----------------------
+const Int32 I2C_ID = 2;
+//const Int32 I2C_Slave_Add = 0x46; //must be 0x40, 0x44 or 0x46
+//----------------------
+
+
+public void OnExecute(StubManager stubManager)
+{
+ Int32 Timout ;
+ Int32 Interval;
+ Int32 midtankno = 0;
+ double Full_Point=0; //on Voltage
+ double resualt;
+ double Sum=0 ;
+ double Old_Sum=0 ;
+
+
+ if (!Directory.Exists(FILE_PATH))
+ {
+ Directory.CreateDirectory(FILE_PATH);
+ }
+
+
+
+ var response = stubManager.ShowResponseWindow("Enter Midtank S/N: ", "");
+ stubManager.Write("\n");
+ Machine_SN = response;
+ stubManager.WriteLine(Machine_SN);
+ File_name= FILE_PATH +Machine_SN + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".csv";
+ stubManager.Write(File_name);
+ stubManager.WriteToFile(File_name,"MidTank S/N:," + Machine_SN);
+
+
+ var response1 = stubManager.ShowResponseWindow("Enter Midtank number to calibrate (1-8):", "");
+ stubManager.WriteLine(response1);
+ midtankno = Int32.Parse(response1);
+ stubManager.AppendToFile(File_name,"MidTank Number:\t" + response1);
+ if (midtankno==8)
+ {
+ Slop=1;
+ Timout=60; //60 minutes
+ Interval=60; //60 second
+ }
+ else
+ {
+ Slop=0.92;
+ Timout=10*2; //10 minutes
+ Interval=30; //30 second
+
+ }
+ var response10 = stubManager.ShowResponseWindow("Enter Cartridge Valume on CC (500-1500):", "");
+ stubManager.WriteLine(response10);
+ Full_Cartridge = double.Parse(response10);
+ stubManager.AppendToFile(File_name,"Cartridge Valume:\t" + response10);
+ stubManager.AppendToFile(File_name,"Slop value:\t" + Slop);
+
+
+ DialogResult result = MessageBox.Show("Are you sure to calibrate Midtank No: "+ midtankno + " with "+ Full_Cartridge +" CC" , "Warning",MessageBoxButtons.YesNo);
+ if(result == DialogResult.Yes)
+ {
+
+
+
+ string box_msg = "Please Insert cartridge ";
+
+ MessageBox.Show(box_msg);
+
+ open_valve(midtankno,1,1) ; //open Air valve
+ open_valve(midtankno,0,1) ; //open Ink valve
+ Int32 i=0;
+ while (i<Timout) //check for 15 minitus
+ {
+ Sum=0;
+ for (Int32 j=0;j<Interval;j++)
+ {
+ resualt=read_pressure_sensor(midtankno);
+ stubManager.AppendToFile(File_name,resualt+",V");
+ Sum=Sum+resualt;
+ Thread.Sleep(1000);
+ }
+ if (Sum>Old_Sum)
+ Old_Sum=Sum-Old_Sum;
+ else
+ Old_Sum=Old_Sum-Sum;
+
+ if ((check_valve(midtankno,1) == 0) && (check_valve(midtankno,0) == 0))
+ {
+ i++;
+ if ( Old_Sum <0.02)
+ i=Timout; //end
+ Old_Sum=Sum;
+ }
+ else
+ {
+ open_valve(midtankno,1,0) ; //open Air valve
+ open_valve(midtankno,0,0) ; //open Ink valve
+ Old_Sum=0;
+ }
+ }
+ Full_Point=Sum/Interval;
+
+
+ close_valve(midtankno,1,1) ; //close Air valve
+ close_valve(midtankno,0,1) ; //close Ink valve
+
+
+ insert_slop_t_eeprom(Full_Point, midtankno);
+ box_msg ="Turn Power Off and On to finish the calibration.";
+ MessageBox.Show(box_msg);
+ }
+
+
+}
+
+
+ int insert_slop_t_eeprom( double FullPoint,Int32 midtankno)
+{
+// stubManager.Write("\n ");
+
+ MidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest();
+
+ MidTankData midTankData = new MidTankData();
+ midTankData.MidTankId = Convert.ToUInt32 (midtankno-1);
+ midTankData.InitialOffsetA =FullPoint - (Full_Cartridge/1000-0.1)/Slop;
+ midTankData.SlopeB = Slop;
+
+ stubManager.Write("\nMidtank No:" + midtankno + "=\tVoltage Zero is ="+(FullPoint - (Full_Cartridge/1000-0.1)/Slop)+"\tSlop="+ Slop);
+ stubManager.AppendToFile(File_name,"\nMidtank No:" + midtankno + "=\tVoltage Zero is ="+(FullPoint - (Full_Cartridge/1000-0.1)/Slop)+"\tSlop="+ Slop);
+
+
+ midTankDataSetupRequest.MidTankInfo.Add(midTankData);
+
+
+var response = stubManager.Run<MidTankDataSetupResponse>(midTankDataSetupRequest);
+
+return 1;
+}
+
+
+int adc_configuration(uint I2C_Slave_Add,uint channel )
+ {
+ StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
+ stubI2CWriteBytesRequest.I2CId = I2C_ID;
+ stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
+
+ UInt32 uInt32 = new UInt32();
+ stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);//Byte 0 to write
+ stubI2CWriteBytesRequest.BytesTWrite.Add(channel);//Byte 1 to Write, must be 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02 or 0x01 for different channels
+ stubI2CWriteBytesRequest.BytesTWrite.Add(0x80);//Byte 2 to Write
+
+ var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
+
+ return 1;
+ }
+
+
+int adc_set_for_read_ch(uint I2C_Slave_Add)
+ {
+ StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
+ stubI2CWriteBytesRequest.I2CId = I2C_ID;
+ stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
+
+ UInt32 uInt32 = new UInt32();
+ stubI2CWriteBytesRequest.BytesTWrite.Add(0x01);//Byte 0 to write
+
+ var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
+
+ return 1;
+ }
+
+
+
+
+double adc_read_ch(uint I2C_Slave_Add)
+ {
+ StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
+ stubI2CReadBytesRequest.I2CId = I2C_ID;
+ stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add;
+ stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read
+
+ var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
+ uint temph=0;
+ uint templ=0;
+ uint temp;
+ double calc;
+ double calc1;
+ double calc2;
+ temph=response1.ReadBytes[0];
+ templ=response1.ReadBytes[1];
+ temp = (temph << 8) | templ;
+ temp=temp & 0x0fff;
+
+ calc = (double)temp *2.5 / 4096.0;
+
+ calc1 = (1.96- calc) * 4.64 + 1.96;
+ stubManager.Write("Vsensor [volts]:\t");
+ stubManager.Write(calc1 + "\n");
+
+
+ return calc1;
+ }
+
+double read_pressure_sensor(Int32 i )
+ {
+double resualt =0 ;
+ switch (i)
+ {
+ case 1:
+ adc_configuration(0x44,0x20); //a2d_address 0x44 channel channel 2
+ adc_set_for_read_ch(0x44);
+ resualt=adc_read_ch(0x44);
+ break;
+
+ case 2:
+ adc_configuration(0x44,0x08); //a2d_address 0x44 channel channel 4
+ adc_set_for_read_ch(0x44);
+ resualt=adc_read_ch(0x44);
+ break;
+
+ case 3:
+ adc_configuration(0x46,0x80); //a2d_address 0x46 channel channel 0
+ adc_set_for_read_ch(0x46);
+ resualt=adc_read_ch(0x46);
+ break;
+
+ case 4:
+ adc_configuration(0x46,0x20); //a2d_address 0x46 channel channel 2
+ adc_set_for_read_ch(0x46);
+ resualt=adc_read_ch(0x46);
+ break;
+
+ case 5:
+ adc_configuration(0x44,0x10); //a2d_address 0x44 channel channel 3
+ adc_set_for_read_ch(0x44);
+ resualt=adc_read_ch(0x44);
+ break;
+
+ case 6:
+ adc_configuration(0x44,0x04); //a2d_address 0x44 channel channel 5
+ adc_set_for_read_ch(0x44);
+ resualt=adc_read_ch(0x44);
+ break;
+
+ case 7:
+ adc_configuration(0x46,0x40); //a2d_address 0x46 channel channel 1
+ adc_set_for_read_ch(0x46);
+ resualt=adc_read_ch(0x46);
+ break;
+
+ case 8:
+ adc_configuration(0x46,0x10); //a2d_address 0x46 channel channel 3
+ adc_set_for_read_ch(0x46);
+ resualt=adc_read_ch(0x46);
+ break;
+
+ default:
+ stubManager.Write("Error");
+
+ break;
+ }
+
+ return resualt;
+ }
+
+
+//--------------------------------
+int open_valve (int valve_nm,int valve_type,int check_valve) //valve_type=0 is Air ,1 is Ink ; check_valve=1 send feedbak
+{
+ int temp1=Convert_Midtank_No[valve_nm-1] ;
+
+ string temp;
+ SetBit (F3_VALVE_OUT,(((valve_type+1)*8)- temp1), 1);
+
+ if (check_valve!=0)
+ {
+ temp="Air";
+ if (valve_type==1)
+ temp="Ink";
+
+ DialogResult result = MessageBox.Show("Did " + temp + "Valve of Midtank " + valve_nm +" open?", "Warning",MessageBoxButtons.YesNo);
+ if(result == DialogResult.No)
+ {
+// Units_status[(valve_nm-1)*3+valve_type,1]="Fail";
+ stubManager.Write(temp +"Valve\tFail\n");
+ return 0;
+ }
+ else
+ {
+// Units_status[(valve_nm-1)*3+valve_type,1]="Pass";
+ stubManager.Write(temp +"Valve\tOpen\n");
+ return 1;
+ }
+
+ }
+ return 1;
+
+}
+//--------------------------------
+int close_valve (int valve_nm,int valve_type,int check_valve)
+{
+ int temp1=Convert_Midtank_No[valve_nm-1];
+
+ string temp;
+ SetBit (F3_VALVE_OUT,(((valve_type+1)*8)- temp1), 0);
+ if (check_valve!=0)
+ {
+ temp="Air";
+ if (valve_type==1)
+ temp="Ink";
+
+ DialogResult result = MessageBox.Show("Did " + temp +" Valve of Midtank " + valve_nm +" close?", "Warning",MessageBoxButtons.YesNo);
+ if(result == DialogResult.No)
+ {
+// Units_status[(valve_nm-1)*3+valve_type,1]="Fail";
+ stubManager.Write(temp +"Valve\tFail\n");
+ return 0;
+ }
+ else
+ {
+// Units_status[(valve_nm-1)*3+valve_type,1]="Pass";
+ stubManager.Write(temp +"Valve\tclose\n");
+ return 1;
+ }
+ }
+ return 1;
+
+}
+
+public Int32 SetBit(Int32 Adr, Int32 BitNo, Int32 Bit)
+{
+ Int32 BitMask;
+ var RetVal = Fpga_Read_Reg(Adr);
+ Int32 RV = (Int32) RetVal.Value;
+
+ if (Bit == 0x1)
+ {
+ BitMask = 0x1 << BitNo;
+ RV = RV | BitMask;
+ Fpga_Write_Reg( Adr, RV );
+ }
+ else if (Bit == 0x0)
+ {
+ BitMask = ~(0x1 << BitNo);
+ RV = RV & BitMask;
+ Fpga_Write_Reg(Adr, RV );
+ }
+ return 1;
+}
+
+int Fpga_Write_Reg(Int32 Addr, Int32 Data)
+{
+ var response = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,Addr, Data);
+
+ return 1;
+}
+
+
+Int32 check_valve (Int32 valve_nm,int valve_type)
+{
+ Int32 temp1=Convert_Midtank_No[valve_nm-1];
+
+ var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F3_VALVE_OUT);
+ Int32 RV =(Int32) response.Value & 0xffff ;
+ RV = RV & ( 0x1 << (((valve_type+1)*8)- temp1));
+ return RV;
+
+}
+
+
+StubFpgaReadRegResponse Fpga_Read_Reg(Int32 Addr)
+{
+ var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,Addr);
+ response.Value = response.Value & 0xffff;
+
+ return response;
+}
+
+
+
+
+//end mati \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/New_Calibrate_Midtank_pressure_sensors2.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/New_Calibrate_Midtank_pressure_sensors2.cs
new file mode 100644
index 000000000..403d0b818
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/New_Calibrate_Midtank_pressure_sensors2.cs
@@ -0,0 +1,447 @@
+using System;
+using System.IO;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.PMR.EmbeddedParameters;
+using Tango.Stubs;
+
+//----------------------
+const double MIN_SLOP=0.7;
+const double MAX_SLOP=1.4;
+const double ERROR_SLOP=-1;
+const double MIN_50cc_on_volt=2.3;
+const double MAX_50cc_on_volt=3.2;
+const double ERROR_50cc_on_volt=-1;
+
+int [] Convert_Midtank_No = new Int32 [8] {1,3,5,7,2,4,6,8};
+uint [,] ADC_Add_Chnl = new uint [8,2] {
+ {0x44,0x20},
+ {0x44,0x08},
+ {0x46,0x80},
+ {0x46,0x20},
+ {0x44,0x10},
+ {0x44,0x04},
+ {0x46,0x40},
+ {0x46,0x10},
+ };
+
+
+const Int32 F3_VALVE_OUT = 0x600008E2 ;
+string Machine_SN ;
+private const string FILE_PATH = @"C:\MidTankLog\";
+string File_name;
+double Full_Cartridge=1000; // on CC
+double Slop=0.92;
+//----------------------
+const Int32 I2C_ID = 2;
+//const Int32 I2C_Slave_Add = 0x46; //must be 0x40, 0x44 or 0x46
+//----------------------
+
+
+public void OnExecute(StubManager stubManager)
+{
+ Int32 Timout ;
+ Int32 Interval;
+ Int32 midtankno = 0;
+ double Full_Point=0; //on Voltage
+ double resualt;
+ double Sum=0 ;
+ double Old_Sum=0 ;
+ double Start_Point=0;
+
+
+ if (!Directory.Exists(FILE_PATH))
+ {
+ Directory.CreateDirectory(FILE_PATH);
+ }
+
+
+
+ var response = stubManager.ShowResponseWindow("Enter Midtank S/N: ", "");
+ stubManager.Write("\n");
+ Machine_SN = response;
+ stubManager.WriteLine(Machine_SN);
+ File_name= FILE_PATH +Machine_SN + DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".csv";
+ stubManager.Write(File_name);
+ stubManager.WriteToFile(File_name,"MidTank S/N:," + Machine_SN);
+
+
+ var response1 = stubManager.ShowResponseWindow("Enter Midtank number to calibrate (1-8):", "");
+ stubManager.WriteLine(response1);
+ midtankno = Int32.Parse(response1);
+ stubManager.AppendToFile(File_name,"MidTank Number:\t" + response1);
+ if (midtankno==8)
+ {
+ Slop=1;
+ Timout=60; //60 minutes
+ Interval=60; //60 second
+ }
+ else
+ {
+ Slop=0.92;
+ Timout=10*2; //10 minutes
+ Interval=30; //30 second
+
+ }
+ var response10 = stubManager.ShowResponseWindow("Enter Cartridge Valume on CC (500-1500):", "");
+ stubManager.WriteLine(response10);
+ Full_Cartridge = double.Parse(response10);
+ stubManager.AppendToFile(File_name,"Cartridge Valume:\t" + response10);
+ stubManager.AppendToFile(File_name,"Slop value:\t" + Slop);
+
+
+ DialogResult result = MessageBox.Show("Are you sure to calibrate Midtank No: "+ midtankno + " with "+ Full_Cartridge +" CC" , "Warning",MessageBoxButtons.YesNo);
+ if(result == DialogResult.Yes)
+ {
+
+
+
+ string box_msg = "Please Insert cartridge ";
+
+ MessageBox.Show(box_msg);
+
+ open_valve(midtankno,1,1) ; //open Air valve
+ open_valve(midtankno,0,1) ; //open Ink valve
+ Int32 i=0;
+ while (i<Timout) //check for 15 minitus
+ {
+ Sum=0;
+ for (Int32 j=0;j<Interval;j++)
+ {
+ resualt=read_pressure_sensor(midtankno);
+ stubManager.AppendToFile(File_name,resualt+",V");
+ Sum=Sum+resualt;
+ Thread.Sleep(1000);
+ }
+
+
+ if (i==0)
+ Start_Point=Sum/Interval;
+
+ if (Sum>Old_Sum)
+ Old_Sum=Sum-Old_Sum;
+ else
+ Old_Sum=Old_Sum-Sum;
+
+
+ if ((check_valve(midtankno,1) != 0) && (check_valve(midtankno,0) != 0))
+ {
+ i++;
+ if ( Old_Sum <0.02)
+ i=Timout+1; //end
+ Old_Sum=Sum;
+ }
+ else
+ {
+ open_valve(midtankno,1,0) ; //open Air valve
+ open_valve(midtankno,0,0) ; //open Ink valve
+ Old_Sum=0;
+
+ }
+ }
+ Full_Point=Sum/Interval;
+
+
+ close_valve(midtankno,1,1) ; //close Air valve
+ close_valve(midtankno,0,1) ; //close Ink valve
+
+
+ if (insert_slop_t_eeprom(Full_Point, midtankno,Start_Point)==0)
+ {
+ box_msg ="Turn Power Off and On to finish the calibration.";
+ MessageBox.Show(box_msg);
+ }
+ else
+ {
+ box_msg ="Calibration error";
+ MessageBox.Show(box_msg);
+
+ }
+ }
+
+}
+
+
+ int insert_slop_t_eeprom( double FullPoint,Int32 midtankno, double StartPoint)
+{
+// stubManager.Write("\n ");
+
+ StartPoint=FullPoint-StartPoint;
+ StartPoint=StartPoint/Full_Cartridge;
+ if ((StartPoint>0.7 ) && (StartPoint>1.3 ))
+ {
+ MidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest();
+
+ MidTankData midTankData = new MidTankData();
+ midTankData.MidTankId = Convert.ToUInt32 (midtankno-1);
+ midTankData.InitialOffsetA =FullPoint - (Full_Cartridge/1000-0.1)/Slop;
+ midTankData.SlopeB = Slop;
+
+ stubManager.Write("\nMidtank No:" + midtankno + "=\tVoltage Zero is ="+(FullPoint - (Full_Cartridge/1000-0.1)/Slop)+"\tSlop="+ Slop);
+ stubManager.AppendToFile(File_name,"\nMidtank No:" + midtankno + "=\tVoltage Zero is ="+(FullPoint - (Full_Cartridge/1000-0.1)/Slop)+"\tSlop="+ Slop);
+
+
+ midTankDataSetupRequest.MidTankInfo.Add(midTankData);
+
+
+ var response = stubManager.Run<MidTankDataSetupResponse>(midTankDataSetupRequest);
+
+ return 0;
+ }
+ else
+ stubManager.Write("\nError");
+ stubManager.AppendToFile(File_name,"\n Slop Error");
+ return 1;
+
+}
+
+
+int adc_configuration(uint I2C_Slave_Add,uint channel )
+ {
+ StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
+ stubI2CWriteBytesRequest.I2CId = I2C_ID;
+ stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
+
+ UInt32 uInt32 = new UInt32();
+ stubI2CWriteBytesRequest.BytesTWrite.Add(0x00);//Byte 0 to write
+ stubI2CWriteBytesRequest.BytesTWrite.Add(channel);//Byte 1 to Write, must be 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02 or 0x01 for different channels
+ stubI2CWriteBytesRequest.BytesTWrite.Add(0x80);//Byte 2 to Write
+
+ var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
+
+ return 1;
+ }
+
+
+int adc_set_for_read_ch(uint I2C_Slave_Add)
+ {
+ StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
+ stubI2CWriteBytesRequest.I2CId = I2C_ID;
+ stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
+
+ UInt32 uInt32 = new UInt32();
+ stubI2CWriteBytesRequest.BytesTWrite.Add(0x01);//Byte 0 to write
+
+ var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
+
+ return 1;
+ }
+
+
+
+
+double adc_read_ch(uint I2C_Slave_Add)
+ {
+ StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
+ stubI2CReadBytesRequest.I2CId = I2C_ID;
+ stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add;
+ stubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read
+
+ var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
+ uint temph=0;
+ uint templ=0;
+ uint temp;
+ double calc;
+ double calc1;
+ double calc2;
+ temph=response1.ReadBytes[0];
+ templ=response1.ReadBytes[1];
+ temp = (temph << 8) | templ;
+ temp=temp & 0x0fff;
+
+ calc = (double)temp *2.5 / 4096.0;
+
+ calc1 = (1.96- calc) * 4.64 + 1.96;
+ stubManager.Write("Vsensor [volts]:\t");
+ stubManager.Write(calc1 + "\n");
+
+
+ return calc1;
+ }
+
+double read_pressure_sensor(Int32 i )
+ {
+double resualt =0 ;
+ switch (i)
+ {
+ case 1:
+ adc_configuration(0x44,0x20); //a2d_address 0x44 channel channel 2
+ adc_set_for_read_ch(0x44);
+ resualt=adc_read_ch(0x44);
+ break;
+
+ case 2:
+ adc_configuration(0x44,0x08); //a2d_address 0x44 channel channel 4
+ adc_set_for_read_ch(0x44);
+ resualt=adc_read_ch(0x44);
+ break;
+
+ case 3:
+ adc_configuration(0x46,0x80); //a2d_address 0x46 channel channel 0
+ adc_set_for_read_ch(0x46);
+ resualt=adc_read_ch(0x46);
+ break;
+
+ case 4:
+ adc_configuration(0x46,0x20); //a2d_address 0x46 channel channel 2
+ adc_set_for_read_ch(0x46);
+ resualt=adc_read_ch(0x46);
+ break;
+
+ case 5:
+ adc_configuration(0x44,0x10); //a2d_address 0x44 channel channel 3
+ adc_set_for_read_ch(0x44);
+ resualt=adc_read_ch(0x44);
+ break;
+
+ case 6:
+ adc_configuration(0x44,0x04); //a2d_address 0x44 channel channel 5
+ adc_set_for_read_ch(0x44);
+ resualt=adc_read_ch(0x44);
+ break;
+
+ case 7:
+ adc_configuration(0x46,0x40); //a2d_address 0x46 channel channel 1
+ adc_set_for_read_ch(0x46);
+ resualt=adc_read_ch(0x46);
+ break;
+
+ case 8:
+ adc_configuration(0x46,0x10); //a2d_address 0x46 channel channel 3
+ adc_set_for_read_ch(0x46);
+ resualt=adc_read_ch(0x46);
+ break;
+
+ default:
+ stubManager.Write("Error");
+
+ break;
+ }
+
+ return resualt;
+ }
+
+
+//--------------------------------
+int open_valve (int valve_nm,int valve_type,int check_valve) //valve_type=0 is Air ,1 is Ink ; check_valve=1 send feedbak
+{
+ int temp1=Convert_Midtank_No[valve_nm-1] ;
+
+ string temp;
+ SetBit (F3_VALVE_OUT,(((valve_type+1)*8)- temp1), 1);
+
+ if (check_valve!=0)
+ {
+ temp="Air";
+ if (valve_type==1)
+ temp="Ink";
+
+ DialogResult result = MessageBox.Show("Did " + temp + "Valve of Midtank " + valve_nm +" open?", "Warning",MessageBoxButtons.YesNo);
+ if(result == DialogResult.No)
+ {
+// Units_status[(valve_nm-1)*3+valve_type,1]="Fail";
+ stubManager.Write(temp +"Valve\tFail\n");
+ return 0;
+ }
+ else
+ {
+// Units_status[(valve_nm-1)*3+valve_type,1]="Pass";
+ stubManager.Write(temp +"Valve\tOpen\n");
+ return 1;
+ }
+
+ }
+ return 1;
+
+}
+//--------------------------------
+int close_valve (int valve_nm,int valve_type,int check_valve)
+{
+ int temp1=Convert_Midtank_No[valve_nm-1];
+
+ string temp;
+ SetBit (F3_VALVE_OUT,(((valve_type+1)*8)- temp1), 0);
+ if (check_valve!=0)
+ {
+ temp="Air";
+ if (valve_type==1)
+ temp="Ink";
+
+ DialogResult result = MessageBox.Show("Did " + temp +" Valve of Midtank " + valve_nm +" close?", "Warning",MessageBoxButtons.YesNo);
+ if(result == DialogResult.No)
+ {
+// Units_status[(valve_nm-1)*3+valve_type,1]="Fail";
+ stubManager.Write(temp +"Valve\tFail\n");
+ return 0;
+ }
+ else
+ {
+// Units_status[(valve_nm-1)*3+valve_type,1]="Pass";
+ stubManager.Write(temp +"Valve\tclose\n");
+ return 1;
+ }
+ }
+ return 1;
+
+}
+
+public Int32 SetBit(Int32 Adr, Int32 BitNo, Int32 Bit)
+{
+ Int32 BitMask;
+ var RetVal = Fpga_Read_Reg(Adr);
+ Int32 RV = (Int32) RetVal.Value;
+
+ if (Bit == 0x1)
+ {
+ BitMask = 0x1 << BitNo;
+ RV = RV | BitMask;
+ Fpga_Write_Reg( Adr, RV );
+ }
+ else if (Bit == 0x0)
+ {
+ BitMask = ~(0x1 << BitNo);
+ RV = RV & BitMask;
+ Fpga_Write_Reg(Adr, RV );
+ }
+ return 1;
+}
+
+int Fpga_Write_Reg(Int32 Addr, Int32 Data)
+{
+ var response = stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,Addr, Data);
+
+ return 1;
+}
+
+
+Int32 check_valve (Int32 valve_nm,int valve_type)
+{
+ Int32 temp1=Convert_Midtank_No[valve_nm-1];
+
+ var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,F3_VALVE_OUT);
+ Int32 RV =(Int32) response.Value & 0xffff ;
+ RV = RV & ( 0x1 << (((valve_type+1)*8)- temp1));
+ return RV;
+
+}
+
+
+StubFpgaReadRegResponse Fpga_Read_Reg(Int32 Addr)
+{
+ var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,Addr);
+ response.Value = response.Value & 0xffff;
+
+ return response;
+}
+
+
+
+
+//end mati \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/midtanksetparams.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/midtanksetparams.cs
index 352666c85..d3aa81e83 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/midtanksetparams.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/MidTank/midtanksetparams.cs
@@ -13,13 +13,50 @@ using Tango.PMR.EmbeddedParameters;
public void OnExecute(StubManager stubManager)
{
+ uint midtankno = 0;
+ double Slop;
+ double Zero_Point;
+
+MidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest();
+ var response = stubManager.ShowResponseWindow("Enter Midtank number to calibrate (1-8):", "");
+ //stubManager.WriteLine(response);
+ stubManager.Write("\n");
+ midtankno = uint.Parse(response);
-MidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest();
+ var response1 = stubManager.ShowResponseWindow("Enter Midtank Slop ", "");
+ //stubManager.WriteLine(response);
+ stubManager.Write("\n");
+ Slop = double.Parse(response1);
+
+ var response2= stubManager.ShowResponseWindow("Enter Zero point (100cc)", "");
+ //stubManager.WriteLine(response);
+ stubManager.Write("\n");
+ Zero_Point = double.Parse(response2);
+
+ DialogResult result = MessageBox.Show("Are you sure to calibrate Midtank No: "+ midtankno + "with Slop "+ Slop +" and Zero_Point " + Zero_Point , "Warning",MessageBoxButtons.YesNo);
+ if(result == DialogResult.Yes)
+ {
+ MidTankData midTankData = new MidTankData();
+ midTankData.MidTankId = midtankno-1;
+ midTankData.InitialOffsetA = Zero_Point;
+ midTankData.SlopeB = Slop;
+ midTankDataSetupRequest.MidTankInfo.Add(midTankData);
+ var response3 = stubManager.Run<MidTankDataSetupResponse>(midTankDataSetupRequest);
+ string box_msg ="Turn Power Off and On to finish the calibration.";
+ MessageBox.Show(box_msg);
+
+ }
+
+}
+
+
+
+//MidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest();
//50cc [V] 1.93242734375 1.94375546875 1.9295953125 1.935259375 1.92109921875 2.8245171875 1.92676328125 1.92676328125
//b [mL/V] -1 -1 -1 -1 -1 0.885922630082808 -1 -1
-
+/*
MidTankData midTankData = new MidTankData();
midTankData.MidTankId = 0;
midTankData.InitialOffsetA = 2.64273428916931;
@@ -76,9 +113,39 @@ midTankDataSetupRequest.MidTankInfo.Add(midTankData7);
var response = stubManager.Run<MidTankDataSetupResponse>(midTankDataSetupRequest);
-
-
-
+ */
+//}
+
+/*
+ int insert_slop_t_eeprom()
+{
+ stubManager.Write("\n ");
+
+ MidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest();
+
+
+ for (uint i=1;i<9;i++)
+ {
+ if (voltage_array[i,4]!= ERROR_SLOP)
+ {
+ MidTankData midTankData = new MidTankData();
+ midTankData.MidTankId = i-1;
+ midTankData.InitialOffsetA = voltage_array[i,2];
+ midTankData.SlopeB = voltage_array[i,4];
+
+ stubManager.Write("\nMidtank No:" + i+ "=\tA="+voltage_array[i,2]+"\tSlop="+voltage_array[i,4]);
+
+
+ midTankDataSetupRequest.MidTankInfo.Add(midTankData);
-} \ No newline at end of file
+ }
+var response = stubManager.Run<MidTankDataSetupResponse>(midTankDataSetupRequest);
+
+
+
+ }
+}
+
+*/
+
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/New_DyeHead/Test_Actuator.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/New_DyeHead/Test_Actuator.cs
new file mode 100644
index 000000000..f9555a05b
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/New_DyeHead/Test_Actuator.cs
@@ -0,0 +1,42 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+
+public void OnExecute(StubManager stubManager)
+{
+ int sleep_up=2000;//2 second
+ int sleep_dn=2000;//2 second
+ var response = stubManager.ShowResponseWindow("Enter Loop Number for Actuator.", "");
+ //stubManager.WriteLine(response);
+ int Loop_Nm = int.Parse(response);
+
+ for (int i=0;i<Loop_Nm;i++)
+ {
+
+
+ stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf000); //mov ACTUATOR-IN down
+ Thread.Sleep(sleep_dn);
+ stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf101); //mov ACTUATOR-OUT up
+ Thread.Sleep(sleep_dn);
+ stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf001); //mov ACTUATOR-IN up
+ Thread.Sleep(sleep_up);
+ stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf100); //mov ACTUATOR-OUT down
+ Thread.Sleep(sleep_up);
+
+ }
+ // stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf100); //mov ACTUATOR-OUTdown
+ // stubManager.Run<ProgressResponse>("ProgressRequest" ,0xfead, 0xcaf101); //mov ACTUATOR-OUT up
+
+
+
+
+
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/New_DyeHead/Test_Lid.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/New_DyeHead/Test_Lid.cs
new file mode 100644
index 000000000..110a0f09b
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/New_DyeHead/Test_Lid.cs
@@ -0,0 +1,145 @@
+using System;
+using System.Text;
+using System.IO;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+
+const int New_DyeHead_UNDER_TEST=48;
+
+const Int32 MGNET_OPEN=0x42F801;
+const Int32 MGNET_EN=0x42F701;
+const Int32 MGNET_CLOSE=0x42F800;
+const Int32 MGNET_DIS=0x42F700;
+
+const Int32 LS_FRONT=0X460110;
+const Int32 LS_REAR=0X460120;
+const Int32 LS_UPPER=0X460140;
+const Int32 LS_SPARE=0X460180;
+
+const Int32 DyeingHeadLid_Motor = 2;
+
+//--------------------------------------------------------------------------------
+
+public void OnExecute(StubManager stubManager)
+{
+ var response = stubManager.ShowResponseWindow("Enter Loop Number for Dye Head Lead.", "");
+ //stubManager.WriteLine(response);
+ int Loop_Nm = int.Parse(response);
+
+ for (int i=0;i<Loop_Nm;i++)
+ {
+ if (Test_Magnet_Motor_LS_New_DyeHead() != 0 )
+ {
+ i=Loop_Nm;
+ stubManager.Write("Error");
+ }
+ Thread.Sleep(2000);
+ }
+}
+
+//-------------------------------------------------------------
+
+//--------------------------------------------
+ int Test_Magnet_Motor_LS_New_DyeHead()
+{
+ Int32 temp;
+ int i=0;
+
+//---------------------- open Magnet ----------------------------
+ stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_OPEN); // turn magnet on
+ Thread.Sleep(100);
+
+ stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_EN); // magnet enable
+ Thread.Sleep(100);
+
+ Thread.Sleep(1000);
+//---------------------- chekc Magnet is open ----------------------------
+// DialogResult result = MessageBox.Show("Make shure, Magnet is open and DyeHead cover on front.", "Warning",MessageBoxButtons.YesNo);
+// if(result == DialogResult.No)
+// {
+// stubManager.Write("Magnet is close\n");
+// return 0;
+// }
+ temp=read_pio (LS_UPPER); // read LS_UPPER
+ if (temp != 0)
+ {
+ stubManager.Write("LS_UPPER of Magnet is close\n");
+ return 1;
+ }
+ stubManager.Write("Magnet is Open\n");
+
+
+//---------------------- Move DyeingHead Lid Motor rear----------------------------
+ stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, true, 250);
+ stubManager.Write("*** Open Lid Head ********* \n");
+
+ temp = 0;
+ i=0;
+ while ((temp == 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec
+ {
+ temp=read_pio (LS_REAR); // read LS_REAR
+ Thread.Sleep(50);
+
+ i++;
+ }
+
+ stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,3); //stop motor
+ if(i==200)
+ {
+ stubManager.Write("LS_REAR Not calibrate\n");
+ return 1;
+ }
+
+//---------------------- Move DyeingHead Lid Motor front----------------------------
+ stubManager.Write("*** Close Lid Head \n");
+ stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,DyeingHeadLid_Motor, false, 250);
+ temp = 0;
+ i=0;
+ while ((temp == 0x0)&& (i<200) ) //wait until Limit Switch or timeout 200*50msec=10sec
+ {
+ temp=read_pio (LS_FRONT); // read LS_FRONT
+ Thread.Sleep(50);
+ i++;
+ }
+ stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,3); //stop motor
+ if(i==200)
+ {
+ stubManager.Write("LS_FRONT Not calibrate\n");
+ return 1;
+ }
+//---------------------- Close Magnet ----------------------------
+ stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_CLOSE); // turn magnet off
+ Thread.Sleep(2000);
+ stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,MGNET_DIS); // magnet Disable
+
+ stubManager.Write("Magnet is Close\n");
+ Thread.Sleep(1000);
+
+ temp=read_pio (LS_UPPER); // read LS_UPPER
+ if (temp == 0)
+ {
+ stubManager.Write("LS_UPPER of Magnet is open\n");
+ return 1;
+ }
+ stubManager.Write("LS_UPPER of Magnet is close\n");
+ return 0;
+ }
+
+Int32 read_pio(Int32 i2c_input)
+{
+ Int32 temp=0;
+ var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,i2c_input); // read break
+
+ temp = (Int32) (response.Progress);
+ temp =temp & (i2c_input& 0xff); //if break ok
+
+ return temp;
+}
+//end mati
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Get_PowerStep01_Parameters.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Get_PowerStep01_Parameters.cs
new file mode 100644
index 000000000..ebe0dbf0f
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Get_PowerStep01_Parameters.cs
@@ -0,0 +1,227 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+
+//unmark Auto logging !
+
+const Int32 x_POWERSTEP01_CONFIG = 0x1A;
+const Int32 x_POWERSTEP01_STATUS = 0x1B;
+const Int32 x_POWERSTEP01_GATECFG1 = 0x18;
+const Int32 x_POWERSTEP01_GATECFG2 = 0x19;
+
+const Int32 x_ABS_POS = 0x01;
+const Int32 x_EL_POS = 0x02;
+const Int32 x_MARK = 0x03;
+const Int32 x_SPEED = 0x04;
+const Int32 x_ACC = 0x05;
+const Int32 x_DEC = 0x06;
+const Int32 x_MAX_SPEED = 0x07;
+const Int32 x_MIN_SPEED = 0x08;
+const Int32 x_FS_SPD = 0x15;
+const Int32 x_KVAL_HOLD = 0x09;
+const Int32 x_KVAL_RUN = 0x0A;
+const Int32 x_KVAL_ACC = 0x0B;
+const Int32 x_KVAL_DEC = 0x0C;
+const Int32 x_INT_SPD = 0x0D;
+const Int32 x_ST_SLP = 0x0E;
+const Int32 x_FN_SLP_ACC = 0x0F;
+const Int32 x_FN_SLP_DEC = 0x10;
+const Int32 x_K_THERM = 0x11;
+const Int32 x_ADC_OUT = 0x12;
+const Int32 x_OCD_TH = 0x13;
+const Int32 x_STALL_TH = 0x14;
+const Int32 x_STEP_MODE = 0x16;
+const Int32 x_ALARM_EN = 0x17;
+const Int32 x_CONFIG = 0x18;
+const Int32 x_STATUS = 0x19;
+//-------------------------------
+const Int32 x_GET_PARAM = 0x20;
+//-------------------------------
+const Int32 Max_Motor_ID = 25;
+
+string[] Motor_ID = new string[30];
+
+
+Motor_ID[0] ="DH_CLEANHEAD ";
+Motor_ID[1] ="DH_CLEANMECH ";
+Motor_ID[2] ="DH_LID ";
+Motor_ID[3] ="DRYER_DRIVING";
+Motor_ID[4] ="DRYER_LID ";
+Motor_ID[5] ="DRYER_LOADARM";
+Motor_ID[6] ="DISPENCER_1 ";
+Motor_ID[7] ="DISPENCER_2 ";
+Motor_ID[8] ="DISPENCER_3 ";
+Motor_ID[9] ="DISPENCER_4 ";
+Motor_ID[10]="DISPENCER_5 ";
+Motor_ID[11]="DISPENCER_6 ";
+Motor_ID[12]="DISPENCER_7 ";
+Motor_ID[13]="DISPENCER_8 ";
+Motor_ID[14]="SCREW ";
+Motor_ID[15]="WINDER ";
+Motor_ID[16]="LDANCER1 ";
+Motor_ID[17]="LDANCER2 ";
+Motor_ID[18]="LDRIVING ";
+Motor_ID[19]="LLODING ";
+Motor_ID[20]="LPIVOT ";
+Motor_ID[21]="RDANCER ";
+Motor_ID[22]="RDRIVING ";
+Motor_ID[23]="RLOADARM ";
+Motor_ID[24]="RLODING ";
+Motor_ID[25]="SPARE1_1 ";
+Motor_ID[26]="SPARE1_2 ";
+Motor_ID[27]="SPARE2_1 ";
+Motor_ID[28]="SPARE2_2 ";
+Motor_ID[29]="SPARE3 ";
+
+public void OnExecute(StubManager stubManager)
+{
+
+ var i = stubManager.ShowResponseWindow("Please Enter Motor ID:");
+
+ stubManager.Write("Motor_ID:\t\t ");
+ stubManager.Write(i);
+ stubManager.Write("\n");
+
+ stubManager.Write("ABS_POS:\t\t");
+ var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\n");
+
+ stubManager.Write("EL_POS:\t\t");
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_EL_POS)<<16, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\n");
+
+ stubManager.Write("MARK:\t\t\t");
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MARK)<<24, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\n");
+
+ stubManager.Write("SPEED:\t\t\t");
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_SPEED)<<24, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\n");
+
+ stubManager.Write("ACC:\t\t\t");
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\n");
+
+ stubManager.Write("DEC:\t\t\t");
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\n");
+
+ stubManager.Write("MAX_SPEED:\t\t");
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MAX_SPEED)<<16, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\n");
+
+ stubManager.Write("MIN_SPEED:\t\t");
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\n");
+
+ stubManager.Write("FS_SPD:\t\t");
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\n");
+
+ stubManager.Write("KVAL\\TVAL_HOLD:\t");
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_HOLD)<<8, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\n");
+
+ stubManager.Write("KVAL\\TVAL_RUN:\t");
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_RUN)<<8, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\n");
+
+ stubManager.Write("KVAL\\TVAL_ACC:\t");
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_ACC)<<8, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\n");
+
+ stubManager.Write("KVAL\\TVAL_DEC:\t");
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KVAL_DEC)<<8, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\n");
+
+ stubManager.Write("INT_SPEED:\t\t");
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_INT_SPD)<<16, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\n");
+
+ stubManager.Write("ST_SLP\\T_FAST:\t");
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ST_SLP)<<8, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\n");
+
+ stubManager.Write("FN_SLP_ACC\\TON_MIN:\t");
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_ACC)<<8, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\n");
+
+ stubManager.Write("FN_SLP_DEC\\TOFF_MIN:");
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_DEC)<<8, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\n");
+
+ stubManager.Write("K_THERM:\t\t");
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_K_THERM)<<8, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\n");
+
+ stubManager.Write("ADC_OUT:\t\t");
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\n");
+
+ stubManager.Write("OCD_TH:\t\t");
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\n");
+
+ stubManager.Write("STALL_TH:\t\t");
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\n");
+
+ stubManager.Write("STEP_MODE:\t\t");
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\n");
+
+ stubManager.Write("ALARM_EN:\t\t");
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ALARM_EN)<<8, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\n");
+
+ stubManager.Write("GATECFG1:\t\t");
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG1)<<16, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\n");
+
+ stubManager.Write("GATECFG2:\t\t");
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG2)<<8, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\n");
+
+ stubManager.Write("CONFIG:\t\t");
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_CONFIG)<<16, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\n");
+
+ stubManager.Write("STATUS:\t\t");
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_STATUS)<<16, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\n");
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Motor_GMotor_Get_Param_Powerstep01_rev3.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Motor_GMotor_Get_Param_Powerstep01_rev3.cs
new file mode 100644
index 000000000..384c079fa
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/PowerStep01/Motor_GMotor_Get_Param_Powerstep01_rev3.cs
@@ -0,0 +1,237 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+
+//unmark Auto logging !
+
+//General Configuration
+const Int32 x_ABS_POS = 0x01;
+const Int32 x_EL_POS = 0x02;
+const Int32 x_MARK = 0x03;
+const Int32 x_SPEED = 0x04;
+const Int32 x_ACC = 0x05;
+const Int32 x_DEC = 0x06;
+const Int32 x_MAX_SPEED = 0x07;
+const Int32 x_MIN_SPEED = 0x08;
+//VOLTAGE / CURRENT
+const Int32 x_KTVAL_HOLD = 0x09;
+const Int32 x_KTVAL_RUN = 0x0A;
+const Int32 x_KTVAL_ACC = 0x0B;
+const Int32 x_KTVAL_DEC = 0x0C;
+const Int32 x_INT_SPD = 0x0D;//voltage
+const Int32 x_ST_SLP_T_FAST = 0x0E;
+const Int32 x_FN_SLP_ACC_TON_MIN = 0x0F;
+const Int32 x_FN_SLP_DEC_TOFF_MIN = 0x10;
+const Int32 x_K_THERM = 0x11;//VOLTAGE
+const Int32 x_ADC_OUT = 0x12;
+const Int32 x_OCD_TH = 0x13;
+const Int32 x_STALL_TH = 0x14;//VOLTAGE
+const Int32 x_FS_SPD = 0x15;
+const Int32 x_STEP_MODE = 0x16;
+const Int32 x_ALARM_EN = 0x17;
+const Int32 x_POWERSTEP01_GATECFG1 = 0x18;
+const Int32 x_POWERSTEP01_GATECFG2 = 0x19;
+const Int32 x_POWERSTEP01_CONFIG = 0x1A;
+const Int32 x_POWERSTEP01_STATUS = 0x1B;
+//VOLTAGE / CURRENT
+
+//-------------------------------
+const Int32 x_GET_PARAM = 0x20;
+//-------------------------------
+Int32 Start_index = 0; // start from motor
+
+const Int32 Max_Motor_ID = 25;
+
+string[] Motor_ID = new string[30];
+
+
+Motor_ID[0] ="DH_CLEANHEAD ";
+Motor_ID[1] ="DH_CLEANMECH ";
+Motor_ID[2] ="DH_LID ";
+Motor_ID[3] ="DRYER_DRIVING";
+Motor_ID[4] ="DRYER_LID ";
+Motor_ID[5] ="DRYER_LOADARM";
+Motor_ID[6] ="DISPENCER_1 ";
+Motor_ID[7] ="DISPENCER_2 ";
+Motor_ID[8] ="DISPENCER_3 ";
+Motor_ID[9] ="DISPENCER_4 ";
+Motor_ID[10]="DISPENCER_5 ";
+Motor_ID[11]="DISPENCER_6 ";
+Motor_ID[12]="DISPENCER_7 ";
+Motor_ID[13]="DISPENCER_8 ";
+Motor_ID[14]="SCREW ";
+Motor_ID[15]="WINDER ";
+Motor_ID[16]="LDANCER1 ";
+Motor_ID[17]="LDANCER2 ";
+Motor_ID[18]="LDRIVING ";
+Motor_ID[19]="LLODING ";
+Motor_ID[20]="LPIVOT ";
+Motor_ID[21]="RDANCER ";
+Motor_ID[22]="RDRIVING ";
+Motor_ID[23]="RLOADARM ";
+Motor_ID[24]="RLODING ";
+Motor_ID[25]="SPARE1_1 ";
+Motor_ID[26]="SPARE1_2 ";
+Motor_ID[27]="SPARE2_1 ";
+Motor_ID[28]="SPARE2_2 ";
+Motor_ID[29]="SPARE3 ";
+
+
+
+
+public void OnExecute(StubManager stubManager)
+{
+ Int32 i = 0;
+
+ Int32 motname = 0;
+//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000380 , 0x06b9); //7ff mati
+//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000390 , 0x003f);
+//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000550 , 0x0003); //ff mati
+//stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000b80 , 0x001f);
+
+
+// stubManager.Write("\n\n");
+ stubManager.Write("MoTor\tABS_POS\tEL_POS\tMARK\tSPEED\tACC\tDEC\tMAX_SPEED\tMIN_SPEED\tKTVAL_HOLD\tKTVAL_RUN\tTKVAL_ACC\tTKVAL_DEC\tINT_SPD\tT_FAST\t TON_MIN\tTOFF_MIN\tK_THERM\tADC_OUT\tOCD_TH\tSTALL_TH\tFS_SPD\tSTEP_MODE\tALARM_EN\tGATECFG1\tGATECFG2\tCONFIG\tSTATUS\n");
+// stubManager.Write("------\t\t\t--------\t--------\t----------\t---\t\t---\t\t----------\t---------\t---------\t---------\t------\t\t--------\t------\n");
+
+
+
+ for (i = Start_index; i < Max_Motor_ID; i++)
+ {
+
+// if((i%8 ==0) )
+// {
+// }
+ //stubManager.Write(i);
+
+ stubManager.Write(Motor_ID[i]);
+ stubManager.Write("\t\t");
+
+ var response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ABS_POS)<<24, 0, 0);
+ stubManager.WriteHex(response.RecivedData,6);
+ stubManager.Write("\t");
+
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_EL_POS)<<16, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\t");
+
+
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MARK)<<24, 0, 0);
+ stubManager.WriteHex(response.RecivedData,6);
+ stubManager.Write("\t");
+
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_SPEED)<<24, 0, 0);
+ stubManager.WriteHex(response.RecivedData,6);
+ stubManager.Write("\t");
+
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ACC)<<16, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\t");
+
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_DEC)<<16, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\t");
+
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MAX_SPEED)<<16, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\t");
+
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_MIN_SPEED)<<16, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\t");
+
+
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_HOLD)<<8, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\t");
+
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_RUN)<<8, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\t");
+
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_ACC)<<8, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\t");
+
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_KTVAL_DEC)<<8, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\t");
+
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_INT_SPD)<<16, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\t");
+
+
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ST_SLP_T_FAST)<<8, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\t");
+
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_ACC_TON_MIN)<<8, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\t");
+
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FN_SLP_DEC_TOFF_MIN)<<8, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\t");
+
+
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_K_THERM)<<8, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\t");
+
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ADC_OUT)<<8, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\t");
+
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_OCD_TH)<<8, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\t");
+
+
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STALL_TH)<<8, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\t");
+
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_FS_SPD)<<16, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\t");
+
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_STEP_MODE)<<8, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\t");
+
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_ALARM_EN)<<8, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\t");
+
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG1)<<16, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\t");
+
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_GATECFG2)<<8, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\t");
+
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_CONFIG)<<16, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\t");
+
+ response = stubManager.Run<StubMotorResponse>("StubMotorRequest" ,i, (x_GET_PARAM | x_POWERSTEP01_STATUS)<<16, 0, 0);
+ stubManager.WriteHex(response.RecivedData,4);
+ stubManager.Write("\n");
+
+
+
+
+ }
+
+
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/fan1-4.cs b/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/fan1-4.cs
index 6e7617cc0..69f8e4d13 100644
--- a/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/fan1-4.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Assemblies/WHS/fan1-4.cs
@@ -12,7 +12,7 @@ using Tango.Stubs;
public void OnExecute(StubManager stubManager)
{
- int x=80;
+ int x=0;
// var response1 = stubManager.ShowResponseWindow("Please Enter fan value from 0 to 255:");
// int x = Int32.Parse(response1);
@@ -23,6 +23,7 @@ public void OnExecute(StubManager stubManager)
stubManager.Run<ProgressResponse>("ProgressRequest" ,0xffac4, x); //whs fan3 full
stubManager.Run<ProgressResponse>("ProgressRequest" ,0xffac5, x); //whs fan4 full
+ var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0x3ea, 6); //whs fan4 full
} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Head_Type_Indification_2.cs b/Software/Stubs Collection/stubs/Scripts/Head_Type_Indification_2.cs
new file mode 100644
index 000000000..a5f28a01d
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Head_Type_Indification_2.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+
+public void OnExecute(StubManager stubManager)
+{
+
+ var response = stubManager.Run<ProgressResponse>("ProgressRequest" ,0xFEAD, 0);
+
+ /* Response:
+ HEAD_TYPE_UNKNOWN // 0
+ HEAD_TYPE_FLAT_WITHOUT_CARD// 1
+ HEAD_TYPE_UNKNOWN_WITH_CARD// 2
+ HEAD_TYPE_FLAT// 3
+ HEAD_TYPE_ARC// 4
+ */
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/JIG_TESTER.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/JIG_TESTER.cs
index 7841b09eb..a90acd902 100644
--- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/JIG_TESTER.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/JIG_TESTER.cs
@@ -28,6 +28,7 @@ System.Timers.Timer timer;
string [,] Units_status = new string[50,2];
+string File_Name2;
string File_Name1 ;
string Status;
@@ -36,7 +37,7 @@ const int Winder =0 ;
const int LTFU =1 ;
string path;
-string path1="C:\\Jig_Log\\";
+string path1="C:\\Jig_Log\\";;
bool BlinkOn = false;
bool timer_started = false;
@@ -47,6 +48,10 @@ int UNIT_UNDER_TEST ;
public void OnExecute(StubManager stubManager)
{
+ string u =System.Environment.UserName;
+
+
+
Label Run_text = new Label ()
{
Width = 110,
@@ -219,7 +224,7 @@ public void OnExecute(StubManager stubManager)
Height = 20,
Text =" S/N"
};
- SN_lbl.Location = new Point (30, 10);
+ SN_lbl.Location = new Point (40, 10);
form1.Controls.Add(SN_lbl);
TextBox SN_TexstBox = new TextBox ()
{
@@ -229,6 +234,27 @@ public void OnExecute(StubManager stubManager)
};
SN_TexstBox.Location = new Point (40, 40);
form1.Controls.Add(SN_TexstBox);
+ //-----Create Lable to Part Number -----------
+
+ Label PN_lbl = new Label ()
+ {
+ Width = 150,
+ Height = 20,
+ Text =" P/N"
+ };
+ PN_lbl.Location = new Point (190, 10);
+ form1.Controls.Add(PN_lbl);
+
+ TextBox PN_TexstBox = new TextBox ()
+ {
+ Width = 150,
+ Height = 20,
+ Text =""
+ };
+ PN_TexstBox.Location = new Point (190, 40);
+ PN_TexstBox.CharacterCasing = CharacterCasing.Upper;
+
+ form1.Controls.Add(PN_TexstBox);
//----------Create Lable to LOCATION----------
Label Location_lbl = new Label ()
{
@@ -236,7 +262,7 @@ public void OnExecute(StubManager stubManager)
Height = 20,
Text ="LOCATION"
};
- Location_lbl.Location = new Point (300, 10);
+ Location_lbl.Location = new Point (440, 10);
form1.Controls.Add(Location_lbl);
TextBox Location_TexstBox = new TextBox ()
@@ -245,7 +271,7 @@ public void OnExecute(StubManager stubManager)
Height = 20,
Text =Location_str
};
- Location_TexstBox.Location = new Point (300, 40);
+ Location_TexstBox.Location = new Point (440, 40);
form1.Controls.Add(Location_TexstBox);
Run_text.Location = new System.Drawing.Point(300, 100);
@@ -254,6 +280,25 @@ public void OnExecute(StubManager stubManager)
Run_text.Font = new Font("Areal", 16, System.Drawing.FontStyle.Bold);
form1.Controls.Add(Run_text);
//--------------------------------------------------------------------------------
+ Button Open_Log_btm = new Button()
+ {
+ Width = 100,
+ Height = 40,
+ };
+ Open_Log_btm.Text = "Open Log File";
+ Open_Log_btm.BackColor = System.Drawing.Color.Red;
+ Open_Log_btm.Location = new System.Drawing.Point(300, 286);
+ Open_Log_btm.Enabled= false;
+ form1.Controls.Add(Open_Log_btm);
+
+
+ Open_Log_btm.Click += (_, __) =>
+ {
+ System.Diagnostics.Process.Start(File_Name2 );
+ };
+
+
+//--------------------------------------------------------------------------------
Button Stop_btm = new Button()
{
Width = 260,
@@ -263,6 +308,10 @@ public void OnExecute(StubManager stubManager)
Stop_btm.BackColor = System.Drawing.Color.Red;
Stop_btm.Location = new System.Drawing.Point(4, 286);
Stop_btm.Enabled= false;
+
+
+
+
Stop_btm.Click += (_, __) =>
{
timer.Stop();
@@ -273,7 +322,7 @@ public void OnExecute(StubManager stubManager)
};
form1.Controls.Add(Stop_btm);
-
+ disable_test();
void disable_test()
{
Winder_btm.Enabled = false;
@@ -286,23 +335,23 @@ public void OnExecute(StubManager stubManager)
Mixer_btm.Enabled= false;
NewMixer_btm.Enabled= false;
NewDyeHead_btm.Enabled= false;
- Stop_btm.Enabled= true;
- }
-
- void enable_test()
- {
- Winder_btm.Enabled = true;
- LTFU_btm.Enabled = true;
- RTFU_btm.Enabled = true;
- Dryer_btm.Enabled = true;
- MidTank_btm.Enabled= true;
- DyeHead_btm.Enabled= true;
- WHS_btm.Enabled= true;
- Mixer_btm.Enabled= true;
- NewMixer_btm.Enabled= true;
- NewDyeHead_btm.Enabled= true;
Stop_btm.Enabled= false;
}
+
+// void enable_test()
+// {
+// Winder_btm.Enabled = true;
+// LTFU_btm.Enabled = true;
+// RTFU_btm.Enabled = true;
+// Dryer_btm.Enabled = true;
+// MidTank_btm.Enabled= true;
+// DyeHead_btm.Enabled= true;
+// WHS_btm.Enabled= true;
+// Mixer_btm.Enabled= true;
+// NewMixer_btm.Enabled= true;
+// NewDyeHead_btm.Enabled= true;
+// Stop_btm.Enabled= false;
+// }
void Timer_en()
{
if (timer_started == false)
@@ -320,9 +369,11 @@ public void OnExecute(StubManager stubManager)
}
}
void end_test()
- { enable_test();
+ { disable_test();
+ //enable_test();
+
Timer_dis();
-
+ Open_Log_btm.Enabled= true;
Run_text.Text = Status;
if (Status=="Pass")
{
@@ -337,22 +388,126 @@ public void OnExecute(StubManager stubManager)
}
}
+PN_TexstBox.TextChanged += (_,__)=>
+
+ {
+ string temp;
+
+ if (SN_TexstBox.Text.Length!=15)
+ {
+ disable_test();
+ return;
+ }
+
+ if (PN_TexstBox.Text.Contains("-"))
+
+ {
+ temp=PN_TexstBox.Text.Substring(0, PN_TexstBox.Text.IndexOf("-"));
+ switch (temp)
+ {
+ case "AM00315": //DyeHead
+ NewDyeHead_btm.Enabled= true;
+ break;
+ case "AM00103": //Winder
+ Winder_btm.Enabled = true;
+ break;
+ case "AM00087": //MidTank
+ MidTank_btm.Enabled = true;
+ break;
+ case "AM00031": //LTFU
+ LTFU_btm.Enabled = true;
+ break;
+ case "AM00007": //Dryer
+ Dryer_btm.Enabled = true;
+ break;
+ case "AM00030": //RTFU
+ RTFU_btm.Enabled = true;
+ break;
+ case "AM00281": //New Mixer
+ NewMixer_btm.Enabled= true;
+ break;
+ // case "AM00281": // Mixer
+ // Mixer_btm.Enabled= true;
+ // break;
+ default:
+ disable_test();
+ break;
+ }
+ }
+ else
+ disable_test();
+
+
+ };
+ SN_TexstBox.TextChanged += (_,__)=>
+
+ {
+ string temp;
+ if (SN_TexstBox.Text.Length!=15)
+ {
+ disable_test();
+ return;
+ }
+ if (PN_TexstBox.Text.Contains("-"))
+ {
+
+ temp=PN_TexstBox.Text.Substring(0, PN_TexstBox.Text.IndexOf("-"));
+
+ switch (temp)
+ {
+ case "AM00315": //DyeHead
+ NewDyeHead_btm.Enabled= true;
+ break;
+ case "AM00103": //Winder
+ Winder_btm.Enabled = true;
+ break;
+ case "AM00087": //MidTank
+ MidTank_btm.Enabled = true;
+ break;
+ case "AM00031": //LTFU
+ LTFU_btm.Enabled = true;
+ break;
+ case "AM00007": //Dryer
+ Dryer_btm.Enabled = true;
+ break;
+ case "AM00030": //RTFU
+ RTFU_btm.Enabled = true;
+ break;
+ case "AM00286": //New Mixer
+ NewMixer_btm.Enabled= true;
+ break;
+ default:
+ disable_test();
+ break;
+// case "AM00281": // Mixer
+// Mixer_btm.Enabled= true;
+// break;
+ }
+ }
+ else
+ disable_test();
+ };
//-----------------------------------------
Winder_btm.Click += async(_,__) =>
{
+ Open_Log_btm.Enabled= false;
Run_text.Text = "Run";
stubManager.WriteLine("DUT- Winder ");
- path="C:\\Users\\lp4\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\Winder\\" ;
+// path="C:\\Users\\" + u + "\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\Winder\\" ;
+ path="C:\\Users\\" + u + "\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\Winder\\" ;
+
Timer_en();
_cancellationTokenSource = new CancellationTokenSource();
try
{
- disable_test();
+ // disable_test();
+ Winder_btm.Enabled = false;
+ Stop_btm.Enabled= true;
var longRunningTask = await Winder_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text );
}
catch (OperationCanceledException)
{
- enable_test();
+ disable_test();
Status="Cancel";
stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,WINDER_Motor,3); //stop motor
stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,SCREW,3); //stop motor
@@ -368,23 +523,27 @@ public void OnExecute(StubManager stubManager)
//-----------------------------------------
LTFU_btm.Click += async(_,__) =>
{
+ Open_Log_btm.Enabled= false;
Run_text.Text = "Run";
stubManager.WriteLine("DUT- LTFU ");
- path="C:\\Users\\lp4\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\LTFU\\" ;
+ path="C:\\Users\\" + u + "\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\LTFU\\" ;
Timer_en();
_cancellationTokenSource = new CancellationTokenSource();
try
{
- disable_test();
+// disable_test();
+ LTFU_btm.Enabled = false;
+ Stop_btm.Enabled= true;
var longRunningTask = await LTFU_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text );
}
catch (OperationCanceledException)
{
- enable_test();
+ disable_test();
Status="Cancel";
stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LLOADING_Motor, 3); //hold LRoading high z
stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LDANCER1_Motor, 3); //hold Lloading high z
+ stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LDANCER2_Motor, 3); //hold Lloading high z
stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LDRIVING_Motor,3); //stop motor
Thread.Sleep(100);
@@ -402,21 +561,24 @@ public void OnExecute(StubManager stubManager)
//-----------------------------------------
Dryer_btm.Click += async(_,__) =>
{
+ Open_Log_btm.Enabled= false;
Run_text.Text = "Run";
stubManager.WriteLine("DUT- Dryer ");
- path="C:\\Users\\lp4\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\Dryer\\" ;
+ path="C:\\Users\\" + u + "\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\Dryer\\" ;
Timer_en();
_cancellationTokenSource = new CancellationTokenSource();
try
{
- disable_test();
- var longRunningTask = await Dryer_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text );
+// disable_test();
+ Dryer_btm.Enabled = false;
+ Stop_btm.Enabled= true;
+ var longRunningTask = await Dryer_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text );
}
catch (OperationCanceledException)
{
- enable_test();
+ disable_test();
Status="Cancel";
stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DryerLid_Motor, 2); //Hard stop hiZ motor
stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DryerMain_Motor,3); //stop motor
@@ -436,20 +598,23 @@ public void OnExecute(StubManager stubManager)
//-----------------------------------------
DyeHead_btm.Click += async(_,__) =>
{
+ Open_Log_btm.Enabled= false;
Run_text.Text = "Run";
stubManager.WriteLine("DUT- DyeHead ");
- path="C:\\Users\\lp4\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\DyeHead\\" ;
+ path="C:\\Users\\" + u + "\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\DyeHead\\" ;
Timer_en();
_cancellationTokenSource = new CancellationTokenSource();
try
{
- disable_test();
- var longRunningTask = await DyeHead_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text );
+// disable_test();
+ DyeHead_btm.Enabled= false;
+ Stop_btm.Enabled= true;
+ var longRunningTask = await DyeHead_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text );
}
catch (OperationCanceledException)
{
- enable_test();
+ disable_test();
Status="Cancel";
stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,MAGNET_Driver,3); //stop magnet
stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,3); //stop motor
@@ -472,28 +637,29 @@ public void OnExecute(StubManager stubManager)
//-----------------------------------------
NewDyeHead_btm.Click += async(_,__) =>
{
+ Open_Log_btm.Enabled= false;
Run_text.Text = "Run";
stubManager.WriteLine("DUT- New DyeHead ");
-// path="C:\\Users\\lp4\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\NewDyeHead\\" ;
- path="C:\\Users\\lp4\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\DyeHead\\" ;
+ path="C:\\Users\\" + u + "\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\NewDyeHead\\" ;
Timer_en();
_cancellationTokenSource = new CancellationTokenSource();
try
{
- disable_test();
-//mf var longRunningTask = await NewDyeHead_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text );
+// disable_test();
+ NewDyeHead_btm.Enabled= false;
+ Stop_btm.Enabled= true;
+ var longRunningTask = await NewDyeHead_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text );
}
catch (OperationCanceledException)
{
- enable_test();
+ disable_test();
Status="Cancel";
stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,MAGNET_Driver,3); //stop magnet
stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,DyeingHeadLid_Motor,3); //stop motor
for (Int32 i = 0; i < 12; i++) //???MF
{
-
stubManager.Run<ProgressResponse>("ProgressRequest" ,0x0EAD,0x40F000 + i*0x100); // turn all heaters OFF
Thread.Sleep(10);
}
@@ -509,19 +675,22 @@ public void OnExecute(StubManager stubManager)
//-----------------------------------------
RTFU_btm.Click += async(_,__) =>
{
+ Open_Log_btm.Enabled= false;
Run_text.Text = "Run";
stubManager.WriteLine("DUT- RTFU ");
- path="C:\\Users\\lp4\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\RTFU\\" ;
+ path="C:\\Users\\" + u + "\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\RTFU\\" ;
Timer_en();
_cancellationTokenSource = new CancellationTokenSource();
try
{
- disable_test();
+// disable_test();
+ RTFU_btm.Enabled= false;
+ Stop_btm.Enabled= true;
var longRunningTask = await RTFU_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text );
}
catch (OperationCanceledException)
{
- enable_test();
+ disable_test();
Status="Cancel";
stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,RLOADING_Motor, 3); //hold Rloading high z
Thread.Sleep(100);
@@ -539,19 +708,22 @@ public void OnExecute(StubManager stubManager)
//-----------------------------------------
MidTank_btm.Click += async(_,__) =>
{
+ Open_Log_btm.Enabled= false;
Run_text.Text = "Run";
stubManager.WriteLine("DUT- MidTank ");
- path="C:\\Users\\lp4\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\MidTank\\" ;
+ path="C:\\Users\\" + u + "\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\MidTank\\" ;
Timer_en();
_cancellationTokenSource = new CancellationTokenSource();
try
{
- disable_test();
+// disable_test();
+ MidTank_btm.Enabled= false;
+ Stop_btm.Enabled= true;
var longRunningTask = await MidTank_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text );
}
catch (OperationCanceledException)
{
- enable_test();
+ disable_test();
Status="Cancel";
stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,F3_VALVE_OUT, 0); //close all valve
@@ -566,20 +738,23 @@ public void OnExecute(StubManager stubManager)
//---------------------------Mixer--------------
Mixer_btm.Click += async(_,__) =>
{
+ Open_Log_btm.Enabled= false;
Run_text.Text = "Run";
stubManager.WriteLine("DUT- Mixer ");
- path="C:\\Users\\lp4\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\Mixer\\" ;
+ path="C:\\Users\\" + u + "\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\Mixer\\" ;
Timer_en();
_cancellationTokenSource = new CancellationTokenSource();
try
{
- disable_test();
+// disable_test();
+ Mixer_btm.Enabled= false;
+ Stop_btm.Enabled= true;
var longRunningTask = await Mixer_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text );
}
catch (OperationCanceledException)
{
- enable_test();
+ disable_test();
Status="Cancel";
SetBit (F1_gpo_01, 7, 0); //clear bit F1_VALVE_MIXCHIP_WASTECH
SetBit (F2_CTRL, 7, 0); //clear bit mixer SSR
@@ -594,20 +769,23 @@ public void OnExecute(StubManager stubManager)
//---------------------------new Mixer--------------
NewMixer_btm.Click += async(_,__) =>
{
+ Open_Log_btm.Enabled= false;
Run_text.Text = "Run";
stubManager.WriteLine("DUT- New Mixer ");
- path="C:\\Users\\lp4\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\Mixer\\" ;
+ path="C:\\Users\\" + u + "\\Dropbox\\"+Location_TexstBox.Text +"_Bench_Tester"+"\\Mixer\\" ;
Timer_en();
_cancellationTokenSource = new CancellationTokenSource();
try
{
- disable_test();
- var longRunningTask = await New_Mixer_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text );
+// disable_test();
+ NewMixer_btm.Enabled= false;
+ Stop_btm.Enabled= true;
+ var longRunningTask = await New_Mixer_test(setLabel1TextSafe, _cancellationTokenSource.Token, SN_TexstBox.Text ,Location_TexstBox.Text );
}
catch (OperationCanceledException)
{
- enable_test();
+ disable_test();
Status="Cancel";
// SetBit (F1_gpo_01, 7, 0); ????????????//clear bit F1_VALVE_MIXCHIP_WASTECH
// SetBit (F2_CTRL, 7, 0); //????????????clear bit mixer SSR
@@ -630,7 +808,6 @@ public void OnExecute(StubManager stubManager)
form1.Controls.Add(_calc_text);
// stubManager.WriteLine("Start dialog!");
form1.ShowDialog();
-
return ;
@@ -661,7 +838,7 @@ if (!Directory.Exists(path))
-string File_Name2=Environment.ExpandEnvironmentVariables(path +Stemp1+"_"+ s_n +"_"+DUT +"_"+ DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" );
+ File_Name2=Environment.ExpandEnvironmentVariables(path +Stemp1+"_"+ s_n +"_"+DUT +"_"+ DateTime.Now.ToString("MM_dd_yyyy_HH_mm_ss")+".log" );
stubManager.Write(File_Name2 +"\n");
diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Jig-TesterV 1.0.docx b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Jig-TesterV 1.0.docx
new file mode 100644
index 000000000..f7aa53997
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Jig-TesterV 1.0.docx
Binary files differ
diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Jig-TesterV 1.1.docx b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Jig-TesterV 1.1.docx
new file mode 100644
index 000000000..948efd86b
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/Jig-TesterV 1.1.docx
Binary files differ
diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/LTFU_Jig.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/LTFU_Jig.cs
index 3f9f2a346..ba072b955 100644
--- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/LTFU_Jig.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/LTFU_Jig.cs
@@ -52,7 +52,7 @@ public Task<decimal> LTFU_test( Action<string> settext, CancellationToken cancel
Test_LLOADING_LTFU();
stubManager.Run<StubMotorStopResponse>("StubMotorStopRequest" ,LLOADING_Motor, 3); //hold LRoading high z
delay(100);
- Motor_SetParam(F1_MOTO_LLOADING_TX1,F1_MOTO_LLOADING_TX0,0x0a,0x14000000); //set kval ran to 0x14,0.65A
+// Motor_SetParam(F1_MOTO_LLOADING_TX1,F1_MOTO_LLOADING_TX0,0x0a,0x14000000); //set kval ran to 0x14,0.65A
settext("Test LDRIVING LTFU");
Test_LDRIVING_LTFU();
@@ -355,9 +355,9 @@ int Test_DANCER_LTFU()
}
- if (temp_right_after>temp_right_before)
- temp_right_before=temp_right_before+0x4000;
- temp_right_before=temp_right_before-temp_right_after;
+ if (temp_right_after<temp_right_before)
+ temp_right_after=temp_right_after+0x4000;
+ temp_right_before=temp_right_after-temp_right_before;
if ((temp_right_before< 5000) && (temp_right_before >200))
{
Units_status[8,1]="Pass";
@@ -465,7 +465,7 @@ int Test_DANCER_LTFU()
return 12;
}
Units_status[8,1]="Fail";
- stubManager.Write("LDANCER2_SSI\tFail\n");
+ stubManager.Write("LDANCER_Right_SSI\tFail\n");
return 12;
diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/MidTank_Jig.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/MidTank_Jig.cs
index 27e17ed93..16139df2c 100644
--- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/MidTank_Jig.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/MidTank_Jig.cs
@@ -143,9 +143,9 @@ int open_valve (int valve_nm,int valve_type,int check_valve) //valve_type=0 is
if (check_valve!=0)
{
- temp="Air";
+ temp="Air ";
if (valve_type==1)
- temp="Ink";
+ temp="Ink ";
DialogResult result = MessageBox.Show("Did " + temp + "Valve of Midtank " + valve_nm +" open?", "Warning",MessageBoxButtons.YesNo);
if(result == DialogResult.No)
diff --git a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/RTFU_Jig.cs b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/RTFU_Jig.cs
index 9863a2ea1..4f47a1cd0 100644
--- a/Software/Stubs Collection/stubs/Scripts/Jig_Tester/RTFU_Jig.cs
+++ b/Software/Stubs Collection/stubs/Scripts/Jig_Tester/RTFU_Jig.cs
@@ -76,7 +76,7 @@ int Test_RLOADING_RTFU()
int temp=1;
int counter;
-// Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x40000000); //set kval ran to 0x40- 1.9A
+// Motor_SetParam(F1_MOTO_RLOADING_TX1,F1_MOTO_RLOADING_TX0,0x0a,0x2c000000); //set kval ran to 0x40- 1.9A
delay(100);
stubManager.Run<StubMotorRunResponse>("StubMotorRunRequest" ,RLOADING_Motor, true,200); //move Rloading down
delay(3000);
@@ -317,7 +317,7 @@ int Test_DANCER_RTFU()
stubManager.Write("temp="+temp + "\temp1="+temp1 +"\n");
- DialogResult result = MessageBox.Show("SSI Dancer led is Green(not blinking)?", "Warning",MessageBoxButtons.YesNo);
+ DialogResult result = MessageBox.Show("SSI Dancer led is Green(Not blinking)?", "Warning",MessageBoxButtons.YesNo);
if(result == DialogResult.No)
{
Units_status[8,1]="Fail";
diff --git a/Software/Stubs Collection/stubs/Scripts/Main card Watchdog test.cs b/Software/Stubs Collection/stubs/Scripts/Main card Watchdog test.cs
new file mode 100644
index 000000000..3db075678
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Main card Watchdog test.cs
@@ -0,0 +1,24 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+
+public void OnExecute(StubManager stubManager)
+{
+
+//"Set WFCF Value
+ProgressRequest progressRequest = new ProgressRequest();
+progressRequest.Amount = 0xAD9;
+progressRequest.Delay = 0;
+
+var response = stubManager.Run<ProgressResponse>(progressRequest);
+
+
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/MidTank Calibration.pproj b/Software/Stubs Collection/stubs/Scripts/MidTank Calibration.pproj
new file mode 100644
index 000000000..ce80c8a70
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/MidTank Calibration.pproj
@@ -0,0 +1 @@
+{"$id":"1","Name":"MidTank Calibration","Description":null,"Scripts":{"$id":"2","$values":[{"$id":"3","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\nusing System.IO;\r\nusing System.Windows.Forms;\r\nusing Tango.PMR.EmbeddedParameters;\r\n\r\npublic class Program\r\n{\r\nconst double\tMIN_SLOP=0.7;\r\nconst double\tMAX_SLOP=1.4;\r\nconst double\tERROR_SLOP=-1;\r\nconst double\tMIN_50cc_on_volt=2.3;\r\nconst double\tMAX_50cc_on_volt=3.2;\r\nconst double\tERROR_50cc_on_volt=-1;\r\n\r\nint [] Convert_Midtank_No = new Int32 [8] {1,3,5,7,2,4,6,8};\r\nuint [,] ADC_Add_Chnl = new uint [8,2]\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t{0x44,0x20},\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t{0x44,0x08},\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t{0x46,0x80},\r\n\t\t\t\t\t\t\t\t\t\t\t\t{0x46,0x20},\r\n\t\t\t\t\t\t\t\t\t\t\t\t{0x44,0x10},\r\n\t\t\t\t\t\t\t\t\t\t\t\t{0x44,0x04},\r\n\t\t\t\t\t\t\t\t\t\t\t\t{0x46,0x40},\r\n\t\t\t\t\t\t\t\t\t\t\t\t{0x46,0x10},\r\n\t\t\t\t\t\t\t\t\t\t};\r\n\r\n\r\nconst Int32\tF3_VALVE_OUT\t=\t0x600008E2\t;\r\nstring Machine_SN\t;\r\nprivate const string FILE_PATH = @\"C:\\MidTankLog\\\";\r\nstring File_name;\r\ndouble Full_Cartridge=1000;\t// on CC \r\ndouble \tSlop=0.92;\r\n//----------------------\r\nconst Int32 I2C_ID = 2;\r\n//const Int32 I2C_Slave_Add = 0x46; //must be 0x40, 0x44 or 0x46\r\n//----------------------\r\n\r\n\r\nprivate IProcedureContext context;\r\n\r\n\r\n\r\n\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n \r\n\r\n\tInt32 Timout ;\r\n\tInt32 Interval;\r\n\tInt32 midtankno = 0;\r\n\tdouble Full_Point=0;\t\t\t//on Voltage\r\n\tdouble resualt;\r\n\tdouble Sum=0 ;\r\n\tdouble Old_Sum=0 ;\r\n\tdouble Start_Point=0;\r\n\t\r\n\r\n\tif (!Directory.Exists(FILE_PATH))\r\n\t\t{\r\n\t\t\tDirectory.CreateDirectory(FILE_PATH);\r\n\t\t}\t\t\t\r\n\r\n\r\n\r\n var response =context.RequestUserInputFor<String>(\"Enter Midtank S/N: \", \"\");\r\n\tcontext.Write(\"\\n\");\r\n\tMachine_SN = response;\r\n\tcontext.WriteLine(Machine_SN);\r\n\tFile_name= FILE_PATH +Machine_SN + DateTime.Now.ToString(\"MM_dd_yyyy_HH_mm_ss\")+\".csv\";\r\n\tcontext.Write(File_name);\r\n \tcontext.WriteToFile(File_name,\"MidTank S/N:,\" + Machine_SN);\r\n\t\r\n\r\n var response1 =context.RequestUserInputFor<String>(\"Enter Midtank number to calibrate (1-8):\", \"\");\r\n context.WriteLine(response1);\r\n\tmidtankno = Int32.Parse(response1);\r\n \tcontext.AppendToFile(File_name,\"MidTank Number:\\t\" + response1);\r\n\tif (midtankno==8)\r\n\t{\r\n\t\tSlop=1;\r\n\t\tTimout=60;\t\t//60 minutes\r\n\t\tInterval=60;\t//60 second\r\n\t}\r\n\telse\r\n\t{\r\n\t\tSlop=0.92;\r\n\t\tTimout=10*2;\t\t//10 minutes\r\n\t\tInterval=30;\t//30 second\r\n\r\n\t}\r\n var response10 =context.RequestUserInputFor<String>(\"Enter Cartridge Valume on CC (500-1500):\", \"\");\r\n context.WriteLine(response10);\r\n\tFull_Cartridge = double.Parse(response10);\r\n \tcontext.AppendToFile(File_name,\"Cartridge Valume:\\t\" + response10);\r\n \tcontext.AppendToFile(File_name,\"Slop value:\\t\" + Slop);\r\n\r\n\r\n\tDialogResult result = MessageBox.Show(\"Are you sure to calibrate Midtank No: \"+ midtankno + \" with \"+ Full_Cartridge +\" CC\" , \"Warning\",MessageBoxButtons.YesNo);\r\n\tif(result == DialogResult.Yes)\r\n\t{\r\n\r\n\r\n\r\n\t\tstring box_msg = \"Please Insert cartridge \";\r\n\r\n\t\tMessageBox.Show(box_msg);\r\n\t\t\r\n\t\topen_valve(midtankno,1,1)\t\t;\t//open Air valve\r\n\t\topen_valve(midtankno,0,1)\t\t;\t//open Ink valve\r\n\t\tInt32 i=0; \r\n\t\twhile (i<Timout)\t\t\t\t\t//check for 15 minitus \r\n\t\t{\r\n\t\t\tSum=0;\r\n\t\t\tfor (Int32 j=0;j<Interval;j++)\r\n\t\t\t{\r\n\t\t\t\tresualt=read_pressure_sensor(midtankno);\r\n\t\t\t\tcontext.AppendToFile(File_name,resualt+\",V\");\r\n\t\t\t\tSum=Sum+resualt;\r\n\t\t\t\tThread.Sleep(1000);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\tif (i==0) \r\n\t\t\t\tStart_Point=Sum/Interval;\r\n\t\t\t\r\n\t\t\tif (Sum>Old_Sum)\r\n\t\t\t\tOld_Sum=Sum-Old_Sum;\r\n\t\t\telse\r\n\t\t\t\tOld_Sum=Old_Sum-Sum;\r\n\t\t\r\n \r\n\t\t\tif ((check_valve(midtankno,1) != 0) && (check_valve(midtankno,0) != 0))\r\n\t\t\t{\r\n\t\t\t\ti++;\r\n\t\t\t\tif ( Old_Sum <0.02)\t\r\n\t\t\t\t\ti=Timout+1;\t\t//end \r\n\t\t\t\tOld_Sum=Sum;\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\topen_valve(midtankno,1,0)\t\t;\t//open Air valve\r\n\t\t\topen_valve(midtankno,0,0)\t\t;\t//open Ink valve\r\n\t\t\tOld_Sum=0;\r\n\t\t\t\r\n\t\t\t}\t\r\n\t\t}\r\n\t\tFull_Point=Sum/Interval;\r\n\t\t\r\n\r\n\t\tclose_valve(midtankno,1,1)\t\t;\t//close Air valve\r\n\t\tclose_valve(midtankno,0,1)\t\t;\t//close Ink valve\r\n\r\n\t\t\t\r\n\t\tif (insert_slop_t_eeprom(Full_Point, midtankno,Start_Point)==0)\r\n\t\t{\r\n\t\t\t\tbox_msg =\"Turn Power Off and On to finish the calibration.\";\r\n\t\t\t\tMessageBox.Show(box_msg);\r\n\r\n\r\n \tcontext.AddResult(ResultType.Passed, \"Test passed\", \"Test passed.\");\r\n\t\t\t\t\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t\tbox_msg =\"Calibration error\";\r\n\t\t\t\tMessageBox.Show(box_msg);\r\n\r\n\r\n \tcontext.AddResult(ResultType.Failed, \"Test Fail\", \"Test Fail.\");\r\n\t\t\t\t\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n\r\n\tint\tinsert_slop_t_eeprom( double FullPoint,Int32 midtankno, double StartPoint)\r\n{\r\n//\tcontext.Write(\"\\n \");\r\n\r\n\t\tStartPoint=FullPoint-StartPoint;\r\n\t\tStartPoint=StartPoint/Full_Cartridge;\r\n\t\tif ((StartPoint>0.7 ) && (StartPoint>1.3 ))\r\n\t\t{\r\n\t\t\tMidTankDataSetupRequest midTankDataSetupRequest = new MidTankDataSetupRequest();\r\n\r\n\t\t\tMidTankData midTankData = new MidTankData();\r\n\t\t\tmidTankData.MidTankId = Convert.ToUInt32 (midtankno-1);\r\n\t\t\tmidTankData.InitialOffsetA =FullPoint - (Full_Cartridge/1000-0.1)/Slop;\r\n\t\t\tmidTankData.SlopeB = Slop;\r\n\t\t\t\r\n\t\t\tcontext.Write(\"\\nMidtank No:\" + midtankno + \"=\\tVoltage Zero is =\"+(FullPoint - (Full_Cartridge/1000-0.1)/Slop)+\"\\tSlop=\"+ Slop);\r\n\t\t\tcontext.AppendToFile(File_name,\"\\nMidtank No:\" + midtankno + \"=\\tVoltage Zero is =\"+(FullPoint - (Full_Cartridge/1000-0.1)/Slop)+\"\\tSlop=\"+ Slop);\r\n\r\n\t\t\t\r\n\t\t\tmidTankDataSetupRequest.MidTankInfo.Add(midTankData);\r\n\t\t\r\n\r\n\t\t\tvar response =context.Send<MidTankDataSetupResponse>(midTankDataSetupRequest);\r\n\r\n\t\t\treturn\t0;\r\n\t\t}\r\n\t\telse\r\n\t\t\tcontext.Write(\"\\nError\");\r\n\t\t\tcontext.AppendToFile(File_name,\"\\n Slop Error\");\r\n\t\t\treturn\t1;\r\n\t\r\n\r\n }\r\n\r\n\r\n\r\nint adc_configuration(uint I2C_Slave_Add,uint channel ) \r\n\t{\r\n\tStubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();\r\n\tstubI2CWriteBytesRequest.I2CId = I2C_ID;\r\n\tstubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;\r\n\t\r\n\tUInt32 uInt32 = new UInt32();\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(0x00);//Byte 0 to write\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(channel);//Byte 1 to Write, must be 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02 or 0x01 for different channels\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(0x80);//Byte 2 to Write\r\n\t\r\n\tvar response =context.Send<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);\r\n\t\r\n\treturn 1;\r\n\t}\r\n\r\n\r\nint adc_set_for_read_ch(uint I2C_Slave_Add) \r\n\t{\r\n\tStubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();\r\n\tstubI2CWriteBytesRequest.I2CId = I2C_ID;\r\n\tstubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;\r\n\t\r\n\tUInt32 uInt32 = new UInt32();\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(0x01);//Byte 0 to write\r\n\r\n\tvar response =context.Send<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);\r\n\t\r\n\treturn 1;\r\n\t}\r\n\r\n\r\n\r\n\r\ndouble adc_read_ch(uint I2C_Slave_Add) \r\n\t{\r\n\tStubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();\r\n\tstubI2CReadBytesRequest.I2CId = I2C_ID;\r\n\tstubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add;\r\n\tstubI2CReadBytesRequest.NumberOfBytesToRead = 2; // Number of bytes to read\r\n\r\n\tvar response1 =context.Send<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);\r\n\tuint temph=0;\r\n\tuint templ=0;\r\n\tuint temp;\r\n\tdouble calc;\r\n\tdouble calc1;\r\n\tdouble calc2;\r\n\t\t\ttemph=response1.ReadBytes[0];\r\n\t\t\ttempl=response1.ReadBytes[1];\r\n\t\t\ttemp = (temph << 8) | templ;\r\n\t\t\ttemp=temp & 0x0fff;\r\n\t\t\t\t\r\n\t\t\tcalc = (double)temp *2.5 / 4096.0;\r\n\t\t\r\n\t\t\tcalc1 = (1.96- calc) * 4.64 + 1.96;\r\n\t\t\tcontext.Write(\"Vsensor [volts]:\\t\");\r\n\t\t\tcontext.Write(calc1 + \"\\n\");\r\n\r\n\t\r\n\treturn calc1;\r\n\t}\r\n\r\ndouble\t\tread_pressure_sensor(Int32 i )\r\n\t{\r\ndouble resualt =0 ;\r\n\t\t switch (i)\r\n {\r\n case 1:\r\n\t\t\tadc_configuration(0x44,0x20);\t\t//a2d_address 0x44 channel channel 2\r\n\t\t\tadc_set_for_read_ch(0x44);\r\n\t\t\tresualt=adc_read_ch(0x44);\r\n\t\tbreak;\r\n\t\t\r\n\t\tcase 2:\r\n\t\t\tadc_configuration(0x44,0x08);\t\t//a2d_address 0x44 channel channel 4\r\n\t\t\tadc_set_for_read_ch(0x44);\r\n\t\t\tresualt=adc_read_ch(0x44);\r\n\t\tbreak;\r\n\t\t\r\n\t\tcase 3:\r\n\t\t\tadc_configuration(0x46,0x80);\t\t//a2d_address 0x46 channel channel 0\r\n\t\t\tadc_set_for_read_ch(0x46);\r\n\t\t\tresualt=adc_read_ch(0x46);\r\n\t\tbreak;\r\n\t\t\r\n\t\tcase 4:\r\n\t\t\tadc_configuration(0x46,0x20);\t\t//a2d_address 0x46 channel channel 2\r\n\t\t\tadc_set_for_read_ch(0x46);\r\n\t\t\tresualt=adc_read_ch(0x46);\r\n\t\tbreak;\r\n\t\t\r\n\t\tcase 5:\r\n\t\t\tadc_configuration(0x44,0x10);\t\t//a2d_address 0x44 channel channel 3\r\n\t\t\tadc_set_for_read_ch(0x44);\r\n\t\t\tresualt=adc_read_ch(0x44);\r\n\t\tbreak;\r\n\t\t\r\n\t\tcase 6:\r\n\t\t\tadc_configuration(0x44,0x04);\t\t//a2d_address 0x44 channel channel 5\r\n\t\t\tadc_set_for_read_ch(0x44);\r\n\t\t\tresualt=adc_read_ch(0x44);\r\n\t\tbreak;\r\n\t\t\r\n\t\tcase 7:\r\n\t\t\tadc_configuration(0x46,0x40);\t\t//a2d_address 0x46 channel channel 1\r\n\t\t\tadc_set_for_read_ch(0x46);\r\n\t\t\tresualt=adc_read_ch(0x46);\r\n\t\tbreak;\r\n\t\t\r\n\t\tcase 8:\r\n\t\t\tadc_configuration(0x46,0x10);\t\t//a2d_address 0x46 channel channel 3\r\n\t\t\tadc_set_for_read_ch(0x46);\r\n\t\t\tresualt=adc_read_ch(0x46);\r\n\t\tbreak;\r\n\t\t\r\n default:\r\n context.Write(\"Error\");\r\n\r\n break;\r\n\t }\t\r\n\t\t\r\n\t\treturn resualt;\r\n\t}\t\r\n\r\n\r\n//--------------------------------\r\nint open_valve (int valve_nm,int valve_type,int check_valve)\t\t//valve_type=0 is Air ,1 is Ink ; check_valve=1 send feedbak\r\n{\r\n\tint temp1=Convert_Midtank_No[valve_nm-1]\t;\r\n\r\n\tstring temp;\r\n\tSetBit (F3_VALVE_OUT,(((valve_type+1)*8)- temp1), 1);\t\r\n\t\r\n\t\tif (check_valve!=0)\r\n\t\t{\r\n\t\t\ttemp=\"Air\";\r\n\t\t\tif (valve_type==1)\r\n\t\t\ttemp=\"Ink\";\r\n\t\t\t\t\r\n\t\t\tDialogResult result = MessageBox.Show(\"Did \" + temp + \"Valve of Midtank \" + valve_nm +\" open?\", \"Warning\",MessageBoxButtons.YesNo);\r\n\t\t\tif(result == DialogResult.No)\r\n\t\t\t\t{\r\n//\t\t\t\t\tUnits_status[(valve_nm-1)*3+valve_type,1]=\"Fail\";\r\n\t\t\t\t\tcontext.Write(temp +\"Valve\\tFail\\n\");\t\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\t\t\telse \r\n\t\t\t\t{\r\n//\t\t\t\t\tUnits_status[(valve_nm-1)*3+valve_type,1]=\"Pass\";\r\n\t\t\t\t\tcontext.Write(temp +\"Valve\\tOpen\\n\");\t\r\n\t\t\t\t\treturn 1;\r\n\t\t\t\t}\r\n\t\t\t\r\n\t\t}\r\n\t\treturn 1;\r\n\r\n}\r\n//--------------------------------\t\r\nint close_valve (int valve_nm,int valve_type,int check_valve)\r\n{\r\n\tint temp1=Convert_Midtank_No[valve_nm-1];\t\r\n\r\n\tstring temp;\r\n\tSetBit (F3_VALVE_OUT,(((valve_type+1)*8)- temp1), 0);\r\n\tif (check_valve!=0)\r\n\t\t{\r\n\t\t\ttemp=\"Air\";\r\n\t\t\tif (valve_type==1)\r\n\t\t\ttemp=\"Ink\";\r\n\t\t\t\t\r\n\t\t\tDialogResult result = MessageBox.Show(\"Did \" + temp +\" Valve of Midtank \" + valve_nm +\" close?\", \"Warning\",MessageBoxButtons.YesNo);\r\n\t\t\tif(result == DialogResult.No)\r\n\t\t\t\t{\r\n//\t\t\t\t\tUnits_status[(valve_nm-1)*3+valve_type,1]=\"Fail\";\r\n\t\t\t\t\tcontext.Write(temp +\"Valve\\tFail\\n\");\t\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\t\t\telse \r\n\t\t\t\t{\r\n//\t\t\t\t\tUnits_status[(valve_nm-1)*3+valve_type,1]=\"Pass\";\r\n\t\t\t\t\tcontext.Write(temp +\"Valve\\tclose\\n\");\t\r\n\t\t\t\t\treturn 1;\r\n\t\t\t\t}\t\t\t\r\n\t\t}\r\n\treturn 1;\r\n\r\n}\r\n\r\npublic Int32 SetBit(Int32 Adr, Int32 BitNo, Int32 Bit)\r\n{\r\n\tInt32 BitMask;\r\n\tInt32 RetVal;\r\n\tRetVal = Fpga_Read_Reg(Adr);\r\n\tInt32 RV = RetVal ;\r\n\t\r\n\tif (Bit == 0x1) \r\n\t{\r\n\t\tBitMask = 0x1 << BitNo;\r\n\t\tRV = RV | BitMask;\r\n\t\tFpga_Write_Reg( Adr, RV );\r\n\t}\r\n\telse if (Bit == 0x0)\r\n\t{\r\n\t\tBitMask = ~(0x1 << BitNo);\r\n\t\tRV = RV & BitMask;\r\n\t\tFpga_Write_Reg(Adr, RV );\t\r\n\t}\r\n\treturn 1;\r\n}\r\n\r\nint Fpga_Write_Reg(Int32 Addr, Int32 Data)\r\n{\r\n\tvar response =context.Send<StubFpgaWriteRegResponse>(\"StubFpgaWriteRegRequest\" ,Addr, Data);\r\n\t\r\n\treturn 1;\r\n}\r\n\r\n\r\nInt32 check_valve (Int32 valve_nm,int valve_type)\r\n{\r\n\tInt32 temp1=Convert_Midtank_No[valve_nm-1];\t\r\n\t\r\n var response =context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F3_VALVE_OUT);\r\n\tInt32 RV =(Int32) response.Value & 0xffff ;\r\n\tRV = RV & ( 0x1 << (((valve_type+1)*8)- temp1));\r\n\treturn RV;\r\n\r\n}\r\n\r\n\r\nInt32 Fpga_Read_Reg(Int32 Addr)\r\n{\r\n \r\ncontext.Write(\"123\");\r\n\r\n\tvar response =context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,Addr);\r\n\tcontext.Write(\"456\");\r\n\r\n\tInt32 RV= (Int32) response.Value & 0xffff;\r\n\tcontext.Write(\"789\");\r\n\r\n\treturn RV;\r\n} \r\n \r\n \r\n \r\n}","Name":"Program.csx","IsEntryPoint":true},{"$id":"4","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","Name":"Service.csx","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[]},"Variables":{"$id":"6","$values":[]},"ReferenceAssemblies":{"$id":"7","$values":[{"$id":"8","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"9","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"10","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"11","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"12","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"13","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"14","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"15","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"17","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"18","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Resources":{"$id":"19","$values":[]},"Dialogs":{"$id":"20","$values":[]},"ID":"e2c3c81d-1914-4d45-b031-d054af33a18e","ApartmentState":"STA"} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Priming.pproj b/Software/Stubs Collection/stubs/Scripts/Priming.pproj
new file mode 100644
index 000000000..309dae73e
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Priming.pproj
@@ -0,0 +1 @@
+{"$id":"1","Name":"Priming","Description":null,"Scripts":{"$id":"2","$values":[{"$id":"3","Name":"Program.csx","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\nusing System.IO;\r\nusing System.Diagnostics;\r\nusing System.Windows.Forms;\r\n\r\n\r\npublic class Program\r\n{\r\n\r\n\r\nprivate IProcedureContext context;\r\n\r\n//---------------------Start Command ----------------\r\nconst Int32\tCMD_RUN\t=\t0;\t\t//Run on Pulse Per Secound .positive run Up and negative run Down b\r\nconst Int32\tCMD_STOP=\t1;\t\t//0;Hard stop(Defualt);1-Soft stop;2-Hard Hiz;3-Soft Hiz\r\nconst Int32\tCMD_VALVE=\t2;\t\t//0-to Midtank ,1-to head \r\nconst Int32\tCMD_DLY\t=\t3;\t\t//delay in Seconds .\r\nconst Int32\tCMD_TIME=\t4;\t\t//Print Time .\r\nconst Int32\tCMD_PRESS=\t5;\t\t//return from Delay loop when pressure is high (on mBAR) .\r\nconst Int32 CMD_LOOP_NM=6;\t\t//NUMBER OF counter\r\nconst Int32 CMD_LOOP=\t7;\t\t//jump up(+) or down(-) command u\r\nconst Int32 CMD_MTV_OPEN =\t8;\t\t//0 Air ; 1 Ink\r\nconst Int32 CMD_MTV_CLOSE=\t9;\t\t//0 Air ; 1 Ink\r\nconst Int32 CMD_LBL=\t10;\t//label for user \r\nconst Int32 CMD_SMP=\t11; //sample rate ,defualt 100msec (1); for 1 second is 10.\r\nconst Int32 CMD_PRESL=\t12; //return from Delay loop when pressure is low (on mBAR) .\r\n\r\nconst Int32\tCMD_END\t=\t13;\t//end loop .\r\n \r\n\r\nInt32[] BuildUp_Table = new int []\r\n{\r\n\tCMD_VALVE,1,\r\n\tCMD_PRESL,200,\r\n\tCMD_DLY,200, \r\n\r\n\tCMD_LOOP_NM,3,\r\n\r\n\tCMD_VALVE,0,\r\n\tCMD_DLY,1, \r\n\tCMD_VALVE,1,\r\n\tCMD_DLY,1, \r\n\tCMD_LOOP,-4,\r\n\r\n\tCMD_VALVE,0,\r\n\tCMD_RUN,1068,\r\n\tCMD_PRESS,1000,\t//mbar --> 1000 = 100% work, 4000 = 200% work, 350 = 20% work\r\n\tCMD_DLY,150, \t\t\r\n\tCMD_LBL,1,\r\n\tCMD_PRESS,2000,\t//mbar --> 2000 = 100% work, 4000 = 200% work, 350 = 20% work\r\n\tCMD_DLY,60, \t\t\r\n\tCMD_LBL,2,\r\n\tCMD_PRESS,3000,\r\n\tCMD_DLY,60, // to limit\r\n\tCMD_STOP,0,\r\n\tCMD_VALVE,1,\r\n\tCMD_END,3,\r\n};\r\n\t\r\n\r\nInt32[] Up_Table = new int []\r\n{\r\n\tCMD_VALVE,1,\r\n\tCMD_PRESL,200,\r\n\tCMD_DLY,200, \r\n\t\r\n\tCMD_PRESS,3000,\t//mbar --> 1000 = 100% work, 4000 = 200% work, 350 = 20% work\r\n\tCMD_RUN,534, // 100%\r\n\tCMD_DLY,120,\r\n\tCMD_STOP,0,\r\n\tCMD_END,3,\r\n};\r\nInt32 Dispenser_sample_rate= 1; \r\n\r\n\tstring path = @\"C:\\Dispenser_setup\\Log\\\"; \t\r\n//----------------------\r\nconst UInt32 I2C_ID \t\t\t= \t4;\t\t\t\t\t//MCU_I2C4 \r\nconst UInt32 TCA9548A_address \t=\t0xE2;\t \t\r\nconst UInt32 I2C_Slave_Low_Add \t= \t0xA0;\t\t\t\t//eeprom address - 64k low \r\nconst UInt32 I2C_Slave_High_Add = \t0xA2;\t\t\t\t//eeprom address - 64k High\r\n//----------------------\r\nbyte [] EEPROM_Data = new byte [128];\r\n\r\n\r\n//---------------------End Command ----------------\r\n\r\nconst Int32\tDispenser_Motor1\t=\t6;\t\t \r\nconst Int32\tDispenser_Motor2\t=\t7;\t\t \r\nconst Int32\tDispenser_Motor3\t=\t8;\t\t \r\nconst Int32\tDispenser_Motor4\t=\t9;\t\t \r\nconst Int32\tDispenser_Motor5\t=\t10;\t\t \r\nconst Int32\tDispenser_Motor6\t=\t11;\t\t \r\nconst Int32\tDispenser_Motor7\t=\t12;\t\t \r\nconst Int32\tDispenser_Motor8\t=\t13;\t\t \r\n\r\nconst Int32 AN_IDS_PRESSENS_1\t=\t2;\r\nconst Int32 AN_IDS_PRESSENS_2\t=\t3;\r\nconst Int32 AN_IDS_PRESSENS_3\t=\t4;\r\nconst Int32 AN_IDS_PRESSENS_4\t=\t5;\r\nconst Int32 AN_IDS_PRESSENS_5\t=\t6;\r\nconst Int32 AN_IDS_PRESSENS_6\t=\t7;\r\nconst Int32 AN_IDS_PRESSENS_7\t=\t8;\r\nconst Int32 AN_IDS_PRESSENS_8\t=\t9;\r\n\r\nconst Int32\tF2_LS_01_Direct\t=\t0x60000420\t;\t//\tReads the direct values that are currently being sent to the fpga.\trsv\t\trsv\t\trsv\t\t\t\t\t\trsv\t\t\t\t\t\tF2_LS_DISPENSER_UP_2\tF2_LS_DISPENSER_25_2\tF2_LS_DISPENSER_75_2\tF2_LS_DISPENSER_DOWN_2 \tF2_LS_DISPENSER_50_2\tF2_LS_DISPENSER_SPARE_2\tF2_LS_DISPENSER_UP_1\tF2_LS_DISPENSER_25_1 \tF2_LS_DISPENSER_75_1\tF2_LS_DISPENSER_DOWN_1\tF2_LS_DISPENSER_50_1\tF2_LS_DISPENSER_SPARE_1\t\t\t\r\nconst Int32\tF2_LS_02_Direct\t=\t0x60000430\t;\t//\tReads the direct values that are currently being sent to the fpga.\trsv\t\trsv\t\trsv\t\t\t\t\t\trsv\t\t\t\t\t\tF2_LS_DISPENSER_UP_4\tF2_LS_DISPENSER_25_4\tF2_LS_DISPENSER_75_4\tF2_LS_DISPENSER_DOWN_4\tF2_LS_DISPENSER_50_4\tF2_LS_DISPENSER_SPARE_4\tF2_LS_DISPENSER_UP_3\tF2_LS_DISPENSER_25_3 \tF2_LS_DISPENSER_75_3\tF2_LS_DISPENSER_DOWN_3\tF2_LS_DISPENSER_50_3\tF2_LS_DISPENSER_SPARE_3\t\t\t\r\nconst Int32\tF2_LS_03_Direct\t=\t0x60000440\t;\t//\tReads the direct values that are currently being sent to the fpga.\trsv\t\trsv\t\trsv\t\t\t\t\t\trsv\t\t\t\t\t\tF2_LS_DISPENSER_UP_6 \tF2_LS_DISPENSER_25_6 \tF2_LS_DISPENSER_75_6 \tF2_LS_DISPENSER_DOWN_6\tF2_LS_DISPENSER_50_6\tF2_LS_DISPENSER_SPARE_6\tF2_LS_DISPENSER_UP_5\tF2_LS_DISPENSER_25_5 \tF2_LS_DISPENSER_75_5\tF2_LS_DISPENSER_DOWN_5\tF2_LS_DISPENSER_50_5\tF2_LS_DISPENSER_SPARE_5\t\t\t\r\nconst Int32\tF2_LS_04_Direct =\t0x60000480\t;\t//\tReads the direct values that are currently being sent to the fpga.\trsv\t\trsv\t\trsv\t\t\t\t\t\trsv\t\t\t\t\t\tF2_LS_DISPENSER_UP_8\tF2_LS_DISPENSER_25_8\tF2_LS_DISPENSER_75_8\tF2_LS_DISPENSER_DOWN_8\tF2_LS_DISPENSER_50_8\tF2_LS_DISPENSER_SPARE_8\tF2_LS_DISPENSER_UP_7\tF2_LS_DISPENSER_25_7 \tF2_LS_DISPENSER_75_7\tF2_LS_DISPENSER_DOWN_7\tF2_LS_DISPENSER_50_7\tF2_LS_DISPENSER_SPARE_7\t\t\t\r\n\r\nconst Int32 Dispenser_Valve1\t=\t0;\r\nconst Int32 Dispenser_Valve2\t=\t1;\r\nconst Int32 Dispenser_Valve3\t=\t2;\r\nconst Int32 Dispenser_Valve4\t=\t3;\r\nconst Int32 Dispenser_Valve5\t=\t4;\r\nconst Int32 Dispenser_Valve6\t=\t5;\r\nconst Int32 Dispenser_Valve7\t=\t6;\r\nconst Int32 Dispenser_Valve8\t=\t7;\r\n\r\nconst ushort MinPress_Mbar_Add =0x5c ;\r\nconst ushort MaxPress_Mbar_Add =0x60 ;\r\n\r\nconst Int32 F3_VALVE_OUT\t= 0x600000e2;\t\t\r\n\r\n//string path = \"C:\\\\Dispenser_setup\\\\Log\\\\\"; \r\n\r\n\r\n//Int32[] Start_Table;\r\n\r\nInt32[] Start_Table = new Int32 [10000];\r\n\r\nUInt32 [] Motor_Dir=new UInt32 [8] {0,0,0,0,0,0,0,0};\r\n\r\nstring Dispenser_Fname ;\r\n\r\nInt32 Dispenser_ptr =-1;\r\n\r\nInt32 [] Dispenser_press= new Int32[8]{0,0,0,0,0,0,0,0};\r\nInt32 max_pressure_level = 20000;\r\nInt32 min_pressure_level = -20000;\r\n\t\r\nInt32 [] A2D_Dispenser= new Int32[8]{0,0,0,0,0,0,0,0};\r\nInt32 Loop_cnt= 1;\r\nInt32 Loop_length=1;\r\n\r\nInt32 PressureSensorType= 1;\t\t//1- new -1up +10 . 0-old 0 to +10\r\nInt32\tTemp_Delay=0;\r\n\r\n\r\nUInt32 RD_LS_01_Direct;\r\nUInt32 RD_LS_02_Direct;\r\nUInt32 RD_LS_03_Direct;\r\nUInt32 RD_LS_04_Direct;\r\n\r\nlong Lebel1_time;\r\nlong Lebel2_time;\r\n\r\nlong time_Table;\r\n\r\nInt32 msec_index=0;\r\n\r\nInt32 MaxPress_Mbar;\r\nInt32 MinPress_Mbar;\r\nstring state;\r\n\r\n\tpublic Int32 OnExecute(IProcedureContext context)\r\n {\r\n\t\tlong Max_PBU;\r\n\t\tInt32 Index=0;\r\n\t\tInt32 speed=0;\r\n\t\tInt32 Dispenser_Nm;\r\n\t\tthis.context = context;\r\n\t\r\n\t\tstring box_msg = \"Make sure Mixer Hot \";\r\n\t\tMessageBox.Show(box_msg);\r\n\t\t\r\n\t\tvar response1 = context.RequestUserInputFor<String>(\"Dispenser Number\", \"Enter Dispenser number to make priming (1-8):\");\r\n\t\tcontext.WriteLine(response1);\r\n\t\tDispenser_Nm = Int32.Parse(response1);\r\n\t\t\r\n\t\tcheck_Min_Max_Mbar(Dispenser_Nm);\r\n\t\r\n\t\tif (Dispenser_Nm==8)\r\n\t\t\tMax_PBU=6000;\r\n\t\telse\r\n\t\t\tMax_PBU=4000;\r\n\t\t\t\r\n\t\r\n\tif (!Directory.Exists(path))\r\n\t\t{\r\n\t\t\tDirectory.CreateDirectory(path);\r\n\t\t}\t\r\n\t\t\tcontext.WriteLine(path);\r\n\t\t\t\r\n\tcontext.Send<ProgressResponse>(\"ProgressRequest\" ,0xe0, 1);\r\n\r\n\tDispenser_Fname=path + \"Dispenser_Nm_\" + Dispenser_Nm+\"_\" + DateTime.Now.ToString(\"MM-dd-yy hh-mm\")+ \".csv\" ;\r\n\r\n\tcontext.WriteLine(Dispenser_Fname);\r\n\r\n\tcontext.WriteToFile(Dispenser_Fname,\"Dispenser Nm,\" + Dispenser_Nm + \"\\n\" );\r\n\tcontext.AppendToFile(Dispenser_Fname,\"Pressure,Command,Value,DateTime,Remark\\n\" ); \r\n\t\tfor(int j=0; j<2;j++)\r\n\t\t{\r\n\t\t\tfor(int i=0; i<4;i++)\r\n\t\t\t{\r\n\t\t\t\tstate=\"PBU No. \"+ (4*j+i+1 );\r\n\t\t\t\tStart_Table=BuildUp_Table;\r\n\t\t\t\tTable_Run(Dispenser_Nm );\r\n\t\t\t\tif (time_Table>300000)\r\n\t\t\t\t{\r\n\t\t\t\t\tcontext.AddResult(ResultType.Failed,\"PBU\", \"PBU No.\"+ (4*j+i+1 ) + \" Fail\");\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\t\t\t\t context.AddResult(ResultType.Passed,\"PBU\",\"PBU No.\"+ (4*j+i+1 ) + \" Pass\");\r\n\t\t\t\t\t\r\n\t\t\t}\r\n\t\t\tstate=\"Flow No.\"+ (j+1 ) ;\r\n\t\t\tStart_Table=Up_Table;\r\n\t\t\tTable_Run(Dispenser_Nm );\r\n\t\t\tif (time_Table<115000)\r\n\t\t\t\t{\r\n\t\t\t\t\tcontext.WriteLine(\"time_Table= \" +time_Table);\r\n\t\t\t\t\tcontext.AddResult(ResultType.Failed,\"Flow\", \"Flow No.\"+ (j+1) + \" Fail\");\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\t\t\t\t context.AddResult(ResultType.Passed,\"Flow\",\"Flow No.\"+ (j+1 ) + \" Pass\");\r\n\t\t\t\t\t\t\r\n\t\t}\r\n\t\t\t\t state=\"Last PBU \" ;\r\n\t\t\t\tStart_Table=BuildUp_Table; \r\n\t\t\t\tTable_Run(Dispenser_Nm );\r\n\t\t\t\tlong Time=Lebel2_time-Lebel1_time;\r\n\t\t\t\tif (Time>Max_PBU)\r\n\t\t\t\t { \r\n\t\t\t\t context.AddResult(ResultType.Failed,\"PBU\", \"PBU = \" +Time + \"msec \");\r\n\t\t\t\t state=\"PBU = \" +Time + \"msec \\tFail\";\r\n\t\t\t\t }\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t context.AddResult(ResultType.Passed,\"PBU\", \"PBU = \" +Time + \"msec \");\r\n\t\t\t\t state=\"PBU = \" +Time + \"msec \\tPass\";\r\n\t\t\t\t}\t\r\n\t\treturn 0;\r\n\t\t\r\n }\r\n\r\n/////////////////////////////////////////////\r\nvoid \t\tcheck_Min_Max_Mbar(Int32 i )\r\n{\r\n\tint k;\r\n\tstring s ;\r\n\ti--;\r\n\r\n\t\t\t\t\tcontext.WriteLine(\"-------------- write Enable Channel ------------\");\t//debug\r\n\t\tenable_channel(i); // Chanel 0-7 => Disp0enser 0-7 \r\n\t\t\t\t\tcontext.WriteLine(\"-------------- Read_header ------------\");\t//debug\r\n\r\n\t\t\t\t\tcontext.WriteLine(\"-------------- write_address_eeprom ------------\");\t//debug\r\n\t\twrite_address_eeprom (I2C_Slave_Low_Add,MinPress_Mbar_Add);\r\n\t\t\t\t\tcontext.WriteLine(\"-------------- read_data_from_eeprom ------------\");\t//debug\r\n\t\tread_data_from_eeprom (I2C_Slave_Low_Add,1);\r\n\t\tif \t(EEPROM_Data[0]==0\t)\r\n\t\t{\tPressureSensorType=0;\r\n\t\t\tcontext.WriteLine(\"PressureSensorType=0\" );\t//debug\r\n\t\t}\r\n\t\telse\t\r\n\t\t{\t\r\n\t\t\tPressureSensorType=1;\t\t\t\t\t\r\n\t\t\tcontext.WriteLine(\"PressureSensorType=1\" );\t//debug\r\n\t\t}\r\n\t\r\n}\t\r\n//----------------write address eeprom -------------------------\r\npublic void write_address_eeprom (UInt32 I2C_Add, UInt32 Eeprom_Add)\r\n{\t\r\n\tStubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();\r\n\tstubI2CWriteBytesRequest.I2CId = I2C_ID;\r\n\tstubI2CWriteBytesRequest.SlaveAddress = I2C_Add;\r\n\t\r\n\tUInt32 uInt32 = new UInt32();\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(Convert.ToByte( (Eeprom_Add & 0xff00) >>8));\t//Byte High add to write\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(Convert.ToByte(Eeprom_Add & 0xff));\t\t\t//Byte Low add to write\r\n\t\t\t\t\tcontext.WriteLine( (Eeprom_Add & 0xff00) >>8) ;\t//debug\r\n\t\t\t\t\tcontext.WriteLine( Eeprom_Add & 0xff);\t//debug\r\n\r\n\tcontext.Send<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);\t\r\n}\r\n//------------------- read Data from EEprom--------------------------\r\n\r\npublic void read_data_from_eeprom ( UInt32 I2C_Add, UInt32 cnt )\r\n{\r\n\tStubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();\r\n\tstubI2CReadBytesRequest.I2CId = I2C_ID;\r\n\tstubI2CReadBytesRequest.SlaveAddress = (I2C_Add + 1);\r\n\tstubI2CReadBytesRequest.NumberOfBytesToRead = cnt; // Number of bytes to read\r\n\r\n\tvar response1 = context.Send<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);\r\n\r\n\tfor(int i=0; i<cnt;i++)\r\n\t\t{\r\n\t\t\tEEPROM_Data[i]=Convert.ToByte(response1.ReadBytes[i]);\r\n\t\t\tcontext.WriteLine(EEPROM_Data[i] );\t//debug\r\n\r\n\t\t}\t\t\r\n}\t\r\n\r\n\r\n///////////////////////////////////////////////\r\n//----------- enable I2c channel --------------\r\npublic int enable_channel(Int32 Channel_ID) \r\n{\r\n\tuint Const_temp = 0x01;\t\r\n\t\r\n\tStubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();\r\n\tstubI2CWriteBytesRequest.I2CId = I2C_ID;\r\n\tstubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address;\r\n\t\r\n\tConst_temp = Const_temp << Channel_ID;\r\n\tstubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp);//enable i2c channel 0 Dispenser 1\r\n\r\n\tvar response = context.Send<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);\r\n\t\r\n\treturn 1;\r\n}\r\n\r\n\r\n////////////////////////////////////////////////////////////// \r\nInt32 Table_Run(Int32 Dispenser )\r\n\r\n{\r\n\tInt32 COMMAND=0;\r\n\tInt32 Data=0;\r\n\tInt32 count=0;\r\n\t\r\n\tDispenser--;\t\t//check from 0-7\r\n\t\r\n\tint j=0;\r\n\tvar stopwatch = new Stopwatch();\r\n\t\tstopwatch.Start();\r\n\t\r\n\t\tlong elapsed_time = stopwatch.ElapsedMilliseconds;\r\n\t\tcontext.WriteLine(elapsed_time);\r\n\t\t\r\n\twhile (count!=-1) \r\n\t{\r\n\tmsec_index=msec_index+1;\r\n\t\t\r\n\t\tif (Dispenser<2) \r\n\t\t\t{\r\n\t\t\t\tvar response1 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_01_Direct);\r\n\t\t\t\tRD_LS_01_Direct=response1.Value\t ;\r\n\t\t\t}\r\n\t\telse if ( (Dispenser<4) )\r\n\t\t\t{\r\n\t\t\t\tvar response1 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_02_Direct);\r\n\t\t\t\tRD_LS_02_Direct=response1.Value\t ;\r\n\t\t\t}\r\n\t\telse if ( (Dispenser<6) )\r\n\t\t\t{\r\n\t\t\t\tvar response1 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_03_Direct);\r\n\t\t\t\tRD_LS_03_Direct=response1.Value\t ;\r\n\t\t\t}\r\n\t\telse\r\n\t\t\t{\r\n\t\t\t\tvar response1 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_04_Direct);\r\n\t\t\t\tRD_LS_04_Direct=response1.Value\t ;\r\n\t\t\t}\r\n\t\tif (Dispenser<4) \r\n\t\t\t{\r\n\t\t\tvar response2 = context.Send<StubIntADCReadResponse>(\"StubIntADCReadRequest\" ,0x8000 + AN_IDS_PRESSENS_1);\r\n\t\t\t\tA2D_Dispenser[0]=(response2.SamplingInBits)>>16;\r\n\t\t\t\tA2D_Dispenser[1] =(response2.SamplingInBits) & 0x0000ffff;\r\n\t\t\t\tA2D_Dispenser[2] =(response2.VoltageSamplingMv)>>16;\r\n\t\t\t\tA2D_Dispenser[3] =(response2.VoltageSamplingMv) & 0x0000ffff;\r\n\t\t\t}\r\n\t\telse\r\n\t\t\t{\r\n\t\t\tvar\tresponse3 = context.Send<StubIntADCReadResponse>(\"StubIntADCReadRequest\" ,0x8000 + AN_IDS_PRESSENS_5);\r\n\t\t\t\tA2D_Dispenser[4] =(response3.SamplingInBits)>>16;\r\n\t\t\t\tA2D_Dispenser[5] =(response3.SamplingInBits)& 0x0000ffff;\r\n\t\t\t\tA2D_Dispenser[6] =(response3.VoltageSamplingMv)>>16;\r\n\t\t\t\tA2D_Dispenser[7] =(response3.VoltageSamplingMv)& 0x0000ffff;\r\n\t\t\t}\r\n\t\t\t\t\r\n\t\t\tCOMMAND=Start_Table[count];\r\n\t\t\tData=Start_Table[(count+1)];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t//Index=Index+2;\r\n\t\t\tswitch (COMMAND)\r\n\t\t\t\t{\r\n\t\t\t\tcase CMD_RUN:\r\n\t\t\t\t\tMotor_Run(Data,Dispenser);\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_VALVE:\r\n\t\t\t\t\tValve_3W(Data,Dispenser);\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_STOP:\r\n\t\t\t\t\tMotor_Stop(Data,Dispenser);\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_DLY:\r\n\t\t\t\t\tDelay_on_second(Data,Dispenser);\r\n\t\t\t\t\tif (Temp_Delay ==0)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmax_pressure_level=20000;\t\r\n\t\t\t\t\t\tmin_pressure_level=-20000;\t\r\n\t\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_TIME:\r\n\t\t\t\t\tPrint_Time();\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_PRESS:\r\n\t\t\t\t\tmax_pressure_level=Data;\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",Max_pressure_level is, \" + Data +\",\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_PRESL:\r\n\t\t\t\t\tmin_pressure_level=Data;\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",Min_pressure_level is, \" + Data +\",\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_LBL:\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",Label,\" + Data+\",\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tif(Data==1)\r\n\t\t\t\t\t\tLebel1_time=stopwatch.ElapsedMilliseconds;\r\n\t\t\t\t\tif(Data==2)\r\n\t\t\t\t\t\tLebel2_time=stopwatch.ElapsedMilliseconds;\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_SMP:\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",SampleRate,\" + Data+\",\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tDispenser_sample_rate =Data;\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\t\r\n\t\t\t\tcase CMD_END:\r\n\t\t\t\t\tcount=-1;\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",End testing,,\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\r\n\t\t\t\tcase CMD_MTV_OPEN:\r\n\t\t\t\t\topen_midtank_valve(Data,Dispenser);\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",OPEN MIDTANK, \" + Dispenser+\",\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase CMD_MTV_CLOSE:\r\n\t\t\t\t\tclose_midtank_valve(Data,Dispenser);\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",CLOSE MIDTANK, \" + Dispenser+\",\"+DateTime.Now+\"\\n\");\r\n\t\t\t\t\tcount = count+2;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\r\n\t\t\t\tcase CMD_LOOP_NM:\r\n\t\t\t\t\r\n\t\t\t\t\tLoop_cnt=Data-1;\r\n\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",Counter Loop,\"+ Data+\",\"+DateTime.Now +\"\\n\");\r\n\t\t\t\t\tcount = count+2;\t\t\t\t\t\t\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase CMD_LOOP:\r\n\t\t\t\t\r\n\t\t\t\t\tif (Loop_cnt!=0)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\"Counter Loop,\"+ Loop_cnt+\",\"+DateTime.Now+\"\\n\" );\r\n\t\t\t\t\t\tcount = count+2*Data;\r\n\t\t\t\t\t\tLoop_cnt--;\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",End loop,,\"+DateTime.Now +\"\\n\");\r\n\t\t\t\t\t\tcount = count+2;\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t}\t\r\n\t\t\t\r\n\t\t\tlong elapsed_time1 = stopwatch.ElapsedMilliseconds;\r\n\t\t\tlong elapsed_time2= elapsed_time1-elapsed_time;\r\n\t\t\tif (elapsed_time2>95)\r\n\t\t\telapsed_time2=95;\t\t//minimum time\r\n\t\t\t\tThread.Sleep(100-(int )(elapsed_time2));\r\n\r\n\t\t\telapsed_time = stopwatch.ElapsedMilliseconds;\t\t\r\n\r\n\r\n\t\t\tj++;\r\n\t\t\t\tif (j==10)\r\n\t\t\t\t{\r\n\t\t\t\t\tj=0;\r\n\t\t\t\t\tcontext.WriteLine(Dispenser_press[Dispenser]+ \" mBar\\t\"+state + \"\\tTime-\" + (elapsed_time/1000));\r\n\t\t\t\t}\r\n\t}\r\n\ttime_Table=elapsed_time;\r\n\treturn 0;\r\n}\r\n\r\n///////////////////////////////////////////////////////////////////\t\r\nInt32 Motor_Run(Int32 speed,Int32 Dispenser)\r\n\r\n{\r\n\r\n\tswitch (Dispenser)\r\n\t\t{\r\n\t\tcase 0:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[0]=2;\r\n\t\t\t\t\tif ((RD_LS_01_Direct & 0x04)!=0x04)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor1, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[0]=1;\r\n\t\t\t\t\tif ((RD_LS_01_Direct & 0x20)!=0x20)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor1, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase 1:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[1]=2;\r\n\t\t\t\t\tif ((RD_LS_01_Direct & 0x100)!=0x100)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor2, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[1]=1;\r\n\t\t\t\t\tif ((RD_LS_01_Direct & 0x800)!=0x800)\r\n\t\t\t\t\t{\t\t\t\t\t\t\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor2, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase 2:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[2]=2;\r\n\t\t\t\t\tif ((RD_LS_02_Direct & 0x04)!=0x04)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor3, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[2]=1;\r\n\t\t\t\t\tif ((RD_LS_02_Direct & 0x20)!=0x20)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now+ \",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor3, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase 3:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[3]=2;\r\n\r\n\t\t\t\t\tif ((RD_LS_02_Direct & 0x100)!=0x100)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now+ \",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor4, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[3]=1;\r\n\r\n\t\t\t\t\tif ((RD_LS_02_Direct & 0x800)!=0x800)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor4, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\t\t\r\n\t\tcase 4:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[4]=2;\r\n\t\t\t\t\tif ((RD_LS_03_Direct & 0x04)!=0x04)\r\n\t\t\t\t\t{ \r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now+ \",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor5, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[4]=1;\r\n\t\t\t\t\tif ((RD_LS_03_Direct & 0x20)!=0x20)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now+ \",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor5, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase 5:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[5]=2;\r\n\t\t\t\t\tif ((RD_LS_03_Direct & 0x100)!=0x100)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor6, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[5]=1;\r\n\t\t\t\t\tif ((RD_LS_03_Direct & 0x800)!=0x800)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now+ \",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor6, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase 6:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[6]=2;\r\n\t\t\t\t\tif ((RD_LS_04_Direct & 0x04)!=0x04)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor7, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[6]=1;\r\n\t\t\t\t\tif ((RD_LS_04_Direct & 0x20)!=0x20)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor7, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\r\n\t\tcase 7:\r\n\t\t\t\tif ( speed<0)\r\n\t\t\t\t{\r\n\t\t\t\t\tMotor_Dir[7]=2;\r\n\r\n\t\t\t\t\tif ((RD_LS_04_Direct & 0x100)!=0x100)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor8, false, (-speed));\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\r\n\t\t\t\t\tMotor_Dir[7]=1;\r\n\r\n\t\t\t\t\tif ((RD_LS_04_Direct & 0x800)!=0x800)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Motor on Limit\\n\");\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontext.Send<StubMotorRunResponse>(\"StubMotorRunRequest\" ,Dispenser_Motor8, true, (speed));\r\n\t\t\t\t}\r\n\t\t\tbreak;\r\n\t\t\t\r\n\t\tdefault:\r\n\t\t\tbreak;\r\n\r\n\t\t}\r\n \tcontext.AppendToFile(Dispenser_Fname,\",Run,\" +speed+\",\"+DateTime.Now +\"\\n\" ); \r\n\r\n\treturn 1;\r\n} \r\n \r\n \t\r\n Int32 Valve_3W(Int32 Valve_Value,Int32 Dispenser)\r\n{\r\n\tif ( Valve_Value==1)\r\n\t\tcontext.Send<StubValveResponse>(\"StubValveRequest\" ,Dispenser_Valve1+Dispenser, 3, true);\t//3 3Way\r\n\telse\t\r\n\t\tcontext.Send<StubValveResponse>(\"StubValveRequest\" ,Dispenser_Valve1+Dispenser, 3, false); //3 3Way\r\n \r\n\tcontext.AppendToFile(Dispenser_Fname,\",Dispenser Valve position is, \" + Valve_Value+\",\"+DateTime.Now +\"\\n\" );\r\n\r\n\treturn 1;\t\r\n}\t\r\n//--------------------------------------- \r\n\r\n Int32 Motor_Stop(Int32 Stop_Value,Int32 Dispenser )\r\n{\r\n\tcontext.Send<StubMotorStopResponse>(\"StubMotorStopRequest\" ,Dispenser_Motor1+Dispenser, Stop_Value);\r\n\t\r\n\tcontext.AppendToFile(Dispenser_Fname,\",Motor Stop,\" + Stop_Value+\",\"+DateTime.Now +\"\\n\");\r\n\tMotor_Dir[Dispenser]=0;\r\n\treturn 1;\t\r\n}\r\n\r\n//--------------------------------------- \r\n\r\n Int32 Delay_on_second(Int32 Delay,Int32 Dispenser )\r\n{\r\n//Int32 temp1;\r\nInt32 pressure_om_mBAR=0;\r\n\tif \t(Temp_Delay ==0)\r\n\t{\r\n\t\tcontext.AppendToFile(Dispenser_Fname,\",DLY, \" + Delay +\",\"+DateTime.Now+\"\\n\");\r\n\t\tTemp_Delay = Delay *10 -1;\r\n//\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontext.Write(\"A\");\t\t//debug\r\n\t}\r\n\telse\t\r\n\t\t\tTemp_Delay--;\r\n\t\t\t\r\n\tif ( LimitSW_Dispenser(Dispenser)==0)\r\n \t {\t\r\n \t \tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now+\",Warning Motor on Limit\\n\");\r\n\t\t\tMotorStop(Dispenser);\r\n\t\t\tTemp_Delay =0;\t//end delay\r\n//\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontext.Write(\"C\");\t\t//debug\r\n\r\n\t\t\treturn 0 ;\r\n \t }\r\n\t\t\t\t\t\r\n\tpressure_om_mBAR=Calc_mBAR(Dispenser,true);\r\n \tif (pressure_om_mBAR > max_pressure_level)\r\n \t \t{\r\n\t\t//\tMotorStop(Dispenser);\r\n\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Pressure too high\\n\");\r\n\t\t\tTemp_Delay =0;\t//end delay\r\n//\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontext.Write(\"D\");\t\t//debug\r\n\t\t\t\r\n\t\t\treturn 0;\r\n\t\t}\r\n \tif (pressure_om_mBAR < min_pressure_level)\r\n \t \t{\r\n\t\t//\tMotorStop(Dispenser);\r\n\t\t\tcontext.AppendToFile(Dispenser_Fname,\",,,\"+DateTime.Now +\",Warning Pressure too low\\n\");\r\n\t\t\tTemp_Delay =0;\t//end delay\r\n//\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontext.Write(\"D\");\t\t//debug\r\n\t\t\t\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\t\r\n\t\t\r\n \treturn 1;\r\n}\t\r\n \t \t\r\nInt32 LimitSW_Dispenser(Int32 Dispenser) \r\n{\r\n\r\n\tif (Dispenser==0)\r\n\t\t\r\n\t\t{\r\n\t\t\t\r\n//\t\tvar response1 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_01_Direct);\r\n\r\n\t\t\t\tif (((RD_LS_01_Direct & 0x04)!=0x04) && (Motor_Dir[0]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_01_Direct & 0x20)!=0x20) && (Motor_Dir[0]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t}\r\n\t\t\r\n\tif (Dispenser==1)\r\n\t\t\r\n\t\t{\r\n//\t\tvar response2 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_01_Direct);\r\n\t\t\t\tif (((RD_LS_01_Direct & 0x100)!=0x100) && (Motor_Dir[1]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_01_Direct & 0x800)!=0x800) && (Motor_Dir[1]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t}\r\n\t\t\r\n\r\n\tif (Dispenser==2)\r\n\t\t\r\n\t\t{\r\n\t\t\t\t\r\n\t\t//var response3 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_02_Direct);\r\n\t\t\t\tif (((RD_LS_02_Direct & 0x04)!=0x04) && (Motor_Dir[2]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_02_Direct & 0x20)!=0x20) && (Motor_Dir[2]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t\t\r\n\t\t}\r\n\t\t\r\n\tif (Dispenser==3)\r\n\t\t\r\n\t\t{\r\n\t\t\t\tvar response4 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_02_Direct);\r\n\t\t\t\tif (((RD_LS_02_Direct & 0x100)!=0x100) && (Motor_Dir[3]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_02_Direct & 0x800)!=0x800) && (Motor_Dir[3]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t}\r\n\t\t\r\n\t\t\r\n\t\t\r\n\r\n\tif (Dispenser==4)\r\n\t\t\r\n\t\t{\r\n\t\t\t\r\n//\t\tvar response1 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_01_Direct);\r\n\t\t\t\tif (((RD_LS_03_Direct & 0x04)!=0x04) && (Motor_Dir[4]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_03_Direct & 0x20)!=0x20) && (Motor_Dir[4]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t}\r\n\t\t\r\n\tif (Dispenser==5)\r\n\t\t\r\n\t\t{\r\n//\t\tvar response2 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_01_Direct);\r\n\t\t\t\tif (((RD_LS_03_Direct & 0x100)!=0x100) && (Motor_Dir[5]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_03_Direct & 0x800)!=0x800) && (Motor_Dir[5]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t}\r\n\t\t\r\n\r\n\tif (Dispenser==6)\r\n\t\t\r\n\t\t{\r\n\t\t\t\t\r\n\t\t//var response3 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_02_Direct);\r\n\t\t\t\tif (((RD_LS_04_Direct & 0x04)!=0x04) && (Motor_Dir[6]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_04_Direct & 0x20)!=0x20) && (Motor_Dir[6]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t\t\r\n\t\t}\r\n\t\t\r\n\tif (Dispenser==7)\r\n\t\t\r\n\t\t{\r\n//\t\tvar response4 = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" ,F2_LS_02_Direct);\r\n\t\t\t\tif (((RD_LS_04_Direct & 0x100)!=0x100) && (Motor_Dir[7]==2))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\tif (((RD_LS_04_Direct & 0x800)!=0x800) && (Motor_Dir[7]==1))\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\telse\r\n\t\t\t\treturn 1;\t\t\r\n\t\t}\r\n\t\t\r\n\t\t\r\n\t\treturn 0;\r\n}\t\t\r\n\t\t\r\n\t \t\r\nInt32 Print_Time() \r\n{\t\r\n\t\tcontext.AppendToFile(Dispenser_Fname,\",Time is\\t,,\"+ DateTime.Now +\"\\n\" ); \r\n\r\n\t\treturn 1;\r\n}\t\r\n\r\n\r\n\r\nInt32 Calc_mBAR(Int32 Dispenser, bool save_press)\r\n{\t\t\r\nInt32 Data;\r\nInt32 Sense1;\r\nInt32 temp=0;\r\n\r\n\t\tData =A2D_Dispenser[Dispenser];\r\n\t\tif (Data<100)\r\n\t\t\ttemp=-1;\r\n\t\tData=Data-710;\r\n\t\tif (Data<0)\r\n\t\tData=0;\r\n\r\n\t\tData=Data*(10000+PressureSensorType*1000)/2840;\t//\tfor -1 to 10 bar Press_Sensor_Type=1 else 0\r\n\t\tData=Data-1000*PressureSensorType; \t\t\t// for -1 to 10 bar\r\n\r\n\t\tif (temp==-1)\t\t\t\t\t\t//if SamplingInBits <100 then No pressure sensor exist\r\n\t\tSense1=-9999\t;\r\n\t\telse\t\r\n\t\tSense1=Data\t;\r\n\t\tif (\t((msec_index) % (Dispenser_sample_rate)) == 0)\r\n\t\t{\r\n\t\t\tcontext.AppendToFile(Dispenser_Fname,\"\" + Sense1+\"\\n\");\r\n\t\t}\r\n\t\tDispenser_press[Dispenser]=Sense1;\r\n\treturn Sense1;\r\n\t\t\t\r\n } \t\r\n\r\n \r\n//--------------------------------\r\nint open_midtank_valve (Int32 valve_type,Int32 valve_nm)\t\t//valve_type=0 is Air ,1 is Ink ; valve_nm 0-7\r\n{\r\n\tSetBit (F3_VALVE_OUT,((valve_type+1)*8)- valve_nm-1, 1);\r\n\treturn 1;\r\n\r\n}\r\n//--------------------------------\t\r\nint close_midtank_valve (Int32 valve_type,Int32 valve_nm)\t\t//valve_type=0 is Air ,1 is Ink ; valve_nm 0-7\r\n{\r\n\tSetBit (F3_VALVE_OUT,((valve_type+1)*8)- valve_nm-1, 0);\r\n\treturn 1;\r\n}\r\n//--------------------------------\r\nInt32 SetBit(Int32 Adr, Int32 BitNo, Int32 Bit)\r\n{\r\n\tInt32 BitMask;\r\n\r\n var response = context.Send<StubFpgaReadRegResponse>(\"StubFpgaReadRegRequest\" , F3_VALVE_OUT);\r\n\tInt32 RV = (Int32) response.Value & 0xffff;\r\n\t\r\n\t\r\n\tif (Bit == 0x1) \r\n\t{\r\n\t\tBitMask = 0x1 << BitNo;\r\n\t\tRV = RV | BitMask;\r\n\t\tcontext.Send<StubFpgaWriteRegResponse>(\"StubFpgaWriteRegRequest\" ,F3_VALVE_OUT , RV);\r\n\t}\r\n\telse if (Bit == 0x0)\r\n\t{\r\n\t\tBitMask = ~(0x1 << BitNo);\r\n\t\tRV = RV & BitMask;\r\n\t\tcontext.Send<StubFpgaWriteRegResponse>(\"StubFpgaWriteRegRequest\" ,F3_VALVE_OUT , RV);\r\n\t}\r\n\treturn 1;\r\n}\r\n//---------------------------------- \r\n void MotorStop(Int32 i)\r\n{\r\n \r\ncontext.Send<StubMotorStopResponse>(\"StubMotorStopRequest\" ,Dispenser_Motor1+i, 2);\r\nMotor_Dir[i]=0;\t//0 stop 1- up 2-dn\r\n\r\n}\r\n \r\n}","IsEntryPoint":true},{"$id":"4","Name":"Service.csx","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[]},"Variables":{"$id":"6","$values":[{"$id":"7","Name":null,"Value":null}]},"ReferenceAssemblies":{"$id":"8","$values":[{"$id":"9","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"10","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"11","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"12","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"13","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"14","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"15","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"17","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"18","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"19","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Resources":{"$id":"20","$values":[]},"Dialogs":{"$id":"21","$values":[]},"ID":"b5924fbd-808a-41e3-99fb-980cd8df910c","ApartmentState":"STA"} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/Set cleaning sequence.cs b/Software/Stubs Collection/stubs/Scripts/Set cleaning sequence.cs
new file mode 100644
index 000000000..6f5357535
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/Set cleaning sequence.cs
@@ -0,0 +1,23 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+
+public void OnExecute(StubManager stubManager)
+{
+
+
+ProgressRequest progressRequest = new ProgressRequest();
+progressRequest.Amount = 0xAD7;
+progressRequest.Delay = 1; // 1 - active, 0 - disabled
+
+var response = stubManager.Run<ProgressResponse>(progressRequest);
+
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/WHS_waste_Tank_Calibration_Save_V0.pproj b/Software/Stubs Collection/stubs/Scripts/WHS_waste_Tank_Calibration_Save_V0.pproj
new file mode 100644
index 000000000..5932b58a0
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/WHS_waste_Tank_Calibration_Save_V0.pproj
@@ -0,0 +1 @@
+{"$id":"1","Name":"untitled","Description":null,"Scripts":{"$id":"2","$values":[{"$id":"3","Name":"Program.csx","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\n\r\npublic class Program\r\n{\r\n\tdouble V0_default_ml = 8.7433;\r\n\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n \r\n\tvar response1 = context.RequestUserInputFor<String>(\"Warning - you are going to change the value of Vo in the eeprom !!!\\nPlease Enter Password to confirme:\",\"\");\r\n\tif (response1==\"Aa123456\")\r\n\t{\r\n\t\tcontext.WriteLine(response1);\r\n\t\t\r\n\t\t//Write_0_Vo_in_ml_to_eeprom\r\n\t\tcontext.WriteLine(\"\\nWrite_0_Vo_in_ml_to_eeprom\");\t\r\n\t\tStubWhsEEpromRequest stubWhsEEpromRequest = new StubWhsEEpromRequest();\r\n\t\tstubWhsEEpromRequest.BurnRequest = true; //write\r\n\t\tStubWhsEEpromData stubWhsEEpromData = new StubWhsEEpromData();\r\n\t\tstubWhsEEpromData.Orifice1Flow = 0;\r\n\t\tstubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData;\r\n\t\tvar response = context.Send<StubWhsEEpromResponse>(stubWhsEEpromRequest);\r\n\t\t\t\t\r\n\t\t//wait_10mSec\r\n\t\tcontext.WriteLine(\"\\nwait_10mSec\");\t\r\n\t\tThread.Sleep(100); //Sleep for 10 milli.\r\n\t\t\r\n\t\t//Read_Vo_in_ml_from_eeprom\t& verify it is 0\r\n\t\tcontext.WriteLine(\"\\nRead_Vo_in_ml_from_eeprom\t& verify it is 0\");\r\n\t\tstubWhsEEpromRequest.BurnRequest = false; //write\r\n\t\tstubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData;\r\n\t\tvar response2 = context.Send<StubWhsEEpromResponse>(stubWhsEEpromRequest);\r\n\t\t\r\n\t\t//Read_Vo_in_mV\r\n\t\tcontext.WriteLine(\"\\nRead_Vo_in_mV\");\r\n\t\tvar response3 = context.Send<ProgressResponse>(\"ProgressRequest\" ,0x3EC, 0x01);\r\n\t\t//Print_Vo_in_mV\r\n\t\tcontext.WriteLine(response3.Progress);\r\n\t\t\r\n\t\t//check validity\r\n\t\tcontext.WriteLine(\"\\ncheck validity\");\r\n\t\t if((response3.Progress <= 800) || (response3.Progress >=1200))\r\n\t\t {\r\n\t\t \tresponse3.Progress = 1076; //default\r\n\t\t \tcontext.Write(\"\\nERROR ------ Vreading value outside the defined range !!! ------\");\r\n\t\t \t context.AddResult(ResultType.Failed , \"Error\", \"ERROR ------ Vreading value outside the defined range !!! ------\");\r\n\t\t }\r\n\t\telse\r\n\t\t{\t\t\t\r\n\t\t\t//calculate_V0_in_ml\r\n\t\t\tcontext.WriteLine(\"\\ncalculate_V0_in_ml\");\r\n\t\t\tV0_default_ml = V0_default_ml * response3.Progress;\r\n\t\t\t\r\n\t\t\t//print_Vo_in_ml\r\n\t\t\tcontext.WriteLine(\"\\nprint_Vo_in_ml\");\r\n\t\t\tcontext.WriteLine(V0_default_ml);\r\n\t\t\tcontext.WriteLine(\"\");\r\n\t\t\t\r\n\t\t\t//Write_Vo_in_ml_to_eeprom\r\n\t\t\tcontext.WriteLine(\"\\nWrite_Vo_in_ml_to_eeprom\");\r\n\t\t\tstubWhsEEpromRequest.BurnRequest = true; //write\r\n\t\r\n\t\t\tstubWhsEEpromData.Orifice1Flow = V0_default_ml;\r\n\t\t\tstubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData;\r\n\t\t\tvar response4 = context.Send<StubWhsEEpromResponse>(stubWhsEEpromRequest);\r\n\t\t\t\t\r\n\t\t\t//wait_10mSec\r\n\t\t\tcontext.WriteLine(\"\\nwait_10mSec\");\t\r\n\t\t\t Thread.Sleep(100); //Sleep for 10 milli.\r\n\t\t\t \t\t\r\n\t\t\t //Read_Vo_in_ml_from_eeprom\r\n\t\t\tcontext.WriteLine(\"\\nRead_Vo_in_ml_from_eeprom\");\r\n\t\t\tstubWhsEEpromRequest.BurnRequest = false; //write\r\n\t\t\tstubWhsEEpromRequest.WhsEEprom = stubWhsEEpromData;\r\n\t\t\tvar response5 = context.Send<StubWhsEEpromResponse>(stubWhsEEpromRequest);\r\n\t\t\t\r\n\t\t\t//Check if we read the correct value\r\n\t\t\tcontext.WriteLine(\"\\nVerify that we read the correct value of Orifice1Flow!!\");\r\n\t\t\t context.AddResult(ResultType.Passed , \"Pass\", \"Calibration Pass.\");\r\n\r\n\t\t\t}\r\n\t}\r\n\t\telse\r\n \t{\r\n\t\t\tcontext.AddResult(ResultType.Failed , \"Error\", \"Password Fail.\");\r\n\t\t}\r\n\t\tcontext.WriteLine(\"\\n -- END OF SCRIPT -- \");\r\n }\r\n}\r\n\r\n\r\n","IsEntryPoint":true},{"$id":"4","Name":"Service.csx","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[]},"Variables":{"$id":"6","$values":[]},"ReferenceAssemblies":{"$id":"7","$values":[{"$id":"8","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"9","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"10","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"11","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"12","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"13","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"14","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"15","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"17","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"18","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Resources":{"$id":"19","$values":[]},"Dialogs":{"$id":"20","$values":[]},"ID":"605a2ef0-71a6-450d-92f7-9b6d22850ad1","ApartmentState":"STA"} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/config head type to hed card eeprom.cs b/Software/Stubs Collection/stubs/Scripts/config head type to hed card eeprom.cs
new file mode 100644
index 000000000..fd0f7fcf7
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/config head type to hed card eeprom.cs
@@ -0,0 +1,118 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+
+//----------------------
+const Int32 I2C_ID = 3; //MCU_I2C3
+const Int32 TCA9548A_address = 0xE2;
+const Int32 I2C_Slave_Add = 0xA0; // //eeprom address - 32kByte
+int Head_Mux_Channel_ID = 4; //Head MUX channel
+//----------------------
+
+const Int32 SerialNum = 0x01;
+
+
+int enable_channel(int Channel_ID)
+{
+ uint Const_temp = 0x01;
+
+ StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
+ stubI2CWriteBytesRequest.I2CId = I2C_ID;
+ stubI2CWriteBytesRequest.SlaveAddress = TCA9548A_address;
+
+ Const_temp = Const_temp << Channel_ID;
+ stubI2CWriteBytesRequest.BytesTWrite.Add(Const_temp);
+
+ var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
+
+ return 1;
+}
+
+
+int adc_write(uint I2C_Slave_Add, uint Page)
+{
+ StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
+ stubI2CWriteBytesRequest.I2CId = I2C_ID;
+ stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
+
+ UInt32 uInt32 = new UInt32();
+ stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
+ stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write
+ //--------------------------------------------------------------
+
+ stubI2CWriteBytesRequest.BytesTWrite.Add(SerialNum);//S/N
+ //stubI2CWriteBytesRequest.BytesTWrite.Add(0x03);//HEAD_TYPE_FLAT
+ stubI2CWriteBytesRequest.BytesTWrite.Add(0x04);//HEAD_TYPE_ARC
+
+ var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
+
+ return 1;
+}
+
+int adc_set_for_read_ch(uint I2C_Slave_Add, uint Page)
+{
+ StubI2CWriteBytesRequest stubI2CWriteBytesRequest = new StubI2CWriteBytesRequest();
+ stubI2CWriteBytesRequest.I2CId = I2C_ID;
+ stubI2CWriteBytesRequest.SlaveAddress = I2C_Slave_Add;
+
+
+ UInt32 uInt32 = new UInt32();
+ stubI2CWriteBytesRequest.BytesTWrite.Add(0);//Byte 0 to write
+ stubI2CWriteBytesRequest.BytesTWrite.Add(Page);//Byte 0 to write
+
+ var response = stubManager.Run<StubI2CWriteBytesResponse>(stubI2CWriteBytesRequest);
+
+ return 1;
+}
+
+int adc_read_ch(uint I2C_Slave_Add)
+{
+ StubI2CReadBytesRequest stubI2CReadBytesRequest = new StubI2CReadBytesRequest();
+ stubI2CReadBytesRequest.I2CId = I2C_ID;
+ stubI2CReadBytesRequest.SlaveAddress = I2C_Slave_Add + 1;
+ stubI2CReadBytesRequest.NumberOfBytesToRead = 10; // Number of bytes to read
+
+ var response1 = stubManager.Run<StubI2CReadBytesResponse>(stubI2CReadBytesRequest);
+ uint temph=0;
+
+ for(int i=0; i<stubI2CReadBytesRequest.NumberOfBytesToRead;i++)
+ {
+ temph=response1.ReadBytes[i];
+ stubManager.WriteHex(temph,2);
+ }
+
+ return 1;
+}
+
+
+public void OnExecute(StubManager stubManager)
+{
+
+ //enable_all_channel();
+ enable_channel(Head_Mux_Channel_ID); // Chanel 0-7 => Disp0enser 0-7
+
+ for (int i = 0; i<1; i++)
+ {
+
+ adc_write(I2C_Slave_Add,0x00);
+ Thread.Sleep(10); //Sleep for 5 milli. - must! otherwise read 0xff (See data sheet )
+
+ stubManager.Write("\nPage 0x00 #");
+ stubManager.Write(i);
+ stubManager.Write("\t- The Buffer is: ");
+ adc_set_for_read_ch(I2C_Slave_Add, 0x00);
+ //Thread.Sleep(1); //Sleep for 10 milli.
+ adc_read_ch(I2C_Slave_Add);
+
+ Thread.Sleep(1000);
+
+ }
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/progress_test.pproj b/Software/Stubs Collection/stubs/Scripts/progress_test.pproj
new file mode 100644
index 000000000..29d02caa2
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/progress_test.pproj
@@ -0,0 +1 @@
+{"$id":"1","Name":"untitled","Description":null,"Scripts":{"$id":"2","$values":[{"$id":"3","Name":"Program.csx","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Program\r\n{\r\n public void OnExecute(IProcedureContext context)\r\n {\r\n context.AddResult(ResultType.Passed, \"My Value Name\", \"Test for this value has passed.\");\r\n\t\t\r\nfor (int i=0;i<10;i++)\r\n{\r\n Thread.Sleep(10000);\r\n context.UpdateProgress(\"11111\",true,i,10);\r\n\t}\t\r\n }\r\n}","IsEntryPoint":true},{"$id":"4","Name":"Service.csx","Code":"using System;\r\nusing System.Collections.Generic;\r\nusing System.Collections.ObjectModel;\r\nusing System.ComponentModel;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\nusing System.Drawing;\r\nusing Google.Protobuf;\r\nusing Tango.BL.Entities;\r\nusing Tango.BL.Enumerations;\r\nusing Tango.PMR.Stubs;\r\nusing Tango.PMR.Diagnostics;\r\nusing Tango.FSE.Common.Connection;\r\nusing Tango.FSE.Common.Diagnostics;\r\nusing Tango.FSE.Procedures;\r\n\r\npublic class Service\r\n{\r\n public double Calc(double a, double b)\r\n {\r\n return a + b;\r\n }\r\n}","IsEntryPoint":false}]},"Inputs":{"$id":"5","$values":[]},"Variables":{"$id":"6","$values":[]},"ReferenceAssemblies":{"$id":"7","$values":[{"$id":"8","File":"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorlib.dll","HintType":"System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"9","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Core\\v4.0_4.0.0.0__b77a5c561934e089\\System.Core.dll","HintType":"System.Linq.Enumerable, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"10","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Windows.Forms\\v4.0_4.0.0.0__b77a5c561934e089\\System.Windows.Forms.dll","HintType":"System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"},{"$id":"11","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Procedures.dll","HintType":"Tango.FSE.Procedures.ProcedureProject, Tango.FSE.Procedures, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"12","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.FSE.Common.dll","HintType":"Tango.FSE.Common.Diagnostics.IDiagnosticsProvider, Tango.FSE.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"13","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.BL.dll","HintType":"Tango.BL.Enumerations.TechMonitors, Tango.BL, Version=2.0.36.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"14","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.PMR.dll","HintType":"Tango.PMR.Common.MessageType, Tango.PMR, Version=2.0.40.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"15","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Transport.dll","HintType":"Tango.Transport.ITransporter, Tango.Transport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"},{"$id":"16","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Tango.Integration.dll","HintType":"Tango.Integration.Operation.IMachineOperator, Tango.Integration, Version=2.0.31.1608, Culture=neutral, PublicKeyToken=null"},{"$id":"17","File":"C:\\Program Files (x86)\\Twine Solutions LTD\\Tango FSE\\Google.Protobuf.dll","HintType":"Google.Protobuf.IMessage, Google.Protobuf, Version=3.4.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604"},{"$id":"18","File":"C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_MSIL\\System.Drawing\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Drawing.dll","HintType":"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"}]},"Resources":{"$id":"19","$values":[]},"Dialogs":{"$id":"20","$values":[]},"ID":"b99ea8ff-f5ff-44d5-8b33-4b534a14647b","ApartmentState":"STA"} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/Scripts/test halt.cs b/Software/Stubs Collection/stubs/Scripts/test halt.cs
new file mode 100644
index 000000000..289eb612a
--- /dev/null
+++ b/Software/Stubs Collection/stubs/Scripts/test halt.cs
@@ -0,0 +1,24 @@
+using System;
+using System.Text;
+using System.Linq;
+using System.Drawing;
+using System.Diagnostics;
+using System.Windows.Forms;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Collections.Generic;
+using Tango.PMR.Stubs;
+using Tango.Stubs;
+
+public void OnExecute(StubManager stubManager)
+{
+
+//CF - initialize FFS
+//DF - reset
+ProgressRequest progressRequest = new ProgressRequest();
+progressRequest.Amount = 0xAD9;
+progressRequest.Delay = 0xAD9;
+
+ var response = stubManager.Run<ProgressResponse>(progressRequest);
+
+} \ No newline at end of file
diff --git a/Software/Stubs Collection/stubs/embeddedparametersbuild_w_cleaning.cs b/Software/Stubs Collection/stubs/embeddedparametersbuild_w_cleaning.cs
index 5b2cfdc0d..0f8794799 100644
--- a/Software/Stubs Collection/stubs/embeddedparametersbuild_w_cleaning.cs
+++ b/Software/Stubs Collection/stubs/embeddedparametersbuild_w_cleaning.cs
@@ -35,8 +35,8 @@ configurationParameters.CloseValveTimeout = 20;
configurationParameters.OpenValveTimeout = 20;
//backlash after filling - target pressure, timoeout, time staps (speed will be added in general parameters)
-configurationParameters.InitialDispenserPressure = 3.85; //used for initial pre-run pressure
-configurationParameters.InitialDispenserTimeout = 120000; ////used for initial pre-run number of steps
+configurationParameters.InitialDispenserPressure = 3.85; //used for initial pre-run maximal pressure
+configurationParameters.InitialDispenserTimeout = 120000; ////used for initial pre-run target number of steps
configurationParameters.InitialDispenserTimeLag = 100;
//job prepare - build pressure in dispensers - target pressure, timoeout, time staps, speed
@@ -108,7 +108,7 @@ configurationParameters.GeneralParameters.Add(checkCurrentAlarms);
/*3*/
Double checkTamperAlarms = new Double();
-checkTamperAlarms = 0.0;
+checkTamperAlarms = 1.0;
configurationParameters.GeneralParameters.Add(checkTamperAlarms);
/*4*/