RSRC LVINLBVW `<;EȋۈjB RۈjB ُ B~$ !D.)!pLVIN 4D-Dog.viLVINEnd.vi(v@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBeginPTH0%Rcx1 BeginEnd.llbEnd.viLVIN Begin NXT.vi8  @0filenamet@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd@! LASM View?*@ Program File Try Me File Extension @portPTH0+Rcx1 BeginEnd.llb Begin NXT.viLVIN Task Split.vi;( z@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeNew Taskt@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBeginPTH04Rcx1 Structures Tasks.llb Task Split.viLVINRCX Red Container.vi X@HContainers.ctl6P"@H source.ctl@Variable Timer100msConstant Motor StatusRandom No (0-32767)MotorPowerSignedDSIntrinsicIndirectGlobalRobolabFreeSampleProgram Number SensorValue SensorType SensorMode SensorRaw SensorBool ClockMinutes PBMessageDSMotorPower128Global Motor Status (0-2)DSEventType (0-15)DSEvent (0-15)DSTaskStackVarLong (0-15) Counter (0-2) Timer1msecTask Events (0-9)SystemEvent State (0-15) Timer10msecClick Counter (0-15)Upper Threshold (0-15)Lower Threshold (0-15)Hysteresis (0-15)Duration (0-15) MotorPower8 UART SetupBatteryLevel (Avg)Firmware VersionIndirect Var (0-47) Datalog type (indirectly) (0-47)'Datalog type (directly) (0-DatalogSize)!Datalog value (indirectly) (0-47)(Datalog value (directly) (0-DatalogSize) Datalog byte (indirectly) (0-47),Datalog bye (directly) (0-(3*DatalogSize-1)) GlobalVarDSIndirectGlobalInt (0-255)DSIndirectGlobalLong (0-255)DSIndirectGlobalFloat (0-255)DSIndexedGlobalAndConstantDSIndexedGlobalLongAndConstant DSStackVarDSConstantVar (0-255)DSFunctionReturnValueWordDSFunctionReturnValueLongDSFunctionReturnValueFloatsmartMotorEncodersmartMotorEncoderTargetsmartMotorEnablemotor180ReflectionDSTaskStackVarWord (0-255)DSTaskStackVarLong (0-255)DSTaskVar (0-15)DSTaskStackAddress (0-9,10)DSTaskStackSize (0-9,10)DSBadSource@variable ContainerPTH04Rcx1 Modifiers.llbRCX Red Container.viLVINRCX Loop Forever.vi(t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBeginPTH0<SwanS_AdvancedFirmware.llbRCX Loop Forever.viLVINRCX End of Forever Loop.vi(t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBeginPTH0IRcx1 StructuresWhiles Whiles.llbRCX End of Forever Loop.viLVINFill Container.vi7(@Set the the container tot@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndX@HContainers.ctl6P"@H source.ctl@Variable Timer100msConstant Motor StatusRandom No (0-32767)MotorPowerSignedDSIntrinsicIndirectGlobalRobolabFreeSampleProgram Number SensorValue SensorType SensorMode SensorRaw SensorBool ClockMinutes PBMessageDSMotorPower128Global Motor Status (0-2)DSEventType (0-15)DSEvent (0-15)DSTaskStackVarLong (0-15) Counter (0-2) Timer1msecTask Events (0-9)SystemEvent State (0-15) Timer10msecClick Counter (0-15)Upper Threshold (0-15)Lower Threshold (0-15)Hysteresis (0-15)Duration (0-15) MotorPower8 UART SetupBatteryLevel (Avg)Firmware VersionIndirect Var (0-47) Datalog type (indirectly) (0-47)'Datalog type (directly) (0-DatalogSize)!Datalog value (indirectly) (0-47)(Datalog value (directly) (0-DatalogSize) Datalog byte (indirectly) (0-47),Datalog bye (directly) (0-(3*DatalogSize-1)) GlobalVarDSIndirectGlobalInt (0-255)DSIndirectGlobalLong (0-255)DSIndirectGlobalFloat (0-255)DSIndexedGlobalAndConstantDSIndexedGlobalLongAndConstant DSStackVarDSConstantVar (0-255)DSFunctionReturnValueWordDSFunctionReturnValueLongDSFunctionReturnValueFloatsmartMotorEncodersmartMotorEncoderTargetsmartMotorEnablemotor180ReflectionDSTaskStackVarWord (0-255)DSTaskStackVarLong (0-255)DSTaskVar (0-15)DSTaskStackAddress (0-9,10)DSTaskStackSize (0-9,10)DSBadSource@variable Containerv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBeginPTH0:Rcx1CounterContainers.llbFill Container.viLVINNXT Wait for Push.vi( @Number of Clickst@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd,@Sensor Port.ctl@!Portv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBeginPTH0;Rcx1WaitFor waitfors.llbNXT Wait for Push.viLVINRCX Input 1.vi ,@Sensor Port.ctl@!PortPTH0.Rcx1 Modifiers.llbRCX Input 1.viLVINRCX Stop Tasks.vi((@*۷TaskNumberX.ctl Task Numbert@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBeginPTH08Rcx1 Structures Tasks.llbRCX Stop Tasks.viLVINContainer fork.vi;   @j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Container is >)v@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegin@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Container is < or = )@ Compare tob@HContainers.ctl6P"@H source.ctl@Variable Timer100msConstant Motor StatusRandom No (0-32767)MotorPowerSignedDSIntrinsicIndirectGlobalRobolabFreeSampleProgram Number SensorValue SensorType SensorMode SensorRaw SensorBool ClockMinutes PBMessageDSMotorPower128Global Motor Status (0-2)DSEventType (0-15)DSEvent (0-15)DSTaskStackVarLong (0-15) Counter (0-2) Timer1msecTask Events (0-9)SystemEvent State (0-15) Timer10msecClick Counter (0-15)Upper Threshold (0-15)Lower Threshold (0-15)Hysteresis (0-15)Duration (0-15) MotorPower8 UART SetupBatteryLevel (Avg)Firmware VersionIndirect Var (0-47) Datalog type (indirectly) (0-47)'Datalog type (directly) (0-DatalogSize)!Datalog value (indirectly) (0-47)(Datalog value (directly) (0-DatalogSize) Datalog byte (indirectly) (0-47),Datalog bye (directly) (0-(3*DatalogSize-1)) GlobalVarDSIndirectGlobalInt (0-255)DSIndirectGlobalLong (0-255)DSIndirectGlobalFloat (0-255)DSIndexedGlobalAndConstantDSIndexedGlobalLongAndConstant DSStackVarDSConstantVar (0-255)DSFunctionReturnValueWordDSFunctionReturnValueLongDSFunctionReturnValueFloatsmartMotorEncodersmartMotorEncoderTargetsmartMotorEnablemotor180ReflectionDSTaskStackVarWord (0-255)DSTaskStackVarLong (0-255)DSTaskVar (0-15)DSTaskStackAddress (0-9,10)DSTaskStackSize (0-9,10)DSBadSource@variableChoose a ContainerPTH0=Rcx1 StructuresForksGTLT.llbContainer fork.viLVINRCX Fork Merge.vi9( t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeFalsev@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeTruePTH0=Rcx1 StructuresForksGTLT.llbRCX Fork Merge.viLVINNXT Light Sensor fork.vipK    @j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Light is >)v@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegin@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Light is < or = )@Compare to (%)@! Light on?,@Sensor Port.ctl@!PortPTH0DRcx1 StructuresForksGTLT.llbNXT Light Sensor fork.viLVINRCX Input 2.vi ,@Sensor Port.ctl@!PortPTH0.Rcx1 Modifiers.llbRCX Input 2.viLVINRCX Motor forward.vi("@ Power.ctl Power Levelt@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd.@\Output Ports.ctl@!Portsv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBeginPTH04Rcx1 GeneralIO.llbRCX Motor forward.viLVINRCX Output C.vi; <@\Output Ports.ctl@!Additional Ports 20@\Output Ports.ctl@!Ports 2PTH0/Rcx1 Modifiers.llbRCX Output C.viLVIN RCX Stop A.vi(t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBeginPTH0,Rcx1 SimpleIO.llb RCX Stop A.viLVINRCX Output A.vi9 :@\Output Ports.ctl@!Additional Ports.@\Output Ports.ctl@!PortsPTH0/Rcx1 Modifiers.llbRCX Output A.viLVIN RCX Stop C.vi(t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBeginPTH0,Rcx1 SimpleIO.llb RCX Stop C.viLVINPower Level 3.vi @ Power Level 3PTH00Rcx1 Modifiers.llbPower Level 3.viLVIN RCX Stop.vi(t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd.@\Output Ports.ctl@!Portsv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBeginPTH0+Rcx1 GeneralIO.llb RCX Stop.viLVINRCX Wait for N hundredths.vi(@ Wait (sec)t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBeginPTH0CRcx1WaitFor waitfors.llbRCX Wait for N hundredths.viLVINNXT play sound file.vi(t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd@0Sound File Namev@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBeginPTH05Rcx1 RCXtoRCX.llbNXT play sound file.viLVINRCX Play Sound.vi( @ Sound Typet@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBeginPTH01Rcx1 GeneralIO.llbRCX Play Sound.viLVINMultiply to Container.vi4(@Number to multiplyt@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndX@HContainers.ctl6P"@H source.ctl@Variable Timer100msConstant Motor StatusRandom No (0-32767)MotorPowerSignedDSIntrinsicIndirectGlobalRobolabFreeSampleProgram Number SensorValue SensorType SensorMode SensorRaw SensorBool ClockMinutes PBMessageDSMotorPower128Global Motor Status (0-2)DSEventType (0-15)DSEvent (0-15)DSTaskStackVarLong (0-15) Counter (0-2) Timer1msecTask Events (0-9)SystemEvent State (0-15) Timer10msecClick Counter (0-15)Upper Threshold (0-15)Lower Threshold (0-15)Hysteresis (0-15)Duration (0-15) MotorPower8 UART SetupBatteryLevel (Avg)Firmware VersionIndirect Var (0-47) Datalog type (indirectly) (0-47)'Datalog type (directly) (0-DatalogSize)!Datalog value (indirectly) (0-47)(Datalog value (directly) (0-DatalogSize) Datalog byte (indirectly) (0-47),Datalog bye (directly) (0-(3*DatalogSize-1)) GlobalVarDSIndirectGlobalInt (0-255)DSIndirectGlobalLong (0-255)DSIndirectGlobalFloat (0-255)DSIndexedGlobalAndConstantDSIndexedGlobalLongAndConstant DSStackVarDSConstantVar (0-255)DSFunctionReturnValueWordDSFunctionReturnValueLongDSFunctionReturnValueFloatsmartMotorEncodersmartMotorEncoderTargetsmartMotorEnablemotor180ReflectionDSTaskStackVarWord (0-255)DSTaskStackVarLong (0-255)DSTaskVar (0-15)DSTaskStackAddress (0-9,10)DSTaskStackSize (0-9,10)DSBadSource@variable Containerv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBeginPTH0ARcx1CounterContainers.llbMultiply to Container.viLVINNXT Wait for Loud.vi;t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegin@Cutoff Sound Level@!Flat Response?,@Sensor Port.ctl@!PortPTH0;Rcx1WaitFor waitfors.llbNXT Wait for Loud.viLVINRCX Input 3.vi ,@Sensor Port.ctl@!PortPTH0.Rcx1 Modifiers.llbRCX Input 3.viLVINNXT Distance Sensor fork.vij;   @j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Distance is >)v@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegin@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Distance is < or = )@Compare to (%),@Sensor Port.ctl@!PortPTH0GRcx1 StructuresForksGTLT.llbNXT Distance Sensor fork.viLVINNXT Input 4.vi ,@Sensor Port.ctl@!PortPTH0.Rcx1 Modifiers.llbNXT Input 4.viLVIN Lamp B.vi("@ Power.ctl Power Levelt@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBeginPTH0(Rcx1 SimpleIO.llb Lamp B.viLVIN RCX Stop B.vi(t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBeginPTH0,Rcx1 SimpleIO.llb RCX Stop B.viKKP| cL P d-` `0filename`Set the the container to`! Light on?h Compare to`Compare to (%)`0Sound File Name` Sound Type" P@@`Number to multiply`Cutoff Sound Level` Wait (sec)`!Flat Response?`Compare to (%)` Wait (sec)`0Sound File Name c$ cp c c<t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd c<t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd c<t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndt@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd c<t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndt@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd c<@ Power Level 3:@\Output Ports.ctl@!Additional Portst@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd c<@ Power Level 3<@\Output Ports.ctl@!Additional Ports 2t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd c<t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd c<t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd c< c<t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndt@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd c<@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Light is < or = ) c<@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Light is >) c<t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd c<@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Distance is < or = ) c<@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Distance is >) cL@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Container is < or = ),@Sensor Port.ctl@!Port c<<@\Output Ports.ctl@!Additional Ports 2@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Container is >) c<t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd c<t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd c< c<X@HContainers.ctl6P"@H source.ctl@Variable Timer100msConstant Motor StatusRandom No (0-32767)MotorPowerSignedDSIntrinsicIndirectGlobalRobolabFreeSampleProgram Number SensorValue SensorType SensorMode SensorRaw SensorBool ClockMinutes PBMessageDSMotorPower128Global Motor Status (0-2)DSEventType (0-15)DSEvent (0-15)DSTaskStackVarLong (0-15) Counter (0-2) Timer1msecTask Events (0-9)SystemEvent State (0-15) Timer10msecClick Counter (0-15)Upper Threshold (0-15)Lower Threshold (0-15)Hysteresis (0-15)Duration (0-15) MotorPower8 UART SetupBatteryLevel (Avg)Firmware VersionIndirect Var (0-47) Datalog type (indirectly) (0-47)'Datalog type (directly) (0-DatalogSize)!Datalog value (indirectly) (0-47)(Datalog value (directly) (0-DatalogSize) Datalog byte (indirectly) (0-47),Datalog bye (directly) (0-(3*DatalogSize-1)) GlobalVarDSIndirectGlobalInt (0-255)DSIndirectGlobalLong (0-255)DSIndirectGlobalFloat (0-255)DSIndexedGlobalAndConstantDSIndexedGlobalLongAndConstant DSStackVarDSConstantVar (0-255)DSFunctionReturnValueWordDSFunctionReturnValueLongDSFunctionReturnValueFloatsmartMotorEncodersmartMotorEncoderTargetsmartMotorEnablemotor180ReflectionDSTaskStackVarWord (0-255)DSTaskStackVarLong (0-255)DSTaskVar (0-15)DSTaskStackAddress (0-9,10)DSTaskStackSize (0-9,10)DSBadSource@variable Containert@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd cDt@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd,@Sensor Port.ctl@!Port c<t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd cDt@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd,@Sensor Port.ctl@!Port c<z@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeNew Task cDt@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndX@HContainers.ctl6P"@H source.ctl@Variable Timer100msConstant Motor StatusRandom No (0-32767)MotorPowerSignedDSIntrinsicIndirectGlobalRobolabFreeSampleProgram Number SensorValue SensorType SensorMode SensorRaw SensorBool ClockMinutes PBMessageDSMotorPower128Global Motor Status (0-2)DSEventType (0-15)DSEvent (0-15)DSTaskStackVarLong (0-15) Counter (0-2) Timer1msecTask Events (0-9)SystemEvent State (0-15) Timer10msecClick Counter (0-15)Upper Threshold (0-15)Lower Threshold (0-15)Hysteresis (0-15)Duration (0-15) MotorPower8 UART SetupBatteryLevel (Avg)Firmware VersionIndirect Var (0-47) Datalog type (indirectly) (0-47)'Datalog type (directly) (0-DatalogSize)!Datalog value (indirectly) (0-47)(Datalog value (directly) (0-DatalogSize) Datalog byte (indirectly) (0-47),Datalog bye (directly) (0-(3*DatalogSize-1)) GlobalVarDSIndirectGlobalInt (0-255)DSIndirectGlobalLong (0-255)DSIndirectGlobalFloat (0-255)DSIndexedGlobalAndConstantDSIndexedGlobalLongAndConstant DSStackVarDSConstantVar (0-255)DSFunctionReturnValueWordDSFunctionReturnValueLongDSFunctionReturnValueFloatsmartMotorEncodersmartMotorEncoderTargetsmartMotorEnablemotor180ReflectionDSTaskStackVarWord (0-255)DSTaskStackVarLong (0-255)DSTaskVar (0-15)DSTaskStackAddress (0-9,10)DSTaskStackSize (0-9,10)DSBadSource@variable Container c<t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd c<z@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeNew Task c<t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd c<t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd c<t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd c<,@Sensor Port.ctl@!Portt@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd c<z@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeNew Task c<t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd c<@ Sound Typet@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd c<X@HContainers.ctl6P"@H source.ctl@Variable Timer100msConstant Motor StatusRandom No (0-32767)MotorPowerSignedDSIntrinsicIndirectGlobalRobolabFreeSampleProgram Number SensorValue SensorType SensorMode SensorRaw SensorBool ClockMinutes PBMessageDSMotorPower128Global Motor Status (0-2)DSEventType (0-15)DSEvent (0-15)DSTaskStackVarLong (0-15) Counter (0-2) Timer1msecTask Events (0-9)SystemEvent State (0-15) Timer10msecClick Counter (0-15)Upper Threshold (0-15)Lower Threshold (0-15)Hysteresis (0-15)Duration (0-15) MotorPower8 UART SetupBatteryLevel (Avg)Firmware VersionIndirect Var (0-47) Datalog type (indirectly) (0-47)'Datalog type (directly) (0-DatalogSize)!Datalog value (indirectly) (0-47)(Datalog value (directly) (0-DatalogSize) Datalog byte (indirectly) (0-47),Datalog bye (directly) (0-(3*DatalogSize-1)) GlobalVarDSIndirectGlobalInt (0-255)DSIndirectGlobalLong (0-255)DSIndirectGlobalFloat (0-255)DSIndexedGlobalAndConstantDSIndexedGlobalLongAndConstant DSStackVarDSConstantVar (0-255)DSFunctionReturnValueWordDSFunctionReturnValueLongDSFunctionReturnValueFloatsmartMotorEncodersmartMotorEncoderTargetsmartMotorEnablemotor180ReflectionDSTaskStackVarWord (0-255)DSTaskStackVarLong (0-255)DSTaskVar (0-15)DSTaskStackAddress (0-9,10)DSTaskStackSize (0-9,10)DSBadSource@variable Containert@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd cD@0filename c, c, c, c, c, c, c, c, c, c, c, c, c, c c d4<KnC K tnPd2x Kx'HdogD( Buuuhh.rso K22bark.rso (:fXv$ 0<48@(D<HLdD=0 D "L4*- H ~ Lz Lz 6 lhI\B@D?t=d76N b1@H"\8bP!|dx|CxbkA}hN!A8!@,@H,@H&Ԁa|i8`N !8@|cx<2`$A|N!A8!@,@K}t}ky@H0}t}kyAK@9$99!838b@< `A|N!A8!@9@9@!8̀b < `A|N!A8!@,AH'$"}kyAH( 9D:""T> b1Aܒ"\8bPUbk@}hN 9v}t|h@H9v}t|h@H%89D" }kyAH'9H:""T> b1B`"\8bPUbk@}hN 9v}t|h@H9v}t|h@H$9H"}kyAH'9L:""T> b1B"\8bPUbk@}hN 9v}t|h@H9v}t|h@H$09L"}kyAH'H9P:""T> b1Ch"\8bPUbk@}hN 9v}t|h@H9v}t|h@H#9P"}kyAH'9T:"P"T> b1C"\8bPUbk@}hN 9v}t|h@H9v}t|h@H#(9T"}kyAH&9X:" "T> b1Dp"\8bPUbk@}hN 9v}t|h@H9v}t|h@H"9X"}kyAH&p9\:""T> b1D"\8bPUbk@}hN 9v}t|h@H9v}t|h@H" 9\""}kyAH&(9`:""T> b1Ex"\8bPUbk@}hN 9v}t|h@H9v}t|h@H!9`"&}kyAH%9d:""T> b1E"\8bPUbk@}hN 9v}t|h@H9v}t|h@H!9d"*}kyAH%9h:"`"T> b1F"\8bPUbk@}hN 9v}t|h@H9v}t|h@H 9h".}kyAH%P9l:"0"T> b1G"\8bP Ubk@}hN 9v}t|h@H9v}t|h@H 9l"2}kyAH%9p9> b1H"9> b1IĒ"9> b1M"9$> b1Qh"9T> b1S"@9> b1X"p9> b1Z"9> b1]`"9> b1_h"9D> b1a"09t> b1b"`9> b1d"9> b1e"!8888b<2`8A|N!A8!@!8888bt<2`8A|N!A8!@H 9}t|h@H9p"3}t}kyAH#:""x> b1I("8btUbk@}hN 9}t|h@H9}t|h@H 9p"6}kyAH#\!8t888b$<2`8A|N!A8!@,@HHHa|i8`N 9}t|h@H9t"7}t}kyAH#:"В"> b1J,"8bUbk@}hN 9}t|h@H9}t|h@H 9t":}kyAH"Д!8888bT<2`8A|N!A8!@,@HHHa|i8`N 9v}t|h@H9x";}t}kyAH":,@H ,:,@H 4:,@H <::""T> b1K"\8bPUbk@}hN 9v}t|h@H9v}t|h@H9x">}kyAH!9|:"("T> b1L "\8bPUbk@}hN 9v}t|h@H9v}t|h@H(9|"B}kyAH!9:"Ȓ"T> b1L"\8bP Ubk@}hN 9v}t|h@H9v}t|h@H9"F}kyAH!\9:"h"T> b1M"\8bP$Ubk@}hN 9v}t|h@H9v}t|h@H 9"J}kyAH!!8888b<2`8A|N!A8!@H9}t|h@H9"K}t}kyAH :""> b1M"8bԂ(Ubk@}hN 9}t|h@H9}t|h@H 9"N}kyAH !8888b<2`8A|N!A8!@H9v}t|h@H|9"O}t}kyAH t,:,@H ::""T> b1O "\8bP,Ubk@}hN 9v}t|h@H9v}t|h@H9"R}kyAH 9:"H"T> b1O"\8bP0Ubk@}hN 9v}t|h@H9v}t|h@HP9"V}kyAH94:,@H ::""T> b1P<"\8bP4Ubk@}hN 9v}t|h@H9v}t|h@H9"Z}kyAHT9:""T> b1P"\8bP8Ubk@}hN 9v}t|h@H9v}t|h@H 9"^}kyAH > b1g"\!8P888bP<2`8A|N!A8!@,@HHa|i8`N 9*}t|h@H9"_}t}kyAH:"("> b1QВ"8b b1R"8bԂ@Ubk@}hN 9}t|h@H9}t|h@H9"f}kyAH9:"`"> b1S<"8bԂDUbk@}hN 9}t|h@H9}t|h@H 9"j}kyAH!8888bd<2`8A|N!A8!@H 9Z}t|h@H$9"k}t}kyAH:""8> b1T$"@8b4HUbk@}hN 9Z}t|h@H9Z}t|h@H9"n}kyAHL9:""8> b1T"@8b4LUbk@}hN 9Z}t|h@H9Z}t|h@H 9"r}kyAH!8888b<2`8A|N!A8!@H9*}t|h@H49"s}t}kyAH:"8"> b1U"8bPUbk@}hN 9*}t|h@H9*}t|h@H9"v}kyAH9:" В"> b1V"8bTUbk@}hN 9*}t|h@H9*}t|h@H09"z}kyAHL9:" p"> b1V"8bXUbk@}hN 9*}t|h@H9*}t|h@H9"~}kyAH9:" 0"> b1W"8b\Ubk@}hN 9*}t|h@H9*}t|h@H(9"}kyAH9:" В"> b1W"8b`Ubk@}hN 9*}t|h@H9*}t|h@H9"}kyAHt9:" p"> b1X$"8bdUbk@}hN 9*}t|h@H9*}t|h@H 9Ă"}kyAH,!8888bP<2`8A|N!A8!@,@HHda|i8`N 9}t|h@H9Ȃ"}t}kyAH:" "h> b1Y("p8bdhUbk@}hN 9}t|h@H9}t|h@H 9Ȃ"}kyAH!8d888b<2`8A|N!A8!@,@HH Ta|i8`N 9}t|h@H9̂"}t}kyAHT:" "> b1Z,"8bԂlUbk@}hN 9}t|h@H9}t|h@H 9̂"}kyAH!8888b<2`8A|N!A8!@H9}t|h@H9Ђ"}t}kyAH:" @"> b1["8bpUbk@}hN 9}t|h@H9}t|h@H 9Ђ"}kyAH!8888b<2`8A|N!A8!@,@HH̀a|i8`N 9Z}t|h@HL9Ԃ"}t}kyAHXt:,@H : :" "8> b1\@"@8b4tUbk@}hN 9Z}t|h@H9Z}t|h@H9Ԃ"}kyAH9:" "8> b1\Ē"@8b4xUbk@}hN 9Z}t|h@H9Z}t|h@H 9؂"}kyAH!84888b<2`8A|N!A8!@,@HHa|i8`N 9}t|h@H9܂"}t}kyAH\:" "> b1]Ȓ"8bĂ|Ubk@}hN 9}t|h@H9}t|h@H 9܂"}kyAH!8888b$<2`8A|N!A8!@,@HHa|i8`N 9}t|h@H9"}t}kyAH:" "> b1^̒"8bԂUbk@}hN 9}t|h@H9}t|h@H 9"}kyAH!8888bT<2`8A|N!A8!@,@HHa|i8`N 9}t|h@H,9"}t}kyAHD:" @"> b1_В"8bUbk@}hN 9}t|h@H9}t|h@H9"}kyAH9:" "> b1`T"8bUbk@}hN 9}t|h@H9}t|h@H(9"}kyAH9:""> b1`ؒ"8bUbk@}hN 9}t|h@H9}t|h@H9"}kyAHt9:"@"> b1a\"8bUbk@}hN 9}t|h@H9}t|h@H 9"}kyAH,!8888bP<2`8A|N!A8!@,@HH,a|i8`N 9J}t|h@H9"}t}kyAH:"ؒ"(> b1b`"08b$Ubk@}hN 9J}t|h@H9J}t|h@H 9"}kyAH!8$888b<2`8A|N!A8!@,@HHa|i8`N 9z}t|h@H9"}t}kyAHT:"p"X> b1cd"`8bTUbk@}hN 9z}t|h@H9z}t|h@H 9"}kyAH!8T888b<2`8A|N!A8!@,@HHa|i8`N 9}t|h@H9"}t}kyAH:""> b1dh"8bUbk@}hN 9}t|h@H9}t|h@H 9"}kyAH!8888b<2`8A|N!A8!@,@HHa|i8`N 9}t|h@H9"}t}kyAH<:"p"> b1el"8bUbk@}hN 9}t|h@H9}t|h@H(9"}kyAH9:""> b1e"8bUbk@}hN 9}t|h@H9}t|h@H9"}kyAH9:""> b1ft"8bUbk@}hN 9}t|h@H9}t|h@H 9"}kyAHl!8888bP<2`8A|N!A8!@,@HHa|i8`N 9v}t|h@H"}t}kyAH(}t}ky@H}t}kyAH}t}kyAH쉢+}t}kyAH!8b@<2`+TA|N!A8!@,@K ,@H|qx Q~N a|i8`N 9 w> b1g"\8bP!|dx|CxbkA}hN!A8!@,@KX,@KL,@K,@K K9 wK9wK|rx|Qx~-UL9'~#x!|dx|CxbkA}hN!A8!@,AHa|i8`N |qx|Bx~(N P'  >bhKl|Qx~->bi< 9'~#x!|dx|CxbkA}hN!A8!@,AHa|i8`N |qx|Bx~(N P' >biKLP' >biKP' >bjKP' >bjDKP' P>bjK\P'  >bjK P' >bjKP '  >bk4KP'  >bkpKlP('  `>bkK0P'  0>bkKP0'  >bl$Kt T >bl`K|t T T - >blK@ X  >blK X X.>bmKP @>bmPKP @(>bmKPP 8 @>bmKP @h>bnKP @ @>bn@K (>bn|K`((!>bnK$P>bnKP8#H>bo0KP$>bolKpPh%>boK4P3>boK(>bp K&>bp\Khh>bpKDh(`>bpKhh)">bqK4>bqLK4P+>bqKT4,$>bqK@P8>brKP. >brbrxKdP0 0>brK(HP1 !! >brKP2!!"" p>bs,KPP"3">bshKtdT"#" >bsK8dTT3#0#>bsKX#$# >btKXX4$'$>btXK@$%$ @>btKH@@6%)%>btK 4%&% >bu K4l7&&'' >buHK48')'>buKXx'(' >buK9(-(>buK|()( >bv8K:).)>bvtKh!)*) @>bvK,!;**++ >bvK !<++,,>bw(K!!=,,--@>bwdKx!!-3->bwK<$""-.->bwK$"">./.>bxKT##./.p>bxTKT##?///>bxKL$$/0/>bxK$$@000>byK%&010p>byDK%&A1122>byK\&&B2233>byK &&333>byKP' ' 3>bz4Ky}hN ",@H81!8P~#xbkkk A}hN!A8!@",@H81!8P~#xbkkk A}hN!A8!@",@H81!8P~#xbkkk A}hN!A8!@",@H81!8P~#xbkkk A}hN!A8!@",@H81!8P~#xbkkk A}hN!A8!@",@H81!8P~#xbkkk A}hN!A8!@",@H81!8P~#xbkkk A}hN!A8!@",@H81!8P~#xbkkk A}hN!A8!@",@H81!8P~#xbkkk A}hN!A8!@",@H81!8P~#xbkkk A}hN!A8!@" ,@H81!8P~#xb kkk A}hN!A8!@",@H81!8t~#xbkkk A}hN!A8!@",@H81!8~#xbkkk A}hN!A8!@",@H81!8P~#xbkkk A}hN!A8!@",@H81!8P~#xbkkk A}hN!A8!@" ,@H81!8P~#xb kkk A}hN!A8!@"$,@H81!8P~#xb$kkk A}hN!A8!@"(,@H81!8~#xb(kkk A}hN!A8!@",,@H81!8P~#xb,kkk A}hN!A8!@"0,@H81!8P~#xb0kkk A}hN!A8!@"4,@H81!8P~#xb4kkk A}hN!A8!@"8,@H81!8P~#xb8kkk A}hN!A8!@"<,@H81!8~#xb b1Ȓ5 > b15> b1@5@> b1T5D!8|Cx< `HA|N!A8!@y}hN @P h l T< |dhlT !"#$&'xG`aa@ G`a<):D/--`.P)009:*T-/@/*/*1 +099T4h4,6 566H988(7,488d+@,,pT-$,+33h.../||0l002L23<3x*22+311\7t71445X5+D66785aXadapa|( (08 @ H Hxp`HPX| !"#$ %$%&,'()CODEmkpXlc(`q7.0b71Oldest compatible LabVIEW. >>> pPPP~NI.LV.ALL.VILastSavedTarget0MacNI.LV.ALL.goodSyntaxTargets%@0MacPort 1: touch sensor Port 2: light sensor Port 3: sound sensor Port 4: distance sensor Port A: motor Port B: lamp Port C: motor %.0f%.0f%.0f%.0f%.0f%.0f%.0f%.0f%.0fMHFIUPPPPPUPPPPPPPPPPPPUPPUPPUUPPPPPPPPPUPhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhDTHPD88~|v@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegin(v@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegin"@0filenamet@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd@! LASM View?:*@ Program File Try Me File Extension @port8  @0filenamet@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd@! LASM View?*@ Program File Try Me File Extension @portz@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeNew Taskx( z@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeNew Taskt@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegindX@HContainers.ctl6P"@H source.ctl@Variable Timer100msConstant Motor StatusRandom No (0-32767)MotorPowerSignedDSIntrinsicIndirectGlobalRobolabFreeSampleProgram Number SensorValue SensorType SensorMode SensorRaw SensorBool ClockMinutes PBMessageDSMotorPower128Global Motor Status (0-2)DSEventType (0-15)DSEvent (0-15)DSTaskStackVarLong (0-15) Counter (0-2) Timer1msecTask Events (0-9)SystemEvent State (0-15) Timer10msecClick Counter (0-15)Upper Threshold (0-15)Lower Threshold (0-15)Hysteresis (0-15)Duration (0-15) MotorPower8 UART SetupBatteryLevel (Avg)Firmware VersionIndirect Var (0-47) Datalog type (indirectly) (0-47)'Datalog type (directly) (0-DatalogSize)!Datalog value (indirectly) (0-47)(Datalog value (directly) (0-DatalogSize) Datalog byte (indirectly) (0-47),Datalog bye (directly) (0-(3*DatalogSize-1)) GlobalVarDSIndirectGlobalInt (0-255)DSIndirectGlobalLong (0-255)DSIndirectGlobalFloat (0-255)DSIndexedGlobalAndConstantDSIndexedGlobalLongAndConstant DSStackVarDSConstantVar (0-255)DSFunctionReturnValueWordDSFunctionReturnValueLongDSFunctionReturnValueFloatsmartMotorEncodersmartMotorEncoderTargetsmartMotorEnablemotor180ReflectionDSTaskStackVarWord (0-255)DSTaskStackVarLong (0-255)DSTaskVar (0-15)DSTaskStackAddress (0-9,10)DSTaskStackSize (0-9,10)DSBadSource@variable Containerth X@HContainers.ctl6P"@H source.ctl@Variable Timer100msConstant Motor StatusRandom No (0-32767)MotorPowerSignedDSIntrinsicIndirectGlobalRobolabFreeSampleProgram Number SensorValue SensorType SensorMode SensorRaw SensorBool ClockMinutes PBMessageDSMotorPower128Global Motor Status (0-2)DSEventType (0-15)DSEvent (0-15)DSTaskStackVarLong (0-15) Counter (0-2) Timer1msecTask Events (0-9)SystemEvent State (0-15) Timer10msecClick Counter (0-15)Upper Threshold (0-15)Lower Threshold (0-15)Hysteresis (0-15)Duration (0-15) MotorPower8 UART SetupBatteryLevel (Avg)Firmware VersionIndirect Var (0-47) Datalog type (indirectly) (0-47)'Datalog type (directly) (0-DatalogSize)!Datalog value (indirectly) (0-47)(Datalog value (directly) (0-DatalogSize) Datalog byte (indirectly) (0-47),Datalog bye (directly) (0-(3*DatalogSize-1)) GlobalVarDSIndirectGlobalInt (0-255)DSIndirectGlobalLong (0-255)DSIndirectGlobalFloat (0-255)DSIndexedGlobalAndConstantDSIndexedGlobalLongAndConstant DSStackVarDSConstantVar (0-255)DSFunctionReturnValueWordDSFunctionReturnValueLongDSFunctionReturnValueFloatsmartMotorEncodersmartMotorEncoderTargetsmartMotorEnablemotor180ReflectionDSTaskStackVarWord (0-255)DSTaskStackVarLong (0-255)DSTaskVar (0-15)DSTaskStackAddress (0-9,10)DSTaskStackSize (0-9,10)DSBadSource@variable Container(t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegin(t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegin.@Set the the container to|p(@Set the the container tot@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndX@HContainers.ctl6P"@H source.ctl@Variable Timer100msConstant Motor StatusRandom No (0-32767)MotorPowerSignedDSIntrinsicIndirectGlobalRobolabFreeSampleProgram Number SensorValue SensorType SensorMode SensorRaw SensorBool ClockMinutes PBMessageDSMotorPower128Global Motor Status (0-2)DSEventType (0-15)DSEvent (0-15)DSTaskStackVarLong (0-15) Counter (0-2) Timer1msecTask Events (0-9)SystemEvent State (0-15) Timer10msecClick Counter (0-15)Upper Threshold (0-15)Lower Threshold (0-15)Hysteresis (0-15)Duration (0-15) MotorPower8 UART SetupBatteryLevel (Avg)Firmware VersionIndirect Var (0-47) Datalog type (indirectly) (0-47)'Datalog type (directly) (0-DatalogSize)!Datalog value (indirectly) (0-47)(Datalog value (directly) (0-DatalogSize) Datalog byte (indirectly) (0-47),Datalog bye (directly) (0-(3*DatalogSize-1)) GlobalVarDSIndirectGlobalInt (0-255)DSIndirectGlobalLong (0-255)DSIndirectGlobalFloat (0-255)DSIndexedGlobalAndConstantDSIndexedGlobalLongAndConstant DSStackVarDSConstantVar (0-255)DSFunctionReturnValueWordDSFunctionReturnValueLongDSFunctionReturnValueFloatsmartMotorEncodersmartMotorEncoderTargetsmartMotorEnablemotor180ReflectionDSTaskStackVarWord (0-255)DSTaskStackVarLong (0-255)DSTaskVar (0-15)DSTaskStackAddress (0-9,10)DSTaskStackSize (0-9,10)DSBadSource@variable Containerv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegin&@Number of Clicks8,@Sensor Port.ctl@!PortH<( @Number of Clickst@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd,@Sensor Port.ctl@!Portv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBeginH< ,@Sensor Port.ctl@!Port4(@*۷TaskNumberX.ctl Task Number6&((@*۷TaskNumberX.ctl Task Numbert@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegin@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Container is >)@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Container is < or = )@ Compare torb@HContainers.ctl6P"@H source.ctl@Variable Timer100msConstant Motor StatusRandom No (0-32767)MotorPowerSignedDSIntrinsicIndirectGlobalRobolabFreeSampleProgram Number SensorValue SensorType SensorMode SensorRaw SensorBool ClockMinutes PBMessageDSMotorPower128Global Motor Status (0-2)DSEventType (0-15)DSEvent (0-15)DSTaskStackVarLong (0-15) Counter (0-2) Timer1msecTask Events (0-9)SystemEvent State (0-15) Timer10msecClick Counter (0-15)Upper Threshold (0-15)Lower Threshold (0-15)Hysteresis (0-15)Duration (0-15) MotorPower8 UART SetupBatteryLevel (Avg)Firmware VersionIndirect Var (0-47) Datalog type (indirectly) (0-47)'Datalog type (directly) (0-DatalogSize)!Datalog value (indirectly) (0-47)(Datalog value (directly) (0-DatalogSize) Datalog byte (indirectly) (0-47),Datalog bye (directly) (0-(3*DatalogSize-1)) GlobalVarDSIndirectGlobalInt (0-255)DSIndirectGlobalLong (0-255)DSIndirectGlobalFloat (0-255)DSIndexedGlobalAndConstantDSIndexedGlobalLongAndConstant DSStackVarDSConstantVar (0-255)DSFunctionReturnValueWordDSFunctionReturnValueLongDSFunctionReturnValueFloatsmartMotorEncodersmartMotorEncoderTargetsmartMotorEnablemotor180ReflectionDSTaskStackVarWord (0-255)DSTaskStackVarLong (0-255)DSTaskVar (0-15)DSTaskStackAddress (0-9,10)DSTaskStackSize (0-9,10)DSBadSource@variableChoose a Container  ;   @j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Container is >)v@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegin@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Container is < or = )@ Compare tob@HContainers.ctl6P"@H source.ctl@Variable Timer100msConstant Motor StatusRandom No (0-32767)MotorPowerSignedDSIntrinsicIndirectGlobalRobolabFreeSampleProgram Number SensorValue SensorType SensorMode SensorRaw SensorBool ClockMinutes PBMessageDSMotorPower128Global Motor Status (0-2)DSEventType (0-15)DSEvent (0-15)DSTaskStackVarLong (0-15) Counter (0-2) Timer1msecTask Events (0-9)SystemEvent State (0-15) Timer10msecClick Counter (0-15)Upper Threshold (0-15)Lower Threshold (0-15)Hysteresis (0-15)Duration (0-15) MotorPower8 UART SetupBatteryLevel (Avg)Firmware VersionIndirect Var (0-47) Datalog type (indirectly) (0-47)'Datalog type (directly) (0-DatalogSize)!Datalog value (indirectly) (0-47)(Datalog value (directly) (0-DatalogSize) Datalog byte (indirectly) (0-47),Datalog bye (directly) (0-(3*DatalogSize-1)) GlobalVarDSIndirectGlobalInt (0-255)DSIndirectGlobalLong (0-255)DSIndirectGlobalFloat (0-255)DSIndexedGlobalAndConstantDSIndexedGlobalLongAndConstant DSStackVarDSConstantVar (0-255)DSFunctionReturnValueWordDSFunctionReturnValueLongDSFunctionReturnValueFloatsmartMotorEncodersmartMotorEncoderTargetsmartMotorEnablemotor180ReflectionDSTaskStackVarWord (0-255)DSTaskStackVarLong (0-255)DSTaskVar (0-15)DSTaskStackAddress (0-9,10)DSTaskStackSize (0-9,10)DSBadSource@variableChoose a Containerv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeFalsev@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeTruet( t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeFalsev@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeTrue@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Light is >)@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Light is < or = ) @Compare to (%)@! Light on?K    @j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Light is >)v@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegin@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Light is < or = )@Compare to (%)@! Light on?,@Sensor Port.ctl@!Port2"@ Power.ctl Power Level>.@\Output Ports.ctl@!PortsZJ("@ Power.ctl Power Levelt@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd.@\Output Ports.ctl@!Portsv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBeginH<@\Output Ports.ctl@!Additional Ports 2<0@\Output Ports.ctl@!Ports 2x <@\Output Ports.ctl@!Additional Ports 20@\Output Ports.ctl@!Ports 2J:@\Output Ports.ctl@!Additional Portst :@\Output Ports.ctl@!Additional Ports.@\Output Ports.ctl@!Ports"@ Power Level 32" @ Power Level 38,(t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd.@\Output Ports.ctl@!Portsv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegin$@0Sound File Name&(t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd@0Sound File Namev@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegin@ Wait (sec)(@ Wait (sec)t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegin, ("@ Power.ctl Power Levelt@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegin;   @j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Distance is >)v@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegin@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Distance is < or = )@Compare to (%),@Sensor Port.ctl@!Port@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Distance is < or = )@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEnd (Distance is >)@ Sound Type( @ Sound Typet@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegin$@Cutoff Sound Level @!Flat Response?`T;t@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegin@Cutoff Sound Level@!Flat Response?,@Sensor Port.ctl@!Port$@Number to multiplyzj(@Number to multiplyt@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeEndX@HContainers.ctl6P"@H source.ctl@Variable Timer100msConstant Motor StatusRandom No (0-32767)MotorPowerSignedDSIntrinsicIndirectGlobalRobolabFreeSampleProgram Number SensorValue SensorType SensorMode SensorRaw SensorBool ClockMinutes PBMessageDSMotorPower128Global Motor Status (0-2)DSEventType (0-15)DSEvent (0-15)DSTaskStackVarLong (0-15) Counter (0-2) Timer1msecTask Events (0-9)SystemEvent State (0-15) Timer10msecClick Counter (0-15)Upper Threshold (0-15)Lower Threshold (0-15)Hysteresis (0-15)Duration (0-15) MotorPower8 UART SetupBatteryLevel (Avg)Firmware VersionIndirect Var (0-47) Datalog type (indirectly) (0-47)'Datalog type (directly) (0-DatalogSize)!Datalog value (indirectly) (0-47)(Datalog value (directly) (0-DatalogSize) Datalog byte (indirectly) (0-47),Datalog bye (directly) (0-(3*DatalogSize-1)) GlobalVarDSIndirectGlobalInt (0-255)DSIndirectGlobalLong (0-255)DSIndirectGlobalFloat (0-255)DSIndexedGlobalAndConstantDSIndexedGlobalLongAndConstant DSStackVarDSConstantVar (0-255)DSFunctionReturnValueWordDSFunctionReturnValueLongDSFunctionReturnValueFloatsmartMotorEncodersmartMotorEncoderTargetsmartMotorEnablemotor180ReflectionDSTaskStackVarWord (0-255)DSTaskStackVarLong (0-255)DSTaskVar (0-15)DSTaskStackAddress (0-9,10)DSTaskStackSize (0-9,10)DSBadSource@variable Containerv@j BeginIII.ctlZP^@[port types.ctlB ErrorTextRCXScout Control LabnetNXTCricket AutoDetectID.@@@0LASM Cmd ListingCommands@0Port @Task #(@@ @NumericCurrent For Loop@Last Var(@@ @NumericCurrent If LoopP@C"port modes.ctl2 SupressErr LASM ViewLASMFileLoadLoad&RunModeBegin|<(< <<|<@'<'('+`+<+/02<2X72<2<<ACdDIhJLL'L'+`LLLL<ACdDQ<QR$U|UV<Q<QR$VQV<WLWlWLWl<QWVQVU|UV< ZZZZ<^^^8<^<DCdA<aT<QLL+`'d'Lidj|<<l<lll<ZZZZ^^^8<^oooo+`'p'oo<shshs<sh|<<< D,S ,S dduWelcome to Inventor. Write your program in the window below. To go back to the main menu, close all Inventor windows.D$33r{ Designing Behaviors Fundamentals of Interface Design UW Division of Design ART 483, Winter 2007 Davidson/Roesler Db{%b} $ "4:MSioz Port 1: touch sensor Port 2: light sensor Port 3: sound sensor Port 4: distance sensor Port A: motor Port B: lamp Port C: motor dD{I&}8%  The Dog [D]D { }? !!! !"?This robot crudely models the behavior of a dog. Being a canine, it is a highly sentient, intelligent, and perceptive creature, of course. Our dog is a hunter and tracker. This dog's mission is to find something ahead of it in the bush. Since we don't have smell sensors for this robot, instead we'll have him follow a visual trail on the grounda black line on a light background. The robot does this by using a light sensor pointed at the ground to evaluate reflected light and determine its intensity, and then steering itself to stay on the black line. In addition to this activity, the robot is simultaneously doing three other things: stopping if it makes contact with anything, listening for commands to pause and continue its search, and "barking" if anything comes too close ahead on the path. In this program, the robot has four separately executing tasks, operating simultaneously to accomplish each of the four goals. Each task continuously monitors one of the input sensors, and takes appropriate action when something is detected by that sensor. In some cases, this requires communication between separate tasks, which is done by setting an indicator value in a container accessible to all tasks in the program. The details of each task's methodology (LIGHT, TOUCH, SOUND, and DISTANCE Monitors) are explained to the right.RDananEnd.viTDe<rle>rkfilenameHD>uKkuMjXD0O=0Q= Begin NXT.viYD0;<0;; Task Split.viZD)(RCX Input 1.vi`DRCX Red Container.vi_DRCX Loop Forever.vifD$#RCX End of Forever Loop.viRDEnd.vi]D  Container fork.viYD LIGHT Monitor]D0;0;Fill Container.vidDg;rg=rSet the the container toHD,uu`DalMalLNXT Wait for Push.vi]DaklamlRCX Stop Tasks.viVD4?4? Compare toHDBOBO`DLWLWRCX Red Container.vi]D] _ RCX Fork Merge.vidDNXT Light Sensor fork.viZDQPRCX Input 2.viYD RCX Stop C.viZDCBCompare to (%)HD$1B3A]DRCX Fork Merge.vi`DHU8HU7RCX Motor forward.vi[DRCX Output A.vi[DuuRCX Output C.viUDED Light on?YDHSHS RCX Stop A.vi`D87RCX Motor forward.vi[D  RCX Output A.vi\DPower Level 3.vi\D""Power Level 3.vi[D  RCX Output C.viWD RCX Stop.viYD8r:q Task Split.vi]D0@;0@:RCX Play Sound.viVDerer Sound TypeHD<HDTuubDa,la.lNXT play sound file.vi[Da`Sound File NameYDPaPa TOUCH MonitorD#39#/8@!@The Initialization is explained in the box to the right . ===>De\e}[::!?The SOUND Monitor is explained in the box to the right. ====>HD`!_ DHcH`AA!DThe DISTANCE Monitor is explained in the box to the right. ======>YDepep Task Split.vi sDX `] X bW 9)"9") This task has the responsibility to monitor the light sensor and direct the robot to follow a black line. It also obeys the setting of the "pause/track" switch while following. It runs continuously until stopped by the main program. The following "pseudo-code" summarizes the method in a textual form of logic. -- follow a black line on the ground, only if robot is not paused loop forever if (red container > 0) then -- pause in effect stop both motors else -- tracking, so check the light sensor value if (light is bright) then -- off the track, turn left stop left motor run right motor else -- on the track, turn right stop right motor run left motor endif -- light sensor check endif -- container check The method is to continuously check the light sensor and evaluate the intensity of the reflected light by comparing its value to a threshold level. If the sensor detects a value above the threshold (here we set it to 40% brightness, but this can be changed depending the specific environment), then it is assumed to be white and the robot is off the track. If it is 40% or less, then it is assumed to be black and on the track. If the robot is on the track, it turns a little to the right and continues forward. If it is off the track, it instead turns a little to the left and proceeds forward also. Since it is doing this continuously, in this way it inches forward (at a given speed, also modifiable according to taste), constantly adjusting its course to the left or right to stay on the black line. This scheme seems like magic, but it actually works. There is a flaw in the logic which you will undoubtedly discover if you give the robot a complicated track to follow, but it works especially well for a circular track. Improving the scheme to follow a more general track is, as math professors love to say, left as an exercise for the student. Within the task, each time through the loop there is an overarching test that checks to see if the robot is paused or allowed to be moving (tracking the line). To do this, we test the value of the number stored in the red container to decide whether to move (read the light sensor and run the motors) or just stop both motors. Since this happens each time through the loop, it makes the robot very responsive. If the red container value is positive (> 0), it means we should be paused and so we just stop both motors. Otherwise, we go on and check the light sensor and move in the right direction.ZD6G O6G N InitializationYD6 `G 6 bG LIGHT MonitorDW] OW[ NFirst store the value "2" in the red container and then beep to signal that the robot is ready. The red container is simply a storage location that holds a number. We will use the value in that container to indicate whether the robot should pause (the dog stops tracking) or move (track the line). A number greater than zero (> 0) means pause, while zero or a number less than zero ( 0) indicates it is ok to run. This is an arbitrary convention that we set, not any sort of technical or mystical value. The initial value of "2" (or any positive number) means the robot will initially be paused, and wait for a command to start moving.DLN,,!>The LIGHT Monitor is explained in the box to the right. ===>Dee}==!?The TOUCH Monitor is explained in the box to the right. ====>ZD#4#4 InitializationD !U T55!GThe creation of theseTasks is explained in the box to the right. ===>\D DISTANCE MonitorYD6Gw6Gv TOUCH MonitorYD6 xG)6 zG( SOUND MonitorJDWwWvThis is the main program. It has the responsibility to monitor the touch sensor and stop everything if it is hit. When contact is made, a sound is played (note that this is a sound file, not just a synthesized tone), and then all other tasks are halted. (DW xz*W zs))""#"C)"This task has the responsibility to monitor the sound sensor and control whether the robot pauses or runs. It runs continuously until stopped by the main program. Each time a loud noise (a master's command) is detected, it toggles (flips) a "switch" that indicates whether the robot should be paused or tracking. The switch is simply a container that holds a number indicating "pause" or "track." The following "pseudo-code" summarizes the whole method in a textual form of logic. -- toggle pause/track switch each time a loud noise is detected loop forever wait for loud noise multiply value in red container by -1 wait 1/2 second The key to this task's method is that the only significant aspect of the value stored in the red container is whether the number is positive (> 0) or not ( 0). Positive indicates paused, and negative indicates stopped. So (as long as the number is not actually equal to zero), we can use a trick of basic algebra and simply multiply it by -1 each time a noise is detected. Since any positive number multiplied by -1 will give the negative version of that number, AND multiplying any negative number by -1 will give the positive equivalent, this effectively toggles the setting of the red container with each multiplication. A little algebraic summary of this trick: +2 * -1 = -2 -2 * -1 = +2 During the initialization of the program, a value must be stored in the red container; otherwise it would default to zero and this scheme would collapse in a clever programmer's pile of trickery. (Why?) The reason to use it is that it makes this task very efficient; it only has to do a single multiply command when the sound triggers it. This allows the dog to rapidly respond to its master's commands! An equivalent but longer piece of logic to accomplish the same thing could be: if (red container < 0) then put "2" in red container else put "-2" in red container endif By the way, the purpose of waiting for 1/2 second after toggling the switch is to allow the sound to die down a little before looping back and checking it again. Otherwise the robot would toggle the switch a few extra times after each sound is detected. KD#w#sM~"M"~This task has the responsibility to monitor the distance (ultrasound) sensor and make a sound when something is too close to the robot. (In our canine metaphor, the dog will barking at something.) It runs continuously until stopped by the main program. The following "pseudo-code" summarizes the method in a textual form of logic. -- play a sound whenever an object is too close -- also turn on the lamp at the same time loop forever if (distance is greater than 50 cm) then -- all is ok turn off lamp else -- too close !@#$ turn on lamp play sound file endif -- distance check wait 1/4 second The value of the distance sensor is tested each time through the loop. If it is greater than 50 cm, then nothing needs to be done except turn off the lamp to signal that nothing is encroaching on the robot's personal space. If the sensor detects something less than 50 cm away, however, then the lamp is turned on and a sound file is played. In our canine metaphor, the dog barks. In either case, before returning to loop through and check again, a small delay (1/4 second) is made. This insures that the loop does not execute too rapidly; that might make the barking lag behind the object's proximity._DRCX Loop Forever.vifD RCX End of Forever Loop.vi^D,07,27Number to multiplyHDp:zG:|GRDFeHdEnd.vi`DG_RGaRRCX Red Container.vidDg i Multiply to Container.viYDdc SOUND Monitor`D  m lNXT Wait for Loud.vi^DALDALCCutoff Sound LevelHD>O2\CO4\BZDGRFGRERCX Input 3.viZD-8F-8EFlat Response?hD K JRCX Wait for N hundredths.viWD,7,7 Wait (sec)HD>:G:G\Dzz DISTANCE Monitor_DRCX Loop Forever.vifD02RCX End of Forever Loop.viRDkmEnd.vigDWVNXT Distance Sensor fork.viYDDF RCX Stop B.viUD -[ /Z Lamp B.viZDCompare to (%)HD>$ZD!,!,NXT Input 4.viWD Wait (sec)HD>8bD \ ^NXT play sound file.vi]DRCX Fork Merge.vihDrqRCX Wait for N hundredths.vi[DA$LsA&LrSound File NameHD>xOB\rOD\qD ] X  !!b!o!KA note about tasks The three commands (with sideways "Y"-shaped icons) after the initialization commands serve to start the four tasks of the program operating simultaneously. Each starts the commands from the topmost exit wire executing and then creates a new task (from the bottom command exit wire) that begins executing in parallel to the top sequence. So the first task command starts the main program (the TOUCH Monitor) and then creates a second task. This second task immediately starts the LIGHT Monitor in parallel, and then starts the task at the bottom of the page. This third task starts the SOUND Monitor and then creates the fourth and final task, which executes the DISTANCE Monitor. With this method of cascading task creation, we start four separate tasks almost instantaneously after the initialization of the program.QDb s !b s  Tasks <  <PNG  IHDR<-PLTEf3̙f3f3ffffff3f3333f333f3f3̙f3̙̙̙̙f̙3̙ffffff3f3333f333f3̙f3̙̙f3̙f3ff̙ffff3f33̙33f333̙f3ffffff3ffff̙fff3fffffff3ffffffffffff3fff3f3f3f3ff33f3ffffff3f3333f333333̙3f3333333f3333f3f3f3ff3f33f33333333f333333333f333f3̙f3f3ffffff3f3333f333f3wUD"wUD"wUD𠠤nIDATxZK( zjlG0B{ijܒɫzNW`@&+$֪[fu[z[Ƿ*"21yn}k)Dh[_Ůg'})nR`NAf|ڎsYg^|t(NUE۶t.9ܶ][GH4SAj֕6bmp4D[tHc5?l6 nc%g9j{UeōXD܊{UrSgWvn,e(^Jts Iݲaaω[E kejZM tm#gܑi"gǁK-Cr?hJcӹDpJN)^=n!֖ľ{!W$\ x0nLpJw3431Eo_uM[Dٴ%rO.FvW\#dGE۾.燑csZ=I]%d߬uIKv cZH^nVvwR\[]?ch/],FsNmlF-^}6Ra 0.iOÚ}C5>7ڒb 8h.?b aέ0>5I75[}4^[.+=Aπ= Lp|E[U;&VMp@6\S~qO({{QM A~€gku}c $>w}hKc+v1J[vGACM\{1n97hJEl.(|u^MXH ;ΆVmk-{-K:ְdԶ[}~/HP @-뽺/xVx=n/!m.6cZchh9B݇+ޫ7t6͎y~%I.>&(fGwq+TsV1t0Ն>~GӺltYɄV{YY̭:^~Mqk pn@|^:ƭkhc@K)vWV/i,_ bڝ܎Z^{hr%v+%/tY:~~'|¿|[nz[xy}HIENDB`FPHP 4D-Dog.viFPHPp8o^XLT@7,  4 D+T0 D#_$~Dmkp<`#_%wnh/  Key-clickBeepBeepDescending sweep Rising sweepBuzzFast rising sweep Short click ExceptionKey click (no wait)BeepBeep (no wait)Descending sweep (no wait)Rising sweep (no wait)Buzz (no wait)Fast rising sweep (no wait)Short click (no wait)Exception sound (no wait)zBDHP 4D-Dog.viLVINEnd.vitw` PTH0LVIN Begin NXT.viLPTH0LVIN Task Split.viC\RPTH0LVINRCX Red Container.vi @xz PTH0LVINRCX Loop Forever.vi p8PTH0LVINRCX End of Forever Loop.vir4PTH0LVINFill Container.viPTH0LVINNXT Wait for Push.viPTH0LVINRCX Input 1.vi|PTH0LVINRCX Stop Tasks.viPTH0LVINContainer fork.vi$PTH0LVINRCX Fork Merge.vi$T.PTH0LVINNXT Light Sensor fork.vi&PTH0LVINRCX Input 2.viPTH0LVINRCX Motor forward.vi06PTH0LVINRCX Output C.vi">PTH0LVIN RCX Stop A.vi)PTH0LVINRCX Output A.vi934PTH0LVIN RCX Stop C.vi+PTH0LVINPower Level 3.vi<0=PTH0LVIN RCX Stop.vi?hPTH0LVINRCX Wait for N hundredths.viPPTH0LVINNXT play sound file.viK$PTH0LVINRCX Play Sound.viFPTH0LVINMultiply to Container.vi}PTH0LVINNXT Wait for Loud.vi~PTH0LVINRCX Input 3.viPTH0LVINNXT Distance Sensor fork.viPTH0LVINNXT Input 4.viPTH0LVIN Lamp B.viPTH0LVIN RCX Stop B.viPTH0BDHP8OP@׿,lN@0D~Dmkp>$,nDO4 D2= 4 Daz&<4 DzJ'74 D z7( t@(qx D1Do84 Kt`o7 ( tX t  43t tt43tD43t,ow43t0owXt tVp ,p ( @pO UhH4 J d;sm64  2 tJl=0  sGm | |4 QsGm , L ,D 1D>N^n `P4 &KL/N>9$ Lh l8 hB4 3LTN^^nVf L L\h4 3L >^NnFf h L4 3L$ SN^^XV   LO L Ll4 3L >NI^CV lD 1D L >^!$h@4 &K/<=  l < ^ l4 3 N^!V  l  L  4 3L8 INS^NV  \ <4 3 N^V   < ] G4 3 >NF   4 &K|*\D 1D\ n4 &K @~\  @ 43 @ Qt , 43 >N!F43 @ D1D @ {p4 &K g$  @ x  ` @43  @  V 43   043 d  [D\x  @P, `D1DX$P4 &K%] xH x43x T434 hH43H W%T43D1D,\$4 &K[L43 43  , 43`! t43"t T430#4 &K$ 2D1D#l#8ZzCn4 D=D1Dx4>^)(4 &K/<=43%N^V ]43&>NF L t L43'N^V \h43(>NF,p4*h:H @pUH@Ps+,@4 Jh f:s=8 2h t7=4L :h u0V0V/W.X-Y0 3h s8hhB||D1D`o ,0c4 &K`mN=  43,  ^@<43p-o w P,l Qt 43 /ow,pLS+X+4,,,lD1D 3gp@ |43|,1 |Q@`@43|2@D1D oj48 4 4 &K`jm< @x `@434z@ Vp435ozw 043d6jzr ]4L$437ojzwrxD1D*()"RmD1DhD ,D>``$$( ` Q@@43.43$9 $ $VH 43$|: ( $[43$;,$ $WD !43$ L<,$ $Wx #43$ =,$ `,p ?!(f! @pWD !@P @Q!h@,!!""L"|4 J!( 3@<8 2!( AP<<L :!( BN0V0V/W.X-Y0 3!( @Q8h!(B""||D1D# 3cev34\4 &KxKX= ## x##43x#Ajzr# xWx$ #43x$@BZjb#D1D, $ \,|Hpl4 &K$T\ 9 $[$ $T% $43$T%@Dl,|$t$ $TW%t%T43$T%E l|t%T $T\D%/43$T&F\,l$d% $T`@&D@h43$T&xG \ld&$D1D'&.lO 04 &K&8(',''(d()4 &X'L',43&'I.&', &['43&'J' &Y('43&(PK&.*' &Ud(,43&(L&"(d &U(+43&) M( &X)T*43&)N)4D1D5,4Vv |h 5L4 &KR8 *@* *`*@4 3*P" *@ X**4 3*Q" *D 1D:p+Tu 3@4 &K+8 !@pU +<!O ,F`T!|!| !$%T%&$@! 6+,F*\)]*\8!h+B++ !G0GHHh,!p8U-v !@pUd,,@!P,/D-PV,!-|--.4.d4! J- D88" 2- 0C(0L$ :- +10V0V/W.X-Y0$ 3- /D8$h-B..$|$|D$1D/</;[l4$ &K.H %/\/0,0 %./|/\4%3./W+;3%/\ %.\D//4%3.0X+;3%/ %.Xh0L74%3.0Y+#%0, %._014%3.0Z+#%0D%1D1t1@Vv `l4% &K0GV9H &112d2 &0W1=(4&301\fvn&1 &0_214&302P]Vf^&1 &0V234&302^fvn&2d &0YX254&303 _Vf^&2D&1DA3x 0Lp4& &K34'A4' &K"t( ("434(3"4Ha(3 ("V4|34(3"4b(4\4( J+Ft4) &K)GT8 *5L566p *)5l5L4*3))dfvn *)YX554*3)5eVf^*5 *)6(64*3)6\ffvn*6 *)X6',4*3)6gVf^*6pD*1D7P7 mpl4* &K694 +7p78@8 +6Zd7>4+367i+7p +6Xh774+368,j+7 +6Z8`94+368k+8@ +6Z8:4+368l+8D+1D99T/pLp4+ &K9 L,9: ,9994,399n/',9 ,9Z:(94,39:\o,: ,::;`; ,+::4,3+:q,: ,+Z;:4,3+;Lr,: ,+;;`4,3+;s,;` ,+Y;'4,3+<t,;D,1D<=%E{r4- &K=#,.> > .=>@> 4.3=>ty5E=.> .=Zd?4>.>D.1DBt?:`ev4. &K> <4/3=>z%5-D/1D??h  \4/ &K?h 0@@h@A8 0?h@ @403?h@T|0@ 0?h`@@@h403?h@}0@h 0?hY@B403?hA$~0@ 0?h[AX$403?hA0A80AB 034[TAB403343  034YB,B40334B`0B 0BB 0>BB403>B*:20B 0>[TCB403>CH*"0BD01DCC7W(@40 &KC\7s 1CD\DE, 1C\`DC413C\DHGWO1C 1C\[D|D\413C\DGWO1D\ 1C\DD413C\E7G?1D 1C\^EL l413C\E7G?1E,,1pEE 1E 1@p^EE41QEbF(,1M\QMM1|41DFP'1SrD11D,F>^  '41 &KF/A< 2F\GPG0423FGN^V2G0 2F]GG423FG>NF2G 2FH H423FHTN^V2H 2F]H423FH>NF2Hh,2pHI0$2I 2@p\HIP2WHsI(,2IIJ JXJJ42 JI0 ds \@3 2I0O t11283jI0  ` t<5  2I0 t07 3I0 s87hI0BKJ7|7|D71DKKho+K0Hk047 &KK$`+m h 8KL$LL 8K$KK483K$L;KC8K 8K$]4LDL$483K$Lxo;KwC8L$ 8K$^LE483K$L+;38L 8K$^@M483K$MHo+;w38L48 JE b9|09 E b89hEBMFT49 DOb:BFhp@xDH8`4(Hhx``@_^^]4^@]]\\[\D[[[TYYXXhZZdZYXWVUUdXWWxWDVVpQtQ@UTP,O1Pp;Di`yh 4: D"4:4;DOjt0;L;@4;DP`aQ;Q;Diy 1;Di`h' 1;Di' 4; Dd]x4<DPx!4<DQP < 4<  2E a,a_;Di`h 1;Diy 4= DGd`D>1DSRs~<(@4> &KRd~q5 ?S$SST\ ?Rp@SDS$4?3RSx?S$ ?RFhSS4?3RSs{?S ?RTS4?3RTH~?S ?R`T|C4?3RTs~{?T\4?DTPB?4?DUHa?H4?DUt?,(d4?DU!?+(4?DV8$!?4\2d?!4?DV<P%?X4?DV$P(? (4?DY4?DVT4?DWQ?# `4?DW PA?%T4?DXL,!?*)44?DXP??70,4?DXP4?',6p4?DY<P5?';4?DYP9?=(14?DYt!?B @?524?DZH|!?:8@4?DZp?>7p4?DZP:?:84?D[8xP"?D\x4?D[0!?BA4?D[xP)?$A84?D\(|P*?'4?D\xP@?/%4?D\cP?h4?D]e?IG04?D]hlP$?L$x?EL4?D]bpP?Hh4?D^$cP?G 4?D^tP#?L4?D]04?D^iP? lE,1ʸ;Di' ?p@aa4?D`$(P>?104?D`t P3?@h&$4?D`dP!?CT\4? DW _^ @H@P,V4@ D5H P 4A D5 _H BU{VV{B]FFB\FFfB]F F4B DV^ PC`{Oi{i4C DKD\V{V4D DdDEx[[EE""s4E D"5F4F D"VTHG`rGG^?VV?GO{ZVf{fG8!4!HGG7|G[Q RXf4eTiLO`P 48P8~t}z {tw`rpo@o nn<nnp`adta\hlRN EK$IFC\>34?h=<0+96)"0.,+&$Tx!$|H @LtDx4G D4H D5Hx4I D5 wH*t4J DVx14K DV w{+4L D"xMH"D!D"c M|$4MD_DP&MzzDM1DpqDP8 {pMq Mqxqq$r Mpqq Mprhq$4M &Kp Npqqx4N3pH4N3ppNq$ NpFhr4S4N3pr4N3prDN1Dss +` PNtNr4N &Kr O7 Ott\ux, Ort(t4O3rr+# OrxuHt\,Optt0Ot O@pt|t@OPt|8xIu,OuvvPvv4O3ru|+#Ot\ Oruu4O3rx 4O Jt +/88P 2t 9yHLR :t :tFz0V0V/W.X-Y0R 3t 8xI8RhtB}hwR|4R3rwL Rx,DR1DwwEed p4R &Kw`Ef SwxLxy Sw`ywSu Sr(w|0 Sw`xlxL4S3w`xUe]SxL Sw`xx4S3w`yEUMSx Sw`xy<t\4S3w`ypEUMSySz4S3w`yUe]SwS<S<DS1DptzPU^u~Pn4S &Kz F^S Tz zz4T3z ye^u~mn Tz hzz4T3z {,U^e~]nTz4T &K}f 4U De0 V{|0|} V}{t4V3}|v,$~V{ V}|P|04V3}| v~V|0 V}h|z4V3}|f,v$nV| V}4} ~4V3}}T fvnV}V|V~DV1D{{@ f,X p,Vp(4DV1D~x~D  ,+T z`4V &K~  n $W~~X0 W~4~~4W3~}| +# W~q4W3~D  W~ W~x4W3~ ,+$%WX W~\8WW W@p}@WP}M0^Eh,W4W J( @ME8X 2( N1]D0Z 3( M0^E Z~HP4Z3~ ,$Z0,Zp8DZ1DyUu! i@4Z &KFSG [\<4[3yeu!m [H4[3Ue!][,[p$X<[8 [@p8<[O9-GG[$4[ JX,9G@\ 6X9-GG*\)]*\8\hXB4\3~, $\|L\ :( O,[20V0V/W.X-Y8\h(B<(\|\|D\1D ,\ 0 04\ &KP L ]P ]P4]3P<,$] ]P(p|04]3P ]P]]| ]P|04]3P4 ]4]Dx4!]] ]@p@]P8I,]0d4] J +8P8^ 2 9HL` : :F0V0V/W.X-Y0` 3 8I8`hBdP`|`|4`DP2`t\y4`D `X4`DLP.`q~4`DQ`z|`t{ `P4`3P,$4`D\4P1`Px,`04`D! `84`D8P0`|04`Dh(P/`~}4`D `4`D@`4` Dya|4a38|aa$aDKKa a8dDa1Dp H {p a8d|4a &K8 b84b38 b8p@S$ b4b38P b4<bb4b38 b4`Db1DD/O Pbb4b &K4/ c4c c4,c4c34?OGc`4c34?OG4c34x/?7 c`Dc1DPj @4c K j d 4d3 z d 4d3 (z4d34/?7 d `4d3 pjzr d ` dh8Dd1D8LF4d &KXe4e3 jzreDe1D@ Cc p @lC`4e &KC f`<, f`f`fdDf1D ,9Lt 4f &K ,\ g@ g`@4g3)<9L1Dg@ gH\g4g3 g0|4g3l g8d4g3 g4g3 g g@L4g3tg $gd gDgL g4g38?OGg glL4g3/?7gL,gp@(g g@p@gP!T,gDx4g J 8h 2  dj|Dj1DD/Op4j &K -`8khBk|LkH!+,IEt8P,kp<pD<kP k@pP@kP!,kH4k Jp 8l 2p  1n|4n3<)L!D n4n3),9<14nLn : 0V0V/W.X-Y0n 3 !4n3,)<!4n4n &K [Do1D4  @l4o &K ph4p3ph p4p3$p pXp4p3p8 px<4p3p4p3Sc[ px\<4p3Sc[p<p p8td p4p3CSK pDL4p3CSKp,Dp1D    04p &Ks q,d qLP4q3 q, q4q3 q q4q3Pq q4q3qdLq :p 0V0V/W.X-Y0q 3p !8qhpBHq| qp@q3p @|xz "9>34<0=LFC\K$tR $8p~}Prw`?h&)+4 06.$T4qD,l!Dq1D[:{x k0 q(4q3\*k:{2sq qp4q3k*{"sqp q4q3,*[:k2cq qH`4q3[*k"cq@,qpHLq q@p4qQM>^t<,qh4q J @#Mt4r  2 NA]sp0s  M>^t8shBL8s|s|4sDiP=s4sDhP+s mX$Tp\P0,$D|dtİ\\@ZYYYT[[P[ZDWVVVPYXXdX0WUtps|4sDs<P<ssL 4sD|otP7s@4sDgP8sp84sDg s4sDlk P-sd4sDkP;sd4sD l sP,s,4sD(P,4sDfhP6s<4sD00ssS$$sH]$]Hs@$s4#n4s D ^ !tFh{{IIt@:$@4t Da t "uu@$~$Huh$n]nu(uU:$%U%ux#Mu~uTu\D$d3G$GuVpwwHuWxb$Hu[T" u[uVuWDH$H$u[$$u_ ^^ #uXh#  uX^X&^XHuXuUd9""uWtuZu[OuVnuWnnHuZuYX^^uZd-uU9uYX*XuYu`@dHdHu^@ww3HuQ@uQtwFFLwLu]4wrwCu^>399m;Di =O\P|PPQR(_uUY2c2gUg ( F&?j >>>>>>>>AAAA?&h  v        & 1(    Lucida Grande Lucida Grande Lucida Grande020000Akzidenz-Grotesk Std MedItal000 Andale MonoRSRC LVINLBVW  4 RSID`LVSRtBDPWLIviCPTMDSTMDFDSLIdsVICDversDLDR(FPTD(g?@@AܸBCx`DHEFG H0I,@JlfKlgL<MhNO@PQS8lTl Ul V\lPWX @Y@[\0]P^ _X`a@bPchde,@fsgs@hTt`itkw l`wPm o!pp! q!Pr@!s"tK@uL@LhAn<6LP4KPLp<0 4D-Dog.vi