@ -17,6 +17,118 @@ struct Map(Key, Value) { 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  }  
					 
					 
					 
					  }  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					}  
					 
					 
					 
					}  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					struct  OnroadEvent  @0xc4fa6047f024e718  { 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  name  @0  : EventName ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  # event types   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  enable  @1  : Bool ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  noEntry  @2  : Bool ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  warning  @3  : Bool ;   # alerts presented only when  enabled or soft disabling   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  userDisable  @4  : Bool ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  softDisable  @5  : Bool ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  immediateDisable  @6  : Bool ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  preEnable  @7  : Bool ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  permanent  @8  : Bool ; # alerts presented regardless of openpilot state   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  overrideLateral  @10  : Bool ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  overrideLongitudinal  @9  : Bool ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  enum  EventName  @0x91f1992a1f77fb03  {  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    canError  @0 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    steerUnavailable  @1 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    wrongGear  @2 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    doorOpen  @3 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    seatbeltNotLatched  @4 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    espDisabled  @5 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    wrongCarMode  @6 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    steerTempUnavailable  @7 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    reverseGear  @8 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    buttonCancel  @9 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    buttonEnable  @10 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    pedalPressed  @11 ;  # exits active state   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    preEnableStandstill  @12 ;  # added during pre-enable state with brake   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    gasPressedOverride  @13 ;  # added when user is pressing gas with no disengage on gas   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    steerOverride  @14 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    cruiseDisabled  @15 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    speedTooLow  @16 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    outOfSpace  @17 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    overheat  @18 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    calibrationIncomplete  @19 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    calibrationInvalid  @20 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    calibrationRecalibrating  @21 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    controlsMismatch  @22 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    pcmEnable  @23 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    pcmDisable  @24 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    radarFault  @25 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    brakeHold  @26 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    parkBrake  @27 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    manualRestart  @28 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    joystickDebug  @29 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    longitudinalManeuver  @30 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    steerTempUnavailableSilent  @31 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    resumeRequired  @32 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    preDriverDistracted  @33 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    promptDriverDistracted  @34 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    driverDistracted  @35 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    preDriverUnresponsive  @36 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    promptDriverUnresponsive  @37 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    driverUnresponsive  @38 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    belowSteerSpeed  @39 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    lowBattery  @40 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    accFaulted  @41 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    sensorDataInvalid  @42 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    commIssue  @43 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    commIssueAvgFreq  @44 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    tooDistracted  @45 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    posenetInvalid  @46 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    soundsUnavailable  @47 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    preLaneChangeLeft  @48 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    preLaneChangeRight  @49 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    laneChange  @50 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    lowMemory  @51 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    stockAeb  @52 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    ldw  @53 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    carUnrecognized  @54 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    invalidLkasSetting  @55 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    speedTooHigh  @56 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    laneChangeBlocked  @57 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    relayMalfunction  @58 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    stockFcw  @59 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    startup  @60 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    startupNoCar  @61 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    startupNoControl  @62 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    startupNoSecOcKey  @63 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    startupMaster  @64 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    fcw  @65 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    steerSaturated  @66 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    belowEngageSpeed  @67 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    noGps  @68 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    wrongCruiseMode  @69 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    modeldLagging  @70 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    deviceFalling  @71 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    fanMalfunction  @72 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    cameraMalfunction  @73 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    cameraFrameRate  @74 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    processNotRunning  @75 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    dashcamMode  @76 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    selfdriveInitializing  @77 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    usbError  @78 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    cruiseMismatch  @79 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    canBusMissing  @80 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    selfdrivedLagging  @81 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    resumeBlocked  @82 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    steerTimeLimit  @83 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    vehicleSensorsInvalid  @84 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    locationdTemporaryError  @85 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    locationdPermanentError  @86 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    paramsdTemporaryError  @87 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    paramsdPermanentError  @88 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    actuatorsApiUnavailable  @89 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    espActive  @90 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    personalityChanged  @91 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    aeb  @92 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  }  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					}  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					enum  LongitudinalPersonality  { 
					 
					 
					 
					enum  LongitudinalPersonality  { 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  aggressive  @0 ;  
					 
					 
					 
					  aggressive  @0 ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  standard  @1 ;  
					 
					 
					 
					  standard  @1 ;  
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -1157,7 +1269,7 @@ struct LongitudinalPlan @0xe00b5b3eba12876c { 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  radarValidDEPRECATED  @28  : Bool ;  
					 
					 
					 
					  radarValidDEPRECATED  @28  : Bool ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  radarCanErrorDEPRECATED  @30  : Bool ;  
					 
					 
					 
					  radarCanErrorDEPRECATED  @30  : Bool ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  commIssueDEPRECATED  @31  : Bool ;  
					 
					 
					 
					  commIssueDEPRECATED  @31  : Bool ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  eventsDEPRECATED  @13  : List ( Car.OnroadEvent ) ;  
					 
					 
					 
					  eventsDEPRECATED  @13  : List ( Car.OnroadEventDEPRECATED  ) ;  
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					  gpsTrajectoryDEPRECATED  @12  : GpsTrajectory ;  
					 
					 
					 
					  gpsTrajectoryDEPRECATED  @12  : GpsTrajectory ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  gpsPlannerActiveDEPRECATED  @19  : Bool ;  
					 
					 
					 
					  gpsPlannerActiveDEPRECATED  @19  : Bool ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  personalityDEPRECATED  @36  : LongitudinalPersonality ;  
					 
					 
					 
					  personalityDEPRECATED  @36  : LongitudinalPersonality ;  
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -2072,7 +2184,7 @@ struct DriverStateDEPRECATED @0xb83c6cc593ed0a00 { 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					}  
					 
					 
					 
					}  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					struct  DriverMonitoringState  @0xb83cda094a1da284  { 
					 
					 
					 
					struct  DriverMonitoringState  @0xb83cda094a1da284  { 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  events  @0   : List ( Car. OnroadEvent) ;  
					 
					 
					 
					  events  @18   : List ( OnroadEvent ) ;  
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					  faceDetected  @1  : Bool ;  
					 
					 
					 
					  faceDetected  @1  : Bool ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  isDistracted  @2  : Bool ;  
					 
					 
					 
					  isDistracted  @2  : Bool ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  distractedType  @17  : UInt32 ;  
					 
					 
					 
					  distractedType  @17  : UInt32 ;  
				
			 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
							 
						
					 
					 
					@ -2091,6 +2203,7 @@ struct DriverMonitoringState @0xb83cda094a1da284 { 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  isPreviewDEPRECATED  @15  : Bool ;  
					 
					 
					 
					  isPreviewDEPRECATED  @15  : Bool ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  rhdCheckedDEPRECATED  @5  : Bool ;  
					 
					 
					 
					  rhdCheckedDEPRECATED  @5  : Bool ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  eventsDEPRECATED  @0  : List ( Car.OnroadEventDEPRECATED ) ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					}  
					 
					 
					 
					}  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					struct  Boot  { 
					 
					 
					 
					struct  Boot  { 
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -2369,7 +2482,7 @@ struct Event { 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    liveTorqueParameters  @94  : LiveTorqueParametersData ;  
					 
					 
					 
					    liveTorqueParameters  @94  : LiveTorqueParametersData ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    cameraOdometry  @63  : CameraOdometry ;  
					 
					 
					 
					    cameraOdometry  @63  : CameraOdometry ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    thumbnail  @66 :  Thumbnail ;  
					 
					 
					 
					    thumbnail  @66 :  Thumbnail ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    onroadEvents  @68  :  List ( Car. OnroadEvent) ;  
					 
					 
					 
					    onroadEvents  @134  :  List ( OnroadEvent ) ;  
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					    carParams  @69 :  Car.CarParams ;  
					 
					 
					 
					    carParams  @69 :  Car.CarParams ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    driverMonitoringState  @71 :  DriverMonitoringState ;  
					 
					 
					 
					    driverMonitoringState  @71 :  DriverMonitoringState ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    livePose  @129  : LivePose ;  
					 
					 
					 
					    livePose  @129  : LivePose ;  
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -2484,5 +2597,6 @@ struct Event { 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    uiPlanDEPRECATED  @106  : UiPlan ;  
					 
					 
					 
					    uiPlanDEPRECATED  @106  : UiPlan ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    liveLocationKalmanDEPRECATED  @72  : LiveLocationKalman ;  
					 
					 
					 
					    liveLocationKalmanDEPRECATED  @72  : LiveLocationKalman ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    liveTracksDEPRECATED  @16  : List ( LiveTracksDEPRECATED ) ;  
					 
					 
					 
					    liveTracksDEPRECATED  @16  : List ( LiveTracksDEPRECATED ) ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    onroadEventsDEPRECATED  @68 :  List ( Car.OnroadEventDEPRECATED ) ;  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  }  
					 
					 
					 
					  }  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					}  
					 
					 
					 
					}